freetier

package
v0.0.0-...-c570f4e Latest Latest
Warning

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

Go to latest
Published: Dec 20, 2023 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package freetier provides the client and types for making API requests to AWS Free Tier.

You can use the Amazon Web Services Free Tier API to query programmatically your Free Tier usage data.

Free Tier tracks your monthly usage data for all free tier offers that are associated with your Amazon Web Services account. You can use the Free Tier API to filter and show only the data that you want.

Service endpoint

The Free Tier API provides the following endpoint:

For more information, see Using the Amazon Web Services Free Tier (https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/billing-free-tier.html) in the Billing User Guide.

See https://docs.aws.amazon.com/goto/WebAPI/freetier-2023-09-07 for more information on this service.

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

Using the Client

To contact AWS Free Tier 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 Free Tier client FreeTier for more information on creating client for this service. https://docs.aws.amazon.com/sdk-for-go/api/service/freetier/#New

Index

Constants

View Source
const (
	// DimensionService is a Dimension enum value
	DimensionService = "SERVICE"

	// DimensionOperation is a Dimension enum value
	DimensionOperation = "OPERATION"

	// DimensionUsageType is a Dimension enum value
	DimensionUsageType = "USAGE_TYPE"

	// DimensionRegion is a Dimension enum value
	DimensionRegion = "REGION"

	// DimensionFreeTierType is a Dimension enum value
	DimensionFreeTierType = "FREE_TIER_TYPE"

	// DimensionDescription is a Dimension enum value
	DimensionDescription = "DESCRIPTION"

	// DimensionUsagePercentage is a Dimension enum value
	DimensionUsagePercentage = "USAGE_PERCENTAGE"
)
View Source
const (
	// MatchOptionEquals is a MatchOption enum value
	MatchOptionEquals = "EQUALS"

	// MatchOptionStartsWith is a MatchOption enum value
	MatchOptionStartsWith = "STARTS_WITH"

	// MatchOptionEndsWith is a MatchOption enum value
	MatchOptionEndsWith = "ENDS_WITH"

	// MatchOptionContains is a MatchOption enum value
	MatchOptionContains = "CONTAINS"

	// MatchOptionGreaterThanOrEqual is a MatchOption enum value
	MatchOptionGreaterThanOrEqual = "GREATER_THAN_OR_EQUAL"
)
View Source
const (

	// ErrCodeInternalServerException for service response error code
	// "InternalServerException".
	//
	// An unexpected error occurred during the processing of your request.
	ErrCodeInternalServerException = "InternalServerException"

	// ErrCodeThrottlingException for service response error code
	// "ThrottlingException".
	//
	// The request was denied due to request throttling.
	ErrCodeThrottlingException = "ThrottlingException"

	// ErrCodeValidationException for service response error code
	// "ValidationException".
	//
	// The input fails to satisfy the constraints specified by an Amazon Web Service.
	ErrCodeValidationException = "ValidationException"
)
View Source
const (
	ServiceName = "FreeTier" // Name of service.
	EndpointsID = "freetier" // ID to lookup a service endpoint with.
	ServiceID   = "FreeTier" // ServiceID is a unique identifier of a specific service.
)

Service information constants

Variables

This section is empty.

Functions

func Dimension_Values

func Dimension_Values() []string

Dimension_Values returns all elements of the Dimension enum

func MatchOption_Values

func MatchOption_Values() []string

MatchOption_Values returns all elements of the MatchOption enum

Types

type DimensionValues

type DimensionValues struct {

	// The name of the dimension that you want to filter on.
	//
	// Key is a required field
	Key *string `type:"string" required:"true" enum:"Dimension"`

	// The match options that you can use to filter your results. You can specify
	// only one of these values in the array.
	//
	// MatchOptions is a required field
	MatchOptions []*string `type:"list" required:"true" enum:"MatchOption"`

	// The metadata values you can specify to filter upon, so that the results all
	// match at least one of the specified values.
	//
	// Values is a required field
	Values []*string `min:"1" type:"list" required:"true"`
	// contains filtered or unexported fields
}

Contains the specifications for the filters to use for your request.

func (DimensionValues) GoString

func (s DimensionValues) GoString() string

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 (*DimensionValues) SetKey

func (s *DimensionValues) SetKey(v string) *DimensionValues

SetKey sets the Key field's value.

func (*DimensionValues) SetMatchOptions

func (s *DimensionValues) SetMatchOptions(v []*string) *DimensionValues

SetMatchOptions sets the MatchOptions field's value.

func (*DimensionValues) SetValues

func (s *DimensionValues) SetValues(v []*string) *DimensionValues

SetValues sets the Values field's value.

func (DimensionValues) String

func (s DimensionValues) String() 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 (*DimensionValues) Validate

func (s *DimensionValues) Validate() error

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

type Expression

type Expression struct {

	// Return results that match all Expressions that you specified in the array.
	And []*Expression `type:"list"`

	// The specific dimension, values, and match type to filter objects with.
	Dimensions *DimensionValues `type:"structure"`

	// Return results that don’t match the Expression that you specified.
	Not *Expression `type:"structure"`

	// Return results that match any of the Expressions that you specified. in the
	// array.
	Or []*Expression `type:"list"`
	// contains filtered or unexported fields
}

Use Expression to filter in the GetFreeTierUsage API operation.

You can use the following patterns:

  • Simple dimension values (Dimensions root operator)

  • Complex expressions with logical operators (AND, NOT, and OR root operators).

For simple dimension values, you can set the dimension name, values, and match type for the filters that you plan to use.

Example for simple dimension values

You can filter to match exactly for REGION==us-east-1 OR REGION==us-west-1.

The corresponding Expression appears like the following: { "Dimensions": { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ], "MatchOptions": ["EQUALS"] } }

As shown in the previous example, lists of dimension values are combined with OR when you apply the filter.

For complex expressions with logical operators, you can have nested expressions to use the logical operators and specify advanced filtering.

Example for complex expressions with logical operators

You can filter by ((REGION == us-east-1 OR REGION == us-west-1) OR (SERVICE CONTAINS AWSLambda)) AND (USAGE_TYPE !CONTAINS DataTransfer).

The corresponding Expression appears like the following: { "And": [ {"Or": [ {"Dimensions": { "Key": "REGION", "Values": [ "us-east-1", "us-west-1" ], "MatchOptions": ["EQUALS"] }}, {"Dimensions": { "Key": "SERVICE", "Values": ["AWSLambda"], "MatchOptions": ["CONTAINS"] } } ]}, {"Not": {"Dimensions": { "Key": "USAGE_TYPE", "Values": ["DataTransfer"], "MatchOptions": ["CONTAINS"] }}} ] }

In the following Contents, you must specify exactly one of the following root operators.

func (Expression) GoString

func (s Expression) GoString() string

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 (*Expression) SetAnd

func (s *Expression) SetAnd(v []*Expression) *Expression

SetAnd sets the And field's value.

func (*Expression) SetDimensions

func (s *Expression) SetDimensions(v *DimensionValues) *Expression

SetDimensions sets the Dimensions field's value.

func (*Expression) SetNot

func (s *Expression) SetNot(v *Expression) *Expression

SetNot sets the Not field's value.

func (*Expression) SetOr

func (s *Expression) SetOr(v []*Expression) *Expression

SetOr sets the Or field's value.

func (Expression) String

func (s Expression) String() 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 (*Expression) Validate

func (s *Expression) Validate() error

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

type FreeTier

type FreeTier struct {
	*client.Client
}

FreeTier provides the API operation methods for making requests to AWS Free Tier. See this package's package overview docs for details on the service.

FreeTier 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) *FreeTier

New creates a new instance of the FreeTier 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:

mySession := session.Must(session.NewSession())

// Create a FreeTier client from just a session.
svc := freetier.New(mySession)

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

func (*FreeTier) GetFreeTierUsage

func (c *FreeTier) GetFreeTierUsage(input *GetFreeTierUsageInput) (*GetFreeTierUsageOutput, error)

GetFreeTierUsage API operation for AWS Free Tier.

Returns a list of all Free Tier usage objects that match your filters.

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 Free Tier's API operation GetFreeTierUsage for usage and error information.

Returned Error Types:

  • InternalServerException An unexpected error occurred during the processing of your request.

  • ValidationException The input fails to satisfy the constraints specified by an Amazon Web Service.

  • ThrottlingException The request was denied due to request throttling.

See also, https://docs.aws.amazon.com/goto/WebAPI/freetier-2023-09-07/GetFreeTierUsage

func (*FreeTier) GetFreeTierUsagePages

func (c *FreeTier) GetFreeTierUsagePages(input *GetFreeTierUsageInput, fn func(*GetFreeTierUsageOutput, bool) bool) error

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

See GetFreeTierUsage 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 GetFreeTierUsage operation.
pageNum := 0
err := client.GetFreeTierUsagePages(params,
    func(page *freetier.GetFreeTierUsageOutput, lastPage bool) bool {
        pageNum++
        fmt.Println(page)
        return pageNum <= 3
    })

func (*FreeTier) GetFreeTierUsagePagesWithContext

func (c *FreeTier) GetFreeTierUsagePagesWithContext(ctx aws.Context, input *GetFreeTierUsageInput, fn func(*GetFreeTierUsageOutput, bool) bool, opts ...request.Option) error

GetFreeTierUsagePagesWithContext same as GetFreeTierUsagePages 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 (*FreeTier) GetFreeTierUsageRequest

func (c *FreeTier) GetFreeTierUsageRequest(input *GetFreeTierUsageInput) (req *request.Request, output *GetFreeTierUsageOutput)

GetFreeTierUsageRequest generates a "aws/request.Request" representing the client's request for the GetFreeTierUsage 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 GetFreeTierUsage for more information on using the GetFreeTierUsage 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 GetFreeTierUsageRequest method.
req, resp := client.GetFreeTierUsageRequest(params)

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

See also, https://docs.aws.amazon.com/goto/WebAPI/freetier-2023-09-07/GetFreeTierUsage

func (*FreeTier) GetFreeTierUsageWithContext

func (c *FreeTier) GetFreeTierUsageWithContext(ctx aws.Context, input *GetFreeTierUsageInput, opts ...request.Option) (*GetFreeTierUsageOutput, error)

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

See GetFreeTierUsage 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 FreeTierUsage

type FreeTierUsage struct {

	// Describes the actual usage accrued month-to-day (MTD) that you've used so
	// far.
	ActualUsageAmount *float64 `locationName:"actualUsageAmount" type:"double"`

	// The description of the Free Tier offer.
	Description *string `locationName:"description" type:"string"`

	// Describes the forecasted usage by the month that you're expected to use.
	ForecastedUsageAmount *float64 `locationName:"forecastedUsageAmount" type:"double"`

	// Describes the type of the Free Tier offer. For example, the offer can be
	// "12 Months Free", "Always Free", and "Free Trial".
	FreeTierType *string `locationName:"freeTierType" type:"string"`

	// Describes the maximum usage allowed in Free Tier.
	Limit *float64 `locationName:"limit" type:"double"`

	// Describes usageType more granularly with the specific Amazon Web Service
	// API operation. For example, this can be the RunInstances API operation for
	// Amazon Elastic Compute Cloud.
	Operation *string `locationName:"operation" type:"string"`

	// Describes the Amazon Web Services Region for which this offer is applicable
	Region *string `locationName:"region" type:"string"`

	// The name of the Amazon Web Service providing the Free Tier offer. For example,
	// this can be Amazon Elastic Compute Cloud.
	Service *string `locationName:"service" type:"string"`

	// Describes the unit of the usageType, such as Hrs.
	Unit *string `locationName:"unit" type:"string"`

	// Describes the usage details of the offer. For example, this might be Global-BoxUsage:freetrial.
	UsageType *string `locationName:"usageType" type:"string"`
	// contains filtered or unexported fields
}

Consists of a Amazon Web Services Free Tier offer’s metadata and your data usage for the offer.

func (FreeTierUsage) GoString

func (s FreeTierUsage) GoString() string

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 (*FreeTierUsage) SetActualUsageAmount

func (s *FreeTierUsage) SetActualUsageAmount(v float64) *FreeTierUsage

SetActualUsageAmount sets the ActualUsageAmount field's value.

func (*FreeTierUsage) SetDescription

func (s *FreeTierUsage) SetDescription(v string) *FreeTierUsage

SetDescription sets the Description field's value.

func (*FreeTierUsage) SetForecastedUsageAmount

func (s *FreeTierUsage) SetForecastedUsageAmount(v float64) *FreeTierUsage

SetForecastedUsageAmount sets the ForecastedUsageAmount field's value.

func (*FreeTierUsage) SetFreeTierType

func (s *FreeTierUsage) SetFreeTierType(v string) *FreeTierUsage

SetFreeTierType sets the FreeTierType field's value.

func (*FreeTierUsage) SetLimit

func (s *FreeTierUsage) SetLimit(v float64) *FreeTierUsage

SetLimit sets the Limit field's value.

func (*FreeTierUsage) SetOperation

func (s *FreeTierUsage) SetOperation(v string) *FreeTierUsage

SetOperation sets the Operation field's value.

func (*FreeTierUsage) SetRegion

func (s *FreeTierUsage) SetRegion(v string) *FreeTierUsage

SetRegion sets the Region field's value.

func (*FreeTierUsage) SetService

func (s *FreeTierUsage) SetService(v string) *FreeTierUsage

SetService sets the Service field's value.

func (*FreeTierUsage) SetUnit

func (s *FreeTierUsage) SetUnit(v string) *FreeTierUsage

SetUnit sets the Unit field's value.

func (*FreeTierUsage) SetUsageType

func (s *FreeTierUsage) SetUsageType(v string) *FreeTierUsage

SetUsageType sets the UsageType field's value.

func (FreeTierUsage) String

func (s FreeTierUsage) String() 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".

type GetFreeTierUsageInput

type GetFreeTierUsageInput struct {

	// An expression that specifies the conditions that you want each FreeTierUsage
	// object to meet.
	Filter *Expression `locationName:"filter" type:"structure"`

	// The maximum number of results to return in the response. MaxResults means
	// that there can be up to the specified number of values, but there might be
	// fewer results based on your filters.
	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`

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

func (GetFreeTierUsageInput) GoString

func (s GetFreeTierUsageInput) GoString() string

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 (*GetFreeTierUsageInput) SetFilter

SetFilter sets the Filter field's value.

func (*GetFreeTierUsageInput) SetMaxResults

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

SetMaxResults sets the MaxResults field's value.

func (*GetFreeTierUsageInput) SetNextToken

SetNextToken sets the NextToken field's value.

func (GetFreeTierUsageInput) String

func (s GetFreeTierUsageInput) String() 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 (*GetFreeTierUsageInput) Validate

func (s *GetFreeTierUsageInput) Validate() error

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

type GetFreeTierUsageOutput

type GetFreeTierUsageOutput struct {

	// The list of Free Tier usage objects that meet your filter expression.
	//
	// FreeTierUsages is a required field
	FreeTierUsages []*FreeTierUsage `locationName:"freeTierUsages" type:"list" required:"true"`

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

func (GetFreeTierUsageOutput) GoString

func (s GetFreeTierUsageOutput) GoString() string

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 (*GetFreeTierUsageOutput) SetFreeTierUsages

func (s *GetFreeTierUsageOutput) SetFreeTierUsages(v []*FreeTierUsage) *GetFreeTierUsageOutput

SetFreeTierUsages sets the FreeTierUsages field's value.

func (*GetFreeTierUsageOutput) SetNextToken

SetNextToken sets the NextToken field's value.

func (GetFreeTierUsageOutput) String

func (s GetFreeTierUsageOutput) String() 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".

type InternalServerException

type InternalServerException struct {
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`
	// contains filtered or unexported fields
}

An unexpected error occurred during the processing of your request.

func (*InternalServerException) Code

func (s *InternalServerException) Code() string

Code returns the exception type name.

func (*InternalServerException) Error

func (s *InternalServerException) Error() string

func (InternalServerException) GoString

func (s InternalServerException) GoString() string

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 (*InternalServerException) Message

func (s *InternalServerException) Message() string

Message returns the exception's message.

func (*InternalServerException) OrigErr

func (s *InternalServerException) OrigErr() error

OrigErr always returns nil, satisfies awserr.Error interface.

func (*InternalServerException) RequestID

func (s *InternalServerException) RequestID() string

RequestID returns the service's response RequestID for request.

func (*InternalServerException) StatusCode

func (s *InternalServerException) StatusCode() int

Status code returns the HTTP status code for the request's response error.

func (InternalServerException) String

func (s InternalServerException) String() 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".

type ThrottlingException

type ThrottlingException struct {
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`
	// contains filtered or unexported fields
}

The request was denied due to request throttling.

func (*ThrottlingException) Code

func (s *ThrottlingException) Code() string

Code returns the exception type name.

func (*ThrottlingException) Error

func (s *ThrottlingException) Error() string

func (ThrottlingException) GoString

func (s ThrottlingException) GoString() string

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 (*ThrottlingException) Message

func (s *ThrottlingException) Message() string

Message returns the exception's message.

func (*ThrottlingException) OrigErr

func (s *ThrottlingException) OrigErr() error

OrigErr always returns nil, satisfies awserr.Error interface.

func (*ThrottlingException) RequestID

func (s *ThrottlingException) RequestID() string

RequestID returns the service's response RequestID for request.

func (*ThrottlingException) StatusCode

func (s *ThrottlingException) StatusCode() int

Status code returns the HTTP status code for the request's response error.

func (ThrottlingException) String

func (s ThrottlingException) String() 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".

type ValidationException

type ValidationException struct {
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`
	// contains filtered or unexported fields
}

The input fails to satisfy the constraints specified by an Amazon Web Service.

func (*ValidationException) Code

func (s *ValidationException) Code() string

Code returns the exception type name.

func (*ValidationException) Error

func (s *ValidationException) Error() string

func (ValidationException) GoString

func (s ValidationException) GoString() string

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 (*ValidationException) Message

func (s *ValidationException) Message() string

Message returns the exception's message.

func (*ValidationException) OrigErr

func (s *ValidationException) OrigErr() error

OrigErr always returns nil, satisfies awserr.Error interface.

func (*ValidationException) RequestID

func (s *ValidationException) RequestID() string

RequestID returns the service's response RequestID for request.

func (*ValidationException) StatusCode

func (s *ValidationException) StatusCode() int

Status code returns the HTTP status code for the request's response error.

func (ValidationException) String

func (s ValidationException) String() 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".

Directories

Path Synopsis
Package freetieriface provides an interface to enable mocking the AWS Free Tier service client for testing your code.
Package freetieriface provides an interface to enable mocking the AWS Free Tier service client for testing your code.

Jump to

Keyboard shortcuts

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