package costandusagereportservice

import "github.com/aws/aws-sdk-go-v2/service/costandusagereportservice"

Package costandusagereportservice provides the client and types for making API requests to AWS Cost and Usage Report Service.

The AWS Cost and Usage Report API enables you to programmatically create, query, and delete AWS Cost and Usage report definitions.

AWS Cost and Usage reports track the monthly AWS costs and usage associated with your AWS account. The report contains line items for each unique combination of AWS product, usage type, and operation that your AWS account uses. You can configure the AWS Cost and Usage report to show only the data that you want, using the AWS Cost and Usage API.

Service Endpoint

The AWS Cost and Usage Report API provides the following endpoint:

See https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06 for more information on this service.

See costandusagereportservice package documentation for more information. https://docs.aws.amazon.com/sdk-for-go/api/service/costandusagereportservice/

Using the Client

To AWS Cost and Usage Report Service with the SDK use the New function to create a new service client. With that client you can make API requests to the service. These clients are safe to use concurrently.

See the SDK's documentation for more information on how to use the SDK. https://docs.aws.amazon.com/sdk-for-go/api/

See aws.Config documentation for more information on configuring SDK clients. https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config

See the AWS Cost and Usage Report Service client CostAndUsageReportService for more information on creating client for this service. https://docs.aws.amazon.com/sdk-for-go/api/service/costandusagereportservice/#New

Index

Examples

Constants

const (

	// ErrCodeDuplicateReportNameException for service response error code
	// "DuplicateReportNameException".
	//
	// A report with the specified name already exists in the account. Specify a
	// different report name.
	ErrCodeDuplicateReportNameException = "DuplicateReportNameException"

	// ErrCodeInternalErrorException for service response error code
	// "InternalErrorException".
	//
	// An error on the server occurred during the processing of your request. Try
	// again later.
	ErrCodeInternalErrorException = "InternalErrorException"

	// ErrCodeReportLimitReachedException for service response error code
	// "ReportLimitReachedException".
	//
	// This account already has five reports defined. To define a new report, you
	// must delete an existing report.
	ErrCodeReportLimitReachedException = "ReportLimitReachedException"

	// ErrCodeValidationException for service response error code
	// "ValidationException".
	//
	// The input fails to satisfy the constraints specified by an AWS service.
	ErrCodeValidationException = "ValidationException"
)
const (
	ServiceName = "cur"       // Service endpoint prefix API calls made to.
	EndpointsID = ServiceName // Service ID for Regions and Endpoints metadata.
)

Service information constants

Types

type AWSRegion

type AWSRegion string

The region of the S3 bucket that AWS delivers the report into.

const (
	AWSRegionUsEast1      AWSRegion = "us-east-1"
	AWSRegionUsWest1      AWSRegion = "us-west-1"
	AWSRegionUsWest2      AWSRegion = "us-west-2"
	AWSRegionEuCentral1   AWSRegion = "eu-central-1"
	AWSRegionEuWest1      AWSRegion = "eu-west-1"
	AWSRegionApSoutheast1 AWSRegion = "ap-southeast-1"
	AWSRegionApSoutheast2 AWSRegion = "ap-southeast-2"
	AWSRegionApNortheast1 AWSRegion = "ap-northeast-1"
	AWSRegionEuNorth1     AWSRegion = "eu-north-1"
	AWSRegionApNortheast3 AWSRegion = "ap-northeast-3"
)

Enum values for AWSRegion

func (AWSRegion) MarshalValue

func (enum AWSRegion) MarshalValue() (string, error)

func (AWSRegion) MarshalValueBuf

func (enum AWSRegion) MarshalValueBuf(b []byte) ([]byte, error)

type AdditionalArtifact

type AdditionalArtifact string

The types of manifest that you want AWS to create for this report.

const (
	AdditionalArtifactRedshift   AdditionalArtifact = "REDSHIFT"
	AdditionalArtifactQuicksight AdditionalArtifact = "QUICKSIGHT"
	AdditionalArtifactAthena     AdditionalArtifact = "ATHENA"
)

Enum values for AdditionalArtifact

func (AdditionalArtifact) MarshalValue

func (enum AdditionalArtifact) MarshalValue() (string, error)

func (AdditionalArtifact) MarshalValueBuf

func (enum AdditionalArtifact) MarshalValueBuf(b []byte) ([]byte, error)

type CompressionFormat

type CompressionFormat string

The compression format that AWS uses for the report.

const (
	CompressionFormatZip     CompressionFormat = "ZIP"
	CompressionFormatGzip    CompressionFormat = "GZIP"
	CompressionFormatParquet CompressionFormat = "Parquet"
)

Enum values for CompressionFormat

func (CompressionFormat) MarshalValue

func (enum CompressionFormat) MarshalValue() (string, error)

func (CompressionFormat) MarshalValueBuf

func (enum CompressionFormat) MarshalValueBuf(b []byte) ([]byte, error)

type CostAndUsageReportService

type CostAndUsageReportService struct {
	*aws.Client
}

CostAndUsageReportService provides the API operation methods for making requests to AWS Cost and Usage Report Service. See this package's package overview docs for details on the service.

CostAndUsageReportService methods are safe to use concurrently. It is not safe to modify mutate any of the struct's properties though.

func New

New creates a new instance of the CostAndUsageReportService client with a config.

Example:

// Create a CostAndUsageReportService client from just a config.
svc := costandusagereportservice.New(myConfig)

func (*CostAndUsageReportService) DeleteReportDefinitionRequest

DeleteReportDefinitionRequest returns a request value for making API operation for AWS Cost and Usage Report Service.

Deletes the specified report.

// Example sending a request using the DeleteReportDefinitionRequest method.
req := client.DeleteReportDefinitionRequest(params)
resp, err := req.Send(context.TODO())
if err == nil {
    fmt.Println(resp)
}

Please also see https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/DeleteReportDefinition

Example (Shared00)

To delete the AWS Cost and Usage report named ExampleReport.

The following example deletes the AWS Cost and Usage report named ExampleReport.

Code:play 

package main

import (
	"context"
	"fmt"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/aws/awserr"
	"github.com/aws/aws-sdk-go-v2/aws/external"
	"github.com/aws/aws-sdk-go-v2/service/costandusagereportservice"
)

func main() {
	cfg, err := external.LoadDefaultAWSConfig()
	if err != nil {
		panic("failed to load config, " + err.Error())
	}

	svc := costandusagereportservice.New(cfg)
	input := &costandusagereportservice.DeleteReportDefinitionInput{
		ReportName: aws.String("ExampleReport"),
	}

	req := svc.DeleteReportDefinitionRequest(input)
	result, err := req.Send(context.Background())
	if err != nil {
		if aerr, ok := err.(awserr.Error); ok {
			switch aerr.Code() {
			case costandusagereportservice.ErrCodeInternalErrorException:
				fmt.Println(costandusagereportservice.ErrCodeInternalErrorException, aerr.Error())
			case costandusagereportservice.ErrCodeValidationException:
				fmt.Println(costandusagereportservice.ErrCodeValidationException, aerr.Error())
			default:
				fmt.Println(aerr.Error())
			}
		} else {
			// Print the error, cast err to awserr.Error to get the Code and
			// Message from an error.
			fmt.Println(err.Error())
		}
		return
	}

	fmt.Println(result)
}

func (*CostAndUsageReportService) DescribeReportDefinitionsRequest

DescribeReportDefinitionsRequest returns a request value for making API operation for AWS Cost and Usage Report Service.

Lists the AWS Cost and Usage reports available to this account.

// Example sending a request using the DescribeReportDefinitionsRequest method.
req := client.DescribeReportDefinitionsRequest(params)
resp, err := req.Send(context.TODO())
if err == nil {
    fmt.Println(resp)
}

Please also see https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/DescribeReportDefinitions

Example (Shared00)

To list the AWS Cost and Usage reports for the account.

The following example lists the AWS Cost and Usage reports for the account.

Code:play 

package main

import (
	"context"
	"fmt"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/aws/awserr"
	"github.com/aws/aws-sdk-go-v2/aws/external"
	"github.com/aws/aws-sdk-go-v2/service/costandusagereportservice"
)

func main() {
	cfg, err := external.LoadDefaultAWSConfig()
	if err != nil {
		panic("failed to load config, " + err.Error())
	}

	svc := costandusagereportservice.New(cfg)
	input := &costandusagereportservice.DescribeReportDefinitionsInput{
		MaxResults: aws.Int64(5),
	}

	req := svc.DescribeReportDefinitionsRequest(input)
	result, err := req.Send(context.Background())
	if err != nil {
		if aerr, ok := err.(awserr.Error); ok {
			switch aerr.Code() {
			case costandusagereportservice.ErrCodeInternalErrorException:
				fmt.Println(costandusagereportservice.ErrCodeInternalErrorException, aerr.Error())
			default:
				fmt.Println(aerr.Error())
			}
		} else {
			// Print the error, cast err to awserr.Error to get the Code and
			// Message from an error.
			fmt.Println(err.Error())
		}
		return
	}

	fmt.Println(result)
}

func (*CostAndUsageReportService) PutReportDefinitionRequest

PutReportDefinitionRequest returns a request value for making API operation for AWS Cost and Usage Report Service.

Creates a new report using the description that you provide.

// Example sending a request using the PutReportDefinitionRequest method.
req := client.PutReportDefinitionRequest(params)
resp, err := req.Send(context.TODO())
if err == nil {
    fmt.Println(resp)
}

Please also see https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/PutReportDefinition

Example (Shared00)

To create a report named ExampleReport.

The following example creates a AWS Cost and Usage report named ExampleReport.

Code:play 

package main

import (
	"context"
	"fmt"

	"github.com/aws/aws-sdk-go-v2/aws"
	"github.com/aws/aws-sdk-go-v2/aws/awserr"
	"github.com/aws/aws-sdk-go-v2/aws/external"
	"github.com/aws/aws-sdk-go-v2/service/costandusagereportservice"
)

func main() {
	cfg, err := external.LoadDefaultAWSConfig()
	if err != nil {
		panic("failed to load config, " + err.Error())
	}

	svc := costandusagereportservice.New(cfg)
	input := &costandusagereportservice.PutReportDefinitionInput{
		ReportDefinition: &costandusagereportservice.ReportDefinition{
			AdditionalArtifacts: []costandusagereportservice.AdditionalArtifact{
				costandusagereportservice.AdditionalArtifact("REDSHIFT"),
				costandusagereportservice.AdditionalArtifact("QUICKSIGHT"),
			},
			AdditionalSchemaElements: []costandusagereportservice.SchemaElement{
				costandusagereportservice.SchemaElement("RESOURCES"),
			},
			Compression: costandusagereportservice.CompressionFormatZip,
			Format:      costandusagereportservice.ReportFormatTextOrcsv,
			ReportName:  aws.String("ExampleReport"),
			S3Bucket:    aws.String("example-s3-bucket"),
			S3Prefix:    aws.String("exampleprefix"),
			S3Region:    costandusagereportservice.AWSRegionUsEast1,
			TimeUnit:    costandusagereportservice.TimeUnitDaily,
		},
	}

	req := svc.PutReportDefinitionRequest(input)
	result, err := req.Send(context.Background())
	if err != nil {
		if aerr, ok := err.(awserr.Error); ok {
			switch aerr.Code() {
			case costandusagereportservice.ErrCodeDuplicateReportNameException:
				fmt.Println(costandusagereportservice.ErrCodeDuplicateReportNameException, aerr.Error())
			case costandusagereportservice.ErrCodeReportLimitReachedException:
				fmt.Println(costandusagereportservice.ErrCodeReportLimitReachedException, aerr.Error())
			case costandusagereportservice.ErrCodeInternalErrorException:
				fmt.Println(costandusagereportservice.ErrCodeInternalErrorException, aerr.Error())
			case costandusagereportservice.ErrCodeValidationException:
				fmt.Println(costandusagereportservice.ErrCodeValidationException, aerr.Error())
			default:
				fmt.Println(aerr.Error())
			}
		} else {
			// Print the error, cast err to awserr.Error to get the Code and
			// Message from an error.
			fmt.Println(err.Error())
		}
		return
	}

	fmt.Println(result)
}

type DeleteReportDefinitionInput

type DeleteReportDefinitionInput struct {

	// The name of the report that you want to create. The name must be unique,
	// is case sensitive, and can't include spaces.
	ReportName *string `type:"string"`
	// contains filtered or unexported fields
}

Deletes the specified report. Please also see https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/DeleteReportDefinitionRequest

func (DeleteReportDefinitionInput) GoString

func (s DeleteReportDefinitionInput) GoString() string

GoString returns the string representation

func (DeleteReportDefinitionInput) String

String returns the string representation

type DeleteReportDefinitionOutput

type DeleteReportDefinitionOutput struct {

	// Whether the deletion was successful or not.
	ResponseMessage *string `type:"string"`
	// contains filtered or unexported fields
}

If the action is successful, the service sends back an HTTP 200 response. Please also see https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/DeleteReportDefinitionResponse

func (DeleteReportDefinitionOutput) GoString

func (s DeleteReportDefinitionOutput) GoString() string

GoString returns the string representation

func (DeleteReportDefinitionOutput) SDKResponseMetadata

func (s DeleteReportDefinitionOutput) SDKResponseMetadata() aws.Response

SDKResponseMetdata return sthe response metadata for the API.

func (DeleteReportDefinitionOutput) String

String returns the string representation

type DeleteReportDefinitionRequest

type DeleteReportDefinitionRequest struct {
	*aws.Request
	Input *DeleteReportDefinitionInput
	Copy  func(*DeleteReportDefinitionInput) DeleteReportDefinitionRequest
}

DeleteReportDefinitionRequest is a API request type for the DeleteReportDefinition API operation.

func (DeleteReportDefinitionRequest) Send

Send marshals and sends the DeleteReportDefinition API request.

type DescribeReportDefinitionsInput

type DescribeReportDefinitionsInput struct {

	// The maximum number of results that AWS returns for the operation.
	MaxResults *int64 `min:"5" type:"integer"`

	// A generic string.
	NextToken *string `type:"string"`
	// contains filtered or unexported fields
}

Requests a list of AWS Cost and Usage reports owned by the account. Please also see https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/DescribeReportDefinitionsRequest

func (DescribeReportDefinitionsInput) GoString

GoString returns the string representation

func (DescribeReportDefinitionsInput) String

String returns the string representation

func (*DescribeReportDefinitionsInput) Validate

func (s *DescribeReportDefinitionsInput) Validate() error

Validate inspects the fields of the type to determine if they are valid.

type DescribeReportDefinitionsOutput

type DescribeReportDefinitionsOutput struct {

	// A generic string.
	NextToken *string `type:"string"`

	// A list of AWS Cost and Usage reports owned by the account.
	ReportDefinitions []ReportDefinition `type:"list"`
	// contains filtered or unexported fields
}

If the action is successful, the service sends back an HTTP 200 response. Please also see https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/DescribeReportDefinitionsResponse

func (DescribeReportDefinitionsOutput) GoString

GoString returns the string representation

func (DescribeReportDefinitionsOutput) SDKResponseMetadata

func (s DescribeReportDefinitionsOutput) SDKResponseMetadata() aws.Response

SDKResponseMetdata return sthe response metadata for the API.

func (DescribeReportDefinitionsOutput) String

String returns the string representation

type DescribeReportDefinitionsPager

type DescribeReportDefinitionsPager struct {
	aws.Pager
}

DescribeReportDefinitionsPager is used to paginate the request. This can be done by calling Next and CurrentPage.

func (*DescribeReportDefinitionsPager) CurrentPage

type DescribeReportDefinitionsRequest

type DescribeReportDefinitionsRequest struct {
	*aws.Request
	Input *DescribeReportDefinitionsInput
	Copy  func(*DescribeReportDefinitionsInput) DescribeReportDefinitionsRequest
}

DescribeReportDefinitionsRequest is a API request type for the DescribeReportDefinitions API operation.

func (*DescribeReportDefinitionsRequest) Paginate

Paginate pages iterates over the pages of a DescribeReportDefinitionsRequest operation, calling the Next method for each page. Using the paginators Next method will depict whether or not there are more pages.

Note: This operation can generate multiple requests to a service.

   // Example iterating over at most 3 pages of a DescribeReportDefinitions operation.
		req := client.DescribeReportDefinitionsRequest(input)
		p := req.Paginate()
		for p.Next() {
			page := p.CurrentPage()
		}

		if err := p.Err(); err != nil {
			return err
		}

func (DescribeReportDefinitionsRequest) Send

Send marshals and sends the DescribeReportDefinitions API request.

type PutReportDefinitionInput

type PutReportDefinitionInput struct {

	// Represents the output of the PutReportDefinition operation. The content consists
	// of the detailed metadata and data file information.
	//
	// ReportDefinition is a required field
	ReportDefinition *ReportDefinition `type:"structure" required:"true"`
	// contains filtered or unexported fields
}

Creates a Cost and Usage Report. Please also see https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/PutReportDefinitionRequest

func (PutReportDefinitionInput) GoString

func (s PutReportDefinitionInput) GoString() string

GoString returns the string representation

func (PutReportDefinitionInput) String

func (s PutReportDefinitionInput) String() string

String returns the string representation

func (*PutReportDefinitionInput) Validate

func (s *PutReportDefinitionInput) Validate() error

Validate inspects the fields of the type to determine if they are valid.

type PutReportDefinitionOutput

type PutReportDefinitionOutput struct {
	// contains filtered or unexported fields
}

If the action is successful, the service sends back an HTTP 200 response with an empty HTTP body. Please also see https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/PutReportDefinitionResponse

func (PutReportDefinitionOutput) GoString

func (s PutReportDefinitionOutput) GoString() string

GoString returns the string representation

func (PutReportDefinitionOutput) SDKResponseMetadata

func (s PutReportDefinitionOutput) SDKResponseMetadata() aws.Response

SDKResponseMetdata return sthe response metadata for the API.

func (PutReportDefinitionOutput) String

func (s PutReportDefinitionOutput) String() string

String returns the string representation

type PutReportDefinitionRequest

type PutReportDefinitionRequest struct {
	*aws.Request
	Input *PutReportDefinitionInput
	Copy  func(*PutReportDefinitionInput) PutReportDefinitionRequest
}

PutReportDefinitionRequest is a API request type for the PutReportDefinition API operation.

func (PutReportDefinitionRequest) Send

Send marshals and sends the PutReportDefinition API request.

type ReportDefinition

type ReportDefinition struct {

	// A list of manifests that you want Amazon Web Services to create for this
	// report.
	AdditionalArtifacts []AdditionalArtifact `type:"list"`

	// A list of strings that indicate additional content that Amazon Web Services
	// includes in the report, such as individual resource IDs.
	//
	// AdditionalSchemaElements is a required field
	AdditionalSchemaElements []SchemaElement `type:"list" required:"true"`

	// The compression format that AWS uses for the report.
	//
	// Compression is a required field
	Compression CompressionFormat `type:"string" required:"true" enum:"true"`

	// The format that AWS saves the report in.
	//
	// Format is a required field
	Format ReportFormat `type:"string" required:"true" enum:"true"`

	// Whether you want Amazon Web Services to update your reports after they have
	// been finalized if Amazon Web Services detects charges related to previous
	// months. These charges can include refunds, credits, or support fees.
	RefreshClosedReports *bool `type:"boolean"`

	// The name of the report that you want to create. The name must be unique,
	// is case sensitive, and can't include spaces.
	//
	// ReportName is a required field
	ReportName *string `type:"string" required:"true"`

	// Whether you want Amazon Web Services to overwrite the previous version of
	// each report or to deliver the report in addition to the previous versions.
	ReportVersioning ReportVersioning `type:"string" enum:"true"`

	// The S3 bucket where AWS delivers the report.
	//
	// S3Bucket is a required field
	S3Bucket *string `type:"string" required:"true"`

	// The prefix that AWS adds to the report name when AWS delivers the report.
	// Your prefix can't include spaces.
	//
	// S3Prefix is a required field
	S3Prefix *string `type:"string" required:"true"`

	// The region of the S3 bucket that AWS delivers the report into.
	//
	// S3Region is a required field
	S3Region AWSRegion `type:"string" required:"true" enum:"true"`

	// The length of time covered by the report.
	//
	// TimeUnit is a required field
	TimeUnit TimeUnit `type:"string" required:"true" enum:"true"`
	// contains filtered or unexported fields
}

The definition of AWS Cost and Usage Report. You can specify the report name, time unit, report format, compression format, S3 bucket, additional artifacts, and schema elements in the definition. Please also see https://docs.aws.amazon.com/goto/WebAPI/cur-2017-01-06/ReportDefinition

func (ReportDefinition) GoString

func (s ReportDefinition) GoString() string

GoString returns the string representation

func (ReportDefinition) String

func (s ReportDefinition) String() string

String returns the string representation

func (*ReportDefinition) Validate

func (s *ReportDefinition) Validate() error

Validate inspects the fields of the type to determine if they are valid.

type ReportFormat

type ReportFormat string

The format that AWS saves the report in.

const (
	ReportFormatTextOrcsv ReportFormat = "textORcsv"
	ReportFormatParquet   ReportFormat = "Parquet"
)

Enum values for ReportFormat

func (ReportFormat) MarshalValue

func (enum ReportFormat) MarshalValue() (string, error)

func (ReportFormat) MarshalValueBuf

func (enum ReportFormat) MarshalValueBuf(b []byte) ([]byte, error)

type ReportVersioning

type ReportVersioning string
const (
	ReportVersioningCreateNewReport ReportVersioning = "CREATE_NEW_REPORT"
	ReportVersioningOverwriteReport ReportVersioning = "OVERWRITE_REPORT"
)

Enum values for ReportVersioning

func (ReportVersioning) MarshalValue

func (enum ReportVersioning) MarshalValue() (string, error)

func (ReportVersioning) MarshalValueBuf

func (enum ReportVersioning) MarshalValueBuf(b []byte) ([]byte, error)

type SchemaElement

type SchemaElement string

Whether or not AWS includes resource IDs in the report.

const (
	SchemaElementResources SchemaElement = "RESOURCES"
)

Enum values for SchemaElement

func (SchemaElement) MarshalValue

func (enum SchemaElement) MarshalValue() (string, error)

func (SchemaElement) MarshalValueBuf

func (enum SchemaElement) MarshalValueBuf(b []byte) ([]byte, error)

type TimeUnit

type TimeUnit string

The length of time covered by the report.

const (
	TimeUnitHourly TimeUnit = "HOURLY"
	TimeUnitDaily  TimeUnit = "DAILY"
)

Enum values for TimeUnit

func (TimeUnit) MarshalValue

func (enum TimeUnit) MarshalValue() (string, error)

func (TimeUnit) MarshalValueBuf

func (enum TimeUnit) MarshalValueBuf(b []byte) ([]byte, error)

Source Files

api.go doc.go errors.go service.go

Directories

PathSynopsis
service/costandusagereportservice/costandusagereportserviceifacePackage costandusagereportserviceiface provides an interface to enable mocking the AWS Cost and Usage Report Service service client for testing your code.
Version
v0.8.0
Published
Apr 25, 2019
Platform
linux/amd64
Imports
5 packages
Last checked
3 minutes ago

Tools for package owners.