// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. package marketplacemetering import ( "fmt" "time" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awsutil" "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/private/protocol" ) const opBatchMeterUsage = "BatchMeterUsage" // BatchMeterUsageRequest generates a "aws/request.Request" representing the // client's request for the BatchMeterUsage operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See BatchMeterUsage for more information on using the BatchMeterUsage // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // Example sending a request using the BatchMeterUsageRequest method. // req, resp := client.BatchMeterUsageRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/meteringmarketplace-2016-01-14/BatchMeterUsage func (c *MarketplaceMetering) BatchMeterUsageRequest(input *BatchMeterUsageInput) (req *request.Request, output *BatchMeterUsageOutput) { op := &request.Operation{ Name: opBatchMeterUsage, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &BatchMeterUsageInput{} } output = &BatchMeterUsageOutput{} req = c.newRequest(op, input, output) return } // BatchMeterUsage API operation for AWSMarketplace Metering. // // BatchMeterUsage is called from a SaaS application listed on AWS Marketplace // to post metering records for a set of customers. // // For identical requests, the API is idempotent; requests can be retried with // the same records or a subset of the input records. // // Every request to BatchMeterUsage is for one product. If you need to meter // usage for multiple products, you must make multiple calls to BatchMeterUsage. // // Usage records are expected to be submitted as quickly as possible after the // event that is being recorded, and are not accepted more than 6 hours after // the event. // // BatchMeterUsage can process up to 25 UsageRecords at a time. // // A UsageRecord can optionally include multiple usage allocations, to provide // customers with usage data split into buckets by tags that you define (or // allow the customer to define). // // BatchMeterUsage returns a list of UsageRecordResult objects, showing the // result for each UsageRecord, as well as a list of UnprocessedRecords, indicating // errors in the service side that you should retry. // // BatchMeterUsage requests must be less than 1MB in size. // // For an example of using BatchMeterUsage, see BatchMeterUsage code example // (https://docs.aws.amazon.com/marketplace/latest/userguide/saas-code-examples.html#saas-batchmeterusage-example) // in the AWS Marketplace Seller Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWSMarketplace Metering's // API operation BatchMeterUsage for usage and error information. // // Returned Error Types: // // - InternalServiceErrorException // An internal error has occurred. Retry your request. If the problem persists, // post a message with details on the AWS forums. // // - InvalidProductCodeException // The product code passed does not match the product code used for publishing // the product. // // - InvalidUsageDimensionException // The usage dimension does not match one of the UsageDimensions associated // with products. // // - InvalidTagException // The tag is invalid, or the number of tags is greater than 5. // // - InvalidUsageAllocationsException // The usage allocation objects are invalid, or the number of allocations is // greater than 500 for a single usage record. // // - InvalidCustomerIdentifierException // You have metered usage for a CustomerIdentifier that does not exist. // // - TimestampOutOfBoundsException // The timestamp value passed in the UsageRecord is out of allowed range. // // For BatchMeterUsage, if any of the records are outside of the allowed range, // the entire batch is not processed. You must remove invalid records and try // again. // // - ThrottlingException // The calls to the API are throttled. // // - DisabledApiException // The API is disabled in the Region. // // See also, https://docs.aws.amazon.com/goto/WebAPI/meteringmarketplace-2016-01-14/BatchMeterUsage func (c *MarketplaceMetering) BatchMeterUsage(input *BatchMeterUsageInput) (*BatchMeterUsageOutput, error) { req, out := c.BatchMeterUsageRequest(input) return out, req.Send() } // BatchMeterUsageWithContext is the same as BatchMeterUsage with the addition of // the ability to pass a context and additional request options. // // See BatchMeterUsage for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *MarketplaceMetering) BatchMeterUsageWithContext(ctx aws.Context, input *BatchMeterUsageInput, opts ...request.Option) (*BatchMeterUsageOutput, error) { req, out := c.BatchMeterUsageRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opMeterUsage = "MeterUsage" // MeterUsageRequest generates a "aws/request.Request" representing the // client's request for the MeterUsage operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See MeterUsage for more information on using the MeterUsage // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // Example sending a request using the MeterUsageRequest method. // req, resp := client.MeterUsageRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/meteringmarketplace-2016-01-14/MeterUsage func (c *MarketplaceMetering) MeterUsageRequest(input *MeterUsageInput) (req *request.Request, output *MeterUsageOutput) { op := &request.Operation{ Name: opMeterUsage, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &MeterUsageInput{} } output = &MeterUsageOutput{} req = c.newRequest(op, input, output) return } // MeterUsage API operation for AWSMarketplace Metering. // // API to emit metering records. For identical requests, the API is idempotent. // It simply returns the metering record ID. // // MeterUsage is authenticated on the buyer's AWS account using credentials // from the EC2 instance, ECS task, or EKS pod. // // MeterUsage can optionally include multiple usage allocations, to provide // customers with usage data split into buckets by tags that you define (or // allow the customer to define). // // Usage records are expected to be submitted as quickly as possible after the // event that is being recorded, and are not accepted more than 6 hours after // the event. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWSMarketplace Metering's // API operation MeterUsage for usage and error information. // // Returned Error Types: // // - InternalServiceErrorException // An internal error has occurred. Retry your request. If the problem persists, // post a message with details on the AWS forums. // // - InvalidProductCodeException // The product code passed does not match the product code used for publishing // the product. // // - InvalidUsageDimensionException // The usage dimension does not match one of the UsageDimensions associated // with products. // // - InvalidTagException // The tag is invalid, or the number of tags is greater than 5. // // - InvalidUsageAllocationsException // The usage allocation objects are invalid, or the number of allocations is // greater than 500 for a single usage record. // // - InvalidEndpointRegionException // The endpoint being called is in a AWS Region different from your EC2 instance, // ECS task, or EKS pod. The Region of the Metering Service endpoint and the // AWS Region of the resource must match. // // - TimestampOutOfBoundsException // The timestamp value passed in the UsageRecord is out of allowed range. // // For BatchMeterUsage, if any of the records are outside of the allowed range, // the entire batch is not processed. You must remove invalid records and try // again. // // - DuplicateRequestException // A metering record has already been emitted by the same EC2 instance, ECS // task, or EKS pod for the given {usageDimension, timestamp} with a different // usageQuantity. // // - ThrottlingException // The calls to the API are throttled. // // - CustomerNotEntitledException // Exception thrown when the customer does not have a valid subscription for // the product. // // See also, https://docs.aws.amazon.com/goto/WebAPI/meteringmarketplace-2016-01-14/MeterUsage func (c *MarketplaceMetering) MeterUsage(input *MeterUsageInput) (*MeterUsageOutput, error) { req, out := c.MeterUsageRequest(input) return out, req.Send() } // MeterUsageWithContext is the same as MeterUsage with the addition of // the ability to pass a context and additional request options. // // See MeterUsage for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *MarketplaceMetering) MeterUsageWithContext(ctx aws.Context, input *MeterUsageInput, opts ...request.Option) (*MeterUsageOutput, error) { req, out := c.MeterUsageRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opRegisterUsage = "RegisterUsage" // RegisterUsageRequest generates a "aws/request.Request" representing the // client's request for the RegisterUsage operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See RegisterUsage for more information on using the RegisterUsage // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // Example sending a request using the RegisterUsageRequest method. // req, resp := client.RegisterUsageRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/meteringmarketplace-2016-01-14/RegisterUsage func (c *MarketplaceMetering) RegisterUsageRequest(input *RegisterUsageInput) (req *request.Request, output *RegisterUsageOutput) { op := &request.Operation{ Name: opRegisterUsage, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &RegisterUsageInput{} } output = &RegisterUsageOutput{} req = c.newRequest(op, input, output) return } // RegisterUsage API operation for AWSMarketplace Metering. // // Paid container software products sold through AWS Marketplace must integrate // with the AWS Marketplace Metering Service and call the RegisterUsage operation // for software entitlement and metering. Free and BYOL products for Amazon // ECS or Amazon EKS aren't required to call RegisterUsage, but you may choose // to do so if you would like to receive usage data in your seller reports. // The sections below explain the behavior of RegisterUsage. RegisterUsage performs // two primary functions: metering and entitlement. // // - Entitlement: RegisterUsage allows you to verify that the customer running // your paid software is subscribed to your product on AWS Marketplace, enabling // you to guard against unauthorized use. Your container image that integrates // with RegisterUsage is only required to guard against unauthorized use // at container startup, as such a CustomerNotSubscribedException or PlatformNotSupportedException // will only be thrown on the initial call to RegisterUsage. Subsequent calls // from the same Amazon ECS task instance (e.g. task-id) or Amazon EKS pod // will not throw a CustomerNotSubscribedException, even if the customer // unsubscribes while the Amazon ECS task or Amazon EKS pod is still running. // // - Metering: RegisterUsage meters software use per ECS task, per hour, // or per pod for Amazon EKS with usage prorated to the second. A minimum // of 1 minute of usage applies to tasks that are short lived. For example, // if a customer has a 10 node Amazon ECS or Amazon EKS cluster and a service // configured as a Daemon Set, then Amazon ECS or Amazon EKS will launch // a task on all 10 cluster nodes and the customer will be charged: (10 * // hourly_rate). Metering for software use is automatically handled by the // AWS Marketplace Metering Control Plane -- your software is not required // to perform any metering specific actions, other than call RegisterUsage // once for metering of software use to commence. The AWS Marketplace Metering // Control Plane will also continue to bill customers for running ECS tasks // and Amazon EKS pods, regardless of the customers subscription state, removing // the need for your software to perform entitlement checks at runtime. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWSMarketplace Metering's // API operation RegisterUsage for usage and error information. // // Returned Error Types: // // - InvalidProductCodeException // The product code passed does not match the product code used for publishing // the product. // // - InvalidRegionException // RegisterUsage must be called in the same AWS Region the ECS task was launched // in. This prevents a container from hardcoding a Region (e.g. withRegion(“us-east-1”) // when calling RegisterUsage. // // - InvalidPublicKeyVersionException // Public Key version is invalid. // // - PlatformNotSupportedException // AWS Marketplace does not support metering usage from the underlying platform. // Currently, Amazon ECS, Amazon EKS, and AWS Fargate are supported. // // - CustomerNotEntitledException // Exception thrown when the customer does not have a valid subscription for // the product. // // - ThrottlingException // The calls to the API are throttled. // // - InternalServiceErrorException // An internal error has occurred. Retry your request. If the problem persists, // post a message with details on the AWS forums. // // - DisabledApiException // The API is disabled in the Region. // // See also, https://docs.aws.amazon.com/goto/WebAPI/meteringmarketplace-2016-01-14/RegisterUsage func (c *MarketplaceMetering) RegisterUsage(input *RegisterUsageInput) (*RegisterUsageOutput, error) { req, out := c.RegisterUsageRequest(input) return out, req.Send() } // RegisterUsageWithContext is the same as RegisterUsage with the addition of // the ability to pass a context and additional request options. // // See RegisterUsage for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *MarketplaceMetering) RegisterUsageWithContext(ctx aws.Context, input *RegisterUsageInput, opts ...request.Option) (*RegisterUsageOutput, error) { req, out := c.RegisterUsageRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opResolveCustomer = "ResolveCustomer" // ResolveCustomerRequest generates a "aws/request.Request" representing the // client's request for the ResolveCustomer operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See ResolveCustomer for more information on using the ResolveCustomer // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // Example sending a request using the ResolveCustomerRequest method. // req, resp := client.ResolveCustomerRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/meteringmarketplace-2016-01-14/ResolveCustomer func (c *MarketplaceMetering) ResolveCustomerRequest(input *ResolveCustomerInput) (req *request.Request, output *ResolveCustomerOutput) { op := &request.Operation{ Name: opResolveCustomer, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &ResolveCustomerInput{} } output = &ResolveCustomerOutput{} req = c.newRequest(op, input, output) return } // ResolveCustomer API operation for AWSMarketplace Metering. // // ResolveCustomer is called by a SaaS application during the registration process. // When a buyer visits your website during the registration process, the buyer // submits a registration token through their browser. The registration token // is resolved through this API to obtain a CustomerIdentifier along with the // CustomerAWSAccountId and ProductCode. // // The API needs to called from the seller account id used to publish the SaaS // application to successfully resolve the token. // // For an example of using ResolveCustomer, see ResolveCustomer code example // (https://docs.aws.amazon.com/marketplace/latest/userguide/saas-code-examples.html#saas-resolvecustomer-example) // in the AWS Marketplace Seller Guide. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for AWSMarketplace Metering's // API operation ResolveCustomer for usage and error information. // // Returned Error Types: // // - InvalidTokenException // Registration token is invalid. // // - ExpiredTokenException // The submitted registration token has expired. This can happen if the buyer's // browser takes too long to redirect to your page, the buyer has resubmitted // the registration token, or your application has held on to the registration // token for too long. Your SaaS registration website should redeem this token // as soon as it is submitted by the buyer's browser. // // - ThrottlingException // The calls to the API are throttled. // // - InternalServiceErrorException // An internal error has occurred. Retry your request. If the problem persists, // post a message with details on the AWS forums. // // - DisabledApiException // The API is disabled in the Region. // // See also, https://docs.aws.amazon.com/goto/WebAPI/meteringmarketplace-2016-01-14/ResolveCustomer func (c *MarketplaceMetering) ResolveCustomer(input *ResolveCustomerInput) (*ResolveCustomerOutput, error) { req, out := c.ResolveCustomerRequest(input) return out, req.Send() } // ResolveCustomerWithContext is the same as ResolveCustomer with the addition of // the ability to pass a context and additional request options. // // See ResolveCustomer for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *MarketplaceMetering) ResolveCustomerWithContext(ctx aws.Context, input *ResolveCustomerInput, opts ...request.Option) (*ResolveCustomerOutput, error) { req, out := c.ResolveCustomerRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } // A BatchMeterUsageRequest contains UsageRecords, which indicate quantities // of usage within your application. type BatchMeterUsageInput struct { _ struct{} `type:"structure"` // Product code is used to uniquely identify a product in AWS Marketplace. The // product code should be the same as the one used during the publishing of // a new product. // // ProductCode is a required field ProductCode *string `min:"1" type:"string" required:"true"` // The set of UsageRecords to submit. BatchMeterUsage accepts up to 25 UsageRecords // at a time. // // UsageRecords is a required field UsageRecords []*UsageRecord `type:"list" required:"true"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s BatchMeterUsageInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s BatchMeterUsageInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *BatchMeterUsageInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "BatchMeterUsageInput"} if s.ProductCode == nil { invalidParams.Add(request.NewErrParamRequired("ProductCode")) } if s.ProductCode != nil && len(*s.ProductCode) < 1 { invalidParams.Add(request.NewErrParamMinLen("ProductCode", 1)) } if s.UsageRecords == nil { invalidParams.Add(request.NewErrParamRequired("UsageRecords")) } if s.UsageRecords != nil { for i, v := range s.UsageRecords { if v == nil { continue } if err := v.Validate(); err != nil { invalidParams.AddNested(fmt.Sprintf("%s[%v]", "UsageRecords", i), err.(request.ErrInvalidParams)) } } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetProductCode sets the ProductCode field's value. func (s *BatchMeterUsageInput) SetProductCode(v string) *BatchMeterUsageInput { s.ProductCode = &v return s } // SetUsageRecords sets the UsageRecords field's value. func (s *BatchMeterUsageInput) SetUsageRecords(v []*UsageRecord) *BatchMeterUsageInput { s.UsageRecords = v return s } // Contains the UsageRecords processed by BatchMeterUsage and any records that // have failed due to transient error. type BatchMeterUsageOutput struct { _ struct{} `type:"structure"` // Contains all UsageRecords processed by BatchMeterUsage. These records were // either honored by AWS Marketplace Metering Service or were invalid. Invalid // records should be fixed before being resubmitted. Results []*UsageRecordResult `type:"list"` // Contains all UsageRecords that were not processed by BatchMeterUsage. This // is a list of UsageRecords. You can retry the failed request by making another // BatchMeterUsage call with this list as input in the BatchMeterUsageRequest. UnprocessedRecords []*UsageRecord `type:"list"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s BatchMeterUsageOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s BatchMeterUsageOutput) GoString() string { return s.String() } // SetResults sets the Results field's value. func (s *BatchMeterUsageOutput) SetResults(v []*UsageRecordResult) *BatchMeterUsageOutput { s.Results = v return s } // SetUnprocessedRecords sets the UnprocessedRecords field's value. func (s *BatchMeterUsageOutput) SetUnprocessedRecords(v []*UsageRecord) *BatchMeterUsageOutput { s.UnprocessedRecords = v return s } // Exception thrown when the customer does not have a valid subscription for // the product. type CustomerNotEntitledException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s CustomerNotEntitledException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s CustomerNotEntitledException) GoString() string { return s.String() } func newErrorCustomerNotEntitledException(v protocol.ResponseMetadata) error { return &CustomerNotEntitledException{ RespMetadata: v, } } // Code returns the exception type name. func (s *CustomerNotEntitledException) Code() string { return "CustomerNotEntitledException" } // Message returns the exception's message. func (s *CustomerNotEntitledException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *CustomerNotEntitledException) OrigErr() error { return nil } func (s *CustomerNotEntitledException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *CustomerNotEntitledException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *CustomerNotEntitledException) RequestID() string { return s.RespMetadata.RequestID } // The API is disabled in the Region. type DisabledApiException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s DisabledApiException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s DisabledApiException) GoString() string { return s.String() } func newErrorDisabledApiException(v protocol.ResponseMetadata) error { return &DisabledApiException{ RespMetadata: v, } } // Code returns the exception type name. func (s *DisabledApiException) Code() string { return "DisabledApiException" } // Message returns the exception's message. func (s *DisabledApiException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *DisabledApiException) OrigErr() error { return nil } func (s *DisabledApiException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *DisabledApiException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *DisabledApiException) RequestID() string { return s.RespMetadata.RequestID } // A metering record has already been emitted by the same EC2 instance, ECS // task, or EKS pod for the given {usageDimension, timestamp} with a different // usageQuantity. type DuplicateRequestException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s DuplicateRequestException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s DuplicateRequestException) GoString() string { return s.String() } func newErrorDuplicateRequestException(v protocol.ResponseMetadata) error { return &DuplicateRequestException{ RespMetadata: v, } } // Code returns the exception type name. func (s *DuplicateRequestException) Code() string { return "DuplicateRequestException" } // Message returns the exception's message. func (s *DuplicateRequestException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *DuplicateRequestException) OrigErr() error { return nil } func (s *DuplicateRequestException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *DuplicateRequestException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *DuplicateRequestException) RequestID() string { return s.RespMetadata.RequestID } // The submitted registration token has expired. This can happen if the buyer's // browser takes too long to redirect to your page, the buyer has resubmitted // the registration token, or your application has held on to the registration // token for too long. Your SaaS registration website should redeem this token // as soon as it is submitted by the buyer's browser. type ExpiredTokenException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s ExpiredTokenException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s ExpiredTokenException) GoString() string { return s.String() } func newErrorExpiredTokenException(v protocol.ResponseMetadata) error { return &ExpiredTokenException{ RespMetadata: v, } } // Code returns the exception type name. func (s *ExpiredTokenException) Code() string { return "ExpiredTokenException" } // Message returns the exception's message. func (s *ExpiredTokenException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *ExpiredTokenException) OrigErr() error { return nil } func (s *ExpiredTokenException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *ExpiredTokenException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *ExpiredTokenException) RequestID() string { return s.RespMetadata.RequestID } // An internal error has occurred. Retry your request. If the problem persists, // post a message with details on the AWS forums. type InternalServiceErrorException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InternalServiceErrorException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InternalServiceErrorException) GoString() string { return s.String() } func newErrorInternalServiceErrorException(v protocol.ResponseMetadata) error { return &InternalServiceErrorException{ RespMetadata: v, } } // Code returns the exception type name. func (s *InternalServiceErrorException) Code() string { return "InternalServiceErrorException" } // Message returns the exception's message. func (s *InternalServiceErrorException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *InternalServiceErrorException) OrigErr() error { return nil } func (s *InternalServiceErrorException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *InternalServiceErrorException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *InternalServiceErrorException) RequestID() string { return s.RespMetadata.RequestID } // You have metered usage for a CustomerIdentifier that does not exist. type InvalidCustomerIdentifierException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InvalidCustomerIdentifierException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InvalidCustomerIdentifierException) GoString() string { return s.String() } func newErrorInvalidCustomerIdentifierException(v protocol.ResponseMetadata) error { return &InvalidCustomerIdentifierException{ RespMetadata: v, } } // Code returns the exception type name. func (s *InvalidCustomerIdentifierException) Code() string { return "InvalidCustomerIdentifierException" } // Message returns the exception's message. func (s *InvalidCustomerIdentifierException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *InvalidCustomerIdentifierException) OrigErr() error { return nil } func (s *InvalidCustomerIdentifierException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *InvalidCustomerIdentifierException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *InvalidCustomerIdentifierException) RequestID() string { return s.RespMetadata.RequestID } // The endpoint being called is in a AWS Region different from your EC2 instance, // ECS task, or EKS pod. The Region of the Metering Service endpoint and the // AWS Region of the resource must match. type InvalidEndpointRegionException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InvalidEndpointRegionException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InvalidEndpointRegionException) GoString() string { return s.String() } func newErrorInvalidEndpointRegionException(v protocol.ResponseMetadata) error { return &InvalidEndpointRegionException{ RespMetadata: v, } } // Code returns the exception type name. func (s *InvalidEndpointRegionException) Code() string { return "InvalidEndpointRegionException" } // Message returns the exception's message. func (s *InvalidEndpointRegionException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *InvalidEndpointRegionException) OrigErr() error { return nil } func (s *InvalidEndpointRegionException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *InvalidEndpointRegionException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *InvalidEndpointRegionException) RequestID() string { return s.RespMetadata.RequestID } // The product code passed does not match the product code used for publishing // the product. type InvalidProductCodeException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InvalidProductCodeException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InvalidProductCodeException) GoString() string { return s.String() } func newErrorInvalidProductCodeException(v protocol.ResponseMetadata) error { return &InvalidProductCodeException{ RespMetadata: v, } } // Code returns the exception type name. func (s *InvalidProductCodeException) Code() string { return "InvalidProductCodeException" } // Message returns the exception's message. func (s *InvalidProductCodeException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *InvalidProductCodeException) OrigErr() error { return nil } func (s *InvalidProductCodeException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *InvalidProductCodeException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *InvalidProductCodeException) RequestID() string { return s.RespMetadata.RequestID } // Public Key version is invalid. type InvalidPublicKeyVersionException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InvalidPublicKeyVersionException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InvalidPublicKeyVersionException) GoString() string { return s.String() } func newErrorInvalidPublicKeyVersionException(v protocol.ResponseMetadata) error { return &InvalidPublicKeyVersionException{ RespMetadata: v, } } // Code returns the exception type name. func (s *InvalidPublicKeyVersionException) Code() string { return "InvalidPublicKeyVersionException" } // Message returns the exception's message. func (s *InvalidPublicKeyVersionException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *InvalidPublicKeyVersionException) OrigErr() error { return nil } func (s *InvalidPublicKeyVersionException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *InvalidPublicKeyVersionException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *InvalidPublicKeyVersionException) RequestID() string { return s.RespMetadata.RequestID } // RegisterUsage must be called in the same AWS Region the ECS task was launched // in. This prevents a container from hardcoding a Region (e.g. withRegion(“us-east-1”) // when calling RegisterUsage. type InvalidRegionException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InvalidRegionException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InvalidRegionException) GoString() string { return s.String() } func newErrorInvalidRegionException(v protocol.ResponseMetadata) error { return &InvalidRegionException{ RespMetadata: v, } } // Code returns the exception type name. func (s *InvalidRegionException) Code() string { return "InvalidRegionException" } // Message returns the exception's message. func (s *InvalidRegionException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *InvalidRegionException) OrigErr() error { return nil } func (s *InvalidRegionException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *InvalidRegionException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *InvalidRegionException) RequestID() string { return s.RespMetadata.RequestID } // The tag is invalid, or the number of tags is greater than 5. type InvalidTagException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InvalidTagException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InvalidTagException) GoString() string { return s.String() } func newErrorInvalidTagException(v protocol.ResponseMetadata) error { return &InvalidTagException{ RespMetadata: v, } } // Code returns the exception type name. func (s *InvalidTagException) Code() string { return "InvalidTagException" } // Message returns the exception's message. func (s *InvalidTagException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *InvalidTagException) OrigErr() error { return nil } func (s *InvalidTagException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *InvalidTagException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *InvalidTagException) RequestID() string { return s.RespMetadata.RequestID } // Registration token is invalid. type InvalidTokenException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InvalidTokenException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InvalidTokenException) GoString() string { return s.String() } func newErrorInvalidTokenException(v protocol.ResponseMetadata) error { return &InvalidTokenException{ RespMetadata: v, } } // Code returns the exception type name. func (s *InvalidTokenException) Code() string { return "InvalidTokenException" } // Message returns the exception's message. func (s *InvalidTokenException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *InvalidTokenException) OrigErr() error { return nil } func (s *InvalidTokenException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *InvalidTokenException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *InvalidTokenException) RequestID() string { return s.RespMetadata.RequestID } // The usage allocation objects are invalid, or the number of allocations is // greater than 500 for a single usage record. type InvalidUsageAllocationsException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InvalidUsageAllocationsException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InvalidUsageAllocationsException) GoString() string { return s.String() } func newErrorInvalidUsageAllocationsException(v protocol.ResponseMetadata) error { return &InvalidUsageAllocationsException{ RespMetadata: v, } } // Code returns the exception type name. func (s *InvalidUsageAllocationsException) Code() string { return "InvalidUsageAllocationsException" } // Message returns the exception's message. func (s *InvalidUsageAllocationsException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *InvalidUsageAllocationsException) OrigErr() error { return nil } func (s *InvalidUsageAllocationsException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *InvalidUsageAllocationsException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *InvalidUsageAllocationsException) RequestID() string { return s.RespMetadata.RequestID } // The usage dimension does not match one of the UsageDimensions associated // with products. type InvalidUsageDimensionException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InvalidUsageDimensionException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s InvalidUsageDimensionException) GoString() string { return s.String() } func newErrorInvalidUsageDimensionException(v protocol.ResponseMetadata) error { return &InvalidUsageDimensionException{ RespMetadata: v, } } // Code returns the exception type name. func (s *InvalidUsageDimensionException) Code() string { return "InvalidUsageDimensionException" } // Message returns the exception's message. func (s *InvalidUsageDimensionException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *InvalidUsageDimensionException) OrigErr() error { return nil } func (s *InvalidUsageDimensionException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *InvalidUsageDimensionException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *InvalidUsageDimensionException) RequestID() string { return s.RespMetadata.RequestID } type MeterUsageInput struct { _ struct{} `type:"structure"` // Checks whether you have the permissions required for the action, but does // not make the request. If you have the permissions, the request returns DryRunOperation; // otherwise, it returns UnauthorizedException. Defaults to false if not specified. DryRun *bool `type:"boolean"` // Product code is used to uniquely identify a product in AWS Marketplace. The // product code should be the same as the one used during the publishing of // a new product. // // ProductCode is a required field ProductCode *string `min:"1" type:"string" required:"true"` // Timestamp, in UTC, for which the usage is being reported. Your application // can meter usage for up to one hour in the past. Make sure the timestamp value // is not before the start of the software usage. // // Timestamp is a required field Timestamp *time.Time `type:"timestamp" required:"true"` // The set of UsageAllocations to submit. // // The sum of all UsageAllocation quantities must equal the UsageQuantity of // the MeterUsage request, and each UsageAllocation must have a unique set of // tags (include no tags). UsageAllocations []*UsageAllocation `min:"1" type:"list"` // It will be one of the fcp dimension name provided during the publishing of // the product. // // UsageDimension is a required field UsageDimension *string `min:"1" type:"string" required:"true"` // Consumption value for the hour. Defaults to 0 if not specified. UsageQuantity *int64 `type:"integer"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s MeterUsageInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s MeterUsageInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *MeterUsageInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "MeterUsageInput"} if s.ProductCode == nil { invalidParams.Add(request.NewErrParamRequired("ProductCode")) } if s.ProductCode != nil && len(*s.ProductCode) < 1 { invalidParams.Add(request.NewErrParamMinLen("ProductCode", 1)) } if s.Timestamp == nil { invalidParams.Add(request.NewErrParamRequired("Timestamp")) } if s.UsageAllocations != nil && len(s.UsageAllocations) < 1 { invalidParams.Add(request.NewErrParamMinLen("UsageAllocations", 1)) } if s.UsageDimension == nil { invalidParams.Add(request.NewErrParamRequired("UsageDimension")) } if s.UsageDimension != nil && len(*s.UsageDimension) < 1 { invalidParams.Add(request.NewErrParamMinLen("UsageDimension", 1)) } if s.UsageAllocations != nil { for i, v := range s.UsageAllocations { if v == nil { continue } if err := v.Validate(); err != nil { invalidParams.AddNested(fmt.Sprintf("%s[%v]", "UsageAllocations", i), err.(request.ErrInvalidParams)) } } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetDryRun sets the DryRun field's value. func (s *MeterUsageInput) SetDryRun(v bool) *MeterUsageInput { s.DryRun = &v return s } // SetProductCode sets the ProductCode field's value. func (s *MeterUsageInput) SetProductCode(v string) *MeterUsageInput { s.ProductCode = &v return s } // SetTimestamp sets the Timestamp field's value. func (s *MeterUsageInput) SetTimestamp(v time.Time) *MeterUsageInput { s.Timestamp = &v return s } // SetUsageAllocations sets the UsageAllocations field's value. func (s *MeterUsageInput) SetUsageAllocations(v []*UsageAllocation) *MeterUsageInput { s.UsageAllocations = v return s } // SetUsageDimension sets the UsageDimension field's value. func (s *MeterUsageInput) SetUsageDimension(v string) *MeterUsageInput { s.UsageDimension = &v return s } // SetUsageQuantity sets the UsageQuantity field's value. func (s *MeterUsageInput) SetUsageQuantity(v int64) *MeterUsageInput { s.UsageQuantity = &v return s } type MeterUsageOutput struct { _ struct{} `type:"structure"` // Metering record id. MeteringRecordId *string `type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s MeterUsageOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s MeterUsageOutput) GoString() string { return s.String() } // SetMeteringRecordId sets the MeteringRecordId field's value. func (s *MeterUsageOutput) SetMeteringRecordId(v string) *MeterUsageOutput { s.MeteringRecordId = &v return s } // AWS Marketplace does not support metering usage from the underlying platform. // Currently, Amazon ECS, Amazon EKS, and AWS Fargate are supported. type PlatformNotSupportedException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s PlatformNotSupportedException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s PlatformNotSupportedException) GoString() string { return s.String() } func newErrorPlatformNotSupportedException(v protocol.ResponseMetadata) error { return &PlatformNotSupportedException{ RespMetadata: v, } } // Code returns the exception type name. func (s *PlatformNotSupportedException) Code() string { return "PlatformNotSupportedException" } // Message returns the exception's message. func (s *PlatformNotSupportedException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *PlatformNotSupportedException) OrigErr() error { return nil } func (s *PlatformNotSupportedException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *PlatformNotSupportedException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *PlatformNotSupportedException) RequestID() string { return s.RespMetadata.RequestID } type RegisterUsageInput struct { _ struct{} `type:"structure"` // (Optional) To scope down the registration to a specific running software // instance and guard against replay attacks. Nonce *string `type:"string"` // Product code is used to uniquely identify a product in AWS Marketplace. The // product code should be the same as the one used during the publishing of // a new product. // // ProductCode is a required field ProductCode *string `min:"1" type:"string" required:"true"` // Public Key Version provided by AWS Marketplace // // PublicKeyVersion is a required field PublicKeyVersion *int64 `min:"1" type:"integer" required:"true"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s RegisterUsageInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s RegisterUsageInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *RegisterUsageInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "RegisterUsageInput"} if s.ProductCode == nil { invalidParams.Add(request.NewErrParamRequired("ProductCode")) } if s.ProductCode != nil && len(*s.ProductCode) < 1 { invalidParams.Add(request.NewErrParamMinLen("ProductCode", 1)) } if s.PublicKeyVersion == nil { invalidParams.Add(request.NewErrParamRequired("PublicKeyVersion")) } if s.PublicKeyVersion != nil && *s.PublicKeyVersion < 1 { invalidParams.Add(request.NewErrParamMinValue("PublicKeyVersion", 1)) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetNonce sets the Nonce field's value. func (s *RegisterUsageInput) SetNonce(v string) *RegisterUsageInput { s.Nonce = &v return s } // SetProductCode sets the ProductCode field's value. func (s *RegisterUsageInput) SetProductCode(v string) *RegisterUsageInput { s.ProductCode = &v return s } // SetPublicKeyVersion sets the PublicKeyVersion field's value. func (s *RegisterUsageInput) SetPublicKeyVersion(v int64) *RegisterUsageInput { s.PublicKeyVersion = &v return s } type RegisterUsageOutput struct { _ struct{} `type:"structure"` // (Optional) Only included when public key version has expired PublicKeyRotationTimestamp *time.Time `type:"timestamp"` // JWT Token Signature *string `type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s RegisterUsageOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s RegisterUsageOutput) GoString() string { return s.String() } // SetPublicKeyRotationTimestamp sets the PublicKeyRotationTimestamp field's value. func (s *RegisterUsageOutput) SetPublicKeyRotationTimestamp(v time.Time) *RegisterUsageOutput { s.PublicKeyRotationTimestamp = &v return s } // SetSignature sets the Signature field's value. func (s *RegisterUsageOutput) SetSignature(v string) *RegisterUsageOutput { s.Signature = &v return s } // Contains input to the ResolveCustomer operation. type ResolveCustomerInput struct { _ struct{} `type:"structure"` // When a buyer visits your website during the registration process, the buyer // submits a registration token through the browser. The registration token // is resolved to obtain a CustomerIdentifier along with the CustomerAWSAccountId // and ProductCode. // // RegistrationToken is a required field RegistrationToken *string `type:"string" required:"true"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s ResolveCustomerInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s ResolveCustomerInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *ResolveCustomerInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "ResolveCustomerInput"} if s.RegistrationToken == nil { invalidParams.Add(request.NewErrParamRequired("RegistrationToken")) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetRegistrationToken sets the RegistrationToken field's value. func (s *ResolveCustomerInput) SetRegistrationToken(v string) *ResolveCustomerInput { s.RegistrationToken = &v return s } // The result of the ResolveCustomer operation. Contains the CustomerIdentifier // along with the CustomerAWSAccountId and ProductCode. type ResolveCustomerOutput struct { _ struct{} `type:"structure"` // The CustomerAWSAccountId provides the AWS account ID associated with the // CustomerIdentifier for the individual customer. CustomerAWSAccountId *string `min:"1" type:"string"` // The CustomerIdentifier is used to identify an individual customer in your // application. Calls to BatchMeterUsage require CustomerIdentifiers for each // UsageRecord. CustomerIdentifier *string `min:"1" type:"string"` // The product code is returned to confirm that the buyer is registering for // your product. Subsequent BatchMeterUsage calls should be made using this // product code. ProductCode *string `min:"1" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s ResolveCustomerOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s ResolveCustomerOutput) GoString() string { return s.String() } // SetCustomerAWSAccountId sets the CustomerAWSAccountId field's value. func (s *ResolveCustomerOutput) SetCustomerAWSAccountId(v string) *ResolveCustomerOutput { s.CustomerAWSAccountId = &v return s } // SetCustomerIdentifier sets the CustomerIdentifier field's value. func (s *ResolveCustomerOutput) SetCustomerIdentifier(v string) *ResolveCustomerOutput { s.CustomerIdentifier = &v return s } // SetProductCode sets the ProductCode field's value. func (s *ResolveCustomerOutput) SetProductCode(v string) *ResolveCustomerOutput { s.ProductCode = &v return s } // Metadata assigned to an allocation. Each tag is made up of a key and a value. type Tag struct { _ struct{} `type:"structure"` // One part of a key-value pair that makes up a tag. A key is a label that acts // like a category for the specific tag values. // // Key is a required field Key *string `min:"1" type:"string" required:"true"` // One part of a key-value pair that makes up a tag. A value acts as a descriptor // within a tag category (key). The value can be empty or null. // // Value is a required field Value *string `min:"1" type:"string" required:"true"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s Tag) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s Tag) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *Tag) Validate() error { invalidParams := request.ErrInvalidParams{Context: "Tag"} if s.Key == nil { invalidParams.Add(request.NewErrParamRequired("Key")) } if s.Key != nil && len(*s.Key) < 1 { invalidParams.Add(request.NewErrParamMinLen("Key", 1)) } if s.Value == nil { invalidParams.Add(request.NewErrParamRequired("Value")) } if s.Value != nil && len(*s.Value) < 1 { invalidParams.Add(request.NewErrParamMinLen("Value", 1)) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetKey sets the Key field's value. func (s *Tag) SetKey(v string) *Tag { s.Key = &v return s } // SetValue sets the Value field's value. func (s *Tag) SetValue(v string) *Tag { s.Value = &v return s } // The calls to the API are throttled. type ThrottlingException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s ThrottlingException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s ThrottlingException) GoString() string { return s.String() } func newErrorThrottlingException(v protocol.ResponseMetadata) error { return &ThrottlingException{ RespMetadata: v, } } // Code returns the exception type name. func (s *ThrottlingException) Code() string { return "ThrottlingException" } // Message returns the exception's message. func (s *ThrottlingException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *ThrottlingException) OrigErr() error { return nil } func (s *ThrottlingException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *ThrottlingException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *ThrottlingException) RequestID() string { return s.RespMetadata.RequestID } // The timestamp value passed in the UsageRecord is out of allowed range. // // For BatchMeterUsage, if any of the records are outside of the allowed range, // the entire batch is not processed. You must remove invalid records and try // again. type TimestampOutOfBoundsException struct { _ struct{} `type:"structure"` RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` Message_ *string `locationName:"message" type:"string"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s TimestampOutOfBoundsException) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s TimestampOutOfBoundsException) GoString() string { return s.String() } func newErrorTimestampOutOfBoundsException(v protocol.ResponseMetadata) error { return &TimestampOutOfBoundsException{ RespMetadata: v, } } // Code returns the exception type name. func (s *TimestampOutOfBoundsException) Code() string { return "TimestampOutOfBoundsException" } // Message returns the exception's message. func (s *TimestampOutOfBoundsException) Message() string { if s.Message_ != nil { return *s.Message_ } return "" } // OrigErr always returns nil, satisfies awserr.Error interface. func (s *TimestampOutOfBoundsException) OrigErr() error { return nil } func (s *TimestampOutOfBoundsException) Error() string { return fmt.Sprintf("%s: %s", s.Code(), s.Message()) } // Status code returns the HTTP status code for the request's response error. func (s *TimestampOutOfBoundsException) StatusCode() int { return s.RespMetadata.StatusCode } // RequestID returns the service's response RequestID for request. func (s *TimestampOutOfBoundsException) RequestID() string { return s.RespMetadata.RequestID } // Usage allocations allow you to split usage into buckets by tags. // // Each UsageAllocation indicates the usage quantity for a specific set of tags. type UsageAllocation struct { _ struct{} `type:"structure"` // The total quantity allocated to this bucket of usage. // // AllocatedUsageQuantity is a required field AllocatedUsageQuantity *int64 `type:"integer" required:"true"` // The set of tags that define the bucket of usage. For the bucket of items // with no tags, this parameter can be left out. Tags []*Tag `min:"1" type:"list"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s UsageAllocation) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s UsageAllocation) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *UsageAllocation) Validate() error { invalidParams := request.ErrInvalidParams{Context: "UsageAllocation"} if s.AllocatedUsageQuantity == nil { invalidParams.Add(request.NewErrParamRequired("AllocatedUsageQuantity")) } if s.Tags != nil && len(s.Tags) < 1 { invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) } if s.Tags != nil { for i, v := range s.Tags { if v == nil { continue } if err := v.Validate(); err != nil { invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) } } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetAllocatedUsageQuantity sets the AllocatedUsageQuantity field's value. func (s *UsageAllocation) SetAllocatedUsageQuantity(v int64) *UsageAllocation { s.AllocatedUsageQuantity = &v return s } // SetTags sets the Tags field's value. func (s *UsageAllocation) SetTags(v []*Tag) *UsageAllocation { s.Tags = v return s } // A UsageRecord indicates a quantity of usage for a given product, customer, // dimension and time. // // Multiple requests with the same UsageRecords as input will be de-duplicated // to prevent double charges. type UsageRecord struct { _ struct{} `type:"structure"` // The CustomerIdentifier is obtained through the ResolveCustomer operation // and represents an individual buyer in your application. // // CustomerIdentifier is a required field CustomerIdentifier *string `min:"1" type:"string" required:"true"` // During the process of registering a product on AWS Marketplace, dimensions // are specified. These represent different units of value in your application. // // Dimension is a required field Dimension *string `min:"1" type:"string" required:"true"` // The quantity of usage consumed by the customer for the given dimension and // time. Defaults to 0 if not specified. Quantity *int64 `type:"integer"` // Timestamp, in UTC, for which the usage is being reported. // // Your application can meter usage for up to one hour in the past. Make sure // the timestamp value is not before the start of the software usage. // // Timestamp is a required field Timestamp *time.Time `type:"timestamp" required:"true"` // The set of UsageAllocations to submit. The sum of all UsageAllocation quantities // must equal the Quantity of the UsageRecord. UsageAllocations []*UsageAllocation `min:"1" type:"list"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s UsageRecord) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s UsageRecord) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *UsageRecord) Validate() error { invalidParams := request.ErrInvalidParams{Context: "UsageRecord"} if s.CustomerIdentifier == nil { invalidParams.Add(request.NewErrParamRequired("CustomerIdentifier")) } if s.CustomerIdentifier != nil && len(*s.CustomerIdentifier) < 1 { invalidParams.Add(request.NewErrParamMinLen("CustomerIdentifier", 1)) } if s.Dimension == nil { invalidParams.Add(request.NewErrParamRequired("Dimension")) } if s.Dimension != nil && len(*s.Dimension) < 1 { invalidParams.Add(request.NewErrParamMinLen("Dimension", 1)) } if s.Timestamp == nil { invalidParams.Add(request.NewErrParamRequired("Timestamp")) } if s.UsageAllocations != nil && len(s.UsageAllocations) < 1 { invalidParams.Add(request.NewErrParamMinLen("UsageAllocations", 1)) } if s.UsageAllocations != nil { for i, v := range s.UsageAllocations { if v == nil { continue } if err := v.Validate(); err != nil { invalidParams.AddNested(fmt.Sprintf("%s[%v]", "UsageAllocations", i), err.(request.ErrInvalidParams)) } } } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetCustomerIdentifier sets the CustomerIdentifier field's value. func (s *UsageRecord) SetCustomerIdentifier(v string) *UsageRecord { s.CustomerIdentifier = &v return s } // SetDimension sets the Dimension field's value. func (s *UsageRecord) SetDimension(v string) *UsageRecord { s.Dimension = &v return s } // SetQuantity sets the Quantity field's value. func (s *UsageRecord) SetQuantity(v int64) *UsageRecord { s.Quantity = &v return s } // SetTimestamp sets the Timestamp field's value. func (s *UsageRecord) SetTimestamp(v time.Time) *UsageRecord { s.Timestamp = &v return s } // SetUsageAllocations sets the UsageAllocations field's value. func (s *UsageRecord) SetUsageAllocations(v []*UsageAllocation) *UsageRecord { s.UsageAllocations = v return s } // A UsageRecordResult indicates the status of a given UsageRecord processed // by BatchMeterUsage. type UsageRecordResult struct { _ struct{} `type:"structure"` // The MeteringRecordId is a unique identifier for this metering event. MeteringRecordId *string `type:"string"` // The UsageRecordResult Status indicates the status of an individual UsageRecord // processed by BatchMeterUsage. // // * Success- The UsageRecord was accepted and honored by BatchMeterUsage. // // * CustomerNotSubscribed- The CustomerIdentifier specified is not able // to use your product. The UsageRecord was not honored. There are three // causes for this result: The customer identifier is invalid. The customer // identifier provided in the metering record does not have an active agreement // or subscription with this product. Future UsageRecords for this customer // will fail until the customer subscribes to your product. The customer's // AWS account was suspended. // // * DuplicateRecord- Indicates that the UsageRecord was invalid and not // honored. A previously metered UsageRecord had the same customer, dimension, // and time, but a different quantity. Status *string `type:"string" enum:"UsageRecordResultStatus"` // The UsageRecord that was part of the BatchMeterUsage request. UsageRecord *UsageRecord `type:"structure"` } // String returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s UsageRecordResult) String() string { return awsutil.Prettify(s) } // GoString returns the string representation. // // API parameter values that are decorated as "sensitive" in the API will not // be included in the string output. The member name will be present, but the // value will be replaced with "sensitive". func (s UsageRecordResult) GoString() string { return s.String() } // SetMeteringRecordId sets the MeteringRecordId field's value. func (s *UsageRecordResult) SetMeteringRecordId(v string) *UsageRecordResult { s.MeteringRecordId = &v return s } // SetStatus sets the Status field's value. func (s *UsageRecordResult) SetStatus(v string) *UsageRecordResult { s.Status = &v return s } // SetUsageRecord sets the UsageRecord field's value. func (s *UsageRecordResult) SetUsageRecord(v *UsageRecord) *UsageRecordResult { s.UsageRecord = v return s } const ( // UsageRecordResultStatusSuccess is a UsageRecordResultStatus enum value UsageRecordResultStatusSuccess = "Success" // UsageRecordResultStatusCustomerNotSubscribed is a UsageRecordResultStatus enum value UsageRecordResultStatusCustomerNotSubscribed = "CustomerNotSubscribed" // UsageRecordResultStatusDuplicateRecord is a UsageRecordResultStatus enum value UsageRecordResultStatusDuplicateRecord = "DuplicateRecord" ) // UsageRecordResultStatus_Values returns all elements of the UsageRecordResultStatus enum func UsageRecordResultStatus_Values() []string { return []string{ UsageRecordResultStatusSuccess, UsageRecordResultStatusCustomerNotSubscribed, UsageRecordResultStatusDuplicateRecord, } }