// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.

package lambda

import (
	"bytes"
	"fmt"
	"io"
	"sync"
	"time"

	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/awserr"
	"github.com/aws/aws-sdk-go/aws/awsutil"
	"github.com/aws/aws-sdk-go/aws/client"
	"github.com/aws/aws-sdk-go/aws/request"
	"github.com/aws/aws-sdk-go/private/protocol"
	"github.com/aws/aws-sdk-go/private/protocol/eventstream"
	"github.com/aws/aws-sdk-go/private/protocol/eventstream/eventstreamapi"
	"github.com/aws/aws-sdk-go/private/protocol/rest"
	"github.com/aws/aws-sdk-go/private/protocol/restjson"
)

const opAddLayerVersionPermission = "AddLayerVersionPermission"

// AddLayerVersionPermissionRequest generates a "aws/request.Request" representing the
// client's request for the AddLayerVersionPermission 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 AddLayerVersionPermission for more information on using the AddLayerVersionPermission
// 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 AddLayerVersionPermissionRequest method.
//	req, resp := client.AddLayerVersionPermissionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/AddLayerVersionPermission
func (c *Lambda) AddLayerVersionPermissionRequest(input *AddLayerVersionPermissionInput) (req *request.Request, output *AddLayerVersionPermissionOutput) {
	op := &request.Operation{
		Name:       opAddLayerVersionPermission,
		HTTPMethod: "POST",
		HTTPPath:   "/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy",
	}

	if input == nil {
		input = &AddLayerVersionPermissionInput{}
	}

	output = &AddLayerVersionPermissionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// AddLayerVersionPermission API operation for AWS Lambda.
//
// Adds permissions to the resource-based policy of a version of an Lambda layer
// (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html).
// Use this action to grant layer usage permission to other accounts. You can
// grant permission to a single account, all accounts in an organization, or
// all Amazon Web Services accounts.
//
// To revoke permission, call RemoveLayerVersionPermission with the statement
// ID that you specified when you added it.
//
// 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 Lambda's
// API operation AddLayerVersionPermission for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - PolicyLengthExceededException
//     The permissions policy for the resource is too large. For more information,
//     see Lambda quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).
//
//   - PreconditionFailedException
//     The RevisionId provided does not match the latest RevisionId for the Lambda
//     function or alias. Call the GetFunction or the GetAlias API operation to
//     retrieve the latest RevisionId for your resource.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/AddLayerVersionPermission
func (c *Lambda) AddLayerVersionPermission(input *AddLayerVersionPermissionInput) (*AddLayerVersionPermissionOutput, error) {
	req, out := c.AddLayerVersionPermissionRequest(input)
	return out, req.Send()
}

// AddLayerVersionPermissionWithContext is the same as AddLayerVersionPermission with the addition of
// the ability to pass a context and additional request options.
//
// See AddLayerVersionPermission for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) AddLayerVersionPermissionWithContext(ctx aws.Context, input *AddLayerVersionPermissionInput, opts ...request.Option) (*AddLayerVersionPermissionOutput, error) {
	req, out := c.AddLayerVersionPermissionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opAddPermission = "AddPermission"

// AddPermissionRequest generates a "aws/request.Request" representing the
// client's request for the AddPermission 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 AddPermission for more information on using the AddPermission
// 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 AddPermissionRequest method.
//	req, resp := client.AddPermissionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/AddPermission
func (c *Lambda) AddPermissionRequest(input *AddPermissionInput) (req *request.Request, output *AddPermissionOutput) {
	op := &request.Operation{
		Name:       opAddPermission,
		HTTPMethod: "POST",
		HTTPPath:   "/2015-03-31/functions/{FunctionName}/policy",
	}

	if input == nil {
		input = &AddPermissionInput{}
	}

	output = &AddPermissionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// AddPermission API operation for AWS Lambda.
//
// Grants an Amazon Web Service, Amazon Web Services account, or Amazon Web
// Services organization permission to use a function. You can apply the policy
// at the function level, or specify a qualifier to restrict access to a single
// version or alias. If you use a qualifier, the invoker must use the full Amazon
// Resource Name (ARN) of that version or alias to invoke the function. Note:
// Lambda does not support adding policies to version $LATEST.
//
// To grant permission to another account, specify the account ID as the Principal.
// To grant permission to an organization defined in Organizations, specify
// the organization ID as the PrincipalOrgID. For Amazon Web Services, the principal
// is a domain-style identifier that the service defines, such as s3.amazonaws.com
// or sns.amazonaws.com. For Amazon Web Services, you can also specify the ARN
// of the associated resource as the SourceArn. If you grant permission to a
// service principal without specifying the source, other accounts could potentially
// configure resources in their account to invoke your Lambda function.
//
// This operation adds a statement to a resource-based permissions policy for
// the function. For more information about function policies, see Using resource-based
// policies for Lambda (https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.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 Lambda's
// API operation AddPermission for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - PolicyLengthExceededException
//     The permissions policy for the resource is too large. For more information,
//     see Lambda quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - PreconditionFailedException
//     The RevisionId provided does not match the latest RevisionId for the Lambda
//     function or alias. Call the GetFunction or the GetAlias API operation to
//     retrieve the latest RevisionId for your resource.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/AddPermission
func (c *Lambda) AddPermission(input *AddPermissionInput) (*AddPermissionOutput, error) {
	req, out := c.AddPermissionRequest(input)
	return out, req.Send()
}

// AddPermissionWithContext is the same as AddPermission with the addition of
// the ability to pass a context and additional request options.
//
// See AddPermission for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) AddPermissionWithContext(ctx aws.Context, input *AddPermissionInput, opts ...request.Option) (*AddPermissionOutput, error) {
	req, out := c.AddPermissionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateAlias = "CreateAlias"

// CreateAliasRequest generates a "aws/request.Request" representing the
// client's request for the CreateAlias 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 CreateAlias for more information on using the CreateAlias
// 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 CreateAliasRequest method.
//	req, resp := client.CreateAliasRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/CreateAlias
func (c *Lambda) CreateAliasRequest(input *CreateAliasInput) (req *request.Request, output *AliasConfiguration) {
	op := &request.Operation{
		Name:       opCreateAlias,
		HTTPMethod: "POST",
		HTTPPath:   "/2015-03-31/functions/{FunctionName}/aliases",
	}

	if input == nil {
		input = &CreateAliasInput{}
	}

	output = &AliasConfiguration{}
	req = c.newRequest(op, input, output)
	return
}

// CreateAlias API operation for AWS Lambda.
//
// Creates an alias (https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html)
// for a Lambda function version. Use aliases to provide clients with a function
// identifier that you can update to invoke a different version.
//
// You can also map an alias to split invocation requests between two versions.
// Use the RoutingConfig parameter to specify a second version and the percentage
// of invocation requests that it receives.
//
// 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 Lambda's
// API operation CreateAlias for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/CreateAlias
func (c *Lambda) CreateAlias(input *CreateAliasInput) (*AliasConfiguration, error) {
	req, out := c.CreateAliasRequest(input)
	return out, req.Send()
}

// CreateAliasWithContext is the same as CreateAlias with the addition of
// the ability to pass a context and additional request options.
//
// See CreateAlias for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) CreateAliasWithContext(ctx aws.Context, input *CreateAliasInput, opts ...request.Option) (*AliasConfiguration, error) {
	req, out := c.CreateAliasRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateCodeSigningConfig = "CreateCodeSigningConfig"

// CreateCodeSigningConfigRequest generates a "aws/request.Request" representing the
// client's request for the CreateCodeSigningConfig 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 CreateCodeSigningConfig for more information on using the CreateCodeSigningConfig
// 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 CreateCodeSigningConfigRequest method.
//	req, resp := client.CreateCodeSigningConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/CreateCodeSigningConfig
func (c *Lambda) CreateCodeSigningConfigRequest(input *CreateCodeSigningConfigInput) (req *request.Request, output *CreateCodeSigningConfigOutput) {
	op := &request.Operation{
		Name:       opCreateCodeSigningConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/2020-04-22/code-signing-configs/",
	}

	if input == nil {
		input = &CreateCodeSigningConfigInput{}
	}

	output = &CreateCodeSigningConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateCodeSigningConfig API operation for AWS Lambda.
//
// Creates a code signing configuration. A code signing configuration (https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html)
// defines a list of allowed signing profiles and defines the code-signing validation
// policy (action to be taken if deployment validation checks fail).
//
// 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 Lambda's
// API operation CreateCodeSigningConfig for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/CreateCodeSigningConfig
func (c *Lambda) CreateCodeSigningConfig(input *CreateCodeSigningConfigInput) (*CreateCodeSigningConfigOutput, error) {
	req, out := c.CreateCodeSigningConfigRequest(input)
	return out, req.Send()
}

// CreateCodeSigningConfigWithContext is the same as CreateCodeSigningConfig with the addition of
// the ability to pass a context and additional request options.
//
// See CreateCodeSigningConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) CreateCodeSigningConfigWithContext(ctx aws.Context, input *CreateCodeSigningConfigInput, opts ...request.Option) (*CreateCodeSigningConfigOutput, error) {
	req, out := c.CreateCodeSigningConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateEventSourceMapping = "CreateEventSourceMapping"

// CreateEventSourceMappingRequest generates a "aws/request.Request" representing the
// client's request for the CreateEventSourceMapping 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 CreateEventSourceMapping for more information on using the CreateEventSourceMapping
// 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 CreateEventSourceMappingRequest method.
//	req, resp := client.CreateEventSourceMappingRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/CreateEventSourceMapping
func (c *Lambda) CreateEventSourceMappingRequest(input *CreateEventSourceMappingInput) (req *request.Request, output *EventSourceMappingConfiguration) {
	op := &request.Operation{
		Name:       opCreateEventSourceMapping,
		HTTPMethod: "POST",
		HTTPPath:   "/2015-03-31/event-source-mappings/",
	}

	if input == nil {
		input = &CreateEventSourceMappingInput{}
	}

	output = &EventSourceMappingConfiguration{}
	req = c.newRequest(op, input, output)
	return
}

// CreateEventSourceMapping API operation for AWS Lambda.
//
// Creates a mapping between an event source and an Lambda function. Lambda
// reads items from the event source and invokes the function.
//
// For details about how to configure different event sources, see the following
// topics.
//
//   - Amazon DynamoDB Streams (https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-dynamodb-eventsourcemapping)
//
//   - Amazon Kinesis (https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-eventsourcemapping)
//
//   - Amazon SQS (https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-eventsource)
//
//   - Amazon MQ and RabbitMQ (https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-eventsourcemapping)
//
//   - Amazon MSK (https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html)
//
//   - Apache Kafka (https://docs.aws.amazon.com/lambda/latest/dg/kafka-smaa.html)
//
//   - Amazon DocumentDB (https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html)
//
// The following error handling options are available only for stream sources
// (DynamoDB and Kinesis):
//
//   - BisectBatchOnFunctionError – If the function returns an error, split
//     the batch in two and retry.
//
//   - DestinationConfig – Send discarded records to an Amazon SQS queue
//     or Amazon SNS topic.
//
//   - MaximumRecordAgeInSeconds – Discard records older than the specified
//     age. The default value is infinite (-1). When set to infinite (-1), failed
//     records are retried until the record expires
//
//   - MaximumRetryAttempts – Discard records after the specified number
//     of retries. The default value is infinite (-1). When set to infinite (-1),
//     failed records are retried until the record expires.
//
//   - ParallelizationFactor – Process multiple batches from each shard concurrently.
//
// For information about which configuration parameters apply to each event
// source, see the following topics.
//
//   - Amazon DynamoDB Streams (https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-params)
//
//   - Amazon Kinesis (https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-params)
//
//   - Amazon SQS (https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#services-sqs-params)
//
//   - Amazon MQ and RabbitMQ (https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-params)
//
//   - Amazon MSK (https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-parms)
//
//   - Apache Kafka (https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-kafka-parms)
//
//   - Amazon DocumentDB (https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html#docdb-configuration)
//
// 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 Lambda's
// API operation CreateEventSourceMapping for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/CreateEventSourceMapping
func (c *Lambda) CreateEventSourceMapping(input *CreateEventSourceMappingInput) (*EventSourceMappingConfiguration, error) {
	req, out := c.CreateEventSourceMappingRequest(input)
	return out, req.Send()
}

// CreateEventSourceMappingWithContext is the same as CreateEventSourceMapping with the addition of
// the ability to pass a context and additional request options.
//
// See CreateEventSourceMapping for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) CreateEventSourceMappingWithContext(ctx aws.Context, input *CreateEventSourceMappingInput, opts ...request.Option) (*EventSourceMappingConfiguration, error) {
	req, out := c.CreateEventSourceMappingRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateFunction = "CreateFunction"

// CreateFunctionRequest generates a "aws/request.Request" representing the
// client's request for the CreateFunction 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 CreateFunction for more information on using the CreateFunction
// 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 CreateFunctionRequest method.
//	req, resp := client.CreateFunctionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/CreateFunction
func (c *Lambda) CreateFunctionRequest(input *CreateFunctionInput) (req *request.Request, output *FunctionConfiguration) {
	op := &request.Operation{
		Name:       opCreateFunction,
		HTTPMethod: "POST",
		HTTPPath:   "/2015-03-31/functions",
	}

	if input == nil {
		input = &CreateFunctionInput{}
	}

	output = &FunctionConfiguration{}
	req = c.newRequest(op, input, output)
	return
}

// CreateFunction API operation for AWS Lambda.
//
// Creates a Lambda function. To create a function, you need a deployment package
// (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html)
// and an execution role (https://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html#lambda-intro-execution-role).
// The deployment package is a .zip file archive or container image that contains
// your function code. The execution role grants the function permission to
// use Amazon Web Services, such as Amazon CloudWatch Logs for log streaming
// and X-Ray for request tracing.
//
// If the deployment package is a container image (https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html),
// then you set the package type to Image. For a container image, the code property
// must include the URI of a container image in the Amazon ECR registry. You
// do not need to specify the handler and runtime properties.
//
// If the deployment package is a .zip file archive (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html#gettingstarted-package-zip),
// then you set the package type to Zip. For a .zip file archive, the code property
// specifies the location of the .zip file. You must also specify the handler
// and runtime properties. The code in the deployment package must be compatible
// with the target instruction set architecture of the function (x86-64 or arm64).
// If you do not specify the architecture, then the default value is x86-64.
//
// When you create a function, Lambda provisions an instance of the function
// and its supporting resources. If your function connects to a VPC, this process
// can take a minute or so. During this time, you can't invoke or modify the
// function. The State, StateReason, and StateReasonCode fields in the response
// from GetFunctionConfiguration indicate when the function is ready to invoke.
// For more information, see Lambda function states (https://docs.aws.amazon.com/lambda/latest/dg/functions-states.html).
//
// A function has an unpublished version, and can have published versions and
// aliases. The unpublished version changes when you update your function's
// code and configuration. A published version is a snapshot of your function
// code and configuration that can't be changed. An alias is a named resource
// that maps to a version, and can be changed to map to a different version.
// Use the Publish parameter to create version 1 of your function from its initial
// configuration.
//
// The other parameters let you configure version-specific and function-level
// settings. You can modify version-specific settings later with UpdateFunctionConfiguration.
// Function-level settings apply to both the unpublished and published versions
// of the function, and include tags (TagResource) and per-function concurrency
// limits (PutFunctionConcurrency).
//
// You can use code signing if your deployment package is a .zip file archive.
// To enable code signing for this function, specify the ARN of a code-signing
// configuration. When a user attempts to deploy a code package with UpdateFunctionCode,
// Lambda checks that the code package has a valid signature from a trusted
// publisher. The code-signing configuration includes set of signing profiles,
// which define the trusted publishers for this function.
//
// If another Amazon Web Services account or an Amazon Web Service invokes your
// function, use AddPermission to grant permission by creating a resource-based
// Identity and Access Management (IAM) policy. You can grant permissions at
// the function level, on a version, or on an alias.
//
// To invoke your function directly, use Invoke. To invoke your function in
// response to events in other Amazon Web Services, create an event source mapping
// (CreateEventSourceMapping), or configure a function trigger in the other
// service. For more information, see Invoking Lambda functions (https://docs.aws.amazon.com/lambda/latest/dg/lambda-invocation.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 Lambda's
// API operation CreateFunction for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - CodeStorageExceededException
//     Your Amazon Web Services account has exceeded its maximum total code size.
//     For more information, see Lambda quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).
//
//   - CodeVerificationFailedException
//     The code signature failed one or more of the validation checks for signature
//     mismatch or expiry, and the code signing policy is set to ENFORCE. Lambda
//     blocks the deployment.
//
//   - InvalidCodeSignatureException
//     The code signature failed the integrity check. If the integrity check fails,
//     then Lambda blocks deployment, even if the code signing policy is set to
//     WARN.
//
//   - CodeSigningConfigNotFoundException
//     The specified code signing configuration does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/CreateFunction
func (c *Lambda) CreateFunction(input *CreateFunctionInput) (*FunctionConfiguration, error) {
	req, out := c.CreateFunctionRequest(input)
	return out, req.Send()
}

// CreateFunctionWithContext is the same as CreateFunction with the addition of
// the ability to pass a context and additional request options.
//
// See CreateFunction for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) CreateFunctionWithContext(ctx aws.Context, input *CreateFunctionInput, opts ...request.Option) (*FunctionConfiguration, error) {
	req, out := c.CreateFunctionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateFunctionUrlConfig = "CreateFunctionUrlConfig"

// CreateFunctionUrlConfigRequest generates a "aws/request.Request" representing the
// client's request for the CreateFunctionUrlConfig 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 CreateFunctionUrlConfig for more information on using the CreateFunctionUrlConfig
// 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 CreateFunctionUrlConfigRequest method.
//	req, resp := client.CreateFunctionUrlConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/CreateFunctionUrlConfig
func (c *Lambda) CreateFunctionUrlConfigRequest(input *CreateFunctionUrlConfigInput) (req *request.Request, output *CreateFunctionUrlConfigOutput) {
	op := &request.Operation{
		Name:       opCreateFunctionUrlConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/2021-10-31/functions/{FunctionName}/url",
	}

	if input == nil {
		input = &CreateFunctionUrlConfigInput{}
	}

	output = &CreateFunctionUrlConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// CreateFunctionUrlConfig API operation for AWS Lambda.
//
// Creates a Lambda function URL with the specified configuration parameters.
// A function URL is a dedicated HTTP(S) endpoint that you can use to invoke
// your function.
//
// 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 Lambda's
// API operation CreateFunctionUrlConfig for usage and error information.
//
// Returned Error Types:
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/CreateFunctionUrlConfig
func (c *Lambda) CreateFunctionUrlConfig(input *CreateFunctionUrlConfigInput) (*CreateFunctionUrlConfigOutput, error) {
	req, out := c.CreateFunctionUrlConfigRequest(input)
	return out, req.Send()
}

// CreateFunctionUrlConfigWithContext is the same as CreateFunctionUrlConfig with the addition of
// the ability to pass a context and additional request options.
//
// See CreateFunctionUrlConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) CreateFunctionUrlConfigWithContext(ctx aws.Context, input *CreateFunctionUrlConfigInput, opts ...request.Option) (*CreateFunctionUrlConfigOutput, error) {
	req, out := c.CreateFunctionUrlConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteAlias = "DeleteAlias"

// DeleteAliasRequest generates a "aws/request.Request" representing the
// client's request for the DeleteAlias 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 DeleteAlias for more information on using the DeleteAlias
// 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 DeleteAliasRequest method.
//	req, resp := client.DeleteAliasRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteAlias
func (c *Lambda) DeleteAliasRequest(input *DeleteAliasInput) (req *request.Request, output *DeleteAliasOutput) {
	op := &request.Operation{
		Name:       opDeleteAlias,
		HTTPMethod: "DELETE",
		HTTPPath:   "/2015-03-31/functions/{FunctionName}/aliases/{Name}",
	}

	if input == nil {
		input = &DeleteAliasInput{}
	}

	output = &DeleteAliasOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteAlias API operation for AWS Lambda.
//
// Deletes a Lambda function alias (https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.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 Lambda's
// API operation DeleteAlias for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteAlias
func (c *Lambda) DeleteAlias(input *DeleteAliasInput) (*DeleteAliasOutput, error) {
	req, out := c.DeleteAliasRequest(input)
	return out, req.Send()
}

// DeleteAliasWithContext is the same as DeleteAlias with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteAlias for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) DeleteAliasWithContext(ctx aws.Context, input *DeleteAliasInput, opts ...request.Option) (*DeleteAliasOutput, error) {
	req, out := c.DeleteAliasRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteCodeSigningConfig = "DeleteCodeSigningConfig"

// DeleteCodeSigningConfigRequest generates a "aws/request.Request" representing the
// client's request for the DeleteCodeSigningConfig 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 DeleteCodeSigningConfig for more information on using the DeleteCodeSigningConfig
// 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 DeleteCodeSigningConfigRequest method.
//	req, resp := client.DeleteCodeSigningConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteCodeSigningConfig
func (c *Lambda) DeleteCodeSigningConfigRequest(input *DeleteCodeSigningConfigInput) (req *request.Request, output *DeleteCodeSigningConfigOutput) {
	op := &request.Operation{
		Name:       opDeleteCodeSigningConfig,
		HTTPMethod: "DELETE",
		HTTPPath:   "/2020-04-22/code-signing-configs/{CodeSigningConfigArn}",
	}

	if input == nil {
		input = &DeleteCodeSigningConfigInput{}
	}

	output = &DeleteCodeSigningConfigOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteCodeSigningConfig API operation for AWS Lambda.
//
// Deletes the code signing configuration. You can delete the code signing configuration
// only if no function is using it.
//
// 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 Lambda's
// API operation DeleteCodeSigningConfig for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteCodeSigningConfig
func (c *Lambda) DeleteCodeSigningConfig(input *DeleteCodeSigningConfigInput) (*DeleteCodeSigningConfigOutput, error) {
	req, out := c.DeleteCodeSigningConfigRequest(input)
	return out, req.Send()
}

// DeleteCodeSigningConfigWithContext is the same as DeleteCodeSigningConfig with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteCodeSigningConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) DeleteCodeSigningConfigWithContext(ctx aws.Context, input *DeleteCodeSigningConfigInput, opts ...request.Option) (*DeleteCodeSigningConfigOutput, error) {
	req, out := c.DeleteCodeSigningConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteEventSourceMapping = "DeleteEventSourceMapping"

// DeleteEventSourceMappingRequest generates a "aws/request.Request" representing the
// client's request for the DeleteEventSourceMapping 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 DeleteEventSourceMapping for more information on using the DeleteEventSourceMapping
// 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 DeleteEventSourceMappingRequest method.
//	req, resp := client.DeleteEventSourceMappingRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteEventSourceMapping
func (c *Lambda) DeleteEventSourceMappingRequest(input *DeleteEventSourceMappingInput) (req *request.Request, output *EventSourceMappingConfiguration) {
	op := &request.Operation{
		Name:       opDeleteEventSourceMapping,
		HTTPMethod: "DELETE",
		HTTPPath:   "/2015-03-31/event-source-mappings/{UUID}",
	}

	if input == nil {
		input = &DeleteEventSourceMappingInput{}
	}

	output = &EventSourceMappingConfiguration{}
	req = c.newRequest(op, input, output)
	return
}

// DeleteEventSourceMapping API operation for AWS Lambda.
//
// Deletes an event source mapping (https://docs.aws.amazon.com/lambda/latest/dg/intro-invocation-modes.html).
// You can get the identifier of a mapping from the output of ListEventSourceMappings.
//
// When you delete an event source mapping, it enters a Deleting state and might
// not be completely deleted for several seconds.
//
// 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 Lambda's
// API operation DeleteEventSourceMapping for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
//   - ResourceInUseException
//     The operation conflicts with the resource's availability. For example, you
//     tried to update an event source mapping in the CREATING state, or you tried
//     to delete an event source mapping currently UPDATING.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteEventSourceMapping
func (c *Lambda) DeleteEventSourceMapping(input *DeleteEventSourceMappingInput) (*EventSourceMappingConfiguration, error) {
	req, out := c.DeleteEventSourceMappingRequest(input)
	return out, req.Send()
}

// DeleteEventSourceMappingWithContext is the same as DeleteEventSourceMapping with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteEventSourceMapping for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) DeleteEventSourceMappingWithContext(ctx aws.Context, input *DeleteEventSourceMappingInput, opts ...request.Option) (*EventSourceMappingConfiguration, error) {
	req, out := c.DeleteEventSourceMappingRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteFunction = "DeleteFunction"

// DeleteFunctionRequest generates a "aws/request.Request" representing the
// client's request for the DeleteFunction 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 DeleteFunction for more information on using the DeleteFunction
// 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 DeleteFunctionRequest method.
//	req, resp := client.DeleteFunctionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteFunction
func (c *Lambda) DeleteFunctionRequest(input *DeleteFunctionInput) (req *request.Request, output *DeleteFunctionOutput) {
	op := &request.Operation{
		Name:       opDeleteFunction,
		HTTPMethod: "DELETE",
		HTTPPath:   "/2015-03-31/functions/{FunctionName}",
	}

	if input == nil {
		input = &DeleteFunctionInput{}
	}

	output = &DeleteFunctionOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteFunction API operation for AWS Lambda.
//
// Deletes a Lambda function. To delete a specific function version, use the
// Qualifier parameter. Otherwise, all versions and aliases are deleted. This
// doesn't require the user to have explicit permissions for DeleteAlias.
//
// To delete Lambda event source mappings that invoke a function, use DeleteEventSourceMapping.
// For Amazon Web Services and resources that invoke your function directly,
// delete the trigger in the service where you originally configured it.
//
// 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 Lambda's
// API operation DeleteFunction for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteFunction
func (c *Lambda) DeleteFunction(input *DeleteFunctionInput) (*DeleteFunctionOutput, error) {
	req, out := c.DeleteFunctionRequest(input)
	return out, req.Send()
}

// DeleteFunctionWithContext is the same as DeleteFunction with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteFunction for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) DeleteFunctionWithContext(ctx aws.Context, input *DeleteFunctionInput, opts ...request.Option) (*DeleteFunctionOutput, error) {
	req, out := c.DeleteFunctionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteFunctionCodeSigningConfig = "DeleteFunctionCodeSigningConfig"

// DeleteFunctionCodeSigningConfigRequest generates a "aws/request.Request" representing the
// client's request for the DeleteFunctionCodeSigningConfig 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 DeleteFunctionCodeSigningConfig for more information on using the DeleteFunctionCodeSigningConfig
// 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 DeleteFunctionCodeSigningConfigRequest method.
//	req, resp := client.DeleteFunctionCodeSigningConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteFunctionCodeSigningConfig
func (c *Lambda) DeleteFunctionCodeSigningConfigRequest(input *DeleteFunctionCodeSigningConfigInput) (req *request.Request, output *DeleteFunctionCodeSigningConfigOutput) {
	op := &request.Operation{
		Name:       opDeleteFunctionCodeSigningConfig,
		HTTPMethod: "DELETE",
		HTTPPath:   "/2020-06-30/functions/{FunctionName}/code-signing-config",
	}

	if input == nil {
		input = &DeleteFunctionCodeSigningConfigInput{}
	}

	output = &DeleteFunctionCodeSigningConfigOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteFunctionCodeSigningConfig API operation for AWS Lambda.
//
// Removes the code signing configuration from the function.
//
// 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 Lambda's
// API operation DeleteFunctionCodeSigningConfig for usage and error information.
//
// Returned Error Types:
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - CodeSigningConfigNotFoundException
//     The specified code signing configuration does not exist.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteFunctionCodeSigningConfig
func (c *Lambda) DeleteFunctionCodeSigningConfig(input *DeleteFunctionCodeSigningConfigInput) (*DeleteFunctionCodeSigningConfigOutput, error) {
	req, out := c.DeleteFunctionCodeSigningConfigRequest(input)
	return out, req.Send()
}

// DeleteFunctionCodeSigningConfigWithContext is the same as DeleteFunctionCodeSigningConfig with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteFunctionCodeSigningConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) DeleteFunctionCodeSigningConfigWithContext(ctx aws.Context, input *DeleteFunctionCodeSigningConfigInput, opts ...request.Option) (*DeleteFunctionCodeSigningConfigOutput, error) {
	req, out := c.DeleteFunctionCodeSigningConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteFunctionConcurrency = "DeleteFunctionConcurrency"

// DeleteFunctionConcurrencyRequest generates a "aws/request.Request" representing the
// client's request for the DeleteFunctionConcurrency 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 DeleteFunctionConcurrency for more information on using the DeleteFunctionConcurrency
// 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 DeleteFunctionConcurrencyRequest method.
//	req, resp := client.DeleteFunctionConcurrencyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteFunctionConcurrency
func (c *Lambda) DeleteFunctionConcurrencyRequest(input *DeleteFunctionConcurrencyInput) (req *request.Request, output *DeleteFunctionConcurrencyOutput) {
	op := &request.Operation{
		Name:       opDeleteFunctionConcurrency,
		HTTPMethod: "DELETE",
		HTTPPath:   "/2017-10-31/functions/{FunctionName}/concurrency",
	}

	if input == nil {
		input = &DeleteFunctionConcurrencyInput{}
	}

	output = &DeleteFunctionConcurrencyOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteFunctionConcurrency API operation for AWS Lambda.
//
// Removes a concurrent execution limit from a function.
//
// 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 Lambda's
// API operation DeleteFunctionConcurrency for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteFunctionConcurrency
func (c *Lambda) DeleteFunctionConcurrency(input *DeleteFunctionConcurrencyInput) (*DeleteFunctionConcurrencyOutput, error) {
	req, out := c.DeleteFunctionConcurrencyRequest(input)
	return out, req.Send()
}

// DeleteFunctionConcurrencyWithContext is the same as DeleteFunctionConcurrency with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteFunctionConcurrency for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) DeleteFunctionConcurrencyWithContext(ctx aws.Context, input *DeleteFunctionConcurrencyInput, opts ...request.Option) (*DeleteFunctionConcurrencyOutput, error) {
	req, out := c.DeleteFunctionConcurrencyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteFunctionEventInvokeConfig = "DeleteFunctionEventInvokeConfig"

// DeleteFunctionEventInvokeConfigRequest generates a "aws/request.Request" representing the
// client's request for the DeleteFunctionEventInvokeConfig 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 DeleteFunctionEventInvokeConfig for more information on using the DeleteFunctionEventInvokeConfig
// 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 DeleteFunctionEventInvokeConfigRequest method.
//	req, resp := client.DeleteFunctionEventInvokeConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteFunctionEventInvokeConfig
func (c *Lambda) DeleteFunctionEventInvokeConfigRequest(input *DeleteFunctionEventInvokeConfigInput) (req *request.Request, output *DeleteFunctionEventInvokeConfigOutput) {
	op := &request.Operation{
		Name:       opDeleteFunctionEventInvokeConfig,
		HTTPMethod: "DELETE",
		HTTPPath:   "/2019-09-25/functions/{FunctionName}/event-invoke-config",
	}

	if input == nil {
		input = &DeleteFunctionEventInvokeConfigInput{}
	}

	output = &DeleteFunctionEventInvokeConfigOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteFunctionEventInvokeConfig API operation for AWS Lambda.
//
// Deletes the configuration for asynchronous invocation for a function, version,
// or alias.
//
// To configure options for asynchronous invocation, use PutFunctionEventInvokeConfig.
//
// 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 Lambda's
// API operation DeleteFunctionEventInvokeConfig for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteFunctionEventInvokeConfig
func (c *Lambda) DeleteFunctionEventInvokeConfig(input *DeleteFunctionEventInvokeConfigInput) (*DeleteFunctionEventInvokeConfigOutput, error) {
	req, out := c.DeleteFunctionEventInvokeConfigRequest(input)
	return out, req.Send()
}

// DeleteFunctionEventInvokeConfigWithContext is the same as DeleteFunctionEventInvokeConfig with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteFunctionEventInvokeConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) DeleteFunctionEventInvokeConfigWithContext(ctx aws.Context, input *DeleteFunctionEventInvokeConfigInput, opts ...request.Option) (*DeleteFunctionEventInvokeConfigOutput, error) {
	req, out := c.DeleteFunctionEventInvokeConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteFunctionUrlConfig = "DeleteFunctionUrlConfig"

// DeleteFunctionUrlConfigRequest generates a "aws/request.Request" representing the
// client's request for the DeleteFunctionUrlConfig 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 DeleteFunctionUrlConfig for more information on using the DeleteFunctionUrlConfig
// 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 DeleteFunctionUrlConfigRequest method.
//	req, resp := client.DeleteFunctionUrlConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteFunctionUrlConfig
func (c *Lambda) DeleteFunctionUrlConfigRequest(input *DeleteFunctionUrlConfigInput) (req *request.Request, output *DeleteFunctionUrlConfigOutput) {
	op := &request.Operation{
		Name:       opDeleteFunctionUrlConfig,
		HTTPMethod: "DELETE",
		HTTPPath:   "/2021-10-31/functions/{FunctionName}/url",
	}

	if input == nil {
		input = &DeleteFunctionUrlConfigInput{}
	}

	output = &DeleteFunctionUrlConfigOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteFunctionUrlConfig API operation for AWS Lambda.
//
// Deletes a Lambda function URL. When you delete a function URL, you can't
// recover it. Creating a new function URL results in a different URL address.
//
// 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 Lambda's
// API operation DeleteFunctionUrlConfig for usage and error information.
//
// Returned Error Types:
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteFunctionUrlConfig
func (c *Lambda) DeleteFunctionUrlConfig(input *DeleteFunctionUrlConfigInput) (*DeleteFunctionUrlConfigOutput, error) {
	req, out := c.DeleteFunctionUrlConfigRequest(input)
	return out, req.Send()
}

// DeleteFunctionUrlConfigWithContext is the same as DeleteFunctionUrlConfig with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteFunctionUrlConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) DeleteFunctionUrlConfigWithContext(ctx aws.Context, input *DeleteFunctionUrlConfigInput, opts ...request.Option) (*DeleteFunctionUrlConfigOutput, error) {
	req, out := c.DeleteFunctionUrlConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteLayerVersion = "DeleteLayerVersion"

// DeleteLayerVersionRequest generates a "aws/request.Request" representing the
// client's request for the DeleteLayerVersion 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 DeleteLayerVersion for more information on using the DeleteLayerVersion
// 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 DeleteLayerVersionRequest method.
//	req, resp := client.DeleteLayerVersionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteLayerVersion
func (c *Lambda) DeleteLayerVersionRequest(input *DeleteLayerVersionInput) (req *request.Request, output *DeleteLayerVersionOutput) {
	op := &request.Operation{
		Name:       opDeleteLayerVersion,
		HTTPMethod: "DELETE",
		HTTPPath:   "/2018-10-31/layers/{LayerName}/versions/{VersionNumber}",
	}

	if input == nil {
		input = &DeleteLayerVersionInput{}
	}

	output = &DeleteLayerVersionOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteLayerVersion API operation for AWS Lambda.
//
// Deletes a version of an Lambda layer (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html).
// Deleted versions can no longer be viewed or added to functions. To avoid
// breaking functions, a copy of the version remains in Lambda until no functions
// refer to it.
//
// 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 Lambda's
// API operation DeleteLayerVersion for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteLayerVersion
func (c *Lambda) DeleteLayerVersion(input *DeleteLayerVersionInput) (*DeleteLayerVersionOutput, error) {
	req, out := c.DeleteLayerVersionRequest(input)
	return out, req.Send()
}

// DeleteLayerVersionWithContext is the same as DeleteLayerVersion with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteLayerVersion for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) DeleteLayerVersionWithContext(ctx aws.Context, input *DeleteLayerVersionInput, opts ...request.Option) (*DeleteLayerVersionOutput, error) {
	req, out := c.DeleteLayerVersionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteProvisionedConcurrencyConfig = "DeleteProvisionedConcurrencyConfig"

// DeleteProvisionedConcurrencyConfigRequest generates a "aws/request.Request" representing the
// client's request for the DeleteProvisionedConcurrencyConfig 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 DeleteProvisionedConcurrencyConfig for more information on using the DeleteProvisionedConcurrencyConfig
// 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 DeleteProvisionedConcurrencyConfigRequest method.
//	req, resp := client.DeleteProvisionedConcurrencyConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteProvisionedConcurrencyConfig
func (c *Lambda) DeleteProvisionedConcurrencyConfigRequest(input *DeleteProvisionedConcurrencyConfigInput) (req *request.Request, output *DeleteProvisionedConcurrencyConfigOutput) {
	op := &request.Operation{
		Name:       opDeleteProvisionedConcurrencyConfig,
		HTTPMethod: "DELETE",
		HTTPPath:   "/2019-09-30/functions/{FunctionName}/provisioned-concurrency",
	}

	if input == nil {
		input = &DeleteProvisionedConcurrencyConfigInput{}
	}

	output = &DeleteProvisionedConcurrencyConfigOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// DeleteProvisionedConcurrencyConfig API operation for AWS Lambda.
//
// Deletes the provisioned concurrency configuration for a function.
//
// 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 Lambda's
// API operation DeleteProvisionedConcurrencyConfig for usage and error information.
//
// Returned Error Types:
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteProvisionedConcurrencyConfig
func (c *Lambda) DeleteProvisionedConcurrencyConfig(input *DeleteProvisionedConcurrencyConfigInput) (*DeleteProvisionedConcurrencyConfigOutput, error) {
	req, out := c.DeleteProvisionedConcurrencyConfigRequest(input)
	return out, req.Send()
}

// DeleteProvisionedConcurrencyConfigWithContext is the same as DeleteProvisionedConcurrencyConfig with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteProvisionedConcurrencyConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) DeleteProvisionedConcurrencyConfigWithContext(ctx aws.Context, input *DeleteProvisionedConcurrencyConfigInput, opts ...request.Option) (*DeleteProvisionedConcurrencyConfigOutput, error) {
	req, out := c.DeleteProvisionedConcurrencyConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetAccountSettings = "GetAccountSettings"

// GetAccountSettingsRequest generates a "aws/request.Request" representing the
// client's request for the GetAccountSettings 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 GetAccountSettings for more information on using the GetAccountSettings
// 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 GetAccountSettingsRequest method.
//	req, resp := client.GetAccountSettingsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetAccountSettings
func (c *Lambda) GetAccountSettingsRequest(input *GetAccountSettingsInput) (req *request.Request, output *GetAccountSettingsOutput) {
	op := &request.Operation{
		Name:       opGetAccountSettings,
		HTTPMethod: "GET",
		HTTPPath:   "/2016-08-19/account-settings/",
	}

	if input == nil {
		input = &GetAccountSettingsInput{}
	}

	output = &GetAccountSettingsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetAccountSettings API operation for AWS Lambda.
//
// Retrieves details about your account's limits (https://docs.aws.amazon.com/lambda/latest/dg/limits.html)
// and usage in an Amazon Web Services Region.
//
// 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 Lambda's
// API operation GetAccountSettings for usage and error information.
//
// Returned Error Types:
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetAccountSettings
func (c *Lambda) GetAccountSettings(input *GetAccountSettingsInput) (*GetAccountSettingsOutput, error) {
	req, out := c.GetAccountSettingsRequest(input)
	return out, req.Send()
}

// GetAccountSettingsWithContext is the same as GetAccountSettings with the addition of
// the ability to pass a context and additional request options.
//
// See GetAccountSettings for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) GetAccountSettingsWithContext(ctx aws.Context, input *GetAccountSettingsInput, opts ...request.Option) (*GetAccountSettingsOutput, error) {
	req, out := c.GetAccountSettingsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetAlias = "GetAlias"

// GetAliasRequest generates a "aws/request.Request" representing the
// client's request for the GetAlias 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 GetAlias for more information on using the GetAlias
// 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 GetAliasRequest method.
//	req, resp := client.GetAliasRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetAlias
func (c *Lambda) GetAliasRequest(input *GetAliasInput) (req *request.Request, output *AliasConfiguration) {
	op := &request.Operation{
		Name:       opGetAlias,
		HTTPMethod: "GET",
		HTTPPath:   "/2015-03-31/functions/{FunctionName}/aliases/{Name}",
	}

	if input == nil {
		input = &GetAliasInput{}
	}

	output = &AliasConfiguration{}
	req = c.newRequest(op, input, output)
	return
}

// GetAlias API operation for AWS Lambda.
//
// Returns details about a Lambda function alias (https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.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 Lambda's
// API operation GetAlias for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetAlias
func (c *Lambda) GetAlias(input *GetAliasInput) (*AliasConfiguration, error) {
	req, out := c.GetAliasRequest(input)
	return out, req.Send()
}

// GetAliasWithContext is the same as GetAlias with the addition of
// the ability to pass a context and additional request options.
//
// See GetAlias for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) GetAliasWithContext(ctx aws.Context, input *GetAliasInput, opts ...request.Option) (*AliasConfiguration, error) {
	req, out := c.GetAliasRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetCodeSigningConfig = "GetCodeSigningConfig"

// GetCodeSigningConfigRequest generates a "aws/request.Request" representing the
// client's request for the GetCodeSigningConfig 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 GetCodeSigningConfig for more information on using the GetCodeSigningConfig
// 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 GetCodeSigningConfigRequest method.
//	req, resp := client.GetCodeSigningConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetCodeSigningConfig
func (c *Lambda) GetCodeSigningConfigRequest(input *GetCodeSigningConfigInput) (req *request.Request, output *GetCodeSigningConfigOutput) {
	op := &request.Operation{
		Name:       opGetCodeSigningConfig,
		HTTPMethod: "GET",
		HTTPPath:   "/2020-04-22/code-signing-configs/{CodeSigningConfigArn}",
	}

	if input == nil {
		input = &GetCodeSigningConfigInput{}
	}

	output = &GetCodeSigningConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetCodeSigningConfig API operation for AWS Lambda.
//
// Returns information about the specified code signing configuration.
//
// 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 Lambda's
// API operation GetCodeSigningConfig for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetCodeSigningConfig
func (c *Lambda) GetCodeSigningConfig(input *GetCodeSigningConfigInput) (*GetCodeSigningConfigOutput, error) {
	req, out := c.GetCodeSigningConfigRequest(input)
	return out, req.Send()
}

// GetCodeSigningConfigWithContext is the same as GetCodeSigningConfig with the addition of
// the ability to pass a context and additional request options.
//
// See GetCodeSigningConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) GetCodeSigningConfigWithContext(ctx aws.Context, input *GetCodeSigningConfigInput, opts ...request.Option) (*GetCodeSigningConfigOutput, error) {
	req, out := c.GetCodeSigningConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetEventSourceMapping = "GetEventSourceMapping"

// GetEventSourceMappingRequest generates a "aws/request.Request" representing the
// client's request for the GetEventSourceMapping 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 GetEventSourceMapping for more information on using the GetEventSourceMapping
// 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 GetEventSourceMappingRequest method.
//	req, resp := client.GetEventSourceMappingRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetEventSourceMapping
func (c *Lambda) GetEventSourceMappingRequest(input *GetEventSourceMappingInput) (req *request.Request, output *EventSourceMappingConfiguration) {
	op := &request.Operation{
		Name:       opGetEventSourceMapping,
		HTTPMethod: "GET",
		HTTPPath:   "/2015-03-31/event-source-mappings/{UUID}",
	}

	if input == nil {
		input = &GetEventSourceMappingInput{}
	}

	output = &EventSourceMappingConfiguration{}
	req = c.newRequest(op, input, output)
	return
}

// GetEventSourceMapping API operation for AWS Lambda.
//
// Returns details about an event source mapping. You can get the identifier
// of a mapping from the output of ListEventSourceMappings.
//
// 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 Lambda's
// API operation GetEventSourceMapping for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetEventSourceMapping
func (c *Lambda) GetEventSourceMapping(input *GetEventSourceMappingInput) (*EventSourceMappingConfiguration, error) {
	req, out := c.GetEventSourceMappingRequest(input)
	return out, req.Send()
}

// GetEventSourceMappingWithContext is the same as GetEventSourceMapping with the addition of
// the ability to pass a context and additional request options.
//
// See GetEventSourceMapping for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) GetEventSourceMappingWithContext(ctx aws.Context, input *GetEventSourceMappingInput, opts ...request.Option) (*EventSourceMappingConfiguration, error) {
	req, out := c.GetEventSourceMappingRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetFunction = "GetFunction"

// GetFunctionRequest generates a "aws/request.Request" representing the
// client's request for the GetFunction 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 GetFunction for more information on using the GetFunction
// 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 GetFunctionRequest method.
//	req, resp := client.GetFunctionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetFunction
func (c *Lambda) GetFunctionRequest(input *GetFunctionInput) (req *request.Request, output *GetFunctionOutput) {
	op := &request.Operation{
		Name:       opGetFunction,
		HTTPMethod: "GET",
		HTTPPath:   "/2015-03-31/functions/{FunctionName}",
	}

	if input == nil {
		input = &GetFunctionInput{}
	}

	output = &GetFunctionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetFunction API operation for AWS Lambda.
//
// Returns information about the function or function version, with a link to
// download the deployment package that's valid for 10 minutes. If you specify
// a function version, only details that are specific to that version are returned.
//
// 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 Lambda's
// API operation GetFunction for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetFunction
func (c *Lambda) GetFunction(input *GetFunctionInput) (*GetFunctionOutput, error) {
	req, out := c.GetFunctionRequest(input)
	return out, req.Send()
}

// GetFunctionWithContext is the same as GetFunction with the addition of
// the ability to pass a context and additional request options.
//
// See GetFunction for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) GetFunctionWithContext(ctx aws.Context, input *GetFunctionInput, opts ...request.Option) (*GetFunctionOutput, error) {
	req, out := c.GetFunctionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetFunctionCodeSigningConfig = "GetFunctionCodeSigningConfig"

// GetFunctionCodeSigningConfigRequest generates a "aws/request.Request" representing the
// client's request for the GetFunctionCodeSigningConfig 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 GetFunctionCodeSigningConfig for more information on using the GetFunctionCodeSigningConfig
// 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 GetFunctionCodeSigningConfigRequest method.
//	req, resp := client.GetFunctionCodeSigningConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetFunctionCodeSigningConfig
func (c *Lambda) GetFunctionCodeSigningConfigRequest(input *GetFunctionCodeSigningConfigInput) (req *request.Request, output *GetFunctionCodeSigningConfigOutput) {
	op := &request.Operation{
		Name:       opGetFunctionCodeSigningConfig,
		HTTPMethod: "GET",
		HTTPPath:   "/2020-06-30/functions/{FunctionName}/code-signing-config",
	}

	if input == nil {
		input = &GetFunctionCodeSigningConfigInput{}
	}

	output = &GetFunctionCodeSigningConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetFunctionCodeSigningConfig API operation for AWS Lambda.
//
// Returns the code signing configuration for the specified function.
//
// 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 Lambda's
// API operation GetFunctionCodeSigningConfig for usage and error information.
//
// Returned Error Types:
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetFunctionCodeSigningConfig
func (c *Lambda) GetFunctionCodeSigningConfig(input *GetFunctionCodeSigningConfigInput) (*GetFunctionCodeSigningConfigOutput, error) {
	req, out := c.GetFunctionCodeSigningConfigRequest(input)
	return out, req.Send()
}

// GetFunctionCodeSigningConfigWithContext is the same as GetFunctionCodeSigningConfig with the addition of
// the ability to pass a context and additional request options.
//
// See GetFunctionCodeSigningConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) GetFunctionCodeSigningConfigWithContext(ctx aws.Context, input *GetFunctionCodeSigningConfigInput, opts ...request.Option) (*GetFunctionCodeSigningConfigOutput, error) {
	req, out := c.GetFunctionCodeSigningConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetFunctionConcurrency = "GetFunctionConcurrency"

// GetFunctionConcurrencyRequest generates a "aws/request.Request" representing the
// client's request for the GetFunctionConcurrency 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 GetFunctionConcurrency for more information on using the GetFunctionConcurrency
// 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 GetFunctionConcurrencyRequest method.
//	req, resp := client.GetFunctionConcurrencyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetFunctionConcurrency
func (c *Lambda) GetFunctionConcurrencyRequest(input *GetFunctionConcurrencyInput) (req *request.Request, output *GetFunctionConcurrencyOutput) {
	op := &request.Operation{
		Name:       opGetFunctionConcurrency,
		HTTPMethod: "GET",
		HTTPPath:   "/2019-09-30/functions/{FunctionName}/concurrency",
	}

	if input == nil {
		input = &GetFunctionConcurrencyInput{}
	}

	output = &GetFunctionConcurrencyOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetFunctionConcurrency API operation for AWS Lambda.
//
// Returns details about the reserved concurrency configuration for a function.
// To set a concurrency limit for a function, use PutFunctionConcurrency.
//
// 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 Lambda's
// API operation GetFunctionConcurrency for usage and error information.
//
// Returned Error Types:
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetFunctionConcurrency
func (c *Lambda) GetFunctionConcurrency(input *GetFunctionConcurrencyInput) (*GetFunctionConcurrencyOutput, error) {
	req, out := c.GetFunctionConcurrencyRequest(input)
	return out, req.Send()
}

// GetFunctionConcurrencyWithContext is the same as GetFunctionConcurrency with the addition of
// the ability to pass a context and additional request options.
//
// See GetFunctionConcurrency for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) GetFunctionConcurrencyWithContext(ctx aws.Context, input *GetFunctionConcurrencyInput, opts ...request.Option) (*GetFunctionConcurrencyOutput, error) {
	req, out := c.GetFunctionConcurrencyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetFunctionConfiguration = "GetFunctionConfiguration"

// GetFunctionConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the GetFunctionConfiguration 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 GetFunctionConfiguration for more information on using the GetFunctionConfiguration
// 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 GetFunctionConfigurationRequest method.
//	req, resp := client.GetFunctionConfigurationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetFunctionConfiguration
func (c *Lambda) GetFunctionConfigurationRequest(input *GetFunctionConfigurationInput) (req *request.Request, output *FunctionConfiguration) {
	op := &request.Operation{
		Name:       opGetFunctionConfiguration,
		HTTPMethod: "GET",
		HTTPPath:   "/2015-03-31/functions/{FunctionName}/configuration",
	}

	if input == nil {
		input = &GetFunctionConfigurationInput{}
	}

	output = &FunctionConfiguration{}
	req = c.newRequest(op, input, output)
	return
}

// GetFunctionConfiguration API operation for AWS Lambda.
//
// Returns the version-specific settings of a Lambda function or version. The
// output includes only options that can vary between versions of a function.
// To modify these settings, use UpdateFunctionConfiguration.
//
// To get all of a function's details, including function-level settings, use
// GetFunction.
//
// 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 Lambda's
// API operation GetFunctionConfiguration for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetFunctionConfiguration
func (c *Lambda) GetFunctionConfiguration(input *GetFunctionConfigurationInput) (*FunctionConfiguration, error) {
	req, out := c.GetFunctionConfigurationRequest(input)
	return out, req.Send()
}

// GetFunctionConfigurationWithContext is the same as GetFunctionConfiguration with the addition of
// the ability to pass a context and additional request options.
//
// See GetFunctionConfiguration for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) GetFunctionConfigurationWithContext(ctx aws.Context, input *GetFunctionConfigurationInput, opts ...request.Option) (*FunctionConfiguration, error) {
	req, out := c.GetFunctionConfigurationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetFunctionEventInvokeConfig = "GetFunctionEventInvokeConfig"

// GetFunctionEventInvokeConfigRequest generates a "aws/request.Request" representing the
// client's request for the GetFunctionEventInvokeConfig 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 GetFunctionEventInvokeConfig for more information on using the GetFunctionEventInvokeConfig
// 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 GetFunctionEventInvokeConfigRequest method.
//	req, resp := client.GetFunctionEventInvokeConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetFunctionEventInvokeConfig
func (c *Lambda) GetFunctionEventInvokeConfigRequest(input *GetFunctionEventInvokeConfigInput) (req *request.Request, output *GetFunctionEventInvokeConfigOutput) {
	op := &request.Operation{
		Name:       opGetFunctionEventInvokeConfig,
		HTTPMethod: "GET",
		HTTPPath:   "/2019-09-25/functions/{FunctionName}/event-invoke-config",
	}

	if input == nil {
		input = &GetFunctionEventInvokeConfigInput{}
	}

	output = &GetFunctionEventInvokeConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetFunctionEventInvokeConfig API operation for AWS Lambda.
//
// Retrieves the configuration for asynchronous invocation for a function, version,
// or alias.
//
// To configure options for asynchronous invocation, use PutFunctionEventInvokeConfig.
//
// 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 Lambda's
// API operation GetFunctionEventInvokeConfig for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetFunctionEventInvokeConfig
func (c *Lambda) GetFunctionEventInvokeConfig(input *GetFunctionEventInvokeConfigInput) (*GetFunctionEventInvokeConfigOutput, error) {
	req, out := c.GetFunctionEventInvokeConfigRequest(input)
	return out, req.Send()
}

// GetFunctionEventInvokeConfigWithContext is the same as GetFunctionEventInvokeConfig with the addition of
// the ability to pass a context and additional request options.
//
// See GetFunctionEventInvokeConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) GetFunctionEventInvokeConfigWithContext(ctx aws.Context, input *GetFunctionEventInvokeConfigInput, opts ...request.Option) (*GetFunctionEventInvokeConfigOutput, error) {
	req, out := c.GetFunctionEventInvokeConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetFunctionUrlConfig = "GetFunctionUrlConfig"

// GetFunctionUrlConfigRequest generates a "aws/request.Request" representing the
// client's request for the GetFunctionUrlConfig 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 GetFunctionUrlConfig for more information on using the GetFunctionUrlConfig
// 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 GetFunctionUrlConfigRequest method.
//	req, resp := client.GetFunctionUrlConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetFunctionUrlConfig
func (c *Lambda) GetFunctionUrlConfigRequest(input *GetFunctionUrlConfigInput) (req *request.Request, output *GetFunctionUrlConfigOutput) {
	op := &request.Operation{
		Name:       opGetFunctionUrlConfig,
		HTTPMethod: "GET",
		HTTPPath:   "/2021-10-31/functions/{FunctionName}/url",
	}

	if input == nil {
		input = &GetFunctionUrlConfigInput{}
	}

	output = &GetFunctionUrlConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetFunctionUrlConfig API operation for AWS Lambda.
//
// Returns details about a Lambda function URL.
//
// 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 Lambda's
// API operation GetFunctionUrlConfig for usage and error information.
//
// Returned Error Types:
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetFunctionUrlConfig
func (c *Lambda) GetFunctionUrlConfig(input *GetFunctionUrlConfigInput) (*GetFunctionUrlConfigOutput, error) {
	req, out := c.GetFunctionUrlConfigRequest(input)
	return out, req.Send()
}

// GetFunctionUrlConfigWithContext is the same as GetFunctionUrlConfig with the addition of
// the ability to pass a context and additional request options.
//
// See GetFunctionUrlConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) GetFunctionUrlConfigWithContext(ctx aws.Context, input *GetFunctionUrlConfigInput, opts ...request.Option) (*GetFunctionUrlConfigOutput, error) {
	req, out := c.GetFunctionUrlConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetLayerVersion = "GetLayerVersion"

// GetLayerVersionRequest generates a "aws/request.Request" representing the
// client's request for the GetLayerVersion 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 GetLayerVersion for more information on using the GetLayerVersion
// 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 GetLayerVersionRequest method.
//	req, resp := client.GetLayerVersionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetLayerVersion
func (c *Lambda) GetLayerVersionRequest(input *GetLayerVersionInput) (req *request.Request, output *GetLayerVersionOutput) {
	op := &request.Operation{
		Name:       opGetLayerVersion,
		HTTPMethod: "GET",
		HTTPPath:   "/2018-10-31/layers/{LayerName}/versions/{VersionNumber}",
	}

	if input == nil {
		input = &GetLayerVersionInput{}
	}

	output = &GetLayerVersionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetLayerVersion API operation for AWS Lambda.
//
// Returns information about a version of an Lambda layer (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html),
// with a link to download the layer archive that's valid for 10 minutes.
//
// 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 Lambda's
// API operation GetLayerVersion for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetLayerVersion
func (c *Lambda) GetLayerVersion(input *GetLayerVersionInput) (*GetLayerVersionOutput, error) {
	req, out := c.GetLayerVersionRequest(input)
	return out, req.Send()
}

// GetLayerVersionWithContext is the same as GetLayerVersion with the addition of
// the ability to pass a context and additional request options.
//
// See GetLayerVersion for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) GetLayerVersionWithContext(ctx aws.Context, input *GetLayerVersionInput, opts ...request.Option) (*GetLayerVersionOutput, error) {
	req, out := c.GetLayerVersionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetLayerVersionByArn = "GetLayerVersionByArn"

// GetLayerVersionByArnRequest generates a "aws/request.Request" representing the
// client's request for the GetLayerVersionByArn 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 GetLayerVersionByArn for more information on using the GetLayerVersionByArn
// 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 GetLayerVersionByArnRequest method.
//	req, resp := client.GetLayerVersionByArnRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetLayerVersionByArn
func (c *Lambda) GetLayerVersionByArnRequest(input *GetLayerVersionByArnInput) (req *request.Request, output *GetLayerVersionByArnOutput) {
	op := &request.Operation{
		Name:       opGetLayerVersionByArn,
		HTTPMethod: "GET",
		HTTPPath:   "/2018-10-31/layers?find=LayerVersion",
	}

	if input == nil {
		input = &GetLayerVersionByArnInput{}
	}

	output = &GetLayerVersionByArnOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetLayerVersionByArn API operation for AWS Lambda.
//
// Returns information about a version of an Lambda layer (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html),
// with a link to download the layer archive that's valid for 10 minutes.
//
// 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 Lambda's
// API operation GetLayerVersionByArn for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetLayerVersionByArn
func (c *Lambda) GetLayerVersionByArn(input *GetLayerVersionByArnInput) (*GetLayerVersionByArnOutput, error) {
	req, out := c.GetLayerVersionByArnRequest(input)
	return out, req.Send()
}

// GetLayerVersionByArnWithContext is the same as GetLayerVersionByArn with the addition of
// the ability to pass a context and additional request options.
//
// See GetLayerVersionByArn for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) GetLayerVersionByArnWithContext(ctx aws.Context, input *GetLayerVersionByArnInput, opts ...request.Option) (*GetLayerVersionByArnOutput, error) {
	req, out := c.GetLayerVersionByArnRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetLayerVersionPolicy = "GetLayerVersionPolicy"

// GetLayerVersionPolicyRequest generates a "aws/request.Request" representing the
// client's request for the GetLayerVersionPolicy 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 GetLayerVersionPolicy for more information on using the GetLayerVersionPolicy
// 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 GetLayerVersionPolicyRequest method.
//	req, resp := client.GetLayerVersionPolicyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetLayerVersionPolicy
func (c *Lambda) GetLayerVersionPolicyRequest(input *GetLayerVersionPolicyInput) (req *request.Request, output *GetLayerVersionPolicyOutput) {
	op := &request.Operation{
		Name:       opGetLayerVersionPolicy,
		HTTPMethod: "GET",
		HTTPPath:   "/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy",
	}

	if input == nil {
		input = &GetLayerVersionPolicyInput{}
	}

	output = &GetLayerVersionPolicyOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetLayerVersionPolicy API operation for AWS Lambda.
//
// Returns the permission policy for a version of an Lambda layer (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html).
// For more information, see AddLayerVersionPermission.
//
// 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 Lambda's
// API operation GetLayerVersionPolicy for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetLayerVersionPolicy
func (c *Lambda) GetLayerVersionPolicy(input *GetLayerVersionPolicyInput) (*GetLayerVersionPolicyOutput, error) {
	req, out := c.GetLayerVersionPolicyRequest(input)
	return out, req.Send()
}

// GetLayerVersionPolicyWithContext is the same as GetLayerVersionPolicy with the addition of
// the ability to pass a context and additional request options.
//
// See GetLayerVersionPolicy for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) GetLayerVersionPolicyWithContext(ctx aws.Context, input *GetLayerVersionPolicyInput, opts ...request.Option) (*GetLayerVersionPolicyOutput, error) {
	req, out := c.GetLayerVersionPolicyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetPolicy = "GetPolicy"

// GetPolicyRequest generates a "aws/request.Request" representing the
// client's request for the GetPolicy 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 GetPolicy for more information on using the GetPolicy
// 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 GetPolicyRequest method.
//	req, resp := client.GetPolicyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetPolicy
func (c *Lambda) GetPolicyRequest(input *GetPolicyInput) (req *request.Request, output *GetPolicyOutput) {
	op := &request.Operation{
		Name:       opGetPolicy,
		HTTPMethod: "GET",
		HTTPPath:   "/2015-03-31/functions/{FunctionName}/policy",
	}

	if input == nil {
		input = &GetPolicyInput{}
	}

	output = &GetPolicyOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetPolicy API operation for AWS Lambda.
//
// Returns the resource-based IAM policy (https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html)
// for a function, version, or alias.
//
// 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 Lambda's
// API operation GetPolicy for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetPolicy
func (c *Lambda) GetPolicy(input *GetPolicyInput) (*GetPolicyOutput, error) {
	req, out := c.GetPolicyRequest(input)
	return out, req.Send()
}

// GetPolicyWithContext is the same as GetPolicy with the addition of
// the ability to pass a context and additional request options.
//
// See GetPolicy for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) GetPolicyWithContext(ctx aws.Context, input *GetPolicyInput, opts ...request.Option) (*GetPolicyOutput, error) {
	req, out := c.GetPolicyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetProvisionedConcurrencyConfig = "GetProvisionedConcurrencyConfig"

// GetProvisionedConcurrencyConfigRequest generates a "aws/request.Request" representing the
// client's request for the GetProvisionedConcurrencyConfig 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 GetProvisionedConcurrencyConfig for more information on using the GetProvisionedConcurrencyConfig
// 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 GetProvisionedConcurrencyConfigRequest method.
//	req, resp := client.GetProvisionedConcurrencyConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetProvisionedConcurrencyConfig
func (c *Lambda) GetProvisionedConcurrencyConfigRequest(input *GetProvisionedConcurrencyConfigInput) (req *request.Request, output *GetProvisionedConcurrencyConfigOutput) {
	op := &request.Operation{
		Name:       opGetProvisionedConcurrencyConfig,
		HTTPMethod: "GET",
		HTTPPath:   "/2019-09-30/functions/{FunctionName}/provisioned-concurrency",
	}

	if input == nil {
		input = &GetProvisionedConcurrencyConfigInput{}
	}

	output = &GetProvisionedConcurrencyConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetProvisionedConcurrencyConfig API operation for AWS Lambda.
//
// Retrieves the provisioned concurrency configuration for a function's alias
// or version.
//
// 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 Lambda's
// API operation GetProvisionedConcurrencyConfig for usage and error information.
//
// Returned Error Types:
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ProvisionedConcurrencyConfigNotFoundException
//     The specified configuration does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetProvisionedConcurrencyConfig
func (c *Lambda) GetProvisionedConcurrencyConfig(input *GetProvisionedConcurrencyConfigInput) (*GetProvisionedConcurrencyConfigOutput, error) {
	req, out := c.GetProvisionedConcurrencyConfigRequest(input)
	return out, req.Send()
}

// GetProvisionedConcurrencyConfigWithContext is the same as GetProvisionedConcurrencyConfig with the addition of
// the ability to pass a context and additional request options.
//
// See GetProvisionedConcurrencyConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) GetProvisionedConcurrencyConfigWithContext(ctx aws.Context, input *GetProvisionedConcurrencyConfigInput, opts ...request.Option) (*GetProvisionedConcurrencyConfigOutput, error) {
	req, out := c.GetProvisionedConcurrencyConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetRuntimeManagementConfig = "GetRuntimeManagementConfig"

// GetRuntimeManagementConfigRequest generates a "aws/request.Request" representing the
// client's request for the GetRuntimeManagementConfig 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 GetRuntimeManagementConfig for more information on using the GetRuntimeManagementConfig
// 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 GetRuntimeManagementConfigRequest method.
//	req, resp := client.GetRuntimeManagementConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetRuntimeManagementConfig
func (c *Lambda) GetRuntimeManagementConfigRequest(input *GetRuntimeManagementConfigInput) (req *request.Request, output *GetRuntimeManagementConfigOutput) {
	op := &request.Operation{
		Name:       opGetRuntimeManagementConfig,
		HTTPMethod: "GET",
		HTTPPath:   "/2021-07-20/functions/{FunctionName}/runtime-management-config",
	}

	if input == nil {
		input = &GetRuntimeManagementConfigInput{}
	}

	output = &GetRuntimeManagementConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// GetRuntimeManagementConfig API operation for AWS Lambda.
//
// Retrieves the runtime management configuration for a function's version.
// If the runtime update mode is Manual, this includes the ARN of the runtime
// version and the runtime update mode. If the runtime update mode is Auto or
// Function update, this includes the runtime update mode and null is returned
// for the ARN. For more information, see Runtime updates (https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.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 Lambda's
// API operation GetRuntimeManagementConfig for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetRuntimeManagementConfig
func (c *Lambda) GetRuntimeManagementConfig(input *GetRuntimeManagementConfigInput) (*GetRuntimeManagementConfigOutput, error) {
	req, out := c.GetRuntimeManagementConfigRequest(input)
	return out, req.Send()
}

// GetRuntimeManagementConfigWithContext is the same as GetRuntimeManagementConfig with the addition of
// the ability to pass a context and additional request options.
//
// See GetRuntimeManagementConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) GetRuntimeManagementConfigWithContext(ctx aws.Context, input *GetRuntimeManagementConfigInput, opts ...request.Option) (*GetRuntimeManagementConfigOutput, error) {
	req, out := c.GetRuntimeManagementConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opInvoke = "Invoke"

// InvokeRequest generates a "aws/request.Request" representing the
// client's request for the Invoke 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 Invoke for more information on using the Invoke
// 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 InvokeRequest method.
//	req, resp := client.InvokeRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/Invoke
func (c *Lambda) InvokeRequest(input *InvokeInput) (req *request.Request, output *InvokeOutput) {
	op := &request.Operation{
		Name:       opInvoke,
		HTTPMethod: "POST",
		HTTPPath:   "/2015-03-31/functions/{FunctionName}/invocations",
	}

	if input == nil {
		input = &InvokeInput{}
	}

	output = &InvokeOutput{}
	req = c.newRequest(op, input, output)
	return
}

// Invoke API operation for AWS Lambda.
//
// Invokes a Lambda function. You can invoke a function synchronously (and wait
// for the response), or asynchronously. By default, Lambda invokes your function
// synchronously (i.e. theInvocationType is RequestResponse). To invoke a function
// asynchronously, set InvocationType to Event. Lambda passes the ClientContext
// object to your function for synchronous invocations only.
//
// For synchronous invocation (https://docs.aws.amazon.com/lambda/latest/dg/invocation-sync.html),
// details about the function response, including errors, are included in the
// response body and headers. For either invocation type, you can find more
// information in the execution log (https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions.html)
// and trace (https://docs.aws.amazon.com/lambda/latest/dg/lambda-x-ray.html).
//
// When an error occurs, your function may be invoked multiple times. Retry
// behavior varies by error type, client, event source, and invocation type.
// For example, if you invoke a function asynchronously and it returns an error,
// Lambda executes the function up to two more times. For more information,
// see Error handling and automatic retries in Lambda (https://docs.aws.amazon.com/lambda/latest/dg/invocation-retries.html).
//
// For asynchronous invocation (https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html),
// Lambda adds events to a queue before sending them to your function. If your
// function does not have enough capacity to keep up with the queue, events
// may be lost. Occasionally, your function may receive the same event multiple
// times, even if no error occurs. To retain events that were not processed,
// configure your function with a dead-letter queue (https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-dlq).
//
// The status code in the API response doesn't reflect function errors. Error
// codes are reserved for errors that prevent your function from executing,
// such as permissions errors, quota (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html)
// errors, or issues with your function's code and configuration. For example,
// Lambda returns TooManyRequestsException if running the function would cause
// you to exceed a concurrency limit at either the account level (ConcurrentInvocationLimitExceeded)
// or function level (ReservedFunctionConcurrentInvocationLimitExceeded).
//
// For functions with a long timeout, your client might disconnect during synchronous
// invocation while it waits for a response. Configure your HTTP client, SDK,
// firewall, proxy, or operating system to allow for long connections with timeout
// or keep-alive settings.
//
// This operation requires permission for the lambda:InvokeFunction (https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awslambda.html)
// action. For details on how to set up permissions for cross-account invocations,
// see Granting function access to other accounts (https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html#permissions-resource-xaccountinvoke).
//
// 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 Lambda's
// API operation Invoke for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidRequestContentException
//     The request body could not be parsed as JSON.
//
//   - RequestTooLargeException
//     The request payload exceeded the Invoke request body JSON input quota. For
//     more information, see Lambda quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).
//
//   - UnsupportedMediaTypeException
//     The content type of the Invoke request body is not JSON.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - EC2UnexpectedException
//     Lambda received an unexpected Amazon EC2 client exception while setting up
//     for the Lambda function.
//
//   - SubnetIPAddressLimitReachedException
//     Lambda couldn't set up VPC access for the Lambda function because one or
//     more configured subnets has no available IP addresses.
//
//   - ENILimitReachedException
//     Lambda couldn't create an elastic network interface in the VPC, specified
//     as part of Lambda function configuration, because the limit for network interfaces
//     has been reached. For more information, see Lambda quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).
//
//   - EFSMountConnectivityException
//     The Lambda function couldn't make a network connection to the configured
//     file system.
//
//   - EFSMountFailureException
//     The Lambda function couldn't mount the configured file system due to a permission
//     or configuration issue.
//
//   - EFSMountTimeoutException
//     The Lambda function made a network connection to the configured file system,
//     but the mount operation timed out.
//
//   - EFSIOException
//     An error occurred when reading from or writing to a connected file system.
//
//   - SnapStartException
//     The afterRestore() runtime hook (https://docs.aws.amazon.com/lambda/latest/dg/snapstart-runtime-hooks.html)
//     encountered an error. For more information, check the Amazon CloudWatch logs.
//
//   - SnapStartTimeoutException
//     Lambda couldn't restore the snapshot within the timeout limit.
//
//   - SnapStartNotReadyException
//     Lambda is initializing your function. You can invoke the function when the
//     function state (https://docs.aws.amazon.com/lambda/latest/dg/functions-states.html)
//     becomes Active.
//
//   - EC2ThrottledException
//     Amazon EC2 throttled Lambda during Lambda function initialization using the
//     execution role provided for the function.
//
//   - EC2AccessDeniedException
//     Need additional permissions to configure VPC settings.
//
//   - InvalidSubnetIDException
//     The subnet ID provided in the Lambda function VPC configuration is not valid.
//
//   - InvalidSecurityGroupIDException
//     The security group ID provided in the Lambda function VPC configuration is
//     not valid.
//
//   - InvalidZipFileException
//     Lambda could not unzip the deployment package.
//
//   - KMSDisabledException
//     Lambda couldn't decrypt the environment variables because the KMS key used
//     is disabled. Check the Lambda function's KMS key settings.
//
//   - KMSInvalidStateException
//     Lambda couldn't decrypt the environment variables because the state of the
//     KMS key used is not valid for Decrypt. Check the function's KMS key settings.
//
//   - KMSAccessDeniedException
//     Lambda couldn't decrypt the environment variables because KMS access was
//     denied. Check the Lambda function's KMS permissions.
//
//   - KMSNotFoundException
//     Lambda couldn't decrypt the environment variables because the KMS key was
//     not found. Check the function's KMS key settings.
//
//   - InvalidRuntimeException
//     The runtime or runtime version specified is not supported.
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
//   - ResourceNotReadyException
//     The function is inactive and its VPC connection is no longer available. Wait
//     for the VPC connection to reestablish and try again.
//
//   - RecursiveInvocationException
//     Lambda has detected your function being invoked in a recursive loop with
//     other Amazon Web Services resources and stopped your function's invocation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/Invoke
func (c *Lambda) Invoke(input *InvokeInput) (*InvokeOutput, error) {
	req, out := c.InvokeRequest(input)
	return out, req.Send()
}

// InvokeWithContext is the same as Invoke with the addition of
// the ability to pass a context and additional request options.
//
// See Invoke for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) InvokeWithContext(ctx aws.Context, input *InvokeInput, opts ...request.Option) (*InvokeOutput, error) {
	req, out := c.InvokeRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opInvokeAsync = "InvokeAsync"

// InvokeAsyncRequest generates a "aws/request.Request" representing the
// client's request for the InvokeAsync 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 InvokeAsync for more information on using the InvokeAsync
// 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 InvokeAsyncRequest method.
//	req, resp := client.InvokeAsyncRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/InvokeAsync
//
// Deprecated: InvokeAsync has been deprecated
func (c *Lambda) InvokeAsyncRequest(input *InvokeAsyncInput) (req *request.Request, output *InvokeAsyncOutput) {
	if c.Client.Config.Logger != nil {
		c.Client.Config.Logger.Log("This operation, InvokeAsync, has been deprecated")
	}
	op := &request.Operation{
		Name:       opInvokeAsync,
		HTTPMethod: "POST",
		HTTPPath:   "/2014-11-13/functions/{FunctionName}/invoke-async/",
	}

	if input == nil {
		input = &InvokeAsyncInput{}
	}

	output = &InvokeAsyncOutput{}
	req = c.newRequest(op, input, output)
	return
}

// InvokeAsync API operation for AWS Lambda.
//
// For asynchronous function invocation, use Invoke.
//
// Invokes a function asynchronously.
//
// If you do use the InvokeAsync action, note that it doesn't support the use
// of X-Ray active tracing. Trace ID is not propagated to the function, even
// if X-Ray active tracing is turned on.
//
// 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 Lambda's
// API operation InvokeAsync for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidRequestContentException
//     The request body could not be parsed as JSON.
//
//   - InvalidRuntimeException
//     The runtime or runtime version specified is not supported.
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/InvokeAsync
//
// Deprecated: InvokeAsync has been deprecated
func (c *Lambda) InvokeAsync(input *InvokeAsyncInput) (*InvokeAsyncOutput, error) {
	req, out := c.InvokeAsyncRequest(input)
	return out, req.Send()
}

// InvokeAsyncWithContext is the same as InvokeAsync with the addition of
// the ability to pass a context and additional request options.
//
// See InvokeAsync 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.
//
// Deprecated: InvokeAsyncWithContext has been deprecated
func (c *Lambda) InvokeAsyncWithContext(ctx aws.Context, input *InvokeAsyncInput, opts ...request.Option) (*InvokeAsyncOutput, error) {
	req, out := c.InvokeAsyncRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opInvokeWithResponseStream = "InvokeWithResponseStream"

// InvokeWithResponseStreamRequest generates a "aws/request.Request" representing the
// client's request for the InvokeWithResponseStream 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 InvokeWithResponseStream for more information on using the InvokeWithResponseStream
// 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 InvokeWithResponseStreamRequest method.
//	req, resp := client.InvokeWithResponseStreamRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/InvokeWithResponseStream
func (c *Lambda) InvokeWithResponseStreamRequest(input *InvokeWithResponseStreamInput) (req *request.Request, output *InvokeWithResponseStreamOutput) {
	op := &request.Operation{
		Name:       opInvokeWithResponseStream,
		HTTPMethod: "POST",
		HTTPPath:   "/2021-11-15/functions/{FunctionName}/response-streaming-invocations",
	}

	if input == nil {
		input = &InvokeWithResponseStreamInput{}
	}

	output = &InvokeWithResponseStreamOutput{}
	req = c.newRequest(op, input, output)

	es := NewInvokeWithResponseStreamEventStream()
	output.eventStream = es

	req.Handlers.Send.Swap(client.LogHTTPResponseHandler.Name, client.LogHTTPResponseHeaderHandler)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, rest.UnmarshalHandler)
	req.Handlers.Unmarshal.PushBack(es.runOutputStream)
	req.Handlers.Unmarshal.PushBack(es.runOnStreamPartClose)
	return
}

// InvokeWithResponseStream API operation for AWS Lambda.
//
// Configure your Lambda functions to stream response payloads back to clients.
// For more information, see Configuring a Lambda function to stream responses
// (https://docs.aws.amazon.com/lambda/latest/dg/configuration-response-streaming.html).
//
// This operation requires permission for the lambda:InvokeFunction (https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awslambda.html)
// action. For details on how to set up permissions for cross-account invocations,
// see Granting function access to other accounts (https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html#permissions-resource-xaccountinvoke).
//
// 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 Lambda's
// API operation InvokeWithResponseStream for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidRequestContentException
//     The request body could not be parsed as JSON.
//
//   - RequestTooLargeException
//     The request payload exceeded the Invoke request body JSON input quota. For
//     more information, see Lambda quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).
//
//   - UnsupportedMediaTypeException
//     The content type of the Invoke request body is not JSON.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - EC2UnexpectedException
//     Lambda received an unexpected Amazon EC2 client exception while setting up
//     for the Lambda function.
//
//   - SubnetIPAddressLimitReachedException
//     Lambda couldn't set up VPC access for the Lambda function because one or
//     more configured subnets has no available IP addresses.
//
//   - ENILimitReachedException
//     Lambda couldn't create an elastic network interface in the VPC, specified
//     as part of Lambda function configuration, because the limit for network interfaces
//     has been reached. For more information, see Lambda quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).
//
//   - EFSMountConnectivityException
//     The Lambda function couldn't make a network connection to the configured
//     file system.
//
//   - EFSMountFailureException
//     The Lambda function couldn't mount the configured file system due to a permission
//     or configuration issue.
//
//   - EFSMountTimeoutException
//     The Lambda function made a network connection to the configured file system,
//     but the mount operation timed out.
//
//   - EFSIOException
//     An error occurred when reading from or writing to a connected file system.
//
//   - SnapStartException
//     The afterRestore() runtime hook (https://docs.aws.amazon.com/lambda/latest/dg/snapstart-runtime-hooks.html)
//     encountered an error. For more information, check the Amazon CloudWatch logs.
//
//   - SnapStartTimeoutException
//     Lambda couldn't restore the snapshot within the timeout limit.
//
//   - SnapStartNotReadyException
//     Lambda is initializing your function. You can invoke the function when the
//     function state (https://docs.aws.amazon.com/lambda/latest/dg/functions-states.html)
//     becomes Active.
//
//   - EC2ThrottledException
//     Amazon EC2 throttled Lambda during Lambda function initialization using the
//     execution role provided for the function.
//
//   - EC2AccessDeniedException
//     Need additional permissions to configure VPC settings.
//
//   - InvalidSubnetIDException
//     The subnet ID provided in the Lambda function VPC configuration is not valid.
//
//   - InvalidSecurityGroupIDException
//     The security group ID provided in the Lambda function VPC configuration is
//     not valid.
//
//   - InvalidZipFileException
//     Lambda could not unzip the deployment package.
//
//   - KMSDisabledException
//     Lambda couldn't decrypt the environment variables because the KMS key used
//     is disabled. Check the Lambda function's KMS key settings.
//
//   - KMSInvalidStateException
//     Lambda couldn't decrypt the environment variables because the state of the
//     KMS key used is not valid for Decrypt. Check the function's KMS key settings.
//
//   - KMSAccessDeniedException
//     Lambda couldn't decrypt the environment variables because KMS access was
//     denied. Check the Lambda function's KMS permissions.
//
//   - KMSNotFoundException
//     Lambda couldn't decrypt the environment variables because the KMS key was
//     not found. Check the function's KMS key settings.
//
//   - InvalidRuntimeException
//     The runtime or runtime version specified is not supported.
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
//   - ResourceNotReadyException
//     The function is inactive and its VPC connection is no longer available. Wait
//     for the VPC connection to reestablish and try again.
//
//   - RecursiveInvocationException
//     Lambda has detected your function being invoked in a recursive loop with
//     other Amazon Web Services resources and stopped your function's invocation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/InvokeWithResponseStream
func (c *Lambda) InvokeWithResponseStream(input *InvokeWithResponseStreamInput) (*InvokeWithResponseStreamOutput, error) {
	req, out := c.InvokeWithResponseStreamRequest(input)
	return out, req.Send()
}

// InvokeWithResponseStreamWithContext is the same as InvokeWithResponseStream with the addition of
// the ability to pass a context and additional request options.
//
// See InvokeWithResponseStream for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) InvokeWithResponseStreamWithContext(ctx aws.Context, input *InvokeWithResponseStreamInput, opts ...request.Option) (*InvokeWithResponseStreamOutput, error) {
	req, out := c.InvokeWithResponseStreamRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

var _ awserr.Error
var _ time.Time

// InvokeWithResponseStreamEventStream provides the event stream handling for the InvokeWithResponseStream.
//
// For testing and mocking the event stream this type should be initialized via
// the NewInvokeWithResponseStreamEventStream constructor function. Using the functional options
// to pass in nested mock behavior.
type InvokeWithResponseStreamEventStream struct {

	// Reader is the EventStream reader for the InvokeWithResponseStreamResponseEvent
	// events. This value is automatically set by the SDK when the API call is made
	// Use this member when unit testing your code with the SDK to mock out the
	// EventStream Reader.
	//
	// Must not be nil.
	Reader InvokeWithResponseStreamResponseEventReader

	outputReader io.ReadCloser

	done      chan struct{}
	closeOnce sync.Once
	err       *eventstreamapi.OnceError
}

// NewInvokeWithResponseStreamEventStream initializes an InvokeWithResponseStreamEventStream.
// This function should only be used for testing and mocking the InvokeWithResponseStreamEventStream
// stream within your application.
//
// The Reader member must be set before reading events from the stream.
//
//	es := NewInvokeWithResponseStreamEventStream(func(o *InvokeWithResponseStreamEventStream){
//	    es.Reader = myMockStreamReader
//	})
func NewInvokeWithResponseStreamEventStream(opts ...func(*InvokeWithResponseStreamEventStream)) *InvokeWithResponseStreamEventStream {
	es := &InvokeWithResponseStreamEventStream{
		done: make(chan struct{}),
		err:  eventstreamapi.NewOnceError(),
	}

	for _, fn := range opts {
		fn(es)
	}

	return es
}

func (es *InvokeWithResponseStreamEventStream) runOnStreamPartClose(r *request.Request) {
	if es.done == nil {
		return
	}
	go es.waitStreamPartClose()

}

func (es *InvokeWithResponseStreamEventStream) waitStreamPartClose() {
	var outputErrCh <-chan struct{}
	if v, ok := es.Reader.(interface{ ErrorSet() <-chan struct{} }); ok {
		outputErrCh = v.ErrorSet()
	}
	var outputClosedCh <-chan struct{}
	if v, ok := es.Reader.(interface{ Closed() <-chan struct{} }); ok {
		outputClosedCh = v.Closed()
	}

	select {
	case <-es.done:
	case <-outputErrCh:
		es.err.SetError(es.Reader.Err())
		es.Close()
	case <-outputClosedCh:
		if err := es.Reader.Err(); err != nil {
			es.err.SetError(es.Reader.Err())
		}
		es.Close()
	}
}

// Events returns a channel to read events from.
//
// These events are:
//
//   - InvokeWithResponseStreamCompleteEvent
//   - InvokeResponseStreamUpdate
//   - InvokeWithResponseStreamResponseEventUnknownEvent
func (es *InvokeWithResponseStreamEventStream) Events() <-chan InvokeWithResponseStreamResponseEventEvent {
	return es.Reader.Events()
}

func (es *InvokeWithResponseStreamEventStream) runOutputStream(r *request.Request) {
	var opts []func(*eventstream.Decoder)
	if r.Config.Logger != nil && r.Config.LogLevel.Matches(aws.LogDebugWithEventStreamBody) {
		opts = append(opts, eventstream.DecodeWithLogger(r.Config.Logger))
	}

	unmarshalerForEvent := unmarshalerForInvokeWithResponseStreamResponseEventEvent{
		metadata: protocol.ResponseMetadata{
			StatusCode: r.HTTPResponse.StatusCode,
			RequestID:  r.RequestID,
		},
	}.UnmarshalerForEventName

	decoder := eventstream.NewDecoder(r.HTTPResponse.Body, opts...)
	eventReader := eventstreamapi.NewEventReader(decoder,
		protocol.HandlerPayloadUnmarshal{
			Unmarshalers: r.Handlers.UnmarshalStream,
		},
		unmarshalerForEvent,
	)

	es.outputReader = r.HTTPResponse.Body
	es.Reader = newReadInvokeWithResponseStreamResponseEvent(eventReader)
}

// Close closes the stream. This will also cause the stream to be closed.
// Close must be called when done using the stream API. Not calling Close
// may result in resource leaks.
//
// You can use the closing of the Reader's Events channel to terminate your
// application's read from the API's stream.
func (es *InvokeWithResponseStreamEventStream) Close() (err error) {
	es.closeOnce.Do(es.safeClose)
	return es.Err()
}

func (es *InvokeWithResponseStreamEventStream) safeClose() {
	if es.done != nil {
		close(es.done)
	}

	es.Reader.Close()
	if es.outputReader != nil {
		es.outputReader.Close()
	}
}

// Err returns any error that occurred while reading or writing EventStream
// Events from the service API's response. Returns nil if there were no errors.
func (es *InvokeWithResponseStreamEventStream) Err() error {
	if err := es.err.Err(); err != nil {
		return err
	}
	if err := es.Reader.Err(); err != nil {
		return err
	}

	return nil
}

const opListAliases = "ListAliases"

// ListAliasesRequest generates a "aws/request.Request" representing the
// client's request for the ListAliases 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 ListAliases for more information on using the ListAliases
// 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 ListAliasesRequest method.
//	req, resp := client.ListAliasesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListAliases
func (c *Lambda) ListAliasesRequest(input *ListAliasesInput) (req *request.Request, output *ListAliasesOutput) {
	op := &request.Operation{
		Name:       opListAliases,
		HTTPMethod: "GET",
		HTTPPath:   "/2015-03-31/functions/{FunctionName}/aliases",
		Paginator: &request.Paginator{
			InputTokens:     []string{"Marker"},
			OutputTokens:    []string{"NextMarker"},
			LimitToken:      "MaxItems",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListAliasesInput{}
	}

	output = &ListAliasesOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListAliases API operation for AWS Lambda.
//
// Returns a list of aliases (https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html)
// for a Lambda function.
//
// 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 Lambda's
// API operation ListAliases for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListAliases
func (c *Lambda) ListAliases(input *ListAliasesInput) (*ListAliasesOutput, error) {
	req, out := c.ListAliasesRequest(input)
	return out, req.Send()
}

// ListAliasesWithContext is the same as ListAliases with the addition of
// the ability to pass a context and additional request options.
//
// See ListAliases for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) ListAliasesWithContext(ctx aws.Context, input *ListAliasesInput, opts ...request.Option) (*ListAliasesOutput, error) {
	req, out := c.ListAliasesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListAliasesPages iterates over the pages of a ListAliases operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListAliases 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 ListAliases operation.
//	pageNum := 0
//	err := client.ListAliasesPages(params,
//	    func(page *lambda.ListAliasesOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *Lambda) ListAliasesPages(input *ListAliasesInput, fn func(*ListAliasesOutput, bool) bool) error {
	return c.ListAliasesPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListAliasesPagesWithContext same as ListAliasesPages 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 (c *Lambda) ListAliasesPagesWithContext(ctx aws.Context, input *ListAliasesInput, fn func(*ListAliasesOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListAliasesInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListAliasesRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListAliasesOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListCodeSigningConfigs = "ListCodeSigningConfigs"

// ListCodeSigningConfigsRequest generates a "aws/request.Request" representing the
// client's request for the ListCodeSigningConfigs 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 ListCodeSigningConfigs for more information on using the ListCodeSigningConfigs
// 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 ListCodeSigningConfigsRequest method.
//	req, resp := client.ListCodeSigningConfigsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListCodeSigningConfigs
func (c *Lambda) ListCodeSigningConfigsRequest(input *ListCodeSigningConfigsInput) (req *request.Request, output *ListCodeSigningConfigsOutput) {
	op := &request.Operation{
		Name:       opListCodeSigningConfigs,
		HTTPMethod: "GET",
		HTTPPath:   "/2020-04-22/code-signing-configs/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"Marker"},
			OutputTokens:    []string{"NextMarker"},
			LimitToken:      "MaxItems",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListCodeSigningConfigsInput{}
	}

	output = &ListCodeSigningConfigsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListCodeSigningConfigs API operation for AWS Lambda.
//
// Returns a list of code signing configurations (https://docs.aws.amazon.com/lambda/latest/dg/configuring-codesigning.html).
// A request returns up to 10,000 configurations per call. You can use the MaxItems
// parameter to return fewer configurations per call.
//
// 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 Lambda's
// API operation ListCodeSigningConfigs for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListCodeSigningConfigs
func (c *Lambda) ListCodeSigningConfigs(input *ListCodeSigningConfigsInput) (*ListCodeSigningConfigsOutput, error) {
	req, out := c.ListCodeSigningConfigsRequest(input)
	return out, req.Send()
}

// ListCodeSigningConfigsWithContext is the same as ListCodeSigningConfigs with the addition of
// the ability to pass a context and additional request options.
//
// See ListCodeSigningConfigs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) ListCodeSigningConfigsWithContext(ctx aws.Context, input *ListCodeSigningConfigsInput, opts ...request.Option) (*ListCodeSigningConfigsOutput, error) {
	req, out := c.ListCodeSigningConfigsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListCodeSigningConfigsPages iterates over the pages of a ListCodeSigningConfigs operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListCodeSigningConfigs 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 ListCodeSigningConfigs operation.
//	pageNum := 0
//	err := client.ListCodeSigningConfigsPages(params,
//	    func(page *lambda.ListCodeSigningConfigsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *Lambda) ListCodeSigningConfigsPages(input *ListCodeSigningConfigsInput, fn func(*ListCodeSigningConfigsOutput, bool) bool) error {
	return c.ListCodeSigningConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListCodeSigningConfigsPagesWithContext same as ListCodeSigningConfigsPages 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 (c *Lambda) ListCodeSigningConfigsPagesWithContext(ctx aws.Context, input *ListCodeSigningConfigsInput, fn func(*ListCodeSigningConfigsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListCodeSigningConfigsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListCodeSigningConfigsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListCodeSigningConfigsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListEventSourceMappings = "ListEventSourceMappings"

// ListEventSourceMappingsRequest generates a "aws/request.Request" representing the
// client's request for the ListEventSourceMappings 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 ListEventSourceMappings for more information on using the ListEventSourceMappings
// 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 ListEventSourceMappingsRequest method.
//	req, resp := client.ListEventSourceMappingsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListEventSourceMappings
func (c *Lambda) ListEventSourceMappingsRequest(input *ListEventSourceMappingsInput) (req *request.Request, output *ListEventSourceMappingsOutput) {
	op := &request.Operation{
		Name:       opListEventSourceMappings,
		HTTPMethod: "GET",
		HTTPPath:   "/2015-03-31/event-source-mappings/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"Marker"},
			OutputTokens:    []string{"NextMarker"},
			LimitToken:      "MaxItems",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListEventSourceMappingsInput{}
	}

	output = &ListEventSourceMappingsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListEventSourceMappings API operation for AWS Lambda.
//
// Lists event source mappings. Specify an EventSourceArn to show only event
// source mappings for a single event source.
//
// 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 Lambda's
// API operation ListEventSourceMappings for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListEventSourceMappings
func (c *Lambda) ListEventSourceMappings(input *ListEventSourceMappingsInput) (*ListEventSourceMappingsOutput, error) {
	req, out := c.ListEventSourceMappingsRequest(input)
	return out, req.Send()
}

// ListEventSourceMappingsWithContext is the same as ListEventSourceMappings with the addition of
// the ability to pass a context and additional request options.
//
// See ListEventSourceMappings for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) ListEventSourceMappingsWithContext(ctx aws.Context, input *ListEventSourceMappingsInput, opts ...request.Option) (*ListEventSourceMappingsOutput, error) {
	req, out := c.ListEventSourceMappingsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListEventSourceMappingsPages iterates over the pages of a ListEventSourceMappings operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListEventSourceMappings 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 ListEventSourceMappings operation.
//	pageNum := 0
//	err := client.ListEventSourceMappingsPages(params,
//	    func(page *lambda.ListEventSourceMappingsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *Lambda) ListEventSourceMappingsPages(input *ListEventSourceMappingsInput, fn func(*ListEventSourceMappingsOutput, bool) bool) error {
	return c.ListEventSourceMappingsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListEventSourceMappingsPagesWithContext same as ListEventSourceMappingsPages 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 (c *Lambda) ListEventSourceMappingsPagesWithContext(ctx aws.Context, input *ListEventSourceMappingsInput, fn func(*ListEventSourceMappingsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListEventSourceMappingsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListEventSourceMappingsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListEventSourceMappingsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListFunctionEventInvokeConfigs = "ListFunctionEventInvokeConfigs"

// ListFunctionEventInvokeConfigsRequest generates a "aws/request.Request" representing the
// client's request for the ListFunctionEventInvokeConfigs 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 ListFunctionEventInvokeConfigs for more information on using the ListFunctionEventInvokeConfigs
// 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 ListFunctionEventInvokeConfigsRequest method.
//	req, resp := client.ListFunctionEventInvokeConfigsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListFunctionEventInvokeConfigs
func (c *Lambda) ListFunctionEventInvokeConfigsRequest(input *ListFunctionEventInvokeConfigsInput) (req *request.Request, output *ListFunctionEventInvokeConfigsOutput) {
	op := &request.Operation{
		Name:       opListFunctionEventInvokeConfigs,
		HTTPMethod: "GET",
		HTTPPath:   "/2019-09-25/functions/{FunctionName}/event-invoke-config/list",
		Paginator: &request.Paginator{
			InputTokens:     []string{"Marker"},
			OutputTokens:    []string{"NextMarker"},
			LimitToken:      "MaxItems",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListFunctionEventInvokeConfigsInput{}
	}

	output = &ListFunctionEventInvokeConfigsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListFunctionEventInvokeConfigs API operation for AWS Lambda.
//
// Retrieves a list of configurations for asynchronous invocation for a function.
//
// To configure options for asynchronous invocation, use PutFunctionEventInvokeConfig.
//
// 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 Lambda's
// API operation ListFunctionEventInvokeConfigs for usage and error information.
//
// Returned Error Types:
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListFunctionEventInvokeConfigs
func (c *Lambda) ListFunctionEventInvokeConfigs(input *ListFunctionEventInvokeConfigsInput) (*ListFunctionEventInvokeConfigsOutput, error) {
	req, out := c.ListFunctionEventInvokeConfigsRequest(input)
	return out, req.Send()
}

// ListFunctionEventInvokeConfigsWithContext is the same as ListFunctionEventInvokeConfigs with the addition of
// the ability to pass a context and additional request options.
//
// See ListFunctionEventInvokeConfigs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) ListFunctionEventInvokeConfigsWithContext(ctx aws.Context, input *ListFunctionEventInvokeConfigsInput, opts ...request.Option) (*ListFunctionEventInvokeConfigsOutput, error) {
	req, out := c.ListFunctionEventInvokeConfigsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListFunctionEventInvokeConfigsPages iterates over the pages of a ListFunctionEventInvokeConfigs operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListFunctionEventInvokeConfigs 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 ListFunctionEventInvokeConfigs operation.
//	pageNum := 0
//	err := client.ListFunctionEventInvokeConfigsPages(params,
//	    func(page *lambda.ListFunctionEventInvokeConfigsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *Lambda) ListFunctionEventInvokeConfigsPages(input *ListFunctionEventInvokeConfigsInput, fn func(*ListFunctionEventInvokeConfigsOutput, bool) bool) error {
	return c.ListFunctionEventInvokeConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListFunctionEventInvokeConfigsPagesWithContext same as ListFunctionEventInvokeConfigsPages 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 (c *Lambda) ListFunctionEventInvokeConfigsPagesWithContext(ctx aws.Context, input *ListFunctionEventInvokeConfigsInput, fn func(*ListFunctionEventInvokeConfigsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListFunctionEventInvokeConfigsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListFunctionEventInvokeConfigsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListFunctionEventInvokeConfigsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListFunctionUrlConfigs = "ListFunctionUrlConfigs"

// ListFunctionUrlConfigsRequest generates a "aws/request.Request" representing the
// client's request for the ListFunctionUrlConfigs 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 ListFunctionUrlConfigs for more information on using the ListFunctionUrlConfigs
// 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 ListFunctionUrlConfigsRequest method.
//	req, resp := client.ListFunctionUrlConfigsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListFunctionUrlConfigs
func (c *Lambda) ListFunctionUrlConfigsRequest(input *ListFunctionUrlConfigsInput) (req *request.Request, output *ListFunctionUrlConfigsOutput) {
	op := &request.Operation{
		Name:       opListFunctionUrlConfigs,
		HTTPMethod: "GET",
		HTTPPath:   "/2021-10-31/functions/{FunctionName}/urls",
		Paginator: &request.Paginator{
			InputTokens:     []string{"Marker"},
			OutputTokens:    []string{"NextMarker"},
			LimitToken:      "MaxItems",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListFunctionUrlConfigsInput{}
	}

	output = &ListFunctionUrlConfigsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListFunctionUrlConfigs API operation for AWS Lambda.
//
// Returns a list of Lambda function URLs for the specified function.
//
// 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 Lambda's
// API operation ListFunctionUrlConfigs for usage and error information.
//
// Returned Error Types:
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListFunctionUrlConfigs
func (c *Lambda) ListFunctionUrlConfigs(input *ListFunctionUrlConfigsInput) (*ListFunctionUrlConfigsOutput, error) {
	req, out := c.ListFunctionUrlConfigsRequest(input)
	return out, req.Send()
}

// ListFunctionUrlConfigsWithContext is the same as ListFunctionUrlConfigs with the addition of
// the ability to pass a context and additional request options.
//
// See ListFunctionUrlConfigs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) ListFunctionUrlConfigsWithContext(ctx aws.Context, input *ListFunctionUrlConfigsInput, opts ...request.Option) (*ListFunctionUrlConfigsOutput, error) {
	req, out := c.ListFunctionUrlConfigsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListFunctionUrlConfigsPages iterates over the pages of a ListFunctionUrlConfigs operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListFunctionUrlConfigs 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 ListFunctionUrlConfigs operation.
//	pageNum := 0
//	err := client.ListFunctionUrlConfigsPages(params,
//	    func(page *lambda.ListFunctionUrlConfigsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *Lambda) ListFunctionUrlConfigsPages(input *ListFunctionUrlConfigsInput, fn func(*ListFunctionUrlConfigsOutput, bool) bool) error {
	return c.ListFunctionUrlConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListFunctionUrlConfigsPagesWithContext same as ListFunctionUrlConfigsPages 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 (c *Lambda) ListFunctionUrlConfigsPagesWithContext(ctx aws.Context, input *ListFunctionUrlConfigsInput, fn func(*ListFunctionUrlConfigsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListFunctionUrlConfigsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListFunctionUrlConfigsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListFunctionUrlConfigsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListFunctions = "ListFunctions"

// ListFunctionsRequest generates a "aws/request.Request" representing the
// client's request for the ListFunctions 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 ListFunctions for more information on using the ListFunctions
// 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 ListFunctionsRequest method.
//	req, resp := client.ListFunctionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListFunctions
func (c *Lambda) ListFunctionsRequest(input *ListFunctionsInput) (req *request.Request, output *ListFunctionsOutput) {
	op := &request.Operation{
		Name:       opListFunctions,
		HTTPMethod: "GET",
		HTTPPath:   "/2015-03-31/functions/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"Marker"},
			OutputTokens:    []string{"NextMarker"},
			LimitToken:      "MaxItems",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListFunctionsInput{}
	}

	output = &ListFunctionsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListFunctions API operation for AWS Lambda.
//
// Returns a list of Lambda functions, with the version-specific configuration
// of each. Lambda returns up to 50 functions per call.
//
// Set FunctionVersion to ALL to include all published versions of each function
// in addition to the unpublished version.
//
// The ListFunctions operation returns a subset of the FunctionConfiguration
// fields. To get the additional fields (State, StateReasonCode, StateReason,
// LastUpdateStatus, LastUpdateStatusReason, LastUpdateStatusReasonCode, RuntimeVersionConfig)
// for a function or version, use GetFunction.
//
// 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 Lambda's
// API operation ListFunctions for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListFunctions
func (c *Lambda) ListFunctions(input *ListFunctionsInput) (*ListFunctionsOutput, error) {
	req, out := c.ListFunctionsRequest(input)
	return out, req.Send()
}

// ListFunctionsWithContext is the same as ListFunctions with the addition of
// the ability to pass a context and additional request options.
//
// See ListFunctions for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) ListFunctionsWithContext(ctx aws.Context, input *ListFunctionsInput, opts ...request.Option) (*ListFunctionsOutput, error) {
	req, out := c.ListFunctionsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListFunctionsPages iterates over the pages of a ListFunctions operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListFunctions 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 ListFunctions operation.
//	pageNum := 0
//	err := client.ListFunctionsPages(params,
//	    func(page *lambda.ListFunctionsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *Lambda) ListFunctionsPages(input *ListFunctionsInput, fn func(*ListFunctionsOutput, bool) bool) error {
	return c.ListFunctionsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListFunctionsPagesWithContext same as ListFunctionsPages 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 (c *Lambda) ListFunctionsPagesWithContext(ctx aws.Context, input *ListFunctionsInput, fn func(*ListFunctionsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListFunctionsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListFunctionsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListFunctionsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListFunctionsByCodeSigningConfig = "ListFunctionsByCodeSigningConfig"

// ListFunctionsByCodeSigningConfigRequest generates a "aws/request.Request" representing the
// client's request for the ListFunctionsByCodeSigningConfig 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 ListFunctionsByCodeSigningConfig for more information on using the ListFunctionsByCodeSigningConfig
// 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 ListFunctionsByCodeSigningConfigRequest method.
//	req, resp := client.ListFunctionsByCodeSigningConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListFunctionsByCodeSigningConfig
func (c *Lambda) ListFunctionsByCodeSigningConfigRequest(input *ListFunctionsByCodeSigningConfigInput) (req *request.Request, output *ListFunctionsByCodeSigningConfigOutput) {
	op := &request.Operation{
		Name:       opListFunctionsByCodeSigningConfig,
		HTTPMethod: "GET",
		HTTPPath:   "/2020-04-22/code-signing-configs/{CodeSigningConfigArn}/functions",
		Paginator: &request.Paginator{
			InputTokens:     []string{"Marker"},
			OutputTokens:    []string{"NextMarker"},
			LimitToken:      "MaxItems",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListFunctionsByCodeSigningConfigInput{}
	}

	output = &ListFunctionsByCodeSigningConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListFunctionsByCodeSigningConfig API operation for AWS Lambda.
//
// List the functions that use the specified code signing configuration. You
// can use this method prior to deleting a code signing configuration, to verify
// that no functions are using it.
//
// 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 Lambda's
// API operation ListFunctionsByCodeSigningConfig for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListFunctionsByCodeSigningConfig
func (c *Lambda) ListFunctionsByCodeSigningConfig(input *ListFunctionsByCodeSigningConfigInput) (*ListFunctionsByCodeSigningConfigOutput, error) {
	req, out := c.ListFunctionsByCodeSigningConfigRequest(input)
	return out, req.Send()
}

// ListFunctionsByCodeSigningConfigWithContext is the same as ListFunctionsByCodeSigningConfig with the addition of
// the ability to pass a context and additional request options.
//
// See ListFunctionsByCodeSigningConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) ListFunctionsByCodeSigningConfigWithContext(ctx aws.Context, input *ListFunctionsByCodeSigningConfigInput, opts ...request.Option) (*ListFunctionsByCodeSigningConfigOutput, error) {
	req, out := c.ListFunctionsByCodeSigningConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListFunctionsByCodeSigningConfigPages iterates over the pages of a ListFunctionsByCodeSigningConfig operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListFunctionsByCodeSigningConfig 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 ListFunctionsByCodeSigningConfig operation.
//	pageNum := 0
//	err := client.ListFunctionsByCodeSigningConfigPages(params,
//	    func(page *lambda.ListFunctionsByCodeSigningConfigOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *Lambda) ListFunctionsByCodeSigningConfigPages(input *ListFunctionsByCodeSigningConfigInput, fn func(*ListFunctionsByCodeSigningConfigOutput, bool) bool) error {
	return c.ListFunctionsByCodeSigningConfigPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListFunctionsByCodeSigningConfigPagesWithContext same as ListFunctionsByCodeSigningConfigPages 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 (c *Lambda) ListFunctionsByCodeSigningConfigPagesWithContext(ctx aws.Context, input *ListFunctionsByCodeSigningConfigInput, fn func(*ListFunctionsByCodeSigningConfigOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListFunctionsByCodeSigningConfigInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListFunctionsByCodeSigningConfigRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListFunctionsByCodeSigningConfigOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListLayerVersions = "ListLayerVersions"

// ListLayerVersionsRequest generates a "aws/request.Request" representing the
// client's request for the ListLayerVersions 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 ListLayerVersions for more information on using the ListLayerVersions
// 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 ListLayerVersionsRequest method.
//	req, resp := client.ListLayerVersionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListLayerVersions
func (c *Lambda) ListLayerVersionsRequest(input *ListLayerVersionsInput) (req *request.Request, output *ListLayerVersionsOutput) {
	op := &request.Operation{
		Name:       opListLayerVersions,
		HTTPMethod: "GET",
		HTTPPath:   "/2018-10-31/layers/{LayerName}/versions",
		Paginator: &request.Paginator{
			InputTokens:     []string{"Marker"},
			OutputTokens:    []string{"NextMarker"},
			LimitToken:      "MaxItems",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListLayerVersionsInput{}
	}

	output = &ListLayerVersionsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListLayerVersions API operation for AWS Lambda.
//
// Lists the versions of an Lambda layer (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html).
// Versions that have been deleted aren't listed. Specify a runtime identifier
// (https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html) to list
// only versions that indicate that they're compatible with that runtime. Specify
// a compatible architecture to include only layer versions that are compatible
// with that architecture.
//
// 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 Lambda's
// API operation ListLayerVersions for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListLayerVersions
func (c *Lambda) ListLayerVersions(input *ListLayerVersionsInput) (*ListLayerVersionsOutput, error) {
	req, out := c.ListLayerVersionsRequest(input)
	return out, req.Send()
}

// ListLayerVersionsWithContext is the same as ListLayerVersions with the addition of
// the ability to pass a context and additional request options.
//
// See ListLayerVersions for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) ListLayerVersionsWithContext(ctx aws.Context, input *ListLayerVersionsInput, opts ...request.Option) (*ListLayerVersionsOutput, error) {
	req, out := c.ListLayerVersionsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListLayerVersionsPages iterates over the pages of a ListLayerVersions operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListLayerVersions 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 ListLayerVersions operation.
//	pageNum := 0
//	err := client.ListLayerVersionsPages(params,
//	    func(page *lambda.ListLayerVersionsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *Lambda) ListLayerVersionsPages(input *ListLayerVersionsInput, fn func(*ListLayerVersionsOutput, bool) bool) error {
	return c.ListLayerVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListLayerVersionsPagesWithContext same as ListLayerVersionsPages 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 (c *Lambda) ListLayerVersionsPagesWithContext(ctx aws.Context, input *ListLayerVersionsInput, fn func(*ListLayerVersionsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListLayerVersionsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListLayerVersionsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListLayerVersionsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListLayers = "ListLayers"

// ListLayersRequest generates a "aws/request.Request" representing the
// client's request for the ListLayers 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 ListLayers for more information on using the ListLayers
// 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 ListLayersRequest method.
//	req, resp := client.ListLayersRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListLayers
func (c *Lambda) ListLayersRequest(input *ListLayersInput) (req *request.Request, output *ListLayersOutput) {
	op := &request.Operation{
		Name:       opListLayers,
		HTTPMethod: "GET",
		HTTPPath:   "/2018-10-31/layers",
		Paginator: &request.Paginator{
			InputTokens:     []string{"Marker"},
			OutputTokens:    []string{"NextMarker"},
			LimitToken:      "MaxItems",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListLayersInput{}
	}

	output = &ListLayersOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListLayers API operation for AWS Lambda.
//
// Lists Lambda layers (https://docs.aws.amazon.com/lambda/latest/dg/invocation-layers.html)
// and shows information about the latest version of each. Specify a runtime
// identifier (https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html)
// to list only layers that indicate that they're compatible with that runtime.
// Specify a compatible architecture to include only layers that are compatible
// with that instruction set architecture (https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.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 Lambda's
// API operation ListLayers for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListLayers
func (c *Lambda) ListLayers(input *ListLayersInput) (*ListLayersOutput, error) {
	req, out := c.ListLayersRequest(input)
	return out, req.Send()
}

// ListLayersWithContext is the same as ListLayers with the addition of
// the ability to pass a context and additional request options.
//
// See ListLayers for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) ListLayersWithContext(ctx aws.Context, input *ListLayersInput, opts ...request.Option) (*ListLayersOutput, error) {
	req, out := c.ListLayersRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListLayersPages iterates over the pages of a ListLayers operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListLayers 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 ListLayers operation.
//	pageNum := 0
//	err := client.ListLayersPages(params,
//	    func(page *lambda.ListLayersOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *Lambda) ListLayersPages(input *ListLayersInput, fn func(*ListLayersOutput, bool) bool) error {
	return c.ListLayersPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListLayersPagesWithContext same as ListLayersPages 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 (c *Lambda) ListLayersPagesWithContext(ctx aws.Context, input *ListLayersInput, fn func(*ListLayersOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListLayersInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListLayersRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListLayersOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListProvisionedConcurrencyConfigs = "ListProvisionedConcurrencyConfigs"

// ListProvisionedConcurrencyConfigsRequest generates a "aws/request.Request" representing the
// client's request for the ListProvisionedConcurrencyConfigs 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 ListProvisionedConcurrencyConfigs for more information on using the ListProvisionedConcurrencyConfigs
// 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 ListProvisionedConcurrencyConfigsRequest method.
//	req, resp := client.ListProvisionedConcurrencyConfigsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListProvisionedConcurrencyConfigs
func (c *Lambda) ListProvisionedConcurrencyConfigsRequest(input *ListProvisionedConcurrencyConfigsInput) (req *request.Request, output *ListProvisionedConcurrencyConfigsOutput) {
	op := &request.Operation{
		Name:       opListProvisionedConcurrencyConfigs,
		HTTPMethod: "GET",
		HTTPPath:   "/2019-09-30/functions/{FunctionName}/provisioned-concurrency?List=ALL",
		Paginator: &request.Paginator{
			InputTokens:     []string{"Marker"},
			OutputTokens:    []string{"NextMarker"},
			LimitToken:      "MaxItems",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListProvisionedConcurrencyConfigsInput{}
	}

	output = &ListProvisionedConcurrencyConfigsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListProvisionedConcurrencyConfigs API operation for AWS Lambda.
//
// Retrieves a list of provisioned concurrency configurations for a function.
//
// 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 Lambda's
// API operation ListProvisionedConcurrencyConfigs for usage and error information.
//
// Returned Error Types:
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListProvisionedConcurrencyConfigs
func (c *Lambda) ListProvisionedConcurrencyConfigs(input *ListProvisionedConcurrencyConfigsInput) (*ListProvisionedConcurrencyConfigsOutput, error) {
	req, out := c.ListProvisionedConcurrencyConfigsRequest(input)
	return out, req.Send()
}

// ListProvisionedConcurrencyConfigsWithContext is the same as ListProvisionedConcurrencyConfigs with the addition of
// the ability to pass a context and additional request options.
//
// See ListProvisionedConcurrencyConfigs for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) ListProvisionedConcurrencyConfigsWithContext(ctx aws.Context, input *ListProvisionedConcurrencyConfigsInput, opts ...request.Option) (*ListProvisionedConcurrencyConfigsOutput, error) {
	req, out := c.ListProvisionedConcurrencyConfigsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListProvisionedConcurrencyConfigsPages iterates over the pages of a ListProvisionedConcurrencyConfigs operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListProvisionedConcurrencyConfigs 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 ListProvisionedConcurrencyConfigs operation.
//	pageNum := 0
//	err := client.ListProvisionedConcurrencyConfigsPages(params,
//	    func(page *lambda.ListProvisionedConcurrencyConfigsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *Lambda) ListProvisionedConcurrencyConfigsPages(input *ListProvisionedConcurrencyConfigsInput, fn func(*ListProvisionedConcurrencyConfigsOutput, bool) bool) error {
	return c.ListProvisionedConcurrencyConfigsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListProvisionedConcurrencyConfigsPagesWithContext same as ListProvisionedConcurrencyConfigsPages 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 (c *Lambda) ListProvisionedConcurrencyConfigsPagesWithContext(ctx aws.Context, input *ListProvisionedConcurrencyConfigsInput, fn func(*ListProvisionedConcurrencyConfigsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListProvisionedConcurrencyConfigsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListProvisionedConcurrencyConfigsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListProvisionedConcurrencyConfigsOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opListTags = "ListTags"

// ListTagsRequest generates a "aws/request.Request" representing the
// client's request for the ListTags 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 ListTags for more information on using the ListTags
// 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 ListTagsRequest method.
//	req, resp := client.ListTagsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListTags
func (c *Lambda) ListTagsRequest(input *ListTagsInput) (req *request.Request, output *ListTagsOutput) {
	op := &request.Operation{
		Name:       opListTags,
		HTTPMethod: "GET",
		HTTPPath:   "/2017-03-31/tags/{ARN}",
	}

	if input == nil {
		input = &ListTagsInput{}
	}

	output = &ListTagsOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListTags API operation for AWS Lambda.
//
// Returns a function's tags (https://docs.aws.amazon.com/lambda/latest/dg/tagging.html).
// You can also view tags with GetFunction.
//
// 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 Lambda's
// API operation ListTags for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListTags
func (c *Lambda) ListTags(input *ListTagsInput) (*ListTagsOutput, error) {
	req, out := c.ListTagsRequest(input)
	return out, req.Send()
}

// ListTagsWithContext is the same as ListTags with the addition of
// the ability to pass a context and additional request options.
//
// See ListTags for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) ListTagsWithContext(ctx aws.Context, input *ListTagsInput, opts ...request.Option) (*ListTagsOutput, error) {
	req, out := c.ListTagsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opListVersionsByFunction = "ListVersionsByFunction"

// ListVersionsByFunctionRequest generates a "aws/request.Request" representing the
// client's request for the ListVersionsByFunction 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 ListVersionsByFunction for more information on using the ListVersionsByFunction
// 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 ListVersionsByFunctionRequest method.
//	req, resp := client.ListVersionsByFunctionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListVersionsByFunction
func (c *Lambda) ListVersionsByFunctionRequest(input *ListVersionsByFunctionInput) (req *request.Request, output *ListVersionsByFunctionOutput) {
	op := &request.Operation{
		Name:       opListVersionsByFunction,
		HTTPMethod: "GET",
		HTTPPath:   "/2015-03-31/functions/{FunctionName}/versions",
		Paginator: &request.Paginator{
			InputTokens:     []string{"Marker"},
			OutputTokens:    []string{"NextMarker"},
			LimitToken:      "MaxItems",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListVersionsByFunctionInput{}
	}

	output = &ListVersionsByFunctionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// ListVersionsByFunction API operation for AWS Lambda.
//
// Returns a list of versions (https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html),
// with the version-specific configuration of each. Lambda returns up to 50
// versions per call.
//
// 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 Lambda's
// API operation ListVersionsByFunction for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListVersionsByFunction
func (c *Lambda) ListVersionsByFunction(input *ListVersionsByFunctionInput) (*ListVersionsByFunctionOutput, error) {
	req, out := c.ListVersionsByFunctionRequest(input)
	return out, req.Send()
}

// ListVersionsByFunctionWithContext is the same as ListVersionsByFunction with the addition of
// the ability to pass a context and additional request options.
//
// See ListVersionsByFunction for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) ListVersionsByFunctionWithContext(ctx aws.Context, input *ListVersionsByFunctionInput, opts ...request.Option) (*ListVersionsByFunctionOutput, error) {
	req, out := c.ListVersionsByFunctionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// ListVersionsByFunctionPages iterates over the pages of a ListVersionsByFunction operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListVersionsByFunction 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 ListVersionsByFunction operation.
//	pageNum := 0
//	err := client.ListVersionsByFunctionPages(params,
//	    func(page *lambda.ListVersionsByFunctionOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *Lambda) ListVersionsByFunctionPages(input *ListVersionsByFunctionInput, fn func(*ListVersionsByFunctionOutput, bool) bool) error {
	return c.ListVersionsByFunctionPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListVersionsByFunctionPagesWithContext same as ListVersionsByFunctionPages 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 (c *Lambda) ListVersionsByFunctionPagesWithContext(ctx aws.Context, input *ListVersionsByFunctionInput, fn func(*ListVersionsByFunctionOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListVersionsByFunctionInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListVersionsByFunctionRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

	for p.Next() {
		if !fn(p.Page().(*ListVersionsByFunctionOutput), !p.HasNextPage()) {
			break
		}
	}

	return p.Err()
}

const opPublishLayerVersion = "PublishLayerVersion"

// PublishLayerVersionRequest generates a "aws/request.Request" representing the
// client's request for the PublishLayerVersion 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 PublishLayerVersion for more information on using the PublishLayerVersion
// 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 PublishLayerVersionRequest method.
//	req, resp := client.PublishLayerVersionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PublishLayerVersion
func (c *Lambda) PublishLayerVersionRequest(input *PublishLayerVersionInput) (req *request.Request, output *PublishLayerVersionOutput) {
	op := &request.Operation{
		Name:       opPublishLayerVersion,
		HTTPMethod: "POST",
		HTTPPath:   "/2018-10-31/layers/{LayerName}/versions",
	}

	if input == nil {
		input = &PublishLayerVersionInput{}
	}

	output = &PublishLayerVersionOutput{}
	req = c.newRequest(op, input, output)
	return
}

// PublishLayerVersion API operation for AWS Lambda.
//
// Creates an Lambda layer (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html)
// from a ZIP archive. Each time you call PublishLayerVersion with the same
// layer name, a new version is created.
//
// Add layers to your function with CreateFunction or UpdateFunctionConfiguration.
//
// 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 Lambda's
// API operation PublishLayerVersion for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - CodeStorageExceededException
//     Your Amazon Web Services account has exceeded its maximum total code size.
//     For more information, see Lambda quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PublishLayerVersion
func (c *Lambda) PublishLayerVersion(input *PublishLayerVersionInput) (*PublishLayerVersionOutput, error) {
	req, out := c.PublishLayerVersionRequest(input)
	return out, req.Send()
}

// PublishLayerVersionWithContext is the same as PublishLayerVersion with the addition of
// the ability to pass a context and additional request options.
//
// See PublishLayerVersion for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) PublishLayerVersionWithContext(ctx aws.Context, input *PublishLayerVersionInput, opts ...request.Option) (*PublishLayerVersionOutput, error) {
	req, out := c.PublishLayerVersionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPublishVersion = "PublishVersion"

// PublishVersionRequest generates a "aws/request.Request" representing the
// client's request for the PublishVersion 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 PublishVersion for more information on using the PublishVersion
// 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 PublishVersionRequest method.
//	req, resp := client.PublishVersionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PublishVersion
func (c *Lambda) PublishVersionRequest(input *PublishVersionInput) (req *request.Request, output *FunctionConfiguration) {
	op := &request.Operation{
		Name:       opPublishVersion,
		HTTPMethod: "POST",
		HTTPPath:   "/2015-03-31/functions/{FunctionName}/versions",
	}

	if input == nil {
		input = &PublishVersionInput{}
	}

	output = &FunctionConfiguration{}
	req = c.newRequest(op, input, output)
	return
}

// PublishVersion API operation for AWS Lambda.
//
// Creates a version (https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html)
// from the current code and configuration of a function. Use versions to create
// a snapshot of your function code and configuration that doesn't change.
//
// Lambda doesn't publish a version if the function's configuration and code
// haven't changed since the last version. Use UpdateFunctionCode or UpdateFunctionConfiguration
// to update the function before publishing a version.
//
// Clients can invoke versions directly or with an alias. To create an alias,
// use CreateAlias.
//
// 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 Lambda's
// API operation PublishVersion for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - CodeStorageExceededException
//     Your Amazon Web Services account has exceeded its maximum total code size.
//     For more information, see Lambda quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).
//
//   - PreconditionFailedException
//     The RevisionId provided does not match the latest RevisionId for the Lambda
//     function or alias. Call the GetFunction or the GetAlias API operation to
//     retrieve the latest RevisionId for your resource.
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PublishVersion
func (c *Lambda) PublishVersion(input *PublishVersionInput) (*FunctionConfiguration, error) {
	req, out := c.PublishVersionRequest(input)
	return out, req.Send()
}

// PublishVersionWithContext is the same as PublishVersion with the addition of
// the ability to pass a context and additional request options.
//
// See PublishVersion for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) PublishVersionWithContext(ctx aws.Context, input *PublishVersionInput, opts ...request.Option) (*FunctionConfiguration, error) {
	req, out := c.PublishVersionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPutFunctionCodeSigningConfig = "PutFunctionCodeSigningConfig"

// PutFunctionCodeSigningConfigRequest generates a "aws/request.Request" representing the
// client's request for the PutFunctionCodeSigningConfig 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 PutFunctionCodeSigningConfig for more information on using the PutFunctionCodeSigningConfig
// 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 PutFunctionCodeSigningConfigRequest method.
//	req, resp := client.PutFunctionCodeSigningConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PutFunctionCodeSigningConfig
func (c *Lambda) PutFunctionCodeSigningConfigRequest(input *PutFunctionCodeSigningConfigInput) (req *request.Request, output *PutFunctionCodeSigningConfigOutput) {
	op := &request.Operation{
		Name:       opPutFunctionCodeSigningConfig,
		HTTPMethod: "PUT",
		HTTPPath:   "/2020-06-30/functions/{FunctionName}/code-signing-config",
	}

	if input == nil {
		input = &PutFunctionCodeSigningConfigInput{}
	}

	output = &PutFunctionCodeSigningConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// PutFunctionCodeSigningConfig API operation for AWS Lambda.
//
// Update the code signing configuration for the function. Changes to the code
// signing configuration take effect the next time a user tries to deploy a
// code package to the function.
//
// 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 Lambda's
// API operation PutFunctionCodeSigningConfig for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
//   - CodeSigningConfigNotFoundException
//     The specified code signing configuration does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PutFunctionCodeSigningConfig
func (c *Lambda) PutFunctionCodeSigningConfig(input *PutFunctionCodeSigningConfigInput) (*PutFunctionCodeSigningConfigOutput, error) {
	req, out := c.PutFunctionCodeSigningConfigRequest(input)
	return out, req.Send()
}

// PutFunctionCodeSigningConfigWithContext is the same as PutFunctionCodeSigningConfig with the addition of
// the ability to pass a context and additional request options.
//
// See PutFunctionCodeSigningConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) PutFunctionCodeSigningConfigWithContext(ctx aws.Context, input *PutFunctionCodeSigningConfigInput, opts ...request.Option) (*PutFunctionCodeSigningConfigOutput, error) {
	req, out := c.PutFunctionCodeSigningConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPutFunctionConcurrency = "PutFunctionConcurrency"

// PutFunctionConcurrencyRequest generates a "aws/request.Request" representing the
// client's request for the PutFunctionConcurrency 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 PutFunctionConcurrency for more information on using the PutFunctionConcurrency
// 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 PutFunctionConcurrencyRequest method.
//	req, resp := client.PutFunctionConcurrencyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PutFunctionConcurrency
func (c *Lambda) PutFunctionConcurrencyRequest(input *PutFunctionConcurrencyInput) (req *request.Request, output *PutFunctionConcurrencyOutput) {
	op := &request.Operation{
		Name:       opPutFunctionConcurrency,
		HTTPMethod: "PUT",
		HTTPPath:   "/2017-10-31/functions/{FunctionName}/concurrency",
	}

	if input == nil {
		input = &PutFunctionConcurrencyInput{}
	}

	output = &PutFunctionConcurrencyOutput{}
	req = c.newRequest(op, input, output)
	return
}

// PutFunctionConcurrency API operation for AWS Lambda.
//
// Sets the maximum number of simultaneous executions for a function, and reserves
// capacity for that concurrency level.
//
// Concurrency settings apply to the function as a whole, including all published
// versions and the unpublished version. Reserving concurrency both ensures
// that your function has capacity to process the specified number of events
// simultaneously, and prevents it from scaling beyond that level. Use GetFunction
// to see the current setting for a function.
//
// Use GetAccountSettings to see your Regional concurrency limit. You can reserve
// concurrency for as many functions as you like, as long as you leave at least
// 100 simultaneous executions unreserved for functions that aren't configured
// with a per-function limit. For more information, see Lambda function scaling
// (https://docs.aws.amazon.com/lambda/latest/dg/invocation-scaling.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 Lambda's
// API operation PutFunctionConcurrency for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PutFunctionConcurrency
func (c *Lambda) PutFunctionConcurrency(input *PutFunctionConcurrencyInput) (*PutFunctionConcurrencyOutput, error) {
	req, out := c.PutFunctionConcurrencyRequest(input)
	return out, req.Send()
}

// PutFunctionConcurrencyWithContext is the same as PutFunctionConcurrency with the addition of
// the ability to pass a context and additional request options.
//
// See PutFunctionConcurrency for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) PutFunctionConcurrencyWithContext(ctx aws.Context, input *PutFunctionConcurrencyInput, opts ...request.Option) (*PutFunctionConcurrencyOutput, error) {
	req, out := c.PutFunctionConcurrencyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPutFunctionEventInvokeConfig = "PutFunctionEventInvokeConfig"

// PutFunctionEventInvokeConfigRequest generates a "aws/request.Request" representing the
// client's request for the PutFunctionEventInvokeConfig 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 PutFunctionEventInvokeConfig for more information on using the PutFunctionEventInvokeConfig
// 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 PutFunctionEventInvokeConfigRequest method.
//	req, resp := client.PutFunctionEventInvokeConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PutFunctionEventInvokeConfig
func (c *Lambda) PutFunctionEventInvokeConfigRequest(input *PutFunctionEventInvokeConfigInput) (req *request.Request, output *PutFunctionEventInvokeConfigOutput) {
	op := &request.Operation{
		Name:       opPutFunctionEventInvokeConfig,
		HTTPMethod: "PUT",
		HTTPPath:   "/2019-09-25/functions/{FunctionName}/event-invoke-config",
	}

	if input == nil {
		input = &PutFunctionEventInvokeConfigInput{}
	}

	output = &PutFunctionEventInvokeConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// PutFunctionEventInvokeConfig API operation for AWS Lambda.
//
// Configures options for asynchronous invocation (https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html)
// on a function, version, or alias. If a configuration already exists for a
// function, version, or alias, this operation overwrites it. If you exclude
// any settings, they are removed. To set one option without affecting existing
// settings for other options, use UpdateFunctionEventInvokeConfig.
//
// By default, Lambda retries an asynchronous invocation twice if the function
// returns an error. It retains events in a queue for up to six hours. When
// an event fails all processing attempts or stays in the asynchronous invocation
// queue for too long, Lambda discards it. To retain discarded events, configure
// a dead-letter queue with UpdateFunctionConfiguration.
//
// To send an invocation record to a queue, topic, function, or event bus, specify
// a destination (https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations).
// You can configure separate destinations for successful invocations (on-success)
// and events that fail all processing attempts (on-failure). You can configure
// destinations in addition to or instead of a dead-letter queue.
//
// 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 Lambda's
// API operation PutFunctionEventInvokeConfig for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PutFunctionEventInvokeConfig
func (c *Lambda) PutFunctionEventInvokeConfig(input *PutFunctionEventInvokeConfigInput) (*PutFunctionEventInvokeConfigOutput, error) {
	req, out := c.PutFunctionEventInvokeConfigRequest(input)
	return out, req.Send()
}

// PutFunctionEventInvokeConfigWithContext is the same as PutFunctionEventInvokeConfig with the addition of
// the ability to pass a context and additional request options.
//
// See PutFunctionEventInvokeConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) PutFunctionEventInvokeConfigWithContext(ctx aws.Context, input *PutFunctionEventInvokeConfigInput, opts ...request.Option) (*PutFunctionEventInvokeConfigOutput, error) {
	req, out := c.PutFunctionEventInvokeConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPutProvisionedConcurrencyConfig = "PutProvisionedConcurrencyConfig"

// PutProvisionedConcurrencyConfigRequest generates a "aws/request.Request" representing the
// client's request for the PutProvisionedConcurrencyConfig 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 PutProvisionedConcurrencyConfig for more information on using the PutProvisionedConcurrencyConfig
// 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 PutProvisionedConcurrencyConfigRequest method.
//	req, resp := client.PutProvisionedConcurrencyConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PutProvisionedConcurrencyConfig
func (c *Lambda) PutProvisionedConcurrencyConfigRequest(input *PutProvisionedConcurrencyConfigInput) (req *request.Request, output *PutProvisionedConcurrencyConfigOutput) {
	op := &request.Operation{
		Name:       opPutProvisionedConcurrencyConfig,
		HTTPMethod: "PUT",
		HTTPPath:   "/2019-09-30/functions/{FunctionName}/provisioned-concurrency",
	}

	if input == nil {
		input = &PutProvisionedConcurrencyConfigInput{}
	}

	output = &PutProvisionedConcurrencyConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// PutProvisionedConcurrencyConfig API operation for AWS Lambda.
//
// Adds a provisioned concurrency configuration to a function's alias or version.
//
// 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 Lambda's
// API operation PutProvisionedConcurrencyConfig for usage and error information.
//
// Returned Error Types:
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PutProvisionedConcurrencyConfig
func (c *Lambda) PutProvisionedConcurrencyConfig(input *PutProvisionedConcurrencyConfigInput) (*PutProvisionedConcurrencyConfigOutput, error) {
	req, out := c.PutProvisionedConcurrencyConfigRequest(input)
	return out, req.Send()
}

// PutProvisionedConcurrencyConfigWithContext is the same as PutProvisionedConcurrencyConfig with the addition of
// the ability to pass a context and additional request options.
//
// See PutProvisionedConcurrencyConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) PutProvisionedConcurrencyConfigWithContext(ctx aws.Context, input *PutProvisionedConcurrencyConfigInput, opts ...request.Option) (*PutProvisionedConcurrencyConfigOutput, error) {
	req, out := c.PutProvisionedConcurrencyConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opPutRuntimeManagementConfig = "PutRuntimeManagementConfig"

// PutRuntimeManagementConfigRequest generates a "aws/request.Request" representing the
// client's request for the PutRuntimeManagementConfig 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 PutRuntimeManagementConfig for more information on using the PutRuntimeManagementConfig
// 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 PutRuntimeManagementConfigRequest method.
//	req, resp := client.PutRuntimeManagementConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PutRuntimeManagementConfig
func (c *Lambda) PutRuntimeManagementConfigRequest(input *PutRuntimeManagementConfigInput) (req *request.Request, output *PutRuntimeManagementConfigOutput) {
	op := &request.Operation{
		Name:       opPutRuntimeManagementConfig,
		HTTPMethod: "PUT",
		HTTPPath:   "/2021-07-20/functions/{FunctionName}/runtime-management-config",
	}

	if input == nil {
		input = &PutRuntimeManagementConfigInput{}
	}

	output = &PutRuntimeManagementConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// PutRuntimeManagementConfig API operation for AWS Lambda.
//
// Sets the runtime management configuration for a function's version. For more
// information, see Runtime updates (https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.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 Lambda's
// API operation PutRuntimeManagementConfig for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PutRuntimeManagementConfig
func (c *Lambda) PutRuntimeManagementConfig(input *PutRuntimeManagementConfigInput) (*PutRuntimeManagementConfigOutput, error) {
	req, out := c.PutRuntimeManagementConfigRequest(input)
	return out, req.Send()
}

// PutRuntimeManagementConfigWithContext is the same as PutRuntimeManagementConfig with the addition of
// the ability to pass a context and additional request options.
//
// See PutRuntimeManagementConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) PutRuntimeManagementConfigWithContext(ctx aws.Context, input *PutRuntimeManagementConfigInput, opts ...request.Option) (*PutRuntimeManagementConfigOutput, error) {
	req, out := c.PutRuntimeManagementConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opRemoveLayerVersionPermission = "RemoveLayerVersionPermission"

// RemoveLayerVersionPermissionRequest generates a "aws/request.Request" representing the
// client's request for the RemoveLayerVersionPermission 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 RemoveLayerVersionPermission for more information on using the RemoveLayerVersionPermission
// 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 RemoveLayerVersionPermissionRequest method.
//	req, resp := client.RemoveLayerVersionPermissionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/RemoveLayerVersionPermission
func (c *Lambda) RemoveLayerVersionPermissionRequest(input *RemoveLayerVersionPermissionInput) (req *request.Request, output *RemoveLayerVersionPermissionOutput) {
	op := &request.Operation{
		Name:       opRemoveLayerVersionPermission,
		HTTPMethod: "DELETE",
		HTTPPath:   "/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy/{StatementId}",
	}

	if input == nil {
		input = &RemoveLayerVersionPermissionInput{}
	}

	output = &RemoveLayerVersionPermissionOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// RemoveLayerVersionPermission API operation for AWS Lambda.
//
// Removes a statement from the permissions policy for a version of an Lambda
// layer (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html).
// For more information, see AddLayerVersionPermission.
//
// 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 Lambda's
// API operation RemoveLayerVersionPermission for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - PreconditionFailedException
//     The RevisionId provided does not match the latest RevisionId for the Lambda
//     function or alias. Call the GetFunction or the GetAlias API operation to
//     retrieve the latest RevisionId for your resource.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/RemoveLayerVersionPermission
func (c *Lambda) RemoveLayerVersionPermission(input *RemoveLayerVersionPermissionInput) (*RemoveLayerVersionPermissionOutput, error) {
	req, out := c.RemoveLayerVersionPermissionRequest(input)
	return out, req.Send()
}

// RemoveLayerVersionPermissionWithContext is the same as RemoveLayerVersionPermission with the addition of
// the ability to pass a context and additional request options.
//
// See RemoveLayerVersionPermission for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) RemoveLayerVersionPermissionWithContext(ctx aws.Context, input *RemoveLayerVersionPermissionInput, opts ...request.Option) (*RemoveLayerVersionPermissionOutput, error) {
	req, out := c.RemoveLayerVersionPermissionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opRemovePermission = "RemovePermission"

// RemovePermissionRequest generates a "aws/request.Request" representing the
// client's request for the RemovePermission 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 RemovePermission for more information on using the RemovePermission
// 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 RemovePermissionRequest method.
//	req, resp := client.RemovePermissionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/RemovePermission
func (c *Lambda) RemovePermissionRequest(input *RemovePermissionInput) (req *request.Request, output *RemovePermissionOutput) {
	op := &request.Operation{
		Name:       opRemovePermission,
		HTTPMethod: "DELETE",
		HTTPPath:   "/2015-03-31/functions/{FunctionName}/policy/{StatementId}",
	}

	if input == nil {
		input = &RemovePermissionInput{}
	}

	output = &RemovePermissionOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// RemovePermission API operation for AWS Lambda.
//
// Revokes function-use permission from an Amazon Web Service or another Amazon
// Web Services account. You can get the ID of the statement from the output
// of GetPolicy.
//
// 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 Lambda's
// API operation RemovePermission for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - PreconditionFailedException
//     The RevisionId provided does not match the latest RevisionId for the Lambda
//     function or alias. Call the GetFunction or the GetAlias API operation to
//     retrieve the latest RevisionId for your resource.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/RemovePermission
func (c *Lambda) RemovePermission(input *RemovePermissionInput) (*RemovePermissionOutput, error) {
	req, out := c.RemovePermissionRequest(input)
	return out, req.Send()
}

// RemovePermissionWithContext is the same as RemovePermission with the addition of
// the ability to pass a context and additional request options.
//
// See RemovePermission for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) RemovePermissionWithContext(ctx aws.Context, input *RemovePermissionInput, opts ...request.Option) (*RemovePermissionOutput, error) {
	req, out := c.RemovePermissionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opTagResource = "TagResource"

// TagResourceRequest generates a "aws/request.Request" representing the
// client's request for the TagResource 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 TagResource for more information on using the TagResource
// 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 TagResourceRequest method.
//	req, resp := client.TagResourceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/TagResource
func (c *Lambda) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
	op := &request.Operation{
		Name:       opTagResource,
		HTTPMethod: "POST",
		HTTPPath:   "/2017-03-31/tags/{ARN}",
	}

	if input == nil {
		input = &TagResourceInput{}
	}

	output = &TagResourceOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// TagResource API operation for AWS Lambda.
//
// Adds tags (https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to
// a function.
//
// 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 Lambda's
// API operation TagResource for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/TagResource
func (c *Lambda) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
	req, out := c.TagResourceRequest(input)
	return out, req.Send()
}

// TagResourceWithContext is the same as TagResource with the addition of
// the ability to pass a context and additional request options.
//
// See TagResource for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
	req, out := c.TagResourceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUntagResource = "UntagResource"

// UntagResourceRequest generates a "aws/request.Request" representing the
// client's request for the UntagResource 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 UntagResource for more information on using the UntagResource
// 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 UntagResourceRequest method.
//	req, resp := client.UntagResourceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UntagResource
func (c *Lambda) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
	op := &request.Operation{
		Name:       opUntagResource,
		HTTPMethod: "DELETE",
		HTTPPath:   "/2017-03-31/tags/{ARN}",
	}

	if input == nil {
		input = &UntagResourceInput{}
	}

	output = &UntagResourceOutput{}
	req = c.newRequest(op, input, output)
	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
	return
}

// UntagResource API operation for AWS Lambda.
//
// Removes tags (https://docs.aws.amazon.com/lambda/latest/dg/tagging.html)
// from a function.
//
// 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 Lambda's
// API operation UntagResource for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UntagResource
func (c *Lambda) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
	req, out := c.UntagResourceRequest(input)
	return out, req.Send()
}

// UntagResourceWithContext is the same as UntagResource with the addition of
// the ability to pass a context and additional request options.
//
// See UntagResource for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
	req, out := c.UntagResourceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateAlias = "UpdateAlias"

// UpdateAliasRequest generates a "aws/request.Request" representing the
// client's request for the UpdateAlias 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 UpdateAlias for more information on using the UpdateAlias
// 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 UpdateAliasRequest method.
//	req, resp := client.UpdateAliasRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateAlias
func (c *Lambda) UpdateAliasRequest(input *UpdateAliasInput) (req *request.Request, output *AliasConfiguration) {
	op := &request.Operation{
		Name:       opUpdateAlias,
		HTTPMethod: "PUT",
		HTTPPath:   "/2015-03-31/functions/{FunctionName}/aliases/{Name}",
	}

	if input == nil {
		input = &UpdateAliasInput{}
	}

	output = &AliasConfiguration{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateAlias API operation for AWS Lambda.
//
// Updates the configuration of a Lambda function alias (https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.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 Lambda's
// API operation UpdateAlias for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - PreconditionFailedException
//     The RevisionId provided does not match the latest RevisionId for the Lambda
//     function or alias. Call the GetFunction or the GetAlias API operation to
//     retrieve the latest RevisionId for your resource.
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateAlias
func (c *Lambda) UpdateAlias(input *UpdateAliasInput) (*AliasConfiguration, error) {
	req, out := c.UpdateAliasRequest(input)
	return out, req.Send()
}

// UpdateAliasWithContext is the same as UpdateAlias with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateAlias for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) UpdateAliasWithContext(ctx aws.Context, input *UpdateAliasInput, opts ...request.Option) (*AliasConfiguration, error) {
	req, out := c.UpdateAliasRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateCodeSigningConfig = "UpdateCodeSigningConfig"

// UpdateCodeSigningConfigRequest generates a "aws/request.Request" representing the
// client's request for the UpdateCodeSigningConfig 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 UpdateCodeSigningConfig for more information on using the UpdateCodeSigningConfig
// 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 UpdateCodeSigningConfigRequest method.
//	req, resp := client.UpdateCodeSigningConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateCodeSigningConfig
func (c *Lambda) UpdateCodeSigningConfigRequest(input *UpdateCodeSigningConfigInput) (req *request.Request, output *UpdateCodeSigningConfigOutput) {
	op := &request.Operation{
		Name:       opUpdateCodeSigningConfig,
		HTTPMethod: "PUT",
		HTTPPath:   "/2020-04-22/code-signing-configs/{CodeSigningConfigArn}",
	}

	if input == nil {
		input = &UpdateCodeSigningConfigInput{}
	}

	output = &UpdateCodeSigningConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateCodeSigningConfig API operation for AWS Lambda.
//
// Update the code signing configuration. Changes to the code signing configuration
// take effect the next time a user tries to deploy a code package to the function.
//
// 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 Lambda's
// API operation UpdateCodeSigningConfig for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateCodeSigningConfig
func (c *Lambda) UpdateCodeSigningConfig(input *UpdateCodeSigningConfigInput) (*UpdateCodeSigningConfigOutput, error) {
	req, out := c.UpdateCodeSigningConfigRequest(input)
	return out, req.Send()
}

// UpdateCodeSigningConfigWithContext is the same as UpdateCodeSigningConfig with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateCodeSigningConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) UpdateCodeSigningConfigWithContext(ctx aws.Context, input *UpdateCodeSigningConfigInput, opts ...request.Option) (*UpdateCodeSigningConfigOutput, error) {
	req, out := c.UpdateCodeSigningConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateEventSourceMapping = "UpdateEventSourceMapping"

// UpdateEventSourceMappingRequest generates a "aws/request.Request" representing the
// client's request for the UpdateEventSourceMapping 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 UpdateEventSourceMapping for more information on using the UpdateEventSourceMapping
// 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 UpdateEventSourceMappingRequest method.
//	req, resp := client.UpdateEventSourceMappingRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateEventSourceMapping
func (c *Lambda) UpdateEventSourceMappingRequest(input *UpdateEventSourceMappingInput) (req *request.Request, output *EventSourceMappingConfiguration) {
	op := &request.Operation{
		Name:       opUpdateEventSourceMapping,
		HTTPMethod: "PUT",
		HTTPPath:   "/2015-03-31/event-source-mappings/{UUID}",
	}

	if input == nil {
		input = &UpdateEventSourceMappingInput{}
	}

	output = &EventSourceMappingConfiguration{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateEventSourceMapping API operation for AWS Lambda.
//
// Updates an event source mapping. You can change the function that Lambda
// invokes, or pause invocation and resume later from the same location.
//
// For details about how to configure different event sources, see the following
// topics.
//
//   - Amazon DynamoDB Streams (https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-dynamodb-eventsourcemapping)
//
//   - Amazon Kinesis (https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-eventsourcemapping)
//
//   - Amazon SQS (https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-eventsource)
//
//   - Amazon MQ and RabbitMQ (https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-eventsourcemapping)
//
//   - Amazon MSK (https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html)
//
//   - Apache Kafka (https://docs.aws.amazon.com/lambda/latest/dg/kafka-smaa.html)
//
//   - Amazon DocumentDB (https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html)
//
// The following error handling options are available only for stream sources
// (DynamoDB and Kinesis):
//
//   - BisectBatchOnFunctionError – If the function returns an error, split
//     the batch in two and retry.
//
//   - DestinationConfig – Send discarded records to an Amazon SQS queue
//     or Amazon SNS topic.
//
//   - MaximumRecordAgeInSeconds – Discard records older than the specified
//     age. The default value is infinite (-1). When set to infinite (-1), failed
//     records are retried until the record expires
//
//   - MaximumRetryAttempts – Discard records after the specified number
//     of retries. The default value is infinite (-1). When set to infinite (-1),
//     failed records are retried until the record expires.
//
//   - ParallelizationFactor – Process multiple batches from each shard concurrently.
//
// For information about which configuration parameters apply to each event
// source, see the following topics.
//
//   - Amazon DynamoDB Streams (https://docs.aws.amazon.com/lambda/latest/dg/with-ddb.html#services-ddb-params)
//
//   - Amazon Kinesis (https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html#services-kinesis-params)
//
//   - Amazon SQS (https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#services-sqs-params)
//
//   - Amazon MQ and RabbitMQ (https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html#services-mq-params)
//
//   - Amazon MSK (https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-parms)
//
//   - Apache Kafka (https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-kafka-parms)
//
//   - Amazon DocumentDB (https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html#docdb-configuration)
//
// 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 Lambda's
// API operation UpdateEventSourceMapping for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
//   - ResourceInUseException
//     The operation conflicts with the resource's availability. For example, you
//     tried to update an event source mapping in the CREATING state, or you tried
//     to delete an event source mapping currently UPDATING.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateEventSourceMapping
func (c *Lambda) UpdateEventSourceMapping(input *UpdateEventSourceMappingInput) (*EventSourceMappingConfiguration, error) {
	req, out := c.UpdateEventSourceMappingRequest(input)
	return out, req.Send()
}

// UpdateEventSourceMappingWithContext is the same as UpdateEventSourceMapping with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateEventSourceMapping for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) UpdateEventSourceMappingWithContext(ctx aws.Context, input *UpdateEventSourceMappingInput, opts ...request.Option) (*EventSourceMappingConfiguration, error) {
	req, out := c.UpdateEventSourceMappingRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateFunctionCode = "UpdateFunctionCode"

// UpdateFunctionCodeRequest generates a "aws/request.Request" representing the
// client's request for the UpdateFunctionCode 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 UpdateFunctionCode for more information on using the UpdateFunctionCode
// 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 UpdateFunctionCodeRequest method.
//	req, resp := client.UpdateFunctionCodeRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateFunctionCode
func (c *Lambda) UpdateFunctionCodeRequest(input *UpdateFunctionCodeInput) (req *request.Request, output *FunctionConfiguration) {
	op := &request.Operation{
		Name:       opUpdateFunctionCode,
		HTTPMethod: "PUT",
		HTTPPath:   "/2015-03-31/functions/{FunctionName}/code",
	}

	if input == nil {
		input = &UpdateFunctionCodeInput{}
	}

	output = &FunctionConfiguration{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateFunctionCode API operation for AWS Lambda.
//
// Updates a Lambda function's code. If code signing is enabled for the function,
// the code package must be signed by a trusted publisher. For more information,
// see Configuring code signing for Lambda (https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html).
//
// If the function's package type is Image, then you must specify the code package
// in ImageUri as the URI of a container image (https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html)
// in the Amazon ECR registry.
//
// If the function's package type is Zip, then you must specify the deployment
// package as a .zip file archive (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-package.html#gettingstarted-package-zip).
// Enter the Amazon S3 bucket and key of the code .zip file location. You can
// also provide the function code inline using the ZipFile field.
//
// The code in the deployment package must be compatible with the target instruction
// set architecture of the function (x86-64 or arm64).
//
// The function's code is locked when you publish a version. You can't modify
// the code of a published version, only the unpublished version.
//
// For a function defined as a container image, Lambda resolves the image tag
// to an image digest. In Amazon ECR, if you update the image tag to a new image,
// Lambda does not automatically update the function.
//
// 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 Lambda's
// API operation UpdateFunctionCode for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - CodeStorageExceededException
//     Your Amazon Web Services account has exceeded its maximum total code size.
//     For more information, see Lambda quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).
//
//   - PreconditionFailedException
//     The RevisionId provided does not match the latest RevisionId for the Lambda
//     function or alias. Call the GetFunction or the GetAlias API operation to
//     retrieve the latest RevisionId for your resource.
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
//   - CodeVerificationFailedException
//     The code signature failed one or more of the validation checks for signature
//     mismatch or expiry, and the code signing policy is set to ENFORCE. Lambda
//     blocks the deployment.
//
//   - InvalidCodeSignatureException
//     The code signature failed the integrity check. If the integrity check fails,
//     then Lambda blocks deployment, even if the code signing policy is set to
//     WARN.
//
//   - CodeSigningConfigNotFoundException
//     The specified code signing configuration does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateFunctionCode
func (c *Lambda) UpdateFunctionCode(input *UpdateFunctionCodeInput) (*FunctionConfiguration, error) {
	req, out := c.UpdateFunctionCodeRequest(input)
	return out, req.Send()
}

// UpdateFunctionCodeWithContext is the same as UpdateFunctionCode with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateFunctionCode for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) UpdateFunctionCodeWithContext(ctx aws.Context, input *UpdateFunctionCodeInput, opts ...request.Option) (*FunctionConfiguration, error) {
	req, out := c.UpdateFunctionCodeRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateFunctionConfiguration = "UpdateFunctionConfiguration"

// UpdateFunctionConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the UpdateFunctionConfiguration 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 UpdateFunctionConfiguration for more information on using the UpdateFunctionConfiguration
// 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 UpdateFunctionConfigurationRequest method.
//	req, resp := client.UpdateFunctionConfigurationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateFunctionConfiguration
func (c *Lambda) UpdateFunctionConfigurationRequest(input *UpdateFunctionConfigurationInput) (req *request.Request, output *FunctionConfiguration) {
	op := &request.Operation{
		Name:       opUpdateFunctionConfiguration,
		HTTPMethod: "PUT",
		HTTPPath:   "/2015-03-31/functions/{FunctionName}/configuration",
	}

	if input == nil {
		input = &UpdateFunctionConfigurationInput{}
	}

	output = &FunctionConfiguration{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateFunctionConfiguration API operation for AWS Lambda.
//
// Modify the version-specific settings of a Lambda function.
//
// When you update a function, Lambda provisions an instance of the function
// and its supporting resources. If your function connects to a VPC, this process
// can take a minute. During this time, you can't modify the function, but you
// can still invoke it. The LastUpdateStatus, LastUpdateStatusReason, and LastUpdateStatusReasonCode
// fields in the response from GetFunctionConfiguration indicate when the update
// is complete and the function is processing events with the new configuration.
// For more information, see Lambda function states (https://docs.aws.amazon.com/lambda/latest/dg/functions-states.html).
//
// These settings can vary between versions of a function and are locked when
// you publish a version. You can't modify the configuration of a published
// version, only the unpublished version.
//
// To configure function concurrency, use PutFunctionConcurrency. To grant invoke
// permissions to an Amazon Web Services account or Amazon Web Service, use
// AddPermission.
//
// 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 Lambda's
// API operation UpdateFunctionConfiguration for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
//   - PreconditionFailedException
//     The RevisionId provided does not match the latest RevisionId for the Lambda
//     function or alias. Call the GetFunction or the GetAlias API operation to
//     retrieve the latest RevisionId for your resource.
//
//   - CodeVerificationFailedException
//     The code signature failed one or more of the validation checks for signature
//     mismatch or expiry, and the code signing policy is set to ENFORCE. Lambda
//     blocks the deployment.
//
//   - InvalidCodeSignatureException
//     The code signature failed the integrity check. If the integrity check fails,
//     then Lambda blocks deployment, even if the code signing policy is set to
//     WARN.
//
//   - CodeSigningConfigNotFoundException
//     The specified code signing configuration does not exist.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateFunctionConfiguration
func (c *Lambda) UpdateFunctionConfiguration(input *UpdateFunctionConfigurationInput) (*FunctionConfiguration, error) {
	req, out := c.UpdateFunctionConfigurationRequest(input)
	return out, req.Send()
}

// UpdateFunctionConfigurationWithContext is the same as UpdateFunctionConfiguration with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateFunctionConfiguration for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) UpdateFunctionConfigurationWithContext(ctx aws.Context, input *UpdateFunctionConfigurationInput, opts ...request.Option) (*FunctionConfiguration, error) {
	req, out := c.UpdateFunctionConfigurationRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateFunctionEventInvokeConfig = "UpdateFunctionEventInvokeConfig"

// UpdateFunctionEventInvokeConfigRequest generates a "aws/request.Request" representing the
// client's request for the UpdateFunctionEventInvokeConfig 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 UpdateFunctionEventInvokeConfig for more information on using the UpdateFunctionEventInvokeConfig
// 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 UpdateFunctionEventInvokeConfigRequest method.
//	req, resp := client.UpdateFunctionEventInvokeConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateFunctionEventInvokeConfig
func (c *Lambda) UpdateFunctionEventInvokeConfigRequest(input *UpdateFunctionEventInvokeConfigInput) (req *request.Request, output *UpdateFunctionEventInvokeConfigOutput) {
	op := &request.Operation{
		Name:       opUpdateFunctionEventInvokeConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/2019-09-25/functions/{FunctionName}/event-invoke-config",
	}

	if input == nil {
		input = &UpdateFunctionEventInvokeConfigInput{}
	}

	output = &UpdateFunctionEventInvokeConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateFunctionEventInvokeConfig API operation for AWS Lambda.
//
// Updates the configuration for asynchronous invocation for a function, version,
// or alias.
//
// To configure options for asynchronous invocation, use PutFunctionEventInvokeConfig.
//
// 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 Lambda's
// API operation UpdateFunctionEventInvokeConfig for usage and error information.
//
// Returned Error Types:
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateFunctionEventInvokeConfig
func (c *Lambda) UpdateFunctionEventInvokeConfig(input *UpdateFunctionEventInvokeConfigInput) (*UpdateFunctionEventInvokeConfigOutput, error) {
	req, out := c.UpdateFunctionEventInvokeConfigRequest(input)
	return out, req.Send()
}

// UpdateFunctionEventInvokeConfigWithContext is the same as UpdateFunctionEventInvokeConfig with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateFunctionEventInvokeConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) UpdateFunctionEventInvokeConfigWithContext(ctx aws.Context, input *UpdateFunctionEventInvokeConfigInput, opts ...request.Option) (*UpdateFunctionEventInvokeConfigOutput, error) {
	req, out := c.UpdateFunctionEventInvokeConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateFunctionUrlConfig = "UpdateFunctionUrlConfig"

// UpdateFunctionUrlConfigRequest generates a "aws/request.Request" representing the
// client's request for the UpdateFunctionUrlConfig 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 UpdateFunctionUrlConfig for more information on using the UpdateFunctionUrlConfig
// 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 UpdateFunctionUrlConfigRequest method.
//	req, resp := client.UpdateFunctionUrlConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateFunctionUrlConfig
func (c *Lambda) UpdateFunctionUrlConfigRequest(input *UpdateFunctionUrlConfigInput) (req *request.Request, output *UpdateFunctionUrlConfigOutput) {
	op := &request.Operation{
		Name:       opUpdateFunctionUrlConfig,
		HTTPMethod: "PUT",
		HTTPPath:   "/2021-10-31/functions/{FunctionName}/url",
	}

	if input == nil {
		input = &UpdateFunctionUrlConfigInput{}
	}

	output = &UpdateFunctionUrlConfigOutput{}
	req = c.newRequest(op, input, output)
	return
}

// UpdateFunctionUrlConfig API operation for AWS Lambda.
//
// Updates the configuration for a Lambda function URL.
//
// 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 Lambda's
// API operation UpdateFunctionUrlConfig for usage and error information.
//
// Returned Error Types:
//
//   - ResourceConflictException
//     The resource already exists, or another operation is in progress.
//
//   - ResourceNotFoundException
//     The resource specified in the request does not exist.
//
//   - InvalidParameterValueException
//     One of the parameters in the request is not valid.
//
//   - ServiceException
//     The Lambda service encountered an internal error.
//
//   - TooManyRequestsException
//     The request throughput limit was exceeded. For more information, see Lambda
//     quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateFunctionUrlConfig
func (c *Lambda) UpdateFunctionUrlConfig(input *UpdateFunctionUrlConfigInput) (*UpdateFunctionUrlConfigOutput, error) {
	req, out := c.UpdateFunctionUrlConfigRequest(input)
	return out, req.Send()
}

// UpdateFunctionUrlConfigWithContext is the same as UpdateFunctionUrlConfig with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateFunctionUrlConfig for details on how to use this API operation.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *Lambda) UpdateFunctionUrlConfigWithContext(ctx aws.Context, input *UpdateFunctionUrlConfigInput, opts ...request.Option) (*UpdateFunctionUrlConfigOutput, error) {
	req, out := c.UpdateFunctionUrlConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// Limits that are related to concurrency and storage. All file and storage
// sizes are in bytes.
type AccountLimit struct {
	_ struct{} `type:"structure"`

	// The maximum size of a function's deployment package and layers when they're
	// extracted.
	CodeSizeUnzipped *int64 `type:"long"`

	// The maximum size of a deployment package when it's uploaded directly to Lambda.
	// Use Amazon S3 for larger files.
	CodeSizeZipped *int64 `type:"long"`

	// The maximum number of simultaneous function executions.
	ConcurrentExecutions *int64 `type:"integer"`

	// The amount of storage space that you can use for all deployment packages
	// and layer archives.
	TotalCodeSize *int64 `type:"long"`

	// The maximum number of simultaneous function executions, minus the capacity
	// that's reserved for individual functions with PutFunctionConcurrency.
	UnreservedConcurrentExecutions *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AccountLimit) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AccountLimit) GoString() string {
	return s.String()
}

// SetCodeSizeUnzipped sets the CodeSizeUnzipped field's value.
func (s *AccountLimit) SetCodeSizeUnzipped(v int64) *AccountLimit {
	s.CodeSizeUnzipped = &v
	return s
}

// SetCodeSizeZipped sets the CodeSizeZipped field's value.
func (s *AccountLimit) SetCodeSizeZipped(v int64) *AccountLimit {
	s.CodeSizeZipped = &v
	return s
}

// SetConcurrentExecutions sets the ConcurrentExecutions field's value.
func (s *AccountLimit) SetConcurrentExecutions(v int64) *AccountLimit {
	s.ConcurrentExecutions = &v
	return s
}

// SetTotalCodeSize sets the TotalCodeSize field's value.
func (s *AccountLimit) SetTotalCodeSize(v int64) *AccountLimit {
	s.TotalCodeSize = &v
	return s
}

// SetUnreservedConcurrentExecutions sets the UnreservedConcurrentExecutions field's value.
func (s *AccountLimit) SetUnreservedConcurrentExecutions(v int64) *AccountLimit {
	s.UnreservedConcurrentExecutions = &v
	return s
}

// The number of functions and amount of storage in use.
type AccountUsage struct {
	_ struct{} `type:"structure"`

	// The number of Lambda functions.
	FunctionCount *int64 `type:"long"`

	// The amount of storage space, in bytes, that's being used by deployment packages
	// and layer archives.
	TotalCodeSize *int64 `type:"long"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AccountUsage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AccountUsage) GoString() string {
	return s.String()
}

// SetFunctionCount sets the FunctionCount field's value.
func (s *AccountUsage) SetFunctionCount(v int64) *AccountUsage {
	s.FunctionCount = &v
	return s
}

// SetTotalCodeSize sets the TotalCodeSize field's value.
func (s *AccountUsage) SetTotalCodeSize(v int64) *AccountUsage {
	s.TotalCodeSize = &v
	return s
}

type AddLayerVersionPermissionInput struct {
	_ struct{} `type:"structure"`

	// The API action that grants access to the layer. For example, lambda:GetLayerVersion.
	//
	// Action is a required field
	Action *string `type:"string" required:"true"`

	// The name or Amazon Resource Name (ARN) of the layer.
	//
	// LayerName is a required field
	LayerName *string `location:"uri" locationName:"LayerName" min:"1" type:"string" required:"true"`

	// With the principal set to *, grant permission to all accounts in the specified
	// organization.
	OrganizationId *string `type:"string"`

	// An account ID, or * to grant layer usage permission to all accounts in an
	// organization, or all Amazon Web Services accounts (if organizationId is not
	// specified). For the last case, make sure that you really do want all Amazon
	// Web Services accounts to have usage permission to this layer.
	//
	// Principal is a required field
	Principal *string `type:"string" required:"true"`

	// Only update the policy if the revision ID matches the ID specified. Use this
	// option to avoid modifying a policy that has changed since you last read it.
	RevisionId *string `location:"querystring" locationName:"RevisionId" type:"string"`

	// An identifier that distinguishes the policy from others on the same layer
	// version.
	//
	// StatementId is a required field
	StatementId *string `min:"1" type:"string" required:"true"`

	// The version number.
	//
	// VersionNumber is a required field
	VersionNumber *int64 `location:"uri" locationName:"VersionNumber" type:"long" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AddLayerVersionPermissionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AddLayerVersionPermissionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AddLayerVersionPermissionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AddLayerVersionPermissionInput"}
	if s.Action == nil {
		invalidParams.Add(request.NewErrParamRequired("Action"))
	}
	if s.LayerName == nil {
		invalidParams.Add(request.NewErrParamRequired("LayerName"))
	}
	if s.LayerName != nil && len(*s.LayerName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("LayerName", 1))
	}
	if s.Principal == nil {
		invalidParams.Add(request.NewErrParamRequired("Principal"))
	}
	if s.StatementId == nil {
		invalidParams.Add(request.NewErrParamRequired("StatementId"))
	}
	if s.StatementId != nil && len(*s.StatementId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("StatementId", 1))
	}
	if s.VersionNumber == nil {
		invalidParams.Add(request.NewErrParamRequired("VersionNumber"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAction sets the Action field's value.
func (s *AddLayerVersionPermissionInput) SetAction(v string) *AddLayerVersionPermissionInput {
	s.Action = &v
	return s
}

// SetLayerName sets the LayerName field's value.
func (s *AddLayerVersionPermissionInput) SetLayerName(v string) *AddLayerVersionPermissionInput {
	s.LayerName = &v
	return s
}

// SetOrganizationId sets the OrganizationId field's value.
func (s *AddLayerVersionPermissionInput) SetOrganizationId(v string) *AddLayerVersionPermissionInput {
	s.OrganizationId = &v
	return s
}

// SetPrincipal sets the Principal field's value.
func (s *AddLayerVersionPermissionInput) SetPrincipal(v string) *AddLayerVersionPermissionInput {
	s.Principal = &v
	return s
}

// SetRevisionId sets the RevisionId field's value.
func (s *AddLayerVersionPermissionInput) SetRevisionId(v string) *AddLayerVersionPermissionInput {
	s.RevisionId = &v
	return s
}

// SetStatementId sets the StatementId field's value.
func (s *AddLayerVersionPermissionInput) SetStatementId(v string) *AddLayerVersionPermissionInput {
	s.StatementId = &v
	return s
}

// SetVersionNumber sets the VersionNumber field's value.
func (s *AddLayerVersionPermissionInput) SetVersionNumber(v int64) *AddLayerVersionPermissionInput {
	s.VersionNumber = &v
	return s
}

type AddLayerVersionPermissionOutput struct {
	_ struct{} `type:"structure"`

	// A unique identifier for the current revision of the policy.
	RevisionId *string `type:"string"`

	// The permission statement.
	Statement *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AddLayerVersionPermissionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AddLayerVersionPermissionOutput) GoString() string {
	return s.String()
}

// SetRevisionId sets the RevisionId field's value.
func (s *AddLayerVersionPermissionOutput) SetRevisionId(v string) *AddLayerVersionPermissionOutput {
	s.RevisionId = &v
	return s
}

// SetStatement sets the Statement field's value.
func (s *AddLayerVersionPermissionOutput) SetStatement(v string) *AddLayerVersionPermissionOutput {
	s.Statement = &v
	return s
}

type AddPermissionInput struct {
	_ struct{} `type:"structure"`

	// The action that the principal can use on the function. For example, lambda:InvokeFunction
	// or lambda:GetFunction.
	//
	// Action is a required field
	Action *string `type:"string" required:"true"`

	// For Alexa Smart Home functions, a token that the invoker must supply.
	EventSourceToken *string `type:"string"`

	// The name or ARN of the Lambda function, version, or alias.
	//
	// Name formats
	//
	//    * Function name – my-function (name-only), my-function:v1 (with alias).
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// You can append a version number or alias to any of the formats. The length
	// constraint applies only to the full ARN. If you specify only the function
	// name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// The type of authentication that your function URL uses. Set to AWS_IAM if
	// you want to restrict access to authenticated users only. Set to NONE if you
	// want to bypass IAM authentication to create a public endpoint. For more information,
	// see Security and auth model for Lambda function URLs (https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html).
	FunctionUrlAuthType *string `type:"string" enum:"FunctionUrlAuthType"`

	// The Amazon Web Service or Amazon Web Services account that invokes the function.
	// If you specify a service, use SourceArn or SourceAccount to limit who can
	// invoke the function through that service.
	//
	// Principal is a required field
	Principal *string `type:"string" required:"true"`

	// The identifier for your organization in Organizations. Use this to grant
	// permissions to all the Amazon Web Services accounts under this organization.
	PrincipalOrgID *string `min:"12" type:"string"`

	// Specify a version or alias to add permissions to a published version of the
	// function.
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"`

	// Update the policy only if the revision ID matches the ID that's specified.
	// Use this option to avoid modifying a policy that has changed since you last
	// read it.
	RevisionId *string `type:"string"`

	// For Amazon Web Service, the ID of the Amazon Web Services account that owns
	// the resource. Use this together with SourceArn to ensure that the specified
	// account owns the resource. It is possible for an Amazon S3 bucket to be deleted
	// by its owner and recreated by another account.
	SourceAccount *string `type:"string"`

	// For Amazon Web Services, the ARN of the Amazon Web Services resource that
	// invokes the function. For example, an Amazon S3 bucket or Amazon SNS topic.
	//
	// Note that Lambda configures the comparison using the StringLike operator.
	SourceArn *string `type:"string"`

	// A statement identifier that differentiates the statement from others in the
	// same policy.
	//
	// StatementId is a required field
	StatementId *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AddPermissionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AddPermissionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AddPermissionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AddPermissionInput"}
	if s.Action == nil {
		invalidParams.Add(request.NewErrParamRequired("Action"))
	}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.Principal == nil {
		invalidParams.Add(request.NewErrParamRequired("Principal"))
	}
	if s.PrincipalOrgID != nil && len(*s.PrincipalOrgID) < 12 {
		invalidParams.Add(request.NewErrParamMinLen("PrincipalOrgID", 12))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}
	if s.StatementId == nil {
		invalidParams.Add(request.NewErrParamRequired("StatementId"))
	}
	if s.StatementId != nil && len(*s.StatementId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("StatementId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAction sets the Action field's value.
func (s *AddPermissionInput) SetAction(v string) *AddPermissionInput {
	s.Action = &v
	return s
}

// SetEventSourceToken sets the EventSourceToken field's value.
func (s *AddPermissionInput) SetEventSourceToken(v string) *AddPermissionInput {
	s.EventSourceToken = &v
	return s
}

// SetFunctionName sets the FunctionName field's value.
func (s *AddPermissionInput) SetFunctionName(v string) *AddPermissionInput {
	s.FunctionName = &v
	return s
}

// SetFunctionUrlAuthType sets the FunctionUrlAuthType field's value.
func (s *AddPermissionInput) SetFunctionUrlAuthType(v string) *AddPermissionInput {
	s.FunctionUrlAuthType = &v
	return s
}

// SetPrincipal sets the Principal field's value.
func (s *AddPermissionInput) SetPrincipal(v string) *AddPermissionInput {
	s.Principal = &v
	return s
}

// SetPrincipalOrgID sets the PrincipalOrgID field's value.
func (s *AddPermissionInput) SetPrincipalOrgID(v string) *AddPermissionInput {
	s.PrincipalOrgID = &v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *AddPermissionInput) SetQualifier(v string) *AddPermissionInput {
	s.Qualifier = &v
	return s
}

// SetRevisionId sets the RevisionId field's value.
func (s *AddPermissionInput) SetRevisionId(v string) *AddPermissionInput {
	s.RevisionId = &v
	return s
}

// SetSourceAccount sets the SourceAccount field's value.
func (s *AddPermissionInput) SetSourceAccount(v string) *AddPermissionInput {
	s.SourceAccount = &v
	return s
}

// SetSourceArn sets the SourceArn field's value.
func (s *AddPermissionInput) SetSourceArn(v string) *AddPermissionInput {
	s.SourceArn = &v
	return s
}

// SetStatementId sets the StatementId field's value.
func (s *AddPermissionInput) SetStatementId(v string) *AddPermissionInput {
	s.StatementId = &v
	return s
}

type AddPermissionOutput struct {
	_ struct{} `type:"structure"`

	// The permission statement that's added to the function policy.
	Statement *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AddPermissionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AddPermissionOutput) GoString() string {
	return s.String()
}

// SetStatement sets the Statement field's value.
func (s *AddPermissionOutput) SetStatement(v string) *AddPermissionOutput {
	s.Statement = &v
	return s
}

// Provides configuration information about a Lambda function alias (https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html).
type AliasConfiguration struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the alias.
	AliasArn *string `type:"string"`

	// A description of the alias.
	Description *string `type:"string"`

	// The function version that the alias invokes.
	FunctionVersion *string `min:"1" type:"string"`

	// The name of the alias.
	Name *string `min:"1" type:"string"`

	// A unique identifier that changes when you update the alias.
	RevisionId *string `type:"string"`

	// The routing configuration (https://docs.aws.amazon.com/lambda/latest/dg/lambda-traffic-shifting-using-aliases.html)
	// of the alias.
	RoutingConfig *AliasRoutingConfiguration `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AliasConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AliasConfiguration) GoString() string {
	return s.String()
}

// SetAliasArn sets the AliasArn field's value.
func (s *AliasConfiguration) SetAliasArn(v string) *AliasConfiguration {
	s.AliasArn = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *AliasConfiguration) SetDescription(v string) *AliasConfiguration {
	s.Description = &v
	return s
}

// SetFunctionVersion sets the FunctionVersion field's value.
func (s *AliasConfiguration) SetFunctionVersion(v string) *AliasConfiguration {
	s.FunctionVersion = &v
	return s
}

// SetName sets the Name field's value.
func (s *AliasConfiguration) SetName(v string) *AliasConfiguration {
	s.Name = &v
	return s
}

// SetRevisionId sets the RevisionId field's value.
func (s *AliasConfiguration) SetRevisionId(v string) *AliasConfiguration {
	s.RevisionId = &v
	return s
}

// SetRoutingConfig sets the RoutingConfig field's value.
func (s *AliasConfiguration) SetRoutingConfig(v *AliasRoutingConfiguration) *AliasConfiguration {
	s.RoutingConfig = v
	return s
}

// The traffic-shifting (https://docs.aws.amazon.com/lambda/latest/dg/lambda-traffic-shifting-using-aliases.html)
// configuration of a Lambda function alias.
type AliasRoutingConfiguration struct {
	_ struct{} `type:"structure"`

	// The second version, and the percentage of traffic that's routed to it.
	AdditionalVersionWeights map[string]*float64 `type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AliasRoutingConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AliasRoutingConfiguration) GoString() string {
	return s.String()
}

// SetAdditionalVersionWeights sets the AdditionalVersionWeights field's value.
func (s *AliasRoutingConfiguration) SetAdditionalVersionWeights(v map[string]*float64) *AliasRoutingConfiguration {
	s.AdditionalVersionWeights = v
	return s
}

// List of signing profiles that can sign a code package.
type AllowedPublishers struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) for each of the signing profiles. A signing
	// profile defines a trusted user who can sign a code package.
	//
	// SigningProfileVersionArns is a required field
	SigningProfileVersionArns []*string `min:"1" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AllowedPublishers) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AllowedPublishers) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AllowedPublishers) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AllowedPublishers"}
	if s.SigningProfileVersionArns == nil {
		invalidParams.Add(request.NewErrParamRequired("SigningProfileVersionArns"))
	}
	if s.SigningProfileVersionArns != nil && len(s.SigningProfileVersionArns) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SigningProfileVersionArns", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSigningProfileVersionArns sets the SigningProfileVersionArns field's value.
func (s *AllowedPublishers) SetSigningProfileVersionArns(v []*string) *AllowedPublishers {
	s.SigningProfileVersionArns = v
	return s
}

// Specific configuration settings for an Amazon Managed Streaming for Apache
// Kafka (Amazon MSK) event source.
type AmazonManagedKafkaEventSourceConfig struct {
	_ struct{} `type:"structure"`

	// The identifier for the Kafka consumer group to join. The consumer group ID
	// must be unique among all your Kafka event sources. After creating a Kafka
	// event source mapping with the consumer group ID specified, you cannot update
	// this value. For more information, see Customizable consumer group ID (https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-consumer-group-id).
	ConsumerGroupId *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AmazonManagedKafkaEventSourceConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s AmazonManagedKafkaEventSourceConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *AmazonManagedKafkaEventSourceConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "AmazonManagedKafkaEventSourceConfig"}
	if s.ConsumerGroupId != nil && len(*s.ConsumerGroupId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ConsumerGroupId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetConsumerGroupId sets the ConsumerGroupId field's value.
func (s *AmazonManagedKafkaEventSourceConfig) SetConsumerGroupId(v string) *AmazonManagedKafkaEventSourceConfig {
	s.ConsumerGroupId = &v
	return s
}

// Details about a Code signing configuration (https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html).
type CodeSigningConfig struct {
	_ struct{} `type:"structure"`

	// List of allowed publishers.
	//
	// AllowedPublishers is a required field
	AllowedPublishers *AllowedPublishers `type:"structure" required:"true"`

	// The Amazon Resource Name (ARN) of the Code signing configuration.
	//
	// CodeSigningConfigArn is a required field
	CodeSigningConfigArn *string `type:"string" required:"true"`

	// Unique identifer for the Code signing configuration.
	//
	// CodeSigningConfigId is a required field
	CodeSigningConfigId *string `type:"string" required:"true"`

	// The code signing policy controls the validation failure action for signature
	// mismatch or expiry.
	//
	// CodeSigningPolicies is a required field
	CodeSigningPolicies *CodeSigningPolicies `type:"structure" required:"true"`

	// Code signing configuration description.
	Description *string `type:"string"`

	// The date and time that the Code signing configuration was last modified,
	// in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD).
	//
	// LastModified is a required field
	LastModified *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CodeSigningConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CodeSigningConfig) GoString() string {
	return s.String()
}

// SetAllowedPublishers sets the AllowedPublishers field's value.
func (s *CodeSigningConfig) SetAllowedPublishers(v *AllowedPublishers) *CodeSigningConfig {
	s.AllowedPublishers = v
	return s
}

// SetCodeSigningConfigArn sets the CodeSigningConfigArn field's value.
func (s *CodeSigningConfig) SetCodeSigningConfigArn(v string) *CodeSigningConfig {
	s.CodeSigningConfigArn = &v
	return s
}

// SetCodeSigningConfigId sets the CodeSigningConfigId field's value.
func (s *CodeSigningConfig) SetCodeSigningConfigId(v string) *CodeSigningConfig {
	s.CodeSigningConfigId = &v
	return s
}

// SetCodeSigningPolicies sets the CodeSigningPolicies field's value.
func (s *CodeSigningConfig) SetCodeSigningPolicies(v *CodeSigningPolicies) *CodeSigningConfig {
	s.CodeSigningPolicies = v
	return s
}

// SetDescription sets the Description field's value.
func (s *CodeSigningConfig) SetDescription(v string) *CodeSigningConfig {
	s.Description = &v
	return s
}

// SetLastModified sets the LastModified field's value.
func (s *CodeSigningConfig) SetLastModified(v string) *CodeSigningConfig {
	s.LastModified = &v
	return s
}

// The specified code signing configuration does not exist.
type CodeSigningConfigNotFoundException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CodeSigningConfigNotFoundException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CodeSigningConfigNotFoundException) GoString() string {
	return s.String()
}

func newErrorCodeSigningConfigNotFoundException(v protocol.ResponseMetadata) error {
	return &CodeSigningConfigNotFoundException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *CodeSigningConfigNotFoundException) Code() string {
	return "CodeSigningConfigNotFoundException"
}

// Message returns the exception's message.
func (s *CodeSigningConfigNotFoundException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *CodeSigningConfigNotFoundException) OrigErr() error {
	return nil
}

func (s *CodeSigningConfigNotFoundException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *CodeSigningConfigNotFoundException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *CodeSigningConfigNotFoundException) RequestID() string {
	return s.RespMetadata.RequestID
}

// Code signing configuration policies (https://docs.aws.amazon.com/lambda/latest/dg/configuration-codesigning.html#config-codesigning-policies)
// specify the validation failure action for signature mismatch or expiry.
type CodeSigningPolicies struct {
	_ struct{} `type:"structure"`

	// Code signing configuration policy for deployment validation failure. If you
	// set the policy to Enforce, Lambda blocks the deployment request if signature
	// validation checks fail. If you set the policy to Warn, Lambda allows the
	// deployment and creates a CloudWatch log.
	//
	// Default value: Warn
	UntrustedArtifactOnDeployment *string `type:"string" enum:"CodeSigningPolicy"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CodeSigningPolicies) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CodeSigningPolicies) GoString() string {
	return s.String()
}

// SetUntrustedArtifactOnDeployment sets the UntrustedArtifactOnDeployment field's value.
func (s *CodeSigningPolicies) SetUntrustedArtifactOnDeployment(v string) *CodeSigningPolicies {
	s.UntrustedArtifactOnDeployment = &v
	return s
}

// Your Amazon Web Services account has exceeded its maximum total code size.
// For more information, see Lambda quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).
type CodeStorageExceededException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`

	// The exception type.
	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CodeStorageExceededException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CodeStorageExceededException) GoString() string {
	return s.String()
}

func newErrorCodeStorageExceededException(v protocol.ResponseMetadata) error {
	return &CodeStorageExceededException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *CodeStorageExceededException) Code() string {
	return "CodeStorageExceededException"
}

// Message returns the exception's message.
func (s *CodeStorageExceededException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *CodeStorageExceededException) OrigErr() error {
	return nil
}

func (s *CodeStorageExceededException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *CodeStorageExceededException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *CodeStorageExceededException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The code signature failed one or more of the validation checks for signature
// mismatch or expiry, and the code signing policy is set to ENFORCE. Lambda
// blocks the deployment.
type CodeVerificationFailedException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CodeVerificationFailedException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CodeVerificationFailedException) GoString() string {
	return s.String()
}

func newErrorCodeVerificationFailedException(v protocol.ResponseMetadata) error {
	return &CodeVerificationFailedException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *CodeVerificationFailedException) Code() string {
	return "CodeVerificationFailedException"
}

// Message returns the exception's message.
func (s *CodeVerificationFailedException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *CodeVerificationFailedException) OrigErr() error {
	return nil
}

func (s *CodeVerificationFailedException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *CodeVerificationFailedException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *CodeVerificationFailedException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The cross-origin resource sharing (CORS) (https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
// settings for your Lambda function URL. Use CORS to grant access to your function
// URL from any origin. You can also use CORS to control access for specific
// HTTP headers and methods in requests to your function URL.
type Cors struct {
	_ struct{} `type:"structure"`

	// Whether to allow cookies or other credentials in requests to your function
	// URL. The default is false.
	AllowCredentials *bool `type:"boolean"`

	// The HTTP headers that origins can include in requests to your function URL.
	// For example: Date, Keep-Alive, X-Custom-Header.
	AllowHeaders []*string `type:"list"`

	// The HTTP methods that are allowed when calling your function URL. For example:
	// GET, POST, DELETE, or the wildcard character (*).
	AllowMethods []*string `type:"list"`

	// The origins that can access your function URL. You can list any number of
	// specific origins, separated by a comma. For example: https://www.example.com,
	// http://localhost:60905.
	//
	// Alternatively, you can grant access to all origins using the wildcard character
	// (*).
	AllowOrigins []*string `type:"list"`

	// The HTTP headers in your function response that you want to expose to origins
	// that call your function URL. For example: Date, Keep-Alive, X-Custom-Header.
	ExposeHeaders []*string `type:"list"`

	// The maximum amount of time, in seconds, that web browsers can cache results
	// of a preflight request. By default, this is set to 0, which means that the
	// browser doesn't cache results.
	MaxAge *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Cors) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Cors) GoString() string {
	return s.String()
}

// SetAllowCredentials sets the AllowCredentials field's value.
func (s *Cors) SetAllowCredentials(v bool) *Cors {
	s.AllowCredentials = &v
	return s
}

// SetAllowHeaders sets the AllowHeaders field's value.
func (s *Cors) SetAllowHeaders(v []*string) *Cors {
	s.AllowHeaders = v
	return s
}

// SetAllowMethods sets the AllowMethods field's value.
func (s *Cors) SetAllowMethods(v []*string) *Cors {
	s.AllowMethods = v
	return s
}

// SetAllowOrigins sets the AllowOrigins field's value.
func (s *Cors) SetAllowOrigins(v []*string) *Cors {
	s.AllowOrigins = v
	return s
}

// SetExposeHeaders sets the ExposeHeaders field's value.
func (s *Cors) SetExposeHeaders(v []*string) *Cors {
	s.ExposeHeaders = v
	return s
}

// SetMaxAge sets the MaxAge field's value.
func (s *Cors) SetMaxAge(v int64) *Cors {
	s.MaxAge = &v
	return s
}

type CreateAliasInput struct {
	_ struct{} `type:"structure"`

	// A description of the alias.
	Description *string `type:"string"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name - MyFunction.
	//
	//    * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction.
	//
	//    * Partial ARN - 123456789012:function:MyFunction.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// The function version that the alias invokes.
	//
	// FunctionVersion is a required field
	FunctionVersion *string `min:"1" type:"string" required:"true"`

	// The name of the alias.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// The routing configuration (https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html#configuring-alias-routing)
	// of the alias.
	RoutingConfig *AliasRoutingConfiguration `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAliasInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateAliasInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateAliasInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateAliasInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.FunctionVersion == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionVersion"))
	}
	if s.FunctionVersion != nil && len(*s.FunctionVersion) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionVersion", 1))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDescription sets the Description field's value.
func (s *CreateAliasInput) SetDescription(v string) *CreateAliasInput {
	s.Description = &v
	return s
}

// SetFunctionName sets the FunctionName field's value.
func (s *CreateAliasInput) SetFunctionName(v string) *CreateAliasInput {
	s.FunctionName = &v
	return s
}

// SetFunctionVersion sets the FunctionVersion field's value.
func (s *CreateAliasInput) SetFunctionVersion(v string) *CreateAliasInput {
	s.FunctionVersion = &v
	return s
}

// SetName sets the Name field's value.
func (s *CreateAliasInput) SetName(v string) *CreateAliasInput {
	s.Name = &v
	return s
}

// SetRoutingConfig sets the RoutingConfig field's value.
func (s *CreateAliasInput) SetRoutingConfig(v *AliasRoutingConfiguration) *CreateAliasInput {
	s.RoutingConfig = v
	return s
}

type CreateCodeSigningConfigInput struct {
	_ struct{} `type:"structure"`

	// Signing profiles for this code signing configuration.
	//
	// AllowedPublishers is a required field
	AllowedPublishers *AllowedPublishers `type:"structure" required:"true"`

	// The code signing policies define the actions to take if the validation checks
	// fail.
	CodeSigningPolicies *CodeSigningPolicies `type:"structure"`

	// Descriptive name for this code signing configuration.
	Description *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateCodeSigningConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateCodeSigningConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateCodeSigningConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateCodeSigningConfigInput"}
	if s.AllowedPublishers == nil {
		invalidParams.Add(request.NewErrParamRequired("AllowedPublishers"))
	}
	if s.AllowedPublishers != nil {
		if err := s.AllowedPublishers.Validate(); err != nil {
			invalidParams.AddNested("AllowedPublishers", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAllowedPublishers sets the AllowedPublishers field's value.
func (s *CreateCodeSigningConfigInput) SetAllowedPublishers(v *AllowedPublishers) *CreateCodeSigningConfigInput {
	s.AllowedPublishers = v
	return s
}

// SetCodeSigningPolicies sets the CodeSigningPolicies field's value.
func (s *CreateCodeSigningConfigInput) SetCodeSigningPolicies(v *CodeSigningPolicies) *CreateCodeSigningConfigInput {
	s.CodeSigningPolicies = v
	return s
}

// SetDescription sets the Description field's value.
func (s *CreateCodeSigningConfigInput) SetDescription(v string) *CreateCodeSigningConfigInput {
	s.Description = &v
	return s
}

type CreateCodeSigningConfigOutput struct {
	_ struct{} `type:"structure"`

	// The code signing configuration.
	//
	// CodeSigningConfig is a required field
	CodeSigningConfig *CodeSigningConfig `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateCodeSigningConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateCodeSigningConfigOutput) GoString() string {
	return s.String()
}

// SetCodeSigningConfig sets the CodeSigningConfig field's value.
func (s *CreateCodeSigningConfigOutput) SetCodeSigningConfig(v *CodeSigningConfig) *CreateCodeSigningConfigOutput {
	s.CodeSigningConfig = v
	return s
}

type CreateEventSourceMappingInput struct {
	_ struct{} `type:"structure"`

	// Specific configuration settings for an Amazon Managed Streaming for Apache
	// Kafka (Amazon MSK) event source.
	AmazonManagedKafkaEventSourceConfig *AmazonManagedKafkaEventSourceConfig `type:"structure"`

	// The maximum number of records in each batch that Lambda pulls from your stream
	// or queue and sends to your function. Lambda passes all of the records in
	// the batch to the function in a single call, up to the payload limit for synchronous
	// invocation (6 MB).
	//
	//    * Amazon Kinesis – Default 100. Max 10,000.
	//
	//    * Amazon DynamoDB Streams – Default 100. Max 10,000.
	//
	//    * Amazon Simple Queue Service – Default 10. For standard queues the
	//    max is 10,000. For FIFO queues the max is 10.
	//
	//    * Amazon Managed Streaming for Apache Kafka – Default 100. Max 10,000.
	//
	//    * Self-managed Apache Kafka – Default 100. Max 10,000.
	//
	//    * Amazon MQ (ActiveMQ and RabbitMQ) – Default 100. Max 10,000.
	//
	//    * DocumentDB – Default 100. Max 10,000.
	BatchSize *int64 `min:"1" type:"integer"`

	// (Kinesis and DynamoDB Streams only) If the function returns an error, split
	// the batch in two and retry.
	BisectBatchOnFunctionError *bool `type:"boolean"`

	// (Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Kafka only) A configuration
	// object that specifies the destination of an event after Lambda processes
	// it.
	DestinationConfig *DestinationConfig `type:"structure"`

	// Specific configuration settings for a DocumentDB event source.
	DocumentDBEventSourceConfig *DocumentDBEventSourceConfig `type:"structure"`

	// When true, the event source mapping is active. When false, Lambda pauses
	// polling and invocation.
	//
	// Default: True
	Enabled *bool `type:"boolean"`

	// The Amazon Resource Name (ARN) of the event source.
	//
	//    * Amazon Kinesis – The ARN of the data stream or a stream consumer.
	//
	//    * Amazon DynamoDB Streams – The ARN of the stream.
	//
	//    * Amazon Simple Queue Service – The ARN of the queue.
	//
	//    * Amazon Managed Streaming for Apache Kafka – The ARN of the cluster
	//    or the ARN of the VPC connection (for cross-account event source mappings
	//    (https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc)).
	//
	//    * Amazon MQ – The ARN of the broker.
	//
	//    * Amazon DocumentDB – The ARN of the DocumentDB change stream.
	EventSourceArn *string `type:"string"`

	// An object that defines the filter criteria that determine whether Lambda
	// should process an event. For more information, see Lambda event filtering
	// (https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html).
	FilterCriteria *FilterCriteria `type:"structure"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – MyFunction.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:MyFunction.
	//
	//    * Version or Alias ARN – arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD.
	//
	//    * Partial ARN – 123456789012:function:MyFunction.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it's limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `min:"1" type:"string" required:"true"`

	// (Kinesis, DynamoDB Streams, and Amazon SQS) A list of current response type
	// enums applied to the event source mapping.
	FunctionResponseTypes []*string `type:"list" enum:"FunctionResponseType"`

	// The maximum amount of time, in seconds, that Lambda spends gathering records
	// before invoking the function. You can configure MaximumBatchingWindowInSeconds
	// to any value from 0 seconds to 300 seconds in increments of seconds.
	//
	// For streams and Amazon SQS event sources, the default batching window is
	// 0 seconds. For Amazon MSK, Self-managed Apache Kafka, Amazon MQ, and DocumentDB
	// event sources, the default batching window is 500 ms. Note that because you
	// can only change MaximumBatchingWindowInSeconds in increments of seconds,
	// you cannot revert back to the 500 ms default batching window after you have
	// changed it. To restore the default batching window, you must create a new
	// event source mapping.
	//
	// Related setting: For streams and Amazon SQS event sources, when you set BatchSize
	// to a value greater than 10, you must set MaximumBatchingWindowInSeconds to
	// at least 1.
	MaximumBatchingWindowInSeconds *int64 `type:"integer"`

	// (Kinesis and DynamoDB Streams only) Discard records older than the specified
	// age. The default value is infinite (-1).
	MaximumRecordAgeInSeconds *int64 `type:"integer"`

	// (Kinesis and DynamoDB Streams only) Discard records after the specified number
	// of retries. The default value is infinite (-1). When set to infinite (-1),
	// failed records are retried until the record expires.
	MaximumRetryAttempts *int64 `type:"integer"`

	// (Kinesis and DynamoDB Streams only) The number of batches to process from
	// each shard concurrently.
	ParallelizationFactor *int64 `min:"1" type:"integer"`

	// (MQ) The name of the Amazon MQ broker destination queue to consume.
	Queues []*string `min:"1" type:"list"`

	// (Amazon SQS only) The scaling configuration for the event source. For more
	// information, see Configuring maximum concurrency for Amazon SQS event sources
	// (https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency).
	ScalingConfig *ScalingConfig `type:"structure"`

	// The self-managed Apache Kafka cluster to receive records from.
	SelfManagedEventSource *SelfManagedEventSource `type:"structure"`

	// Specific configuration settings for a self-managed Apache Kafka event source.
	SelfManagedKafkaEventSourceConfig *SelfManagedKafkaEventSourceConfig `type:"structure"`

	// An array of authentication protocols or VPC components required to secure
	// your event source.
	SourceAccessConfigurations []*SourceAccessConfiguration `type:"list"`

	// The position in a stream from which to start reading. Required for Amazon
	// Kinesis and Amazon DynamoDB Stream event sources. AT_TIMESTAMP is supported
	// only for Amazon Kinesis streams, Amazon DocumentDB, Amazon MSK, and self-managed
	// Apache Kafka.
	StartingPosition *string `type:"string" enum:"EventSourcePosition"`

	// With StartingPosition set to AT_TIMESTAMP, the time from which to start reading.
	// StartingPositionTimestamp cannot be in the future.
	StartingPositionTimestamp *time.Time `type:"timestamp"`

	// The name of the Kafka topic.
	Topics []*string `min:"1" type:"list"`

	// (Kinesis and DynamoDB Streams only) The duration in seconds of a processing
	// window for DynamoDB and Kinesis Streams event sources. A value of 0 seconds
	// indicates no tumbling window.
	TumblingWindowInSeconds *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEventSourceMappingInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateEventSourceMappingInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateEventSourceMappingInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateEventSourceMappingInput"}
	if s.BatchSize != nil && *s.BatchSize < 1 {
		invalidParams.Add(request.NewErrParamMinValue("BatchSize", 1))
	}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.MaximumRecordAgeInSeconds != nil && *s.MaximumRecordAgeInSeconds < -1 {
		invalidParams.Add(request.NewErrParamMinValue("MaximumRecordAgeInSeconds", -1))
	}
	if s.MaximumRetryAttempts != nil && *s.MaximumRetryAttempts < -1 {
		invalidParams.Add(request.NewErrParamMinValue("MaximumRetryAttempts", -1))
	}
	if s.ParallelizationFactor != nil && *s.ParallelizationFactor < 1 {
		invalidParams.Add(request.NewErrParamMinValue("ParallelizationFactor", 1))
	}
	if s.Queues != nil && len(s.Queues) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Queues", 1))
	}
	if s.Topics != nil && len(s.Topics) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Topics", 1))
	}
	if s.AmazonManagedKafkaEventSourceConfig != nil {
		if err := s.AmazonManagedKafkaEventSourceConfig.Validate(); err != nil {
			invalidParams.AddNested("AmazonManagedKafkaEventSourceConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.DocumentDBEventSourceConfig != nil {
		if err := s.DocumentDBEventSourceConfig.Validate(); err != nil {
			invalidParams.AddNested("DocumentDBEventSourceConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ScalingConfig != nil {
		if err := s.ScalingConfig.Validate(); err != nil {
			invalidParams.AddNested("ScalingConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.SelfManagedEventSource != nil {
		if err := s.SelfManagedEventSource.Validate(); err != nil {
			invalidParams.AddNested("SelfManagedEventSource", err.(request.ErrInvalidParams))
		}
	}
	if s.SelfManagedKafkaEventSourceConfig != nil {
		if err := s.SelfManagedKafkaEventSourceConfig.Validate(); err != nil {
			invalidParams.AddNested("SelfManagedKafkaEventSourceConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.SourceAccessConfigurations != nil {
		for i, v := range s.SourceAccessConfigurations {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SourceAccessConfigurations", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAmazonManagedKafkaEventSourceConfig sets the AmazonManagedKafkaEventSourceConfig field's value.
func (s *CreateEventSourceMappingInput) SetAmazonManagedKafkaEventSourceConfig(v *AmazonManagedKafkaEventSourceConfig) *CreateEventSourceMappingInput {
	s.AmazonManagedKafkaEventSourceConfig = v
	return s
}

// SetBatchSize sets the BatchSize field's value.
func (s *CreateEventSourceMappingInput) SetBatchSize(v int64) *CreateEventSourceMappingInput {
	s.BatchSize = &v
	return s
}

// SetBisectBatchOnFunctionError sets the BisectBatchOnFunctionError field's value.
func (s *CreateEventSourceMappingInput) SetBisectBatchOnFunctionError(v bool) *CreateEventSourceMappingInput {
	s.BisectBatchOnFunctionError = &v
	return s
}

// SetDestinationConfig sets the DestinationConfig field's value.
func (s *CreateEventSourceMappingInput) SetDestinationConfig(v *DestinationConfig) *CreateEventSourceMappingInput {
	s.DestinationConfig = v
	return s
}

// SetDocumentDBEventSourceConfig sets the DocumentDBEventSourceConfig field's value.
func (s *CreateEventSourceMappingInput) SetDocumentDBEventSourceConfig(v *DocumentDBEventSourceConfig) *CreateEventSourceMappingInput {
	s.DocumentDBEventSourceConfig = v
	return s
}

// SetEnabled sets the Enabled field's value.
func (s *CreateEventSourceMappingInput) SetEnabled(v bool) *CreateEventSourceMappingInput {
	s.Enabled = &v
	return s
}

// SetEventSourceArn sets the EventSourceArn field's value.
func (s *CreateEventSourceMappingInput) SetEventSourceArn(v string) *CreateEventSourceMappingInput {
	s.EventSourceArn = &v
	return s
}

// SetFilterCriteria sets the FilterCriteria field's value.
func (s *CreateEventSourceMappingInput) SetFilterCriteria(v *FilterCriteria) *CreateEventSourceMappingInput {
	s.FilterCriteria = v
	return s
}

// SetFunctionName sets the FunctionName field's value.
func (s *CreateEventSourceMappingInput) SetFunctionName(v string) *CreateEventSourceMappingInput {
	s.FunctionName = &v
	return s
}

// SetFunctionResponseTypes sets the FunctionResponseTypes field's value.
func (s *CreateEventSourceMappingInput) SetFunctionResponseTypes(v []*string) *CreateEventSourceMappingInput {
	s.FunctionResponseTypes = v
	return s
}

// SetMaximumBatchingWindowInSeconds sets the MaximumBatchingWindowInSeconds field's value.
func (s *CreateEventSourceMappingInput) SetMaximumBatchingWindowInSeconds(v int64) *CreateEventSourceMappingInput {
	s.MaximumBatchingWindowInSeconds = &v
	return s
}

// SetMaximumRecordAgeInSeconds sets the MaximumRecordAgeInSeconds field's value.
func (s *CreateEventSourceMappingInput) SetMaximumRecordAgeInSeconds(v int64) *CreateEventSourceMappingInput {
	s.MaximumRecordAgeInSeconds = &v
	return s
}

// SetMaximumRetryAttempts sets the MaximumRetryAttempts field's value.
func (s *CreateEventSourceMappingInput) SetMaximumRetryAttempts(v int64) *CreateEventSourceMappingInput {
	s.MaximumRetryAttempts = &v
	return s
}

// SetParallelizationFactor sets the ParallelizationFactor field's value.
func (s *CreateEventSourceMappingInput) SetParallelizationFactor(v int64) *CreateEventSourceMappingInput {
	s.ParallelizationFactor = &v
	return s
}

// SetQueues sets the Queues field's value.
func (s *CreateEventSourceMappingInput) SetQueues(v []*string) *CreateEventSourceMappingInput {
	s.Queues = v
	return s
}

// SetScalingConfig sets the ScalingConfig field's value.
func (s *CreateEventSourceMappingInput) SetScalingConfig(v *ScalingConfig) *CreateEventSourceMappingInput {
	s.ScalingConfig = v
	return s
}

// SetSelfManagedEventSource sets the SelfManagedEventSource field's value.
func (s *CreateEventSourceMappingInput) SetSelfManagedEventSource(v *SelfManagedEventSource) *CreateEventSourceMappingInput {
	s.SelfManagedEventSource = v
	return s
}

// SetSelfManagedKafkaEventSourceConfig sets the SelfManagedKafkaEventSourceConfig field's value.
func (s *CreateEventSourceMappingInput) SetSelfManagedKafkaEventSourceConfig(v *SelfManagedKafkaEventSourceConfig) *CreateEventSourceMappingInput {
	s.SelfManagedKafkaEventSourceConfig = v
	return s
}

// SetSourceAccessConfigurations sets the SourceAccessConfigurations field's value.
func (s *CreateEventSourceMappingInput) SetSourceAccessConfigurations(v []*SourceAccessConfiguration) *CreateEventSourceMappingInput {
	s.SourceAccessConfigurations = v
	return s
}

// SetStartingPosition sets the StartingPosition field's value.
func (s *CreateEventSourceMappingInput) SetStartingPosition(v string) *CreateEventSourceMappingInput {
	s.StartingPosition = &v
	return s
}

// SetStartingPositionTimestamp sets the StartingPositionTimestamp field's value.
func (s *CreateEventSourceMappingInput) SetStartingPositionTimestamp(v time.Time) *CreateEventSourceMappingInput {
	s.StartingPositionTimestamp = &v
	return s
}

// SetTopics sets the Topics field's value.
func (s *CreateEventSourceMappingInput) SetTopics(v []*string) *CreateEventSourceMappingInput {
	s.Topics = v
	return s
}

// SetTumblingWindowInSeconds sets the TumblingWindowInSeconds field's value.
func (s *CreateEventSourceMappingInput) SetTumblingWindowInSeconds(v int64) *CreateEventSourceMappingInput {
	s.TumblingWindowInSeconds = &v
	return s
}

type CreateFunctionInput struct {
	_ struct{} `type:"structure"`

	// The instruction set architecture that the function supports. Enter a string
	// array with one of the valid values (arm64 or x86_64). The default value is
	// x86_64.
	Architectures []*string `min:"1" type:"list" enum:"Architecture"`

	// The code for the function.
	//
	// Code is a required field
	Code *FunctionCode `type:"structure" required:"true"`

	// To enable code signing for this function, specify the ARN of a code-signing
	// configuration. A code-signing configuration includes a set of signing profiles,
	// which define the trusted publishers for this function.
	CodeSigningConfigArn *string `type:"string"`

	// A dead-letter queue configuration that specifies the queue or topic where
	// Lambda sends asynchronous events when they fail processing. For more information,
	// see Dead-letter queues (https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-dlq).
	DeadLetterConfig *DeadLetterConfig `type:"structure"`

	// A description of the function.
	Description *string `type:"string"`

	// Environment variables that are accessible from function code during execution.
	Environment *Environment `type:"structure"`

	// The size of the function's /tmp directory in MB. The default value is 512,
	// but can be any whole number between 512 and 10,240 MB. For more information,
	// see Configuring ephemeral storage (console) (https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-ephemeral-storage).
	EphemeralStorage *EphemeralStorage `type:"structure"`

	// Connection settings for an Amazon EFS file system.
	FileSystemConfigs []*FileSystemConfig `type:"list"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – my-function.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `min:"1" type:"string" required:"true"`

	// The name of the method within your code that Lambda calls to run your function.
	// Handler is required if the deployment package is a .zip file archive. The
	// format includes the file name. It can also include namespaces and other qualifiers,
	// depending on the runtime. For more information, see Lambda programming model
	// (https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html).
	Handler *string `type:"string"`

	// Container image configuration values (https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms)
	// that override the values in the container image Dockerfile.
	ImageConfig *ImageConfig `type:"structure"`

	// The ARN of the Key Management Service (KMS) customer managed key that's used
	// to encrypt your function's environment variables (https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption).
	// When Lambda SnapStart (https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html)
	// is activated, Lambda also uses this key is to encrypt your function's snapshot.
	// If you deploy your function using a container image, Lambda also uses this
	// key to encrypt your function when it's deployed. Note that this is not the
	// same key that's used to protect your container image in the Amazon Elastic
	// Container Registry (Amazon ECR). If you don't provide a customer managed
	// key, Lambda uses a default service key.
	KMSKeyArn *string `type:"string"`

	// A list of function layers (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html)
	// to add to the function's execution environment. Specify each layer by its
	// ARN, including the version.
	Layers []*string `type:"list"`

	// The function's Amazon CloudWatch Logs configuration settings.
	LoggingConfig *LoggingConfig `type:"structure"`

	// The amount of memory available to the function (https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-memory-console)
	// at runtime. Increasing the function memory also increases its CPU allocation.
	// The default value is 128 MB. The value can be any multiple of 1 MB.
	MemorySize *int64 `min:"128" type:"integer"`

	// The type of deployment package. Set to Image for container image and set
	// to Zip for .zip file archive.
	PackageType *string `type:"string" enum:"PackageType"`

	// Set to true to publish the first version of the function during creation.
	Publish *bool `type:"boolean"`

	// The Amazon Resource Name (ARN) of the function's execution role.
	//
	// Role is a required field
	Role *string `type:"string" required:"true"`

	// The identifier of the function's runtime (https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html).
	// Runtime is required if the deployment package is a .zip file archive.
	//
	// The following list includes deprecated runtimes. For more information, see
	// Runtime deprecation policy (https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy).
	Runtime *string `type:"string" enum:"Runtime"`

	// The function's SnapStart (https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html)
	// setting.
	SnapStart *SnapStart `type:"structure"`

	// A list of tags (https://docs.aws.amazon.com/lambda/latest/dg/tagging.html)
	// to apply to the function.
	Tags map[string]*string `type:"map"`

	// The amount of time (in seconds) that Lambda allows a function to run before
	// stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds.
	// For more information, see Lambda execution environment (https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html).
	Timeout *int64 `min:"1" type:"integer"`

	// Set Mode to Active to sample and trace a subset of incoming requests with
	// X-Ray (https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html).
	TracingConfig *TracingConfig `type:"structure"`

	// For network connectivity to Amazon Web Services resources in a VPC, specify
	// a list of security groups and subnets in the VPC. When you connect a function
	// to a VPC, it can access resources and the internet only through that VPC.
	// For more information, see Configuring a Lambda function to access resources
	// in a VPC (https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html).
	VpcConfig *VpcConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateFunctionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateFunctionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateFunctionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateFunctionInput"}
	if s.Architectures != nil && len(s.Architectures) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Architectures", 1))
	}
	if s.Code == nil {
		invalidParams.Add(request.NewErrParamRequired("Code"))
	}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.MemorySize != nil && *s.MemorySize < 128 {
		invalidParams.Add(request.NewErrParamMinValue("MemorySize", 128))
	}
	if s.Role == nil {
		invalidParams.Add(request.NewErrParamRequired("Role"))
	}
	if s.Timeout != nil && *s.Timeout < 1 {
		invalidParams.Add(request.NewErrParamMinValue("Timeout", 1))
	}
	if s.Code != nil {
		if err := s.Code.Validate(); err != nil {
			invalidParams.AddNested("Code", err.(request.ErrInvalidParams))
		}
	}
	if s.EphemeralStorage != nil {
		if err := s.EphemeralStorage.Validate(); err != nil {
			invalidParams.AddNested("EphemeralStorage", err.(request.ErrInvalidParams))
		}
	}
	if s.FileSystemConfigs != nil {
		for i, v := range s.FileSystemConfigs {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FileSystemConfigs", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.LoggingConfig != nil {
		if err := s.LoggingConfig.Validate(); err != nil {
			invalidParams.AddNested("LoggingConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetArchitectures sets the Architectures field's value.
func (s *CreateFunctionInput) SetArchitectures(v []*string) *CreateFunctionInput {
	s.Architectures = v
	return s
}

// SetCode sets the Code field's value.
func (s *CreateFunctionInput) SetCode(v *FunctionCode) *CreateFunctionInput {
	s.Code = v
	return s
}

// SetCodeSigningConfigArn sets the CodeSigningConfigArn field's value.
func (s *CreateFunctionInput) SetCodeSigningConfigArn(v string) *CreateFunctionInput {
	s.CodeSigningConfigArn = &v
	return s
}

// SetDeadLetterConfig sets the DeadLetterConfig field's value.
func (s *CreateFunctionInput) SetDeadLetterConfig(v *DeadLetterConfig) *CreateFunctionInput {
	s.DeadLetterConfig = v
	return s
}

// SetDescription sets the Description field's value.
func (s *CreateFunctionInput) SetDescription(v string) *CreateFunctionInput {
	s.Description = &v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *CreateFunctionInput) SetEnvironment(v *Environment) *CreateFunctionInput {
	s.Environment = v
	return s
}

// SetEphemeralStorage sets the EphemeralStorage field's value.
func (s *CreateFunctionInput) SetEphemeralStorage(v *EphemeralStorage) *CreateFunctionInput {
	s.EphemeralStorage = v
	return s
}

// SetFileSystemConfigs sets the FileSystemConfigs field's value.
func (s *CreateFunctionInput) SetFileSystemConfigs(v []*FileSystemConfig) *CreateFunctionInput {
	s.FileSystemConfigs = v
	return s
}

// SetFunctionName sets the FunctionName field's value.
func (s *CreateFunctionInput) SetFunctionName(v string) *CreateFunctionInput {
	s.FunctionName = &v
	return s
}

// SetHandler sets the Handler field's value.
func (s *CreateFunctionInput) SetHandler(v string) *CreateFunctionInput {
	s.Handler = &v
	return s
}

// SetImageConfig sets the ImageConfig field's value.
func (s *CreateFunctionInput) SetImageConfig(v *ImageConfig) *CreateFunctionInput {
	s.ImageConfig = v
	return s
}

// SetKMSKeyArn sets the KMSKeyArn field's value.
func (s *CreateFunctionInput) SetKMSKeyArn(v string) *CreateFunctionInput {
	s.KMSKeyArn = &v
	return s
}

// SetLayers sets the Layers field's value.
func (s *CreateFunctionInput) SetLayers(v []*string) *CreateFunctionInput {
	s.Layers = v
	return s
}

// SetLoggingConfig sets the LoggingConfig field's value.
func (s *CreateFunctionInput) SetLoggingConfig(v *LoggingConfig) *CreateFunctionInput {
	s.LoggingConfig = v
	return s
}

// SetMemorySize sets the MemorySize field's value.
func (s *CreateFunctionInput) SetMemorySize(v int64) *CreateFunctionInput {
	s.MemorySize = &v
	return s
}

// SetPackageType sets the PackageType field's value.
func (s *CreateFunctionInput) SetPackageType(v string) *CreateFunctionInput {
	s.PackageType = &v
	return s
}

// SetPublish sets the Publish field's value.
func (s *CreateFunctionInput) SetPublish(v bool) *CreateFunctionInput {
	s.Publish = &v
	return s
}

// SetRole sets the Role field's value.
func (s *CreateFunctionInput) SetRole(v string) *CreateFunctionInput {
	s.Role = &v
	return s
}

// SetRuntime sets the Runtime field's value.
func (s *CreateFunctionInput) SetRuntime(v string) *CreateFunctionInput {
	s.Runtime = &v
	return s
}

// SetSnapStart sets the SnapStart field's value.
func (s *CreateFunctionInput) SetSnapStart(v *SnapStart) *CreateFunctionInput {
	s.SnapStart = v
	return s
}

// SetTags sets the Tags field's value.
func (s *CreateFunctionInput) SetTags(v map[string]*string) *CreateFunctionInput {
	s.Tags = v
	return s
}

// SetTimeout sets the Timeout field's value.
func (s *CreateFunctionInput) SetTimeout(v int64) *CreateFunctionInput {
	s.Timeout = &v
	return s
}

// SetTracingConfig sets the TracingConfig field's value.
func (s *CreateFunctionInput) SetTracingConfig(v *TracingConfig) *CreateFunctionInput {
	s.TracingConfig = v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *CreateFunctionInput) SetVpcConfig(v *VpcConfig) *CreateFunctionInput {
	s.VpcConfig = v
	return s
}

type CreateFunctionUrlConfigInput struct {
	_ struct{} `type:"structure"`

	// The type of authentication that your function URL uses. Set to AWS_IAM if
	// you want to restrict access to authenticated users only. Set to NONE if you
	// want to bypass IAM authentication to create a public endpoint. For more information,
	// see Security and auth model for Lambda function URLs (https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html).
	//
	// AuthType is a required field
	AuthType *string `type:"string" required:"true" enum:"FunctionUrlAuthType"`

	// The cross-origin resource sharing (CORS) (https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
	// settings for your function URL.
	Cors *Cors `type:"structure"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – my-function.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// Use one of the following options:
	//
	//    * BUFFERED – This is the default option. Lambda invokes your function
	//    using the Invoke API operation. Invocation results are available when
	//    the payload is complete. The maximum payload size is 6 MB.
	//
	//    * RESPONSE_STREAM – Your function streams payload results as they become
	//    available. Lambda invokes your function using the InvokeWithResponseStream
	//    API operation. The maximum response payload size is 20 MB, however, you
	//    can request a quota increase (https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html).
	InvokeMode *string `type:"string" enum:"InvokeMode"`

	// The alias name.
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateFunctionUrlConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateFunctionUrlConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateFunctionUrlConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateFunctionUrlConfigInput"}
	if s.AuthType == nil {
		invalidParams.Add(request.NewErrParamRequired("AuthType"))
	}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAuthType sets the AuthType field's value.
func (s *CreateFunctionUrlConfigInput) SetAuthType(v string) *CreateFunctionUrlConfigInput {
	s.AuthType = &v
	return s
}

// SetCors sets the Cors field's value.
func (s *CreateFunctionUrlConfigInput) SetCors(v *Cors) *CreateFunctionUrlConfigInput {
	s.Cors = v
	return s
}

// SetFunctionName sets the FunctionName field's value.
func (s *CreateFunctionUrlConfigInput) SetFunctionName(v string) *CreateFunctionUrlConfigInput {
	s.FunctionName = &v
	return s
}

// SetInvokeMode sets the InvokeMode field's value.
func (s *CreateFunctionUrlConfigInput) SetInvokeMode(v string) *CreateFunctionUrlConfigInput {
	s.InvokeMode = &v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *CreateFunctionUrlConfigInput) SetQualifier(v string) *CreateFunctionUrlConfigInput {
	s.Qualifier = &v
	return s
}

type CreateFunctionUrlConfigOutput struct {
	_ struct{} `type:"structure"`

	// The type of authentication that your function URL uses. Set to AWS_IAM if
	// you want to restrict access to authenticated users only. Set to NONE if you
	// want to bypass IAM authentication to create a public endpoint. For more information,
	// see Security and auth model for Lambda function URLs (https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html).
	//
	// AuthType is a required field
	AuthType *string `type:"string" required:"true" enum:"FunctionUrlAuthType"`

	// The cross-origin resource sharing (CORS) (https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
	// settings for your function URL.
	Cors *Cors `type:"structure"`

	// When the function URL was created, in ISO-8601 format (https://www.w3.org/TR/NOTE-datetime)
	// (YYYY-MM-DDThh:mm:ss.sTZD).
	//
	// CreationTime is a required field
	CreationTime *string `type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of your function.
	//
	// FunctionArn is a required field
	FunctionArn *string `type:"string" required:"true"`

	// The HTTP URL endpoint for your function.
	//
	// FunctionUrl is a required field
	FunctionUrl *string `min:"40" type:"string" required:"true"`

	// Use one of the following options:
	//
	//    * BUFFERED – This is the default option. Lambda invokes your function
	//    using the Invoke API operation. Invocation results are available when
	//    the payload is complete. The maximum payload size is 6 MB.
	//
	//    * RESPONSE_STREAM – Your function streams payload results as they become
	//    available. Lambda invokes your function using the InvokeWithResponseStream
	//    API operation. The maximum response payload size is 20 MB, however, you
	//    can request a quota increase (https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html).
	InvokeMode *string `type:"string" enum:"InvokeMode"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateFunctionUrlConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s CreateFunctionUrlConfigOutput) GoString() string {
	return s.String()
}

// SetAuthType sets the AuthType field's value.
func (s *CreateFunctionUrlConfigOutput) SetAuthType(v string) *CreateFunctionUrlConfigOutput {
	s.AuthType = &v
	return s
}

// SetCors sets the Cors field's value.
func (s *CreateFunctionUrlConfigOutput) SetCors(v *Cors) *CreateFunctionUrlConfigOutput {
	s.Cors = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *CreateFunctionUrlConfigOutput) SetCreationTime(v string) *CreateFunctionUrlConfigOutput {
	s.CreationTime = &v
	return s
}

// SetFunctionArn sets the FunctionArn field's value.
func (s *CreateFunctionUrlConfigOutput) SetFunctionArn(v string) *CreateFunctionUrlConfigOutput {
	s.FunctionArn = &v
	return s
}

// SetFunctionUrl sets the FunctionUrl field's value.
func (s *CreateFunctionUrlConfigOutput) SetFunctionUrl(v string) *CreateFunctionUrlConfigOutput {
	s.FunctionUrl = &v
	return s
}

// SetInvokeMode sets the InvokeMode field's value.
func (s *CreateFunctionUrlConfigOutput) SetInvokeMode(v string) *CreateFunctionUrlConfigOutput {
	s.InvokeMode = &v
	return s
}

// The dead-letter queue (https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq)
// for failed asynchronous invocations.
type DeadLetterConfig struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic.
	TargetArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeadLetterConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeadLetterConfig) GoString() string {
	return s.String()
}

// SetTargetArn sets the TargetArn field's value.
func (s *DeadLetterConfig) SetTargetArn(v string) *DeadLetterConfig {
	s.TargetArn = &v
	return s
}

type DeleteAliasInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name - MyFunction.
	//
	//    * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction.
	//
	//    * Partial ARN - 123456789012:function:MyFunction.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// The name of the alias.
	//
	// Name is a required field
	Name *string `location:"uri" locationName:"Name" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAliasInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAliasInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteAliasInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteAliasInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *DeleteAliasInput) SetFunctionName(v string) *DeleteAliasInput {
	s.FunctionName = &v
	return s
}

// SetName sets the Name field's value.
func (s *DeleteAliasInput) SetName(v string) *DeleteAliasInput {
	s.Name = &v
	return s
}

type DeleteAliasOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAliasOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteAliasOutput) GoString() string {
	return s.String()
}

type DeleteCodeSigningConfigInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The The Amazon Resource Name (ARN) of the code signing configuration.
	//
	// CodeSigningConfigArn is a required field
	CodeSigningConfigArn *string `location:"uri" locationName:"CodeSigningConfigArn" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteCodeSigningConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteCodeSigningConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteCodeSigningConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteCodeSigningConfigInput"}
	if s.CodeSigningConfigArn == nil {
		invalidParams.Add(request.NewErrParamRequired("CodeSigningConfigArn"))
	}
	if s.CodeSigningConfigArn != nil && len(*s.CodeSigningConfigArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CodeSigningConfigArn", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCodeSigningConfigArn sets the CodeSigningConfigArn field's value.
func (s *DeleteCodeSigningConfigInput) SetCodeSigningConfigArn(v string) *DeleteCodeSigningConfigInput {
	s.CodeSigningConfigArn = &v
	return s
}

type DeleteCodeSigningConfigOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteCodeSigningConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteCodeSigningConfigOutput) GoString() string {
	return s.String()
}

type DeleteEventSourceMappingInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the event source mapping.
	//
	// UUID is a required field
	UUID *string `location:"uri" locationName:"UUID" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEventSourceMappingInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteEventSourceMappingInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteEventSourceMappingInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteEventSourceMappingInput"}
	if s.UUID == nil {
		invalidParams.Add(request.NewErrParamRequired("UUID"))
	}
	if s.UUID != nil && len(*s.UUID) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UUID", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetUUID sets the UUID field's value.
func (s *DeleteEventSourceMappingInput) SetUUID(v string) *DeleteEventSourceMappingInput {
	s.UUID = &v
	return s
}

type DeleteFunctionCodeSigningConfigInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name - MyFunction.
	//
	//    * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction.
	//
	//    * Partial ARN - 123456789012:function:MyFunction.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFunctionCodeSigningConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFunctionCodeSigningConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteFunctionCodeSigningConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteFunctionCodeSigningConfigInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *DeleteFunctionCodeSigningConfigInput) SetFunctionName(v string) *DeleteFunctionCodeSigningConfigInput {
	s.FunctionName = &v
	return s
}

type DeleteFunctionCodeSigningConfigOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFunctionCodeSigningConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFunctionCodeSigningConfigOutput) GoString() string {
	return s.String()
}

type DeleteFunctionConcurrencyInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – my-function.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFunctionConcurrencyInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFunctionConcurrencyInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteFunctionConcurrencyInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteFunctionConcurrencyInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *DeleteFunctionConcurrencyInput) SetFunctionName(v string) *DeleteFunctionConcurrencyInput {
	s.FunctionName = &v
	return s
}

type DeleteFunctionConcurrencyOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFunctionConcurrencyOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFunctionConcurrencyOutput) GoString() string {
	return s.String()
}

type DeleteFunctionEventInvokeConfigInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function, version, or alias.
	//
	// Name formats
	//
	//    * Function name - my-function (name-only), my-function:v1 (with alias).
	//
	//    * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN - 123456789012:function:my-function.
	//
	// You can append a version number or alias to any of the formats. The length
	// constraint applies only to the full ARN. If you specify only the function
	// name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// A version number or alias name.
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFunctionEventInvokeConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFunctionEventInvokeConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteFunctionEventInvokeConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteFunctionEventInvokeConfigInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *DeleteFunctionEventInvokeConfigInput) SetFunctionName(v string) *DeleteFunctionEventInvokeConfigInput {
	s.FunctionName = &v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *DeleteFunctionEventInvokeConfigInput) SetQualifier(v string) *DeleteFunctionEventInvokeConfigInput {
	s.Qualifier = &v
	return s
}

type DeleteFunctionEventInvokeConfigOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFunctionEventInvokeConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFunctionEventInvokeConfigOutput) GoString() string {
	return s.String()
}

type DeleteFunctionInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function or version.
	//
	// Name formats
	//
	//    * Function name – my-function (name-only), my-function:1 (with version).
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// You can append a version number or alias to any of the formats. The length
	// constraint applies only to the full ARN. If you specify only the function
	// name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// Specify a version to delete. You can't delete a version that an alias references.
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFunctionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFunctionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteFunctionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteFunctionInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *DeleteFunctionInput) SetFunctionName(v string) *DeleteFunctionInput {
	s.FunctionName = &v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *DeleteFunctionInput) SetQualifier(v string) *DeleteFunctionInput {
	s.Qualifier = &v
	return s
}

type DeleteFunctionOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFunctionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFunctionOutput) GoString() string {
	return s.String()
}

type DeleteFunctionUrlConfigInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – my-function.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// The alias name.
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFunctionUrlConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFunctionUrlConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteFunctionUrlConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteFunctionUrlConfigInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *DeleteFunctionUrlConfigInput) SetFunctionName(v string) *DeleteFunctionUrlConfigInput {
	s.FunctionName = &v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *DeleteFunctionUrlConfigInput) SetQualifier(v string) *DeleteFunctionUrlConfigInput {
	s.Qualifier = &v
	return s
}

type DeleteFunctionUrlConfigOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFunctionUrlConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteFunctionUrlConfigOutput) GoString() string {
	return s.String()
}

type DeleteLayerVersionInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or Amazon Resource Name (ARN) of the layer.
	//
	// LayerName is a required field
	LayerName *string `location:"uri" locationName:"LayerName" min:"1" type:"string" required:"true"`

	// The version number.
	//
	// VersionNumber is a required field
	VersionNumber *int64 `location:"uri" locationName:"VersionNumber" type:"long" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteLayerVersionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteLayerVersionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteLayerVersionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteLayerVersionInput"}
	if s.LayerName == nil {
		invalidParams.Add(request.NewErrParamRequired("LayerName"))
	}
	if s.LayerName != nil && len(*s.LayerName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("LayerName", 1))
	}
	if s.VersionNumber == nil {
		invalidParams.Add(request.NewErrParamRequired("VersionNumber"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetLayerName sets the LayerName field's value.
func (s *DeleteLayerVersionInput) SetLayerName(v string) *DeleteLayerVersionInput {
	s.LayerName = &v
	return s
}

// SetVersionNumber sets the VersionNumber field's value.
func (s *DeleteLayerVersionInput) SetVersionNumber(v int64) *DeleteLayerVersionInput {
	s.VersionNumber = &v
	return s
}

type DeleteLayerVersionOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteLayerVersionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteLayerVersionOutput) GoString() string {
	return s.String()
}

type DeleteProvisionedConcurrencyConfigInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – my-function.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// The version number or alias name.
	//
	// Qualifier is a required field
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteProvisionedConcurrencyConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteProvisionedConcurrencyConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteProvisionedConcurrencyConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteProvisionedConcurrencyConfigInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.Qualifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Qualifier"))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *DeleteProvisionedConcurrencyConfigInput) SetFunctionName(v string) *DeleteProvisionedConcurrencyConfigInput {
	s.FunctionName = &v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *DeleteProvisionedConcurrencyConfigInput) SetQualifier(v string) *DeleteProvisionedConcurrencyConfigInput {
	s.Qualifier = &v
	return s
}

type DeleteProvisionedConcurrencyConfigOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteProvisionedConcurrencyConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DeleteProvisionedConcurrencyConfigOutput) GoString() string {
	return s.String()
}

// A configuration object that specifies the destination of an event after Lambda
// processes it.
type DestinationConfig struct {
	_ struct{} `type:"structure"`

	// The destination configuration for failed invocations.
	OnFailure *OnFailure `type:"structure"`

	// The destination configuration for successful invocations.
	OnSuccess *OnSuccess `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DestinationConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DestinationConfig) GoString() string {
	return s.String()
}

// SetOnFailure sets the OnFailure field's value.
func (s *DestinationConfig) SetOnFailure(v *OnFailure) *DestinationConfig {
	s.OnFailure = v
	return s
}

// SetOnSuccess sets the OnSuccess field's value.
func (s *DestinationConfig) SetOnSuccess(v *OnSuccess) *DestinationConfig {
	s.OnSuccess = v
	return s
}

// Specific configuration settings for a DocumentDB event source.
type DocumentDBEventSourceConfig struct {
	_ struct{} `type:"structure"`

	// The name of the collection to consume within the database. If you do not
	// specify a collection, Lambda consumes all collections.
	CollectionName *string `min:"1" type:"string"`

	// The name of the database to consume within the DocumentDB cluster.
	DatabaseName *string `min:"1" type:"string"`

	// Determines what DocumentDB sends to your event stream during document update
	// operations. If set to UpdateLookup, DocumentDB sends a delta describing the
	// changes, along with a copy of the entire document. Otherwise, DocumentDB
	// sends only a partial document that contains the changes.
	FullDocument *string `type:"string" enum:"FullDocument"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DocumentDBEventSourceConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s DocumentDBEventSourceConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *DocumentDBEventSourceConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DocumentDBEventSourceConfig"}
	if s.CollectionName != nil && len(*s.CollectionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CollectionName", 1))
	}
	if s.DatabaseName != nil && len(*s.DatabaseName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DatabaseName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCollectionName sets the CollectionName field's value.
func (s *DocumentDBEventSourceConfig) SetCollectionName(v string) *DocumentDBEventSourceConfig {
	s.CollectionName = &v
	return s
}

// SetDatabaseName sets the DatabaseName field's value.
func (s *DocumentDBEventSourceConfig) SetDatabaseName(v string) *DocumentDBEventSourceConfig {
	s.DatabaseName = &v
	return s
}

// SetFullDocument sets the FullDocument field's value.
func (s *DocumentDBEventSourceConfig) SetFullDocument(v string) *DocumentDBEventSourceConfig {
	s.FullDocument = &v
	return s
}

// Need additional permissions to configure VPC settings.
type EC2AccessDeniedException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EC2AccessDeniedException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EC2AccessDeniedException) GoString() string {
	return s.String()
}

func newErrorEC2AccessDeniedException(v protocol.ResponseMetadata) error {
	return &EC2AccessDeniedException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *EC2AccessDeniedException) Code() string {
	return "EC2AccessDeniedException"
}

// Message returns the exception's message.
func (s *EC2AccessDeniedException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *EC2AccessDeniedException) OrigErr() error {
	return nil
}

func (s *EC2AccessDeniedException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *EC2AccessDeniedException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *EC2AccessDeniedException) RequestID() string {
	return s.RespMetadata.RequestID
}

// Amazon EC2 throttled Lambda during Lambda function initialization using the
// execution role provided for the function.
type EC2ThrottledException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EC2ThrottledException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EC2ThrottledException) GoString() string {
	return s.String()
}

func newErrorEC2ThrottledException(v protocol.ResponseMetadata) error {
	return &EC2ThrottledException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *EC2ThrottledException) Code() string {
	return "EC2ThrottledException"
}

// Message returns the exception's message.
func (s *EC2ThrottledException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *EC2ThrottledException) OrigErr() error {
	return nil
}

func (s *EC2ThrottledException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *EC2ThrottledException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *EC2ThrottledException) RequestID() string {
	return s.RespMetadata.RequestID
}

// Lambda received an unexpected Amazon EC2 client exception while setting up
// for the Lambda function.
type EC2UnexpectedException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	EC2ErrorCode *string `type:"string"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EC2UnexpectedException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EC2UnexpectedException) GoString() string {
	return s.String()
}

func newErrorEC2UnexpectedException(v protocol.ResponseMetadata) error {
	return &EC2UnexpectedException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *EC2UnexpectedException) Code() string {
	return "EC2UnexpectedException"
}

// Message returns the exception's message.
func (s *EC2UnexpectedException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *EC2UnexpectedException) OrigErr() error {
	return nil
}

func (s *EC2UnexpectedException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *EC2UnexpectedException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *EC2UnexpectedException) RequestID() string {
	return s.RespMetadata.RequestID
}

// An error occurred when reading from or writing to a connected file system.
type EFSIOException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EFSIOException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EFSIOException) GoString() string {
	return s.String()
}

func newErrorEFSIOException(v protocol.ResponseMetadata) error {
	return &EFSIOException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *EFSIOException) Code() string {
	return "EFSIOException"
}

// Message returns the exception's message.
func (s *EFSIOException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *EFSIOException) OrigErr() error {
	return nil
}

func (s *EFSIOException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *EFSIOException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *EFSIOException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The Lambda function couldn't make a network connection to the configured
// file system.
type EFSMountConnectivityException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EFSMountConnectivityException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EFSMountConnectivityException) GoString() string {
	return s.String()
}

func newErrorEFSMountConnectivityException(v protocol.ResponseMetadata) error {
	return &EFSMountConnectivityException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *EFSMountConnectivityException) Code() string {
	return "EFSMountConnectivityException"
}

// Message returns the exception's message.
func (s *EFSMountConnectivityException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *EFSMountConnectivityException) OrigErr() error {
	return nil
}

func (s *EFSMountConnectivityException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *EFSMountConnectivityException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *EFSMountConnectivityException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The Lambda function couldn't mount the configured file system due to a permission
// or configuration issue.
type EFSMountFailureException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EFSMountFailureException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EFSMountFailureException) GoString() string {
	return s.String()
}

func newErrorEFSMountFailureException(v protocol.ResponseMetadata) error {
	return &EFSMountFailureException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *EFSMountFailureException) Code() string {
	return "EFSMountFailureException"
}

// Message returns the exception's message.
func (s *EFSMountFailureException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *EFSMountFailureException) OrigErr() error {
	return nil
}

func (s *EFSMountFailureException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *EFSMountFailureException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *EFSMountFailureException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The Lambda function made a network connection to the configured file system,
// but the mount operation timed out.
type EFSMountTimeoutException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EFSMountTimeoutException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EFSMountTimeoutException) GoString() string {
	return s.String()
}

func newErrorEFSMountTimeoutException(v protocol.ResponseMetadata) error {
	return &EFSMountTimeoutException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *EFSMountTimeoutException) Code() string {
	return "EFSMountTimeoutException"
}

// Message returns the exception's message.
func (s *EFSMountTimeoutException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *EFSMountTimeoutException) OrigErr() error {
	return nil
}

func (s *EFSMountTimeoutException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *EFSMountTimeoutException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *EFSMountTimeoutException) RequestID() string {
	return s.RespMetadata.RequestID
}

// Lambda couldn't create an elastic network interface in the VPC, specified
// as part of Lambda function configuration, because the limit for network interfaces
// has been reached. For more information, see Lambda quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).
type ENILimitReachedException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ENILimitReachedException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ENILimitReachedException) GoString() string {
	return s.String()
}

func newErrorENILimitReachedException(v protocol.ResponseMetadata) error {
	return &ENILimitReachedException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ENILimitReachedException) Code() string {
	return "ENILimitReachedException"
}

// Message returns the exception's message.
func (s *ENILimitReachedException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ENILimitReachedException) OrigErr() error {
	return nil
}

func (s *ENILimitReachedException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ENILimitReachedException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ENILimitReachedException) RequestID() string {
	return s.RespMetadata.RequestID
}

// A function's environment variable settings. You can use environment variables
// to adjust your function's behavior without updating code. An environment
// variable is a pair of strings that are stored in a function's version-specific
// configuration.
type Environment struct {
	_ struct{} `type:"structure"`

	// Environment variable key-value pairs. For more information, see Using Lambda
	// environment variables (https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html).
	//
	// Variables is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Environment's
	// String and GoString methods.
	Variables map[string]*string `type:"map" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Environment) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Environment) GoString() string {
	return s.String()
}

// SetVariables sets the Variables field's value.
func (s *Environment) SetVariables(v map[string]*string) *Environment {
	s.Variables = v
	return s
}

// Error messages for environment variables that couldn't be applied.
type EnvironmentError struct {
	_ struct{} `type:"structure"`

	// The error code.
	ErrorCode *string `type:"string"`

	// The error message.
	//
	// Message is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by EnvironmentError's
	// String and GoString methods.
	Message *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EnvironmentError) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EnvironmentError) GoString() string {
	return s.String()
}

// SetErrorCode sets the ErrorCode field's value.
func (s *EnvironmentError) SetErrorCode(v string) *EnvironmentError {
	s.ErrorCode = &v
	return s
}

// SetMessage sets the Message field's value.
func (s *EnvironmentError) SetMessage(v string) *EnvironmentError {
	s.Message = &v
	return s
}

// The results of an operation to update or read environment variables. If the
// operation succeeds, the response contains the environment variables. If it
// fails, the response contains details about the error.
type EnvironmentResponse struct {
	_ struct{} `type:"structure"`

	// Error messages for environment variables that couldn't be applied.
	Error *EnvironmentError `type:"structure"`

	// Environment variable key-value pairs. Omitted from CloudTrail logs.
	//
	// Variables is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by EnvironmentResponse's
	// String and GoString methods.
	Variables map[string]*string `type:"map" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EnvironmentResponse) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EnvironmentResponse) GoString() string {
	return s.String()
}

// SetError sets the Error field's value.
func (s *EnvironmentResponse) SetError(v *EnvironmentError) *EnvironmentResponse {
	s.Error = v
	return s
}

// SetVariables sets the Variables field's value.
func (s *EnvironmentResponse) SetVariables(v map[string]*string) *EnvironmentResponse {
	s.Variables = v
	return s
}

// The size of the function's /tmp directory in MB. The default value is 512,
// but can be any whole number between 512 and 10,240 MB. For more information,
// see Configuring ephemeral storage (console) (https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-ephemeral-storage).
type EphemeralStorage struct {
	_ struct{} `type:"structure"`

	// The size of the function's /tmp directory.
	//
	// Size is a required field
	Size *int64 `min:"512" type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EphemeralStorage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EphemeralStorage) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *EphemeralStorage) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "EphemeralStorage"}
	if s.Size == nil {
		invalidParams.Add(request.NewErrParamRequired("Size"))
	}
	if s.Size != nil && *s.Size < 512 {
		invalidParams.Add(request.NewErrParamMinValue("Size", 512))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSize sets the Size field's value.
func (s *EphemeralStorage) SetSize(v int64) *EphemeralStorage {
	s.Size = &v
	return s
}

// A mapping between an Amazon Web Services resource and a Lambda function.
// For details, see CreateEventSourceMapping.
type EventSourceMappingConfiguration struct {
	_ struct{} `type:"structure"`

	// Specific configuration settings for an Amazon Managed Streaming for Apache
	// Kafka (Amazon MSK) event source.
	AmazonManagedKafkaEventSourceConfig *AmazonManagedKafkaEventSourceConfig `type:"structure"`

	// The maximum number of records in each batch that Lambda pulls from your stream
	// or queue and sends to your function. Lambda passes all of the records in
	// the batch to the function in a single call, up to the payload limit for synchronous
	// invocation (6 MB).
	//
	// Default value: Varies by service. For Amazon SQS, the default is 10. For
	// all other services, the default is 100.
	//
	// Related setting: When you set BatchSize to a value greater than 10, you must
	// set MaximumBatchingWindowInSeconds to at least 1.
	BatchSize *int64 `min:"1" type:"integer"`

	// (Kinesis and DynamoDB Streams only) If the function returns an error, split
	// the batch in two and retry. The default value is false.
	BisectBatchOnFunctionError *bool `type:"boolean"`

	// (Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Apache Kafka event
	// sources only) A configuration object that specifies the destination of an
	// event after Lambda processes it.
	DestinationConfig *DestinationConfig `type:"structure"`

	// Specific configuration settings for a DocumentDB event source.
	DocumentDBEventSourceConfig *DocumentDBEventSourceConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of the event source.
	EventSourceArn *string `type:"string"`

	// An object that defines the filter criteria that determine whether Lambda
	// should process an event. For more information, see Lambda event filtering
	// (https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html).
	FilterCriteria *FilterCriteria `type:"structure"`

	// The ARN of the Lambda function.
	FunctionArn *string `type:"string"`

	// (Kinesis, DynamoDB Streams, and Amazon SQS) A list of current response type
	// enums applied to the event source mapping.
	FunctionResponseTypes []*string `type:"list" enum:"FunctionResponseType"`

	// The date that the event source mapping was last updated or that its state
	// changed.
	LastModified *time.Time `type:"timestamp"`

	// The result of the last Lambda invocation of your function.
	LastProcessingResult *string `type:"string"`

	// The maximum amount of time, in seconds, that Lambda spends gathering records
	// before invoking the function. You can configure MaximumBatchingWindowInSeconds
	// to any value from 0 seconds to 300 seconds in increments of seconds.
	//
	// For streams and Amazon SQS event sources, the default batching window is
	// 0 seconds. For Amazon MSK, Self-managed Apache Kafka, Amazon MQ, and DocumentDB
	// event sources, the default batching window is 500 ms. Note that because you
	// can only change MaximumBatchingWindowInSeconds in increments of seconds,
	// you cannot revert back to the 500 ms default batching window after you have
	// changed it. To restore the default batching window, you must create a new
	// event source mapping.
	//
	// Related setting: For streams and Amazon SQS event sources, when you set BatchSize
	// to a value greater than 10, you must set MaximumBatchingWindowInSeconds to
	// at least 1.
	MaximumBatchingWindowInSeconds *int64 `type:"integer"`

	// (Kinesis and DynamoDB Streams only) Discard records older than the specified
	// age. The default value is -1, which sets the maximum age to infinite. When
	// the value is set to infinite, Lambda never discards old records.
	//
	// The minimum valid value for maximum record age is 60s. Although values less
	// than 60 and greater than -1 fall within the parameter's absolute range, they
	// are not allowed
	MaximumRecordAgeInSeconds *int64 `type:"integer"`

	// (Kinesis and DynamoDB Streams only) Discard records after the specified number
	// of retries. The default value is -1, which sets the maximum number of retries
	// to infinite. When MaximumRetryAttempts is infinite, Lambda retries failed
	// records until the record expires in the event source.
	MaximumRetryAttempts *int64 `type:"integer"`

	// (Kinesis and DynamoDB Streams only) The number of batches to process concurrently
	// from each shard. The default value is 1.
	ParallelizationFactor *int64 `min:"1" type:"integer"`

	// (Amazon MQ) The name of the Amazon MQ broker destination queue to consume.
	Queues []*string `min:"1" type:"list"`

	// (Amazon SQS only) The scaling configuration for the event source. For more
	// information, see Configuring maximum concurrency for Amazon SQS event sources
	// (https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency).
	ScalingConfig *ScalingConfig `type:"structure"`

	// The self-managed Apache Kafka cluster for your event source.
	SelfManagedEventSource *SelfManagedEventSource `type:"structure"`

	// Specific configuration settings for a self-managed Apache Kafka event source.
	SelfManagedKafkaEventSourceConfig *SelfManagedKafkaEventSourceConfig `type:"structure"`

	// An array of the authentication protocol, VPC components, or virtual host
	// to secure and define your event source.
	SourceAccessConfigurations []*SourceAccessConfiguration `type:"list"`

	// The position in a stream from which to start reading. Required for Amazon
	// Kinesis and Amazon DynamoDB Stream event sources. AT_TIMESTAMP is supported
	// only for Amazon Kinesis streams, Amazon DocumentDB, Amazon MSK, and self-managed
	// Apache Kafka.
	StartingPosition *string `type:"string" enum:"EventSourcePosition"`

	// With StartingPosition set to AT_TIMESTAMP, the time from which to start reading.
	// StartingPositionTimestamp cannot be in the future.
	StartingPositionTimestamp *time.Time `type:"timestamp"`

	// The state of the event source mapping. It can be one of the following: Creating,
	// Enabling, Enabled, Disabling, Disabled, Updating, or Deleting.
	State *string `type:"string"`

	// Indicates whether a user or Lambda made the last change to the event source
	// mapping.
	StateTransitionReason *string `type:"string"`

	// The name of the Kafka topic.
	Topics []*string `min:"1" type:"list"`

	// (Kinesis and DynamoDB Streams only) The duration in seconds of a processing
	// window for DynamoDB and Kinesis Streams event sources. A value of 0 seconds
	// indicates no tumbling window.
	TumblingWindowInSeconds *int64 `type:"integer"`

	// The identifier of the event source mapping.
	UUID *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EventSourceMappingConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s EventSourceMappingConfiguration) GoString() string {
	return s.String()
}

// SetAmazonManagedKafkaEventSourceConfig sets the AmazonManagedKafkaEventSourceConfig field's value.
func (s *EventSourceMappingConfiguration) SetAmazonManagedKafkaEventSourceConfig(v *AmazonManagedKafkaEventSourceConfig) *EventSourceMappingConfiguration {
	s.AmazonManagedKafkaEventSourceConfig = v
	return s
}

// SetBatchSize sets the BatchSize field's value.
func (s *EventSourceMappingConfiguration) SetBatchSize(v int64) *EventSourceMappingConfiguration {
	s.BatchSize = &v
	return s
}

// SetBisectBatchOnFunctionError sets the BisectBatchOnFunctionError field's value.
func (s *EventSourceMappingConfiguration) SetBisectBatchOnFunctionError(v bool) *EventSourceMappingConfiguration {
	s.BisectBatchOnFunctionError = &v
	return s
}

// SetDestinationConfig sets the DestinationConfig field's value.
func (s *EventSourceMappingConfiguration) SetDestinationConfig(v *DestinationConfig) *EventSourceMappingConfiguration {
	s.DestinationConfig = v
	return s
}

// SetDocumentDBEventSourceConfig sets the DocumentDBEventSourceConfig field's value.
func (s *EventSourceMappingConfiguration) SetDocumentDBEventSourceConfig(v *DocumentDBEventSourceConfig) *EventSourceMappingConfiguration {
	s.DocumentDBEventSourceConfig = v
	return s
}

// SetEventSourceArn sets the EventSourceArn field's value.
func (s *EventSourceMappingConfiguration) SetEventSourceArn(v string) *EventSourceMappingConfiguration {
	s.EventSourceArn = &v
	return s
}

// SetFilterCriteria sets the FilterCriteria field's value.
func (s *EventSourceMappingConfiguration) SetFilterCriteria(v *FilterCriteria) *EventSourceMappingConfiguration {
	s.FilterCriteria = v
	return s
}

// SetFunctionArn sets the FunctionArn field's value.
func (s *EventSourceMappingConfiguration) SetFunctionArn(v string) *EventSourceMappingConfiguration {
	s.FunctionArn = &v
	return s
}

// SetFunctionResponseTypes sets the FunctionResponseTypes field's value.
func (s *EventSourceMappingConfiguration) SetFunctionResponseTypes(v []*string) *EventSourceMappingConfiguration {
	s.FunctionResponseTypes = v
	return s
}

// SetLastModified sets the LastModified field's value.
func (s *EventSourceMappingConfiguration) SetLastModified(v time.Time) *EventSourceMappingConfiguration {
	s.LastModified = &v
	return s
}

// SetLastProcessingResult sets the LastProcessingResult field's value.
func (s *EventSourceMappingConfiguration) SetLastProcessingResult(v string) *EventSourceMappingConfiguration {
	s.LastProcessingResult = &v
	return s
}

// SetMaximumBatchingWindowInSeconds sets the MaximumBatchingWindowInSeconds field's value.
func (s *EventSourceMappingConfiguration) SetMaximumBatchingWindowInSeconds(v int64) *EventSourceMappingConfiguration {
	s.MaximumBatchingWindowInSeconds = &v
	return s
}

// SetMaximumRecordAgeInSeconds sets the MaximumRecordAgeInSeconds field's value.
func (s *EventSourceMappingConfiguration) SetMaximumRecordAgeInSeconds(v int64) *EventSourceMappingConfiguration {
	s.MaximumRecordAgeInSeconds = &v
	return s
}

// SetMaximumRetryAttempts sets the MaximumRetryAttempts field's value.
func (s *EventSourceMappingConfiguration) SetMaximumRetryAttempts(v int64) *EventSourceMappingConfiguration {
	s.MaximumRetryAttempts = &v
	return s
}

// SetParallelizationFactor sets the ParallelizationFactor field's value.
func (s *EventSourceMappingConfiguration) SetParallelizationFactor(v int64) *EventSourceMappingConfiguration {
	s.ParallelizationFactor = &v
	return s
}

// SetQueues sets the Queues field's value.
func (s *EventSourceMappingConfiguration) SetQueues(v []*string) *EventSourceMappingConfiguration {
	s.Queues = v
	return s
}

// SetScalingConfig sets the ScalingConfig field's value.
func (s *EventSourceMappingConfiguration) SetScalingConfig(v *ScalingConfig) *EventSourceMappingConfiguration {
	s.ScalingConfig = v
	return s
}

// SetSelfManagedEventSource sets the SelfManagedEventSource field's value.
func (s *EventSourceMappingConfiguration) SetSelfManagedEventSource(v *SelfManagedEventSource) *EventSourceMappingConfiguration {
	s.SelfManagedEventSource = v
	return s
}

// SetSelfManagedKafkaEventSourceConfig sets the SelfManagedKafkaEventSourceConfig field's value.
func (s *EventSourceMappingConfiguration) SetSelfManagedKafkaEventSourceConfig(v *SelfManagedKafkaEventSourceConfig) *EventSourceMappingConfiguration {
	s.SelfManagedKafkaEventSourceConfig = v
	return s
}

// SetSourceAccessConfigurations sets the SourceAccessConfigurations field's value.
func (s *EventSourceMappingConfiguration) SetSourceAccessConfigurations(v []*SourceAccessConfiguration) *EventSourceMappingConfiguration {
	s.SourceAccessConfigurations = v
	return s
}

// SetStartingPosition sets the StartingPosition field's value.
func (s *EventSourceMappingConfiguration) SetStartingPosition(v string) *EventSourceMappingConfiguration {
	s.StartingPosition = &v
	return s
}

// SetStartingPositionTimestamp sets the StartingPositionTimestamp field's value.
func (s *EventSourceMappingConfiguration) SetStartingPositionTimestamp(v time.Time) *EventSourceMappingConfiguration {
	s.StartingPositionTimestamp = &v
	return s
}

// SetState sets the State field's value.
func (s *EventSourceMappingConfiguration) SetState(v string) *EventSourceMappingConfiguration {
	s.State = &v
	return s
}

// SetStateTransitionReason sets the StateTransitionReason field's value.
func (s *EventSourceMappingConfiguration) SetStateTransitionReason(v string) *EventSourceMappingConfiguration {
	s.StateTransitionReason = &v
	return s
}

// SetTopics sets the Topics field's value.
func (s *EventSourceMappingConfiguration) SetTopics(v []*string) *EventSourceMappingConfiguration {
	s.Topics = v
	return s
}

// SetTumblingWindowInSeconds sets the TumblingWindowInSeconds field's value.
func (s *EventSourceMappingConfiguration) SetTumblingWindowInSeconds(v int64) *EventSourceMappingConfiguration {
	s.TumblingWindowInSeconds = &v
	return s
}

// SetUUID sets the UUID field's value.
func (s *EventSourceMappingConfiguration) SetUUID(v string) *EventSourceMappingConfiguration {
	s.UUID = &v
	return s
}

// Details about the connection between a Lambda function and an Amazon EFS
// file system (https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem.html).
type FileSystemConfig struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the Amazon EFS access point that provides
	// access to the file system.
	//
	// Arn is a required field
	Arn *string `type:"string" required:"true"`

	// The path where the function can access the file system, starting with /mnt/.
	//
	// LocalMountPath is a required field
	LocalMountPath *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FileSystemConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FileSystemConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *FileSystemConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "FileSystemConfig"}
	if s.Arn == nil {
		invalidParams.Add(request.NewErrParamRequired("Arn"))
	}
	if s.LocalMountPath == nil {
		invalidParams.Add(request.NewErrParamRequired("LocalMountPath"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetArn sets the Arn field's value.
func (s *FileSystemConfig) SetArn(v string) *FileSystemConfig {
	s.Arn = &v
	return s
}

// SetLocalMountPath sets the LocalMountPath field's value.
func (s *FileSystemConfig) SetLocalMountPath(v string) *FileSystemConfig {
	s.LocalMountPath = &v
	return s
}

// A structure within a FilterCriteria object that defines an event filtering
// pattern.
type Filter struct {
	_ struct{} `type:"structure"`

	// A filter pattern. For more information on the syntax of a filter pattern,
	// see Filter rule syntax (https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html#filtering-syntax).
	Pattern *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Filter) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Filter) GoString() string {
	return s.String()
}

// SetPattern sets the Pattern field's value.
func (s *Filter) SetPattern(v string) *Filter {
	s.Pattern = &v
	return s
}

// An object that contains the filters for an event source.
type FilterCriteria struct {
	_ struct{} `type:"structure"`

	// A list of filters.
	Filters []*Filter `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FilterCriteria) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FilterCriteria) GoString() string {
	return s.String()
}

// SetFilters sets the Filters field's value.
func (s *FilterCriteria) SetFilters(v []*Filter) *FilterCriteria {
	s.Filters = v
	return s
}

// The code for the Lambda function. You can either specify an object in Amazon
// S3, upload a .zip file archive deployment package directly, or specify the
// URI of a container image.
type FunctionCode struct {
	_ struct{} `type:"structure"`

	// URI of a container image (https://docs.aws.amazon.com/lambda/latest/dg/lambda-images.html)
	// in the Amazon ECR registry.
	ImageUri *string `type:"string"`

	// An Amazon S3 bucket in the same Amazon Web Services Region as your function.
	// The bucket can be in a different Amazon Web Services account.
	S3Bucket *string `min:"3" type:"string"`

	// The Amazon S3 key of the deployment package.
	S3Key *string `min:"1" type:"string"`

	// For versioned objects, the version of the deployment package object to use.
	S3ObjectVersion *string `min:"1" type:"string"`

	// The base64-encoded contents of the deployment package. Amazon Web Services
	// SDK and CLI clients handle the encoding for you.
	//
	// ZipFile is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by FunctionCode's
	// String and GoString methods.
	//
	// ZipFile is automatically base64 encoded/decoded by the SDK.
	ZipFile []byte `type:"blob" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FunctionCode) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FunctionCode) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *FunctionCode) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "FunctionCode"}
	if s.S3Bucket != nil && len(*s.S3Bucket) < 3 {
		invalidParams.Add(request.NewErrParamMinLen("S3Bucket", 3))
	}
	if s.S3Key != nil && len(*s.S3Key) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("S3Key", 1))
	}
	if s.S3ObjectVersion != nil && len(*s.S3ObjectVersion) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("S3ObjectVersion", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetImageUri sets the ImageUri field's value.
func (s *FunctionCode) SetImageUri(v string) *FunctionCode {
	s.ImageUri = &v
	return s
}

// SetS3Bucket sets the S3Bucket field's value.
func (s *FunctionCode) SetS3Bucket(v string) *FunctionCode {
	s.S3Bucket = &v
	return s
}

// SetS3Key sets the S3Key field's value.
func (s *FunctionCode) SetS3Key(v string) *FunctionCode {
	s.S3Key = &v
	return s
}

// SetS3ObjectVersion sets the S3ObjectVersion field's value.
func (s *FunctionCode) SetS3ObjectVersion(v string) *FunctionCode {
	s.S3ObjectVersion = &v
	return s
}

// SetZipFile sets the ZipFile field's value.
func (s *FunctionCode) SetZipFile(v []byte) *FunctionCode {
	s.ZipFile = v
	return s
}

// Details about a function's deployment package.
type FunctionCodeLocation struct {
	_ struct{} `type:"structure"`

	// URI of a container image in the Amazon ECR registry.
	ImageUri *string `type:"string"`

	// A presigned URL that you can use to download the deployment package.
	Location *string `type:"string"`

	// The service that's hosting the file.
	RepositoryType *string `type:"string"`

	// The resolved URI for the image.
	ResolvedImageUri *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FunctionCodeLocation) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FunctionCodeLocation) GoString() string {
	return s.String()
}

// SetImageUri sets the ImageUri field's value.
func (s *FunctionCodeLocation) SetImageUri(v string) *FunctionCodeLocation {
	s.ImageUri = &v
	return s
}

// SetLocation sets the Location field's value.
func (s *FunctionCodeLocation) SetLocation(v string) *FunctionCodeLocation {
	s.Location = &v
	return s
}

// SetRepositoryType sets the RepositoryType field's value.
func (s *FunctionCodeLocation) SetRepositoryType(v string) *FunctionCodeLocation {
	s.RepositoryType = &v
	return s
}

// SetResolvedImageUri sets the ResolvedImageUri field's value.
func (s *FunctionCodeLocation) SetResolvedImageUri(v string) *FunctionCodeLocation {
	s.ResolvedImageUri = &v
	return s
}

// Details about a function's configuration.
type FunctionConfiguration struct {
	_ struct{} `type:"structure"`

	// The instruction set architecture that the function supports. Architecture
	// is a string array with one of the valid values. The default architecture
	// value is x86_64.
	Architectures []*string `min:"1" type:"list" enum:"Architecture"`

	// The SHA256 hash of the function's deployment package.
	CodeSha256 *string `type:"string"`

	// The size of the function's deployment package, in bytes.
	CodeSize *int64 `type:"long"`

	// The function's dead letter queue.
	DeadLetterConfig *DeadLetterConfig `type:"structure"`

	// The function's description.
	Description *string `type:"string"`

	// The function's environment variables (https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html).
	// Omitted from CloudTrail logs.
	Environment *EnvironmentResponse `type:"structure"`

	// The size of the function's /tmp directory in MB. The default value is 512,
	// but can be any whole number between 512 and 10,240 MB. For more information,
	// see Configuring ephemeral storage (console) (https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-ephemeral-storage).
	EphemeralStorage *EphemeralStorage `type:"structure"`

	// Connection settings for an Amazon EFS file system (https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem.html).
	FileSystemConfigs []*FileSystemConfig `type:"list"`

	// The function's Amazon Resource Name (ARN).
	FunctionArn *string `type:"string"`

	// The name of the function.
	FunctionName *string `min:"1" type:"string"`

	// The function that Lambda calls to begin running your function.
	Handler *string `type:"string"`

	// The function's image configuration values.
	ImageConfigResponse *ImageConfigResponse `type:"structure"`

	// The KMS key that's used to encrypt the function's environment variables (https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption).
	// When Lambda SnapStart (https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html)
	// is activated, this key is also used to encrypt the function's snapshot. This
	// key is returned only if you've configured a customer managed key.
	KMSKeyArn *string `type:"string"`

	// The date and time that the function was last updated, in ISO-8601 format
	// (https://www.w3.org/TR/NOTE-datetime) (YYYY-MM-DDThh:mm:ss.sTZD).
	LastModified *string `type:"string"`

	// The status of the last update that was performed on the function. This is
	// first set to Successful after function creation completes.
	LastUpdateStatus *string `type:"string" enum:"LastUpdateStatus"`

	// The reason for the last update that was performed on the function.
	LastUpdateStatusReason *string `type:"string"`

	// The reason code for the last update that was performed on the function.
	LastUpdateStatusReasonCode *string `type:"string" enum:"LastUpdateStatusReasonCode"`

	// The function's layers (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html).
	Layers []*Layer `type:"list"`

	// The function's Amazon CloudWatch Logs configuration settings.
	LoggingConfig *LoggingConfig `type:"structure"`

	// For Lambda@Edge functions, the ARN of the main function.
	MasterArn *string `type:"string"`

	// The amount of memory available to the function at runtime.
	MemorySize *int64 `min:"128" type:"integer"`

	// The type of deployment package. Set to Image for container image and set
	// Zip for .zip file archive.
	PackageType *string `type:"string" enum:"PackageType"`

	// The latest updated revision of the function or alias.
	RevisionId *string `type:"string"`

	// The function's execution role.
	Role *string `type:"string"`

	// The identifier of the function's runtime (https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html).
	// Runtime is required if the deployment package is a .zip file archive.
	//
	// The following list includes deprecated runtimes. For more information, see
	// Runtime deprecation policy (https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy).
	Runtime *string `type:"string" enum:"Runtime"`

	// The ARN of the runtime and any errors that occured.
	RuntimeVersionConfig *RuntimeVersionConfig `type:"structure"`

	// The ARN of the signing job.
	SigningJobArn *string `type:"string"`

	// The ARN of the signing profile version.
	SigningProfileVersionArn *string `type:"string"`

	// Set ApplyOn to PublishedVersions to create a snapshot of the initialized
	// execution environment when you publish a function version. For more information,
	// see Improving startup performance with Lambda SnapStart (https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html).
	SnapStart *SnapStartResponse `type:"structure"`

	// The current state of the function. When the state is Inactive, you can reactivate
	// the function by invoking it.
	State *string `type:"string" enum:"State"`

	// The reason for the function's current state.
	StateReason *string `type:"string"`

	// The reason code for the function's current state. When the code is Creating,
	// you can't invoke or modify the function.
	StateReasonCode *string `type:"string" enum:"StateReasonCode"`

	// The amount of time in seconds that Lambda allows a function to run before
	// stopping it.
	Timeout *int64 `min:"1" type:"integer"`

	// The function's X-Ray tracing configuration.
	TracingConfig *TracingConfigResponse `type:"structure"`

	// The version of the Lambda function.
	Version *string `min:"1" type:"string"`

	// The function's networking configuration.
	VpcConfig *VpcConfigResponse `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FunctionConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FunctionConfiguration) GoString() string {
	return s.String()
}

// SetArchitectures sets the Architectures field's value.
func (s *FunctionConfiguration) SetArchitectures(v []*string) *FunctionConfiguration {
	s.Architectures = v
	return s
}

// SetCodeSha256 sets the CodeSha256 field's value.
func (s *FunctionConfiguration) SetCodeSha256(v string) *FunctionConfiguration {
	s.CodeSha256 = &v
	return s
}

// SetCodeSize sets the CodeSize field's value.
func (s *FunctionConfiguration) SetCodeSize(v int64) *FunctionConfiguration {
	s.CodeSize = &v
	return s
}

// SetDeadLetterConfig sets the DeadLetterConfig field's value.
func (s *FunctionConfiguration) SetDeadLetterConfig(v *DeadLetterConfig) *FunctionConfiguration {
	s.DeadLetterConfig = v
	return s
}

// SetDescription sets the Description field's value.
func (s *FunctionConfiguration) SetDescription(v string) *FunctionConfiguration {
	s.Description = &v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *FunctionConfiguration) SetEnvironment(v *EnvironmentResponse) *FunctionConfiguration {
	s.Environment = v
	return s
}

// SetEphemeralStorage sets the EphemeralStorage field's value.
func (s *FunctionConfiguration) SetEphemeralStorage(v *EphemeralStorage) *FunctionConfiguration {
	s.EphemeralStorage = v
	return s
}

// SetFileSystemConfigs sets the FileSystemConfigs field's value.
func (s *FunctionConfiguration) SetFileSystemConfigs(v []*FileSystemConfig) *FunctionConfiguration {
	s.FileSystemConfigs = v
	return s
}

// SetFunctionArn sets the FunctionArn field's value.
func (s *FunctionConfiguration) SetFunctionArn(v string) *FunctionConfiguration {
	s.FunctionArn = &v
	return s
}

// SetFunctionName sets the FunctionName field's value.
func (s *FunctionConfiguration) SetFunctionName(v string) *FunctionConfiguration {
	s.FunctionName = &v
	return s
}

// SetHandler sets the Handler field's value.
func (s *FunctionConfiguration) SetHandler(v string) *FunctionConfiguration {
	s.Handler = &v
	return s
}

// SetImageConfigResponse sets the ImageConfigResponse field's value.
func (s *FunctionConfiguration) SetImageConfigResponse(v *ImageConfigResponse) *FunctionConfiguration {
	s.ImageConfigResponse = v
	return s
}

// SetKMSKeyArn sets the KMSKeyArn field's value.
func (s *FunctionConfiguration) SetKMSKeyArn(v string) *FunctionConfiguration {
	s.KMSKeyArn = &v
	return s
}

// SetLastModified sets the LastModified field's value.
func (s *FunctionConfiguration) SetLastModified(v string) *FunctionConfiguration {
	s.LastModified = &v
	return s
}

// SetLastUpdateStatus sets the LastUpdateStatus field's value.
func (s *FunctionConfiguration) SetLastUpdateStatus(v string) *FunctionConfiguration {
	s.LastUpdateStatus = &v
	return s
}

// SetLastUpdateStatusReason sets the LastUpdateStatusReason field's value.
func (s *FunctionConfiguration) SetLastUpdateStatusReason(v string) *FunctionConfiguration {
	s.LastUpdateStatusReason = &v
	return s
}

// SetLastUpdateStatusReasonCode sets the LastUpdateStatusReasonCode field's value.
func (s *FunctionConfiguration) SetLastUpdateStatusReasonCode(v string) *FunctionConfiguration {
	s.LastUpdateStatusReasonCode = &v
	return s
}

// SetLayers sets the Layers field's value.
func (s *FunctionConfiguration) SetLayers(v []*Layer) *FunctionConfiguration {
	s.Layers = v
	return s
}

// SetLoggingConfig sets the LoggingConfig field's value.
func (s *FunctionConfiguration) SetLoggingConfig(v *LoggingConfig) *FunctionConfiguration {
	s.LoggingConfig = v
	return s
}

// SetMasterArn sets the MasterArn field's value.
func (s *FunctionConfiguration) SetMasterArn(v string) *FunctionConfiguration {
	s.MasterArn = &v
	return s
}

// SetMemorySize sets the MemorySize field's value.
func (s *FunctionConfiguration) SetMemorySize(v int64) *FunctionConfiguration {
	s.MemorySize = &v
	return s
}

// SetPackageType sets the PackageType field's value.
func (s *FunctionConfiguration) SetPackageType(v string) *FunctionConfiguration {
	s.PackageType = &v
	return s
}

// SetRevisionId sets the RevisionId field's value.
func (s *FunctionConfiguration) SetRevisionId(v string) *FunctionConfiguration {
	s.RevisionId = &v
	return s
}

// SetRole sets the Role field's value.
func (s *FunctionConfiguration) SetRole(v string) *FunctionConfiguration {
	s.Role = &v
	return s
}

// SetRuntime sets the Runtime field's value.
func (s *FunctionConfiguration) SetRuntime(v string) *FunctionConfiguration {
	s.Runtime = &v
	return s
}

// SetRuntimeVersionConfig sets the RuntimeVersionConfig field's value.
func (s *FunctionConfiguration) SetRuntimeVersionConfig(v *RuntimeVersionConfig) *FunctionConfiguration {
	s.RuntimeVersionConfig = v
	return s
}

// SetSigningJobArn sets the SigningJobArn field's value.
func (s *FunctionConfiguration) SetSigningJobArn(v string) *FunctionConfiguration {
	s.SigningJobArn = &v
	return s
}

// SetSigningProfileVersionArn sets the SigningProfileVersionArn field's value.
func (s *FunctionConfiguration) SetSigningProfileVersionArn(v string) *FunctionConfiguration {
	s.SigningProfileVersionArn = &v
	return s
}

// SetSnapStart sets the SnapStart field's value.
func (s *FunctionConfiguration) SetSnapStart(v *SnapStartResponse) *FunctionConfiguration {
	s.SnapStart = v
	return s
}

// SetState sets the State field's value.
func (s *FunctionConfiguration) SetState(v string) *FunctionConfiguration {
	s.State = &v
	return s
}

// SetStateReason sets the StateReason field's value.
func (s *FunctionConfiguration) SetStateReason(v string) *FunctionConfiguration {
	s.StateReason = &v
	return s
}

// SetStateReasonCode sets the StateReasonCode field's value.
func (s *FunctionConfiguration) SetStateReasonCode(v string) *FunctionConfiguration {
	s.StateReasonCode = &v
	return s
}

// SetTimeout sets the Timeout field's value.
func (s *FunctionConfiguration) SetTimeout(v int64) *FunctionConfiguration {
	s.Timeout = &v
	return s
}

// SetTracingConfig sets the TracingConfig field's value.
func (s *FunctionConfiguration) SetTracingConfig(v *TracingConfigResponse) *FunctionConfiguration {
	s.TracingConfig = v
	return s
}

// SetVersion sets the Version field's value.
func (s *FunctionConfiguration) SetVersion(v string) *FunctionConfiguration {
	s.Version = &v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *FunctionConfiguration) SetVpcConfig(v *VpcConfigResponse) *FunctionConfiguration {
	s.VpcConfig = v
	return s
}

type FunctionEventInvokeConfig struct {
	_ struct{} `type:"structure"`

	// A destination for events after they have been sent to a function for processing.
	//
	// Destinations
	//
	//    * Function - The Amazon Resource Name (ARN) of a Lambda function.
	//
	//    * Queue - The ARN of a standard SQS queue.
	//
	//    * Topic - The ARN of a standard SNS topic.
	//
	//    * Event Bus - The ARN of an Amazon EventBridge event bus.
	DestinationConfig *DestinationConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of the function.
	FunctionArn *string `type:"string"`

	// The date and time that the configuration was last updated.
	LastModified *time.Time `type:"timestamp"`

	// The maximum age of a request that Lambda sends to a function for processing.
	MaximumEventAgeInSeconds *int64 `min:"60" type:"integer"`

	// The maximum number of times to retry when the function returns an error.
	MaximumRetryAttempts *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FunctionEventInvokeConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FunctionEventInvokeConfig) GoString() string {
	return s.String()
}

// SetDestinationConfig sets the DestinationConfig field's value.
func (s *FunctionEventInvokeConfig) SetDestinationConfig(v *DestinationConfig) *FunctionEventInvokeConfig {
	s.DestinationConfig = v
	return s
}

// SetFunctionArn sets the FunctionArn field's value.
func (s *FunctionEventInvokeConfig) SetFunctionArn(v string) *FunctionEventInvokeConfig {
	s.FunctionArn = &v
	return s
}

// SetLastModified sets the LastModified field's value.
func (s *FunctionEventInvokeConfig) SetLastModified(v time.Time) *FunctionEventInvokeConfig {
	s.LastModified = &v
	return s
}

// SetMaximumEventAgeInSeconds sets the MaximumEventAgeInSeconds field's value.
func (s *FunctionEventInvokeConfig) SetMaximumEventAgeInSeconds(v int64) *FunctionEventInvokeConfig {
	s.MaximumEventAgeInSeconds = &v
	return s
}

// SetMaximumRetryAttempts sets the MaximumRetryAttempts field's value.
func (s *FunctionEventInvokeConfig) SetMaximumRetryAttempts(v int64) *FunctionEventInvokeConfig {
	s.MaximumRetryAttempts = &v
	return s
}

// Details about a Lambda function URL.
type FunctionUrlConfig struct {
	_ struct{} `type:"structure"`

	// The type of authentication that your function URL uses. Set to AWS_IAM if
	// you want to restrict access to authenticated users only. Set to NONE if you
	// want to bypass IAM authentication to create a public endpoint. For more information,
	// see Security and auth model for Lambda function URLs (https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html).
	//
	// AuthType is a required field
	AuthType *string `type:"string" required:"true" enum:"FunctionUrlAuthType"`

	// The cross-origin resource sharing (CORS) (https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
	// settings for your function URL.
	Cors *Cors `type:"structure"`

	// When the function URL was created, in ISO-8601 format (https://www.w3.org/TR/NOTE-datetime)
	// (YYYY-MM-DDThh:mm:ss.sTZD).
	//
	// CreationTime is a required field
	CreationTime *string `type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of your function.
	//
	// FunctionArn is a required field
	FunctionArn *string `type:"string" required:"true"`

	// The HTTP URL endpoint for your function.
	//
	// FunctionUrl is a required field
	FunctionUrl *string `min:"40" type:"string" required:"true"`

	// Use one of the following options:
	//
	//    * BUFFERED – This is the default option. Lambda invokes your function
	//    using the Invoke API operation. Invocation results are available when
	//    the payload is complete. The maximum payload size is 6 MB.
	//
	//    * RESPONSE_STREAM – Your function streams payload results as they become
	//    available. Lambda invokes your function using the InvokeWithResponseStream
	//    API operation. The maximum response payload size is 20 MB, however, you
	//    can request a quota increase (https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html).
	InvokeMode *string `type:"string" enum:"InvokeMode"`

	// When the function URL configuration was last updated, in ISO-8601 format
	// (https://www.w3.org/TR/NOTE-datetime) (YYYY-MM-DDThh:mm:ss.sTZD).
	//
	// LastModifiedTime is a required field
	LastModifiedTime *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FunctionUrlConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s FunctionUrlConfig) GoString() string {
	return s.String()
}

// SetAuthType sets the AuthType field's value.
func (s *FunctionUrlConfig) SetAuthType(v string) *FunctionUrlConfig {
	s.AuthType = &v
	return s
}

// SetCors sets the Cors field's value.
func (s *FunctionUrlConfig) SetCors(v *Cors) *FunctionUrlConfig {
	s.Cors = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *FunctionUrlConfig) SetCreationTime(v string) *FunctionUrlConfig {
	s.CreationTime = &v
	return s
}

// SetFunctionArn sets the FunctionArn field's value.
func (s *FunctionUrlConfig) SetFunctionArn(v string) *FunctionUrlConfig {
	s.FunctionArn = &v
	return s
}

// SetFunctionUrl sets the FunctionUrl field's value.
func (s *FunctionUrlConfig) SetFunctionUrl(v string) *FunctionUrlConfig {
	s.FunctionUrl = &v
	return s
}

// SetInvokeMode sets the InvokeMode field's value.
func (s *FunctionUrlConfig) SetInvokeMode(v string) *FunctionUrlConfig {
	s.InvokeMode = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *FunctionUrlConfig) SetLastModifiedTime(v string) *FunctionUrlConfig {
	s.LastModifiedTime = &v
	return s
}

type GetAccountSettingsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAccountSettingsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAccountSettingsInput) GoString() string {
	return s.String()
}

type GetAccountSettingsOutput struct {
	_ struct{} `type:"structure"`

	// Limits that are related to concurrency and code storage.
	AccountLimit *AccountLimit `type:"structure"`

	// The number of functions and amount of storage in use.
	AccountUsage *AccountUsage `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAccountSettingsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAccountSettingsOutput) GoString() string {
	return s.String()
}

// SetAccountLimit sets the AccountLimit field's value.
func (s *GetAccountSettingsOutput) SetAccountLimit(v *AccountLimit) *GetAccountSettingsOutput {
	s.AccountLimit = v
	return s
}

// SetAccountUsage sets the AccountUsage field's value.
func (s *GetAccountSettingsOutput) SetAccountUsage(v *AccountUsage) *GetAccountSettingsOutput {
	s.AccountUsage = v
	return s
}

type GetAliasInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name - MyFunction.
	//
	//    * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction.
	//
	//    * Partial ARN - 123456789012:function:MyFunction.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// The name of the alias.
	//
	// Name is a required field
	Name *string `location:"uri" locationName:"Name" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAliasInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAliasInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetAliasInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetAliasInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *GetAliasInput) SetFunctionName(v string) *GetAliasInput {
	s.FunctionName = &v
	return s
}

// SetName sets the Name field's value.
func (s *GetAliasInput) SetName(v string) *GetAliasInput {
	s.Name = &v
	return s
}

type GetCodeSigningConfigInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The The Amazon Resource Name (ARN) of the code signing configuration.
	//
	// CodeSigningConfigArn is a required field
	CodeSigningConfigArn *string `location:"uri" locationName:"CodeSigningConfigArn" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetCodeSigningConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetCodeSigningConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetCodeSigningConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetCodeSigningConfigInput"}
	if s.CodeSigningConfigArn == nil {
		invalidParams.Add(request.NewErrParamRequired("CodeSigningConfigArn"))
	}
	if s.CodeSigningConfigArn != nil && len(*s.CodeSigningConfigArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CodeSigningConfigArn", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCodeSigningConfigArn sets the CodeSigningConfigArn field's value.
func (s *GetCodeSigningConfigInput) SetCodeSigningConfigArn(v string) *GetCodeSigningConfigInput {
	s.CodeSigningConfigArn = &v
	return s
}

type GetCodeSigningConfigOutput struct {
	_ struct{} `type:"structure"`

	// The code signing configuration
	//
	// CodeSigningConfig is a required field
	CodeSigningConfig *CodeSigningConfig `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetCodeSigningConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetCodeSigningConfigOutput) GoString() string {
	return s.String()
}

// SetCodeSigningConfig sets the CodeSigningConfig field's value.
func (s *GetCodeSigningConfigOutput) SetCodeSigningConfig(v *CodeSigningConfig) *GetCodeSigningConfigOutput {
	s.CodeSigningConfig = v
	return s
}

type GetEventSourceMappingInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the event source mapping.
	//
	// UUID is a required field
	UUID *string `location:"uri" locationName:"UUID" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetEventSourceMappingInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetEventSourceMappingInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetEventSourceMappingInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetEventSourceMappingInput"}
	if s.UUID == nil {
		invalidParams.Add(request.NewErrParamRequired("UUID"))
	}
	if s.UUID != nil && len(*s.UUID) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UUID", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetUUID sets the UUID field's value.
func (s *GetEventSourceMappingInput) SetUUID(v string) *GetEventSourceMappingInput {
	s.UUID = &v
	return s
}

type GetFunctionCodeSigningConfigInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name - MyFunction.
	//
	//    * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction.
	//
	//    * Partial ARN - 123456789012:function:MyFunction.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionCodeSigningConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionCodeSigningConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetFunctionCodeSigningConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetFunctionCodeSigningConfigInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *GetFunctionCodeSigningConfigInput) SetFunctionName(v string) *GetFunctionCodeSigningConfigInput {
	s.FunctionName = &v
	return s
}

type GetFunctionCodeSigningConfigOutput struct {
	_ struct{} `type:"structure"`

	// The The Amazon Resource Name (ARN) of the code signing configuration.
	//
	// CodeSigningConfigArn is a required field
	CodeSigningConfigArn *string `type:"string" required:"true"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name - MyFunction.
	//
	//    * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction.
	//
	//    * Partial ARN - 123456789012:function:MyFunction.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionCodeSigningConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionCodeSigningConfigOutput) GoString() string {
	return s.String()
}

// SetCodeSigningConfigArn sets the CodeSigningConfigArn field's value.
func (s *GetFunctionCodeSigningConfigOutput) SetCodeSigningConfigArn(v string) *GetFunctionCodeSigningConfigOutput {
	s.CodeSigningConfigArn = &v
	return s
}

// SetFunctionName sets the FunctionName field's value.
func (s *GetFunctionCodeSigningConfigOutput) SetFunctionName(v string) *GetFunctionCodeSigningConfigOutput {
	s.FunctionName = &v
	return s
}

type GetFunctionConcurrencyInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – my-function.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionConcurrencyInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionConcurrencyInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetFunctionConcurrencyInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetFunctionConcurrencyInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *GetFunctionConcurrencyInput) SetFunctionName(v string) *GetFunctionConcurrencyInput {
	s.FunctionName = &v
	return s
}

type GetFunctionConcurrencyOutput struct {
	_ struct{} `type:"structure"`

	// The number of simultaneous executions that are reserved for the function.
	ReservedConcurrentExecutions *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionConcurrencyOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionConcurrencyOutput) GoString() string {
	return s.String()
}

// SetReservedConcurrentExecutions sets the ReservedConcurrentExecutions field's value.
func (s *GetFunctionConcurrencyOutput) SetReservedConcurrentExecutions(v int64) *GetFunctionConcurrencyOutput {
	s.ReservedConcurrentExecutions = &v
	return s
}

type GetFunctionConfigurationInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function, version, or alias.
	//
	// Name formats
	//
	//    * Function name – my-function (name-only), my-function:v1 (with alias).
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// You can append a version number or alias to any of the formats. The length
	// constraint applies only to the full ARN. If you specify only the function
	// name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// Specify a version or alias to get details about a published version of the
	// function.
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionConfigurationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionConfigurationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetFunctionConfigurationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetFunctionConfigurationInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *GetFunctionConfigurationInput) SetFunctionName(v string) *GetFunctionConfigurationInput {
	s.FunctionName = &v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *GetFunctionConfigurationInput) SetQualifier(v string) *GetFunctionConfigurationInput {
	s.Qualifier = &v
	return s
}

type GetFunctionEventInvokeConfigInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function, version, or alias.
	//
	// Name formats
	//
	//    * Function name - my-function (name-only), my-function:v1 (with alias).
	//
	//    * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN - 123456789012:function:my-function.
	//
	// You can append a version number or alias to any of the formats. The length
	// constraint applies only to the full ARN. If you specify only the function
	// name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// A version number or alias name.
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionEventInvokeConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionEventInvokeConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetFunctionEventInvokeConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetFunctionEventInvokeConfigInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *GetFunctionEventInvokeConfigInput) SetFunctionName(v string) *GetFunctionEventInvokeConfigInput {
	s.FunctionName = &v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *GetFunctionEventInvokeConfigInput) SetQualifier(v string) *GetFunctionEventInvokeConfigInput {
	s.Qualifier = &v
	return s
}

type GetFunctionEventInvokeConfigOutput struct {
	_ struct{} `type:"structure"`

	// A destination for events after they have been sent to a function for processing.
	//
	// Destinations
	//
	//    * Function - The Amazon Resource Name (ARN) of a Lambda function.
	//
	//    * Queue - The ARN of a standard SQS queue.
	//
	//    * Topic - The ARN of a standard SNS topic.
	//
	//    * Event Bus - The ARN of an Amazon EventBridge event bus.
	DestinationConfig *DestinationConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of the function.
	FunctionArn *string `type:"string"`

	// The date and time that the configuration was last updated.
	LastModified *time.Time `type:"timestamp"`

	// The maximum age of a request that Lambda sends to a function for processing.
	MaximumEventAgeInSeconds *int64 `min:"60" type:"integer"`

	// The maximum number of times to retry when the function returns an error.
	MaximumRetryAttempts *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionEventInvokeConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionEventInvokeConfigOutput) GoString() string {
	return s.String()
}

// SetDestinationConfig sets the DestinationConfig field's value.
func (s *GetFunctionEventInvokeConfigOutput) SetDestinationConfig(v *DestinationConfig) *GetFunctionEventInvokeConfigOutput {
	s.DestinationConfig = v
	return s
}

// SetFunctionArn sets the FunctionArn field's value.
func (s *GetFunctionEventInvokeConfigOutput) SetFunctionArn(v string) *GetFunctionEventInvokeConfigOutput {
	s.FunctionArn = &v
	return s
}

// SetLastModified sets the LastModified field's value.
func (s *GetFunctionEventInvokeConfigOutput) SetLastModified(v time.Time) *GetFunctionEventInvokeConfigOutput {
	s.LastModified = &v
	return s
}

// SetMaximumEventAgeInSeconds sets the MaximumEventAgeInSeconds field's value.
func (s *GetFunctionEventInvokeConfigOutput) SetMaximumEventAgeInSeconds(v int64) *GetFunctionEventInvokeConfigOutput {
	s.MaximumEventAgeInSeconds = &v
	return s
}

// SetMaximumRetryAttempts sets the MaximumRetryAttempts field's value.
func (s *GetFunctionEventInvokeConfigOutput) SetMaximumRetryAttempts(v int64) *GetFunctionEventInvokeConfigOutput {
	s.MaximumRetryAttempts = &v
	return s
}

type GetFunctionInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function, version, or alias.
	//
	// Name formats
	//
	//    * Function name – my-function (name-only), my-function:v1 (with alias).
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// You can append a version number or alias to any of the formats. The length
	// constraint applies only to the full ARN. If you specify only the function
	// name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// Specify a version or alias to get details about a published version of the
	// function.
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetFunctionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetFunctionInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *GetFunctionInput) SetFunctionName(v string) *GetFunctionInput {
	s.FunctionName = &v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *GetFunctionInput) SetQualifier(v string) *GetFunctionInput {
	s.Qualifier = &v
	return s
}

type GetFunctionOutput struct {
	_ struct{} `type:"structure"`

	// The deployment package of the function or version.
	Code *FunctionCodeLocation `type:"structure"`

	// The function's reserved concurrency (https://docs.aws.amazon.com/lambda/latest/dg/concurrent-executions.html).
	Concurrency *PutFunctionConcurrencyOutput `type:"structure"`

	// The configuration of the function or version.
	Configuration *FunctionConfiguration `type:"structure"`

	// The function's tags (https://docs.aws.amazon.com/lambda/latest/dg/tagging.html).
	Tags map[string]*string `type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionOutput) GoString() string {
	return s.String()
}

// SetCode sets the Code field's value.
func (s *GetFunctionOutput) SetCode(v *FunctionCodeLocation) *GetFunctionOutput {
	s.Code = v
	return s
}

// SetConcurrency sets the Concurrency field's value.
func (s *GetFunctionOutput) SetConcurrency(v *PutFunctionConcurrencyOutput) *GetFunctionOutput {
	s.Concurrency = v
	return s
}

// SetConfiguration sets the Configuration field's value.
func (s *GetFunctionOutput) SetConfiguration(v *FunctionConfiguration) *GetFunctionOutput {
	s.Configuration = v
	return s
}

// SetTags sets the Tags field's value.
func (s *GetFunctionOutput) SetTags(v map[string]*string) *GetFunctionOutput {
	s.Tags = v
	return s
}

type GetFunctionUrlConfigInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – my-function.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// The alias name.
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionUrlConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionUrlConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetFunctionUrlConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetFunctionUrlConfigInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *GetFunctionUrlConfigInput) SetFunctionName(v string) *GetFunctionUrlConfigInput {
	s.FunctionName = &v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *GetFunctionUrlConfigInput) SetQualifier(v string) *GetFunctionUrlConfigInput {
	s.Qualifier = &v
	return s
}

type GetFunctionUrlConfigOutput struct {
	_ struct{} `type:"structure"`

	// The type of authentication that your function URL uses. Set to AWS_IAM if
	// you want to restrict access to authenticated users only. Set to NONE if you
	// want to bypass IAM authentication to create a public endpoint. For more information,
	// see Security and auth model for Lambda function URLs (https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html).
	//
	// AuthType is a required field
	AuthType *string `type:"string" required:"true" enum:"FunctionUrlAuthType"`

	// The cross-origin resource sharing (CORS) (https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
	// settings for your function URL.
	Cors *Cors `type:"structure"`

	// When the function URL was created, in ISO-8601 format (https://www.w3.org/TR/NOTE-datetime)
	// (YYYY-MM-DDThh:mm:ss.sTZD).
	//
	// CreationTime is a required field
	CreationTime *string `type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of your function.
	//
	// FunctionArn is a required field
	FunctionArn *string `type:"string" required:"true"`

	// The HTTP URL endpoint for your function.
	//
	// FunctionUrl is a required field
	FunctionUrl *string `min:"40" type:"string" required:"true"`

	// Use one of the following options:
	//
	//    * BUFFERED – This is the default option. Lambda invokes your function
	//    using the Invoke API operation. Invocation results are available when
	//    the payload is complete. The maximum payload size is 6 MB.
	//
	//    * RESPONSE_STREAM – Your function streams payload results as they become
	//    available. Lambda invokes your function using the InvokeWithResponseStream
	//    API operation. The maximum response payload size is 20 MB, however, you
	//    can request a quota increase (https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html).
	InvokeMode *string `type:"string" enum:"InvokeMode"`

	// When the function URL configuration was last updated, in ISO-8601 format
	// (https://www.w3.org/TR/NOTE-datetime) (YYYY-MM-DDThh:mm:ss.sTZD).
	//
	// LastModifiedTime is a required field
	LastModifiedTime *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionUrlConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFunctionUrlConfigOutput) GoString() string {
	return s.String()
}

// SetAuthType sets the AuthType field's value.
func (s *GetFunctionUrlConfigOutput) SetAuthType(v string) *GetFunctionUrlConfigOutput {
	s.AuthType = &v
	return s
}

// SetCors sets the Cors field's value.
func (s *GetFunctionUrlConfigOutput) SetCors(v *Cors) *GetFunctionUrlConfigOutput {
	s.Cors = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *GetFunctionUrlConfigOutput) SetCreationTime(v string) *GetFunctionUrlConfigOutput {
	s.CreationTime = &v
	return s
}

// SetFunctionArn sets the FunctionArn field's value.
func (s *GetFunctionUrlConfigOutput) SetFunctionArn(v string) *GetFunctionUrlConfigOutput {
	s.FunctionArn = &v
	return s
}

// SetFunctionUrl sets the FunctionUrl field's value.
func (s *GetFunctionUrlConfigOutput) SetFunctionUrl(v string) *GetFunctionUrlConfigOutput {
	s.FunctionUrl = &v
	return s
}

// SetInvokeMode sets the InvokeMode field's value.
func (s *GetFunctionUrlConfigOutput) SetInvokeMode(v string) *GetFunctionUrlConfigOutput {
	s.InvokeMode = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *GetFunctionUrlConfigOutput) SetLastModifiedTime(v string) *GetFunctionUrlConfigOutput {
	s.LastModifiedTime = &v
	return s
}

type GetLayerVersionByArnInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the layer version.
	//
	// Arn is a required field
	Arn *string `location:"querystring" locationName:"Arn" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetLayerVersionByArnInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetLayerVersionByArnInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetLayerVersionByArnInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetLayerVersionByArnInput"}
	if s.Arn == nil {
		invalidParams.Add(request.NewErrParamRequired("Arn"))
	}
	if s.Arn != nil && len(*s.Arn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetArn sets the Arn field's value.
func (s *GetLayerVersionByArnInput) SetArn(v string) *GetLayerVersionByArnInput {
	s.Arn = &v
	return s
}

type GetLayerVersionByArnOutput struct {
	_ struct{} `type:"structure"`

	// A list of compatible instruction set architectures (https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html).
	CompatibleArchitectures []*string `type:"list" enum:"Architecture"`

	// The layer's compatible runtimes.
	//
	// The following list includes deprecated runtimes. For more information, see
	// Runtime deprecation policy (https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy).
	CompatibleRuntimes []*string `type:"list" enum:"Runtime"`

	// Details about the layer version.
	Content *LayerVersionContentOutput `type:"structure"`

	// The date that the layer version was created, in ISO-8601 format (https://www.w3.org/TR/NOTE-datetime)
	// (YYYY-MM-DDThh:mm:ss.sTZD).
	CreatedDate *string `type:"string"`

	// The description of the version.
	Description *string `type:"string"`

	// The ARN of the layer.
	LayerArn *string `min:"1" type:"string"`

	// The ARN of the layer version.
	LayerVersionArn *string `min:"1" type:"string"`

	// The layer's software license.
	LicenseInfo *string `type:"string"`

	// The version number.
	Version *int64 `type:"long"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetLayerVersionByArnOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetLayerVersionByArnOutput) GoString() string {
	return s.String()
}

// SetCompatibleArchitectures sets the CompatibleArchitectures field's value.
func (s *GetLayerVersionByArnOutput) SetCompatibleArchitectures(v []*string) *GetLayerVersionByArnOutput {
	s.CompatibleArchitectures = v
	return s
}

// SetCompatibleRuntimes sets the CompatibleRuntimes field's value.
func (s *GetLayerVersionByArnOutput) SetCompatibleRuntimes(v []*string) *GetLayerVersionByArnOutput {
	s.CompatibleRuntimes = v
	return s
}

// SetContent sets the Content field's value.
func (s *GetLayerVersionByArnOutput) SetContent(v *LayerVersionContentOutput) *GetLayerVersionByArnOutput {
	s.Content = v
	return s
}

// SetCreatedDate sets the CreatedDate field's value.
func (s *GetLayerVersionByArnOutput) SetCreatedDate(v string) *GetLayerVersionByArnOutput {
	s.CreatedDate = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *GetLayerVersionByArnOutput) SetDescription(v string) *GetLayerVersionByArnOutput {
	s.Description = &v
	return s
}

// SetLayerArn sets the LayerArn field's value.
func (s *GetLayerVersionByArnOutput) SetLayerArn(v string) *GetLayerVersionByArnOutput {
	s.LayerArn = &v
	return s
}

// SetLayerVersionArn sets the LayerVersionArn field's value.
func (s *GetLayerVersionByArnOutput) SetLayerVersionArn(v string) *GetLayerVersionByArnOutput {
	s.LayerVersionArn = &v
	return s
}

// SetLicenseInfo sets the LicenseInfo field's value.
func (s *GetLayerVersionByArnOutput) SetLicenseInfo(v string) *GetLayerVersionByArnOutput {
	s.LicenseInfo = &v
	return s
}

// SetVersion sets the Version field's value.
func (s *GetLayerVersionByArnOutput) SetVersion(v int64) *GetLayerVersionByArnOutput {
	s.Version = &v
	return s
}

type GetLayerVersionInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or Amazon Resource Name (ARN) of the layer.
	//
	// LayerName is a required field
	LayerName *string `location:"uri" locationName:"LayerName" min:"1" type:"string" required:"true"`

	// The version number.
	//
	// VersionNumber is a required field
	VersionNumber *int64 `location:"uri" locationName:"VersionNumber" type:"long" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetLayerVersionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetLayerVersionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetLayerVersionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetLayerVersionInput"}
	if s.LayerName == nil {
		invalidParams.Add(request.NewErrParamRequired("LayerName"))
	}
	if s.LayerName != nil && len(*s.LayerName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("LayerName", 1))
	}
	if s.VersionNumber == nil {
		invalidParams.Add(request.NewErrParamRequired("VersionNumber"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetLayerName sets the LayerName field's value.
func (s *GetLayerVersionInput) SetLayerName(v string) *GetLayerVersionInput {
	s.LayerName = &v
	return s
}

// SetVersionNumber sets the VersionNumber field's value.
func (s *GetLayerVersionInput) SetVersionNumber(v int64) *GetLayerVersionInput {
	s.VersionNumber = &v
	return s
}

type GetLayerVersionOutput struct {
	_ struct{} `type:"structure"`

	// A list of compatible instruction set architectures (https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html).
	CompatibleArchitectures []*string `type:"list" enum:"Architecture"`

	// The layer's compatible runtimes.
	//
	// The following list includes deprecated runtimes. For more information, see
	// Runtime deprecation policy (https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy).
	CompatibleRuntimes []*string `type:"list" enum:"Runtime"`

	// Details about the layer version.
	Content *LayerVersionContentOutput `type:"structure"`

	// The date that the layer version was created, in ISO-8601 format (https://www.w3.org/TR/NOTE-datetime)
	// (YYYY-MM-DDThh:mm:ss.sTZD).
	CreatedDate *string `type:"string"`

	// The description of the version.
	Description *string `type:"string"`

	// The ARN of the layer.
	LayerArn *string `min:"1" type:"string"`

	// The ARN of the layer version.
	LayerVersionArn *string `min:"1" type:"string"`

	// The layer's software license.
	LicenseInfo *string `type:"string"`

	// The version number.
	Version *int64 `type:"long"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetLayerVersionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetLayerVersionOutput) GoString() string {
	return s.String()
}

// SetCompatibleArchitectures sets the CompatibleArchitectures field's value.
func (s *GetLayerVersionOutput) SetCompatibleArchitectures(v []*string) *GetLayerVersionOutput {
	s.CompatibleArchitectures = v
	return s
}

// SetCompatibleRuntimes sets the CompatibleRuntimes field's value.
func (s *GetLayerVersionOutput) SetCompatibleRuntimes(v []*string) *GetLayerVersionOutput {
	s.CompatibleRuntimes = v
	return s
}

// SetContent sets the Content field's value.
func (s *GetLayerVersionOutput) SetContent(v *LayerVersionContentOutput) *GetLayerVersionOutput {
	s.Content = v
	return s
}

// SetCreatedDate sets the CreatedDate field's value.
func (s *GetLayerVersionOutput) SetCreatedDate(v string) *GetLayerVersionOutput {
	s.CreatedDate = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *GetLayerVersionOutput) SetDescription(v string) *GetLayerVersionOutput {
	s.Description = &v
	return s
}

// SetLayerArn sets the LayerArn field's value.
func (s *GetLayerVersionOutput) SetLayerArn(v string) *GetLayerVersionOutput {
	s.LayerArn = &v
	return s
}

// SetLayerVersionArn sets the LayerVersionArn field's value.
func (s *GetLayerVersionOutput) SetLayerVersionArn(v string) *GetLayerVersionOutput {
	s.LayerVersionArn = &v
	return s
}

// SetLicenseInfo sets the LicenseInfo field's value.
func (s *GetLayerVersionOutput) SetLicenseInfo(v string) *GetLayerVersionOutput {
	s.LicenseInfo = &v
	return s
}

// SetVersion sets the Version field's value.
func (s *GetLayerVersionOutput) SetVersion(v int64) *GetLayerVersionOutput {
	s.Version = &v
	return s
}

type GetLayerVersionPolicyInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or Amazon Resource Name (ARN) of the layer.
	//
	// LayerName is a required field
	LayerName *string `location:"uri" locationName:"LayerName" min:"1" type:"string" required:"true"`

	// The version number.
	//
	// VersionNumber is a required field
	VersionNumber *int64 `location:"uri" locationName:"VersionNumber" type:"long" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetLayerVersionPolicyInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetLayerVersionPolicyInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetLayerVersionPolicyInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetLayerVersionPolicyInput"}
	if s.LayerName == nil {
		invalidParams.Add(request.NewErrParamRequired("LayerName"))
	}
	if s.LayerName != nil && len(*s.LayerName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("LayerName", 1))
	}
	if s.VersionNumber == nil {
		invalidParams.Add(request.NewErrParamRequired("VersionNumber"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetLayerName sets the LayerName field's value.
func (s *GetLayerVersionPolicyInput) SetLayerName(v string) *GetLayerVersionPolicyInput {
	s.LayerName = &v
	return s
}

// SetVersionNumber sets the VersionNumber field's value.
func (s *GetLayerVersionPolicyInput) SetVersionNumber(v int64) *GetLayerVersionPolicyInput {
	s.VersionNumber = &v
	return s
}

type GetLayerVersionPolicyOutput struct {
	_ struct{} `type:"structure"`

	// The policy document.
	Policy *string `type:"string"`

	// A unique identifier for the current revision of the policy.
	RevisionId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetLayerVersionPolicyOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetLayerVersionPolicyOutput) GoString() string {
	return s.String()
}

// SetPolicy sets the Policy field's value.
func (s *GetLayerVersionPolicyOutput) SetPolicy(v string) *GetLayerVersionPolicyOutput {
	s.Policy = &v
	return s
}

// SetRevisionId sets the RevisionId field's value.
func (s *GetLayerVersionPolicyOutput) SetRevisionId(v string) *GetLayerVersionPolicyOutput {
	s.RevisionId = &v
	return s
}

type GetPolicyInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function, version, or alias.
	//
	// Name formats
	//
	//    * Function name – my-function (name-only), my-function:v1 (with alias).
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// You can append a version number or alias to any of the formats. The length
	// constraint applies only to the full ARN. If you specify only the function
	// name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// Specify a version or alias to get the policy for that resource.
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetPolicyInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetPolicyInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetPolicyInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetPolicyInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *GetPolicyInput) SetFunctionName(v string) *GetPolicyInput {
	s.FunctionName = &v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *GetPolicyInput) SetQualifier(v string) *GetPolicyInput {
	s.Qualifier = &v
	return s
}

type GetPolicyOutput struct {
	_ struct{} `type:"structure"`

	// The resource-based policy.
	Policy *string `type:"string"`

	// A unique identifier for the current revision of the policy.
	RevisionId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetPolicyOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetPolicyOutput) GoString() string {
	return s.String()
}

// SetPolicy sets the Policy field's value.
func (s *GetPolicyOutput) SetPolicy(v string) *GetPolicyOutput {
	s.Policy = &v
	return s
}

// SetRevisionId sets the RevisionId field's value.
func (s *GetPolicyOutput) SetRevisionId(v string) *GetPolicyOutput {
	s.RevisionId = &v
	return s
}

type GetProvisionedConcurrencyConfigInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – my-function.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// The version number or alias name.
	//
	// Qualifier is a required field
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetProvisionedConcurrencyConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetProvisionedConcurrencyConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetProvisionedConcurrencyConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetProvisionedConcurrencyConfigInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.Qualifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Qualifier"))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *GetProvisionedConcurrencyConfigInput) SetFunctionName(v string) *GetProvisionedConcurrencyConfigInput {
	s.FunctionName = &v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *GetProvisionedConcurrencyConfigInput) SetQualifier(v string) *GetProvisionedConcurrencyConfigInput {
	s.Qualifier = &v
	return s
}

type GetProvisionedConcurrencyConfigOutput struct {
	_ struct{} `type:"structure"`

	// The amount of provisioned concurrency allocated. When a weighted alias is
	// used during linear and canary deployments, this value fluctuates depending
	// on the amount of concurrency that is provisioned for the function versions.
	AllocatedProvisionedConcurrentExecutions *int64 `type:"integer"`

	// The amount of provisioned concurrency available.
	AvailableProvisionedConcurrentExecutions *int64 `type:"integer"`

	// The date and time that a user last updated the configuration, in ISO 8601
	// format (https://www.iso.org/iso-8601-date-and-time-format.html).
	LastModified *string `type:"string"`

	// The amount of provisioned concurrency requested.
	RequestedProvisionedConcurrentExecutions *int64 `min:"1" type:"integer"`

	// The status of the allocation process.
	Status *string `type:"string" enum:"ProvisionedConcurrencyStatusEnum"`

	// For failed allocations, the reason that provisioned concurrency could not
	// be allocated.
	StatusReason *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetProvisionedConcurrencyConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetProvisionedConcurrencyConfigOutput) GoString() string {
	return s.String()
}

// SetAllocatedProvisionedConcurrentExecutions sets the AllocatedProvisionedConcurrentExecutions field's value.
func (s *GetProvisionedConcurrencyConfigOutput) SetAllocatedProvisionedConcurrentExecutions(v int64) *GetProvisionedConcurrencyConfigOutput {
	s.AllocatedProvisionedConcurrentExecutions = &v
	return s
}

// SetAvailableProvisionedConcurrentExecutions sets the AvailableProvisionedConcurrentExecutions field's value.
func (s *GetProvisionedConcurrencyConfigOutput) SetAvailableProvisionedConcurrentExecutions(v int64) *GetProvisionedConcurrencyConfigOutput {
	s.AvailableProvisionedConcurrentExecutions = &v
	return s
}

// SetLastModified sets the LastModified field's value.
func (s *GetProvisionedConcurrencyConfigOutput) SetLastModified(v string) *GetProvisionedConcurrencyConfigOutput {
	s.LastModified = &v
	return s
}

// SetRequestedProvisionedConcurrentExecutions sets the RequestedProvisionedConcurrentExecutions field's value.
func (s *GetProvisionedConcurrencyConfigOutput) SetRequestedProvisionedConcurrentExecutions(v int64) *GetProvisionedConcurrencyConfigOutput {
	s.RequestedProvisionedConcurrentExecutions = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *GetProvisionedConcurrencyConfigOutput) SetStatus(v string) *GetProvisionedConcurrencyConfigOutput {
	s.Status = &v
	return s
}

// SetStatusReason sets the StatusReason field's value.
func (s *GetProvisionedConcurrencyConfigOutput) SetStatusReason(v string) *GetProvisionedConcurrencyConfigOutput {
	s.StatusReason = &v
	return s
}

type GetRuntimeManagementConfigInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – my-function.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// Specify a version of the function. This can be $LATEST or a published version
	// number. If no value is specified, the configuration for the $LATEST version
	// is returned.
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetRuntimeManagementConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetRuntimeManagementConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetRuntimeManagementConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetRuntimeManagementConfigInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *GetRuntimeManagementConfigInput) SetFunctionName(v string) *GetRuntimeManagementConfigInput {
	s.FunctionName = &v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *GetRuntimeManagementConfigInput) SetQualifier(v string) *GetRuntimeManagementConfigInput {
	s.Qualifier = &v
	return s
}

type GetRuntimeManagementConfigOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of your function.
	FunctionArn *string `type:"string"`

	// The ARN of the runtime the function is configured to use. If the runtime
	// update mode is Manual, the ARN is returned, otherwise null is returned.
	RuntimeVersionArn *string `min:"26" type:"string"`

	// The current runtime update mode of the function.
	UpdateRuntimeOn *string `type:"string" enum:"UpdateRuntimeOn"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetRuntimeManagementConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetRuntimeManagementConfigOutput) GoString() string {
	return s.String()
}

// SetFunctionArn sets the FunctionArn field's value.
func (s *GetRuntimeManagementConfigOutput) SetFunctionArn(v string) *GetRuntimeManagementConfigOutput {
	s.FunctionArn = &v
	return s
}

// SetRuntimeVersionArn sets the RuntimeVersionArn field's value.
func (s *GetRuntimeManagementConfigOutput) SetRuntimeVersionArn(v string) *GetRuntimeManagementConfigOutput {
	s.RuntimeVersionArn = &v
	return s
}

// SetUpdateRuntimeOn sets the UpdateRuntimeOn field's value.
func (s *GetRuntimeManagementConfigOutput) SetUpdateRuntimeOn(v string) *GetRuntimeManagementConfigOutput {
	s.UpdateRuntimeOn = &v
	return s
}

// Configuration values that override the container image Dockerfile settings.
// For more information, see Container image settings (https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms).
type ImageConfig struct {
	_ struct{} `type:"structure"`

	// Specifies parameters that you want to pass in with ENTRYPOINT.
	Command []*string `type:"list"`

	// Specifies the entry point to their application, which is typically the location
	// of the runtime executable.
	EntryPoint []*string `type:"list"`

	// Specifies the working directory.
	WorkingDirectory *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ImageConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ImageConfig) GoString() string {
	return s.String()
}

// SetCommand sets the Command field's value.
func (s *ImageConfig) SetCommand(v []*string) *ImageConfig {
	s.Command = v
	return s
}

// SetEntryPoint sets the EntryPoint field's value.
func (s *ImageConfig) SetEntryPoint(v []*string) *ImageConfig {
	s.EntryPoint = v
	return s
}

// SetWorkingDirectory sets the WorkingDirectory field's value.
func (s *ImageConfig) SetWorkingDirectory(v string) *ImageConfig {
	s.WorkingDirectory = &v
	return s
}

// Error response to GetFunctionConfiguration.
type ImageConfigError struct {
	_ struct{} `type:"structure"`

	// Error code.
	ErrorCode *string `type:"string"`

	// Error message.
	//
	// Message is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ImageConfigError's
	// String and GoString methods.
	Message *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ImageConfigError) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ImageConfigError) GoString() string {
	return s.String()
}

// SetErrorCode sets the ErrorCode field's value.
func (s *ImageConfigError) SetErrorCode(v string) *ImageConfigError {
	s.ErrorCode = &v
	return s
}

// SetMessage sets the Message field's value.
func (s *ImageConfigError) SetMessage(v string) *ImageConfigError {
	s.Message = &v
	return s
}

// Response to a GetFunctionConfiguration request.
type ImageConfigResponse struct {
	_ struct{} `type:"structure"`

	// Error response to GetFunctionConfiguration.
	Error *ImageConfigError `type:"structure"`

	// Configuration values that override the container image Dockerfile.
	ImageConfig *ImageConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ImageConfigResponse) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ImageConfigResponse) GoString() string {
	return s.String()
}

// SetError sets the Error field's value.
func (s *ImageConfigResponse) SetError(v *ImageConfigError) *ImageConfigResponse {
	s.Error = v
	return s
}

// SetImageConfig sets the ImageConfig field's value.
func (s *ImageConfigResponse) SetImageConfig(v *ImageConfig) *ImageConfigResponse {
	s.ImageConfig = v
	return s
}

// The code signature failed the integrity check. If the integrity check fails,
// then Lambda blocks deployment, even if the code signing policy is set to
// WARN.
type InvalidCodeSignatureException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvalidCodeSignatureException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvalidCodeSignatureException) GoString() string {
	return s.String()
}

func newErrorInvalidCodeSignatureException(v protocol.ResponseMetadata) error {
	return &InvalidCodeSignatureException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *InvalidCodeSignatureException) Code() string {
	return "InvalidCodeSignatureException"
}

// Message returns the exception's message.
func (s *InvalidCodeSignatureException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *InvalidCodeSignatureException) OrigErr() error {
	return nil
}

func (s *InvalidCodeSignatureException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *InvalidCodeSignatureException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *InvalidCodeSignatureException) RequestID() string {
	return s.RespMetadata.RequestID
}

// One of the parameters in the request is not valid.
type InvalidParameterValueException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	// The exception message.
	Message_ *string `locationName:"message" type:"string"`

	// The exception type.
	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvalidParameterValueException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvalidParameterValueException) GoString() string {
	return s.String()
}

func newErrorInvalidParameterValueException(v protocol.ResponseMetadata) error {
	return &InvalidParameterValueException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *InvalidParameterValueException) Code() string {
	return "InvalidParameterValueException"
}

// Message returns the exception's message.
func (s *InvalidParameterValueException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *InvalidParameterValueException) OrigErr() error {
	return nil
}

func (s *InvalidParameterValueException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *InvalidParameterValueException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *InvalidParameterValueException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The request body could not be parsed as JSON.
type InvalidRequestContentException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	// The exception message.
	Message_ *string `locationName:"message" type:"string"`

	// The exception type.
	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvalidRequestContentException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvalidRequestContentException) GoString() string {
	return s.String()
}

func newErrorInvalidRequestContentException(v protocol.ResponseMetadata) error {
	return &InvalidRequestContentException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *InvalidRequestContentException) Code() string {
	return "InvalidRequestContentException"
}

// Message returns the exception's message.
func (s *InvalidRequestContentException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *InvalidRequestContentException) OrigErr() error {
	return nil
}

func (s *InvalidRequestContentException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *InvalidRequestContentException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *InvalidRequestContentException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The runtime or runtime version specified is not supported.
type InvalidRuntimeException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvalidRuntimeException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvalidRuntimeException) GoString() string {
	return s.String()
}

func newErrorInvalidRuntimeException(v protocol.ResponseMetadata) error {
	return &InvalidRuntimeException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *InvalidRuntimeException) Code() string {
	return "InvalidRuntimeException"
}

// Message returns the exception's message.
func (s *InvalidRuntimeException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *InvalidRuntimeException) OrigErr() error {
	return nil
}

func (s *InvalidRuntimeException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *InvalidRuntimeException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *InvalidRuntimeException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The security group ID provided in the Lambda function VPC configuration is
// not valid.
type InvalidSecurityGroupIDException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvalidSecurityGroupIDException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvalidSecurityGroupIDException) GoString() string {
	return s.String()
}

func newErrorInvalidSecurityGroupIDException(v protocol.ResponseMetadata) error {
	return &InvalidSecurityGroupIDException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *InvalidSecurityGroupIDException) Code() string {
	return "InvalidSecurityGroupIDException"
}

// Message returns the exception's message.
func (s *InvalidSecurityGroupIDException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *InvalidSecurityGroupIDException) OrigErr() error {
	return nil
}

func (s *InvalidSecurityGroupIDException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *InvalidSecurityGroupIDException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *InvalidSecurityGroupIDException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The subnet ID provided in the Lambda function VPC configuration is not valid.
type InvalidSubnetIDException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvalidSubnetIDException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvalidSubnetIDException) GoString() string {
	return s.String()
}

func newErrorInvalidSubnetIDException(v protocol.ResponseMetadata) error {
	return &InvalidSubnetIDException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *InvalidSubnetIDException) Code() string {
	return "InvalidSubnetIDException"
}

// Message returns the exception's message.
func (s *InvalidSubnetIDException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *InvalidSubnetIDException) OrigErr() error {
	return nil
}

func (s *InvalidSubnetIDException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *InvalidSubnetIDException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *InvalidSubnetIDException) RequestID() string {
	return s.RespMetadata.RequestID
}

// Lambda could not unzip the deployment package.
type InvalidZipFileException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvalidZipFileException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvalidZipFileException) GoString() string {
	return s.String()
}

func newErrorInvalidZipFileException(v protocol.ResponseMetadata) error {
	return &InvalidZipFileException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *InvalidZipFileException) Code() string {
	return "InvalidZipFileException"
}

// Message returns the exception's message.
func (s *InvalidZipFileException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *InvalidZipFileException) OrigErr() error {
	return nil
}

func (s *InvalidZipFileException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *InvalidZipFileException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *InvalidZipFileException) RequestID() string {
	return s.RespMetadata.RequestID
}

// Deprecated: InvokeAsyncInput has been deprecated
type InvokeAsyncInput struct {
	_ struct{} `deprecated:"true" type:"structure" payload:"InvokeArgs"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – my-function.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// The JSON that you want to provide to your Lambda function as input.
	//
	// InvokeArgs is a required field
	InvokeArgs io.ReadSeeker `type:"blob" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvokeAsyncInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvokeAsyncInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *InvokeAsyncInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "InvokeAsyncInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.InvokeArgs == nil {
		invalidParams.Add(request.NewErrParamRequired("InvokeArgs"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *InvokeAsyncInput) SetFunctionName(v string) *InvokeAsyncInput {
	s.FunctionName = &v
	return s
}

// SetInvokeArgs sets the InvokeArgs field's value.
func (s *InvokeAsyncInput) SetInvokeArgs(v io.ReadSeeker) *InvokeAsyncInput {
	s.InvokeArgs = v
	return s
}

// A success response (202 Accepted) indicates that the request is queued for
// invocation.
//
// Deprecated: InvokeAsyncOutput has been deprecated
type InvokeAsyncOutput struct {
	_ struct{} `deprecated:"true" type:"structure"`

	// The status code.
	Status *int64 `location:"statusCode" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvokeAsyncOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvokeAsyncOutput) GoString() string {
	return s.String()
}

// SetStatus sets the Status field's value.
func (s *InvokeAsyncOutput) SetStatus(v int64) *InvokeAsyncOutput {
	s.Status = &v
	return s
}

type InvokeInput struct {
	_ struct{} `type:"structure" payload:"Payload"`

	// Up to 3,583 bytes of base64-encoded data about the invoking client to pass
	// to the function in the context object. Lambda passes the ClientContext object
	// to your function for synchronous invocations only.
	ClientContext *string `location:"header" locationName:"X-Amz-Client-Context" type:"string"`

	// The name or ARN of the Lambda function, version, or alias.
	//
	// Name formats
	//
	//    * Function name – my-function (name-only), my-function:v1 (with alias).
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// You can append a version number or alias to any of the formats. The length
	// constraint applies only to the full ARN. If you specify only the function
	// name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// Choose from the following options.
	//
	//    * RequestResponse (default) – Invoke the function synchronously. Keep
	//    the connection open until the function returns a response or times out.
	//    The API response includes the function response and additional data.
	//
	//    * Event – Invoke the function asynchronously. Send events that fail
	//    multiple times to the function's dead-letter queue (if one is configured).
	//    The API response only includes a status code.
	//
	//    * DryRun – Validate parameter values and verify that the user or role
	//    has permission to invoke the function.
	InvocationType *string `location:"header" locationName:"X-Amz-Invocation-Type" type:"string" enum:"InvocationType"`

	// Set to Tail to include the execution log in the response. Applies to synchronously
	// invoked functions only.
	LogType *string `location:"header" locationName:"X-Amz-Log-Type" type:"string" enum:"LogType"`

	// The JSON that you want to provide to your Lambda function as input.
	//
	// You can enter the JSON directly. For example, --payload '{ "key": "value"
	// }'. You can also specify a file path. For example, --payload file://payload.json.
	//
	// Payload is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by InvokeInput's
	// String and GoString methods.
	Payload []byte `type:"blob" sensitive:"true"`

	// Specify a version or alias to invoke a published version of the function.
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvokeInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvokeInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *InvokeInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "InvokeInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClientContext sets the ClientContext field's value.
func (s *InvokeInput) SetClientContext(v string) *InvokeInput {
	s.ClientContext = &v
	return s
}

// SetFunctionName sets the FunctionName field's value.
func (s *InvokeInput) SetFunctionName(v string) *InvokeInput {
	s.FunctionName = &v
	return s
}

// SetInvocationType sets the InvocationType field's value.
func (s *InvokeInput) SetInvocationType(v string) *InvokeInput {
	s.InvocationType = &v
	return s
}

// SetLogType sets the LogType field's value.
func (s *InvokeInput) SetLogType(v string) *InvokeInput {
	s.LogType = &v
	return s
}

// SetPayload sets the Payload field's value.
func (s *InvokeInput) SetPayload(v []byte) *InvokeInput {
	s.Payload = v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *InvokeInput) SetQualifier(v string) *InvokeInput {
	s.Qualifier = &v
	return s
}

type InvokeOutput struct {
	_ struct{} `type:"structure" payload:"Payload"`

	// The version of the function that executed. When you invoke a function with
	// an alias, this indicates which version the alias resolved to.
	ExecutedVersion *string `location:"header" locationName:"X-Amz-Executed-Version" min:"1" type:"string"`

	// If present, indicates that an error occurred during function execution. Details
	// about the error are included in the response payload.
	FunctionError *string `location:"header" locationName:"X-Amz-Function-Error" type:"string"`

	// The last 4 KB of the execution log, which is base64-encoded.
	LogResult *string `location:"header" locationName:"X-Amz-Log-Result" type:"string"`

	// The response from the function, or an error object.
	//
	// Payload is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by InvokeOutput's
	// String and GoString methods.
	Payload []byte `type:"blob" sensitive:"true"`

	// The HTTP status code is in the 200 range for a successful request. For the
	// RequestResponse invocation type, this status code is 200. For the Event invocation
	// type, this status code is 202. For the DryRun invocation type, the status
	// code is 204.
	StatusCode *int64 `location:"statusCode" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvokeOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvokeOutput) GoString() string {
	return s.String()
}

// SetExecutedVersion sets the ExecutedVersion field's value.
func (s *InvokeOutput) SetExecutedVersion(v string) *InvokeOutput {
	s.ExecutedVersion = &v
	return s
}

// SetFunctionError sets the FunctionError field's value.
func (s *InvokeOutput) SetFunctionError(v string) *InvokeOutput {
	s.FunctionError = &v
	return s
}

// SetLogResult sets the LogResult field's value.
func (s *InvokeOutput) SetLogResult(v string) *InvokeOutput {
	s.LogResult = &v
	return s
}

// SetPayload sets the Payload field's value.
func (s *InvokeOutput) SetPayload(v []byte) *InvokeOutput {
	s.Payload = v
	return s
}

// SetStatusCode sets the StatusCode field's value.
func (s *InvokeOutput) SetStatusCode(v int64) *InvokeOutput {
	s.StatusCode = &v
	return s
}

// A chunk of the streamed response payload.
type InvokeResponseStreamUpdate struct {
	_ struct{} `type:"structure" payload:"Payload"`

	// Data returned by your Lambda function.
	//
	// Payload is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by InvokeResponseStreamUpdate's
	// String and GoString methods.
	//
	// Payload is automatically base64 encoded/decoded by the SDK.
	Payload []byte `type:"blob" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvokeResponseStreamUpdate) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvokeResponseStreamUpdate) GoString() string {
	return s.String()
}

// SetPayload sets the Payload field's value.
func (s *InvokeResponseStreamUpdate) SetPayload(v []byte) *InvokeResponseStreamUpdate {
	s.Payload = v
	return s
}

// The InvokeResponseStreamUpdate is and event in the InvokeWithResponseStreamResponseEvent group of events.
func (s *InvokeResponseStreamUpdate) eventInvokeWithResponseStreamResponseEvent() {}

// UnmarshalEvent unmarshals the EventStream Message into the InvokeResponseStreamUpdate value.
// This method is only used internally within the SDK's EventStream handling.
func (s *InvokeResponseStreamUpdate) UnmarshalEvent(
	payloadUnmarshaler protocol.PayloadUnmarshaler,
	msg eventstream.Message,
) error {
	s.Payload = make([]byte, len(msg.Payload))
	copy(s.Payload, msg.Payload)
	return nil
}

// MarshalEvent marshals the type into an stream event value. This method
// should only used internally within the SDK's EventStream handling.
func (s *InvokeResponseStreamUpdate) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) {
	msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType))
	msg.Headers.Set(":content-type", eventstream.StringValue("application/octet-stream"))
	msg.Payload = s.Payload
	return msg, err
}

// A response confirming that the event stream is complete.
type InvokeWithResponseStreamCompleteEvent struct {
	_ struct{} `type:"structure"`

	// An error code.
	ErrorCode *string `type:"string"`

	// The details of any returned error.
	ErrorDetails *string `type:"string"`

	// The last 4 KB of the execution log, which is base64-encoded.
	LogResult *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvokeWithResponseStreamCompleteEvent) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvokeWithResponseStreamCompleteEvent) GoString() string {
	return s.String()
}

// SetErrorCode sets the ErrorCode field's value.
func (s *InvokeWithResponseStreamCompleteEvent) SetErrorCode(v string) *InvokeWithResponseStreamCompleteEvent {
	s.ErrorCode = &v
	return s
}

// SetErrorDetails sets the ErrorDetails field's value.
func (s *InvokeWithResponseStreamCompleteEvent) SetErrorDetails(v string) *InvokeWithResponseStreamCompleteEvent {
	s.ErrorDetails = &v
	return s
}

// SetLogResult sets the LogResult field's value.
func (s *InvokeWithResponseStreamCompleteEvent) SetLogResult(v string) *InvokeWithResponseStreamCompleteEvent {
	s.LogResult = &v
	return s
}

// The InvokeWithResponseStreamCompleteEvent is and event in the InvokeWithResponseStreamResponseEvent group of events.
func (s *InvokeWithResponseStreamCompleteEvent) eventInvokeWithResponseStreamResponseEvent() {}

// UnmarshalEvent unmarshals the EventStream Message into the InvokeWithResponseStreamCompleteEvent value.
// This method is only used internally within the SDK's EventStream handling.
func (s *InvokeWithResponseStreamCompleteEvent) UnmarshalEvent(
	payloadUnmarshaler protocol.PayloadUnmarshaler,
	msg eventstream.Message,
) error {
	if err := payloadUnmarshaler.UnmarshalPayload(
		bytes.NewReader(msg.Payload), s,
	); err != nil {
		return err
	}
	return nil
}

// MarshalEvent marshals the type into an stream event value. This method
// should only used internally within the SDK's EventStream handling.
func (s *InvokeWithResponseStreamCompleteEvent) MarshalEvent(pm protocol.PayloadMarshaler) (msg eventstream.Message, err error) {
	msg.Headers.Set(eventstreamapi.MessageTypeHeader, eventstream.StringValue(eventstreamapi.EventMessageType))
	var buf bytes.Buffer
	if err = pm.MarshalPayload(&buf, s); err != nil {
		return eventstream.Message{}, err
	}
	msg.Payload = buf.Bytes()
	return msg, err
}

type InvokeWithResponseStreamInput struct {
	_ struct{} `type:"structure" payload:"Payload"`

	// Up to 3,583 bytes of base64-encoded data about the invoking client to pass
	// to the function in the context object.
	ClientContext *string `location:"header" locationName:"X-Amz-Client-Context" type:"string"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – my-function.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// Use one of the following options:
	//
	//    * RequestResponse (default) – Invoke the function synchronously. Keep
	//    the connection open until the function returns a response or times out.
	//    The API operation response includes the function response and additional
	//    data.
	//
	//    * DryRun – Validate parameter values and verify that the IAM user or
	//    role has permission to invoke the function.
	InvocationType *string `location:"header" locationName:"X-Amz-Invocation-Type" type:"string" enum:"ResponseStreamingInvocationType"`

	// Set to Tail to include the execution log in the response. Applies to synchronously
	// invoked functions only.
	LogType *string `location:"header" locationName:"X-Amz-Log-Type" type:"string" enum:"LogType"`

	// The JSON that you want to provide to your Lambda function as input.
	//
	// You can enter the JSON directly. For example, --payload '{ "key": "value"
	// }'. You can also specify a file path. For example, --payload file://payload.json.
	//
	// Payload is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by InvokeWithResponseStreamInput's
	// String and GoString methods.
	Payload []byte `type:"blob" sensitive:"true"`

	// The alias name.
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvokeWithResponseStreamInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvokeWithResponseStreamInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *InvokeWithResponseStreamInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "InvokeWithResponseStreamInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClientContext sets the ClientContext field's value.
func (s *InvokeWithResponseStreamInput) SetClientContext(v string) *InvokeWithResponseStreamInput {
	s.ClientContext = &v
	return s
}

// SetFunctionName sets the FunctionName field's value.
func (s *InvokeWithResponseStreamInput) SetFunctionName(v string) *InvokeWithResponseStreamInput {
	s.FunctionName = &v
	return s
}

// SetInvocationType sets the InvocationType field's value.
func (s *InvokeWithResponseStreamInput) SetInvocationType(v string) *InvokeWithResponseStreamInput {
	s.InvocationType = &v
	return s
}

// SetLogType sets the LogType field's value.
func (s *InvokeWithResponseStreamInput) SetLogType(v string) *InvokeWithResponseStreamInput {
	s.LogType = &v
	return s
}

// SetPayload sets the Payload field's value.
func (s *InvokeWithResponseStreamInput) SetPayload(v []byte) *InvokeWithResponseStreamInput {
	s.Payload = v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *InvokeWithResponseStreamInput) SetQualifier(v string) *InvokeWithResponseStreamInput {
	s.Qualifier = &v
	return s
}

type InvokeWithResponseStreamOutput struct {
	_ struct{} `type:"structure" payload:"EventStream"`

	eventStream *InvokeWithResponseStreamEventStream

	// The version of the function that executed. When you invoke a function with
	// an alias, this indicates which version the alias resolved to.
	ExecutedVersion *string `location:"header" locationName:"X-Amz-Executed-Version" min:"1" type:"string"`

	// The type of data the stream is returning.
	ResponseStreamContentType *string `location:"header" locationName:"Content-Type" type:"string"`

	// For a successful request, the HTTP status code is in the 200 range. For the
	// RequestResponse invocation type, this status code is 200. For the DryRun
	// invocation type, this status code is 204.
	StatusCode *int64 `location:"statusCode" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvokeWithResponseStreamOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InvokeWithResponseStreamOutput) GoString() string {
	return s.String()
}

// SetExecutedVersion sets the ExecutedVersion field's value.
func (s *InvokeWithResponseStreamOutput) SetExecutedVersion(v string) *InvokeWithResponseStreamOutput {
	s.ExecutedVersion = &v
	return s
}

// SetResponseStreamContentType sets the ResponseStreamContentType field's value.
func (s *InvokeWithResponseStreamOutput) SetResponseStreamContentType(v string) *InvokeWithResponseStreamOutput {
	s.ResponseStreamContentType = &v
	return s
}

// SetStatusCode sets the StatusCode field's value.
func (s *InvokeWithResponseStreamOutput) SetStatusCode(v int64) *InvokeWithResponseStreamOutput {
	s.StatusCode = &v
	return s
}

// GetStream returns the type to interact with the event stream.
func (s *InvokeWithResponseStreamOutput) GetStream() *InvokeWithResponseStreamEventStream {
	return s.eventStream
}

// InvokeWithResponseStreamResponseEventEvent groups together all EventStream
// events writes for InvokeWithResponseStreamResponseEvent.
//
// These events are:
//
//   - InvokeWithResponseStreamCompleteEvent
//   - InvokeResponseStreamUpdate
type InvokeWithResponseStreamResponseEventEvent interface {
	eventInvokeWithResponseStreamResponseEvent()
	eventstreamapi.Marshaler
	eventstreamapi.Unmarshaler
}

// InvokeWithResponseStreamResponseEventReader provides the interface for reading to the stream. The
// default implementation for this interface will be InvokeWithResponseStreamResponseEvent.
//
// The reader's Close method must allow multiple concurrent calls.
//
// These events are:
//
//   - InvokeWithResponseStreamCompleteEvent
//   - InvokeResponseStreamUpdate
//   - InvokeWithResponseStreamResponseEventUnknownEvent
type InvokeWithResponseStreamResponseEventReader interface {
	// Returns a channel of events as they are read from the event stream.
	Events() <-chan InvokeWithResponseStreamResponseEventEvent

	// Close will stop the reader reading events from the stream.
	Close() error

	// Returns any error that has occurred while reading from the event stream.
	Err() error
}

type readInvokeWithResponseStreamResponseEvent struct {
	eventReader *eventstreamapi.EventReader
	stream      chan InvokeWithResponseStreamResponseEventEvent
	err         *eventstreamapi.OnceError

	done      chan struct{}
	closeOnce sync.Once
}

func newReadInvokeWithResponseStreamResponseEvent(eventReader *eventstreamapi.EventReader) *readInvokeWithResponseStreamResponseEvent {
	r := &readInvokeWithResponseStreamResponseEvent{
		eventReader: eventReader,
		stream:      make(chan InvokeWithResponseStreamResponseEventEvent),
		done:        make(chan struct{}),
		err:         eventstreamapi.NewOnceError(),
	}
	go r.readEventStream()

	return r
}

// Close will close the underlying event stream reader.
func (r *readInvokeWithResponseStreamResponseEvent) Close() error {
	r.closeOnce.Do(r.safeClose)
	return r.Err()
}

func (r *readInvokeWithResponseStreamResponseEvent) ErrorSet() <-chan struct{} {
	return r.err.ErrorSet()
}

func (r *readInvokeWithResponseStreamResponseEvent) Closed() <-chan struct{} {
	return r.done
}

func (r *readInvokeWithResponseStreamResponseEvent) safeClose() {
	close(r.done)
}

func (r *readInvokeWithResponseStreamResponseEvent) Err() error {
	return r.err.Err()
}

func (r *readInvokeWithResponseStreamResponseEvent) Events() <-chan InvokeWithResponseStreamResponseEventEvent {
	return r.stream
}

func (r *readInvokeWithResponseStreamResponseEvent) readEventStream() {
	defer r.Close()
	defer close(r.stream)

	for {
		event, err := r.eventReader.ReadEvent()
		if err != nil {
			if err == io.EOF {
				return
			}
			select {
			case <-r.done:
				// If closed already ignore the error
				return
			default:
			}
			if _, ok := err.(*eventstreamapi.UnknownMessageTypeError); ok {
				continue
			}
			r.err.SetError(err)
			return
		}

		select {
		case r.stream <- event.(InvokeWithResponseStreamResponseEventEvent):
		case <-r.done:
			return
		}
	}
}

type unmarshalerForInvokeWithResponseStreamResponseEventEvent struct {
	metadata protocol.ResponseMetadata
}

func (u unmarshalerForInvokeWithResponseStreamResponseEventEvent) UnmarshalerForEventName(eventType string) (eventstreamapi.Unmarshaler, error) {
	switch eventType {
	case "InvokeComplete":
		return &InvokeWithResponseStreamCompleteEvent{}, nil
	case "PayloadChunk":
		return &InvokeResponseStreamUpdate{}, nil
	default:
		return &InvokeWithResponseStreamResponseEventUnknownEvent{Type: eventType}, nil
	}
}

// InvokeWithResponseStreamResponseEventUnknownEvent provides a failsafe event for the
// InvokeWithResponseStreamResponseEvent group of events when an unknown event is received.
type InvokeWithResponseStreamResponseEventUnknownEvent struct {
	Type    string
	Message eventstream.Message
}

// The InvokeWithResponseStreamResponseEventUnknownEvent is and event in the InvokeWithResponseStreamResponseEvent
// group of events.
func (s *InvokeWithResponseStreamResponseEventUnknownEvent) eventInvokeWithResponseStreamResponseEvent() {
}

// MarshalEvent marshals the type into an stream event value. This method
// should only used internally within the SDK's EventStream handling.
func (e *InvokeWithResponseStreamResponseEventUnknownEvent) MarshalEvent(pm protocol.PayloadMarshaler) (
	msg eventstream.Message, err error,
) {
	return e.Message.Clone(), nil
}

// UnmarshalEvent unmarshals the EventStream Message into the InvokeWithResponseStreamResponseEvent value.
// This method is only used internally within the SDK's EventStream handling.
func (e *InvokeWithResponseStreamResponseEventUnknownEvent) UnmarshalEvent(
	payloadUnmarshaler protocol.PayloadUnmarshaler,
	msg eventstream.Message,
) error {
	e.Message = msg.Clone()
	return nil
}

// Lambda couldn't decrypt the environment variables because KMS access was
// denied. Check the Lambda function's KMS permissions.
type KMSAccessDeniedException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KMSAccessDeniedException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KMSAccessDeniedException) GoString() string {
	return s.String()
}

func newErrorKMSAccessDeniedException(v protocol.ResponseMetadata) error {
	return &KMSAccessDeniedException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *KMSAccessDeniedException) Code() string {
	return "KMSAccessDeniedException"
}

// Message returns the exception's message.
func (s *KMSAccessDeniedException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *KMSAccessDeniedException) OrigErr() error {
	return nil
}

func (s *KMSAccessDeniedException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *KMSAccessDeniedException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *KMSAccessDeniedException) RequestID() string {
	return s.RespMetadata.RequestID
}

// Lambda couldn't decrypt the environment variables because the KMS key used
// is disabled. Check the Lambda function's KMS key settings.
type KMSDisabledException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KMSDisabledException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KMSDisabledException) GoString() string {
	return s.String()
}

func newErrorKMSDisabledException(v protocol.ResponseMetadata) error {
	return &KMSDisabledException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *KMSDisabledException) Code() string {
	return "KMSDisabledException"
}

// Message returns the exception's message.
func (s *KMSDisabledException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *KMSDisabledException) OrigErr() error {
	return nil
}

func (s *KMSDisabledException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *KMSDisabledException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *KMSDisabledException) RequestID() string {
	return s.RespMetadata.RequestID
}

// Lambda couldn't decrypt the environment variables because the state of the
// KMS key used is not valid for Decrypt. Check the function's KMS key settings.
type KMSInvalidStateException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KMSInvalidStateException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KMSInvalidStateException) GoString() string {
	return s.String()
}

func newErrorKMSInvalidStateException(v protocol.ResponseMetadata) error {
	return &KMSInvalidStateException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *KMSInvalidStateException) Code() string {
	return "KMSInvalidStateException"
}

// Message returns the exception's message.
func (s *KMSInvalidStateException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *KMSInvalidStateException) OrigErr() error {
	return nil
}

func (s *KMSInvalidStateException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *KMSInvalidStateException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *KMSInvalidStateException) RequestID() string {
	return s.RespMetadata.RequestID
}

// Lambda couldn't decrypt the environment variables because the KMS key was
// not found. Check the function's KMS key settings.
type KMSNotFoundException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KMSNotFoundException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s KMSNotFoundException) GoString() string {
	return s.String()
}

func newErrorKMSNotFoundException(v protocol.ResponseMetadata) error {
	return &KMSNotFoundException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *KMSNotFoundException) Code() string {
	return "KMSNotFoundException"
}

// Message returns the exception's message.
func (s *KMSNotFoundException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *KMSNotFoundException) OrigErr() error {
	return nil
}

func (s *KMSNotFoundException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *KMSNotFoundException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *KMSNotFoundException) RequestID() string {
	return s.RespMetadata.RequestID
}

// An Lambda layer (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html).
type Layer struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the function layer.
	Arn *string `min:"1" type:"string"`

	// The size of the layer archive in bytes.
	CodeSize *int64 `type:"long"`

	// The Amazon Resource Name (ARN) of a signing job.
	SigningJobArn *string `type:"string"`

	// The Amazon Resource Name (ARN) for a signing profile version.
	SigningProfileVersionArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Layer) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Layer) GoString() string {
	return s.String()
}

// SetArn sets the Arn field's value.
func (s *Layer) SetArn(v string) *Layer {
	s.Arn = &v
	return s
}

// SetCodeSize sets the CodeSize field's value.
func (s *Layer) SetCodeSize(v int64) *Layer {
	s.CodeSize = &v
	return s
}

// SetSigningJobArn sets the SigningJobArn field's value.
func (s *Layer) SetSigningJobArn(v string) *Layer {
	s.SigningJobArn = &v
	return s
}

// SetSigningProfileVersionArn sets the SigningProfileVersionArn field's value.
func (s *Layer) SetSigningProfileVersionArn(v string) *Layer {
	s.SigningProfileVersionArn = &v
	return s
}

// A ZIP archive that contains the contents of an Lambda layer (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html).
// You can specify either an Amazon S3 location, or upload a layer archive directly.
type LayerVersionContentInput struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 bucket of the layer archive.
	S3Bucket *string `min:"3" type:"string"`

	// The Amazon S3 key of the layer archive.
	S3Key *string `min:"1" type:"string"`

	// For versioned objects, the version of the layer archive object to use.
	S3ObjectVersion *string `min:"1" type:"string"`

	// The base64-encoded contents of the layer archive. Amazon Web Services SDK
	// and Amazon Web Services CLI clients handle the encoding for you.
	//
	// ZipFile is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by LayerVersionContentInput's
	// String and GoString methods.
	//
	// ZipFile is automatically base64 encoded/decoded by the SDK.
	ZipFile []byte `type:"blob" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LayerVersionContentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LayerVersionContentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *LayerVersionContentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "LayerVersionContentInput"}
	if s.S3Bucket != nil && len(*s.S3Bucket) < 3 {
		invalidParams.Add(request.NewErrParamMinLen("S3Bucket", 3))
	}
	if s.S3Key != nil && len(*s.S3Key) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("S3Key", 1))
	}
	if s.S3ObjectVersion != nil && len(*s.S3ObjectVersion) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("S3ObjectVersion", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetS3Bucket sets the S3Bucket field's value.
func (s *LayerVersionContentInput) SetS3Bucket(v string) *LayerVersionContentInput {
	s.S3Bucket = &v
	return s
}

// SetS3Key sets the S3Key field's value.
func (s *LayerVersionContentInput) SetS3Key(v string) *LayerVersionContentInput {
	s.S3Key = &v
	return s
}

// SetS3ObjectVersion sets the S3ObjectVersion field's value.
func (s *LayerVersionContentInput) SetS3ObjectVersion(v string) *LayerVersionContentInput {
	s.S3ObjectVersion = &v
	return s
}

// SetZipFile sets the ZipFile field's value.
func (s *LayerVersionContentInput) SetZipFile(v []byte) *LayerVersionContentInput {
	s.ZipFile = v
	return s
}

// Details about a version of an Lambda layer (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html).
type LayerVersionContentOutput struct {
	_ struct{} `type:"structure"`

	// The SHA-256 hash of the layer archive.
	CodeSha256 *string `type:"string"`

	// The size of the layer archive in bytes.
	CodeSize *int64 `type:"long"`

	// A link to the layer archive in Amazon S3 that is valid for 10 minutes.
	Location *string `type:"string"`

	// The Amazon Resource Name (ARN) of a signing job.
	SigningJobArn *string `type:"string"`

	// The Amazon Resource Name (ARN) for a signing profile version.
	SigningProfileVersionArn *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LayerVersionContentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LayerVersionContentOutput) GoString() string {
	return s.String()
}

// SetCodeSha256 sets the CodeSha256 field's value.
func (s *LayerVersionContentOutput) SetCodeSha256(v string) *LayerVersionContentOutput {
	s.CodeSha256 = &v
	return s
}

// SetCodeSize sets the CodeSize field's value.
func (s *LayerVersionContentOutput) SetCodeSize(v int64) *LayerVersionContentOutput {
	s.CodeSize = &v
	return s
}

// SetLocation sets the Location field's value.
func (s *LayerVersionContentOutput) SetLocation(v string) *LayerVersionContentOutput {
	s.Location = &v
	return s
}

// SetSigningJobArn sets the SigningJobArn field's value.
func (s *LayerVersionContentOutput) SetSigningJobArn(v string) *LayerVersionContentOutput {
	s.SigningJobArn = &v
	return s
}

// SetSigningProfileVersionArn sets the SigningProfileVersionArn field's value.
func (s *LayerVersionContentOutput) SetSigningProfileVersionArn(v string) *LayerVersionContentOutput {
	s.SigningProfileVersionArn = &v
	return s
}

// Details about a version of an Lambda layer (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html).
type LayerVersionsListItem struct {
	_ struct{} `type:"structure"`

	// A list of compatible instruction set architectures (https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html).
	CompatibleArchitectures []*string `type:"list" enum:"Architecture"`

	// The layer's compatible runtimes.
	//
	// The following list includes deprecated runtimes. For more information, see
	// Runtime deprecation policy (https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy).
	CompatibleRuntimes []*string `type:"list" enum:"Runtime"`

	// The date that the version was created, in ISO 8601 format. For example, 2018-11-27T15:10:45.123+0000.
	CreatedDate *string `type:"string"`

	// The description of the version.
	Description *string `type:"string"`

	// The ARN of the layer version.
	LayerVersionArn *string `min:"1" type:"string"`

	// The layer's open-source license.
	LicenseInfo *string `type:"string"`

	// The version number.
	Version *int64 `type:"long"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LayerVersionsListItem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LayerVersionsListItem) GoString() string {
	return s.String()
}

// SetCompatibleArchitectures sets the CompatibleArchitectures field's value.
func (s *LayerVersionsListItem) SetCompatibleArchitectures(v []*string) *LayerVersionsListItem {
	s.CompatibleArchitectures = v
	return s
}

// SetCompatibleRuntimes sets the CompatibleRuntimes field's value.
func (s *LayerVersionsListItem) SetCompatibleRuntimes(v []*string) *LayerVersionsListItem {
	s.CompatibleRuntimes = v
	return s
}

// SetCreatedDate sets the CreatedDate field's value.
func (s *LayerVersionsListItem) SetCreatedDate(v string) *LayerVersionsListItem {
	s.CreatedDate = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *LayerVersionsListItem) SetDescription(v string) *LayerVersionsListItem {
	s.Description = &v
	return s
}

// SetLayerVersionArn sets the LayerVersionArn field's value.
func (s *LayerVersionsListItem) SetLayerVersionArn(v string) *LayerVersionsListItem {
	s.LayerVersionArn = &v
	return s
}

// SetLicenseInfo sets the LicenseInfo field's value.
func (s *LayerVersionsListItem) SetLicenseInfo(v string) *LayerVersionsListItem {
	s.LicenseInfo = &v
	return s
}

// SetVersion sets the Version field's value.
func (s *LayerVersionsListItem) SetVersion(v int64) *LayerVersionsListItem {
	s.Version = &v
	return s
}

// Details about an Lambda layer (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html).
type LayersListItem struct {
	_ struct{} `type:"structure"`

	// The newest version of the layer.
	LatestMatchingVersion *LayerVersionsListItem `type:"structure"`

	// The Amazon Resource Name (ARN) of the function layer.
	LayerArn *string `min:"1" type:"string"`

	// The name of the layer.
	LayerName *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LayersListItem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LayersListItem) GoString() string {
	return s.String()
}

// SetLatestMatchingVersion sets the LatestMatchingVersion field's value.
func (s *LayersListItem) SetLatestMatchingVersion(v *LayerVersionsListItem) *LayersListItem {
	s.LatestMatchingVersion = v
	return s
}

// SetLayerArn sets the LayerArn field's value.
func (s *LayersListItem) SetLayerArn(v string) *LayersListItem {
	s.LayerArn = &v
	return s
}

// SetLayerName sets the LayerName field's value.
func (s *LayersListItem) SetLayerName(v string) *LayersListItem {
	s.LayerName = &v
	return s
}

type ListAliasesInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name - MyFunction.
	//
	//    * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction.
	//
	//    * Partial ARN - 123456789012:function:MyFunction.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// Specify a function version to only list aliases that invoke that version.
	FunctionVersion *string `location:"querystring" locationName:"FunctionVersion" min:"1" type:"string"`

	// Specify the pagination token that's returned by a previous request to retrieve
	// the next page of results.
	Marker *string `location:"querystring" locationName:"Marker" type:"string"`

	// Limit the number of aliases returned.
	MaxItems *int64 `location:"querystring" locationName:"MaxItems" min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAliasesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAliasesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListAliasesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListAliasesInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.FunctionVersion != nil && len(*s.FunctionVersion) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionVersion", 1))
	}
	if s.MaxItems != nil && *s.MaxItems < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *ListAliasesInput) SetFunctionName(v string) *ListAliasesInput {
	s.FunctionName = &v
	return s
}

// SetFunctionVersion sets the FunctionVersion field's value.
func (s *ListAliasesInput) SetFunctionVersion(v string) *ListAliasesInput {
	s.FunctionVersion = &v
	return s
}

// SetMarker sets the Marker field's value.
func (s *ListAliasesInput) SetMarker(v string) *ListAliasesInput {
	s.Marker = &v
	return s
}

// SetMaxItems sets the MaxItems field's value.
func (s *ListAliasesInput) SetMaxItems(v int64) *ListAliasesInput {
	s.MaxItems = &v
	return s
}

type ListAliasesOutput struct {
	_ struct{} `type:"structure"`

	// A list of aliases.
	Aliases []*AliasConfiguration `type:"list"`

	// The pagination token that's included if more results are available.
	NextMarker *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAliasesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAliasesOutput) GoString() string {
	return s.String()
}

// SetAliases sets the Aliases field's value.
func (s *ListAliasesOutput) SetAliases(v []*AliasConfiguration) *ListAliasesOutput {
	s.Aliases = v
	return s
}

// SetNextMarker sets the NextMarker field's value.
func (s *ListAliasesOutput) SetNextMarker(v string) *ListAliasesOutput {
	s.NextMarker = &v
	return s
}

type ListCodeSigningConfigsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// Specify the pagination token that's returned by a previous request to retrieve
	// the next page of results.
	Marker *string `location:"querystring" locationName:"Marker" type:"string"`

	// Maximum number of items to return.
	MaxItems *int64 `location:"querystring" locationName:"MaxItems" min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListCodeSigningConfigsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListCodeSigningConfigsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListCodeSigningConfigsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListCodeSigningConfigsInput"}
	if s.MaxItems != nil && *s.MaxItems < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMarker sets the Marker field's value.
func (s *ListCodeSigningConfigsInput) SetMarker(v string) *ListCodeSigningConfigsInput {
	s.Marker = &v
	return s
}

// SetMaxItems sets the MaxItems field's value.
func (s *ListCodeSigningConfigsInput) SetMaxItems(v int64) *ListCodeSigningConfigsInput {
	s.MaxItems = &v
	return s
}

type ListCodeSigningConfigsOutput struct {
	_ struct{} `type:"structure"`

	// The code signing configurations
	CodeSigningConfigs []*CodeSigningConfig `type:"list"`

	// The pagination token that's included if more results are available.
	NextMarker *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListCodeSigningConfigsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListCodeSigningConfigsOutput) GoString() string {
	return s.String()
}

// SetCodeSigningConfigs sets the CodeSigningConfigs field's value.
func (s *ListCodeSigningConfigsOutput) SetCodeSigningConfigs(v []*CodeSigningConfig) *ListCodeSigningConfigsOutput {
	s.CodeSigningConfigs = v
	return s
}

// SetNextMarker sets the NextMarker field's value.
func (s *ListCodeSigningConfigsOutput) SetNextMarker(v string) *ListCodeSigningConfigsOutput {
	s.NextMarker = &v
	return s
}

type ListEventSourceMappingsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The Amazon Resource Name (ARN) of the event source.
	//
	//    * Amazon Kinesis – The ARN of the data stream or a stream consumer.
	//
	//    * Amazon DynamoDB Streams – The ARN of the stream.
	//
	//    * Amazon Simple Queue Service – The ARN of the queue.
	//
	//    * Amazon Managed Streaming for Apache Kafka – The ARN of the cluster
	//    or the ARN of the VPC connection (for cross-account event source mappings
	//    (https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#msk-multi-vpc)).
	//
	//    * Amazon MQ – The ARN of the broker.
	//
	//    * Amazon DocumentDB – The ARN of the DocumentDB change stream.
	EventSourceArn *string `location:"querystring" locationName:"EventSourceArn" type:"string"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – MyFunction.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:MyFunction.
	//
	//    * Version or Alias ARN – arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD.
	//
	//    * Partial ARN – 123456789012:function:MyFunction.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it's limited to 64 characters in length.
	FunctionName *string `location:"querystring" locationName:"FunctionName" min:"1" type:"string"`

	// A pagination token returned by a previous call.
	Marker *string `location:"querystring" locationName:"Marker" type:"string"`

	// The maximum number of event source mappings to return. Note that ListEventSourceMappings
	// returns a maximum of 100 items in each response, even if you set the number
	// higher.
	MaxItems *int64 `location:"querystring" locationName:"MaxItems" min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEventSourceMappingsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEventSourceMappingsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListEventSourceMappingsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListEventSourceMappingsInput"}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.MaxItems != nil && *s.MaxItems < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEventSourceArn sets the EventSourceArn field's value.
func (s *ListEventSourceMappingsInput) SetEventSourceArn(v string) *ListEventSourceMappingsInput {
	s.EventSourceArn = &v
	return s
}

// SetFunctionName sets the FunctionName field's value.
func (s *ListEventSourceMappingsInput) SetFunctionName(v string) *ListEventSourceMappingsInput {
	s.FunctionName = &v
	return s
}

// SetMarker sets the Marker field's value.
func (s *ListEventSourceMappingsInput) SetMarker(v string) *ListEventSourceMappingsInput {
	s.Marker = &v
	return s
}

// SetMaxItems sets the MaxItems field's value.
func (s *ListEventSourceMappingsInput) SetMaxItems(v int64) *ListEventSourceMappingsInput {
	s.MaxItems = &v
	return s
}

type ListEventSourceMappingsOutput struct {
	_ struct{} `type:"structure"`

	// A list of event source mappings.
	EventSourceMappings []*EventSourceMappingConfiguration `type:"list"`

	// A pagination token that's returned when the response doesn't contain all
	// event source mappings.
	NextMarker *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEventSourceMappingsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEventSourceMappingsOutput) GoString() string {
	return s.String()
}

// SetEventSourceMappings sets the EventSourceMappings field's value.
func (s *ListEventSourceMappingsOutput) SetEventSourceMappings(v []*EventSourceMappingConfiguration) *ListEventSourceMappingsOutput {
	s.EventSourceMappings = v
	return s
}

// SetNextMarker sets the NextMarker field's value.
func (s *ListEventSourceMappingsOutput) SetNextMarker(v string) *ListEventSourceMappingsOutput {
	s.NextMarker = &v
	return s
}

type ListFunctionEventInvokeConfigsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name - my-function.
	//
	//    * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN - 123456789012:function:my-function.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// Specify the pagination token that's returned by a previous request to retrieve
	// the next page of results.
	Marker *string `location:"querystring" locationName:"Marker" type:"string"`

	// The maximum number of configurations to return.
	MaxItems *int64 `location:"querystring" locationName:"MaxItems" min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFunctionEventInvokeConfigsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFunctionEventInvokeConfigsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListFunctionEventInvokeConfigsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListFunctionEventInvokeConfigsInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.MaxItems != nil && *s.MaxItems < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *ListFunctionEventInvokeConfigsInput) SetFunctionName(v string) *ListFunctionEventInvokeConfigsInput {
	s.FunctionName = &v
	return s
}

// SetMarker sets the Marker field's value.
func (s *ListFunctionEventInvokeConfigsInput) SetMarker(v string) *ListFunctionEventInvokeConfigsInput {
	s.Marker = &v
	return s
}

// SetMaxItems sets the MaxItems field's value.
func (s *ListFunctionEventInvokeConfigsInput) SetMaxItems(v int64) *ListFunctionEventInvokeConfigsInput {
	s.MaxItems = &v
	return s
}

type ListFunctionEventInvokeConfigsOutput struct {
	_ struct{} `type:"structure"`

	// A list of configurations.
	FunctionEventInvokeConfigs []*FunctionEventInvokeConfig `type:"list"`

	// The pagination token that's included if more results are available.
	NextMarker *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFunctionEventInvokeConfigsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFunctionEventInvokeConfigsOutput) GoString() string {
	return s.String()
}

// SetFunctionEventInvokeConfigs sets the FunctionEventInvokeConfigs field's value.
func (s *ListFunctionEventInvokeConfigsOutput) SetFunctionEventInvokeConfigs(v []*FunctionEventInvokeConfig) *ListFunctionEventInvokeConfigsOutput {
	s.FunctionEventInvokeConfigs = v
	return s
}

// SetNextMarker sets the NextMarker field's value.
func (s *ListFunctionEventInvokeConfigsOutput) SetNextMarker(v string) *ListFunctionEventInvokeConfigsOutput {
	s.NextMarker = &v
	return s
}

type ListFunctionUrlConfigsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – my-function.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// Specify the pagination token that's returned by a previous request to retrieve
	// the next page of results.
	Marker *string `location:"querystring" locationName:"Marker" type:"string"`

	// The maximum number of function URLs to return in the response. Note that
	// ListFunctionUrlConfigs returns a maximum of 50 items in each response, even
	// if you set the number higher.
	MaxItems *int64 `location:"querystring" locationName:"MaxItems" min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFunctionUrlConfigsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFunctionUrlConfigsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListFunctionUrlConfigsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListFunctionUrlConfigsInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.MaxItems != nil && *s.MaxItems < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *ListFunctionUrlConfigsInput) SetFunctionName(v string) *ListFunctionUrlConfigsInput {
	s.FunctionName = &v
	return s
}

// SetMarker sets the Marker field's value.
func (s *ListFunctionUrlConfigsInput) SetMarker(v string) *ListFunctionUrlConfigsInput {
	s.Marker = &v
	return s
}

// SetMaxItems sets the MaxItems field's value.
func (s *ListFunctionUrlConfigsInput) SetMaxItems(v int64) *ListFunctionUrlConfigsInput {
	s.MaxItems = &v
	return s
}

type ListFunctionUrlConfigsOutput struct {
	_ struct{} `type:"structure"`

	// A list of function URL configurations.
	//
	// FunctionUrlConfigs is a required field
	FunctionUrlConfigs []*FunctionUrlConfig `type:"list" required:"true"`

	// The pagination token that's included if more results are available.
	NextMarker *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFunctionUrlConfigsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFunctionUrlConfigsOutput) GoString() string {
	return s.String()
}

// SetFunctionUrlConfigs sets the FunctionUrlConfigs field's value.
func (s *ListFunctionUrlConfigsOutput) SetFunctionUrlConfigs(v []*FunctionUrlConfig) *ListFunctionUrlConfigsOutput {
	s.FunctionUrlConfigs = v
	return s
}

// SetNextMarker sets the NextMarker field's value.
func (s *ListFunctionUrlConfigsOutput) SetNextMarker(v string) *ListFunctionUrlConfigsOutput {
	s.NextMarker = &v
	return s
}

type ListFunctionsByCodeSigningConfigInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The The Amazon Resource Name (ARN) of the code signing configuration.
	//
	// CodeSigningConfigArn is a required field
	CodeSigningConfigArn *string `location:"uri" locationName:"CodeSigningConfigArn" type:"string" required:"true"`

	// Specify the pagination token that's returned by a previous request to retrieve
	// the next page of results.
	Marker *string `location:"querystring" locationName:"Marker" type:"string"`

	// Maximum number of items to return.
	MaxItems *int64 `location:"querystring" locationName:"MaxItems" min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFunctionsByCodeSigningConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFunctionsByCodeSigningConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListFunctionsByCodeSigningConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListFunctionsByCodeSigningConfigInput"}
	if s.CodeSigningConfigArn == nil {
		invalidParams.Add(request.NewErrParamRequired("CodeSigningConfigArn"))
	}
	if s.CodeSigningConfigArn != nil && len(*s.CodeSigningConfigArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CodeSigningConfigArn", 1))
	}
	if s.MaxItems != nil && *s.MaxItems < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCodeSigningConfigArn sets the CodeSigningConfigArn field's value.
func (s *ListFunctionsByCodeSigningConfigInput) SetCodeSigningConfigArn(v string) *ListFunctionsByCodeSigningConfigInput {
	s.CodeSigningConfigArn = &v
	return s
}

// SetMarker sets the Marker field's value.
func (s *ListFunctionsByCodeSigningConfigInput) SetMarker(v string) *ListFunctionsByCodeSigningConfigInput {
	s.Marker = &v
	return s
}

// SetMaxItems sets the MaxItems field's value.
func (s *ListFunctionsByCodeSigningConfigInput) SetMaxItems(v int64) *ListFunctionsByCodeSigningConfigInput {
	s.MaxItems = &v
	return s
}

type ListFunctionsByCodeSigningConfigOutput struct {
	_ struct{} `type:"structure"`

	// The function ARNs.
	FunctionArns []*string `type:"list"`

	// The pagination token that's included if more results are available.
	NextMarker *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFunctionsByCodeSigningConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFunctionsByCodeSigningConfigOutput) GoString() string {
	return s.String()
}

// SetFunctionArns sets the FunctionArns field's value.
func (s *ListFunctionsByCodeSigningConfigOutput) SetFunctionArns(v []*string) *ListFunctionsByCodeSigningConfigOutput {
	s.FunctionArns = v
	return s
}

// SetNextMarker sets the NextMarker field's value.
func (s *ListFunctionsByCodeSigningConfigOutput) SetNextMarker(v string) *ListFunctionsByCodeSigningConfigOutput {
	s.NextMarker = &v
	return s
}

type ListFunctionsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// Set to ALL to include entries for all published versions of each function.
	FunctionVersion *string `location:"querystring" locationName:"FunctionVersion" type:"string" enum:"FunctionVersion"`

	// Specify the pagination token that's returned by a previous request to retrieve
	// the next page of results.
	Marker *string `location:"querystring" locationName:"Marker" type:"string"`

	// For Lambda@Edge functions, the Amazon Web Services Region of the master function.
	// For example, us-east-1 filters the list of functions to include only Lambda@Edge
	// functions replicated from a master function in US East (N. Virginia). If
	// specified, you must set FunctionVersion to ALL.
	MasterRegion *string `location:"querystring" locationName:"MasterRegion" type:"string"`

	// The maximum number of functions to return in the response. Note that ListFunctions
	// returns a maximum of 50 items in each response, even if you set the number
	// higher.
	MaxItems *int64 `location:"querystring" locationName:"MaxItems" min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFunctionsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFunctionsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListFunctionsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListFunctionsInput"}
	if s.MaxItems != nil && *s.MaxItems < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionVersion sets the FunctionVersion field's value.
func (s *ListFunctionsInput) SetFunctionVersion(v string) *ListFunctionsInput {
	s.FunctionVersion = &v
	return s
}

// SetMarker sets the Marker field's value.
func (s *ListFunctionsInput) SetMarker(v string) *ListFunctionsInput {
	s.Marker = &v
	return s
}

// SetMasterRegion sets the MasterRegion field's value.
func (s *ListFunctionsInput) SetMasterRegion(v string) *ListFunctionsInput {
	s.MasterRegion = &v
	return s
}

// SetMaxItems sets the MaxItems field's value.
func (s *ListFunctionsInput) SetMaxItems(v int64) *ListFunctionsInput {
	s.MaxItems = &v
	return s
}

// A list of Lambda functions.
type ListFunctionsOutput struct {
	_ struct{} `type:"structure"`

	// A list of Lambda functions.
	Functions []*FunctionConfiguration `type:"list"`

	// The pagination token that's included if more results are available.
	NextMarker *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFunctionsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListFunctionsOutput) GoString() string {
	return s.String()
}

// SetFunctions sets the Functions field's value.
func (s *ListFunctionsOutput) SetFunctions(v []*FunctionConfiguration) *ListFunctionsOutput {
	s.Functions = v
	return s
}

// SetNextMarker sets the NextMarker field's value.
func (s *ListFunctionsOutput) SetNextMarker(v string) *ListFunctionsOutput {
	s.NextMarker = &v
	return s
}

type ListLayerVersionsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The compatible instruction set architecture (https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html).
	CompatibleArchitecture *string `location:"querystring" locationName:"CompatibleArchitecture" type:"string" enum:"Architecture"`

	// A runtime identifier. For example, java21.
	//
	// The following list includes deprecated runtimes. For more information, see
	// Runtime deprecation policy (https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy).
	CompatibleRuntime *string `location:"querystring" locationName:"CompatibleRuntime" type:"string" enum:"Runtime"`

	// The name or Amazon Resource Name (ARN) of the layer.
	//
	// LayerName is a required field
	LayerName *string `location:"uri" locationName:"LayerName" min:"1" type:"string" required:"true"`

	// A pagination token returned by a previous call.
	Marker *string `location:"querystring" locationName:"Marker" type:"string"`

	// The maximum number of versions to return.
	MaxItems *int64 `location:"querystring" locationName:"MaxItems" min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListLayerVersionsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListLayerVersionsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListLayerVersionsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListLayerVersionsInput"}
	if s.LayerName == nil {
		invalidParams.Add(request.NewErrParamRequired("LayerName"))
	}
	if s.LayerName != nil && len(*s.LayerName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("LayerName", 1))
	}
	if s.MaxItems != nil && *s.MaxItems < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCompatibleArchitecture sets the CompatibleArchitecture field's value.
func (s *ListLayerVersionsInput) SetCompatibleArchitecture(v string) *ListLayerVersionsInput {
	s.CompatibleArchitecture = &v
	return s
}

// SetCompatibleRuntime sets the CompatibleRuntime field's value.
func (s *ListLayerVersionsInput) SetCompatibleRuntime(v string) *ListLayerVersionsInput {
	s.CompatibleRuntime = &v
	return s
}

// SetLayerName sets the LayerName field's value.
func (s *ListLayerVersionsInput) SetLayerName(v string) *ListLayerVersionsInput {
	s.LayerName = &v
	return s
}

// SetMarker sets the Marker field's value.
func (s *ListLayerVersionsInput) SetMarker(v string) *ListLayerVersionsInput {
	s.Marker = &v
	return s
}

// SetMaxItems sets the MaxItems field's value.
func (s *ListLayerVersionsInput) SetMaxItems(v int64) *ListLayerVersionsInput {
	s.MaxItems = &v
	return s
}

type ListLayerVersionsOutput struct {
	_ struct{} `type:"structure"`

	// A list of versions.
	LayerVersions []*LayerVersionsListItem `type:"list"`

	// A pagination token returned when the response doesn't contain all versions.
	NextMarker *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListLayerVersionsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListLayerVersionsOutput) GoString() string {
	return s.String()
}

// SetLayerVersions sets the LayerVersions field's value.
func (s *ListLayerVersionsOutput) SetLayerVersions(v []*LayerVersionsListItem) *ListLayerVersionsOutput {
	s.LayerVersions = v
	return s
}

// SetNextMarker sets the NextMarker field's value.
func (s *ListLayerVersionsOutput) SetNextMarker(v string) *ListLayerVersionsOutput {
	s.NextMarker = &v
	return s
}

type ListLayersInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The compatible instruction set architecture (https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html).
	CompatibleArchitecture *string `location:"querystring" locationName:"CompatibleArchitecture" type:"string" enum:"Architecture"`

	// A runtime identifier. For example, java21.
	//
	// The following list includes deprecated runtimes. For more information, see
	// Runtime deprecation policy (https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy).
	CompatibleRuntime *string `location:"querystring" locationName:"CompatibleRuntime" type:"string" enum:"Runtime"`

	// A pagination token returned by a previous call.
	Marker *string `location:"querystring" locationName:"Marker" type:"string"`

	// The maximum number of layers to return.
	MaxItems *int64 `location:"querystring" locationName:"MaxItems" min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListLayersInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListLayersInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListLayersInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListLayersInput"}
	if s.MaxItems != nil && *s.MaxItems < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCompatibleArchitecture sets the CompatibleArchitecture field's value.
func (s *ListLayersInput) SetCompatibleArchitecture(v string) *ListLayersInput {
	s.CompatibleArchitecture = &v
	return s
}

// SetCompatibleRuntime sets the CompatibleRuntime field's value.
func (s *ListLayersInput) SetCompatibleRuntime(v string) *ListLayersInput {
	s.CompatibleRuntime = &v
	return s
}

// SetMarker sets the Marker field's value.
func (s *ListLayersInput) SetMarker(v string) *ListLayersInput {
	s.Marker = &v
	return s
}

// SetMaxItems sets the MaxItems field's value.
func (s *ListLayersInput) SetMaxItems(v int64) *ListLayersInput {
	s.MaxItems = &v
	return s
}

type ListLayersOutput struct {
	_ struct{} `type:"structure"`

	// A list of function layers.
	Layers []*LayersListItem `type:"list"`

	// A pagination token returned when the response doesn't contain all layers.
	NextMarker *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListLayersOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListLayersOutput) GoString() string {
	return s.String()
}

// SetLayers sets the Layers field's value.
func (s *ListLayersOutput) SetLayers(v []*LayersListItem) *ListLayersOutput {
	s.Layers = v
	return s
}

// SetNextMarker sets the NextMarker field's value.
func (s *ListLayersOutput) SetNextMarker(v string) *ListLayersOutput {
	s.NextMarker = &v
	return s
}

type ListProvisionedConcurrencyConfigsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – my-function.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// Specify the pagination token that's returned by a previous request to retrieve
	// the next page of results.
	Marker *string `location:"querystring" locationName:"Marker" type:"string"`

	// Specify a number to limit the number of configurations returned.
	MaxItems *int64 `location:"querystring" locationName:"MaxItems" min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProvisionedConcurrencyConfigsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProvisionedConcurrencyConfigsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListProvisionedConcurrencyConfigsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListProvisionedConcurrencyConfigsInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.MaxItems != nil && *s.MaxItems < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *ListProvisionedConcurrencyConfigsInput) SetFunctionName(v string) *ListProvisionedConcurrencyConfigsInput {
	s.FunctionName = &v
	return s
}

// SetMarker sets the Marker field's value.
func (s *ListProvisionedConcurrencyConfigsInput) SetMarker(v string) *ListProvisionedConcurrencyConfigsInput {
	s.Marker = &v
	return s
}

// SetMaxItems sets the MaxItems field's value.
func (s *ListProvisionedConcurrencyConfigsInput) SetMaxItems(v int64) *ListProvisionedConcurrencyConfigsInput {
	s.MaxItems = &v
	return s
}

type ListProvisionedConcurrencyConfigsOutput struct {
	_ struct{} `type:"structure"`

	// The pagination token that's included if more results are available.
	NextMarker *string `type:"string"`

	// A list of provisioned concurrency configurations.
	ProvisionedConcurrencyConfigs []*ProvisionedConcurrencyConfigListItem `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProvisionedConcurrencyConfigsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProvisionedConcurrencyConfigsOutput) GoString() string {
	return s.String()
}

// SetNextMarker sets the NextMarker field's value.
func (s *ListProvisionedConcurrencyConfigsOutput) SetNextMarker(v string) *ListProvisionedConcurrencyConfigsOutput {
	s.NextMarker = &v
	return s
}

// SetProvisionedConcurrencyConfigs sets the ProvisionedConcurrencyConfigs field's value.
func (s *ListProvisionedConcurrencyConfigsOutput) SetProvisionedConcurrencyConfigs(v []*ProvisionedConcurrencyConfigListItem) *ListProvisionedConcurrencyConfigsOutput {
	s.ProvisionedConcurrencyConfigs = v
	return s
}

type ListTagsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The function's Amazon Resource Name (ARN). Note: Lambda does not support
	// adding tags to aliases or versions.
	//
	// Resource is a required field
	Resource *string `location:"uri" locationName:"ARN" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTagsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTagsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListTagsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListTagsInput"}
	if s.Resource == nil {
		invalidParams.Add(request.NewErrParamRequired("Resource"))
	}
	if s.Resource != nil && len(*s.Resource) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Resource", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetResource sets the Resource field's value.
func (s *ListTagsInput) SetResource(v string) *ListTagsInput {
	s.Resource = &v
	return s
}

type ListTagsOutput struct {
	_ struct{} `type:"structure"`

	// The function's tags.
	Tags map[string]*string `type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTagsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTagsOutput) GoString() string {
	return s.String()
}

// SetTags sets the Tags field's value.
func (s *ListTagsOutput) SetTags(v map[string]*string) *ListTagsOutput {
	s.Tags = v
	return s
}

type ListVersionsByFunctionInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name - MyFunction.
	//
	//    * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction.
	//
	//    * Partial ARN - 123456789012:function:MyFunction.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// Specify the pagination token that's returned by a previous request to retrieve
	// the next page of results.
	Marker *string `location:"querystring" locationName:"Marker" type:"string"`

	// The maximum number of versions to return. Note that ListVersionsByFunction
	// returns a maximum of 50 items in each response, even if you set the number
	// higher.
	MaxItems *int64 `location:"querystring" locationName:"MaxItems" min:"1" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListVersionsByFunctionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListVersionsByFunctionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListVersionsByFunctionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListVersionsByFunctionInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.MaxItems != nil && *s.MaxItems < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *ListVersionsByFunctionInput) SetFunctionName(v string) *ListVersionsByFunctionInput {
	s.FunctionName = &v
	return s
}

// SetMarker sets the Marker field's value.
func (s *ListVersionsByFunctionInput) SetMarker(v string) *ListVersionsByFunctionInput {
	s.Marker = &v
	return s
}

// SetMaxItems sets the MaxItems field's value.
func (s *ListVersionsByFunctionInput) SetMaxItems(v int64) *ListVersionsByFunctionInput {
	s.MaxItems = &v
	return s
}

type ListVersionsByFunctionOutput struct {
	_ struct{} `type:"structure"`

	// The pagination token that's included if more results are available.
	NextMarker *string `type:"string"`

	// A list of Lambda function versions.
	Versions []*FunctionConfiguration `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListVersionsByFunctionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListVersionsByFunctionOutput) GoString() string {
	return s.String()
}

// SetNextMarker sets the NextMarker field's value.
func (s *ListVersionsByFunctionOutput) SetNextMarker(v string) *ListVersionsByFunctionOutput {
	s.NextMarker = &v
	return s
}

// SetVersions sets the Versions field's value.
func (s *ListVersionsByFunctionOutput) SetVersions(v []*FunctionConfiguration) *ListVersionsByFunctionOutput {
	s.Versions = v
	return s
}

// The function's Amazon CloudWatch Logs configuration settings.
type LoggingConfig struct {
	_ struct{} `type:"structure"`

	// Set this property to filter the application logs for your function that Lambda
	// sends to CloudWatch. Lambda only sends application logs at the selected level
	// of detail and lower, where TRACE is the highest level and FATAL is the lowest.
	ApplicationLogLevel *string `type:"string" enum:"ApplicationLogLevel"`

	// The format in which Lambda sends your function's application and system logs
	// to CloudWatch. Select between plain text and structured JSON.
	LogFormat *string `type:"string" enum:"LogFormat"`

	// The name of the Amazon CloudWatch log group the function sends logs to. By
	// default, Lambda functions send logs to a default log group named /aws/lambda/<function
	// name>. To use a different log group, enter an existing log group or enter
	// a new log group name.
	LogGroup *string `min:"1" type:"string"`

	// Set this property to filter the system logs for your function that Lambda
	// sends to CloudWatch. Lambda only sends system logs at the selected level
	// of detail and lower, where DEBUG is the highest level and WARN is the lowest.
	SystemLogLevel *string `type:"string" enum:"SystemLogLevel"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LoggingConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s LoggingConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *LoggingConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "LoggingConfig"}
	if s.LogGroup != nil && len(*s.LogGroup) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("LogGroup", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetApplicationLogLevel sets the ApplicationLogLevel field's value.
func (s *LoggingConfig) SetApplicationLogLevel(v string) *LoggingConfig {
	s.ApplicationLogLevel = &v
	return s
}

// SetLogFormat sets the LogFormat field's value.
func (s *LoggingConfig) SetLogFormat(v string) *LoggingConfig {
	s.LogFormat = &v
	return s
}

// SetLogGroup sets the LogGroup field's value.
func (s *LoggingConfig) SetLogGroup(v string) *LoggingConfig {
	s.LogGroup = &v
	return s
}

// SetSystemLogLevel sets the SystemLogLevel field's value.
func (s *LoggingConfig) SetSystemLogLevel(v string) *LoggingConfig {
	s.SystemLogLevel = &v
	return s
}

// A destination for events that failed processing.
type OnFailure struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the destination resource.
	//
	// To retain records of asynchronous invocations (https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations),
	// you can configure an Amazon SNS topic, Amazon SQS queue, Lambda function,
	// or Amazon EventBridge event bus as the destination.
	//
	// To retain records of failed invocations from Kinesis and DynamoDB event sources
	// (https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#event-source-mapping-destinations),
	// you can configure an Amazon SNS topic or Amazon SQS queue as the destination.
	//
	// To retain records of failed invocations from self-managed Kafka (https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-smaa-onfailure-destination)
	// or Amazon MSK (https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-onfailure-destination),
	// you can configure an Amazon SNS topic, Amazon SQS queue, or Amazon S3 bucket
	// as the destination.
	Destination *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OnFailure) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OnFailure) GoString() string {
	return s.String()
}

// SetDestination sets the Destination field's value.
func (s *OnFailure) SetDestination(v string) *OnFailure {
	s.Destination = &v
	return s
}

// A destination for events that were processed successfully.
type OnSuccess struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the destination resource.
	Destination *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OnSuccess) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OnSuccess) GoString() string {
	return s.String()
}

// SetDestination sets the Destination field's value.
func (s *OnSuccess) SetDestination(v string) *OnSuccess {
	s.Destination = &v
	return s
}

// The permissions policy for the resource is too large. For more information,
// see Lambda quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).
type PolicyLengthExceededException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PolicyLengthExceededException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PolicyLengthExceededException) GoString() string {
	return s.String()
}

func newErrorPolicyLengthExceededException(v protocol.ResponseMetadata) error {
	return &PolicyLengthExceededException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *PolicyLengthExceededException) Code() string {
	return "PolicyLengthExceededException"
}

// Message returns the exception's message.
func (s *PolicyLengthExceededException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *PolicyLengthExceededException) OrigErr() error {
	return nil
}

func (s *PolicyLengthExceededException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *PolicyLengthExceededException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *PolicyLengthExceededException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The RevisionId provided does not match the latest RevisionId for the Lambda
// function or alias. Call the GetFunction or the GetAlias API operation to
// retrieve the latest RevisionId for your resource.
type PreconditionFailedException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	// The exception message.
	Message_ *string `locationName:"message" type:"string"`

	// The exception type.
	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PreconditionFailedException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PreconditionFailedException) GoString() string {
	return s.String()
}

func newErrorPreconditionFailedException(v protocol.ResponseMetadata) error {
	return &PreconditionFailedException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *PreconditionFailedException) Code() string {
	return "PreconditionFailedException"
}

// Message returns the exception's message.
func (s *PreconditionFailedException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *PreconditionFailedException) OrigErr() error {
	return nil
}

func (s *PreconditionFailedException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *PreconditionFailedException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *PreconditionFailedException) RequestID() string {
	return s.RespMetadata.RequestID
}

// Details about the provisioned concurrency configuration for a function alias
// or version.
type ProvisionedConcurrencyConfigListItem struct {
	_ struct{} `type:"structure"`

	// The amount of provisioned concurrency allocated. When a weighted alias is
	// used during linear and canary deployments, this value fluctuates depending
	// on the amount of concurrency that is provisioned for the function versions.
	AllocatedProvisionedConcurrentExecutions *int64 `type:"integer"`

	// The amount of provisioned concurrency available.
	AvailableProvisionedConcurrentExecutions *int64 `type:"integer"`

	// The Amazon Resource Name (ARN) of the alias or version.
	FunctionArn *string `type:"string"`

	// The date and time that a user last updated the configuration, in ISO 8601
	// format (https://www.iso.org/iso-8601-date-and-time-format.html).
	LastModified *string `type:"string"`

	// The amount of provisioned concurrency requested.
	RequestedProvisionedConcurrentExecutions *int64 `min:"1" type:"integer"`

	// The status of the allocation process.
	Status *string `type:"string" enum:"ProvisionedConcurrencyStatusEnum"`

	// For failed allocations, the reason that provisioned concurrency could not
	// be allocated.
	StatusReason *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProvisionedConcurrencyConfigListItem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProvisionedConcurrencyConfigListItem) GoString() string {
	return s.String()
}

// SetAllocatedProvisionedConcurrentExecutions sets the AllocatedProvisionedConcurrentExecutions field's value.
func (s *ProvisionedConcurrencyConfigListItem) SetAllocatedProvisionedConcurrentExecutions(v int64) *ProvisionedConcurrencyConfigListItem {
	s.AllocatedProvisionedConcurrentExecutions = &v
	return s
}

// SetAvailableProvisionedConcurrentExecutions sets the AvailableProvisionedConcurrentExecutions field's value.
func (s *ProvisionedConcurrencyConfigListItem) SetAvailableProvisionedConcurrentExecutions(v int64) *ProvisionedConcurrencyConfigListItem {
	s.AvailableProvisionedConcurrentExecutions = &v
	return s
}

// SetFunctionArn sets the FunctionArn field's value.
func (s *ProvisionedConcurrencyConfigListItem) SetFunctionArn(v string) *ProvisionedConcurrencyConfigListItem {
	s.FunctionArn = &v
	return s
}

// SetLastModified sets the LastModified field's value.
func (s *ProvisionedConcurrencyConfigListItem) SetLastModified(v string) *ProvisionedConcurrencyConfigListItem {
	s.LastModified = &v
	return s
}

// SetRequestedProvisionedConcurrentExecutions sets the RequestedProvisionedConcurrentExecutions field's value.
func (s *ProvisionedConcurrencyConfigListItem) SetRequestedProvisionedConcurrentExecutions(v int64) *ProvisionedConcurrencyConfigListItem {
	s.RequestedProvisionedConcurrentExecutions = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ProvisionedConcurrencyConfigListItem) SetStatus(v string) *ProvisionedConcurrencyConfigListItem {
	s.Status = &v
	return s
}

// SetStatusReason sets the StatusReason field's value.
func (s *ProvisionedConcurrencyConfigListItem) SetStatusReason(v string) *ProvisionedConcurrencyConfigListItem {
	s.StatusReason = &v
	return s
}

// The specified configuration does not exist.
type ProvisionedConcurrencyConfigNotFoundException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProvisionedConcurrencyConfigNotFoundException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProvisionedConcurrencyConfigNotFoundException) GoString() string {
	return s.String()
}

func newErrorProvisionedConcurrencyConfigNotFoundException(v protocol.ResponseMetadata) error {
	return &ProvisionedConcurrencyConfigNotFoundException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ProvisionedConcurrencyConfigNotFoundException) Code() string {
	return "ProvisionedConcurrencyConfigNotFoundException"
}

// Message returns the exception's message.
func (s *ProvisionedConcurrencyConfigNotFoundException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ProvisionedConcurrencyConfigNotFoundException) OrigErr() error {
	return nil
}

func (s *ProvisionedConcurrencyConfigNotFoundException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ProvisionedConcurrencyConfigNotFoundException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ProvisionedConcurrencyConfigNotFoundException) RequestID() string {
	return s.RespMetadata.RequestID
}

type PublishLayerVersionInput struct {
	_ struct{} `type:"structure"`

	// A list of compatible instruction set architectures (https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html).
	CompatibleArchitectures []*string `type:"list" enum:"Architecture"`

	// A list of compatible function runtimes (https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html).
	// Used for filtering with ListLayers and ListLayerVersions.
	//
	// The following list includes deprecated runtimes. For more information, see
	// Runtime deprecation policy (https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy).
	CompatibleRuntimes []*string `type:"list" enum:"Runtime"`

	// The function layer archive.
	//
	// Content is a required field
	Content *LayerVersionContentInput `type:"structure" required:"true"`

	// The description of the version.
	Description *string `type:"string"`

	// The name or Amazon Resource Name (ARN) of the layer.
	//
	// LayerName is a required field
	LayerName *string `location:"uri" locationName:"LayerName" min:"1" type:"string" required:"true"`

	// The layer's software license. It can be any of the following:
	//
	//    * An SPDX license identifier (https://spdx.org/licenses/). For example,
	//    MIT.
	//
	//    * The URL of a license hosted on the internet. For example, https://opensource.org/licenses/MIT.
	//
	//    * The full text of the license.
	LicenseInfo *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PublishLayerVersionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PublishLayerVersionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PublishLayerVersionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PublishLayerVersionInput"}
	if s.Content == nil {
		invalidParams.Add(request.NewErrParamRequired("Content"))
	}
	if s.LayerName == nil {
		invalidParams.Add(request.NewErrParamRequired("LayerName"))
	}
	if s.LayerName != nil && len(*s.LayerName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("LayerName", 1))
	}
	if s.Content != nil {
		if err := s.Content.Validate(); err != nil {
			invalidParams.AddNested("Content", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCompatibleArchitectures sets the CompatibleArchitectures field's value.
func (s *PublishLayerVersionInput) SetCompatibleArchitectures(v []*string) *PublishLayerVersionInput {
	s.CompatibleArchitectures = v
	return s
}

// SetCompatibleRuntimes sets the CompatibleRuntimes field's value.
func (s *PublishLayerVersionInput) SetCompatibleRuntimes(v []*string) *PublishLayerVersionInput {
	s.CompatibleRuntimes = v
	return s
}

// SetContent sets the Content field's value.
func (s *PublishLayerVersionInput) SetContent(v *LayerVersionContentInput) *PublishLayerVersionInput {
	s.Content = v
	return s
}

// SetDescription sets the Description field's value.
func (s *PublishLayerVersionInput) SetDescription(v string) *PublishLayerVersionInput {
	s.Description = &v
	return s
}

// SetLayerName sets the LayerName field's value.
func (s *PublishLayerVersionInput) SetLayerName(v string) *PublishLayerVersionInput {
	s.LayerName = &v
	return s
}

// SetLicenseInfo sets the LicenseInfo field's value.
func (s *PublishLayerVersionInput) SetLicenseInfo(v string) *PublishLayerVersionInput {
	s.LicenseInfo = &v
	return s
}

type PublishLayerVersionOutput struct {
	_ struct{} `type:"structure"`

	// A list of compatible instruction set architectures (https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html).
	CompatibleArchitectures []*string `type:"list" enum:"Architecture"`

	// The layer's compatible runtimes.
	//
	// The following list includes deprecated runtimes. For more information, see
	// Runtime deprecation policy (https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy).
	CompatibleRuntimes []*string `type:"list" enum:"Runtime"`

	// Details about the layer version.
	Content *LayerVersionContentOutput `type:"structure"`

	// The date that the layer version was created, in ISO-8601 format (https://www.w3.org/TR/NOTE-datetime)
	// (YYYY-MM-DDThh:mm:ss.sTZD).
	CreatedDate *string `type:"string"`

	// The description of the version.
	Description *string `type:"string"`

	// The ARN of the layer.
	LayerArn *string `min:"1" type:"string"`

	// The ARN of the layer version.
	LayerVersionArn *string `min:"1" type:"string"`

	// The layer's software license.
	LicenseInfo *string `type:"string"`

	// The version number.
	Version *int64 `type:"long"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PublishLayerVersionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PublishLayerVersionOutput) GoString() string {
	return s.String()
}

// SetCompatibleArchitectures sets the CompatibleArchitectures field's value.
func (s *PublishLayerVersionOutput) SetCompatibleArchitectures(v []*string) *PublishLayerVersionOutput {
	s.CompatibleArchitectures = v
	return s
}

// SetCompatibleRuntimes sets the CompatibleRuntimes field's value.
func (s *PublishLayerVersionOutput) SetCompatibleRuntimes(v []*string) *PublishLayerVersionOutput {
	s.CompatibleRuntimes = v
	return s
}

// SetContent sets the Content field's value.
func (s *PublishLayerVersionOutput) SetContent(v *LayerVersionContentOutput) *PublishLayerVersionOutput {
	s.Content = v
	return s
}

// SetCreatedDate sets the CreatedDate field's value.
func (s *PublishLayerVersionOutput) SetCreatedDate(v string) *PublishLayerVersionOutput {
	s.CreatedDate = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *PublishLayerVersionOutput) SetDescription(v string) *PublishLayerVersionOutput {
	s.Description = &v
	return s
}

// SetLayerArn sets the LayerArn field's value.
func (s *PublishLayerVersionOutput) SetLayerArn(v string) *PublishLayerVersionOutput {
	s.LayerArn = &v
	return s
}

// SetLayerVersionArn sets the LayerVersionArn field's value.
func (s *PublishLayerVersionOutput) SetLayerVersionArn(v string) *PublishLayerVersionOutput {
	s.LayerVersionArn = &v
	return s
}

// SetLicenseInfo sets the LicenseInfo field's value.
func (s *PublishLayerVersionOutput) SetLicenseInfo(v string) *PublishLayerVersionOutput {
	s.LicenseInfo = &v
	return s
}

// SetVersion sets the Version field's value.
func (s *PublishLayerVersionOutput) SetVersion(v int64) *PublishLayerVersionOutput {
	s.Version = &v
	return s
}

type PublishVersionInput struct {
	_ struct{} `type:"structure"`

	// Only publish a version if the hash value matches the value that's specified.
	// Use this option to avoid publishing a version if the function code has changed
	// since you last updated it. You can get the hash for the version that you
	// uploaded from the output of UpdateFunctionCode.
	CodeSha256 *string `type:"string"`

	// A description for the version to override the description in the function
	// configuration.
	Description *string `type:"string"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name - MyFunction.
	//
	//    * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction.
	//
	//    * Partial ARN - 123456789012:function:MyFunction.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// Only update the function if the revision ID matches the ID that's specified.
	// Use this option to avoid publishing a version if the function configuration
	// has changed since you last updated it.
	RevisionId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PublishVersionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PublishVersionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PublishVersionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PublishVersionInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCodeSha256 sets the CodeSha256 field's value.
func (s *PublishVersionInput) SetCodeSha256(v string) *PublishVersionInput {
	s.CodeSha256 = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *PublishVersionInput) SetDescription(v string) *PublishVersionInput {
	s.Description = &v
	return s
}

// SetFunctionName sets the FunctionName field's value.
func (s *PublishVersionInput) SetFunctionName(v string) *PublishVersionInput {
	s.FunctionName = &v
	return s
}

// SetRevisionId sets the RevisionId field's value.
func (s *PublishVersionInput) SetRevisionId(v string) *PublishVersionInput {
	s.RevisionId = &v
	return s
}

type PutFunctionCodeSigningConfigInput struct {
	_ struct{} `type:"structure"`

	// The The Amazon Resource Name (ARN) of the code signing configuration.
	//
	// CodeSigningConfigArn is a required field
	CodeSigningConfigArn *string `type:"string" required:"true"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name - MyFunction.
	//
	//    * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction.
	//
	//    * Partial ARN - 123456789012:function:MyFunction.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutFunctionCodeSigningConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutFunctionCodeSigningConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutFunctionCodeSigningConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutFunctionCodeSigningConfigInput"}
	if s.CodeSigningConfigArn == nil {
		invalidParams.Add(request.NewErrParamRequired("CodeSigningConfigArn"))
	}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetCodeSigningConfigArn sets the CodeSigningConfigArn field's value.
func (s *PutFunctionCodeSigningConfigInput) SetCodeSigningConfigArn(v string) *PutFunctionCodeSigningConfigInput {
	s.CodeSigningConfigArn = &v
	return s
}

// SetFunctionName sets the FunctionName field's value.
func (s *PutFunctionCodeSigningConfigInput) SetFunctionName(v string) *PutFunctionCodeSigningConfigInput {
	s.FunctionName = &v
	return s
}

type PutFunctionCodeSigningConfigOutput struct {
	_ struct{} `type:"structure"`

	// The The Amazon Resource Name (ARN) of the code signing configuration.
	//
	// CodeSigningConfigArn is a required field
	CodeSigningConfigArn *string `type:"string" required:"true"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name - MyFunction.
	//
	//    * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction.
	//
	//    * Partial ARN - 123456789012:function:MyFunction.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutFunctionCodeSigningConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutFunctionCodeSigningConfigOutput) GoString() string {
	return s.String()
}

// SetCodeSigningConfigArn sets the CodeSigningConfigArn field's value.
func (s *PutFunctionCodeSigningConfigOutput) SetCodeSigningConfigArn(v string) *PutFunctionCodeSigningConfigOutput {
	s.CodeSigningConfigArn = &v
	return s
}

// SetFunctionName sets the FunctionName field's value.
func (s *PutFunctionCodeSigningConfigOutput) SetFunctionName(v string) *PutFunctionCodeSigningConfigOutput {
	s.FunctionName = &v
	return s
}

type PutFunctionConcurrencyInput struct {
	_ struct{} `type:"structure"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – my-function.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// The number of simultaneous executions to reserve for the function.
	//
	// ReservedConcurrentExecutions is a required field
	ReservedConcurrentExecutions *int64 `type:"integer" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutFunctionConcurrencyInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutFunctionConcurrencyInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutFunctionConcurrencyInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutFunctionConcurrencyInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.ReservedConcurrentExecutions == nil {
		invalidParams.Add(request.NewErrParamRequired("ReservedConcurrentExecutions"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *PutFunctionConcurrencyInput) SetFunctionName(v string) *PutFunctionConcurrencyInput {
	s.FunctionName = &v
	return s
}

// SetReservedConcurrentExecutions sets the ReservedConcurrentExecutions field's value.
func (s *PutFunctionConcurrencyInput) SetReservedConcurrentExecutions(v int64) *PutFunctionConcurrencyInput {
	s.ReservedConcurrentExecutions = &v
	return s
}

type PutFunctionConcurrencyOutput struct {
	_ struct{} `type:"structure"`

	// The number of concurrent executions that are reserved for this function.
	// For more information, see Managing Lambda reserved concurrency (https://docs.aws.amazon.com/lambda/latest/dg/configuration-concurrency.html).
	ReservedConcurrentExecutions *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutFunctionConcurrencyOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutFunctionConcurrencyOutput) GoString() string {
	return s.String()
}

// SetReservedConcurrentExecutions sets the ReservedConcurrentExecutions field's value.
func (s *PutFunctionConcurrencyOutput) SetReservedConcurrentExecutions(v int64) *PutFunctionConcurrencyOutput {
	s.ReservedConcurrentExecutions = &v
	return s
}

type PutFunctionEventInvokeConfigInput struct {
	_ struct{} `type:"structure"`

	// A destination for events after they have been sent to a function for processing.
	//
	// Destinations
	//
	//    * Function - The Amazon Resource Name (ARN) of a Lambda function.
	//
	//    * Queue - The ARN of a standard SQS queue.
	//
	//    * Topic - The ARN of a standard SNS topic.
	//
	//    * Event Bus - The ARN of an Amazon EventBridge event bus.
	DestinationConfig *DestinationConfig `type:"structure"`

	// The name or ARN of the Lambda function, version, or alias.
	//
	// Name formats
	//
	//    * Function name - my-function (name-only), my-function:v1 (with alias).
	//
	//    * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN - 123456789012:function:my-function.
	//
	// You can append a version number or alias to any of the formats. The length
	// constraint applies only to the full ARN. If you specify only the function
	// name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// The maximum age of a request that Lambda sends to a function for processing.
	MaximumEventAgeInSeconds *int64 `min:"60" type:"integer"`

	// The maximum number of times to retry when the function returns an error.
	MaximumRetryAttempts *int64 `type:"integer"`

	// A version number or alias name.
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutFunctionEventInvokeConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutFunctionEventInvokeConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutFunctionEventInvokeConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutFunctionEventInvokeConfigInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.MaximumEventAgeInSeconds != nil && *s.MaximumEventAgeInSeconds < 60 {
		invalidParams.Add(request.NewErrParamMinValue("MaximumEventAgeInSeconds", 60))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDestinationConfig sets the DestinationConfig field's value.
func (s *PutFunctionEventInvokeConfigInput) SetDestinationConfig(v *DestinationConfig) *PutFunctionEventInvokeConfigInput {
	s.DestinationConfig = v
	return s
}

// SetFunctionName sets the FunctionName field's value.
func (s *PutFunctionEventInvokeConfigInput) SetFunctionName(v string) *PutFunctionEventInvokeConfigInput {
	s.FunctionName = &v
	return s
}

// SetMaximumEventAgeInSeconds sets the MaximumEventAgeInSeconds field's value.
func (s *PutFunctionEventInvokeConfigInput) SetMaximumEventAgeInSeconds(v int64) *PutFunctionEventInvokeConfigInput {
	s.MaximumEventAgeInSeconds = &v
	return s
}

// SetMaximumRetryAttempts sets the MaximumRetryAttempts field's value.
func (s *PutFunctionEventInvokeConfigInput) SetMaximumRetryAttempts(v int64) *PutFunctionEventInvokeConfigInput {
	s.MaximumRetryAttempts = &v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *PutFunctionEventInvokeConfigInput) SetQualifier(v string) *PutFunctionEventInvokeConfigInput {
	s.Qualifier = &v
	return s
}

type PutFunctionEventInvokeConfigOutput struct {
	_ struct{} `type:"structure"`

	// A destination for events after they have been sent to a function for processing.
	//
	// Destinations
	//
	//    * Function - The Amazon Resource Name (ARN) of a Lambda function.
	//
	//    * Queue - The ARN of a standard SQS queue.
	//
	//    * Topic - The ARN of a standard SNS topic.
	//
	//    * Event Bus - The ARN of an Amazon EventBridge event bus.
	DestinationConfig *DestinationConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of the function.
	FunctionArn *string `type:"string"`

	// The date and time that the configuration was last updated.
	LastModified *time.Time `type:"timestamp"`

	// The maximum age of a request that Lambda sends to a function for processing.
	MaximumEventAgeInSeconds *int64 `min:"60" type:"integer"`

	// The maximum number of times to retry when the function returns an error.
	MaximumRetryAttempts *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutFunctionEventInvokeConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutFunctionEventInvokeConfigOutput) GoString() string {
	return s.String()
}

// SetDestinationConfig sets the DestinationConfig field's value.
func (s *PutFunctionEventInvokeConfigOutput) SetDestinationConfig(v *DestinationConfig) *PutFunctionEventInvokeConfigOutput {
	s.DestinationConfig = v
	return s
}

// SetFunctionArn sets the FunctionArn field's value.
func (s *PutFunctionEventInvokeConfigOutput) SetFunctionArn(v string) *PutFunctionEventInvokeConfigOutput {
	s.FunctionArn = &v
	return s
}

// SetLastModified sets the LastModified field's value.
func (s *PutFunctionEventInvokeConfigOutput) SetLastModified(v time.Time) *PutFunctionEventInvokeConfigOutput {
	s.LastModified = &v
	return s
}

// SetMaximumEventAgeInSeconds sets the MaximumEventAgeInSeconds field's value.
func (s *PutFunctionEventInvokeConfigOutput) SetMaximumEventAgeInSeconds(v int64) *PutFunctionEventInvokeConfigOutput {
	s.MaximumEventAgeInSeconds = &v
	return s
}

// SetMaximumRetryAttempts sets the MaximumRetryAttempts field's value.
func (s *PutFunctionEventInvokeConfigOutput) SetMaximumRetryAttempts(v int64) *PutFunctionEventInvokeConfigOutput {
	s.MaximumRetryAttempts = &v
	return s
}

type PutProvisionedConcurrencyConfigInput struct {
	_ struct{} `type:"structure"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – my-function.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// The amount of provisioned concurrency to allocate for the version or alias.
	//
	// ProvisionedConcurrentExecutions is a required field
	ProvisionedConcurrentExecutions *int64 `min:"1" type:"integer" required:"true"`

	// The version number or alias name.
	//
	// Qualifier is a required field
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutProvisionedConcurrencyConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutProvisionedConcurrencyConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutProvisionedConcurrencyConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutProvisionedConcurrencyConfigInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.ProvisionedConcurrentExecutions == nil {
		invalidParams.Add(request.NewErrParamRequired("ProvisionedConcurrentExecutions"))
	}
	if s.ProvisionedConcurrentExecutions != nil && *s.ProvisionedConcurrentExecutions < 1 {
		invalidParams.Add(request.NewErrParamMinValue("ProvisionedConcurrentExecutions", 1))
	}
	if s.Qualifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Qualifier"))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *PutProvisionedConcurrencyConfigInput) SetFunctionName(v string) *PutProvisionedConcurrencyConfigInput {
	s.FunctionName = &v
	return s
}

// SetProvisionedConcurrentExecutions sets the ProvisionedConcurrentExecutions field's value.
func (s *PutProvisionedConcurrencyConfigInput) SetProvisionedConcurrentExecutions(v int64) *PutProvisionedConcurrencyConfigInput {
	s.ProvisionedConcurrentExecutions = &v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *PutProvisionedConcurrencyConfigInput) SetQualifier(v string) *PutProvisionedConcurrencyConfigInput {
	s.Qualifier = &v
	return s
}

type PutProvisionedConcurrencyConfigOutput struct {
	_ struct{} `type:"structure"`

	// The amount of provisioned concurrency allocated. When a weighted alias is
	// used during linear and canary deployments, this value fluctuates depending
	// on the amount of concurrency that is provisioned for the function versions.
	AllocatedProvisionedConcurrentExecutions *int64 `type:"integer"`

	// The amount of provisioned concurrency available.
	AvailableProvisionedConcurrentExecutions *int64 `type:"integer"`

	// The date and time that a user last updated the configuration, in ISO 8601
	// format (https://www.iso.org/iso-8601-date-and-time-format.html).
	LastModified *string `type:"string"`

	// The amount of provisioned concurrency requested.
	RequestedProvisionedConcurrentExecutions *int64 `min:"1" type:"integer"`

	// The status of the allocation process.
	Status *string `type:"string" enum:"ProvisionedConcurrencyStatusEnum"`

	// For failed allocations, the reason that provisioned concurrency could not
	// be allocated.
	StatusReason *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutProvisionedConcurrencyConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutProvisionedConcurrencyConfigOutput) GoString() string {
	return s.String()
}

// SetAllocatedProvisionedConcurrentExecutions sets the AllocatedProvisionedConcurrentExecutions field's value.
func (s *PutProvisionedConcurrencyConfigOutput) SetAllocatedProvisionedConcurrentExecutions(v int64) *PutProvisionedConcurrencyConfigOutput {
	s.AllocatedProvisionedConcurrentExecutions = &v
	return s
}

// SetAvailableProvisionedConcurrentExecutions sets the AvailableProvisionedConcurrentExecutions field's value.
func (s *PutProvisionedConcurrencyConfigOutput) SetAvailableProvisionedConcurrentExecutions(v int64) *PutProvisionedConcurrencyConfigOutput {
	s.AvailableProvisionedConcurrentExecutions = &v
	return s
}

// SetLastModified sets the LastModified field's value.
func (s *PutProvisionedConcurrencyConfigOutput) SetLastModified(v string) *PutProvisionedConcurrencyConfigOutput {
	s.LastModified = &v
	return s
}

// SetRequestedProvisionedConcurrentExecutions sets the RequestedProvisionedConcurrentExecutions field's value.
func (s *PutProvisionedConcurrencyConfigOutput) SetRequestedProvisionedConcurrentExecutions(v int64) *PutProvisionedConcurrencyConfigOutput {
	s.RequestedProvisionedConcurrentExecutions = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *PutProvisionedConcurrencyConfigOutput) SetStatus(v string) *PutProvisionedConcurrencyConfigOutput {
	s.Status = &v
	return s
}

// SetStatusReason sets the StatusReason field's value.
func (s *PutProvisionedConcurrencyConfigOutput) SetStatusReason(v string) *PutProvisionedConcurrencyConfigOutput {
	s.StatusReason = &v
	return s
}

type PutRuntimeManagementConfigInput struct {
	_ struct{} `type:"structure"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – my-function.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// Specify a version of the function. This can be $LATEST or a published version
	// number. If no value is specified, the configuration for the $LATEST version
	// is returned.
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"`

	// The ARN of the runtime version you want the function to use.
	//
	// This is only required if you're using the Manual runtime update mode.
	RuntimeVersionArn *string `min:"26" type:"string"`

	// Specify the runtime update mode.
	//
	//    * Auto (default) - Automatically update to the most recent and secure
	//    runtime version using a Two-phase runtime version rollout (https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-two-phase).
	//    This is the best choice for most customers to ensure they always benefit
	//    from runtime updates.
	//
	//    * Function update - Lambda updates the runtime of your function to the
	//    most recent and secure runtime version when you update your function.
	//    This approach synchronizes runtime updates with function deployments,
	//    giving you control over when runtime updates are applied and allowing
	//    you to detect and mitigate rare runtime update incompatibilities early.
	//    When using this setting, you need to regularly update your functions to
	//    keep their runtime up-to-date.
	//
	//    * Manual - You specify a runtime version in your function configuration.
	//    The function will use this runtime version indefinitely. In the rare case
	//    where a new runtime version is incompatible with an existing function,
	//    this allows you to roll back your function to an earlier runtime version.
	//    For more information, see Roll back a runtime version (https://docs.aws.amazon.com/lambda/latest/dg/runtimes-update.html#runtime-management-rollback).
	//
	// UpdateRuntimeOn is a required field
	UpdateRuntimeOn *string `type:"string" required:"true" enum:"UpdateRuntimeOn"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutRuntimeManagementConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutRuntimeManagementConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutRuntimeManagementConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutRuntimeManagementConfigInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}
	if s.RuntimeVersionArn != nil && len(*s.RuntimeVersionArn) < 26 {
		invalidParams.Add(request.NewErrParamMinLen("RuntimeVersionArn", 26))
	}
	if s.UpdateRuntimeOn == nil {
		invalidParams.Add(request.NewErrParamRequired("UpdateRuntimeOn"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *PutRuntimeManagementConfigInput) SetFunctionName(v string) *PutRuntimeManagementConfigInput {
	s.FunctionName = &v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *PutRuntimeManagementConfigInput) SetQualifier(v string) *PutRuntimeManagementConfigInput {
	s.Qualifier = &v
	return s
}

// SetRuntimeVersionArn sets the RuntimeVersionArn field's value.
func (s *PutRuntimeManagementConfigInput) SetRuntimeVersionArn(v string) *PutRuntimeManagementConfigInput {
	s.RuntimeVersionArn = &v
	return s
}

// SetUpdateRuntimeOn sets the UpdateRuntimeOn field's value.
func (s *PutRuntimeManagementConfigInput) SetUpdateRuntimeOn(v string) *PutRuntimeManagementConfigInput {
	s.UpdateRuntimeOn = &v
	return s
}

type PutRuntimeManagementConfigOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the function
	//
	// FunctionArn is a required field
	FunctionArn *string `type:"string" required:"true"`

	// The ARN of the runtime the function is configured to use. If the runtime
	// update mode is manual, the ARN is returned, otherwise null is returned.
	RuntimeVersionArn *string `min:"26" type:"string"`

	// The runtime update mode.
	//
	// UpdateRuntimeOn is a required field
	UpdateRuntimeOn *string `type:"string" required:"true" enum:"UpdateRuntimeOn"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutRuntimeManagementConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutRuntimeManagementConfigOutput) GoString() string {
	return s.String()
}

// SetFunctionArn sets the FunctionArn field's value.
func (s *PutRuntimeManagementConfigOutput) SetFunctionArn(v string) *PutRuntimeManagementConfigOutput {
	s.FunctionArn = &v
	return s
}

// SetRuntimeVersionArn sets the RuntimeVersionArn field's value.
func (s *PutRuntimeManagementConfigOutput) SetRuntimeVersionArn(v string) *PutRuntimeManagementConfigOutput {
	s.RuntimeVersionArn = &v
	return s
}

// SetUpdateRuntimeOn sets the UpdateRuntimeOn field's value.
func (s *PutRuntimeManagementConfigOutput) SetUpdateRuntimeOn(v string) *PutRuntimeManagementConfigOutput {
	s.UpdateRuntimeOn = &v
	return s
}

// Lambda has detected your function being invoked in a recursive loop with
// other Amazon Web Services resources and stopped your function's invocation.
type RecursiveInvocationException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	// The exception message.
	Message_ *string `locationName:"Message" type:"string"`

	// The exception type.
	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecursiveInvocationException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecursiveInvocationException) GoString() string {
	return s.String()
}

func newErrorRecursiveInvocationException(v protocol.ResponseMetadata) error {
	return &RecursiveInvocationException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *RecursiveInvocationException) Code() string {
	return "RecursiveInvocationException"
}

// Message returns the exception's message.
func (s *RecursiveInvocationException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *RecursiveInvocationException) OrigErr() error {
	return nil
}

func (s *RecursiveInvocationException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *RecursiveInvocationException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *RecursiveInvocationException) RequestID() string {
	return s.RespMetadata.RequestID
}

type RemoveLayerVersionPermissionInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or Amazon Resource Name (ARN) of the layer.
	//
	// LayerName is a required field
	LayerName *string `location:"uri" locationName:"LayerName" min:"1" type:"string" required:"true"`

	// Only update the policy if the revision ID matches the ID specified. Use this
	// option to avoid modifying a policy that has changed since you last read it.
	RevisionId *string `location:"querystring" locationName:"RevisionId" type:"string"`

	// The identifier that was specified when the statement was added.
	//
	// StatementId is a required field
	StatementId *string `location:"uri" locationName:"StatementId" min:"1" type:"string" required:"true"`

	// The version number.
	//
	// VersionNumber is a required field
	VersionNumber *int64 `location:"uri" locationName:"VersionNumber" type:"long" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RemoveLayerVersionPermissionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RemoveLayerVersionPermissionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RemoveLayerVersionPermissionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RemoveLayerVersionPermissionInput"}
	if s.LayerName == nil {
		invalidParams.Add(request.NewErrParamRequired("LayerName"))
	}
	if s.LayerName != nil && len(*s.LayerName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("LayerName", 1))
	}
	if s.StatementId == nil {
		invalidParams.Add(request.NewErrParamRequired("StatementId"))
	}
	if s.StatementId != nil && len(*s.StatementId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("StatementId", 1))
	}
	if s.VersionNumber == nil {
		invalidParams.Add(request.NewErrParamRequired("VersionNumber"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetLayerName sets the LayerName field's value.
func (s *RemoveLayerVersionPermissionInput) SetLayerName(v string) *RemoveLayerVersionPermissionInput {
	s.LayerName = &v
	return s
}

// SetRevisionId sets the RevisionId field's value.
func (s *RemoveLayerVersionPermissionInput) SetRevisionId(v string) *RemoveLayerVersionPermissionInput {
	s.RevisionId = &v
	return s
}

// SetStatementId sets the StatementId field's value.
func (s *RemoveLayerVersionPermissionInput) SetStatementId(v string) *RemoveLayerVersionPermissionInput {
	s.StatementId = &v
	return s
}

// SetVersionNumber sets the VersionNumber field's value.
func (s *RemoveLayerVersionPermissionInput) SetVersionNumber(v int64) *RemoveLayerVersionPermissionInput {
	s.VersionNumber = &v
	return s
}

type RemoveLayerVersionPermissionOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RemoveLayerVersionPermissionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RemoveLayerVersionPermissionOutput) GoString() string {
	return s.String()
}

type RemovePermissionInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The name or ARN of the Lambda function, version, or alias.
	//
	// Name formats
	//
	//    * Function name – my-function (name-only), my-function:v1 (with alias).
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// You can append a version number or alias to any of the formats. The length
	// constraint applies only to the full ARN. If you specify only the function
	// name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// Specify a version or alias to remove permissions from a published version
	// of the function.
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"`

	// Update the policy only if the revision ID matches the ID that's specified.
	// Use this option to avoid modifying a policy that has changed since you last
	// read it.
	RevisionId *string `location:"querystring" locationName:"RevisionId" type:"string"`

	// Statement ID of the permission to remove.
	//
	// StatementId is a required field
	StatementId *string `location:"uri" locationName:"StatementId" min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RemovePermissionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RemovePermissionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RemovePermissionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RemovePermissionInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}
	if s.StatementId == nil {
		invalidParams.Add(request.NewErrParamRequired("StatementId"))
	}
	if s.StatementId != nil && len(*s.StatementId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("StatementId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetFunctionName sets the FunctionName field's value.
func (s *RemovePermissionInput) SetFunctionName(v string) *RemovePermissionInput {
	s.FunctionName = &v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *RemovePermissionInput) SetQualifier(v string) *RemovePermissionInput {
	s.Qualifier = &v
	return s
}

// SetRevisionId sets the RevisionId field's value.
func (s *RemovePermissionInput) SetRevisionId(v string) *RemovePermissionInput {
	s.RevisionId = &v
	return s
}

// SetStatementId sets the StatementId field's value.
func (s *RemovePermissionInput) SetStatementId(v string) *RemovePermissionInput {
	s.StatementId = &v
	return s
}

type RemovePermissionOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RemovePermissionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RemovePermissionOutput) GoString() string {
	return s.String()
}

// The request payload exceeded the Invoke request body JSON input quota. For
// more information, see Lambda quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html).
type RequestTooLargeException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RequestTooLargeException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RequestTooLargeException) GoString() string {
	return s.String()
}

func newErrorRequestTooLargeException(v protocol.ResponseMetadata) error {
	return &RequestTooLargeException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *RequestTooLargeException) Code() string {
	return "RequestTooLargeException"
}

// Message returns the exception's message.
func (s *RequestTooLargeException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *RequestTooLargeException) OrigErr() error {
	return nil
}

func (s *RequestTooLargeException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *RequestTooLargeException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *RequestTooLargeException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The resource already exists, or another operation is in progress.
type ResourceConflictException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	// The exception message.
	Message_ *string `locationName:"message" type:"string"`

	// The exception type.
	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceConflictException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceConflictException) GoString() string {
	return s.String()
}

func newErrorResourceConflictException(v protocol.ResponseMetadata) error {
	return &ResourceConflictException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ResourceConflictException) Code() string {
	return "ResourceConflictException"
}

// Message returns the exception's message.
func (s *ResourceConflictException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ResourceConflictException) OrigErr() error {
	return nil
}

func (s *ResourceConflictException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ResourceConflictException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ResourceConflictException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The operation conflicts with the resource's availability. For example, you
// tried to update an event source mapping in the CREATING state, or you tried
// to delete an event source mapping currently UPDATING.
type ResourceInUseException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceInUseException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceInUseException) GoString() string {
	return s.String()
}

func newErrorResourceInUseException(v protocol.ResponseMetadata) error {
	return &ResourceInUseException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ResourceInUseException) Code() string {
	return "ResourceInUseException"
}

// Message returns the exception's message.
func (s *ResourceInUseException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ResourceInUseException) OrigErr() error {
	return nil
}

func (s *ResourceInUseException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ResourceInUseException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ResourceInUseException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The resource specified in the request does not exist.
type ResourceNotFoundException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceNotFoundException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceNotFoundException) GoString() string {
	return s.String()
}

func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
	return &ResourceNotFoundException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ResourceNotFoundException) Code() string {
	return "ResourceNotFoundException"
}

// Message returns the exception's message.
func (s *ResourceNotFoundException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ResourceNotFoundException) OrigErr() error {
	return nil
}

func (s *ResourceNotFoundException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ResourceNotFoundException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ResourceNotFoundException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The function is inactive and its VPC connection is no longer available. Wait
// for the VPC connection to reestablish and try again.
type ResourceNotReadyException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	// The exception message.
	Message_ *string `locationName:"message" type:"string"`

	// The exception type.
	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceNotReadyException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ResourceNotReadyException) GoString() string {
	return s.String()
}

func newErrorResourceNotReadyException(v protocol.ResponseMetadata) error {
	return &ResourceNotReadyException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ResourceNotReadyException) Code() string {
	return "ResourceNotReadyException"
}

// Message returns the exception's message.
func (s *ResourceNotReadyException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ResourceNotReadyException) OrigErr() error {
	return nil
}

func (s *ResourceNotReadyException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ResourceNotReadyException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ResourceNotReadyException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The ARN of the runtime and any errors that occured.
type RuntimeVersionConfig struct {
	_ struct{} `type:"structure"`

	// Error response when Lambda is unable to retrieve the runtime version for
	// a function.
	Error *RuntimeVersionError `type:"structure"`

	// The ARN of the runtime version you want the function to use.
	RuntimeVersionArn *string `min:"26" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RuntimeVersionConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RuntimeVersionConfig) GoString() string {
	return s.String()
}

// SetError sets the Error field's value.
func (s *RuntimeVersionConfig) SetError(v *RuntimeVersionError) *RuntimeVersionConfig {
	s.Error = v
	return s
}

// SetRuntimeVersionArn sets the RuntimeVersionArn field's value.
func (s *RuntimeVersionConfig) SetRuntimeVersionArn(v string) *RuntimeVersionConfig {
	s.RuntimeVersionArn = &v
	return s
}

// Any error returned when the runtime version information for the function
// could not be retrieved.
type RuntimeVersionError struct {
	_ struct{} `type:"structure"`

	// The error code.
	ErrorCode *string `type:"string"`

	// The error message.
	//
	// Message is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by RuntimeVersionError's
	// String and GoString methods.
	Message *string `type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RuntimeVersionError) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RuntimeVersionError) GoString() string {
	return s.String()
}

// SetErrorCode sets the ErrorCode field's value.
func (s *RuntimeVersionError) SetErrorCode(v string) *RuntimeVersionError {
	s.ErrorCode = &v
	return s
}

// SetMessage sets the Message field's value.
func (s *RuntimeVersionError) SetMessage(v string) *RuntimeVersionError {
	s.Message = &v
	return s
}

// (Amazon SQS only) The scaling configuration for the event source. To remove
// the configuration, pass an empty value.
type ScalingConfig struct {
	_ struct{} `type:"structure"`

	// Limits the number of concurrent instances that the Amazon SQS event source
	// can invoke.
	MaximumConcurrency *int64 `min:"2" type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ScalingConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ScalingConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ScalingConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ScalingConfig"}
	if s.MaximumConcurrency != nil && *s.MaximumConcurrency < 2 {
		invalidParams.Add(request.NewErrParamMinValue("MaximumConcurrency", 2))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaximumConcurrency sets the MaximumConcurrency field's value.
func (s *ScalingConfig) SetMaximumConcurrency(v int64) *ScalingConfig {
	s.MaximumConcurrency = &v
	return s
}

// The self-managed Apache Kafka cluster for your event source.
type SelfManagedEventSource struct {
	_ struct{} `type:"structure"`

	// The list of bootstrap servers for your Kafka brokers in the following format:
	// "KAFKA_BOOTSTRAP_SERVERS": ["abc.xyz.com:xxxx","abc2.xyz.com:xxxx"].
	Endpoints map[string][]*string `min:"1" type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SelfManagedEventSource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SelfManagedEventSource) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SelfManagedEventSource) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SelfManagedEventSource"}
	if s.Endpoints != nil && len(s.Endpoints) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Endpoints", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetEndpoints sets the Endpoints field's value.
func (s *SelfManagedEventSource) SetEndpoints(v map[string][]*string) *SelfManagedEventSource {
	s.Endpoints = v
	return s
}

// Specific configuration settings for a self-managed Apache Kafka event source.
type SelfManagedKafkaEventSourceConfig struct {
	_ struct{} `type:"structure"`

	// The identifier for the Kafka consumer group to join. The consumer group ID
	// must be unique among all your Kafka event sources. After creating a Kafka
	// event source mapping with the consumer group ID specified, you cannot update
	// this value. For more information, see Customizable consumer group ID (https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-consumer-group-id).
	ConsumerGroupId *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SelfManagedKafkaEventSourceConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SelfManagedKafkaEventSourceConfig) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SelfManagedKafkaEventSourceConfig) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SelfManagedKafkaEventSourceConfig"}
	if s.ConsumerGroupId != nil && len(*s.ConsumerGroupId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ConsumerGroupId", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetConsumerGroupId sets the ConsumerGroupId field's value.
func (s *SelfManagedKafkaEventSourceConfig) SetConsumerGroupId(v string) *SelfManagedKafkaEventSourceConfig {
	s.ConsumerGroupId = &v
	return s
}

// The Lambda service encountered an internal error.
type ServiceException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServiceException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServiceException) GoString() string {
	return s.String()
}

func newErrorServiceException(v protocol.ResponseMetadata) error {
	return &ServiceException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ServiceException) Code() string {
	return "ServiceException"
}

// Message returns the exception's message.
func (s *ServiceException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ServiceException) OrigErr() error {
	return nil
}

func (s *ServiceException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ServiceException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ServiceException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The function's Lambda SnapStart (https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html)
// setting. Set ApplyOn to PublishedVersions to create a snapshot of the initialized
// execution environment when you publish a function version.
type SnapStart struct {
	_ struct{} `type:"structure"`

	// Set to PublishedVersions to create a snapshot of the initialized execution
	// environment when you publish a function version.
	ApplyOn *string `type:"string" enum:"SnapStartApplyOn"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SnapStart) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SnapStart) GoString() string {
	return s.String()
}

// SetApplyOn sets the ApplyOn field's value.
func (s *SnapStart) SetApplyOn(v string) *SnapStart {
	s.ApplyOn = &v
	return s
}

// The afterRestore() runtime hook (https://docs.aws.amazon.com/lambda/latest/dg/snapstart-runtime-hooks.html)
// encountered an error. For more information, check the Amazon CloudWatch logs.
type SnapStartException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SnapStartException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SnapStartException) GoString() string {
	return s.String()
}

func newErrorSnapStartException(v protocol.ResponseMetadata) error {
	return &SnapStartException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *SnapStartException) Code() string {
	return "SnapStartException"
}

// Message returns the exception's message.
func (s *SnapStartException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *SnapStartException) OrigErr() error {
	return nil
}

func (s *SnapStartException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *SnapStartException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *SnapStartException) RequestID() string {
	return s.RespMetadata.RequestID
}

// Lambda is initializing your function. You can invoke the function when the
// function state (https://docs.aws.amazon.com/lambda/latest/dg/functions-states.html)
// becomes Active.
type SnapStartNotReadyException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SnapStartNotReadyException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SnapStartNotReadyException) GoString() string {
	return s.String()
}

func newErrorSnapStartNotReadyException(v protocol.ResponseMetadata) error {
	return &SnapStartNotReadyException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *SnapStartNotReadyException) Code() string {
	return "SnapStartNotReadyException"
}

// Message returns the exception's message.
func (s *SnapStartNotReadyException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *SnapStartNotReadyException) OrigErr() error {
	return nil
}

func (s *SnapStartNotReadyException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *SnapStartNotReadyException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *SnapStartNotReadyException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The function's SnapStart (https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html)
// setting.
type SnapStartResponse struct {
	_ struct{} `type:"structure"`

	// When set to PublishedVersions, Lambda creates a snapshot of the execution
	// environment when you publish a function version.
	ApplyOn *string `type:"string" enum:"SnapStartApplyOn"`

	// When you provide a qualified Amazon Resource Name (ARN) (https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using),
	// this response element indicates whether SnapStart is activated for the specified
	// function version.
	OptimizationStatus *string `type:"string" enum:"SnapStartOptimizationStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SnapStartResponse) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SnapStartResponse) GoString() string {
	return s.String()
}

// SetApplyOn sets the ApplyOn field's value.
func (s *SnapStartResponse) SetApplyOn(v string) *SnapStartResponse {
	s.ApplyOn = &v
	return s
}

// SetOptimizationStatus sets the OptimizationStatus field's value.
func (s *SnapStartResponse) SetOptimizationStatus(v string) *SnapStartResponse {
	s.OptimizationStatus = &v
	return s
}

// Lambda couldn't restore the snapshot within the timeout limit.
type SnapStartTimeoutException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SnapStartTimeoutException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SnapStartTimeoutException) GoString() string {
	return s.String()
}

func newErrorSnapStartTimeoutException(v protocol.ResponseMetadata) error {
	return &SnapStartTimeoutException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *SnapStartTimeoutException) Code() string {
	return "SnapStartTimeoutException"
}

// Message returns the exception's message.
func (s *SnapStartTimeoutException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *SnapStartTimeoutException) OrigErr() error {
	return nil
}

func (s *SnapStartTimeoutException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *SnapStartTimeoutException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *SnapStartTimeoutException) RequestID() string {
	return s.RespMetadata.RequestID
}

// To secure and define access to your event source, you can specify the authentication
// protocol, VPC components, or virtual host.
type SourceAccessConfiguration struct {
	_ struct{} `type:"structure"`

	// The type of authentication protocol, VPC components, or virtual host for
	// your event source. For example: "Type":"SASL_SCRAM_512_AUTH".
	//
	//    * BASIC_AUTH – (Amazon MQ) The Secrets Manager secret that stores your
	//    broker credentials.
	//
	//    * BASIC_AUTH – (Self-managed Apache Kafka) The Secrets Manager ARN of
	//    your secret key used for SASL/PLAIN authentication of your Apache Kafka
	//    brokers.
	//
	//    * VPC_SUBNET – (Self-managed Apache Kafka) The subnets associated with
	//    your VPC. Lambda connects to these subnets to fetch data from your self-managed
	//    Apache Kafka cluster.
	//
	//    * VPC_SECURITY_GROUP – (Self-managed Apache Kafka) The VPC security
	//    group used to manage access to your self-managed Apache Kafka brokers.
	//
	//    * SASL_SCRAM_256_AUTH – (Self-managed Apache Kafka) The Secrets Manager
	//    ARN of your secret key used for SASL SCRAM-256 authentication of your
	//    self-managed Apache Kafka brokers.
	//
	//    * SASL_SCRAM_512_AUTH – (Amazon MSK, Self-managed Apache Kafka) The
	//    Secrets Manager ARN of your secret key used for SASL SCRAM-512 authentication
	//    of your self-managed Apache Kafka brokers.
	//
	//    * VIRTUAL_HOST –- (RabbitMQ) The name of the virtual host in your RabbitMQ
	//    broker. Lambda uses this RabbitMQ host as the event source. This property
	//    cannot be specified in an UpdateEventSourceMapping API call.
	//
	//    * CLIENT_CERTIFICATE_TLS_AUTH – (Amazon MSK, self-managed Apache Kafka)
	//    The Secrets Manager ARN of your secret key containing the certificate
	//    chain (X.509 PEM), private key (PKCS#8 PEM), and private key password
	//    (optional) used for mutual TLS authentication of your MSK/Apache Kafka
	//    brokers.
	//
	//    * SERVER_ROOT_CA_CERTIFICATE – (Self-managed Apache Kafka) The Secrets
	//    Manager ARN of your secret key containing the root CA certificate (X.509
	//    PEM) used for TLS encryption of your Apache Kafka brokers.
	Type *string `type:"string" enum:"SourceAccessType"`

	// The value for your chosen configuration in Type. For example: "URI": "arn:aws:secretsmanager:us-east-1:01234567890:secret:MyBrokerSecretName".
	URI *string `min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SourceAccessConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SourceAccessConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SourceAccessConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SourceAccessConfiguration"}
	if s.URI != nil && len(*s.URI) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("URI", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetType sets the Type field's value.
func (s *SourceAccessConfiguration) SetType(v string) *SourceAccessConfiguration {
	s.Type = &v
	return s
}

// SetURI sets the URI field's value.
func (s *SourceAccessConfiguration) SetURI(v string) *SourceAccessConfiguration {
	s.URI = &v
	return s
}

// Lambda couldn't set up VPC access for the Lambda function because one or
// more configured subnets has no available IP addresses.
type SubnetIPAddressLimitReachedException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"Message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SubnetIPAddressLimitReachedException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SubnetIPAddressLimitReachedException) GoString() string {
	return s.String()
}

func newErrorSubnetIPAddressLimitReachedException(v protocol.ResponseMetadata) error {
	return &SubnetIPAddressLimitReachedException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *SubnetIPAddressLimitReachedException) Code() string {
	return "SubnetIPAddressLimitReachedException"
}

// Message returns the exception's message.
func (s *SubnetIPAddressLimitReachedException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *SubnetIPAddressLimitReachedException) OrigErr() error {
	return nil
}

func (s *SubnetIPAddressLimitReachedException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *SubnetIPAddressLimitReachedException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *SubnetIPAddressLimitReachedException) RequestID() string {
	return s.RespMetadata.RequestID
}

type TagResourceInput struct {
	_ struct{} `type:"structure"`

	// The function's Amazon Resource Name (ARN).
	//
	// Resource is a required field
	Resource *string `location:"uri" locationName:"ARN" type:"string" required:"true"`

	// A list of tags to apply to the function.
	//
	// Tags is a required field
	Tags map[string]*string `type:"map" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagResourceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagResourceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TagResourceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
	if s.Resource == nil {
		invalidParams.Add(request.NewErrParamRequired("Resource"))
	}
	if s.Resource != nil && len(*s.Resource) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Resource", 1))
	}
	if s.Tags == nil {
		invalidParams.Add(request.NewErrParamRequired("Tags"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetResource sets the Resource field's value.
func (s *TagResourceInput) SetResource(v string) *TagResourceInput {
	s.Resource = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
	s.Tags = v
	return s
}

type TagResourceOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagResourceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagResourceOutput) GoString() string {
	return s.String()
}

// The request throughput limit was exceeded. For more information, see Lambda
// quotas (https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests).
type TooManyRequestsException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`

	Reason *string `type:"string" enum:"ThrottleReason"`

	// The number of seconds the caller should wait before retrying.
	RetryAfterSeconds *string `location:"header" locationName:"Retry-After" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TooManyRequestsException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TooManyRequestsException) GoString() string {
	return s.String()
}

func newErrorTooManyRequestsException(v protocol.ResponseMetadata) error {
	return &TooManyRequestsException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *TooManyRequestsException) Code() string {
	return "TooManyRequestsException"
}

// Message returns the exception's message.
func (s *TooManyRequestsException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *TooManyRequestsException) OrigErr() error {
	return nil
}

func (s *TooManyRequestsException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *TooManyRequestsException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *TooManyRequestsException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The function's X-Ray (https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html)
// tracing configuration. To sample and record incoming requests, set Mode to
// Active.
type TracingConfig struct {
	_ struct{} `type:"structure"`

	// The tracing mode.
	Mode *string `type:"string" enum:"TracingMode"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TracingConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TracingConfig) GoString() string {
	return s.String()
}

// SetMode sets the Mode field's value.
func (s *TracingConfig) SetMode(v string) *TracingConfig {
	s.Mode = &v
	return s
}

// The function's X-Ray tracing configuration.
type TracingConfigResponse struct {
	_ struct{} `type:"structure"`

	// The tracing mode.
	Mode *string `type:"string" enum:"TracingMode"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TracingConfigResponse) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TracingConfigResponse) GoString() string {
	return s.String()
}

// SetMode sets the Mode field's value.
func (s *TracingConfigResponse) SetMode(v string) *TracingConfigResponse {
	s.Mode = &v
	return s
}

// The content type of the Invoke request body is not JSON.
type UnsupportedMediaTypeException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`

	Type *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UnsupportedMediaTypeException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UnsupportedMediaTypeException) GoString() string {
	return s.String()
}

func newErrorUnsupportedMediaTypeException(v protocol.ResponseMetadata) error {
	return &UnsupportedMediaTypeException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *UnsupportedMediaTypeException) Code() string {
	return "UnsupportedMediaTypeException"
}

// Message returns the exception's message.
func (s *UnsupportedMediaTypeException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *UnsupportedMediaTypeException) OrigErr() error {
	return nil
}

func (s *UnsupportedMediaTypeException) Error() string {
	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
}

// Status code returns the HTTP status code for the request's response error.
func (s *UnsupportedMediaTypeException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *UnsupportedMediaTypeException) RequestID() string {
	return s.RespMetadata.RequestID
}

type UntagResourceInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The function's Amazon Resource Name (ARN).
	//
	// Resource is a required field
	Resource *string `location:"uri" locationName:"ARN" type:"string" required:"true"`

	// A list of tag keys to remove from the function.
	//
	// TagKeys is a required field
	TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagResourceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagResourceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UntagResourceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
	if s.Resource == nil {
		invalidParams.Add(request.NewErrParamRequired("Resource"))
	}
	if s.Resource != nil && len(*s.Resource) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Resource", 1))
	}
	if s.TagKeys == nil {
		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetResource sets the Resource field's value.
func (s *UntagResourceInput) SetResource(v string) *UntagResourceInput {
	s.Resource = &v
	return s
}

// SetTagKeys sets the TagKeys field's value.
func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
	s.TagKeys = v
	return s
}

type UntagResourceOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagResourceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagResourceOutput) GoString() string {
	return s.String()
}

type UpdateAliasInput struct {
	_ struct{} `type:"structure"`

	// A description of the alias.
	Description *string `type:"string"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name - MyFunction.
	//
	//    * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction.
	//
	//    * Partial ARN - 123456789012:function:MyFunction.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// The function version that the alias invokes.
	FunctionVersion *string `min:"1" type:"string"`

	// The name of the alias.
	//
	// Name is a required field
	Name *string `location:"uri" locationName:"Name" min:"1" type:"string" required:"true"`

	// Only update the alias if the revision ID matches the ID that's specified.
	// Use this option to avoid modifying an alias that has changed since you last
	// read it.
	RevisionId *string `type:"string"`

	// The routing configuration (https://docs.aws.amazon.com/lambda/latest/dg/configuration-aliases.html#configuring-alias-routing)
	// of the alias.
	RoutingConfig *AliasRoutingConfiguration `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAliasInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateAliasInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateAliasInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateAliasInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.FunctionVersion != nil && len(*s.FunctionVersion) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionVersion", 1))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDescription sets the Description field's value.
func (s *UpdateAliasInput) SetDescription(v string) *UpdateAliasInput {
	s.Description = &v
	return s
}

// SetFunctionName sets the FunctionName field's value.
func (s *UpdateAliasInput) SetFunctionName(v string) *UpdateAliasInput {
	s.FunctionName = &v
	return s
}

// SetFunctionVersion sets the FunctionVersion field's value.
func (s *UpdateAliasInput) SetFunctionVersion(v string) *UpdateAliasInput {
	s.FunctionVersion = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateAliasInput) SetName(v string) *UpdateAliasInput {
	s.Name = &v
	return s
}

// SetRevisionId sets the RevisionId field's value.
func (s *UpdateAliasInput) SetRevisionId(v string) *UpdateAliasInput {
	s.RevisionId = &v
	return s
}

// SetRoutingConfig sets the RoutingConfig field's value.
func (s *UpdateAliasInput) SetRoutingConfig(v *AliasRoutingConfiguration) *UpdateAliasInput {
	s.RoutingConfig = v
	return s
}

type UpdateCodeSigningConfigInput struct {
	_ struct{} `type:"structure"`

	// Signing profiles for this code signing configuration.
	AllowedPublishers *AllowedPublishers `type:"structure"`

	// The The Amazon Resource Name (ARN) of the code signing configuration.
	//
	// CodeSigningConfigArn is a required field
	CodeSigningConfigArn *string `location:"uri" locationName:"CodeSigningConfigArn" type:"string" required:"true"`

	// The code signing policy.
	CodeSigningPolicies *CodeSigningPolicies `type:"structure"`

	// Descriptive name for this code signing configuration.
	Description *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateCodeSigningConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateCodeSigningConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateCodeSigningConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateCodeSigningConfigInput"}
	if s.CodeSigningConfigArn == nil {
		invalidParams.Add(request.NewErrParamRequired("CodeSigningConfigArn"))
	}
	if s.CodeSigningConfigArn != nil && len(*s.CodeSigningConfigArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CodeSigningConfigArn", 1))
	}
	if s.AllowedPublishers != nil {
		if err := s.AllowedPublishers.Validate(); err != nil {
			invalidParams.AddNested("AllowedPublishers", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAllowedPublishers sets the AllowedPublishers field's value.
func (s *UpdateCodeSigningConfigInput) SetAllowedPublishers(v *AllowedPublishers) *UpdateCodeSigningConfigInput {
	s.AllowedPublishers = v
	return s
}

// SetCodeSigningConfigArn sets the CodeSigningConfigArn field's value.
func (s *UpdateCodeSigningConfigInput) SetCodeSigningConfigArn(v string) *UpdateCodeSigningConfigInput {
	s.CodeSigningConfigArn = &v
	return s
}

// SetCodeSigningPolicies sets the CodeSigningPolicies field's value.
func (s *UpdateCodeSigningConfigInput) SetCodeSigningPolicies(v *CodeSigningPolicies) *UpdateCodeSigningConfigInput {
	s.CodeSigningPolicies = v
	return s
}

// SetDescription sets the Description field's value.
func (s *UpdateCodeSigningConfigInput) SetDescription(v string) *UpdateCodeSigningConfigInput {
	s.Description = &v
	return s
}

type UpdateCodeSigningConfigOutput struct {
	_ struct{} `type:"structure"`

	// The code signing configuration
	//
	// CodeSigningConfig is a required field
	CodeSigningConfig *CodeSigningConfig `type:"structure" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateCodeSigningConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateCodeSigningConfigOutput) GoString() string {
	return s.String()
}

// SetCodeSigningConfig sets the CodeSigningConfig field's value.
func (s *UpdateCodeSigningConfigOutput) SetCodeSigningConfig(v *CodeSigningConfig) *UpdateCodeSigningConfigOutput {
	s.CodeSigningConfig = v
	return s
}

type UpdateEventSourceMappingInput struct {
	_ struct{} `type:"structure"`

	// The maximum number of records in each batch that Lambda pulls from your stream
	// or queue and sends to your function. Lambda passes all of the records in
	// the batch to the function in a single call, up to the payload limit for synchronous
	// invocation (6 MB).
	//
	//    * Amazon Kinesis – Default 100. Max 10,000.
	//
	//    * Amazon DynamoDB Streams – Default 100. Max 10,000.
	//
	//    * Amazon Simple Queue Service – Default 10. For standard queues the
	//    max is 10,000. For FIFO queues the max is 10.
	//
	//    * Amazon Managed Streaming for Apache Kafka – Default 100. Max 10,000.
	//
	//    * Self-managed Apache Kafka – Default 100. Max 10,000.
	//
	//    * Amazon MQ (ActiveMQ and RabbitMQ) – Default 100. Max 10,000.
	//
	//    * DocumentDB – Default 100. Max 10,000.
	BatchSize *int64 `min:"1" type:"integer"`

	// (Kinesis and DynamoDB Streams only) If the function returns an error, split
	// the batch in two and retry.
	BisectBatchOnFunctionError *bool `type:"boolean"`

	// (Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Kafka only) A configuration
	// object that specifies the destination of an event after Lambda processes
	// it.
	DestinationConfig *DestinationConfig `type:"structure"`

	// Specific configuration settings for a DocumentDB event source.
	DocumentDBEventSourceConfig *DocumentDBEventSourceConfig `type:"structure"`

	// When true, the event source mapping is active. When false, Lambda pauses
	// polling and invocation.
	//
	// Default: True
	Enabled *bool `type:"boolean"`

	// An object that defines the filter criteria that determine whether Lambda
	// should process an event. For more information, see Lambda event filtering
	// (https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html).
	FilterCriteria *FilterCriteria `type:"structure"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – MyFunction.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:MyFunction.
	//
	//    * Version or Alias ARN – arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD.
	//
	//    * Partial ARN – 123456789012:function:MyFunction.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it's limited to 64 characters in length.
	FunctionName *string `min:"1" type:"string"`

	// (Kinesis, DynamoDB Streams, and Amazon SQS) A list of current response type
	// enums applied to the event source mapping.
	FunctionResponseTypes []*string `type:"list" enum:"FunctionResponseType"`

	// The maximum amount of time, in seconds, that Lambda spends gathering records
	// before invoking the function. You can configure MaximumBatchingWindowInSeconds
	// to any value from 0 seconds to 300 seconds in increments of seconds.
	//
	// For streams and Amazon SQS event sources, the default batching window is
	// 0 seconds. For Amazon MSK, Self-managed Apache Kafka, Amazon MQ, and DocumentDB
	// event sources, the default batching window is 500 ms. Note that because you
	// can only change MaximumBatchingWindowInSeconds in increments of seconds,
	// you cannot revert back to the 500 ms default batching window after you have
	// changed it. To restore the default batching window, you must create a new
	// event source mapping.
	//
	// Related setting: For streams and Amazon SQS event sources, when you set BatchSize
	// to a value greater than 10, you must set MaximumBatchingWindowInSeconds to
	// at least 1.
	MaximumBatchingWindowInSeconds *int64 `type:"integer"`

	// (Kinesis and DynamoDB Streams only) Discard records older than the specified
	// age. The default value is infinite (-1).
	MaximumRecordAgeInSeconds *int64 `type:"integer"`

	// (Kinesis and DynamoDB Streams only) Discard records after the specified number
	// of retries. The default value is infinite (-1). When set to infinite (-1),
	// failed records are retried until the record expires.
	MaximumRetryAttempts *int64 `type:"integer"`

	// (Kinesis and DynamoDB Streams only) The number of batches to process from
	// each shard concurrently.
	ParallelizationFactor *int64 `min:"1" type:"integer"`

	// (Amazon SQS only) The scaling configuration for the event source. For more
	// information, see Configuring maximum concurrency for Amazon SQS event sources
	// (https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency).
	ScalingConfig *ScalingConfig `type:"structure"`

	// An array of authentication protocols or VPC components required to secure
	// your event source.
	SourceAccessConfigurations []*SourceAccessConfiguration `type:"list"`

	// (Kinesis and DynamoDB Streams only) The duration in seconds of a processing
	// window for DynamoDB and Kinesis Streams event sources. A value of 0 seconds
	// indicates no tumbling window.
	TumblingWindowInSeconds *int64 `type:"integer"`

	// The identifier of the event source mapping.
	//
	// UUID is a required field
	UUID *string `location:"uri" locationName:"UUID" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateEventSourceMappingInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateEventSourceMappingInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateEventSourceMappingInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateEventSourceMappingInput"}
	if s.BatchSize != nil && *s.BatchSize < 1 {
		invalidParams.Add(request.NewErrParamMinValue("BatchSize", 1))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.MaximumRecordAgeInSeconds != nil && *s.MaximumRecordAgeInSeconds < -1 {
		invalidParams.Add(request.NewErrParamMinValue("MaximumRecordAgeInSeconds", -1))
	}
	if s.MaximumRetryAttempts != nil && *s.MaximumRetryAttempts < -1 {
		invalidParams.Add(request.NewErrParamMinValue("MaximumRetryAttempts", -1))
	}
	if s.ParallelizationFactor != nil && *s.ParallelizationFactor < 1 {
		invalidParams.Add(request.NewErrParamMinValue("ParallelizationFactor", 1))
	}
	if s.UUID == nil {
		invalidParams.Add(request.NewErrParamRequired("UUID"))
	}
	if s.UUID != nil && len(*s.UUID) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UUID", 1))
	}
	if s.DocumentDBEventSourceConfig != nil {
		if err := s.DocumentDBEventSourceConfig.Validate(); err != nil {
			invalidParams.AddNested("DocumentDBEventSourceConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.ScalingConfig != nil {
		if err := s.ScalingConfig.Validate(); err != nil {
			invalidParams.AddNested("ScalingConfig", err.(request.ErrInvalidParams))
		}
	}
	if s.SourceAccessConfigurations != nil {
		for i, v := range s.SourceAccessConfigurations {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SourceAccessConfigurations", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetBatchSize sets the BatchSize field's value.
func (s *UpdateEventSourceMappingInput) SetBatchSize(v int64) *UpdateEventSourceMappingInput {
	s.BatchSize = &v
	return s
}

// SetBisectBatchOnFunctionError sets the BisectBatchOnFunctionError field's value.
func (s *UpdateEventSourceMappingInput) SetBisectBatchOnFunctionError(v bool) *UpdateEventSourceMappingInput {
	s.BisectBatchOnFunctionError = &v
	return s
}

// SetDestinationConfig sets the DestinationConfig field's value.
func (s *UpdateEventSourceMappingInput) SetDestinationConfig(v *DestinationConfig) *UpdateEventSourceMappingInput {
	s.DestinationConfig = v
	return s
}

// SetDocumentDBEventSourceConfig sets the DocumentDBEventSourceConfig field's value.
func (s *UpdateEventSourceMappingInput) SetDocumentDBEventSourceConfig(v *DocumentDBEventSourceConfig) *UpdateEventSourceMappingInput {
	s.DocumentDBEventSourceConfig = v
	return s
}

// SetEnabled sets the Enabled field's value.
func (s *UpdateEventSourceMappingInput) SetEnabled(v bool) *UpdateEventSourceMappingInput {
	s.Enabled = &v
	return s
}

// SetFilterCriteria sets the FilterCriteria field's value.
func (s *UpdateEventSourceMappingInput) SetFilterCriteria(v *FilterCriteria) *UpdateEventSourceMappingInput {
	s.FilterCriteria = v
	return s
}

// SetFunctionName sets the FunctionName field's value.
func (s *UpdateEventSourceMappingInput) SetFunctionName(v string) *UpdateEventSourceMappingInput {
	s.FunctionName = &v
	return s
}

// SetFunctionResponseTypes sets the FunctionResponseTypes field's value.
func (s *UpdateEventSourceMappingInput) SetFunctionResponseTypes(v []*string) *UpdateEventSourceMappingInput {
	s.FunctionResponseTypes = v
	return s
}

// SetMaximumBatchingWindowInSeconds sets the MaximumBatchingWindowInSeconds field's value.
func (s *UpdateEventSourceMappingInput) SetMaximumBatchingWindowInSeconds(v int64) *UpdateEventSourceMappingInput {
	s.MaximumBatchingWindowInSeconds = &v
	return s
}

// SetMaximumRecordAgeInSeconds sets the MaximumRecordAgeInSeconds field's value.
func (s *UpdateEventSourceMappingInput) SetMaximumRecordAgeInSeconds(v int64) *UpdateEventSourceMappingInput {
	s.MaximumRecordAgeInSeconds = &v
	return s
}

// SetMaximumRetryAttempts sets the MaximumRetryAttempts field's value.
func (s *UpdateEventSourceMappingInput) SetMaximumRetryAttempts(v int64) *UpdateEventSourceMappingInput {
	s.MaximumRetryAttempts = &v
	return s
}

// SetParallelizationFactor sets the ParallelizationFactor field's value.
func (s *UpdateEventSourceMappingInput) SetParallelizationFactor(v int64) *UpdateEventSourceMappingInput {
	s.ParallelizationFactor = &v
	return s
}

// SetScalingConfig sets the ScalingConfig field's value.
func (s *UpdateEventSourceMappingInput) SetScalingConfig(v *ScalingConfig) *UpdateEventSourceMappingInput {
	s.ScalingConfig = v
	return s
}

// SetSourceAccessConfigurations sets the SourceAccessConfigurations field's value.
func (s *UpdateEventSourceMappingInput) SetSourceAccessConfigurations(v []*SourceAccessConfiguration) *UpdateEventSourceMappingInput {
	s.SourceAccessConfigurations = v
	return s
}

// SetTumblingWindowInSeconds sets the TumblingWindowInSeconds field's value.
func (s *UpdateEventSourceMappingInput) SetTumblingWindowInSeconds(v int64) *UpdateEventSourceMappingInput {
	s.TumblingWindowInSeconds = &v
	return s
}

// SetUUID sets the UUID field's value.
func (s *UpdateEventSourceMappingInput) SetUUID(v string) *UpdateEventSourceMappingInput {
	s.UUID = &v
	return s
}

type UpdateFunctionCodeInput struct {
	_ struct{} `type:"structure"`

	// The instruction set architecture that the function supports. Enter a string
	// array with one of the valid values (arm64 or x86_64). The default value is
	// x86_64.
	Architectures []*string `min:"1" type:"list" enum:"Architecture"`

	// Set to true to validate the request parameters and access permissions without
	// modifying the function code.
	DryRun *bool `type:"boolean"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – my-function.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// URI of a container image in the Amazon ECR registry. Do not use for a function
	// defined with a .zip file archive.
	ImageUri *string `type:"string"`

	// Set to true to publish a new version of the function after updating the code.
	// This has the same effect as calling PublishVersion separately.
	Publish *bool `type:"boolean"`

	// Update the function only if the revision ID matches the ID that's specified.
	// Use this option to avoid modifying a function that has changed since you
	// last read it.
	RevisionId *string `type:"string"`

	// An Amazon S3 bucket in the same Amazon Web Services Region as your function.
	// The bucket can be in a different Amazon Web Services account. Use only with
	// a function defined with a .zip file archive deployment package.
	S3Bucket *string `min:"3" type:"string"`

	// The Amazon S3 key of the deployment package. Use only with a function defined
	// with a .zip file archive deployment package.
	S3Key *string `min:"1" type:"string"`

	// For versioned objects, the version of the deployment package object to use.
	S3ObjectVersion *string `min:"1" type:"string"`

	// The base64-encoded contents of the deployment package. Amazon Web Services
	// SDK and CLI clients handle the encoding for you. Use only with a function
	// defined with a .zip file archive deployment package.
	//
	// ZipFile is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateFunctionCodeInput's
	// String and GoString methods.
	//
	// ZipFile is automatically base64 encoded/decoded by the SDK.
	ZipFile []byte `type:"blob" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFunctionCodeInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFunctionCodeInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateFunctionCodeInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateFunctionCodeInput"}
	if s.Architectures != nil && len(s.Architectures) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Architectures", 1))
	}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.S3Bucket != nil && len(*s.S3Bucket) < 3 {
		invalidParams.Add(request.NewErrParamMinLen("S3Bucket", 3))
	}
	if s.S3Key != nil && len(*s.S3Key) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("S3Key", 1))
	}
	if s.S3ObjectVersion != nil && len(*s.S3ObjectVersion) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("S3ObjectVersion", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetArchitectures sets the Architectures field's value.
func (s *UpdateFunctionCodeInput) SetArchitectures(v []*string) *UpdateFunctionCodeInput {
	s.Architectures = v
	return s
}

// SetDryRun sets the DryRun field's value.
func (s *UpdateFunctionCodeInput) SetDryRun(v bool) *UpdateFunctionCodeInput {
	s.DryRun = &v
	return s
}

// SetFunctionName sets the FunctionName field's value.
func (s *UpdateFunctionCodeInput) SetFunctionName(v string) *UpdateFunctionCodeInput {
	s.FunctionName = &v
	return s
}

// SetImageUri sets the ImageUri field's value.
func (s *UpdateFunctionCodeInput) SetImageUri(v string) *UpdateFunctionCodeInput {
	s.ImageUri = &v
	return s
}

// SetPublish sets the Publish field's value.
func (s *UpdateFunctionCodeInput) SetPublish(v bool) *UpdateFunctionCodeInput {
	s.Publish = &v
	return s
}

// SetRevisionId sets the RevisionId field's value.
func (s *UpdateFunctionCodeInput) SetRevisionId(v string) *UpdateFunctionCodeInput {
	s.RevisionId = &v
	return s
}

// SetS3Bucket sets the S3Bucket field's value.
func (s *UpdateFunctionCodeInput) SetS3Bucket(v string) *UpdateFunctionCodeInput {
	s.S3Bucket = &v
	return s
}

// SetS3Key sets the S3Key field's value.
func (s *UpdateFunctionCodeInput) SetS3Key(v string) *UpdateFunctionCodeInput {
	s.S3Key = &v
	return s
}

// SetS3ObjectVersion sets the S3ObjectVersion field's value.
func (s *UpdateFunctionCodeInput) SetS3ObjectVersion(v string) *UpdateFunctionCodeInput {
	s.S3ObjectVersion = &v
	return s
}

// SetZipFile sets the ZipFile field's value.
func (s *UpdateFunctionCodeInput) SetZipFile(v []byte) *UpdateFunctionCodeInput {
	s.ZipFile = v
	return s
}

type UpdateFunctionConfigurationInput struct {
	_ struct{} `type:"structure"`

	// A dead-letter queue configuration that specifies the queue or topic where
	// Lambda sends asynchronous events when they fail processing. For more information,
	// see Dead-letter queues (https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-dlq).
	DeadLetterConfig *DeadLetterConfig `type:"structure"`

	// A description of the function.
	Description *string `type:"string"`

	// Environment variables that are accessible from function code during execution.
	Environment *Environment `type:"structure"`

	// The size of the function's /tmp directory in MB. The default value is 512,
	// but can be any whole number between 512 and 10,240 MB. For more information,
	// see Configuring ephemeral storage (console) (https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-ephemeral-storage).
	EphemeralStorage *EphemeralStorage `type:"structure"`

	// Connection settings for an Amazon EFS file system.
	FileSystemConfigs []*FileSystemConfig `type:"list"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – my-function.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// The name of the method within your code that Lambda calls to run your function.
	// Handler is required if the deployment package is a .zip file archive. The
	// format includes the file name. It can also include namespaces and other qualifiers,
	// depending on the runtime. For more information, see Lambda programming model
	// (https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html).
	Handler *string `type:"string"`

	// Container image configuration values (https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms)
	// that override the values in the container image Docker file.
	ImageConfig *ImageConfig `type:"structure"`

	// The ARN of the Key Management Service (KMS) customer managed key that's used
	// to encrypt your function's environment variables (https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption).
	// When Lambda SnapStart (https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html)
	// is activated, Lambda also uses this key is to encrypt your function's snapshot.
	// If you deploy your function using a container image, Lambda also uses this
	// key to encrypt your function when it's deployed. Note that this is not the
	// same key that's used to protect your container image in the Amazon Elastic
	// Container Registry (Amazon ECR). If you don't provide a customer managed
	// key, Lambda uses a default service key.
	KMSKeyArn *string `type:"string"`

	// A list of function layers (https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html)
	// to add to the function's execution environment. Specify each layer by its
	// ARN, including the version.
	Layers []*string `type:"list"`

	// The function's Amazon CloudWatch Logs configuration settings.
	LoggingConfig *LoggingConfig `type:"structure"`

	// The amount of memory available to the function (https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-memory-console)
	// at runtime. Increasing the function memory also increases its CPU allocation.
	// The default value is 128 MB. The value can be any multiple of 1 MB.
	MemorySize *int64 `min:"128" type:"integer"`

	// Update the function only if the revision ID matches the ID that's specified.
	// Use this option to avoid modifying a function that has changed since you
	// last read it.
	RevisionId *string `type:"string"`

	// The Amazon Resource Name (ARN) of the function's execution role.
	Role *string `type:"string"`

	// The identifier of the function's runtime (https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html).
	// Runtime is required if the deployment package is a .zip file archive.
	//
	// The following list includes deprecated runtimes. For more information, see
	// Runtime deprecation policy (https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy).
	Runtime *string `type:"string" enum:"Runtime"`

	// The function's SnapStart (https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html)
	// setting.
	SnapStart *SnapStart `type:"structure"`

	// The amount of time (in seconds) that Lambda allows a function to run before
	// stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds.
	// For more information, see Lambda execution environment (https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html).
	Timeout *int64 `min:"1" type:"integer"`

	// Set Mode to Active to sample and trace a subset of incoming requests with
	// X-Ray (https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html).
	TracingConfig *TracingConfig `type:"structure"`

	// For network connectivity to Amazon Web Services resources in a VPC, specify
	// a list of security groups and subnets in the VPC. When you connect a function
	// to a VPC, it can access resources and the internet only through that VPC.
	// For more information, see Configuring a Lambda function to access resources
	// in a VPC (https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html).
	VpcConfig *VpcConfig `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFunctionConfigurationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFunctionConfigurationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateFunctionConfigurationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateFunctionConfigurationInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.MemorySize != nil && *s.MemorySize < 128 {
		invalidParams.Add(request.NewErrParamMinValue("MemorySize", 128))
	}
	if s.Timeout != nil && *s.Timeout < 1 {
		invalidParams.Add(request.NewErrParamMinValue("Timeout", 1))
	}
	if s.EphemeralStorage != nil {
		if err := s.EphemeralStorage.Validate(); err != nil {
			invalidParams.AddNested("EphemeralStorage", err.(request.ErrInvalidParams))
		}
	}
	if s.FileSystemConfigs != nil {
		for i, v := range s.FileSystemConfigs {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FileSystemConfigs", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.LoggingConfig != nil {
		if err := s.LoggingConfig.Validate(); err != nil {
			invalidParams.AddNested("LoggingConfig", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDeadLetterConfig sets the DeadLetterConfig field's value.
func (s *UpdateFunctionConfigurationInput) SetDeadLetterConfig(v *DeadLetterConfig) *UpdateFunctionConfigurationInput {
	s.DeadLetterConfig = v
	return s
}

// SetDescription sets the Description field's value.
func (s *UpdateFunctionConfigurationInput) SetDescription(v string) *UpdateFunctionConfigurationInput {
	s.Description = &v
	return s
}

// SetEnvironment sets the Environment field's value.
func (s *UpdateFunctionConfigurationInput) SetEnvironment(v *Environment) *UpdateFunctionConfigurationInput {
	s.Environment = v
	return s
}

// SetEphemeralStorage sets the EphemeralStorage field's value.
func (s *UpdateFunctionConfigurationInput) SetEphemeralStorage(v *EphemeralStorage) *UpdateFunctionConfigurationInput {
	s.EphemeralStorage = v
	return s
}

// SetFileSystemConfigs sets the FileSystemConfigs field's value.
func (s *UpdateFunctionConfigurationInput) SetFileSystemConfigs(v []*FileSystemConfig) *UpdateFunctionConfigurationInput {
	s.FileSystemConfigs = v
	return s
}

// SetFunctionName sets the FunctionName field's value.
func (s *UpdateFunctionConfigurationInput) SetFunctionName(v string) *UpdateFunctionConfigurationInput {
	s.FunctionName = &v
	return s
}

// SetHandler sets the Handler field's value.
func (s *UpdateFunctionConfigurationInput) SetHandler(v string) *UpdateFunctionConfigurationInput {
	s.Handler = &v
	return s
}

// SetImageConfig sets the ImageConfig field's value.
func (s *UpdateFunctionConfigurationInput) SetImageConfig(v *ImageConfig) *UpdateFunctionConfigurationInput {
	s.ImageConfig = v
	return s
}

// SetKMSKeyArn sets the KMSKeyArn field's value.
func (s *UpdateFunctionConfigurationInput) SetKMSKeyArn(v string) *UpdateFunctionConfigurationInput {
	s.KMSKeyArn = &v
	return s
}

// SetLayers sets the Layers field's value.
func (s *UpdateFunctionConfigurationInput) SetLayers(v []*string) *UpdateFunctionConfigurationInput {
	s.Layers = v
	return s
}

// SetLoggingConfig sets the LoggingConfig field's value.
func (s *UpdateFunctionConfigurationInput) SetLoggingConfig(v *LoggingConfig) *UpdateFunctionConfigurationInput {
	s.LoggingConfig = v
	return s
}

// SetMemorySize sets the MemorySize field's value.
func (s *UpdateFunctionConfigurationInput) SetMemorySize(v int64) *UpdateFunctionConfigurationInput {
	s.MemorySize = &v
	return s
}

// SetRevisionId sets the RevisionId field's value.
func (s *UpdateFunctionConfigurationInput) SetRevisionId(v string) *UpdateFunctionConfigurationInput {
	s.RevisionId = &v
	return s
}

// SetRole sets the Role field's value.
func (s *UpdateFunctionConfigurationInput) SetRole(v string) *UpdateFunctionConfigurationInput {
	s.Role = &v
	return s
}

// SetRuntime sets the Runtime field's value.
func (s *UpdateFunctionConfigurationInput) SetRuntime(v string) *UpdateFunctionConfigurationInput {
	s.Runtime = &v
	return s
}

// SetSnapStart sets the SnapStart field's value.
func (s *UpdateFunctionConfigurationInput) SetSnapStart(v *SnapStart) *UpdateFunctionConfigurationInput {
	s.SnapStart = v
	return s
}

// SetTimeout sets the Timeout field's value.
func (s *UpdateFunctionConfigurationInput) SetTimeout(v int64) *UpdateFunctionConfigurationInput {
	s.Timeout = &v
	return s
}

// SetTracingConfig sets the TracingConfig field's value.
func (s *UpdateFunctionConfigurationInput) SetTracingConfig(v *TracingConfig) *UpdateFunctionConfigurationInput {
	s.TracingConfig = v
	return s
}

// SetVpcConfig sets the VpcConfig field's value.
func (s *UpdateFunctionConfigurationInput) SetVpcConfig(v *VpcConfig) *UpdateFunctionConfigurationInput {
	s.VpcConfig = v
	return s
}

type UpdateFunctionEventInvokeConfigInput struct {
	_ struct{} `type:"structure"`

	// A destination for events after they have been sent to a function for processing.
	//
	// Destinations
	//
	//    * Function - The Amazon Resource Name (ARN) of a Lambda function.
	//
	//    * Queue - The ARN of a standard SQS queue.
	//
	//    * Topic - The ARN of a standard SNS topic.
	//
	//    * Event Bus - The ARN of an Amazon EventBridge event bus.
	DestinationConfig *DestinationConfig `type:"structure"`

	// The name or ARN of the Lambda function, version, or alias.
	//
	// Name formats
	//
	//    * Function name - my-function (name-only), my-function:v1 (with alias).
	//
	//    * Function ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN - 123456789012:function:my-function.
	//
	// You can append a version number or alias to any of the formats. The length
	// constraint applies only to the full ARN. If you specify only the function
	// name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// The maximum age of a request that Lambda sends to a function for processing.
	MaximumEventAgeInSeconds *int64 `min:"60" type:"integer"`

	// The maximum number of times to retry when the function returns an error.
	MaximumRetryAttempts *int64 `type:"integer"`

	// A version number or alias name.
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFunctionEventInvokeConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFunctionEventInvokeConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateFunctionEventInvokeConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateFunctionEventInvokeConfigInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.MaximumEventAgeInSeconds != nil && *s.MaximumEventAgeInSeconds < 60 {
		invalidParams.Add(request.NewErrParamMinValue("MaximumEventAgeInSeconds", 60))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDestinationConfig sets the DestinationConfig field's value.
func (s *UpdateFunctionEventInvokeConfigInput) SetDestinationConfig(v *DestinationConfig) *UpdateFunctionEventInvokeConfigInput {
	s.DestinationConfig = v
	return s
}

// SetFunctionName sets the FunctionName field's value.
func (s *UpdateFunctionEventInvokeConfigInput) SetFunctionName(v string) *UpdateFunctionEventInvokeConfigInput {
	s.FunctionName = &v
	return s
}

// SetMaximumEventAgeInSeconds sets the MaximumEventAgeInSeconds field's value.
func (s *UpdateFunctionEventInvokeConfigInput) SetMaximumEventAgeInSeconds(v int64) *UpdateFunctionEventInvokeConfigInput {
	s.MaximumEventAgeInSeconds = &v
	return s
}

// SetMaximumRetryAttempts sets the MaximumRetryAttempts field's value.
func (s *UpdateFunctionEventInvokeConfigInput) SetMaximumRetryAttempts(v int64) *UpdateFunctionEventInvokeConfigInput {
	s.MaximumRetryAttempts = &v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *UpdateFunctionEventInvokeConfigInput) SetQualifier(v string) *UpdateFunctionEventInvokeConfigInput {
	s.Qualifier = &v
	return s
}

type UpdateFunctionEventInvokeConfigOutput struct {
	_ struct{} `type:"structure"`

	// A destination for events after they have been sent to a function for processing.
	//
	// Destinations
	//
	//    * Function - The Amazon Resource Name (ARN) of a Lambda function.
	//
	//    * Queue - The ARN of a standard SQS queue.
	//
	//    * Topic - The ARN of a standard SNS topic.
	//
	//    * Event Bus - The ARN of an Amazon EventBridge event bus.
	DestinationConfig *DestinationConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of the function.
	FunctionArn *string `type:"string"`

	// The date and time that the configuration was last updated.
	LastModified *time.Time `type:"timestamp"`

	// The maximum age of a request that Lambda sends to a function for processing.
	MaximumEventAgeInSeconds *int64 `min:"60" type:"integer"`

	// The maximum number of times to retry when the function returns an error.
	MaximumRetryAttempts *int64 `type:"integer"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFunctionEventInvokeConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFunctionEventInvokeConfigOutput) GoString() string {
	return s.String()
}

// SetDestinationConfig sets the DestinationConfig field's value.
func (s *UpdateFunctionEventInvokeConfigOutput) SetDestinationConfig(v *DestinationConfig) *UpdateFunctionEventInvokeConfigOutput {
	s.DestinationConfig = v
	return s
}

// SetFunctionArn sets the FunctionArn field's value.
func (s *UpdateFunctionEventInvokeConfigOutput) SetFunctionArn(v string) *UpdateFunctionEventInvokeConfigOutput {
	s.FunctionArn = &v
	return s
}

// SetLastModified sets the LastModified field's value.
func (s *UpdateFunctionEventInvokeConfigOutput) SetLastModified(v time.Time) *UpdateFunctionEventInvokeConfigOutput {
	s.LastModified = &v
	return s
}

// SetMaximumEventAgeInSeconds sets the MaximumEventAgeInSeconds field's value.
func (s *UpdateFunctionEventInvokeConfigOutput) SetMaximumEventAgeInSeconds(v int64) *UpdateFunctionEventInvokeConfigOutput {
	s.MaximumEventAgeInSeconds = &v
	return s
}

// SetMaximumRetryAttempts sets the MaximumRetryAttempts field's value.
func (s *UpdateFunctionEventInvokeConfigOutput) SetMaximumRetryAttempts(v int64) *UpdateFunctionEventInvokeConfigOutput {
	s.MaximumRetryAttempts = &v
	return s
}

type UpdateFunctionUrlConfigInput struct {
	_ struct{} `type:"structure"`

	// The type of authentication that your function URL uses. Set to AWS_IAM if
	// you want to restrict access to authenticated users only. Set to NONE if you
	// want to bypass IAM authentication to create a public endpoint. For more information,
	// see Security and auth model for Lambda function URLs (https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html).
	AuthType *string `type:"string" enum:"FunctionUrlAuthType"`

	// The cross-origin resource sharing (CORS) (https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
	// settings for your function URL.
	Cors *Cors `type:"structure"`

	// The name or ARN of the Lambda function.
	//
	// Name formats
	//
	//    * Function name – my-function.
	//
	//    * Function ARN – arn:aws:lambda:us-west-2:123456789012:function:my-function.
	//
	//    * Partial ARN – 123456789012:function:my-function.
	//
	// The length constraint applies only to the full ARN. If you specify only the
	// function name, it is limited to 64 characters in length.
	//
	// FunctionName is a required field
	FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"`

	// Use one of the following options:
	//
	//    * BUFFERED – This is the default option. Lambda invokes your function
	//    using the Invoke API operation. Invocation results are available when
	//    the payload is complete. The maximum payload size is 6 MB.
	//
	//    * RESPONSE_STREAM – Your function streams payload results as they become
	//    available. Lambda invokes your function using the InvokeWithResponseStream
	//    API operation. The maximum response payload size is 20 MB, however, you
	//    can request a quota increase (https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html).
	InvokeMode *string `type:"string" enum:"InvokeMode"`

	// The alias name.
	Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFunctionUrlConfigInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFunctionUrlConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateFunctionUrlConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateFunctionUrlConfigInput"}
	if s.FunctionName == nil {
		invalidParams.Add(request.NewErrParamRequired("FunctionName"))
	}
	if s.FunctionName != nil && len(*s.FunctionName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FunctionName", 1))
	}
	if s.Qualifier != nil && len(*s.Qualifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Qualifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAuthType sets the AuthType field's value.
func (s *UpdateFunctionUrlConfigInput) SetAuthType(v string) *UpdateFunctionUrlConfigInput {
	s.AuthType = &v
	return s
}

// SetCors sets the Cors field's value.
func (s *UpdateFunctionUrlConfigInput) SetCors(v *Cors) *UpdateFunctionUrlConfigInput {
	s.Cors = v
	return s
}

// SetFunctionName sets the FunctionName field's value.
func (s *UpdateFunctionUrlConfigInput) SetFunctionName(v string) *UpdateFunctionUrlConfigInput {
	s.FunctionName = &v
	return s
}

// SetInvokeMode sets the InvokeMode field's value.
func (s *UpdateFunctionUrlConfigInput) SetInvokeMode(v string) *UpdateFunctionUrlConfigInput {
	s.InvokeMode = &v
	return s
}

// SetQualifier sets the Qualifier field's value.
func (s *UpdateFunctionUrlConfigInput) SetQualifier(v string) *UpdateFunctionUrlConfigInput {
	s.Qualifier = &v
	return s
}

type UpdateFunctionUrlConfigOutput struct {
	_ struct{} `type:"structure"`

	// The type of authentication that your function URL uses. Set to AWS_IAM if
	// you want to restrict access to authenticated users only. Set to NONE if you
	// want to bypass IAM authentication to create a public endpoint. For more information,
	// see Security and auth model for Lambda function URLs (https://docs.aws.amazon.com/lambda/latest/dg/urls-auth.html).
	//
	// AuthType is a required field
	AuthType *string `type:"string" required:"true" enum:"FunctionUrlAuthType"`

	// The cross-origin resource sharing (CORS) (https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
	// settings for your function URL.
	Cors *Cors `type:"structure"`

	// When the function URL was created, in ISO-8601 format (https://www.w3.org/TR/NOTE-datetime)
	// (YYYY-MM-DDThh:mm:ss.sTZD).
	//
	// CreationTime is a required field
	CreationTime *string `type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of your function.
	//
	// FunctionArn is a required field
	FunctionArn *string `type:"string" required:"true"`

	// The HTTP URL endpoint for your function.
	//
	// FunctionUrl is a required field
	FunctionUrl *string `min:"40" type:"string" required:"true"`

	// Use one of the following options:
	//
	//    * BUFFERED – This is the default option. Lambda invokes your function
	//    using the Invoke API operation. Invocation results are available when
	//    the payload is complete. The maximum payload size is 6 MB.
	//
	//    * RESPONSE_STREAM – Your function streams payload results as they become
	//    available. Lambda invokes your function using the InvokeWithResponseStream
	//    API operation. The maximum response payload size is 20 MB, however, you
	//    can request a quota increase (https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html).
	InvokeMode *string `type:"string" enum:"InvokeMode"`

	// When the function URL configuration was last updated, in ISO-8601 format
	// (https://www.w3.org/TR/NOTE-datetime) (YYYY-MM-DDThh:mm:ss.sTZD).
	//
	// LastModifiedTime is a required field
	LastModifiedTime *string `type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFunctionUrlConfigOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateFunctionUrlConfigOutput) GoString() string {
	return s.String()
}

// SetAuthType sets the AuthType field's value.
func (s *UpdateFunctionUrlConfigOutput) SetAuthType(v string) *UpdateFunctionUrlConfigOutput {
	s.AuthType = &v
	return s
}

// SetCors sets the Cors field's value.
func (s *UpdateFunctionUrlConfigOutput) SetCors(v *Cors) *UpdateFunctionUrlConfigOutput {
	s.Cors = v
	return s
}

// SetCreationTime sets the CreationTime field's value.
func (s *UpdateFunctionUrlConfigOutput) SetCreationTime(v string) *UpdateFunctionUrlConfigOutput {
	s.CreationTime = &v
	return s
}

// SetFunctionArn sets the FunctionArn field's value.
func (s *UpdateFunctionUrlConfigOutput) SetFunctionArn(v string) *UpdateFunctionUrlConfigOutput {
	s.FunctionArn = &v
	return s
}

// SetFunctionUrl sets the FunctionUrl field's value.
func (s *UpdateFunctionUrlConfigOutput) SetFunctionUrl(v string) *UpdateFunctionUrlConfigOutput {
	s.FunctionUrl = &v
	return s
}

// SetInvokeMode sets the InvokeMode field's value.
func (s *UpdateFunctionUrlConfigOutput) SetInvokeMode(v string) *UpdateFunctionUrlConfigOutput {
	s.InvokeMode = &v
	return s
}

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *UpdateFunctionUrlConfigOutput) SetLastModifiedTime(v string) *UpdateFunctionUrlConfigOutput {
	s.LastModifiedTime = &v
	return s
}

// The VPC security groups and subnets that are attached to a Lambda function.
// For more information, see Configuring a Lambda function to access resources
// in a VPC (https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html).
type VpcConfig struct {
	_ struct{} `type:"structure"`

	// Allows outbound IPv6 traffic on VPC functions that are connected to dual-stack
	// subnets.
	Ipv6AllowedForDualStack *bool `type:"boolean"`

	// A list of VPC security group IDs.
	SecurityGroupIds []*string `type:"list"`

	// A list of VPC subnet IDs.
	SubnetIds []*string `type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VpcConfig) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VpcConfig) GoString() string {
	return s.String()
}

// SetIpv6AllowedForDualStack sets the Ipv6AllowedForDualStack field's value.
func (s *VpcConfig) SetIpv6AllowedForDualStack(v bool) *VpcConfig {
	s.Ipv6AllowedForDualStack = &v
	return s
}

// SetSecurityGroupIds sets the SecurityGroupIds field's value.
func (s *VpcConfig) SetSecurityGroupIds(v []*string) *VpcConfig {
	s.SecurityGroupIds = v
	return s
}

// SetSubnetIds sets the SubnetIds field's value.
func (s *VpcConfig) SetSubnetIds(v []*string) *VpcConfig {
	s.SubnetIds = v
	return s
}

// The VPC security groups and subnets that are attached to a Lambda function.
type VpcConfigResponse struct {
	_ struct{} `type:"structure"`

	// Allows outbound IPv6 traffic on VPC functions that are connected to dual-stack
	// subnets.
	Ipv6AllowedForDualStack *bool `type:"boolean"`

	// A list of VPC security group IDs.
	SecurityGroupIds []*string `type:"list"`

	// A list of VPC subnet IDs.
	SubnetIds []*string `type:"list"`

	// The ID of the VPC.
	VpcId *string `type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VpcConfigResponse) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s VpcConfigResponse) GoString() string {
	return s.String()
}

// SetIpv6AllowedForDualStack sets the Ipv6AllowedForDualStack field's value.
func (s *VpcConfigResponse) SetIpv6AllowedForDualStack(v bool) *VpcConfigResponse {
	s.Ipv6AllowedForDualStack = &v
	return s
}

// SetSecurityGroupIds sets the SecurityGroupIds field's value.
func (s *VpcConfigResponse) SetSecurityGroupIds(v []*string) *VpcConfigResponse {
	s.SecurityGroupIds = v
	return s
}

// SetSubnetIds sets the SubnetIds field's value.
func (s *VpcConfigResponse) SetSubnetIds(v []*string) *VpcConfigResponse {
	s.SubnetIds = v
	return s
}

// SetVpcId sets the VpcId field's value.
func (s *VpcConfigResponse) SetVpcId(v string) *VpcConfigResponse {
	s.VpcId = &v
	return s
}

const (
	// ApplicationLogLevelTrace is a ApplicationLogLevel enum value
	ApplicationLogLevelTrace = "TRACE"

	// ApplicationLogLevelDebug is a ApplicationLogLevel enum value
	ApplicationLogLevelDebug = "DEBUG"

	// ApplicationLogLevelInfo is a ApplicationLogLevel enum value
	ApplicationLogLevelInfo = "INFO"

	// ApplicationLogLevelWarn is a ApplicationLogLevel enum value
	ApplicationLogLevelWarn = "WARN"

	// ApplicationLogLevelError is a ApplicationLogLevel enum value
	ApplicationLogLevelError = "ERROR"

	// ApplicationLogLevelFatal is a ApplicationLogLevel enum value
	ApplicationLogLevelFatal = "FATAL"
)

// ApplicationLogLevel_Values returns all elements of the ApplicationLogLevel enum
func ApplicationLogLevel_Values() []string {
	return []string{
		ApplicationLogLevelTrace,
		ApplicationLogLevelDebug,
		ApplicationLogLevelInfo,
		ApplicationLogLevelWarn,
		ApplicationLogLevelError,
		ApplicationLogLevelFatal,
	}
}

const (
	// ArchitectureX8664 is a Architecture enum value
	ArchitectureX8664 = "x86_64"

	// ArchitectureArm64 is a Architecture enum value
	ArchitectureArm64 = "arm64"
)

// Architecture_Values returns all elements of the Architecture enum
func Architecture_Values() []string {
	return []string{
		ArchitectureX8664,
		ArchitectureArm64,
	}
}

const (
	// CodeSigningPolicyWarn is a CodeSigningPolicy enum value
	CodeSigningPolicyWarn = "Warn"

	// CodeSigningPolicyEnforce is a CodeSigningPolicy enum value
	CodeSigningPolicyEnforce = "Enforce"
)

// CodeSigningPolicy_Values returns all elements of the CodeSigningPolicy enum
func CodeSigningPolicy_Values() []string {
	return []string{
		CodeSigningPolicyWarn,
		CodeSigningPolicyEnforce,
	}
}

const (
	// EndPointTypeKafkaBootstrapServers is a EndPointType enum value
	EndPointTypeKafkaBootstrapServers = "KAFKA_BOOTSTRAP_SERVERS"
)

// EndPointType_Values returns all elements of the EndPointType enum
func EndPointType_Values() []string {
	return []string{
		EndPointTypeKafkaBootstrapServers,
	}
}

const (
	// EventSourcePositionTrimHorizon is a EventSourcePosition enum value
	EventSourcePositionTrimHorizon = "TRIM_HORIZON"

	// EventSourcePositionLatest is a EventSourcePosition enum value
	EventSourcePositionLatest = "LATEST"

	// EventSourcePositionAtTimestamp is a EventSourcePosition enum value
	EventSourcePositionAtTimestamp = "AT_TIMESTAMP"
)

// EventSourcePosition_Values returns all elements of the EventSourcePosition enum
func EventSourcePosition_Values() []string {
	return []string{
		EventSourcePositionTrimHorizon,
		EventSourcePositionLatest,
		EventSourcePositionAtTimestamp,
	}
}

const (
	// FullDocumentUpdateLookup is a FullDocument enum value
	FullDocumentUpdateLookup = "UpdateLookup"

	// FullDocumentDefault is a FullDocument enum value
	FullDocumentDefault = "Default"
)

// FullDocument_Values returns all elements of the FullDocument enum
func FullDocument_Values() []string {
	return []string{
		FullDocumentUpdateLookup,
		FullDocumentDefault,
	}
}

const (
	// FunctionResponseTypeReportBatchItemFailures is a FunctionResponseType enum value
	FunctionResponseTypeReportBatchItemFailures = "ReportBatchItemFailures"
)

// FunctionResponseType_Values returns all elements of the FunctionResponseType enum
func FunctionResponseType_Values() []string {
	return []string{
		FunctionResponseTypeReportBatchItemFailures,
	}
}

const (
	// FunctionUrlAuthTypeNone is a FunctionUrlAuthType enum value
	FunctionUrlAuthTypeNone = "NONE"

	// FunctionUrlAuthTypeAwsIam is a FunctionUrlAuthType enum value
	FunctionUrlAuthTypeAwsIam = "AWS_IAM"
)

// FunctionUrlAuthType_Values returns all elements of the FunctionUrlAuthType enum
func FunctionUrlAuthType_Values() []string {
	return []string{
		FunctionUrlAuthTypeNone,
		FunctionUrlAuthTypeAwsIam,
	}
}

const (
	// FunctionVersionAll is a FunctionVersion enum value
	FunctionVersionAll = "ALL"
)

// FunctionVersion_Values returns all elements of the FunctionVersion enum
func FunctionVersion_Values() []string {
	return []string{
		FunctionVersionAll,
	}
}

const (
	// InvocationTypeEvent is a InvocationType enum value
	InvocationTypeEvent = "Event"

	// InvocationTypeRequestResponse is a InvocationType enum value
	InvocationTypeRequestResponse = "RequestResponse"

	// InvocationTypeDryRun is a InvocationType enum value
	InvocationTypeDryRun = "DryRun"
)

// InvocationType_Values returns all elements of the InvocationType enum
func InvocationType_Values() []string {
	return []string{
		InvocationTypeEvent,
		InvocationTypeRequestResponse,
		InvocationTypeDryRun,
	}
}

const (
	// InvokeModeBuffered is a InvokeMode enum value
	InvokeModeBuffered = "BUFFERED"

	// InvokeModeResponseStream is a InvokeMode enum value
	InvokeModeResponseStream = "RESPONSE_STREAM"
)

// InvokeMode_Values returns all elements of the InvokeMode enum
func InvokeMode_Values() []string {
	return []string{
		InvokeModeBuffered,
		InvokeModeResponseStream,
	}
}

const (
	// LastUpdateStatusSuccessful is a LastUpdateStatus enum value
	LastUpdateStatusSuccessful = "Successful"

	// LastUpdateStatusFailed is a LastUpdateStatus enum value
	LastUpdateStatusFailed = "Failed"

	// LastUpdateStatusInProgress is a LastUpdateStatus enum value
	LastUpdateStatusInProgress = "InProgress"
)

// LastUpdateStatus_Values returns all elements of the LastUpdateStatus enum
func LastUpdateStatus_Values() []string {
	return []string{
		LastUpdateStatusSuccessful,
		LastUpdateStatusFailed,
		LastUpdateStatusInProgress,
	}
}

const (
	// LastUpdateStatusReasonCodeEniLimitExceeded is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeEniLimitExceeded = "EniLimitExceeded"

	// LastUpdateStatusReasonCodeInsufficientRolePermissions is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeInsufficientRolePermissions = "InsufficientRolePermissions"

	// LastUpdateStatusReasonCodeInvalidConfiguration is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeInvalidConfiguration = "InvalidConfiguration"

	// LastUpdateStatusReasonCodeInternalError is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeInternalError = "InternalError"

	// LastUpdateStatusReasonCodeSubnetOutOfIpaddresses is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeSubnetOutOfIpaddresses = "SubnetOutOfIPAddresses"

	// LastUpdateStatusReasonCodeInvalidSubnet is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeInvalidSubnet = "InvalidSubnet"

	// LastUpdateStatusReasonCodeInvalidSecurityGroup is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeInvalidSecurityGroup = "InvalidSecurityGroup"

	// LastUpdateStatusReasonCodeImageDeleted is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeImageDeleted = "ImageDeleted"

	// LastUpdateStatusReasonCodeImageAccessDenied is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeImageAccessDenied = "ImageAccessDenied"

	// LastUpdateStatusReasonCodeInvalidImage is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeInvalidImage = "InvalidImage"

	// LastUpdateStatusReasonCodeKmskeyAccessDenied is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeKmskeyAccessDenied = "KMSKeyAccessDenied"

	// LastUpdateStatusReasonCodeKmskeyNotFound is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeKmskeyNotFound = "KMSKeyNotFound"

	// LastUpdateStatusReasonCodeInvalidStateKmskey is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeInvalidStateKmskey = "InvalidStateKMSKey"

	// LastUpdateStatusReasonCodeDisabledKmskey is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeDisabledKmskey = "DisabledKMSKey"

	// LastUpdateStatusReasonCodeEfsioerror is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeEfsioerror = "EFSIOError"

	// LastUpdateStatusReasonCodeEfsmountConnectivityError is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeEfsmountConnectivityError = "EFSMountConnectivityError"

	// LastUpdateStatusReasonCodeEfsmountFailure is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeEfsmountFailure = "EFSMountFailure"

	// LastUpdateStatusReasonCodeEfsmountTimeout is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeEfsmountTimeout = "EFSMountTimeout"

	// LastUpdateStatusReasonCodeInvalidRuntime is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeInvalidRuntime = "InvalidRuntime"

	// LastUpdateStatusReasonCodeInvalidZipFileException is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeInvalidZipFileException = "InvalidZipFileException"

	// LastUpdateStatusReasonCodeFunctionError is a LastUpdateStatusReasonCode enum value
	LastUpdateStatusReasonCodeFunctionError = "FunctionError"
)

// LastUpdateStatusReasonCode_Values returns all elements of the LastUpdateStatusReasonCode enum
func LastUpdateStatusReasonCode_Values() []string {
	return []string{
		LastUpdateStatusReasonCodeEniLimitExceeded,
		LastUpdateStatusReasonCodeInsufficientRolePermissions,
		LastUpdateStatusReasonCodeInvalidConfiguration,
		LastUpdateStatusReasonCodeInternalError,
		LastUpdateStatusReasonCodeSubnetOutOfIpaddresses,
		LastUpdateStatusReasonCodeInvalidSubnet,
		LastUpdateStatusReasonCodeInvalidSecurityGroup,
		LastUpdateStatusReasonCodeImageDeleted,
		LastUpdateStatusReasonCodeImageAccessDenied,
		LastUpdateStatusReasonCodeInvalidImage,
		LastUpdateStatusReasonCodeKmskeyAccessDenied,
		LastUpdateStatusReasonCodeKmskeyNotFound,
		LastUpdateStatusReasonCodeInvalidStateKmskey,
		LastUpdateStatusReasonCodeDisabledKmskey,
		LastUpdateStatusReasonCodeEfsioerror,
		LastUpdateStatusReasonCodeEfsmountConnectivityError,
		LastUpdateStatusReasonCodeEfsmountFailure,
		LastUpdateStatusReasonCodeEfsmountTimeout,
		LastUpdateStatusReasonCodeInvalidRuntime,
		LastUpdateStatusReasonCodeInvalidZipFileException,
		LastUpdateStatusReasonCodeFunctionError,
	}
}

const (
	// LogFormatJson is a LogFormat enum value
	LogFormatJson = "JSON"

	// LogFormatText is a LogFormat enum value
	LogFormatText = "Text"
)

// LogFormat_Values returns all elements of the LogFormat enum
func LogFormat_Values() []string {
	return []string{
		LogFormatJson,
		LogFormatText,
	}
}

const (
	// LogTypeNone is a LogType enum value
	LogTypeNone = "None"

	// LogTypeTail is a LogType enum value
	LogTypeTail = "Tail"
)

// LogType_Values returns all elements of the LogType enum
func LogType_Values() []string {
	return []string{
		LogTypeNone,
		LogTypeTail,
	}
}

const (
	// PackageTypeZip is a PackageType enum value
	PackageTypeZip = "Zip"

	// PackageTypeImage is a PackageType enum value
	PackageTypeImage = "Image"
)

// PackageType_Values returns all elements of the PackageType enum
func PackageType_Values() []string {
	return []string{
		PackageTypeZip,
		PackageTypeImage,
	}
}

const (
	// ProvisionedConcurrencyStatusEnumInProgress is a ProvisionedConcurrencyStatusEnum enum value
	ProvisionedConcurrencyStatusEnumInProgress = "IN_PROGRESS"

	// ProvisionedConcurrencyStatusEnumReady is a ProvisionedConcurrencyStatusEnum enum value
	ProvisionedConcurrencyStatusEnumReady = "READY"

	// ProvisionedConcurrencyStatusEnumFailed is a ProvisionedConcurrencyStatusEnum enum value
	ProvisionedConcurrencyStatusEnumFailed = "FAILED"
)

// ProvisionedConcurrencyStatusEnum_Values returns all elements of the ProvisionedConcurrencyStatusEnum enum
func ProvisionedConcurrencyStatusEnum_Values() []string {
	return []string{
		ProvisionedConcurrencyStatusEnumInProgress,
		ProvisionedConcurrencyStatusEnumReady,
		ProvisionedConcurrencyStatusEnumFailed,
	}
}

const (
	// ResponseStreamingInvocationTypeRequestResponse is a ResponseStreamingInvocationType enum value
	ResponseStreamingInvocationTypeRequestResponse = "RequestResponse"

	// ResponseStreamingInvocationTypeDryRun is a ResponseStreamingInvocationType enum value
	ResponseStreamingInvocationTypeDryRun = "DryRun"
)

// ResponseStreamingInvocationType_Values returns all elements of the ResponseStreamingInvocationType enum
func ResponseStreamingInvocationType_Values() []string {
	return []string{
		ResponseStreamingInvocationTypeRequestResponse,
		ResponseStreamingInvocationTypeDryRun,
	}
}

const (
	// RuntimeNodejs is a Runtime enum value
	RuntimeNodejs = "nodejs"

	// RuntimeNodejs43 is a Runtime enum value
	RuntimeNodejs43 = "nodejs4.3"

	// RuntimeNodejs610 is a Runtime enum value
	RuntimeNodejs610 = "nodejs6.10"

	// RuntimeNodejs810 is a Runtime enum value
	RuntimeNodejs810 = "nodejs8.10"

	// RuntimeNodejs10X is a Runtime enum value
	RuntimeNodejs10X = "nodejs10.x"

	// RuntimeNodejs12X is a Runtime enum value
	RuntimeNodejs12X = "nodejs12.x"

	// RuntimeNodejs14X is a Runtime enum value
	RuntimeNodejs14X = "nodejs14.x"

	// RuntimeNodejs16X is a Runtime enum value
	RuntimeNodejs16X = "nodejs16.x"

	// RuntimeJava8 is a Runtime enum value
	RuntimeJava8 = "java8"

	// RuntimeJava8Al2 is a Runtime enum value
	RuntimeJava8Al2 = "java8.al2"

	// RuntimeJava11 is a Runtime enum value
	RuntimeJava11 = "java11"

	// RuntimePython27 is a Runtime enum value
	RuntimePython27 = "python2.7"

	// RuntimePython36 is a Runtime enum value
	RuntimePython36 = "python3.6"

	// RuntimePython37 is a Runtime enum value
	RuntimePython37 = "python3.7"

	// RuntimePython38 is a Runtime enum value
	RuntimePython38 = "python3.8"

	// RuntimePython39 is a Runtime enum value
	RuntimePython39 = "python3.9"

	// RuntimeDotnetcore10 is a Runtime enum value
	RuntimeDotnetcore10 = "dotnetcore1.0"

	// RuntimeDotnetcore20 is a Runtime enum value
	RuntimeDotnetcore20 = "dotnetcore2.0"

	// RuntimeDotnetcore21 is a Runtime enum value
	RuntimeDotnetcore21 = "dotnetcore2.1"

	// RuntimeDotnetcore31 is a Runtime enum value
	RuntimeDotnetcore31 = "dotnetcore3.1"

	// RuntimeDotnet6 is a Runtime enum value
	RuntimeDotnet6 = "dotnet6"

	// RuntimeDotnet8 is a Runtime enum value
	RuntimeDotnet8 = "dotnet8"

	// RuntimeNodejs43Edge is a Runtime enum value
	RuntimeNodejs43Edge = "nodejs4.3-edge"

	// RuntimeGo1X is a Runtime enum value
	RuntimeGo1X = "go1.x"

	// RuntimeRuby25 is a Runtime enum value
	RuntimeRuby25 = "ruby2.5"

	// RuntimeRuby27 is a Runtime enum value
	RuntimeRuby27 = "ruby2.7"

	// RuntimeProvided is a Runtime enum value
	RuntimeProvided = "provided"

	// RuntimeProvidedAl2 is a Runtime enum value
	RuntimeProvidedAl2 = "provided.al2"

	// RuntimeNodejs18X is a Runtime enum value
	RuntimeNodejs18X = "nodejs18.x"

	// RuntimePython310 is a Runtime enum value
	RuntimePython310 = "python3.10"

	// RuntimeJava17 is a Runtime enum value
	RuntimeJava17 = "java17"

	// RuntimeRuby32 is a Runtime enum value
	RuntimeRuby32 = "ruby3.2"

	// RuntimeRuby33 is a Runtime enum value
	RuntimeRuby33 = "ruby3.3"

	// RuntimePython311 is a Runtime enum value
	RuntimePython311 = "python3.11"

	// RuntimeNodejs20X is a Runtime enum value
	RuntimeNodejs20X = "nodejs20.x"

	// RuntimeProvidedAl2023 is a Runtime enum value
	RuntimeProvidedAl2023 = "provided.al2023"

	// RuntimePython312 is a Runtime enum value
	RuntimePython312 = "python3.12"

	// RuntimeJava21 is a Runtime enum value
	RuntimeJava21 = "java21"
)

// Runtime_Values returns all elements of the Runtime enum
func Runtime_Values() []string {
	return []string{
		RuntimeNodejs,
		RuntimeNodejs43,
		RuntimeNodejs610,
		RuntimeNodejs810,
		RuntimeNodejs10X,
		RuntimeNodejs12X,
		RuntimeNodejs14X,
		RuntimeNodejs16X,
		RuntimeJava8,
		RuntimeJava8Al2,
		RuntimeJava11,
		RuntimePython27,
		RuntimePython36,
		RuntimePython37,
		RuntimePython38,
		RuntimePython39,
		RuntimeDotnetcore10,
		RuntimeDotnetcore20,
		RuntimeDotnetcore21,
		RuntimeDotnetcore31,
		RuntimeDotnet6,
		RuntimeDotnet8,
		RuntimeNodejs43Edge,
		RuntimeGo1X,
		RuntimeRuby25,
		RuntimeRuby27,
		RuntimeProvided,
		RuntimeProvidedAl2,
		RuntimeNodejs18X,
		RuntimePython310,
		RuntimeJava17,
		RuntimeRuby32,
		RuntimeRuby33,
		RuntimePython311,
		RuntimeNodejs20X,
		RuntimeProvidedAl2023,
		RuntimePython312,
		RuntimeJava21,
	}
}

const (
	// SnapStartApplyOnPublishedVersions is a SnapStartApplyOn enum value
	SnapStartApplyOnPublishedVersions = "PublishedVersions"

	// SnapStartApplyOnNone is a SnapStartApplyOn enum value
	SnapStartApplyOnNone = "None"
)

// SnapStartApplyOn_Values returns all elements of the SnapStartApplyOn enum
func SnapStartApplyOn_Values() []string {
	return []string{
		SnapStartApplyOnPublishedVersions,
		SnapStartApplyOnNone,
	}
}

const (
	// SnapStartOptimizationStatusOn is a SnapStartOptimizationStatus enum value
	SnapStartOptimizationStatusOn = "On"

	// SnapStartOptimizationStatusOff is a SnapStartOptimizationStatus enum value
	SnapStartOptimizationStatusOff = "Off"
)

// SnapStartOptimizationStatus_Values returns all elements of the SnapStartOptimizationStatus enum
func SnapStartOptimizationStatus_Values() []string {
	return []string{
		SnapStartOptimizationStatusOn,
		SnapStartOptimizationStatusOff,
	}
}

const (
	// SourceAccessTypeBasicAuth is a SourceAccessType enum value
	SourceAccessTypeBasicAuth = "BASIC_AUTH"

	// SourceAccessTypeVpcSubnet is a SourceAccessType enum value
	SourceAccessTypeVpcSubnet = "VPC_SUBNET"

	// SourceAccessTypeVpcSecurityGroup is a SourceAccessType enum value
	SourceAccessTypeVpcSecurityGroup = "VPC_SECURITY_GROUP"

	// SourceAccessTypeSaslScram512Auth is a SourceAccessType enum value
	SourceAccessTypeSaslScram512Auth = "SASL_SCRAM_512_AUTH"

	// SourceAccessTypeSaslScram256Auth is a SourceAccessType enum value
	SourceAccessTypeSaslScram256Auth = "SASL_SCRAM_256_AUTH"

	// SourceAccessTypeVirtualHost is a SourceAccessType enum value
	SourceAccessTypeVirtualHost = "VIRTUAL_HOST"

	// SourceAccessTypeClientCertificateTlsAuth is a SourceAccessType enum value
	SourceAccessTypeClientCertificateTlsAuth = "CLIENT_CERTIFICATE_TLS_AUTH"

	// SourceAccessTypeServerRootCaCertificate is a SourceAccessType enum value
	SourceAccessTypeServerRootCaCertificate = "SERVER_ROOT_CA_CERTIFICATE"
)

// SourceAccessType_Values returns all elements of the SourceAccessType enum
func SourceAccessType_Values() []string {
	return []string{
		SourceAccessTypeBasicAuth,
		SourceAccessTypeVpcSubnet,
		SourceAccessTypeVpcSecurityGroup,
		SourceAccessTypeSaslScram512Auth,
		SourceAccessTypeSaslScram256Auth,
		SourceAccessTypeVirtualHost,
		SourceAccessTypeClientCertificateTlsAuth,
		SourceAccessTypeServerRootCaCertificate,
	}
}

const (
	// StatePending is a State enum value
	StatePending = "Pending"

	// StateActive is a State enum value
	StateActive = "Active"

	// StateInactive is a State enum value
	StateInactive = "Inactive"

	// StateFailed is a State enum value
	StateFailed = "Failed"
)

// State_Values returns all elements of the State enum
func State_Values() []string {
	return []string{
		StatePending,
		StateActive,
		StateInactive,
		StateFailed,
	}
}

const (
	// StateReasonCodeIdle is a StateReasonCode enum value
	StateReasonCodeIdle = "Idle"

	// StateReasonCodeCreating is a StateReasonCode enum value
	StateReasonCodeCreating = "Creating"

	// StateReasonCodeRestoring is a StateReasonCode enum value
	StateReasonCodeRestoring = "Restoring"

	// StateReasonCodeEniLimitExceeded is a StateReasonCode enum value
	StateReasonCodeEniLimitExceeded = "EniLimitExceeded"

	// StateReasonCodeInsufficientRolePermissions is a StateReasonCode enum value
	StateReasonCodeInsufficientRolePermissions = "InsufficientRolePermissions"

	// StateReasonCodeInvalidConfiguration is a StateReasonCode enum value
	StateReasonCodeInvalidConfiguration = "InvalidConfiguration"

	// StateReasonCodeInternalError is a StateReasonCode enum value
	StateReasonCodeInternalError = "InternalError"

	// StateReasonCodeSubnetOutOfIpaddresses is a StateReasonCode enum value
	StateReasonCodeSubnetOutOfIpaddresses = "SubnetOutOfIPAddresses"

	// StateReasonCodeInvalidSubnet is a StateReasonCode enum value
	StateReasonCodeInvalidSubnet = "InvalidSubnet"

	// StateReasonCodeInvalidSecurityGroup is a StateReasonCode enum value
	StateReasonCodeInvalidSecurityGroup = "InvalidSecurityGroup"

	// StateReasonCodeImageDeleted is a StateReasonCode enum value
	StateReasonCodeImageDeleted = "ImageDeleted"

	// StateReasonCodeImageAccessDenied is a StateReasonCode enum value
	StateReasonCodeImageAccessDenied = "ImageAccessDenied"

	// StateReasonCodeInvalidImage is a StateReasonCode enum value
	StateReasonCodeInvalidImage = "InvalidImage"

	// StateReasonCodeKmskeyAccessDenied is a StateReasonCode enum value
	StateReasonCodeKmskeyAccessDenied = "KMSKeyAccessDenied"

	// StateReasonCodeKmskeyNotFound is a StateReasonCode enum value
	StateReasonCodeKmskeyNotFound = "KMSKeyNotFound"

	// StateReasonCodeInvalidStateKmskey is a StateReasonCode enum value
	StateReasonCodeInvalidStateKmskey = "InvalidStateKMSKey"

	// StateReasonCodeDisabledKmskey is a StateReasonCode enum value
	StateReasonCodeDisabledKmskey = "DisabledKMSKey"

	// StateReasonCodeEfsioerror is a StateReasonCode enum value
	StateReasonCodeEfsioerror = "EFSIOError"

	// StateReasonCodeEfsmountConnectivityError is a StateReasonCode enum value
	StateReasonCodeEfsmountConnectivityError = "EFSMountConnectivityError"

	// StateReasonCodeEfsmountFailure is a StateReasonCode enum value
	StateReasonCodeEfsmountFailure = "EFSMountFailure"

	// StateReasonCodeEfsmountTimeout is a StateReasonCode enum value
	StateReasonCodeEfsmountTimeout = "EFSMountTimeout"

	// StateReasonCodeInvalidRuntime is a StateReasonCode enum value
	StateReasonCodeInvalidRuntime = "InvalidRuntime"

	// StateReasonCodeInvalidZipFileException is a StateReasonCode enum value
	StateReasonCodeInvalidZipFileException = "InvalidZipFileException"

	// StateReasonCodeFunctionError is a StateReasonCode enum value
	StateReasonCodeFunctionError = "FunctionError"
)

// StateReasonCode_Values returns all elements of the StateReasonCode enum
func StateReasonCode_Values() []string {
	return []string{
		StateReasonCodeIdle,
		StateReasonCodeCreating,
		StateReasonCodeRestoring,
		StateReasonCodeEniLimitExceeded,
		StateReasonCodeInsufficientRolePermissions,
		StateReasonCodeInvalidConfiguration,
		StateReasonCodeInternalError,
		StateReasonCodeSubnetOutOfIpaddresses,
		StateReasonCodeInvalidSubnet,
		StateReasonCodeInvalidSecurityGroup,
		StateReasonCodeImageDeleted,
		StateReasonCodeImageAccessDenied,
		StateReasonCodeInvalidImage,
		StateReasonCodeKmskeyAccessDenied,
		StateReasonCodeKmskeyNotFound,
		StateReasonCodeInvalidStateKmskey,
		StateReasonCodeDisabledKmskey,
		StateReasonCodeEfsioerror,
		StateReasonCodeEfsmountConnectivityError,
		StateReasonCodeEfsmountFailure,
		StateReasonCodeEfsmountTimeout,
		StateReasonCodeInvalidRuntime,
		StateReasonCodeInvalidZipFileException,
		StateReasonCodeFunctionError,
	}
}

const (
	// SystemLogLevelDebug is a SystemLogLevel enum value
	SystemLogLevelDebug = "DEBUG"

	// SystemLogLevelInfo is a SystemLogLevel enum value
	SystemLogLevelInfo = "INFO"

	// SystemLogLevelWarn is a SystemLogLevel enum value
	SystemLogLevelWarn = "WARN"
)

// SystemLogLevel_Values returns all elements of the SystemLogLevel enum
func SystemLogLevel_Values() []string {
	return []string{
		SystemLogLevelDebug,
		SystemLogLevelInfo,
		SystemLogLevelWarn,
	}
}

const (
	// ThrottleReasonConcurrentInvocationLimitExceeded is a ThrottleReason enum value
	ThrottleReasonConcurrentInvocationLimitExceeded = "ConcurrentInvocationLimitExceeded"

	// ThrottleReasonFunctionInvocationRateLimitExceeded is a ThrottleReason enum value
	ThrottleReasonFunctionInvocationRateLimitExceeded = "FunctionInvocationRateLimitExceeded"

	// ThrottleReasonReservedFunctionConcurrentInvocationLimitExceeded is a ThrottleReason enum value
	ThrottleReasonReservedFunctionConcurrentInvocationLimitExceeded = "ReservedFunctionConcurrentInvocationLimitExceeded"

	// ThrottleReasonReservedFunctionInvocationRateLimitExceeded is a ThrottleReason enum value
	ThrottleReasonReservedFunctionInvocationRateLimitExceeded = "ReservedFunctionInvocationRateLimitExceeded"

	// ThrottleReasonCallerRateLimitExceeded is a ThrottleReason enum value
	ThrottleReasonCallerRateLimitExceeded = "CallerRateLimitExceeded"

	// ThrottleReasonConcurrentSnapshotCreateLimitExceeded is a ThrottleReason enum value
	ThrottleReasonConcurrentSnapshotCreateLimitExceeded = "ConcurrentSnapshotCreateLimitExceeded"
)

// ThrottleReason_Values returns all elements of the ThrottleReason enum
func ThrottleReason_Values() []string {
	return []string{
		ThrottleReasonConcurrentInvocationLimitExceeded,
		ThrottleReasonFunctionInvocationRateLimitExceeded,
		ThrottleReasonReservedFunctionConcurrentInvocationLimitExceeded,
		ThrottleReasonReservedFunctionInvocationRateLimitExceeded,
		ThrottleReasonCallerRateLimitExceeded,
		ThrottleReasonConcurrentSnapshotCreateLimitExceeded,
	}
}

const (
	// TracingModeActive is a TracingMode enum value
	TracingModeActive = "Active"

	// TracingModePassThrough is a TracingMode enum value
	TracingModePassThrough = "PassThrough"
)

// TracingMode_Values returns all elements of the TracingMode enum
func TracingMode_Values() []string {
	return []string{
		TracingModeActive,
		TracingModePassThrough,
	}
}

const (
	// UpdateRuntimeOnAuto is a UpdateRuntimeOn enum value
	UpdateRuntimeOnAuto = "Auto"

	// UpdateRuntimeOnManual is a UpdateRuntimeOn enum value
	UpdateRuntimeOnManual = "Manual"

	// UpdateRuntimeOnFunctionUpdate is a UpdateRuntimeOn enum value
	UpdateRuntimeOnFunctionUpdate = "FunctionUpdate"
)

// UpdateRuntimeOn_Values returns all elements of the UpdateRuntimeOn enum
func UpdateRuntimeOn_Values() []string {
	return []string{
		UpdateRuntimeOnAuto,
		UpdateRuntimeOnManual,
		UpdateRuntimeOnFunctionUpdate,
	}
}
