mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 18:13:42 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			1006 lines
		
	
	
		
			35 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			1006 lines
		
	
	
		
			35 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package config
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
	"io"
 | 
						|
 | 
						|
	"github.com/aws/aws-sdk-go-v2/aws"
 | 
						|
	"github.com/aws/aws-sdk-go-v2/credentials/ec2rolecreds"
 | 
						|
	"github.com/aws/aws-sdk-go-v2/credentials/endpointcreds"
 | 
						|
	"github.com/aws/aws-sdk-go-v2/credentials/processcreds"
 | 
						|
	"github.com/aws/aws-sdk-go-v2/credentials/ssocreds"
 | 
						|
	"github.com/aws/aws-sdk-go-v2/credentials/stscreds"
 | 
						|
	"github.com/aws/aws-sdk-go-v2/feature/ec2/imds"
 | 
						|
	smithybearer "github.com/aws/smithy-go/auth/bearer"
 | 
						|
	"github.com/aws/smithy-go/logging"
 | 
						|
	"github.com/aws/smithy-go/middleware"
 | 
						|
)
 | 
						|
 | 
						|
// LoadOptionsFunc is a type alias for LoadOptions functional option
 | 
						|
type LoadOptionsFunc func(*LoadOptions) error
 | 
						|
 | 
						|
// LoadOptions are discrete set of options that are valid for loading the
 | 
						|
// configuration
 | 
						|
type LoadOptions struct {
 | 
						|
 | 
						|
	// Region is the region to send requests to.
 | 
						|
	Region string
 | 
						|
 | 
						|
	// Credentials object to use when signing requests.
 | 
						|
	Credentials aws.CredentialsProvider
 | 
						|
 | 
						|
	// Token provider for authentication operations with bearer authentication.
 | 
						|
	BearerAuthTokenProvider smithybearer.TokenProvider
 | 
						|
 | 
						|
	// HTTPClient the SDK's API clients will use to invoke HTTP requests.
 | 
						|
	HTTPClient HTTPClient
 | 
						|
 | 
						|
	// EndpointResolver that can be used to provide or override an endpoint for
 | 
						|
	// the given service and region.
 | 
						|
	//
 | 
						|
	// See the `aws.EndpointResolver` documentation on usage.
 | 
						|
	//
 | 
						|
	// Deprecated: See EndpointResolverWithOptions
 | 
						|
	EndpointResolver aws.EndpointResolver
 | 
						|
 | 
						|
	// EndpointResolverWithOptions that can be used to provide or override an
 | 
						|
	// endpoint for the given service and region.
 | 
						|
	//
 | 
						|
	// See the `aws.EndpointResolverWithOptions` documentation on usage.
 | 
						|
	EndpointResolverWithOptions aws.EndpointResolverWithOptions
 | 
						|
 | 
						|
	// RetryMaxAttempts specifies the maximum number attempts an API client
 | 
						|
	// will call an operation that fails with a retryable error.
 | 
						|
	//
 | 
						|
	// This value will only be used if Retryer option is nil.
 | 
						|
	RetryMaxAttempts int
 | 
						|
 | 
						|
	// RetryMode specifies the retry model the API client will be created with.
 | 
						|
	//
 | 
						|
	// This value will only be used if Retryer option is nil.
 | 
						|
	RetryMode aws.RetryMode
 | 
						|
 | 
						|
	// Retryer is a function that provides a Retryer implementation. A Retryer
 | 
						|
	// guides how HTTP requests should be retried in case of recoverable
 | 
						|
	// failures.
 | 
						|
	//
 | 
						|
	// If not nil, RetryMaxAttempts, and RetryMode will be ignored.
 | 
						|
	Retryer func() aws.Retryer
 | 
						|
 | 
						|
	// APIOptions provides the set of middleware mutations modify how the API
 | 
						|
	// client requests will be handled. This is useful for adding additional
 | 
						|
	// tracing data to a request, or changing behavior of the SDK's client.
 | 
						|
	APIOptions []func(*middleware.Stack) error
 | 
						|
 | 
						|
	// Logger writer interface to write logging messages to.
 | 
						|
	Logger logging.Logger
 | 
						|
 | 
						|
	// ClientLogMode is used to configure the events that will be sent to the
 | 
						|
	// configured logger. This can be used to configure the logging of signing,
 | 
						|
	// retries, request, and responses of the SDK clients.
 | 
						|
	//
 | 
						|
	// See the ClientLogMode type documentation for the complete set of logging
 | 
						|
	// modes and available configuration.
 | 
						|
	ClientLogMode *aws.ClientLogMode
 | 
						|
 | 
						|
	// SharedConfigProfile is the profile to be used when loading the SharedConfig
 | 
						|
	SharedConfigProfile string
 | 
						|
 | 
						|
	// SharedConfigFiles is the slice of custom shared config files to use when
 | 
						|
	// loading the SharedConfig. A non-default profile used within config file
 | 
						|
	// must have name defined with prefix 'profile '. eg [profile xyz]
 | 
						|
	// indicates a profile with name 'xyz'. To read more on the format of the
 | 
						|
	// config file, please refer the documentation at
 | 
						|
	// https://docs.aws.amazon.com/credref/latest/refdocs/file-format.html#file-format-config
 | 
						|
	//
 | 
						|
	// If duplicate profiles are provided within the same, or across multiple
 | 
						|
	// shared config files, the next parsed profile will override only the
 | 
						|
	// properties that conflict with the previously defined profile. Note that
 | 
						|
	// if duplicate profiles are provided within the SharedCredentialsFiles and
 | 
						|
	// SharedConfigFiles, the properties defined in shared credentials file
 | 
						|
	// take precedence.
 | 
						|
	SharedConfigFiles []string
 | 
						|
 | 
						|
	// SharedCredentialsFile is the slice of custom shared credentials files to
 | 
						|
	// use when loading the SharedConfig. The profile name used within
 | 
						|
	// credentials file must not prefix 'profile '. eg [xyz] indicates a
 | 
						|
	// profile with name 'xyz'. Profile declared as [profile xyz] will be
 | 
						|
	// ignored. To read more on the format of the credentials file, please
 | 
						|
	// refer the documentation at
 | 
						|
	// https://docs.aws.amazon.com/credref/latest/refdocs/file-format.html#file-format-creds
 | 
						|
	//
 | 
						|
	// If duplicate profiles are provided with a same, or across multiple
 | 
						|
	// shared credentials files, the next parsed profile will override only
 | 
						|
	// properties that conflict with the previously defined profile. Note that
 | 
						|
	// if duplicate profiles are provided within the SharedCredentialsFiles and
 | 
						|
	// SharedConfigFiles, the properties defined in shared credentials file
 | 
						|
	// take precedence.
 | 
						|
	SharedCredentialsFiles []string
 | 
						|
 | 
						|
	// CustomCABundle is CA bundle PEM bytes reader
 | 
						|
	CustomCABundle io.Reader
 | 
						|
 | 
						|
	// DefaultRegion is the fall back region, used if a region was not resolved
 | 
						|
	// from other sources
 | 
						|
	DefaultRegion string
 | 
						|
 | 
						|
	// UseEC2IMDSRegion indicates if SDK should retrieve the region
 | 
						|
	// from the EC2 Metadata service
 | 
						|
	UseEC2IMDSRegion *UseEC2IMDSRegion
 | 
						|
 | 
						|
	// CredentialsCacheOptions is a function for setting the
 | 
						|
	// aws.CredentialsCacheOptions
 | 
						|
	CredentialsCacheOptions func(*aws.CredentialsCacheOptions)
 | 
						|
 | 
						|
	// BearerAuthTokenCacheOptions is a function for setting the smithy-go
 | 
						|
	// auth/bearer#TokenCacheOptions
 | 
						|
	BearerAuthTokenCacheOptions func(*smithybearer.TokenCacheOptions)
 | 
						|
 | 
						|
	// SSOTokenProviderOptions is a function for setting the
 | 
						|
	// credentials/ssocreds.SSOTokenProviderOptions
 | 
						|
	SSOTokenProviderOptions func(*ssocreds.SSOTokenProviderOptions)
 | 
						|
 | 
						|
	// ProcessCredentialOptions is a function for setting
 | 
						|
	// the processcreds.Options
 | 
						|
	ProcessCredentialOptions func(*processcreds.Options)
 | 
						|
 | 
						|
	// EC2RoleCredentialOptions is a function for setting
 | 
						|
	// the ec2rolecreds.Options
 | 
						|
	EC2RoleCredentialOptions func(*ec2rolecreds.Options)
 | 
						|
 | 
						|
	// EndpointCredentialOptions is a function for setting
 | 
						|
	// the endpointcreds.Options
 | 
						|
	EndpointCredentialOptions func(*endpointcreds.Options)
 | 
						|
 | 
						|
	// WebIdentityRoleCredentialOptions is a function for setting
 | 
						|
	// the stscreds.WebIdentityRoleOptions
 | 
						|
	WebIdentityRoleCredentialOptions func(*stscreds.WebIdentityRoleOptions)
 | 
						|
 | 
						|
	// AssumeRoleCredentialOptions is a function for setting the
 | 
						|
	// stscreds.AssumeRoleOptions
 | 
						|
	AssumeRoleCredentialOptions func(*stscreds.AssumeRoleOptions)
 | 
						|
 | 
						|
	// SSOProviderOptions is a function for setting
 | 
						|
	// the ssocreds.Options
 | 
						|
	SSOProviderOptions func(options *ssocreds.Options)
 | 
						|
 | 
						|
	// LogConfigurationWarnings when set to true, enables logging
 | 
						|
	// configuration warnings
 | 
						|
	LogConfigurationWarnings *bool
 | 
						|
 | 
						|
	// S3UseARNRegion specifies if the S3 service should allow ARNs to direct
 | 
						|
	// the region, the client's requests are sent to.
 | 
						|
	S3UseARNRegion *bool
 | 
						|
 | 
						|
	// EnableEndpointDiscovery specifies if endpoint discovery is enable for
 | 
						|
	// the client.
 | 
						|
	EnableEndpointDiscovery aws.EndpointDiscoveryEnableState
 | 
						|
 | 
						|
	// Specifies if the EC2 IMDS service client is enabled.
 | 
						|
	//
 | 
						|
	// AWS_EC2_METADATA_DISABLED=true
 | 
						|
	EC2IMDSClientEnableState imds.ClientEnableState
 | 
						|
 | 
						|
	// Specifies the EC2 Instance Metadata Service default endpoint selection
 | 
						|
	// mode (IPv4 or IPv6)
 | 
						|
	EC2IMDSEndpointMode imds.EndpointModeState
 | 
						|
 | 
						|
	// Specifies the EC2 Instance Metadata Service endpoint to use. If
 | 
						|
	// specified it overrides EC2IMDSEndpointMode.
 | 
						|
	EC2IMDSEndpoint string
 | 
						|
 | 
						|
	// Specifies that SDK clients must resolve a dual-stack endpoint for
 | 
						|
	// services.
 | 
						|
	UseDualStackEndpoint aws.DualStackEndpointState
 | 
						|
 | 
						|
	// Specifies that SDK clients must resolve a FIPS endpoint for
 | 
						|
	// services.
 | 
						|
	UseFIPSEndpoint aws.FIPSEndpointState
 | 
						|
 | 
						|
	// Specifies the SDK configuration mode for defaults.
 | 
						|
	DefaultsModeOptions DefaultsModeOptions
 | 
						|
}
 | 
						|
 | 
						|
func (o LoadOptions) getDefaultsMode(ctx context.Context) (aws.DefaultsMode, bool, error) {
 | 
						|
	if len(o.DefaultsModeOptions.Mode) == 0 {
 | 
						|
		return "", false, nil
 | 
						|
	}
 | 
						|
	return o.DefaultsModeOptions.Mode, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// GetRetryMaxAttempts returns the RetryMaxAttempts if specified in the
 | 
						|
// LoadOptions and not 0.
 | 
						|
func (o LoadOptions) GetRetryMaxAttempts(ctx context.Context) (int, bool, error) {
 | 
						|
	if o.RetryMaxAttempts == 0 {
 | 
						|
		return 0, false, nil
 | 
						|
	}
 | 
						|
	return o.RetryMaxAttempts, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// GetRetryMode returns the RetryMode specified in the LoadOptions.
 | 
						|
func (o LoadOptions) GetRetryMode(ctx context.Context) (aws.RetryMode, bool, error) {
 | 
						|
	if len(o.RetryMode) == 0 {
 | 
						|
		return "", false, nil
 | 
						|
	}
 | 
						|
	return o.RetryMode, true, nil
 | 
						|
}
 | 
						|
 | 
						|
func (o LoadOptions) getDefaultsModeIMDSClient(ctx context.Context) (*imds.Client, bool, error) {
 | 
						|
	if o.DefaultsModeOptions.IMDSClient == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
	return o.DefaultsModeOptions.IMDSClient, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// getRegion returns Region from config's LoadOptions
 | 
						|
func (o LoadOptions) getRegion(ctx context.Context) (string, bool, error) {
 | 
						|
	if len(o.Region) == 0 {
 | 
						|
		return "", false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.Region, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithRegion is a helper function to construct functional options
 | 
						|
// that sets Region on config's LoadOptions. Setting the region to
 | 
						|
// an empty string, will result in the region value being ignored.
 | 
						|
// If multiple WithRegion calls are made, the last call overrides
 | 
						|
// the previous call values.
 | 
						|
func WithRegion(v string) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.Region = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// getDefaultRegion returns DefaultRegion from config's LoadOptions
 | 
						|
func (o LoadOptions) getDefaultRegion(ctx context.Context) (string, bool, error) {
 | 
						|
	if len(o.DefaultRegion) == 0 {
 | 
						|
		return "", false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.DefaultRegion, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithDefaultRegion is a helper function to construct functional options
 | 
						|
// that sets a DefaultRegion on config's LoadOptions. Setting the default
 | 
						|
// region to an empty string, will result in the default region value
 | 
						|
// being ignored. If multiple WithDefaultRegion calls are made, the last
 | 
						|
// call overrides the previous call values. Note that both WithRegion and
 | 
						|
// WithEC2IMDSRegion call takes precedence over WithDefaultRegion call
 | 
						|
// when resolving region.
 | 
						|
func WithDefaultRegion(v string) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.DefaultRegion = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// getSharedConfigProfile returns SharedConfigProfile from config's LoadOptions
 | 
						|
func (o LoadOptions) getSharedConfigProfile(ctx context.Context) (string, bool, error) {
 | 
						|
	if len(o.SharedConfigProfile) == 0 {
 | 
						|
		return "", false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.SharedConfigProfile, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithSharedConfigProfile is a helper function to construct functional options
 | 
						|
// that sets SharedConfigProfile on config's LoadOptions. Setting the shared
 | 
						|
// config profile to an empty string, will result in the shared config profile
 | 
						|
// value being ignored.
 | 
						|
// If multiple WithSharedConfigProfile calls are made, the last call overrides
 | 
						|
// the previous call values.
 | 
						|
func WithSharedConfigProfile(v string) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.SharedConfigProfile = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// getSharedConfigFiles returns SharedConfigFiles set on config's LoadOptions
 | 
						|
func (o LoadOptions) getSharedConfigFiles(ctx context.Context) ([]string, bool, error) {
 | 
						|
	if o.SharedConfigFiles == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.SharedConfigFiles, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithSharedConfigFiles is a helper function to construct functional options
 | 
						|
// that sets slice of SharedConfigFiles on config's LoadOptions.
 | 
						|
// Setting the shared config files to an nil string slice, will result in the
 | 
						|
// shared config files value being ignored.
 | 
						|
// If multiple WithSharedConfigFiles calls are made, the last call overrides
 | 
						|
// the previous call values.
 | 
						|
func WithSharedConfigFiles(v []string) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.SharedConfigFiles = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// getSharedCredentialsFiles returns SharedCredentialsFiles set on config's LoadOptions
 | 
						|
func (o LoadOptions) getSharedCredentialsFiles(ctx context.Context) ([]string, bool, error) {
 | 
						|
	if o.SharedCredentialsFiles == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.SharedCredentialsFiles, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithSharedCredentialsFiles is a helper function to construct functional options
 | 
						|
// that sets slice of SharedCredentialsFiles on config's LoadOptions.
 | 
						|
// Setting the shared credentials files to an nil string slice, will result in the
 | 
						|
// shared credentials files value being ignored.
 | 
						|
// If multiple WithSharedCredentialsFiles calls are made, the last call overrides
 | 
						|
// the previous call values.
 | 
						|
func WithSharedCredentialsFiles(v []string) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.SharedCredentialsFiles = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// getCustomCABundle returns CustomCABundle from LoadOptions
 | 
						|
func (o LoadOptions) getCustomCABundle(ctx context.Context) (io.Reader, bool, error) {
 | 
						|
	if o.CustomCABundle == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.CustomCABundle, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithCustomCABundle is a helper function to construct functional options
 | 
						|
// that sets CustomCABundle on config's LoadOptions. Setting the custom CA Bundle
 | 
						|
// to nil will result in custom CA Bundle value being ignored.
 | 
						|
// If multiple WithCustomCABundle calls are made, the last call overrides the
 | 
						|
// previous call values.
 | 
						|
func WithCustomCABundle(v io.Reader) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.CustomCABundle = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// UseEC2IMDSRegion provides a regionProvider that retrieves the region
 | 
						|
// from the EC2 Metadata service.
 | 
						|
type UseEC2IMDSRegion struct {
 | 
						|
	// If unset will default to generic EC2 IMDS client.
 | 
						|
	Client *imds.Client
 | 
						|
}
 | 
						|
 | 
						|
// getRegion attempts to retrieve the region from EC2 Metadata service.
 | 
						|
func (p *UseEC2IMDSRegion) getRegion(ctx context.Context) (string, bool, error) {
 | 
						|
	if ctx == nil {
 | 
						|
		ctx = context.Background()
 | 
						|
	}
 | 
						|
 | 
						|
	client := p.Client
 | 
						|
	if client == nil {
 | 
						|
		client = imds.New(imds.Options{})
 | 
						|
	}
 | 
						|
 | 
						|
	result, err := client.GetRegion(ctx, nil)
 | 
						|
	if err != nil {
 | 
						|
		return "", false, err
 | 
						|
	}
 | 
						|
	if len(result.Region) != 0 {
 | 
						|
		return result.Region, true, nil
 | 
						|
	}
 | 
						|
	return "", false, nil
 | 
						|
}
 | 
						|
 | 
						|
// getEC2IMDSRegion returns the value of EC2 IMDS region.
 | 
						|
func (o LoadOptions) getEC2IMDSRegion(ctx context.Context) (string, bool, error) {
 | 
						|
	if o.UseEC2IMDSRegion == nil {
 | 
						|
		return "", false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.UseEC2IMDSRegion.getRegion(ctx)
 | 
						|
}
 | 
						|
 | 
						|
// WithEC2IMDSRegion is a helper function to construct functional options
 | 
						|
// that enables resolving EC2IMDS region. The function takes
 | 
						|
// in a UseEC2IMDSRegion functional option, and can be used to set the
 | 
						|
// EC2IMDS client which will be used to resolve EC2IMDSRegion.
 | 
						|
// If no functional option is provided, an EC2IMDS client is built and used
 | 
						|
// by the resolver. If multiple WithEC2IMDSRegion calls are made, the last
 | 
						|
// call overrides the previous call values. Note that the WithRegion calls takes
 | 
						|
// precedence over WithEC2IMDSRegion when resolving region.
 | 
						|
func WithEC2IMDSRegion(fnOpts ...func(o *UseEC2IMDSRegion)) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.UseEC2IMDSRegion = &UseEC2IMDSRegion{}
 | 
						|
 | 
						|
		for _, fn := range fnOpts {
 | 
						|
			fn(o.UseEC2IMDSRegion)
 | 
						|
		}
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// getCredentialsProvider returns the credentials value
 | 
						|
func (o LoadOptions) getCredentialsProvider(ctx context.Context) (aws.CredentialsProvider, bool, error) {
 | 
						|
	if o.Credentials == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.Credentials, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithCredentialsProvider is a helper function to construct functional options
 | 
						|
// that sets Credential provider value on config's LoadOptions. If credentials
 | 
						|
// provider is set to nil, the credentials provider value will be ignored.
 | 
						|
// If multiple WithCredentialsProvider calls are made, the last call overrides
 | 
						|
// the previous call values.
 | 
						|
func WithCredentialsProvider(v aws.CredentialsProvider) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.Credentials = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// getCredentialsCacheOptionsProvider returns the wrapped function to set aws.CredentialsCacheOptions
 | 
						|
func (o LoadOptions) getCredentialsCacheOptions(ctx context.Context) (func(*aws.CredentialsCacheOptions), bool, error) {
 | 
						|
	if o.CredentialsCacheOptions == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.CredentialsCacheOptions, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithCredentialsCacheOptions is a helper function to construct functional
 | 
						|
// options that sets a function to modify the aws.CredentialsCacheOptions the
 | 
						|
// aws.CredentialsCache will be configured with, if the CredentialsCache is used
 | 
						|
// by the configuration loader.
 | 
						|
//
 | 
						|
// If multiple WithCredentialsCacheOptions calls are made, the last call
 | 
						|
// overrides the previous call values.
 | 
						|
func WithCredentialsCacheOptions(v func(*aws.CredentialsCacheOptions)) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.CredentialsCacheOptions = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// getBearerAuthTokenProvider returns the credentials value
 | 
						|
func (o LoadOptions) getBearerAuthTokenProvider(ctx context.Context) (smithybearer.TokenProvider, bool, error) {
 | 
						|
	if o.BearerAuthTokenProvider == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.BearerAuthTokenProvider, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithBearerAuthTokenProvider is a helper function to construct functional options
 | 
						|
// that sets Credential provider value on config's LoadOptions. If credentials
 | 
						|
// provider is set to nil, the credentials provider value will be ignored.
 | 
						|
// If multiple WithBearerAuthTokenProvider calls are made, the last call overrides
 | 
						|
// the previous call values.
 | 
						|
func WithBearerAuthTokenProvider(v smithybearer.TokenProvider) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.BearerAuthTokenProvider = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// getBearerAuthTokenCacheOptionsProvider returns the wrapped function to set smithybearer.TokenCacheOptions
 | 
						|
func (o LoadOptions) getBearerAuthTokenCacheOptions(ctx context.Context) (func(*smithybearer.TokenCacheOptions), bool, error) {
 | 
						|
	if o.BearerAuthTokenCacheOptions == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.BearerAuthTokenCacheOptions, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithBearerAuthTokenCacheOptions is a helper function to construct functional options
 | 
						|
// that sets a function to modify the TokenCacheOptions the smithy-go
 | 
						|
// auth/bearer#TokenCache will be configured with, if the TokenCache is used by
 | 
						|
// the configuration loader.
 | 
						|
//
 | 
						|
// If multiple WithBearerAuthTokenCacheOptions calls are made, the last call overrides
 | 
						|
// the previous call values.
 | 
						|
func WithBearerAuthTokenCacheOptions(v func(*smithybearer.TokenCacheOptions)) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.BearerAuthTokenCacheOptions = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// getSSOTokenProviderOptionsProvider returns the wrapped function to set smithybearer.TokenCacheOptions
 | 
						|
func (o LoadOptions) getSSOTokenProviderOptions(ctx context.Context) (func(*ssocreds.SSOTokenProviderOptions), bool, error) {
 | 
						|
	if o.SSOTokenProviderOptions == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.SSOTokenProviderOptions, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithSSOTokenProviderOptions is a helper function to construct functional
 | 
						|
// options that sets a function to modify the SSOtokenProviderOptions the SDK's
 | 
						|
// credentials/ssocreds#SSOProvider will be configured with, if the
 | 
						|
// SSOTokenProvider is used by the configuration loader.
 | 
						|
//
 | 
						|
// If multiple WithSSOTokenProviderOptions calls are made, the last call overrides
 | 
						|
// the previous call values.
 | 
						|
func WithSSOTokenProviderOptions(v func(*ssocreds.SSOTokenProviderOptions)) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.SSOTokenProviderOptions = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// getProcessCredentialOptions returns the wrapped function to set processcreds.Options
 | 
						|
func (o LoadOptions) getProcessCredentialOptions(ctx context.Context) (func(*processcreds.Options), bool, error) {
 | 
						|
	if o.ProcessCredentialOptions == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.ProcessCredentialOptions, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithProcessCredentialOptions is a helper function to construct functional options
 | 
						|
// that sets a function to use processcreds.Options on config's LoadOptions.
 | 
						|
// If process credential options is set to nil, the process credential value will
 | 
						|
// be ignored. If multiple WithProcessCredentialOptions calls are made, the last call
 | 
						|
// overrides the previous call values.
 | 
						|
func WithProcessCredentialOptions(v func(*processcreds.Options)) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.ProcessCredentialOptions = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// getEC2RoleCredentialOptions returns the wrapped function to set the ec2rolecreds.Options
 | 
						|
func (o LoadOptions) getEC2RoleCredentialOptions(ctx context.Context) (func(*ec2rolecreds.Options), bool, error) {
 | 
						|
	if o.EC2RoleCredentialOptions == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.EC2RoleCredentialOptions, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithEC2RoleCredentialOptions is a helper function to construct functional options
 | 
						|
// that sets a function to use ec2rolecreds.Options on config's LoadOptions. If
 | 
						|
// EC2 role credential options is set to nil, the EC2 role credential options value
 | 
						|
// will be ignored. If multiple WithEC2RoleCredentialOptions calls are made,
 | 
						|
// the last call overrides the previous call values.
 | 
						|
func WithEC2RoleCredentialOptions(v func(*ec2rolecreds.Options)) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.EC2RoleCredentialOptions = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// getEndpointCredentialOptions returns the wrapped function to set endpointcreds.Options
 | 
						|
func (o LoadOptions) getEndpointCredentialOptions(context.Context) (func(*endpointcreds.Options), bool, error) {
 | 
						|
	if o.EndpointCredentialOptions == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.EndpointCredentialOptions, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithEndpointCredentialOptions is a helper function to construct functional options
 | 
						|
// that sets a function to use endpointcreds.Options on config's LoadOptions. If
 | 
						|
// endpoint credential options is set to nil, the endpoint credential options
 | 
						|
// value will be ignored. If multiple WithEndpointCredentialOptions calls are made,
 | 
						|
// the last call overrides the previous call values.
 | 
						|
func WithEndpointCredentialOptions(v func(*endpointcreds.Options)) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.EndpointCredentialOptions = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// getWebIdentityRoleCredentialOptions returns the wrapped function
 | 
						|
func (o LoadOptions) getWebIdentityRoleCredentialOptions(context.Context) (func(*stscreds.WebIdentityRoleOptions), bool, error) {
 | 
						|
	if o.WebIdentityRoleCredentialOptions == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.WebIdentityRoleCredentialOptions, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithWebIdentityRoleCredentialOptions is a helper function to construct
 | 
						|
// functional options that sets a function to use stscreds.WebIdentityRoleOptions
 | 
						|
// on config's LoadOptions. If web identity role credentials options is set to nil,
 | 
						|
// the web identity role credentials value will be ignored. If multiple
 | 
						|
// WithWebIdentityRoleCredentialOptions calls are made, the last call
 | 
						|
// overrides the previous call values.
 | 
						|
func WithWebIdentityRoleCredentialOptions(v func(*stscreds.WebIdentityRoleOptions)) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.WebIdentityRoleCredentialOptions = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// getAssumeRoleCredentialOptions returns AssumeRoleCredentialOptions from LoadOptions
 | 
						|
func (o LoadOptions) getAssumeRoleCredentialOptions(context.Context) (func(options *stscreds.AssumeRoleOptions), bool, error) {
 | 
						|
	if o.AssumeRoleCredentialOptions == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.AssumeRoleCredentialOptions, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithAssumeRoleCredentialOptions  is a helper function to construct
 | 
						|
// functional options that sets a function to use stscreds.AssumeRoleOptions
 | 
						|
// on config's LoadOptions. If assume role credentials options is set to nil,
 | 
						|
// the assume role credentials value will be ignored. If multiple
 | 
						|
// WithAssumeRoleCredentialOptions calls are made, the last call overrides
 | 
						|
// the previous call values.
 | 
						|
func WithAssumeRoleCredentialOptions(v func(*stscreds.AssumeRoleOptions)) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.AssumeRoleCredentialOptions = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (o LoadOptions) getHTTPClient(ctx context.Context) (HTTPClient, bool, error) {
 | 
						|
	if o.HTTPClient == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.HTTPClient, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithHTTPClient is a helper function to construct functional options
 | 
						|
// that sets HTTPClient on LoadOptions. If HTTPClient is set to nil,
 | 
						|
// the HTTPClient value will be ignored.
 | 
						|
// If multiple WithHTTPClient calls are made, the last call overrides
 | 
						|
// the previous call values.
 | 
						|
func WithHTTPClient(v HTTPClient) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.HTTPClient = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (o LoadOptions) getAPIOptions(ctx context.Context) ([]func(*middleware.Stack) error, bool, error) {
 | 
						|
	if o.APIOptions == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.APIOptions, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithAPIOptions is a helper function to construct functional options
 | 
						|
// that sets APIOptions on LoadOptions. If APIOptions is set to nil, the
 | 
						|
// APIOptions value is ignored. If multiple WithAPIOptions calls are
 | 
						|
// made, the last call overrides the previous call values.
 | 
						|
func WithAPIOptions(v []func(*middleware.Stack) error) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		if v == nil {
 | 
						|
			return nil
 | 
						|
		}
 | 
						|
 | 
						|
		o.APIOptions = append(o.APIOptions, v...)
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (o LoadOptions) getRetryMaxAttempts(ctx context.Context) (int, bool, error) {
 | 
						|
	if o.RetryMaxAttempts == 0 {
 | 
						|
		return 0, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.RetryMaxAttempts, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithRetryMaxAttempts is a helper function to construct functional options that sets
 | 
						|
// RetryMaxAttempts on LoadOptions. If RetryMaxAttempts is unset, the RetryMaxAttempts value is
 | 
						|
// ignored. If multiple WithRetryMaxAttempts calls are made, the last call overrides
 | 
						|
// the previous call values.
 | 
						|
//
 | 
						|
// Will be ignored of LoadOptions.Retryer or WithRetryer are used.
 | 
						|
func WithRetryMaxAttempts(v int) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.RetryMaxAttempts = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (o LoadOptions) getRetryMode(ctx context.Context) (aws.RetryMode, bool, error) {
 | 
						|
	if o.RetryMode == "" {
 | 
						|
		return "", false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.RetryMode, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithRetryMode is a helper function to construct functional options that sets
 | 
						|
// RetryMode on LoadOptions. If RetryMode is unset, the RetryMode value is
 | 
						|
// ignored. If multiple WithRetryMode calls are made, the last call overrides
 | 
						|
// the previous call values.
 | 
						|
//
 | 
						|
// Will be ignored of LoadOptions.Retryer or WithRetryer are used.
 | 
						|
func WithRetryMode(v aws.RetryMode) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.RetryMode = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (o LoadOptions) getRetryer(ctx context.Context) (func() aws.Retryer, bool, error) {
 | 
						|
	if o.Retryer == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.Retryer, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithRetryer is a helper function to construct functional options
 | 
						|
// that sets Retryer on LoadOptions. If Retryer is set to nil, the
 | 
						|
// Retryer value is ignored. If multiple WithRetryer calls are
 | 
						|
// made, the last call overrides the previous call values.
 | 
						|
func WithRetryer(v func() aws.Retryer) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.Retryer = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (o LoadOptions) getEndpointResolver(ctx context.Context) (aws.EndpointResolver, bool, error) {
 | 
						|
	if o.EndpointResolver == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.EndpointResolver, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithEndpointResolver is a helper function to construct functional options
 | 
						|
// that sets the EndpointResolver on LoadOptions. If the EndpointResolver is set to nil,
 | 
						|
// the EndpointResolver value is ignored. If multiple WithEndpointResolver calls
 | 
						|
// are made, the last call overrides the previous call values.
 | 
						|
//
 | 
						|
// Deprecated: See WithEndpointResolverWithOptions
 | 
						|
func WithEndpointResolver(v aws.EndpointResolver) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.EndpointResolver = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (o LoadOptions) getEndpointResolverWithOptions(ctx context.Context) (aws.EndpointResolverWithOptions, bool, error) {
 | 
						|
	if o.EndpointResolverWithOptions == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.EndpointResolverWithOptions, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithEndpointResolverWithOptions is a helper function to construct functional options
 | 
						|
// that sets the EndpointResolverWithOptions on LoadOptions. If the EndpointResolverWithOptions is set to nil,
 | 
						|
// the EndpointResolver value is ignored. If multiple WithEndpointResolver calls
 | 
						|
// are made, the last call overrides the previous call values.
 | 
						|
func WithEndpointResolverWithOptions(v aws.EndpointResolverWithOptions) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.EndpointResolverWithOptions = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (o LoadOptions) getLogger(ctx context.Context) (logging.Logger, bool, error) {
 | 
						|
	if o.Logger == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.Logger, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithLogger is a helper function to construct functional options
 | 
						|
// that sets Logger on LoadOptions. If Logger is set to nil, the
 | 
						|
// Logger value will be ignored. If multiple WithLogger calls are made,
 | 
						|
// the last call overrides the previous call values.
 | 
						|
func WithLogger(v logging.Logger) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.Logger = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (o LoadOptions) getClientLogMode(ctx context.Context) (aws.ClientLogMode, bool, error) {
 | 
						|
	if o.ClientLogMode == nil {
 | 
						|
		return 0, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return *o.ClientLogMode, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithClientLogMode is a helper function to construct functional options
 | 
						|
// that sets client log mode on LoadOptions. If client log mode is set to nil,
 | 
						|
// the client log mode value will be ignored. If multiple WithClientLogMode calls are made,
 | 
						|
// the last call overrides the previous call values.
 | 
						|
func WithClientLogMode(v aws.ClientLogMode) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.ClientLogMode = &v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func (o LoadOptions) getLogConfigurationWarnings(ctx context.Context) (v bool, found bool, err error) {
 | 
						|
	if o.LogConfigurationWarnings == nil {
 | 
						|
		return false, false, nil
 | 
						|
	}
 | 
						|
	return *o.LogConfigurationWarnings, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithLogConfigurationWarnings is a helper function to construct
 | 
						|
// functional options that can be used to set LogConfigurationWarnings
 | 
						|
// on LoadOptions.
 | 
						|
//
 | 
						|
// If multiple WithLogConfigurationWarnings calls are made, the last call
 | 
						|
// overrides the previous call values.
 | 
						|
func WithLogConfigurationWarnings(v bool) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.LogConfigurationWarnings = &v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// GetS3UseARNRegion returns whether to allow ARNs to direct the region
 | 
						|
// the S3 client's requests are sent to.
 | 
						|
func (o LoadOptions) GetS3UseARNRegion(ctx context.Context) (v bool, found bool, err error) {
 | 
						|
	if o.S3UseARNRegion == nil {
 | 
						|
		return false, false, nil
 | 
						|
	}
 | 
						|
	return *o.S3UseARNRegion, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithS3UseARNRegion is a helper function to construct functional options
 | 
						|
// that can be used to set S3UseARNRegion on LoadOptions.
 | 
						|
// If multiple WithS3UseARNRegion calls are made, the last call overrides
 | 
						|
// the previous call values.
 | 
						|
func WithS3UseARNRegion(v bool) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.S3UseARNRegion = &v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// GetEnableEndpointDiscovery returns if the EnableEndpointDiscovery flag is set.
 | 
						|
func (o LoadOptions) GetEnableEndpointDiscovery(ctx context.Context) (value aws.EndpointDiscoveryEnableState, ok bool, err error) {
 | 
						|
	if o.EnableEndpointDiscovery == aws.EndpointDiscoveryUnset {
 | 
						|
		return aws.EndpointDiscoveryUnset, false, nil
 | 
						|
	}
 | 
						|
	return o.EnableEndpointDiscovery, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithEndpointDiscovery is a helper function to construct functional options
 | 
						|
// that can be used to enable endpoint discovery on LoadOptions for supported clients.
 | 
						|
// If multiple WithEndpointDiscovery calls are made, the last call overrides
 | 
						|
// the previous call values.
 | 
						|
func WithEndpointDiscovery(v aws.EndpointDiscoveryEnableState) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.EnableEndpointDiscovery = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// getSSOProviderOptions returns AssumeRoleCredentialOptions from LoadOptions
 | 
						|
func (o LoadOptions) getSSOProviderOptions(context.Context) (func(options *ssocreds.Options), bool, error) {
 | 
						|
	if o.SSOProviderOptions == nil {
 | 
						|
		return nil, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.SSOProviderOptions, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithSSOProviderOptions is a helper function to construct
 | 
						|
// functional options that sets a function to use ssocreds.Options
 | 
						|
// on config's LoadOptions. If the SSO credential provider options is set to nil,
 | 
						|
// the sso provider options value will be ignored. If multiple
 | 
						|
// WithSSOProviderOptions calls are made, the last call overrides
 | 
						|
// the previous call values.
 | 
						|
func WithSSOProviderOptions(v func(*ssocreds.Options)) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.SSOProviderOptions = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// GetEC2IMDSClientEnableState implements a EC2IMDSClientEnableState options resolver interface.
 | 
						|
func (o LoadOptions) GetEC2IMDSClientEnableState() (imds.ClientEnableState, bool, error) {
 | 
						|
	if o.EC2IMDSClientEnableState == imds.ClientDefaultEnableState {
 | 
						|
		return imds.ClientDefaultEnableState, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.EC2IMDSClientEnableState, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// GetEC2IMDSEndpointMode implements a EC2IMDSEndpointMode option resolver interface.
 | 
						|
func (o LoadOptions) GetEC2IMDSEndpointMode() (imds.EndpointModeState, bool, error) {
 | 
						|
	if o.EC2IMDSEndpointMode == imds.EndpointModeStateUnset {
 | 
						|
		return imds.EndpointModeStateUnset, false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.EC2IMDSEndpointMode, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// GetEC2IMDSEndpoint implements a EC2IMDSEndpoint option resolver interface.
 | 
						|
func (o LoadOptions) GetEC2IMDSEndpoint() (string, bool, error) {
 | 
						|
	if len(o.EC2IMDSEndpoint) == 0 {
 | 
						|
		return "", false, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return o.EC2IMDSEndpoint, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithEC2IMDSClientEnableState is a helper function to construct functional options that sets the EC2IMDSClientEnableState.
 | 
						|
func WithEC2IMDSClientEnableState(v imds.ClientEnableState) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.EC2IMDSClientEnableState = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// WithEC2IMDSEndpointMode is a helper function to construct functional options that sets the EC2IMDSEndpointMode.
 | 
						|
func WithEC2IMDSEndpointMode(v imds.EndpointModeState) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.EC2IMDSEndpointMode = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// WithEC2IMDSEndpoint is a helper function to construct functional options that sets the EC2IMDSEndpoint.
 | 
						|
func WithEC2IMDSEndpoint(v string) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.EC2IMDSEndpoint = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// WithUseDualStackEndpoint is a helper function to construct
 | 
						|
// functional options that can be used to set UseDualStackEndpoint on LoadOptions.
 | 
						|
func WithUseDualStackEndpoint(v aws.DualStackEndpointState) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.UseDualStackEndpoint = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// GetUseDualStackEndpoint returns whether the service's dual-stack endpoint should be
 | 
						|
// used for requests.
 | 
						|
func (o LoadOptions) GetUseDualStackEndpoint(ctx context.Context) (value aws.DualStackEndpointState, found bool, err error) {
 | 
						|
	if o.UseDualStackEndpoint == aws.DualStackEndpointStateUnset {
 | 
						|
		return aws.DualStackEndpointStateUnset, false, nil
 | 
						|
	}
 | 
						|
	return o.UseDualStackEndpoint, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithUseFIPSEndpoint is a helper function to construct
 | 
						|
// functional options that can be used to set UseFIPSEndpoint on LoadOptions.
 | 
						|
func WithUseFIPSEndpoint(v aws.FIPSEndpointState) LoadOptionsFunc {
 | 
						|
	return func(o *LoadOptions) error {
 | 
						|
		o.UseFIPSEndpoint = v
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// GetUseFIPSEndpoint returns whether the service's FIPS endpoint should be
 | 
						|
// used for requests.
 | 
						|
func (o LoadOptions) GetUseFIPSEndpoint(ctx context.Context) (value aws.FIPSEndpointState, found bool, err error) {
 | 
						|
	if o.UseFIPSEndpoint == aws.FIPSEndpointStateUnset {
 | 
						|
		return aws.FIPSEndpointStateUnset, false, nil
 | 
						|
	}
 | 
						|
	return o.UseFIPSEndpoint, true, nil
 | 
						|
}
 | 
						|
 | 
						|
// WithDefaultsMode sets the SDK defaults configuration mode to the value provided.
 | 
						|
//
 | 
						|
// Zero or more functional options can be provided to provide configuration options for performing
 | 
						|
// environment discovery when using aws.DefaultsModeAuto.
 | 
						|
func WithDefaultsMode(mode aws.DefaultsMode, optFns ...func(options *DefaultsModeOptions)) LoadOptionsFunc {
 | 
						|
	do := DefaultsModeOptions{
 | 
						|
		Mode: mode,
 | 
						|
	}
 | 
						|
	for _, fn := range optFns {
 | 
						|
		fn(&do)
 | 
						|
	}
 | 
						|
	return func(options *LoadOptions) error {
 | 
						|
		options.DefaultsModeOptions = do
 | 
						|
		return nil
 | 
						|
	}
 | 
						|
}
 |