pricing

package
v1.5.3-0...-172c056 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 29, 2018 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Overview

Package pricing provides the client and types for making API requests to AWS Price List Service.

AWS Price List Service API (AWS Price List Service) is a centralized and convenient way to programmatically query Amazon Web Services for services, products, and pricing information. The AWS Price List Service uses standardized product attributes such as Location, Storage Class, and Operating System, and provides prices at the SKU level. You can use the AWS Price List Service to build cost control and scenario planning tools, reconcile billing data, forecast future spend for budgeting purposes, and provide cost benefit analysis that compare your internal workloads with AWS.

Use GetServices without a service code to retrieve the service codes for all AWS services, then GetServices with a service code to retreive the attribute names for that service. After you have the service code and attribute names, you can use GetAttributeValues to see what values are available for an attribute. With the service code and an attribute name and value, you can use GetProducts to find specific products that you're interested in, such as an AmazonEC2 instance, with a Provisioned IOPSvolumeType.

Service Endpoint

AWS Price List Service API provides the following two endpoints:

See https://docs.aws.amazon.com/goto/WebAPI/pricing-2017-10-15 for more information on this service.

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

Using the Client

To contact AWS Price List 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 Price List Service client Pricing for more information on creating client for this service. https://docs.aws.amazon.com/sdk-for-go/api/service/pricing/#New

Index

Examples

Constants

View Source
const (

	// ErrCodeExpiredNextTokenException for service response error code
	// "ExpiredNextTokenException".
	//
	// The pagination token expired. Try again without a pagination token.
	ErrCodeExpiredNextTokenException = "ExpiredNextTokenException"

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

	// ErrCodeInvalidNextTokenException for service response error code
	// "InvalidNextTokenException".
	//
	// The pagination token is invalid. Try again without a pagination token.
	ErrCodeInvalidNextTokenException = "InvalidNextTokenException"

	// ErrCodeInvalidParameterException for service response error code
	// "InvalidParameterException".
	//
	// One or more parameters had an invalid value.
	ErrCodeInvalidParameterException = "InvalidParameterException"

	// ErrCodeNotFoundException for service response error code
	// "NotFoundException".
	//
	// The requested resource can't be found.
	ErrCodeNotFoundException = "NotFoundException"
)
View Source
const (
	ServiceName = "api.pricing" // Name of service.
	EndpointsID = ServiceName   // ID to lookup a service endpoint with.
	ServiceID   = "Pricing"     // ServiceID is a unique identifer of a specific service.
)

Service information constants

View Source
const (
	// FilterTypeTermMatch is a FilterType enum value
	FilterTypeTermMatch = "TERM_MATCH"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AttributeValue

type AttributeValue struct {

	// The specific value of an attributeName.
	Value *string `type:"string"`
	// contains filtered or unexported fields
}

The values of a given attribute, such as Throughput Optimized HDD or Provisioned IOPS for the Amazon EC2volumeType attribute.

func (AttributeValue) GoString

func (s AttributeValue) GoString() string

GoString returns the string representation

func (*AttributeValue) SetValue

func (s *AttributeValue) SetValue(v string) *AttributeValue

SetValue sets the Value field's value.

func (AttributeValue) String

func (s AttributeValue) String() string

String returns the string representation

type DescribeServicesInput

type DescribeServicesInput struct {

	// The format version that you want the response to be in.
	//
	// Valid values are: aws_v1
	FormatVersion *string `type:"string"`

	// The maximum number of results that you want returned in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// The pagination token that indicates the next set of results that you want
	// to retrieve.
	NextToken *string `type:"string"`

	// The code for the service whose information you want to retrieve, such as
	// AmazonEC2. You can use the ServiceCode to filter the results in a GetProducts
	// call. To retrieve a list of all services, leave this blank.
	ServiceCode *string `type:"string"`
	// contains filtered or unexported fields
}

func (DescribeServicesInput) GoString

func (s DescribeServicesInput) GoString() string

GoString returns the string representation

func (*DescribeServicesInput) SetFormatVersion

func (s *DescribeServicesInput) SetFormatVersion(v string) *DescribeServicesInput

SetFormatVersion sets the FormatVersion field's value.

func (*DescribeServicesInput) SetMaxResults

func (s *DescribeServicesInput) SetMaxResults(v int64) *DescribeServicesInput

SetMaxResults sets the MaxResults field's value.

func (*DescribeServicesInput) SetNextToken

SetNextToken sets the NextToken field's value.

func (*DescribeServicesInput) SetServiceCode

func (s *DescribeServicesInput) SetServiceCode(v string) *DescribeServicesInput

SetServiceCode sets the ServiceCode field's value.

func (DescribeServicesInput) String

func (s DescribeServicesInput) String() string

String returns the string representation

func (*DescribeServicesInput) Validate

func (s *DescribeServicesInput) Validate() error

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

type DescribeServicesOutput

type DescribeServicesOutput struct {

	// The format version of the response. For example, aws_v1.
	FormatVersion *string `type:"string"`

	// The pagination token for the next set of retreivable results.
	NextToken *string `type:"string"`

	// The service metadata for the service or services in the response.
	Services []*Service `type:"list"`
	// contains filtered or unexported fields
}

func (DescribeServicesOutput) GoString

func (s DescribeServicesOutput) GoString() string

GoString returns the string representation

func (*DescribeServicesOutput) SetFormatVersion

func (s *DescribeServicesOutput) SetFormatVersion(v string) *DescribeServicesOutput

SetFormatVersion sets the FormatVersion field's value.

func (*DescribeServicesOutput) SetNextToken

SetNextToken sets the NextToken field's value.

func (*DescribeServicesOutput) SetServices

SetServices sets the Services field's value.

func (DescribeServicesOutput) String

func (s DescribeServicesOutput) String() string

String returns the string representation

type Filter

type Filter struct {

	// The product metadata field that you want to filter on. You can filter by
	// just the service code to see all products for a specific service, filter
	// by just the attribute name to see a specific attribute for multiple services,
	// or use both a service code and an attribute name to retrieve only products
	// that match both fields.
	//
	// Valid values include: ServiceCode, and all attribute names
	//
	// For example, you can filter by the AmazonEC2 service code and the volumeType
	// attribute name to get the prices for only Amazon EC2 volumes.
	//
	// Field is a required field
	Field *string `type:"string" required:"true"`

	// The type of filter that you want to use.
	//
	// Valid values are: TERM_MATCH. TERM_MATCH returns only products that match
	// both the given filter field and the given value.
	//
	// Type is a required field
	Type *string `type:"string" required:"true" enum:"FilterType"`

	// The service code or attribute value that you want to filter by. If you are
	// filtering by service code this is the actual service code, such as AmazonEC2.
	// If you are filtering by attribute name, this is the attribute value that
	// you want the returned products to match, such as a Provisioned IOPS volume.
	//
	// Value is a required field
	Value *string `type:"string" required:"true"`
	// contains filtered or unexported fields
}

The constraints that you want all returned products to match.

func (Filter) GoString

func (s Filter) GoString() string

GoString returns the string representation

func (*Filter) SetField

func (s *Filter) SetField(v string) *Filter

SetField sets the Field field's value.

func (*Filter) SetType

func (s *Filter) SetType(v string) *Filter

SetType sets the Type field's value.

func (*Filter) SetValue

func (s *Filter) SetValue(v string) *Filter

SetValue sets the Value field's value.

func (Filter) String

func (s Filter) String() string

String returns the string representation

func (*Filter) Validate

func (s *Filter) Validate() error

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

type GetAttributeValuesInput

type GetAttributeValuesInput struct {

	// The name of the attribute that you want to retrieve the values for, such
	// as volumeType.
	//
	// AttributeName is a required field
	AttributeName *string `type:"string" required:"true"`

	// The maximum number of results to return in response.
	MaxResults *int64 `min:"1" type:"integer"`

	// The pagination token that indicates the next set of results that you want
	// to retrieve.
	NextToken *string `type:"string"`

	// The service code for the service whose attributes you want to retrieve. For
	// example, if you want the retrieve an EC2 attribute, use AmazonEC2.
	//
	// ServiceCode is a required field
	ServiceCode *string `type:"string" required:"true"`
	// contains filtered or unexported fields
}

func (GetAttributeValuesInput) GoString

func (s GetAttributeValuesInput) GoString() string

GoString returns the string representation

func (*GetAttributeValuesInput) SetAttributeName

func (s *GetAttributeValuesInput) SetAttributeName(v string) *GetAttributeValuesInput

SetAttributeName sets the AttributeName field's value.

func (*GetAttributeValuesInput) SetMaxResults

SetMaxResults sets the MaxResults field's value.

func (*GetAttributeValuesInput) SetNextToken

SetNextToken sets the NextToken field's value.

func (*GetAttributeValuesInput) SetServiceCode

SetServiceCode sets the ServiceCode field's value.

func (GetAttributeValuesInput) String

func (s GetAttributeValuesInput) String() string

String returns the string representation

func (*GetAttributeValuesInput) Validate

func (s *GetAttributeValuesInput) Validate() error

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

type GetAttributeValuesOutput

type GetAttributeValuesOutput struct {

	// The list of values for an attribute. For example, Throughput Optimized HDD
	// and Provisioned IOPS are two available values for the AmazonEC2volumeType.
	AttributeValues []*AttributeValue `type:"list"`

	// The pagination token that indicates the next set of results to retrieve.
	NextToken *string `type:"string"`
	// contains filtered or unexported fields
}

func (GetAttributeValuesOutput) GoString

func (s GetAttributeValuesOutput) GoString() string

GoString returns the string representation

func (*GetAttributeValuesOutput) SetAttributeValues

SetAttributeValues sets the AttributeValues field's value.

func (*GetAttributeValuesOutput) SetNextToken

SetNextToken sets the NextToken field's value.

func (GetAttributeValuesOutput) String

func (s GetAttributeValuesOutput) String() string

String returns the string representation

type GetProductsInput

type GetProductsInput struct {

	// The list of filters that limit the returned products. only products that
	// match all filters are returned.
	Filters []*Filter `type:"list"`

	// The format version that you want the response to be in.
	//
	// Valid values are: aws_v1
	FormatVersion *string `type:"string"`

	// The maximum number of results to return in the response.
	MaxResults *int64 `min:"1" type:"integer"`

	// The pagination token that indicates the next set of results that you want
	// to retrieve.
	NextToken *string `type:"string"`

	// The code for the service whose products you want to retrieve.
	ServiceCode *string `type:"string"`
	// contains filtered or unexported fields
}

func (GetProductsInput) GoString

func (s GetProductsInput) GoString() string

GoString returns the string representation

func (*GetProductsInput) SetFilters

func (s *GetProductsInput) SetFilters(v []*Filter) *GetProductsInput

SetFilters sets the Filters field's value.

func (*GetProductsInput) SetFormatVersion

func (s *GetProductsInput) SetFormatVersion(v string) *GetProductsInput

SetFormatVersion sets the FormatVersion field's value.

func (*GetProductsInput) SetMaxResults

func (s *GetProductsInput) SetMaxResults(v int64) *GetProductsInput

SetMaxResults sets the MaxResults field's value.

func (*GetProductsInput) SetNextToken

func (s *GetProductsInput) SetNextToken(v string) *GetProductsInput

SetNextToken sets the NextToken field's value.

func (*GetProductsInput) SetServiceCode

func (s *GetProductsInput) SetServiceCode(v string) *GetProductsInput

SetServiceCode sets the ServiceCode field's value.

func (GetProductsInput) String

func (s GetProductsInput) String() string

String returns the string representation

func (*GetProductsInput) Validate

func (s *GetProductsInput) Validate() error

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

type GetProductsOutput

type GetProductsOutput struct {

	// The format version of the response. For example, aws_v1.
	FormatVersion *string `type:"string"`

	// The pagination token that indicates the next set of results to retrieve.
	NextToken *string `type:"string"`

	// The list of products that match your filters. The list contains both the
	// product metadata and the price information.
	PriceList []aws.JSONValue `type:"list"`
	// contains filtered or unexported fields
}

func (GetProductsOutput) GoString

func (s GetProductsOutput) GoString() string

GoString returns the string representation

func (*GetProductsOutput) SetFormatVersion

func (s *GetProductsOutput) SetFormatVersion(v string) *GetProductsOutput

SetFormatVersion sets the FormatVersion field's value.

func (*GetProductsOutput) SetNextToken

func (s *GetProductsOutput) SetNextToken(v string) *GetProductsOutput

SetNextToken sets the NextToken field's value.

func (*GetProductsOutput) SetPriceList

func (s *GetProductsOutput) SetPriceList(v []aws.JSONValue) *GetProductsOutput

SetPriceList sets the PriceList field's value.

func (GetProductsOutput) String

func (s GetProductsOutput) String() string

String returns the string representation

type Pricing

type Pricing struct {
	*client.Client
}

Pricing provides the API operation methods for making requests to AWS Price List Service. See this package's package overview docs for details on the service.

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

func New

func New(p client.ConfigProvider, cfgs ...*aws.Config) *Pricing

New creates a new instance of the Pricing client with a session. If additional configuration is needed for the client instance use the optional aws.Config parameter to add your extra config.

Example:

// Create a Pricing client from just a session.
svc := pricing.New(mySession)

// Create a Pricing client with additional configuration
svc := pricing.New(mySession, aws.NewConfig().WithRegion("us-west-2"))

func (*Pricing) DescribeServices

func (c *Pricing) DescribeServices(input *DescribeServicesInput) (*DescribeServicesOutput, error)

DescribeServices API operation for AWS Price List Service.

Returns the metadata for one service or a list of the metadata for all services. Use this without a service code to get the service codes for all services. Use it with a service code, such as AmazonEC2, to get information specific to that service, such as the attribute names available for that service. For example, some of the attribute names available for EC2 are volumeType, maxIopsVolume, operation, locationType, and instanceCapacity10xlarge.

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 AWS Price List Service's API operation DescribeServices for usage and error information.

Returned Error Codes:

  • ErrCodeInternalErrorException "InternalErrorException" An error on the server occurred during the processing of your request. Try again later.

  • ErrCodeInvalidParameterException "InvalidParameterException" One or more parameters had an invalid value.

  • ErrCodeNotFoundException "NotFoundException" The requested resource can't be found.

  • ErrCodeInvalidNextTokenException "InvalidNextTokenException" The pagination token is invalid. Try again without a pagination token.

  • ErrCodeExpiredNextTokenException "ExpiredNextTokenException" The pagination token expired. Try again without a pagination token.

See also, https://docs.aws.amazon.com/goto/WebAPI/pricing-2017-10-15/DescribeServices

Example (Shared00)
package main

import (
	"fmt"

	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/awserr"
	"github.com/aws/aws-sdk-go/aws/session"
	"github.com/aws/aws-sdk-go/service/pricing"
)

func main() {
	svc := pricing.New(session.New())
	input := &pricing.DescribeServicesInput{
		FormatVersion: aws.String("aws_v1"),
		MaxResults:    aws.Int64(1),
		ServiceCode:   aws.String("AmazonEC2"),
	}

	result, err := svc.DescribeServices(input)
	if err != nil {
		if aerr, ok := err.(awserr.Error); ok {
			switch aerr.Code() {
			case pricing.ErrCodeInternalErrorException:
				fmt.Println(pricing.ErrCodeInternalErrorException, aerr.Error())
			case pricing.ErrCodeInvalidParameterException:
				fmt.Println(pricing.ErrCodeInvalidParameterException, aerr.Error())
			case pricing.ErrCodeNotFoundException:
				fmt.Println(pricing.ErrCodeNotFoundException, aerr.Error())
			case pricing.ErrCodeInvalidNextTokenException:
				fmt.Println(pricing.ErrCodeInvalidNextTokenException, aerr.Error())
			case pricing.ErrCodeExpiredNextTokenException:
				fmt.Println(pricing.ErrCodeExpiredNextTokenException, 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)
}
Output:

func (*Pricing) DescribeServicesPages

func (c *Pricing) DescribeServicesPages(input *DescribeServicesInput, fn func(*DescribeServicesOutput, bool) bool) error

DescribeServicesPages iterates over the pages of a DescribeServices operation, calling the "fn" function with the response data for each page. To stop iterating, return false from the fn function.

See DescribeServices method for more information on how to use this operation.

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

// Example iterating over at most 3 pages of a DescribeServices operation.
pageNum := 0
err := client.DescribeServicesPages(params,
    func(page *DescribeServicesOutput, lastPage bool) bool {
        pageNum++
        fmt.Println(page)
        return pageNum <= 3
    })

func (*Pricing) DescribeServicesPagesWithContext

func (c *Pricing) DescribeServicesPagesWithContext(ctx aws.Context, input *DescribeServicesInput, fn func(*DescribeServicesOutput, bool) bool, opts ...request.Option) error

DescribeServicesPagesWithContext same as DescribeServicesPages except it takes a Context and allows setting request options on the pages.

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 (*Pricing) DescribeServicesRequest

func (c *Pricing) DescribeServicesRequest(input *DescribeServicesInput) (req *request.Request, output *DescribeServicesOutput)

DescribeServicesRequest generates a "aws/request.Request" representing the client's request for the DescribeServices operation. The "output" return value will be populated with the request's response once the request completes successfuly.

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 DescribeServices for more information on using the DescribeServices 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 DescribeServicesRequest method.
req, resp := client.DescribeServicesRequest(params)

err := req.Send()
if err == nil { // resp is now filled
    fmt.Println(resp)
}

See also, https://docs.aws.amazon.com/goto/WebAPI/pricing-2017-10-15/DescribeServices

func (*Pricing) DescribeServicesWithContext

func (c *Pricing) DescribeServicesWithContext(ctx aws.Context, input *DescribeServicesInput, opts ...request.Option) (*DescribeServicesOutput, error)

DescribeServicesWithContext is the same as DescribeServices with the addition of the ability to pass a context and additional request options.

See DescribeServices 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 (*Pricing) GetAttributeValues

func (c *Pricing) GetAttributeValues(input *GetAttributeValuesInput) (*GetAttributeValuesOutput, error)

GetAttributeValues API operation for AWS Price List Service.

Returns a list of attribute values. Attibutes are similar to the details in a Price List API offer file. For a list of available attributes, see Offer File Definitions (http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/reading-an-offer.html#pps-defs) in the AWS Billing and Cost Management User Guide (http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-what-is.html).

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 AWS Price List Service's API operation GetAttributeValues for usage and error information.

Returned Error Codes:

  • ErrCodeInternalErrorException "InternalErrorException" An error on the server occurred during the processing of your request. Try again later.

  • ErrCodeInvalidParameterException "InvalidParameterException" One or more parameters had an invalid value.

  • ErrCodeNotFoundException "NotFoundException" The requested resource can't be found.

  • ErrCodeInvalidNextTokenException "InvalidNextTokenException" The pagination token is invalid. Try again without a pagination token.

  • ErrCodeExpiredNextTokenException "ExpiredNextTokenException" The pagination token expired. Try again without a pagination token.

See also, https://docs.aws.amazon.com/goto/WebAPI/pricing-2017-10-15/GetAttributeValues

Example (Shared00)

To retrieve a list of attribute values

This operation returns a list of values available for the given attribute.

package main

import (
	"fmt"

	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/awserr"
	"github.com/aws/aws-sdk-go/aws/session"
	"github.com/aws/aws-sdk-go/service/pricing"
)

func main() {
	svc := pricing.New(session.New())
	input := &pricing.GetAttributeValuesInput{
		AttributeName: aws.String("volumeType"),
		MaxResults:    aws.Int64(2),
		ServiceCode:   aws.String("AmazonEC2"),
	}

	result, err := svc.GetAttributeValues(input)
	if err != nil {
		if aerr, ok := err.(awserr.Error); ok {
			switch aerr.Code() {
			case pricing.ErrCodeInternalErrorException:
				fmt.Println(pricing.ErrCodeInternalErrorException, aerr.Error())
			case pricing.ErrCodeInvalidParameterException:
				fmt.Println(pricing.ErrCodeInvalidParameterException, aerr.Error())
			case pricing.ErrCodeNotFoundException:
				fmt.Println(pricing.ErrCodeNotFoundException, aerr.Error())
			case pricing.ErrCodeInvalidNextTokenException:
				fmt.Println(pricing.ErrCodeInvalidNextTokenException, aerr.Error())
			case pricing.ErrCodeExpiredNextTokenException:
				fmt.Println(pricing.ErrCodeExpiredNextTokenException, 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)
}
Output:

func (*Pricing) GetAttributeValuesPages

func (c *Pricing) GetAttributeValuesPages(input *GetAttributeValuesInput, fn func(*GetAttributeValuesOutput, bool) bool) error

GetAttributeValuesPages iterates over the pages of a GetAttributeValues operation, calling the "fn" function with the response data for each page. To stop iterating, return false from the fn function.

See GetAttributeValues method for more information on how to use this operation.

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

// Example iterating over at most 3 pages of a GetAttributeValues operation.
pageNum := 0
err := client.GetAttributeValuesPages(params,
    func(page *GetAttributeValuesOutput, lastPage bool) bool {
        pageNum++
        fmt.Println(page)
        return pageNum <= 3
    })

func (*Pricing) GetAttributeValuesPagesWithContext

func (c *Pricing) GetAttributeValuesPagesWithContext(ctx aws.Context, input *GetAttributeValuesInput, fn func(*GetAttributeValuesOutput, bool) bool, opts ...request.Option) error

GetAttributeValuesPagesWithContext same as GetAttributeValuesPages except it takes a Context and allows setting request options on the pages.

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 (*Pricing) GetAttributeValuesRequest

func (c *Pricing) GetAttributeValuesRequest(input *GetAttributeValuesInput) (req *request.Request, output *GetAttributeValuesOutput)

GetAttributeValuesRequest generates a "aws/request.Request" representing the client's request for the GetAttributeValues operation. The "output" return value will be populated with the request's response once the request completes successfuly.

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 GetAttributeValues for more information on using the GetAttributeValues 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 GetAttributeValuesRequest method.
req, resp := client.GetAttributeValuesRequest(params)

err := req.Send()
if err == nil { // resp is now filled
    fmt.Println(resp)
}

See also, https://docs.aws.amazon.com/goto/WebAPI/pricing-2017-10-15/GetAttributeValues

func (*Pricing) GetAttributeValuesWithContext

func (c *Pricing) GetAttributeValuesWithContext(ctx aws.Context, input *GetAttributeValuesInput, opts ...request.Option) (*GetAttributeValuesOutput, error)

GetAttributeValuesWithContext is the same as GetAttributeValues with the addition of the ability to pass a context and additional request options.

See GetAttributeValues 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 (*Pricing) GetProducts

func (c *Pricing) GetProducts(input *GetProductsInput) (*GetProductsOutput, error)

GetProducts API operation for AWS Price List Service.

Returns a list of all products that match the filter criteria.

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 AWS Price List Service's API operation GetProducts for usage and error information.

Returned Error Codes:

  • ErrCodeInternalErrorException "InternalErrorException" An error on the server occurred during the processing of your request. Try again later.

  • ErrCodeInvalidParameterException "InvalidParameterException" One or more parameters had an invalid value.

  • ErrCodeNotFoundException "NotFoundException" The requested resource can't be found.

  • ErrCodeInvalidNextTokenException "InvalidNextTokenException" The pagination token is invalid. Try again without a pagination token.

  • ErrCodeExpiredNextTokenException "ExpiredNextTokenException" The pagination token expired. Try again without a pagination token.

See also, https://docs.aws.amazon.com/goto/WebAPI/pricing-2017-10-15/GetProducts

Example (Shared00)

To retrieve a list of products

This operation returns a list of products that match the given criteria.

package main

import (
	"fmt"

	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/awserr"
	"github.com/aws/aws-sdk-go/aws/session"
	"github.com/aws/aws-sdk-go/service/pricing"
)

func main() {
	svc := pricing.New(session.New())
	input := &pricing.GetProductsInput{
		Filters: []*pricing.Filter{
			{
				Field: aws.String("ServiceCode"),
				Type:  aws.String("TERM_MATCH"),
				Value: aws.String("AmazonEC2"),
			},
			{
				Field: aws.String("volumeType"),
				Type:  aws.String("TERM_MATCH"),
				Value: aws.String("Provisioned IOPS"),
			},
		},
		FormatVersion: aws.String("aws_v1"),
		MaxResults:    aws.Int64(1),
	}

	result, err := svc.GetProducts(input)
	if err != nil {
		if aerr, ok := err.(awserr.Error); ok {
			switch aerr.Code() {
			case pricing.ErrCodeInternalErrorException:
				fmt.Println(pricing.ErrCodeInternalErrorException, aerr.Error())
			case pricing.ErrCodeInvalidParameterException:
				fmt.Println(pricing.ErrCodeInvalidParameterException, aerr.Error())
			case pricing.ErrCodeNotFoundException:
				fmt.Println(pricing.ErrCodeNotFoundException, aerr.Error())
			case pricing.ErrCodeInvalidNextTokenException:
				fmt.Println(pricing.ErrCodeInvalidNextTokenException, aerr.Error())
			case pricing.ErrCodeExpiredNextTokenException:
				fmt.Println(pricing.ErrCodeExpiredNextTokenException, 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)
}
Output:

func (*Pricing) GetProductsPages

func (c *Pricing) GetProductsPages(input *GetProductsInput, fn func(*GetProductsOutput, bool) bool) error

GetProductsPages iterates over the pages of a GetProducts operation, calling the "fn" function with the response data for each page. To stop iterating, return false from the fn function.

See GetProducts method for more information on how to use this operation.

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

// Example iterating over at most 3 pages of a GetProducts operation.
pageNum := 0
err := client.GetProductsPages(params,
    func(page *GetProductsOutput, lastPage bool) bool {
        pageNum++
        fmt.Println(page)
        return pageNum <= 3
    })

func (*Pricing) GetProductsPagesWithContext

func (c *Pricing) GetProductsPagesWithContext(ctx aws.Context, input *GetProductsInput, fn func(*GetProductsOutput, bool) bool, opts ...request.Option) error

GetProductsPagesWithContext same as GetProductsPages except it takes a Context and allows setting request options on the pages.

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 (*Pricing) GetProductsRequest

func (c *Pricing) GetProductsRequest(input *GetProductsInput) (req *request.Request, output *GetProductsOutput)

GetProductsRequest generates a "aws/request.Request" representing the client's request for the GetProducts operation. The "output" return value will be populated with the request's response once the request completes successfuly.

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 GetProducts for more information on using the GetProducts 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 GetProductsRequest method.
req, resp := client.GetProductsRequest(params)

err := req.Send()
if err == nil { // resp is now filled
    fmt.Println(resp)
}

See also, https://docs.aws.amazon.com/goto/WebAPI/pricing-2017-10-15/GetProducts

func (*Pricing) GetProductsWithContext

func (c *Pricing) GetProductsWithContext(ctx aws.Context, input *GetProductsInput, opts ...request.Option) (*GetProductsOutput, error)

GetProductsWithContext is the same as GetProducts with the addition of the ability to pass a context and additional request options.

See GetProducts 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.

type Service

type Service struct {

	// The attributes that are available for this service.
	AttributeNames []*string `type:"list"`

	// The code for the AWS service.
	ServiceCode *string `type:"string"`
	// contains filtered or unexported fields
}

The metadata for a service, such as the service code and available attribute names.

func (Service) GoString

func (s Service) GoString() string

GoString returns the string representation

func (*Service) SetAttributeNames

func (s *Service) SetAttributeNames(v []*string) *Service

SetAttributeNames sets the AttributeNames field's value.

func (*Service) SetServiceCode

func (s *Service) SetServiceCode(v string) *Service

SetServiceCode sets the ServiceCode field's value.

func (Service) String

func (s Service) String() string

String returns the string representation

Directories

Path Synopsis
Package pricingiface provides an interface to enable mocking the AWS Price List Service service client for testing your code.
Package pricingiface provides an interface to enable mocking the AWS Price List Service service client for testing your code.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL