404 Not Found


nginx
beegazpacho.com - GrazzMean
Uname: Linux in-mum-web1557.main-hosting.eu 5.14.0-503.35.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Apr 4 05:23:43 EDT 2025 x86_64
Software: LiteSpeed
PHP version: 8.2.30 [ PHP INFO ] PHP os: Linux
Server Ip: 93.127.173.54
Your Ip: 216.73.216.168
User: u848900432 (848900432) | Group: o51372345 (1051372345)
Safe Mode: OFF
Disable Function:
NONE

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

package opensearchserverless

import (
	"fmt"

	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/awsutil"
	"github.com/aws/aws-sdk-go/aws/request"
	"github.com/aws/aws-sdk-go/private/protocol"
	"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
)

const opBatchGetCollection = "BatchGetCollection"

// BatchGetCollectionRequest generates a "aws/request.Request" representing the
// client's request for the BatchGetCollection 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 BatchGetCollection for more information on using the BatchGetCollection
// 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 BatchGetCollectionRequest method.
//	req, resp := client.BatchGetCollectionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/BatchGetCollection
func (c *OpenSearchServerless) BatchGetCollectionRequest(input *BatchGetCollectionInput) (req *request.Request, output *BatchGetCollectionOutput) {
	op := &request.Operation{
		Name:       opBatchGetCollection,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &BatchGetCollectionInput{}
	}

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

// BatchGetCollection API operation for OpenSearch Service Serverless.
//
// Returns attributes for one or more collections, including the collection
// endpoint and the OpenSearch Dashboards endpoint. For more information, see
// Creating and managing Amazon OpenSearch Serverless collections (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-manage.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 OpenSearch Service Serverless's
// API operation BatchGetCollection for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/BatchGetCollection
func (c *OpenSearchServerless) BatchGetCollection(input *BatchGetCollectionInput) (*BatchGetCollectionOutput, error) {
	req, out := c.BatchGetCollectionRequest(input)
	return out, req.Send()
}

// BatchGetCollectionWithContext is the same as BatchGetCollection with the addition of
// the ability to pass a context and additional request options.
//
// See BatchGetCollection 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 *OpenSearchServerless) BatchGetCollectionWithContext(ctx aws.Context, input *BatchGetCollectionInput, opts ...request.Option) (*BatchGetCollectionOutput, error) {
	req, out := c.BatchGetCollectionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opBatchGetEffectiveLifecyclePolicy = "BatchGetEffectiveLifecyclePolicy"

// BatchGetEffectiveLifecyclePolicyRequest generates a "aws/request.Request" representing the
// client's request for the BatchGetEffectiveLifecyclePolicy 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 BatchGetEffectiveLifecyclePolicy for more information on using the BatchGetEffectiveLifecyclePolicy
// 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 BatchGetEffectiveLifecyclePolicyRequest method.
//	req, resp := client.BatchGetEffectiveLifecyclePolicyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/BatchGetEffectiveLifecyclePolicy
func (c *OpenSearchServerless) BatchGetEffectiveLifecyclePolicyRequest(input *BatchGetEffectiveLifecyclePolicyInput) (req *request.Request, output *BatchGetEffectiveLifecyclePolicyOutput) {
	op := &request.Operation{
		Name:       opBatchGetEffectiveLifecyclePolicy,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &BatchGetEffectiveLifecyclePolicyInput{}
	}

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

// BatchGetEffectiveLifecyclePolicy API operation for OpenSearch Service Serverless.
//
// Returns a list of successful and failed retrievals for the OpenSearch Serverless
// indexes. For more information, see Viewing data lifecycle policies (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-lifecycle.html#serverless-lifecycle-list).
//
// 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 OpenSearch Service Serverless's
// API operation BatchGetEffectiveLifecyclePolicy for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/BatchGetEffectiveLifecyclePolicy
func (c *OpenSearchServerless) BatchGetEffectiveLifecyclePolicy(input *BatchGetEffectiveLifecyclePolicyInput) (*BatchGetEffectiveLifecyclePolicyOutput, error) {
	req, out := c.BatchGetEffectiveLifecyclePolicyRequest(input)
	return out, req.Send()
}

// BatchGetEffectiveLifecyclePolicyWithContext is the same as BatchGetEffectiveLifecyclePolicy with the addition of
// the ability to pass a context and additional request options.
//
// See BatchGetEffectiveLifecyclePolicy 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 *OpenSearchServerless) BatchGetEffectiveLifecyclePolicyWithContext(ctx aws.Context, input *BatchGetEffectiveLifecyclePolicyInput, opts ...request.Option) (*BatchGetEffectiveLifecyclePolicyOutput, error) {
	req, out := c.BatchGetEffectiveLifecyclePolicyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opBatchGetLifecyclePolicy = "BatchGetLifecyclePolicy"

// BatchGetLifecyclePolicyRequest generates a "aws/request.Request" representing the
// client's request for the BatchGetLifecyclePolicy 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 BatchGetLifecyclePolicy for more information on using the BatchGetLifecyclePolicy
// 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 BatchGetLifecyclePolicyRequest method.
//	req, resp := client.BatchGetLifecyclePolicyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/BatchGetLifecyclePolicy
func (c *OpenSearchServerless) BatchGetLifecyclePolicyRequest(input *BatchGetLifecyclePolicyInput) (req *request.Request, output *BatchGetLifecyclePolicyOutput) {
	op := &request.Operation{
		Name:       opBatchGetLifecyclePolicy,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &BatchGetLifecyclePolicyInput{}
	}

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

// BatchGetLifecyclePolicy API operation for OpenSearch Service Serverless.
//
// Returns one or more configured OpenSearch Serverless lifecycle policies.
// For more information, see Viewing data lifecycle policies (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-lifecycle.html#serverless-lifecycle-list).
//
// 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 OpenSearch Service Serverless's
// API operation BatchGetLifecyclePolicy for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/BatchGetLifecyclePolicy
func (c *OpenSearchServerless) BatchGetLifecyclePolicy(input *BatchGetLifecyclePolicyInput) (*BatchGetLifecyclePolicyOutput, error) {
	req, out := c.BatchGetLifecyclePolicyRequest(input)
	return out, req.Send()
}

// BatchGetLifecyclePolicyWithContext is the same as BatchGetLifecyclePolicy with the addition of
// the ability to pass a context and additional request options.
//
// See BatchGetLifecyclePolicy 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 *OpenSearchServerless) BatchGetLifecyclePolicyWithContext(ctx aws.Context, input *BatchGetLifecyclePolicyInput, opts ...request.Option) (*BatchGetLifecyclePolicyOutput, error) {
	req, out := c.BatchGetLifecyclePolicyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opBatchGetVpcEndpoint = "BatchGetVpcEndpoint"

// BatchGetVpcEndpointRequest generates a "aws/request.Request" representing the
// client's request for the BatchGetVpcEndpoint 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 BatchGetVpcEndpoint for more information on using the BatchGetVpcEndpoint
// 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 BatchGetVpcEndpointRequest method.
//	req, resp := client.BatchGetVpcEndpointRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/BatchGetVpcEndpoint
func (c *OpenSearchServerless) BatchGetVpcEndpointRequest(input *BatchGetVpcEndpointInput) (req *request.Request, output *BatchGetVpcEndpointOutput) {
	op := &request.Operation{
		Name:       opBatchGetVpcEndpoint,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &BatchGetVpcEndpointInput{}
	}

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

// BatchGetVpcEndpoint API operation for OpenSearch Service Serverless.
//
// Returns attributes for one or more VPC endpoints associated with the current
// account. For more information, see Access Amazon OpenSearch Serverless using
// an interface endpoint (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vpc.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 OpenSearch Service Serverless's
// API operation BatchGetVpcEndpoint for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/BatchGetVpcEndpoint
func (c *OpenSearchServerless) BatchGetVpcEndpoint(input *BatchGetVpcEndpointInput) (*BatchGetVpcEndpointOutput, error) {
	req, out := c.BatchGetVpcEndpointRequest(input)
	return out, req.Send()
}

// BatchGetVpcEndpointWithContext is the same as BatchGetVpcEndpoint with the addition of
// the ability to pass a context and additional request options.
//
// See BatchGetVpcEndpoint 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 *OpenSearchServerless) BatchGetVpcEndpointWithContext(ctx aws.Context, input *BatchGetVpcEndpointInput, opts ...request.Option) (*BatchGetVpcEndpointOutput, error) {
	req, out := c.BatchGetVpcEndpointRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateAccessPolicy = "CreateAccessPolicy"

// CreateAccessPolicyRequest generates a "aws/request.Request" representing the
// client's request for the CreateAccessPolicy 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 CreateAccessPolicy for more information on using the CreateAccessPolicy
// 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 CreateAccessPolicyRequest method.
//	req, resp := client.CreateAccessPolicyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/CreateAccessPolicy
func (c *OpenSearchServerless) CreateAccessPolicyRequest(input *CreateAccessPolicyInput) (req *request.Request, output *CreateAccessPolicyOutput) {
	op := &request.Operation{
		Name:       opCreateAccessPolicy,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateAccessPolicyInput{}
	}

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

// CreateAccessPolicy API operation for OpenSearch Service Serverless.
//
// Creates a data access policy for OpenSearch Serverless. Access policies limit
// access to collections and the resources within them, and allow a user to
// access that data irrespective of the access mechanism or network source.
// For more information, see Data access control for Amazon OpenSearch Serverless
// (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-data-access.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 OpenSearch Service Serverless's
// API operation CreateAccessPolicy for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ConflictException
//     When creating a resource, thrown when a resource with the same name already
//     exists or is being created. When deleting a resource, thrown when the resource
//     is not in the ACTIVE or FAILED state.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
//   - ServiceQuotaExceededException
//     Thrown when you attempt to create more resources than the service allows
//     based on service quotas.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/CreateAccessPolicy
func (c *OpenSearchServerless) CreateAccessPolicy(input *CreateAccessPolicyInput) (*CreateAccessPolicyOutput, error) {
	req, out := c.CreateAccessPolicyRequest(input)
	return out, req.Send()
}

// CreateAccessPolicyWithContext is the same as CreateAccessPolicy with the addition of
// the ability to pass a context and additional request options.
//
// See CreateAccessPolicy 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 *OpenSearchServerless) CreateAccessPolicyWithContext(ctx aws.Context, input *CreateAccessPolicyInput, opts ...request.Option) (*CreateAccessPolicyOutput, error) {
	req, out := c.CreateAccessPolicyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateCollection = "CreateCollection"

// CreateCollectionRequest generates a "aws/request.Request" representing the
// client's request for the CreateCollection 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 CreateCollection for more information on using the CreateCollection
// 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 CreateCollectionRequest method.
//	req, resp := client.CreateCollectionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/CreateCollection
func (c *OpenSearchServerless) CreateCollectionRequest(input *CreateCollectionInput) (req *request.Request, output *CreateCollectionOutput) {
	op := &request.Operation{
		Name:       opCreateCollection,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateCollectionInput{}
	}

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

// CreateCollection API operation for OpenSearch Service Serverless.
//
// Creates a new OpenSearch Serverless collection. For more information, see
// Creating and managing Amazon OpenSearch Serverless collections (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-manage.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 OpenSearch Service Serverless's
// API operation CreateCollection for usage and error information.
//
// Returned Error Types:
//
//   - OcuLimitExceededException
//     Thrown when the collection you're attempting to create results in a number
//     of search or indexing OCUs that exceeds the account limit.
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ConflictException
//     When creating a resource, thrown when a resource with the same name already
//     exists or is being created. When deleting a resource, thrown when the resource
//     is not in the ACTIVE or FAILED state.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
//   - ServiceQuotaExceededException
//     Thrown when you attempt to create more resources than the service allows
//     based on service quotas.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/CreateCollection
func (c *OpenSearchServerless) CreateCollection(input *CreateCollectionInput) (*CreateCollectionOutput, error) {
	req, out := c.CreateCollectionRequest(input)
	return out, req.Send()
}

// CreateCollectionWithContext is the same as CreateCollection with the addition of
// the ability to pass a context and additional request options.
//
// See CreateCollection 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 *OpenSearchServerless) CreateCollectionWithContext(ctx aws.Context, input *CreateCollectionInput, opts ...request.Option) (*CreateCollectionOutput, error) {
	req, out := c.CreateCollectionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateLifecyclePolicy = "CreateLifecyclePolicy"

// CreateLifecyclePolicyRequest generates a "aws/request.Request" representing the
// client's request for the CreateLifecyclePolicy 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 CreateLifecyclePolicy for more information on using the CreateLifecyclePolicy
// 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 CreateLifecyclePolicyRequest method.
//	req, resp := client.CreateLifecyclePolicyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/CreateLifecyclePolicy
func (c *OpenSearchServerless) CreateLifecyclePolicyRequest(input *CreateLifecyclePolicyInput) (req *request.Request, output *CreateLifecyclePolicyOutput) {
	op := &request.Operation{
		Name:       opCreateLifecyclePolicy,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateLifecyclePolicyInput{}
	}

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

// CreateLifecyclePolicy API operation for OpenSearch Service Serverless.
//
// Creates a lifecyle policy to be applied to OpenSearch Serverless indexes.
// Lifecycle policies define the number of days or hours to retain the data
// on an OpenSearch Serverless index. For more information, see Creating data
// lifecycle policies (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-lifecycle.html#serverless-lifecycle-create).
//
// 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 OpenSearch Service Serverless's
// API operation CreateLifecyclePolicy for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ConflictException
//     When creating a resource, thrown when a resource with the same name already
//     exists or is being created. When deleting a resource, thrown when the resource
//     is not in the ACTIVE or FAILED state.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
//   - ServiceQuotaExceededException
//     Thrown when you attempt to create more resources than the service allows
//     based on service quotas.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/CreateLifecyclePolicy
func (c *OpenSearchServerless) CreateLifecyclePolicy(input *CreateLifecyclePolicyInput) (*CreateLifecyclePolicyOutput, error) {
	req, out := c.CreateLifecyclePolicyRequest(input)
	return out, req.Send()
}

// CreateLifecyclePolicyWithContext is the same as CreateLifecyclePolicy with the addition of
// the ability to pass a context and additional request options.
//
// See CreateLifecyclePolicy 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 *OpenSearchServerless) CreateLifecyclePolicyWithContext(ctx aws.Context, input *CreateLifecyclePolicyInput, opts ...request.Option) (*CreateLifecyclePolicyOutput, error) {
	req, out := c.CreateLifecyclePolicyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateSecurityConfig = "CreateSecurityConfig"

// CreateSecurityConfigRequest generates a "aws/request.Request" representing the
// client's request for the CreateSecurityConfig 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 CreateSecurityConfig for more information on using the CreateSecurityConfig
// 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 CreateSecurityConfigRequest method.
//	req, resp := client.CreateSecurityConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/CreateSecurityConfig
func (c *OpenSearchServerless) CreateSecurityConfigRequest(input *CreateSecurityConfigInput) (req *request.Request, output *CreateSecurityConfigOutput) {
	op := &request.Operation{
		Name:       opCreateSecurityConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateSecurityConfigInput{}
	}

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

// CreateSecurityConfig API operation for OpenSearch Service Serverless.
//
// Specifies a security configuration for OpenSearch Serverless. For more information,
// see SAML authentication for Amazon OpenSearch Serverless (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-saml.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 OpenSearch Service Serverless's
// API operation CreateSecurityConfig for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ConflictException
//     When creating a resource, thrown when a resource with the same name already
//     exists or is being created. When deleting a resource, thrown when the resource
//     is not in the ACTIVE or FAILED state.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
//   - ServiceQuotaExceededException
//     Thrown when you attempt to create more resources than the service allows
//     based on service quotas.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/CreateSecurityConfig
func (c *OpenSearchServerless) CreateSecurityConfig(input *CreateSecurityConfigInput) (*CreateSecurityConfigOutput, error) {
	req, out := c.CreateSecurityConfigRequest(input)
	return out, req.Send()
}

// CreateSecurityConfigWithContext is the same as CreateSecurityConfig with the addition of
// the ability to pass a context and additional request options.
//
// See CreateSecurityConfig 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 *OpenSearchServerless) CreateSecurityConfigWithContext(ctx aws.Context, input *CreateSecurityConfigInput, opts ...request.Option) (*CreateSecurityConfigOutput, error) {
	req, out := c.CreateSecurityConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateSecurityPolicy = "CreateSecurityPolicy"

// CreateSecurityPolicyRequest generates a "aws/request.Request" representing the
// client's request for the CreateSecurityPolicy 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 CreateSecurityPolicy for more information on using the CreateSecurityPolicy
// 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 CreateSecurityPolicyRequest method.
//	req, resp := client.CreateSecurityPolicyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/CreateSecurityPolicy
func (c *OpenSearchServerless) CreateSecurityPolicyRequest(input *CreateSecurityPolicyInput) (req *request.Request, output *CreateSecurityPolicyOutput) {
	op := &request.Operation{
		Name:       opCreateSecurityPolicy,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateSecurityPolicyInput{}
	}

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

// CreateSecurityPolicy API operation for OpenSearch Service Serverless.
//
// Creates a security policy to be used by one or more OpenSearch Serverless
// collections. Security policies provide access to a collection and its OpenSearch
// Dashboards endpoint from public networks or specific VPC endpoints. They
// also allow you to secure a collection with a KMS encryption key. For more
// information, see Network access for Amazon OpenSearch Serverless (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-network.html)
// and Encryption at rest for Amazon OpenSearch Serverless (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-encryption.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 OpenSearch Service Serverless's
// API operation CreateSecurityPolicy for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ConflictException
//     When creating a resource, thrown when a resource with the same name already
//     exists or is being created. When deleting a resource, thrown when the resource
//     is not in the ACTIVE or FAILED state.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
//   - ServiceQuotaExceededException
//     Thrown when you attempt to create more resources than the service allows
//     based on service quotas.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/CreateSecurityPolicy
func (c *OpenSearchServerless) CreateSecurityPolicy(input *CreateSecurityPolicyInput) (*CreateSecurityPolicyOutput, error) {
	req, out := c.CreateSecurityPolicyRequest(input)
	return out, req.Send()
}

// CreateSecurityPolicyWithContext is the same as CreateSecurityPolicy with the addition of
// the ability to pass a context and additional request options.
//
// See CreateSecurityPolicy 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 *OpenSearchServerless) CreateSecurityPolicyWithContext(ctx aws.Context, input *CreateSecurityPolicyInput, opts ...request.Option) (*CreateSecurityPolicyOutput, error) {
	req, out := c.CreateSecurityPolicyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opCreateVpcEndpoint = "CreateVpcEndpoint"

// CreateVpcEndpointRequest generates a "aws/request.Request" representing the
// client's request for the CreateVpcEndpoint 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 CreateVpcEndpoint for more information on using the CreateVpcEndpoint
// 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 CreateVpcEndpointRequest method.
//	req, resp := client.CreateVpcEndpointRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/CreateVpcEndpoint
func (c *OpenSearchServerless) CreateVpcEndpointRequest(input *CreateVpcEndpointInput) (req *request.Request, output *CreateVpcEndpointOutput) {
	op := &request.Operation{
		Name:       opCreateVpcEndpoint,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &CreateVpcEndpointInput{}
	}

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

// CreateVpcEndpoint API operation for OpenSearch Service Serverless.
//
// Creates an OpenSearch Serverless-managed interface VPC endpoint. For more
// information, see Access Amazon OpenSearch Serverless using an interface endpoint
// (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vpc.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 OpenSearch Service Serverless's
// API operation CreateVpcEndpoint for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ConflictException
//     When creating a resource, thrown when a resource with the same name already
//     exists or is being created. When deleting a resource, thrown when the resource
//     is not in the ACTIVE or FAILED state.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
//   - ServiceQuotaExceededException
//     Thrown when you attempt to create more resources than the service allows
//     based on service quotas.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/CreateVpcEndpoint
func (c *OpenSearchServerless) CreateVpcEndpoint(input *CreateVpcEndpointInput) (*CreateVpcEndpointOutput, error) {
	req, out := c.CreateVpcEndpointRequest(input)
	return out, req.Send()
}

// CreateVpcEndpointWithContext is the same as CreateVpcEndpoint with the addition of
// the ability to pass a context and additional request options.
//
// See CreateVpcEndpoint 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 *OpenSearchServerless) CreateVpcEndpointWithContext(ctx aws.Context, input *CreateVpcEndpointInput, opts ...request.Option) (*CreateVpcEndpointOutput, error) {
	req, out := c.CreateVpcEndpointRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteAccessPolicy = "DeleteAccessPolicy"

// DeleteAccessPolicyRequest generates a "aws/request.Request" representing the
// client's request for the DeleteAccessPolicy 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 DeleteAccessPolicy for more information on using the DeleteAccessPolicy
// 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 DeleteAccessPolicyRequest method.
//	req, resp := client.DeleteAccessPolicyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/DeleteAccessPolicy
func (c *OpenSearchServerless) DeleteAccessPolicyRequest(input *DeleteAccessPolicyInput) (req *request.Request, output *DeleteAccessPolicyOutput) {
	op := &request.Operation{
		Name:       opDeleteAccessPolicy,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteAccessPolicyInput{}
	}

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

// DeleteAccessPolicy API operation for OpenSearch Service Serverless.
//
// Deletes an OpenSearch Serverless access policy. For more information, see
// Data access control for Amazon OpenSearch Serverless (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-data-access.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 OpenSearch Service Serverless's
// API operation DeleteAccessPolicy for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ResourceNotFoundException
//     Thrown when accessing or deleting a resource that does not exist.
//
//   - ConflictException
//     When creating a resource, thrown when a resource with the same name already
//     exists or is being created. When deleting a resource, thrown when the resource
//     is not in the ACTIVE or FAILED state.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/DeleteAccessPolicy
func (c *OpenSearchServerless) DeleteAccessPolicy(input *DeleteAccessPolicyInput) (*DeleteAccessPolicyOutput, error) {
	req, out := c.DeleteAccessPolicyRequest(input)
	return out, req.Send()
}

// DeleteAccessPolicyWithContext is the same as DeleteAccessPolicy with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteAccessPolicy 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 *OpenSearchServerless) DeleteAccessPolicyWithContext(ctx aws.Context, input *DeleteAccessPolicyInput, opts ...request.Option) (*DeleteAccessPolicyOutput, error) {
	req, out := c.DeleteAccessPolicyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteCollection = "DeleteCollection"

// DeleteCollectionRequest generates a "aws/request.Request" representing the
// client's request for the DeleteCollection 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 DeleteCollection for more information on using the DeleteCollection
// 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 DeleteCollectionRequest method.
//	req, resp := client.DeleteCollectionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/DeleteCollection
func (c *OpenSearchServerless) DeleteCollectionRequest(input *DeleteCollectionInput) (req *request.Request, output *DeleteCollectionOutput) {
	op := &request.Operation{
		Name:       opDeleteCollection,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteCollectionInput{}
	}

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

// DeleteCollection API operation for OpenSearch Service Serverless.
//
// Deletes an OpenSearch Serverless collection. For more information, see Creating
// and managing Amazon OpenSearch Serverless collections (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-manage.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 OpenSearch Service Serverless's
// API operation DeleteCollection for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ResourceNotFoundException
//     Thrown when accessing or deleting a resource that does not exist.
//
//   - ConflictException
//     When creating a resource, thrown when a resource with the same name already
//     exists or is being created. When deleting a resource, thrown when the resource
//     is not in the ACTIVE or FAILED state.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/DeleteCollection
func (c *OpenSearchServerless) DeleteCollection(input *DeleteCollectionInput) (*DeleteCollectionOutput, error) {
	req, out := c.DeleteCollectionRequest(input)
	return out, req.Send()
}

// DeleteCollectionWithContext is the same as DeleteCollection with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteCollection 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 *OpenSearchServerless) DeleteCollectionWithContext(ctx aws.Context, input *DeleteCollectionInput, opts ...request.Option) (*DeleteCollectionOutput, error) {
	req, out := c.DeleteCollectionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteLifecyclePolicy = "DeleteLifecyclePolicy"

// DeleteLifecyclePolicyRequest generates a "aws/request.Request" representing the
// client's request for the DeleteLifecyclePolicy 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 DeleteLifecyclePolicy for more information on using the DeleteLifecyclePolicy
// 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 DeleteLifecyclePolicyRequest method.
//	req, resp := client.DeleteLifecyclePolicyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/DeleteLifecyclePolicy
func (c *OpenSearchServerless) DeleteLifecyclePolicyRequest(input *DeleteLifecyclePolicyInput) (req *request.Request, output *DeleteLifecyclePolicyOutput) {
	op := &request.Operation{
		Name:       opDeleteLifecyclePolicy,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteLifecyclePolicyInput{}
	}

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

// DeleteLifecyclePolicy API operation for OpenSearch Service Serverless.
//
// Deletes an OpenSearch Serverless lifecycle policy. For more information,
// see Deleting data lifecycle policies (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-lifecycle.html#serverless-lifecycle-delete).
//
// 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 OpenSearch Service Serverless's
// API operation DeleteLifecyclePolicy for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ResourceNotFoundException
//     Thrown when accessing or deleting a resource that does not exist.
//
//   - ConflictException
//     When creating a resource, thrown when a resource with the same name already
//     exists or is being created. When deleting a resource, thrown when the resource
//     is not in the ACTIVE or FAILED state.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/DeleteLifecyclePolicy
func (c *OpenSearchServerless) DeleteLifecyclePolicy(input *DeleteLifecyclePolicyInput) (*DeleteLifecyclePolicyOutput, error) {
	req, out := c.DeleteLifecyclePolicyRequest(input)
	return out, req.Send()
}

// DeleteLifecyclePolicyWithContext is the same as DeleteLifecyclePolicy with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteLifecyclePolicy 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 *OpenSearchServerless) DeleteLifecyclePolicyWithContext(ctx aws.Context, input *DeleteLifecyclePolicyInput, opts ...request.Option) (*DeleteLifecyclePolicyOutput, error) {
	req, out := c.DeleteLifecyclePolicyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteSecurityConfig = "DeleteSecurityConfig"

// DeleteSecurityConfigRequest generates a "aws/request.Request" representing the
// client's request for the DeleteSecurityConfig 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 DeleteSecurityConfig for more information on using the DeleteSecurityConfig
// 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 DeleteSecurityConfigRequest method.
//	req, resp := client.DeleteSecurityConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/DeleteSecurityConfig
func (c *OpenSearchServerless) DeleteSecurityConfigRequest(input *DeleteSecurityConfigInput) (req *request.Request, output *DeleteSecurityConfigOutput) {
	op := &request.Operation{
		Name:       opDeleteSecurityConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteSecurityConfigInput{}
	}

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

// DeleteSecurityConfig API operation for OpenSearch Service Serverless.
//
// Deletes a security configuration for OpenSearch Serverless. For more information,
// see SAML authentication for Amazon OpenSearch Serverless (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-saml.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 OpenSearch Service Serverless's
// API operation DeleteSecurityConfig for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ResourceNotFoundException
//     Thrown when accessing or deleting a resource that does not exist.
//
//   - ConflictException
//     When creating a resource, thrown when a resource with the same name already
//     exists or is being created. When deleting a resource, thrown when the resource
//     is not in the ACTIVE or FAILED state.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/DeleteSecurityConfig
func (c *OpenSearchServerless) DeleteSecurityConfig(input *DeleteSecurityConfigInput) (*DeleteSecurityConfigOutput, error) {
	req, out := c.DeleteSecurityConfigRequest(input)
	return out, req.Send()
}

// DeleteSecurityConfigWithContext is the same as DeleteSecurityConfig with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteSecurityConfig 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 *OpenSearchServerless) DeleteSecurityConfigWithContext(ctx aws.Context, input *DeleteSecurityConfigInput, opts ...request.Option) (*DeleteSecurityConfigOutput, error) {
	req, out := c.DeleteSecurityConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteSecurityPolicy = "DeleteSecurityPolicy"

// DeleteSecurityPolicyRequest generates a "aws/request.Request" representing the
// client's request for the DeleteSecurityPolicy 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 DeleteSecurityPolicy for more information on using the DeleteSecurityPolicy
// 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 DeleteSecurityPolicyRequest method.
//	req, resp := client.DeleteSecurityPolicyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/DeleteSecurityPolicy
func (c *OpenSearchServerless) DeleteSecurityPolicyRequest(input *DeleteSecurityPolicyInput) (req *request.Request, output *DeleteSecurityPolicyOutput) {
	op := &request.Operation{
		Name:       opDeleteSecurityPolicy,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteSecurityPolicyInput{}
	}

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

// DeleteSecurityPolicy API operation for OpenSearch Service Serverless.
//
// Deletes an OpenSearch Serverless security policy.
//
// 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 OpenSearch Service Serverless's
// API operation DeleteSecurityPolicy for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ResourceNotFoundException
//     Thrown when accessing or deleting a resource that does not exist.
//
//   - ConflictException
//     When creating a resource, thrown when a resource with the same name already
//     exists or is being created. When deleting a resource, thrown when the resource
//     is not in the ACTIVE or FAILED state.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/DeleteSecurityPolicy
func (c *OpenSearchServerless) DeleteSecurityPolicy(input *DeleteSecurityPolicyInput) (*DeleteSecurityPolicyOutput, error) {
	req, out := c.DeleteSecurityPolicyRequest(input)
	return out, req.Send()
}

// DeleteSecurityPolicyWithContext is the same as DeleteSecurityPolicy with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteSecurityPolicy 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 *OpenSearchServerless) DeleteSecurityPolicyWithContext(ctx aws.Context, input *DeleteSecurityPolicyInput, opts ...request.Option) (*DeleteSecurityPolicyOutput, error) {
	req, out := c.DeleteSecurityPolicyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opDeleteVpcEndpoint = "DeleteVpcEndpoint"

// DeleteVpcEndpointRequest generates a "aws/request.Request" representing the
// client's request for the DeleteVpcEndpoint 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 DeleteVpcEndpoint for more information on using the DeleteVpcEndpoint
// 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 DeleteVpcEndpointRequest method.
//	req, resp := client.DeleteVpcEndpointRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/DeleteVpcEndpoint
func (c *OpenSearchServerless) DeleteVpcEndpointRequest(input *DeleteVpcEndpointInput) (req *request.Request, output *DeleteVpcEndpointOutput) {
	op := &request.Operation{
		Name:       opDeleteVpcEndpoint,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &DeleteVpcEndpointInput{}
	}

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

// DeleteVpcEndpoint API operation for OpenSearch Service Serverless.
//
// Deletes an OpenSearch Serverless-managed interface endpoint. For more information,
// see Access Amazon OpenSearch Serverless using an interface endpoint (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vpc.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 OpenSearch Service Serverless's
// API operation DeleteVpcEndpoint for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ResourceNotFoundException
//     Thrown when accessing or deleting a resource that does not exist.
//
//   - ConflictException
//     When creating a resource, thrown when a resource with the same name already
//     exists or is being created. When deleting a resource, thrown when the resource
//     is not in the ACTIVE or FAILED state.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/DeleteVpcEndpoint
func (c *OpenSearchServerless) DeleteVpcEndpoint(input *DeleteVpcEndpointInput) (*DeleteVpcEndpointOutput, error) {
	req, out := c.DeleteVpcEndpointRequest(input)
	return out, req.Send()
}

// DeleteVpcEndpointWithContext is the same as DeleteVpcEndpoint with the addition of
// the ability to pass a context and additional request options.
//
// See DeleteVpcEndpoint 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 *OpenSearchServerless) DeleteVpcEndpointWithContext(ctx aws.Context, input *DeleteVpcEndpointInput, opts ...request.Option) (*DeleteVpcEndpointOutput, error) {
	req, out := c.DeleteVpcEndpointRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetAccessPolicy = "GetAccessPolicy"

// GetAccessPolicyRequest generates a "aws/request.Request" representing the
// client's request for the GetAccessPolicy 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 GetAccessPolicy for more information on using the GetAccessPolicy
// 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 GetAccessPolicyRequest method.
//	req, resp := client.GetAccessPolicyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/GetAccessPolicy
func (c *OpenSearchServerless) GetAccessPolicyRequest(input *GetAccessPolicyInput) (req *request.Request, output *GetAccessPolicyOutput) {
	op := &request.Operation{
		Name:       opGetAccessPolicy,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &GetAccessPolicyInput{}
	}

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

// GetAccessPolicy API operation for OpenSearch Service Serverless.
//
// Returns an OpenSearch Serverless access policy. For more information, see
// Data access control for Amazon OpenSearch Serverless (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-data-access.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 OpenSearch Service Serverless's
// API operation GetAccessPolicy for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ResourceNotFoundException
//     Thrown when accessing or deleting a resource that does not exist.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/GetAccessPolicy
func (c *OpenSearchServerless) GetAccessPolicy(input *GetAccessPolicyInput) (*GetAccessPolicyOutput, error) {
	req, out := c.GetAccessPolicyRequest(input)
	return out, req.Send()
}

// GetAccessPolicyWithContext is the same as GetAccessPolicy with the addition of
// the ability to pass a context and additional request options.
//
// See GetAccessPolicy 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 *OpenSearchServerless) GetAccessPolicyWithContext(ctx aws.Context, input *GetAccessPolicyInput, opts ...request.Option) (*GetAccessPolicyOutput, error) {
	req, out := c.GetAccessPolicyRequest(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/opensearchserverless-2021-11-01/GetAccountSettings
func (c *OpenSearchServerless) GetAccountSettingsRequest(input *GetAccountSettingsInput) (req *request.Request, output *GetAccountSettingsOutput) {
	op := &request.Operation{
		Name:       opGetAccountSettings,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

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

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

// GetAccountSettings API operation for OpenSearch Service Serverless.
//
// Returns account-level settings related to OpenSearch Serverless.
//
// 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 OpenSearch Service Serverless's
// API operation GetAccountSettings for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/GetAccountSettings
func (c *OpenSearchServerless) 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 *OpenSearchServerless) 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 opGetPoliciesStats = "GetPoliciesStats"

// GetPoliciesStatsRequest generates a "aws/request.Request" representing the
// client's request for the GetPoliciesStats 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 GetPoliciesStats for more information on using the GetPoliciesStats
// 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 GetPoliciesStatsRequest method.
//	req, resp := client.GetPoliciesStatsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/GetPoliciesStats
func (c *OpenSearchServerless) GetPoliciesStatsRequest(input *GetPoliciesStatsInput) (req *request.Request, output *GetPoliciesStatsOutput) {
	op := &request.Operation{
		Name:       opGetPoliciesStats,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &GetPoliciesStatsInput{}
	}

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

// GetPoliciesStats API operation for OpenSearch Service Serverless.
//
// Returns statistical information about your OpenSearch Serverless access policies,
// security configurations, and security policies.
//
// 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 OpenSearch Service Serverless's
// API operation GetPoliciesStats for usage and error information.
//
// Returned Error Types:
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/GetPoliciesStats
func (c *OpenSearchServerless) GetPoliciesStats(input *GetPoliciesStatsInput) (*GetPoliciesStatsOutput, error) {
	req, out := c.GetPoliciesStatsRequest(input)
	return out, req.Send()
}

// GetPoliciesStatsWithContext is the same as GetPoliciesStats with the addition of
// the ability to pass a context and additional request options.
//
// See GetPoliciesStats 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 *OpenSearchServerless) GetPoliciesStatsWithContext(ctx aws.Context, input *GetPoliciesStatsInput, opts ...request.Option) (*GetPoliciesStatsOutput, error) {
	req, out := c.GetPoliciesStatsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetSecurityConfig = "GetSecurityConfig"

// GetSecurityConfigRequest generates a "aws/request.Request" representing the
// client's request for the GetSecurityConfig 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 GetSecurityConfig for more information on using the GetSecurityConfig
// 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 GetSecurityConfigRequest method.
//	req, resp := client.GetSecurityConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/GetSecurityConfig
func (c *OpenSearchServerless) GetSecurityConfigRequest(input *GetSecurityConfigInput) (req *request.Request, output *GetSecurityConfigOutput) {
	op := &request.Operation{
		Name:       opGetSecurityConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &GetSecurityConfigInput{}
	}

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

// GetSecurityConfig API operation for OpenSearch Service Serverless.
//
// Returns information about an OpenSearch Serverless security configuration.
// For more information, see SAML authentication for Amazon OpenSearch Serverless
// (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-saml.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 OpenSearch Service Serverless's
// API operation GetSecurityConfig for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ResourceNotFoundException
//     Thrown when accessing or deleting a resource that does not exist.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/GetSecurityConfig
func (c *OpenSearchServerless) GetSecurityConfig(input *GetSecurityConfigInput) (*GetSecurityConfigOutput, error) {
	req, out := c.GetSecurityConfigRequest(input)
	return out, req.Send()
}

// GetSecurityConfigWithContext is the same as GetSecurityConfig with the addition of
// the ability to pass a context and additional request options.
//
// See GetSecurityConfig 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 *OpenSearchServerless) GetSecurityConfigWithContext(ctx aws.Context, input *GetSecurityConfigInput, opts ...request.Option) (*GetSecurityConfigOutput, error) {
	req, out := c.GetSecurityConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opGetSecurityPolicy = "GetSecurityPolicy"

// GetSecurityPolicyRequest generates a "aws/request.Request" representing the
// client's request for the GetSecurityPolicy 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 GetSecurityPolicy for more information on using the GetSecurityPolicy
// 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 GetSecurityPolicyRequest method.
//	req, resp := client.GetSecurityPolicyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/GetSecurityPolicy
func (c *OpenSearchServerless) GetSecurityPolicyRequest(input *GetSecurityPolicyInput) (req *request.Request, output *GetSecurityPolicyOutput) {
	op := &request.Operation{
		Name:       opGetSecurityPolicy,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &GetSecurityPolicyInput{}
	}

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

// GetSecurityPolicy API operation for OpenSearch Service Serverless.
//
// Returns information about a configured OpenSearch Serverless security policy.
// For more information, see Network access for Amazon OpenSearch Serverless
// (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-network.html)
// and Encryption at rest for Amazon OpenSearch Serverless (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-encryption.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 OpenSearch Service Serverless's
// API operation GetSecurityPolicy for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ResourceNotFoundException
//     Thrown when accessing or deleting a resource that does not exist.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/GetSecurityPolicy
func (c *OpenSearchServerless) GetSecurityPolicy(input *GetSecurityPolicyInput) (*GetSecurityPolicyOutput, error) {
	req, out := c.GetSecurityPolicyRequest(input)
	return out, req.Send()
}

// GetSecurityPolicyWithContext is the same as GetSecurityPolicy with the addition of
// the ability to pass a context and additional request options.
//
// See GetSecurityPolicy 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 *OpenSearchServerless) GetSecurityPolicyWithContext(ctx aws.Context, input *GetSecurityPolicyInput, opts ...request.Option) (*GetSecurityPolicyOutput, error) {
	req, out := c.GetSecurityPolicyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opListAccessPolicies = "ListAccessPolicies"

// ListAccessPoliciesRequest generates a "aws/request.Request" representing the
// client's request for the ListAccessPolicies 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 ListAccessPolicies for more information on using the ListAccessPolicies
// 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 ListAccessPoliciesRequest method.
//	req, resp := client.ListAccessPoliciesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/ListAccessPolicies
func (c *OpenSearchServerless) ListAccessPoliciesRequest(input *ListAccessPoliciesInput) (req *request.Request, output *ListAccessPoliciesOutput) {
	op := &request.Operation{
		Name:       opListAccessPolicies,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListAccessPoliciesInput{}
	}

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

// ListAccessPolicies API operation for OpenSearch Service Serverless.
//
// Returns information about a list of OpenSearch Serverless access policies.
//
// 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 OpenSearch Service Serverless's
// API operation ListAccessPolicies for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/ListAccessPolicies
func (c *OpenSearchServerless) ListAccessPolicies(input *ListAccessPoliciesInput) (*ListAccessPoliciesOutput, error) {
	req, out := c.ListAccessPoliciesRequest(input)
	return out, req.Send()
}

// ListAccessPoliciesWithContext is the same as ListAccessPolicies with the addition of
// the ability to pass a context and additional request options.
//
// See ListAccessPolicies 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 *OpenSearchServerless) ListAccessPoliciesWithContext(ctx aws.Context, input *ListAccessPoliciesInput, opts ...request.Option) (*ListAccessPoliciesOutput, error) {
	req, out := c.ListAccessPoliciesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

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

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

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

	return p.Err()
}

const opListCollections = "ListCollections"

// ListCollectionsRequest generates a "aws/request.Request" representing the
// client's request for the ListCollections 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 ListCollections for more information on using the ListCollections
// 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 ListCollectionsRequest method.
//	req, resp := client.ListCollectionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/ListCollections
func (c *OpenSearchServerless) ListCollectionsRequest(input *ListCollectionsInput) (req *request.Request, output *ListCollectionsOutput) {
	op := &request.Operation{
		Name:       opListCollections,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListCollectionsInput{}
	}

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

// ListCollections API operation for OpenSearch Service Serverless.
//
// Lists all OpenSearch Serverless collections. For more information, see Creating
// and managing Amazon OpenSearch Serverless collections (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-manage.html).
//
// Make sure to include an empty request body {} if you don't include any collection
// filters in the request.
//
// 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 OpenSearch Service Serverless's
// API operation ListCollections for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/ListCollections
func (c *OpenSearchServerless) ListCollections(input *ListCollectionsInput) (*ListCollectionsOutput, error) {
	req, out := c.ListCollectionsRequest(input)
	return out, req.Send()
}

// ListCollectionsWithContext is the same as ListCollections with the addition of
// the ability to pass a context and additional request options.
//
// See ListCollections 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 *OpenSearchServerless) ListCollectionsWithContext(ctx aws.Context, input *ListCollectionsInput, opts ...request.Option) (*ListCollectionsOutput, error) {
	req, out := c.ListCollectionsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

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

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

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

	return p.Err()
}

const opListLifecyclePolicies = "ListLifecyclePolicies"

// ListLifecyclePoliciesRequest generates a "aws/request.Request" representing the
// client's request for the ListLifecyclePolicies 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 ListLifecyclePolicies for more information on using the ListLifecyclePolicies
// 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 ListLifecyclePoliciesRequest method.
//	req, resp := client.ListLifecyclePoliciesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/ListLifecyclePolicies
func (c *OpenSearchServerless) ListLifecyclePoliciesRequest(input *ListLifecyclePoliciesInput) (req *request.Request, output *ListLifecyclePoliciesOutput) {
	op := &request.Operation{
		Name:       opListLifecyclePolicies,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListLifecyclePoliciesInput{}
	}

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

// ListLifecyclePolicies API operation for OpenSearch Service Serverless.
//
// Returns a list of OpenSearch Serverless lifecycle policies. For more information,
// see Viewing data lifecycle policies (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-lifecycle.html#serverless-lifecycle-list).
//
// 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 OpenSearch Service Serverless's
// API operation ListLifecyclePolicies for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/ListLifecyclePolicies
func (c *OpenSearchServerless) ListLifecyclePolicies(input *ListLifecyclePoliciesInput) (*ListLifecyclePoliciesOutput, error) {
	req, out := c.ListLifecyclePoliciesRequest(input)
	return out, req.Send()
}

// ListLifecyclePoliciesWithContext is the same as ListLifecyclePolicies with the addition of
// the ability to pass a context and additional request options.
//
// See ListLifecyclePolicies 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 *OpenSearchServerless) ListLifecyclePoliciesWithContext(ctx aws.Context, input *ListLifecyclePoliciesInput, opts ...request.Option) (*ListLifecyclePoliciesOutput, error) {
	req, out := c.ListLifecyclePoliciesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

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

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

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

	return p.Err()
}

const opListSecurityConfigs = "ListSecurityConfigs"

// ListSecurityConfigsRequest generates a "aws/request.Request" representing the
// client's request for the ListSecurityConfigs 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 ListSecurityConfigs for more information on using the ListSecurityConfigs
// 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 ListSecurityConfigsRequest method.
//	req, resp := client.ListSecurityConfigsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/ListSecurityConfigs
func (c *OpenSearchServerless) ListSecurityConfigsRequest(input *ListSecurityConfigsInput) (req *request.Request, output *ListSecurityConfigsOutput) {
	op := &request.Operation{
		Name:       opListSecurityConfigs,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListSecurityConfigsInput{}
	}

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

// ListSecurityConfigs API operation for OpenSearch Service Serverless.
//
// Returns information about configured OpenSearch Serverless security configurations.
// For more information, see SAML authentication for Amazon OpenSearch Serverless
// (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-saml.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 OpenSearch Service Serverless's
// API operation ListSecurityConfigs for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/ListSecurityConfigs
func (c *OpenSearchServerless) ListSecurityConfigs(input *ListSecurityConfigsInput) (*ListSecurityConfigsOutput, error) {
	req, out := c.ListSecurityConfigsRequest(input)
	return out, req.Send()
}

// ListSecurityConfigsWithContext is the same as ListSecurityConfigs with the addition of
// the ability to pass a context and additional request options.
//
// See ListSecurityConfigs 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 *OpenSearchServerless) ListSecurityConfigsWithContext(ctx aws.Context, input *ListSecurityConfigsInput, opts ...request.Option) (*ListSecurityConfigsOutput, error) {
	req, out := c.ListSecurityConfigsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

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

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

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

	return p.Err()
}

const opListSecurityPolicies = "ListSecurityPolicies"

// ListSecurityPoliciesRequest generates a "aws/request.Request" representing the
// client's request for the ListSecurityPolicies 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 ListSecurityPolicies for more information on using the ListSecurityPolicies
// 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 ListSecurityPoliciesRequest method.
//	req, resp := client.ListSecurityPoliciesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/ListSecurityPolicies
func (c *OpenSearchServerless) ListSecurityPoliciesRequest(input *ListSecurityPoliciesInput) (req *request.Request, output *ListSecurityPoliciesOutput) {
	op := &request.Operation{
		Name:       opListSecurityPolicies,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListSecurityPoliciesInput{}
	}

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

// ListSecurityPolicies API operation for OpenSearch Service Serverless.
//
// Returns information about configured OpenSearch Serverless security policies.
//
// 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 OpenSearch Service Serverless's
// API operation ListSecurityPolicies for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/ListSecurityPolicies
func (c *OpenSearchServerless) ListSecurityPolicies(input *ListSecurityPoliciesInput) (*ListSecurityPoliciesOutput, error) {
	req, out := c.ListSecurityPoliciesRequest(input)
	return out, req.Send()
}

// ListSecurityPoliciesWithContext is the same as ListSecurityPolicies with the addition of
// the ability to pass a context and additional request options.
//
// See ListSecurityPolicies 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 *OpenSearchServerless) ListSecurityPoliciesWithContext(ctx aws.Context, input *ListSecurityPoliciesInput, opts ...request.Option) (*ListSecurityPoliciesOutput, error) {
	req, out := c.ListSecurityPoliciesRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

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

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

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

	return p.Err()
}

const opListTagsForResource = "ListTagsForResource"

// ListTagsForResourceRequest generates a "aws/request.Request" representing the
// client's request for the ListTagsForResource 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 ListTagsForResource for more information on using the ListTagsForResource
// 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 ListTagsForResourceRequest method.
//	req, resp := client.ListTagsForResourceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/ListTagsForResource
func (c *OpenSearchServerless) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
	op := &request.Operation{
		Name:       opListTagsForResource,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &ListTagsForResourceInput{}
	}

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

// ListTagsForResource API operation for OpenSearch Service Serverless.
//
// Returns the tags for an OpenSearch Serverless resource. For more information,
// see Tagging Amazon OpenSearch Serverless collections (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/tag-collection.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 OpenSearch Service Serverless's
// API operation ListTagsForResource for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ResourceNotFoundException
//     Thrown when accessing or deleting a resource that does not exist.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/ListTagsForResource
func (c *OpenSearchServerless) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
	req, out := c.ListTagsForResourceRequest(input)
	return out, req.Send()
}

// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
// the ability to pass a context and additional request options.
//
// See ListTagsForResource 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 *OpenSearchServerless) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
	req, out := c.ListTagsForResourceRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opListVpcEndpoints = "ListVpcEndpoints"

// ListVpcEndpointsRequest generates a "aws/request.Request" representing the
// client's request for the ListVpcEndpoints 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 ListVpcEndpoints for more information on using the ListVpcEndpoints
// 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 ListVpcEndpointsRequest method.
//	req, resp := client.ListVpcEndpointsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/ListVpcEndpoints
func (c *OpenSearchServerless) ListVpcEndpointsRequest(input *ListVpcEndpointsInput) (req *request.Request, output *ListVpcEndpointsOutput) {
	op := &request.Operation{
		Name:       opListVpcEndpoints,
		HTTPMethod: "POST",
		HTTPPath:   "/",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListVpcEndpointsInput{}
	}

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

// ListVpcEndpoints API operation for OpenSearch Service Serverless.
//
// Returns the OpenSearch Serverless-managed interface VPC endpoints associated
// with the current account. For more information, see Access Amazon OpenSearch
// Serverless using an interface endpoint (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vpc.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 OpenSearch Service Serverless's
// API operation ListVpcEndpoints for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/ListVpcEndpoints
func (c *OpenSearchServerless) ListVpcEndpoints(input *ListVpcEndpointsInput) (*ListVpcEndpointsOutput, error) {
	req, out := c.ListVpcEndpointsRequest(input)
	return out, req.Send()
}

// ListVpcEndpointsWithContext is the same as ListVpcEndpoints with the addition of
// the ability to pass a context and additional request options.
//
// See ListVpcEndpoints 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 *OpenSearchServerless) ListVpcEndpointsWithContext(ctx aws.Context, input *ListVpcEndpointsInput, opts ...request.Option) (*ListVpcEndpointsOutput, error) {
	req, out := c.ListVpcEndpointsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

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

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

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

	return p.Err()
}

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/opensearchserverless-2021-11-01/TagResource
func (c *OpenSearchServerless) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
	op := &request.Operation{
		Name:       opTagResource,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

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

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

// TagResource API operation for OpenSearch Service Serverless.
//
// Associates tags with an OpenSearch Serverless resource. For more information,
// see Tagging Amazon OpenSearch Serverless collections (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/tag-collection.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 OpenSearch Service Serverless's
// API operation TagResource for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ResourceNotFoundException
//     Thrown when accessing or deleting a resource that does not exist.
//
//   - ConflictException
//     When creating a resource, thrown when a resource with the same name already
//     exists or is being created. When deleting a resource, thrown when the resource
//     is not in the ACTIVE or FAILED state.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
//   - ServiceQuotaExceededException
//     Thrown when you attempt to create more resources than the service allows
//     based on service quotas.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/TagResource
func (c *OpenSearchServerless) 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 *OpenSearchServerless) 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/opensearchserverless-2021-11-01/UntagResource
func (c *OpenSearchServerless) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
	op := &request.Operation{
		Name:       opUntagResource,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

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

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

// UntagResource API operation for OpenSearch Service Serverless.
//
// Removes a tag or set of tags from an OpenSearch Serverless resource. For
// more information, see Tagging Amazon OpenSearch Serverless collections (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/tag-collection.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 OpenSearch Service Serverless's
// API operation UntagResource for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ResourceNotFoundException
//     Thrown when accessing or deleting a resource that does not exist.
//
//   - ConflictException
//     When creating a resource, thrown when a resource with the same name already
//     exists or is being created. When deleting a resource, thrown when the resource
//     is not in the ACTIVE or FAILED state.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/UntagResource
func (c *OpenSearchServerless) 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 *OpenSearchServerless) 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 opUpdateAccessPolicy = "UpdateAccessPolicy"

// UpdateAccessPolicyRequest generates a "aws/request.Request" representing the
// client's request for the UpdateAccessPolicy 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 UpdateAccessPolicy for more information on using the UpdateAccessPolicy
// 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 UpdateAccessPolicyRequest method.
//	req, resp := client.UpdateAccessPolicyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/UpdateAccessPolicy
func (c *OpenSearchServerless) UpdateAccessPolicyRequest(input *UpdateAccessPolicyInput) (req *request.Request, output *UpdateAccessPolicyOutput) {
	op := &request.Operation{
		Name:       opUpdateAccessPolicy,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateAccessPolicyInput{}
	}

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

// UpdateAccessPolicy API operation for OpenSearch Service Serverless.
//
// Updates an OpenSearch Serverless access policy. For more information, see
// Data access control for Amazon OpenSearch Serverless (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-data-access.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 OpenSearch Service Serverless's
// API operation UpdateAccessPolicy for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ResourceNotFoundException
//     Thrown when accessing or deleting a resource that does not exist.
//
//   - ConflictException
//     When creating a resource, thrown when a resource with the same name already
//     exists or is being created. When deleting a resource, thrown when the resource
//     is not in the ACTIVE or FAILED state.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/UpdateAccessPolicy
func (c *OpenSearchServerless) UpdateAccessPolicy(input *UpdateAccessPolicyInput) (*UpdateAccessPolicyOutput, error) {
	req, out := c.UpdateAccessPolicyRequest(input)
	return out, req.Send()
}

// UpdateAccessPolicyWithContext is the same as UpdateAccessPolicy with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateAccessPolicy 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 *OpenSearchServerless) UpdateAccessPolicyWithContext(ctx aws.Context, input *UpdateAccessPolicyInput, opts ...request.Option) (*UpdateAccessPolicyOutput, error) {
	req, out := c.UpdateAccessPolicyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateAccountSettings = "UpdateAccountSettings"

// UpdateAccountSettingsRequest generates a "aws/request.Request" representing the
// client's request for the UpdateAccountSettings 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 UpdateAccountSettings for more information on using the UpdateAccountSettings
// 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 UpdateAccountSettingsRequest method.
//	req, resp := client.UpdateAccountSettingsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/UpdateAccountSettings
func (c *OpenSearchServerless) UpdateAccountSettingsRequest(input *UpdateAccountSettingsInput) (req *request.Request, output *UpdateAccountSettingsOutput) {
	op := &request.Operation{
		Name:       opUpdateAccountSettings,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateAccountSettingsInput{}
	}

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

// UpdateAccountSettings API operation for OpenSearch Service Serverless.
//
// Update the OpenSearch Serverless settings for the current Amazon Web Services
// account. For more information, see Managing capacity limits for Amazon OpenSearch
// Serverless (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-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 OpenSearch Service Serverless's
// API operation UpdateAccountSettings for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/UpdateAccountSettings
func (c *OpenSearchServerless) UpdateAccountSettings(input *UpdateAccountSettingsInput) (*UpdateAccountSettingsOutput, error) {
	req, out := c.UpdateAccountSettingsRequest(input)
	return out, req.Send()
}

// UpdateAccountSettingsWithContext is the same as UpdateAccountSettings with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateAccountSettings 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 *OpenSearchServerless) UpdateAccountSettingsWithContext(ctx aws.Context, input *UpdateAccountSettingsInput, opts ...request.Option) (*UpdateAccountSettingsOutput, error) {
	req, out := c.UpdateAccountSettingsRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateCollection = "UpdateCollection"

// UpdateCollectionRequest generates a "aws/request.Request" representing the
// client's request for the UpdateCollection 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 UpdateCollection for more information on using the UpdateCollection
// 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 UpdateCollectionRequest method.
//	req, resp := client.UpdateCollectionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/UpdateCollection
func (c *OpenSearchServerless) UpdateCollectionRequest(input *UpdateCollectionInput) (req *request.Request, output *UpdateCollectionOutput) {
	op := &request.Operation{
		Name:       opUpdateCollection,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateCollectionInput{}
	}

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

// UpdateCollection API operation for OpenSearch Service Serverless.
//
// Updates an OpenSearch Serverless collection.
//
// 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 OpenSearch Service Serverless's
// API operation UpdateCollection for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ConflictException
//     When creating a resource, thrown when a resource with the same name already
//     exists or is being created. When deleting a resource, thrown when the resource
//     is not in the ACTIVE or FAILED state.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/UpdateCollection
func (c *OpenSearchServerless) UpdateCollection(input *UpdateCollectionInput) (*UpdateCollectionOutput, error) {
	req, out := c.UpdateCollectionRequest(input)
	return out, req.Send()
}

// UpdateCollectionWithContext is the same as UpdateCollection with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateCollection 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 *OpenSearchServerless) UpdateCollectionWithContext(ctx aws.Context, input *UpdateCollectionInput, opts ...request.Option) (*UpdateCollectionOutput, error) {
	req, out := c.UpdateCollectionRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateLifecyclePolicy = "UpdateLifecyclePolicy"

// UpdateLifecyclePolicyRequest generates a "aws/request.Request" representing the
// client's request for the UpdateLifecyclePolicy 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 UpdateLifecyclePolicy for more information on using the UpdateLifecyclePolicy
// 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 UpdateLifecyclePolicyRequest method.
//	req, resp := client.UpdateLifecyclePolicyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/UpdateLifecyclePolicy
func (c *OpenSearchServerless) UpdateLifecyclePolicyRequest(input *UpdateLifecyclePolicyInput) (req *request.Request, output *UpdateLifecyclePolicyOutput) {
	op := &request.Operation{
		Name:       opUpdateLifecyclePolicy,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateLifecyclePolicyInput{}
	}

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

// UpdateLifecyclePolicy API operation for OpenSearch Service Serverless.
//
// Updates an OpenSearch Serverless access policy. For more information, see
// Updating data lifecycle policies (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-lifecycle.html#serverless-lifecycle-update).
//
// 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 OpenSearch Service Serverless's
// API operation UpdateLifecyclePolicy for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ResourceNotFoundException
//     Thrown when accessing or deleting a resource that does not exist.
//
//   - ConflictException
//     When creating a resource, thrown when a resource with the same name already
//     exists or is being created. When deleting a resource, thrown when the resource
//     is not in the ACTIVE or FAILED state.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
//   - ServiceQuotaExceededException
//     Thrown when you attempt to create more resources than the service allows
//     based on service quotas.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/UpdateLifecyclePolicy
func (c *OpenSearchServerless) UpdateLifecyclePolicy(input *UpdateLifecyclePolicyInput) (*UpdateLifecyclePolicyOutput, error) {
	req, out := c.UpdateLifecyclePolicyRequest(input)
	return out, req.Send()
}

// UpdateLifecyclePolicyWithContext is the same as UpdateLifecyclePolicy with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateLifecyclePolicy 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 *OpenSearchServerless) UpdateLifecyclePolicyWithContext(ctx aws.Context, input *UpdateLifecyclePolicyInput, opts ...request.Option) (*UpdateLifecyclePolicyOutput, error) {
	req, out := c.UpdateLifecyclePolicyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateSecurityConfig = "UpdateSecurityConfig"

// UpdateSecurityConfigRequest generates a "aws/request.Request" representing the
// client's request for the UpdateSecurityConfig 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 UpdateSecurityConfig for more information on using the UpdateSecurityConfig
// 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 UpdateSecurityConfigRequest method.
//	req, resp := client.UpdateSecurityConfigRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/UpdateSecurityConfig
func (c *OpenSearchServerless) UpdateSecurityConfigRequest(input *UpdateSecurityConfigInput) (req *request.Request, output *UpdateSecurityConfigOutput) {
	op := &request.Operation{
		Name:       opUpdateSecurityConfig,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateSecurityConfigInput{}
	}

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

// UpdateSecurityConfig API operation for OpenSearch Service Serverless.
//
// Updates a security configuration for OpenSearch Serverless. For more information,
// see SAML authentication for Amazon OpenSearch Serverless (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-saml.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 OpenSearch Service Serverless's
// API operation UpdateSecurityConfig for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ResourceNotFoundException
//     Thrown when accessing or deleting a resource that does not exist.
//
//   - ConflictException
//     When creating a resource, thrown when a resource with the same name already
//     exists or is being created. When deleting a resource, thrown when the resource
//     is not in the ACTIVE or FAILED state.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/UpdateSecurityConfig
func (c *OpenSearchServerless) UpdateSecurityConfig(input *UpdateSecurityConfigInput) (*UpdateSecurityConfigOutput, error) {
	req, out := c.UpdateSecurityConfigRequest(input)
	return out, req.Send()
}

// UpdateSecurityConfigWithContext is the same as UpdateSecurityConfig with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateSecurityConfig 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 *OpenSearchServerless) UpdateSecurityConfigWithContext(ctx aws.Context, input *UpdateSecurityConfigInput, opts ...request.Option) (*UpdateSecurityConfigOutput, error) {
	req, out := c.UpdateSecurityConfigRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateSecurityPolicy = "UpdateSecurityPolicy"

// UpdateSecurityPolicyRequest generates a "aws/request.Request" representing the
// client's request for the UpdateSecurityPolicy 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 UpdateSecurityPolicy for more information on using the UpdateSecurityPolicy
// 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 UpdateSecurityPolicyRequest method.
//	req, resp := client.UpdateSecurityPolicyRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/UpdateSecurityPolicy
func (c *OpenSearchServerless) UpdateSecurityPolicyRequest(input *UpdateSecurityPolicyInput) (req *request.Request, output *UpdateSecurityPolicyOutput) {
	op := &request.Operation{
		Name:       opUpdateSecurityPolicy,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateSecurityPolicyInput{}
	}

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

// UpdateSecurityPolicy API operation for OpenSearch Service Serverless.
//
// Updates an OpenSearch Serverless security policy. For more information, see
// Network access for Amazon OpenSearch Serverless (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-network.html)
// and Encryption at rest for Amazon OpenSearch Serverless (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-encryption.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 OpenSearch Service Serverless's
// API operation UpdateSecurityPolicy for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ResourceNotFoundException
//     Thrown when accessing or deleting a resource that does not exist.
//
//   - ConflictException
//     When creating a resource, thrown when a resource with the same name already
//     exists or is being created. When deleting a resource, thrown when the resource
//     is not in the ACTIVE or FAILED state.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
//   - ServiceQuotaExceededException
//     Thrown when you attempt to create more resources than the service allows
//     based on service quotas.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/UpdateSecurityPolicy
func (c *OpenSearchServerless) UpdateSecurityPolicy(input *UpdateSecurityPolicyInput) (*UpdateSecurityPolicyOutput, error) {
	req, out := c.UpdateSecurityPolicyRequest(input)
	return out, req.Send()
}

// UpdateSecurityPolicyWithContext is the same as UpdateSecurityPolicy with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateSecurityPolicy 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 *OpenSearchServerless) UpdateSecurityPolicyWithContext(ctx aws.Context, input *UpdateSecurityPolicyInput, opts ...request.Option) (*UpdateSecurityPolicyOutput, error) {
	req, out := c.UpdateSecurityPolicyRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

const opUpdateVpcEndpoint = "UpdateVpcEndpoint"

// UpdateVpcEndpointRequest generates a "aws/request.Request" representing the
// client's request for the UpdateVpcEndpoint 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 UpdateVpcEndpoint for more information on using the UpdateVpcEndpoint
// 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 UpdateVpcEndpointRequest method.
//	req, resp := client.UpdateVpcEndpointRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/UpdateVpcEndpoint
func (c *OpenSearchServerless) UpdateVpcEndpointRequest(input *UpdateVpcEndpointInput) (req *request.Request, output *UpdateVpcEndpointOutput) {
	op := &request.Operation{
		Name:       opUpdateVpcEndpoint,
		HTTPMethod: "POST",
		HTTPPath:   "/",
	}

	if input == nil {
		input = &UpdateVpcEndpointInput{}
	}

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

// UpdateVpcEndpoint API operation for OpenSearch Service Serverless.
//
// Updates an OpenSearch Serverless-managed interface endpoint. For more information,
// see Access Amazon OpenSearch Serverless using an interface endpoint (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vpc.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 OpenSearch Service Serverless's
// API operation UpdateVpcEndpoint for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     Thrown when an error internal to the service occurs while processing a request.
//
//   - ConflictException
//     When creating a resource, thrown when a resource with the same name already
//     exists or is being created. When deleting a resource, thrown when the resource
//     is not in the ACTIVE or FAILED state.
//
//   - ValidationException
//     Thrown when the HTTP request contains invalid input or is missing required
//     input.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/opensearchserverless-2021-11-01/UpdateVpcEndpoint
func (c *OpenSearchServerless) UpdateVpcEndpoint(input *UpdateVpcEndpointInput) (*UpdateVpcEndpointOutput, error) {
	req, out := c.UpdateVpcEndpointRequest(input)
	return out, req.Send()
}

// UpdateVpcEndpointWithContext is the same as UpdateVpcEndpoint with the addition of
// the ability to pass a context and additional request options.
//
// See UpdateVpcEndpoint 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 *OpenSearchServerless) UpdateVpcEndpointWithContext(ctx aws.Context, input *UpdateVpcEndpointInput, opts ...request.Option) (*UpdateVpcEndpointOutput, error) {
	req, out := c.UpdateVpcEndpointRequest(input)
	req.SetContext(ctx)
	req.ApplyOptions(opts...)
	return out, req.Send()
}

// Details about an OpenSearch Serverless access policy.
type AccessPolicyDetail struct {
	_ struct{} `type:"structure"`

	// The date the policy was created.
	CreatedDate *int64 `locationName:"createdDate" type:"long"`

	// The description of the policy.
	Description *string `locationName:"description" type:"string"`

	// The timestamp of when the policy was last modified.
	LastModifiedDate *int64 `locationName:"lastModifiedDate" type:"long"`

	// The name of the policy.
	Name *string `locationName:"name" min:"3" type:"string"`

	// The version of the policy.
	PolicyVersion *string `locationName:"policyVersion" min:"20" type:"string"`

	// The type of access policy.
	Type *string `locationName:"type" type:"string" enum:"AccessPolicyType"`
}

// 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 AccessPolicyDetail) 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 AccessPolicyDetail) GoString() string {
	return s.String()
}

// SetCreatedDate sets the CreatedDate field's value.
func (s *AccessPolicyDetail) SetCreatedDate(v int64) *AccessPolicyDetail {
	s.CreatedDate = &v
	return s
}

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

// SetLastModifiedDate sets the LastModifiedDate field's value.
func (s *AccessPolicyDetail) SetLastModifiedDate(v int64) *AccessPolicyDetail {
	s.LastModifiedDate = &v
	return s
}

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

// SetPolicyVersion sets the PolicyVersion field's value.
func (s *AccessPolicyDetail) SetPolicyVersion(v string) *AccessPolicyDetail {
	s.PolicyVersion = &v
	return s
}

// SetType sets the Type field's value.
func (s *AccessPolicyDetail) SetType(v string) *AccessPolicyDetail {
	s.Type = &v
	return s
}

// Statistics for an OpenSearch Serverless access policy.
type AccessPolicyStats struct {
	_ struct{} `type:"structure"`

	// The number of data access policies in the current account.
	DataPolicyCount *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 AccessPolicyStats) 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 AccessPolicyStats) GoString() string {
	return s.String()
}

// SetDataPolicyCount sets the DataPolicyCount field's value.
func (s *AccessPolicyStats) SetDataPolicyCount(v int64) *AccessPolicyStats {
	s.DataPolicyCount = &v
	return s
}

// A summary of the data access policy.
type AccessPolicySummary struct {
	_ struct{} `type:"structure"`

	// The Epoch time when the access policy was created.
	CreatedDate *int64 `locationName:"createdDate" type:"long"`

	// The description of the access policy.
	Description *string `locationName:"description" type:"string"`

	// The date and time when the collection was last modified.
	LastModifiedDate *int64 `locationName:"lastModifiedDate" type:"long"`

	// The name of the access policy.
	Name *string `locationName:"name" min:"3" type:"string"`

	// The version of the policy.
	PolicyVersion *string `locationName:"policyVersion" min:"20" type:"string"`

	// The type of access policy. Currently, the only available type is data.
	Type *string `locationName:"type" type:"string" enum:"AccessPolicyType"`
}

// 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 AccessPolicySummary) 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 AccessPolicySummary) GoString() string {
	return s.String()
}

// SetCreatedDate sets the CreatedDate field's value.
func (s *AccessPolicySummary) SetCreatedDate(v int64) *AccessPolicySummary {
	s.CreatedDate = &v
	return s
}

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

// SetLastModifiedDate sets the LastModifiedDate field's value.
func (s *AccessPolicySummary) SetLastModifiedDate(v int64) *AccessPolicySummary {
	s.LastModifiedDate = &v
	return s
}

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

// SetPolicyVersion sets the PolicyVersion field's value.
func (s *AccessPolicySummary) SetPolicyVersion(v string) *AccessPolicySummary {
	s.PolicyVersion = &v
	return s
}

// SetType sets the Type field's value.
func (s *AccessPolicySummary) SetType(v string) *AccessPolicySummary {
	s.Type = &v
	return s
}

// OpenSearch Serverless-related information for the current account.
type AccountSettingsDetail struct {
	_ struct{} `type:"structure"`

	// The maximum capacity limits for all OpenSearch Serverless collections, in
	// OpenSearch Compute Units (OCUs). These limits are used to scale your collections
	// based on the current workload. For more information, see Managing capacity
	// limits for Amazon OpenSearch Serverless (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-scaling.html).
	CapacityLimits *CapacityLimits `locationName:"capacityLimits" 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 AccountSettingsDetail) 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 AccountSettingsDetail) GoString() string {
	return s.String()
}

// SetCapacityLimits sets the CapacityLimits field's value.
func (s *AccountSettingsDetail) SetCapacityLimits(v *CapacityLimits) *AccountSettingsDetail {
	s.CapacityLimits = v
	return s
}

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

	// A list of collection IDs. You can't provide names and IDs in the same request.
	// The ID is part of the collection endpoint. You can also retrieve it using
	// the ListCollections (https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_ListCollections.html)
	// API.
	Ids []*string `locationName:"ids" min:"1" type:"list"`

	// A list of collection names. You can't provide names and IDs in the same request.
	Names []*string `locationName:"names" min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s BatchGetCollectionInput) 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 BatchGetCollectionInput) GoString() string {
	return s.String()
}

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

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

// SetIds sets the Ids field's value.
func (s *BatchGetCollectionInput) SetIds(v []*string) *BatchGetCollectionInput {
	s.Ids = v
	return s
}

// SetNames sets the Names field's value.
func (s *BatchGetCollectionInput) SetNames(v []*string) *BatchGetCollectionInput {
	s.Names = v
	return s
}

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

	// Details about each collection.
	CollectionDetails []*CollectionDetail `locationName:"collectionDetails" type:"list"`

	// Error information for the request.
	CollectionErrorDetails []*CollectionErrorDetail `locationName:"collectionErrorDetails" 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 BatchGetCollectionOutput) 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 BatchGetCollectionOutput) GoString() string {
	return s.String()
}

// SetCollectionDetails sets the CollectionDetails field's value.
func (s *BatchGetCollectionOutput) SetCollectionDetails(v []*CollectionDetail) *BatchGetCollectionOutput {
	s.CollectionDetails = v
	return s
}

// SetCollectionErrorDetails sets the CollectionErrorDetails field's value.
func (s *BatchGetCollectionOutput) SetCollectionErrorDetails(v []*CollectionErrorDetail) *BatchGetCollectionOutput {
	s.CollectionErrorDetails = v
	return s
}

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

	// The unique identifiers of policy types and resource names.
	//
	// ResourceIdentifiers is a required field
	ResourceIdentifiers []*LifecyclePolicyResourceIdentifier `locationName:"resourceIdentifiers" 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 BatchGetEffectiveLifecyclePolicyInput) 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 BatchGetEffectiveLifecyclePolicyInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *BatchGetEffectiveLifecyclePolicyInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "BatchGetEffectiveLifecyclePolicyInput"}
	if s.ResourceIdentifiers == nil {
		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifiers"))
	}
	if s.ResourceIdentifiers != nil && len(s.ResourceIdentifiers) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ResourceIdentifiers", 1))
	}
	if s.ResourceIdentifiers != nil {
		for i, v := range s.ResourceIdentifiers {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResourceIdentifiers", i), err.(request.ErrInvalidParams))
			}
		}
	}

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

// SetResourceIdentifiers sets the ResourceIdentifiers field's value.
func (s *BatchGetEffectiveLifecyclePolicyInput) SetResourceIdentifiers(v []*LifecyclePolicyResourceIdentifier) *BatchGetEffectiveLifecyclePolicyInput {
	s.ResourceIdentifiers = v
	return s
}

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

	// A list of lifecycle policies applied to the OpenSearch Serverless indexes.
	EffectiveLifecyclePolicyDetails []*EffectiveLifecyclePolicyDetail `locationName:"effectiveLifecyclePolicyDetails" type:"list"`

	// A list of resources for which retrieval failed.
	EffectiveLifecyclePolicyErrorDetails []*EffectiveLifecyclePolicyErrorDetail `locationName:"effectiveLifecyclePolicyErrorDetails" 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 BatchGetEffectiveLifecyclePolicyOutput) 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 BatchGetEffectiveLifecyclePolicyOutput) GoString() string {
	return s.String()
}

// SetEffectiveLifecyclePolicyDetails sets the EffectiveLifecyclePolicyDetails field's value.
func (s *BatchGetEffectiveLifecyclePolicyOutput) SetEffectiveLifecyclePolicyDetails(v []*EffectiveLifecyclePolicyDetail) *BatchGetEffectiveLifecyclePolicyOutput {
	s.EffectiveLifecyclePolicyDetails = v
	return s
}

// SetEffectiveLifecyclePolicyErrorDetails sets the EffectiveLifecyclePolicyErrorDetails field's value.
func (s *BatchGetEffectiveLifecyclePolicyOutput) SetEffectiveLifecyclePolicyErrorDetails(v []*EffectiveLifecyclePolicyErrorDetail) *BatchGetEffectiveLifecyclePolicyOutput {
	s.EffectiveLifecyclePolicyErrorDetails = v
	return s
}

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

	// The unique identifiers of policy types and policy names.
	//
	// Identifiers is a required field
	Identifiers []*LifecyclePolicyIdentifier `locationName:"identifiers" 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 BatchGetLifecyclePolicyInput) 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 BatchGetLifecyclePolicyInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *BatchGetLifecyclePolicyInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "BatchGetLifecyclePolicyInput"}
	if s.Identifiers == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifiers"))
	}
	if s.Identifiers != nil && len(s.Identifiers) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifiers", 1))
	}
	if s.Identifiers != nil {
		for i, v := range s.Identifiers {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Identifiers", i), err.(request.ErrInvalidParams))
			}
		}
	}

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

// SetIdentifiers sets the Identifiers field's value.
func (s *BatchGetLifecyclePolicyInput) SetIdentifiers(v []*LifecyclePolicyIdentifier) *BatchGetLifecyclePolicyInput {
	s.Identifiers = v
	return s
}

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

	// A list of lifecycle policies matched to the input policy name and policy
	// type.
	LifecyclePolicyDetails []*LifecyclePolicyDetail `locationName:"lifecyclePolicyDetails" type:"list"`

	// A list of lifecycle policy names and policy types for which retrieval failed.
	LifecyclePolicyErrorDetails []*LifecyclePolicyErrorDetail `locationName:"lifecyclePolicyErrorDetails" 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 BatchGetLifecyclePolicyOutput) 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 BatchGetLifecyclePolicyOutput) GoString() string {
	return s.String()
}

// SetLifecyclePolicyDetails sets the LifecyclePolicyDetails field's value.
func (s *BatchGetLifecyclePolicyOutput) SetLifecyclePolicyDetails(v []*LifecyclePolicyDetail) *BatchGetLifecyclePolicyOutput {
	s.LifecyclePolicyDetails = v
	return s
}

// SetLifecyclePolicyErrorDetails sets the LifecyclePolicyErrorDetails field's value.
func (s *BatchGetLifecyclePolicyOutput) SetLifecyclePolicyErrorDetails(v []*LifecyclePolicyErrorDetail) *BatchGetLifecyclePolicyOutput {
	s.LifecyclePolicyErrorDetails = v
	return s
}

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

	// A list of VPC endpoint identifiers.
	//
	// Ids is a required field
	Ids []*string `locationName:"ids" 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 BatchGetVpcEndpointInput) 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 BatchGetVpcEndpointInput) GoString() string {
	return s.String()
}

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

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

// SetIds sets the Ids field's value.
func (s *BatchGetVpcEndpointInput) SetIds(v []*string) *BatchGetVpcEndpointInput {
	s.Ids = v
	return s
}

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

	// Details about the specified VPC endpoint.
	VpcEndpointDetails []*VpcEndpointDetail `locationName:"vpcEndpointDetails" type:"list"`

	// Error information for a failed request.
	VpcEndpointErrorDetails []*VpcEndpointErrorDetail `locationName:"vpcEndpointErrorDetails" 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 BatchGetVpcEndpointOutput) 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 BatchGetVpcEndpointOutput) GoString() string {
	return s.String()
}

// SetVpcEndpointDetails sets the VpcEndpointDetails field's value.
func (s *BatchGetVpcEndpointOutput) SetVpcEndpointDetails(v []*VpcEndpointDetail) *BatchGetVpcEndpointOutput {
	s.VpcEndpointDetails = v
	return s
}

// SetVpcEndpointErrorDetails sets the VpcEndpointErrorDetails field's value.
func (s *BatchGetVpcEndpointOutput) SetVpcEndpointErrorDetails(v []*VpcEndpointErrorDetail) *BatchGetVpcEndpointOutput {
	s.VpcEndpointErrorDetails = v
	return s
}

// The maximum capacity limits for all OpenSearch Serverless collections, in
// OpenSearch Compute Units (OCUs). These limits are used to scale your collections
// based on the current workload. For more information, see Managing capacity
// limits for Amazon OpenSearch Serverless (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-scaling.html).
type CapacityLimits struct {
	_ struct{} `type:"structure"`

	// The maximum indexing capacity for collections.
	MaxIndexingCapacityInOCU *int64 `locationName:"maxIndexingCapacityInOCU" min:"2" type:"integer"`

	// The maximum search capacity for collections.
	MaxSearchCapacityInOCU *int64 `locationName:"maxSearchCapacityInOCU" 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 CapacityLimits) 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 CapacityLimits) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CapacityLimits) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CapacityLimits"}
	if s.MaxIndexingCapacityInOCU != nil && *s.MaxIndexingCapacityInOCU < 2 {
		invalidParams.Add(request.NewErrParamMinValue("MaxIndexingCapacityInOCU", 2))
	}
	if s.MaxSearchCapacityInOCU != nil && *s.MaxSearchCapacityInOCU < 2 {
		invalidParams.Add(request.NewErrParamMinValue("MaxSearchCapacityInOCU", 2))
	}

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

// SetMaxIndexingCapacityInOCU sets the MaxIndexingCapacityInOCU field's value.
func (s *CapacityLimits) SetMaxIndexingCapacityInOCU(v int64) *CapacityLimits {
	s.MaxIndexingCapacityInOCU = &v
	return s
}

// SetMaxSearchCapacityInOCU sets the MaxSearchCapacityInOCU field's value.
func (s *CapacityLimits) SetMaxSearchCapacityInOCU(v int64) *CapacityLimits {
	s.MaxSearchCapacityInOCU = &v
	return s
}

// Details about each OpenSearch Serverless collection, including the collection
// endpoint and the OpenSearch Dashboards endpoint.
type CollectionDetail struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the collection.
	Arn *string `locationName:"arn" type:"string"`

	// Collection-specific endpoint used to submit index, search, and data upload
	// requests to an OpenSearch Serverless collection.
	CollectionEndpoint *string `locationName:"collectionEndpoint" type:"string"`

	// The Epoch time when the collection was created.
	CreatedDate *int64 `locationName:"createdDate" type:"long"`

	// Collection-specific endpoint used to access OpenSearch Dashboards.
	DashboardEndpoint *string `locationName:"dashboardEndpoint" type:"string"`

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

	// A unique identifier for the collection.
	Id *string `locationName:"id" min:"3" type:"string"`

	// The ARN of the Amazon Web Services KMS key used to encrypt the collection.
	KmsKeyArn *string `locationName:"kmsKeyArn" type:"string"`

	// The date and time when the collection was last modified.
	LastModifiedDate *int64 `locationName:"lastModifiedDate" type:"long"`

	// The name of the collection.
	Name *string `locationName:"name" min:"3" type:"string"`

	// Details about an OpenSearch Serverless collection.
	StandbyReplicas *string `locationName:"standbyReplicas" type:"string" enum:"StandbyReplicas"`

	// The current status of the collection.
	Status *string `locationName:"status" type:"string" enum:"CollectionStatus"`

	// The type of collection.
	Type *string `locationName:"type" type:"string" enum:"CollectionType"`
}

// 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 CollectionDetail) 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 CollectionDetail) GoString() string {
	return s.String()
}

// SetArn sets the Arn field's value.
func (s *CollectionDetail) SetArn(v string) *CollectionDetail {
	s.Arn = &v
	return s
}

// SetCollectionEndpoint sets the CollectionEndpoint field's value.
func (s *CollectionDetail) SetCollectionEndpoint(v string) *CollectionDetail {
	s.CollectionEndpoint = &v
	return s
}

// SetCreatedDate sets the CreatedDate field's value.
func (s *CollectionDetail) SetCreatedDate(v int64) *CollectionDetail {
	s.CreatedDate = &v
	return s
}

// SetDashboardEndpoint sets the DashboardEndpoint field's value.
func (s *CollectionDetail) SetDashboardEndpoint(v string) *CollectionDetail {
	s.DashboardEndpoint = &v
	return s
}

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

// SetId sets the Id field's value.
func (s *CollectionDetail) SetId(v string) *CollectionDetail {
	s.Id = &v
	return s
}

// SetKmsKeyArn sets the KmsKeyArn field's value.
func (s *CollectionDetail) SetKmsKeyArn(v string) *CollectionDetail {
	s.KmsKeyArn = &v
	return s
}

// SetLastModifiedDate sets the LastModifiedDate field's value.
func (s *CollectionDetail) SetLastModifiedDate(v int64) *CollectionDetail {
	s.LastModifiedDate = &v
	return s
}

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

// SetStandbyReplicas sets the StandbyReplicas field's value.
func (s *CollectionDetail) SetStandbyReplicas(v string) *CollectionDetail {
	s.StandbyReplicas = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *CollectionDetail) SetStatus(v string) *CollectionDetail {
	s.Status = &v
	return s
}

// SetType sets the Type field's value.
func (s *CollectionDetail) SetType(v string) *CollectionDetail {
	s.Type = &v
	return s
}

// Error information for an OpenSearch Serverless request.
type CollectionErrorDetail struct {
	_ struct{} `type:"structure"`

	// The error code for the request. For example, NOT_FOUND.
	ErrorCode *string `locationName:"errorCode" type:"string"`

	// A description of the error. For example, The specified Collection is not
	// found.
	ErrorMessage *string `locationName:"errorMessage" type:"string"`

	// If the request contains collection IDs, the response includes the IDs provided
	// in the request.
	Id *string `locationName:"id" min:"3" type:"string"`

	// If the request contains collection names, the response includes the names
	// provided in the request.
	Name *string `locationName:"name" min:"3" 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 CollectionErrorDetail) 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 CollectionErrorDetail) GoString() string {
	return s.String()
}

// SetErrorCode sets the ErrorCode field's value.
func (s *CollectionErrorDetail) SetErrorCode(v string) *CollectionErrorDetail {
	s.ErrorCode = &v
	return s
}

// SetErrorMessage sets the ErrorMessage field's value.
func (s *CollectionErrorDetail) SetErrorMessage(v string) *CollectionErrorDetail {
	s.ErrorMessage = &v
	return s
}

// SetId sets the Id field's value.
func (s *CollectionErrorDetail) SetId(v string) *CollectionErrorDetail {
	s.Id = &v
	return s
}

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

// A list of filter keys that you can use for LIST, UPDATE, and DELETE requests
// to OpenSearch Serverless collections.
type CollectionFilters struct {
	_ struct{} `type:"structure"`

	// The name of the collection.
	Name *string `locationName:"name" min:"3" type:"string"`

	// The current status of the collection.
	Status *string `locationName:"status" type:"string" enum:"CollectionStatus"`
}

// 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 CollectionFilters) 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 CollectionFilters) GoString() string {
	return s.String()
}

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

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

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

// SetStatus sets the Status field's value.
func (s *CollectionFilters) SetStatus(v string) *CollectionFilters {
	s.Status = &v
	return s
}

// Details about each OpenSearch Serverless collection.
type CollectionSummary struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the collection.
	Arn *string `locationName:"arn" type:"string"`

	// The unique identifier of the collection.
	Id *string `locationName:"id" min:"3" type:"string"`

	// The name of the collection.
	Name *string `locationName:"name" min:"3" type:"string"`

	// The current status of the collection.
	Status *string `locationName:"status" type:"string" enum:"CollectionStatus"`
}

// 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 CollectionSummary) 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 CollectionSummary) GoString() string {
	return s.String()
}

// SetArn sets the Arn field's value.
func (s *CollectionSummary) SetArn(v string) *CollectionSummary {
	s.Arn = &v
	return s
}

// SetId sets the Id field's value.
func (s *CollectionSummary) SetId(v string) *CollectionSummary {
	s.Id = &v
	return s
}

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

// SetStatus sets the Status field's value.
func (s *CollectionSummary) SetStatus(v string) *CollectionSummary {
	s.Status = &v
	return s
}

// When creating a resource, thrown when a resource with the same name already
// exists or is being created. When deleting a resource, thrown when the resource
// is not in the ACTIVE or FAILED state.
type ConflictException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

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

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ConflictException) 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 ConflictException) GoString() string {
	return s.String()
}

func newErrorConflictException(v protocol.ResponseMetadata) error {
	return &ConflictException{
		RespMetadata: v,
	}
}

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

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

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

func (s *ConflictException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

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

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

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

	// Unique, case-sensitive identifier to ensure idempotency of the request.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// A description of the policy. Typically used to store information about the
	// permissions defined in the policy.
	Description *string `locationName:"description" type:"string"`

	// The name of the policy.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"3" type:"string" required:"true"`

	// The JSON policy document to use as the content for the policy.
	//
	// Policy is a required field
	Policy *string `locationName:"policy" min:"1" type:"string" required:"true"`

	// The type of policy.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"AccessPolicyType"`
}

// 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 CreateAccessPolicyInput) 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 CreateAccessPolicyInput) GoString() string {
	return s.String()
}

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

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

// SetClientToken sets the ClientToken field's value.
func (s *CreateAccessPolicyInput) SetClientToken(v string) *CreateAccessPolicyInput {
	s.ClientToken = &v
	return s
}

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

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

// SetPolicy sets the Policy field's value.
func (s *CreateAccessPolicyInput) SetPolicy(v string) *CreateAccessPolicyInput {
	s.Policy = &v
	return s
}

// SetType sets the Type field's value.
func (s *CreateAccessPolicyInput) SetType(v string) *CreateAccessPolicyInput {
	s.Type = &v
	return s
}

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

	// Details about the created access policy.
	AccessPolicyDetail *AccessPolicyDetail `locationName:"accessPolicyDetail" 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 CreateAccessPolicyOutput) 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 CreateAccessPolicyOutput) GoString() string {
	return s.String()
}

// SetAccessPolicyDetail sets the AccessPolicyDetail field's value.
func (s *CreateAccessPolicyOutput) SetAccessPolicyDetail(v *AccessPolicyDetail) *CreateAccessPolicyOutput {
	s.AccessPolicyDetail = v
	return s
}

// Details about the created OpenSearch Serverless collection.
type CreateCollectionDetail struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the collection.
	Arn *string `locationName:"arn" type:"string"`

	// The Epoch time when the collection was created.
	CreatedDate *int64 `locationName:"createdDate" type:"long"`

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

	// The unique identifier of the collection.
	Id *string `locationName:"id" min:"3" type:"string"`

	// The Amazon Resource Name (ARN) of the KMS key with which to encrypt the collection.
	KmsKeyArn *string `locationName:"kmsKeyArn" type:"string"`

	// The date and time when the collection was last modified.
	LastModifiedDate *int64 `locationName:"lastModifiedDate" type:"long"`

	// The name of the collection.
	Name *string `locationName:"name" min:"3" type:"string"`

	// Creates details about an OpenSearch Serverless collection.
	StandbyReplicas *string `locationName:"standbyReplicas" type:"string" enum:"StandbyReplicas"`

	// The current status of the collection.
	Status *string `locationName:"status" type:"string" enum:"CollectionStatus"`

	// The type of collection.
	Type *string `locationName:"type" type:"string" enum:"CollectionType"`
}

// 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 CreateCollectionDetail) 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 CreateCollectionDetail) GoString() string {
	return s.String()
}

// SetArn sets the Arn field's value.
func (s *CreateCollectionDetail) SetArn(v string) *CreateCollectionDetail {
	s.Arn = &v
	return s
}

// SetCreatedDate sets the CreatedDate field's value.
func (s *CreateCollectionDetail) SetCreatedDate(v int64) *CreateCollectionDetail {
	s.CreatedDate = &v
	return s
}

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

// SetId sets the Id field's value.
func (s *CreateCollectionDetail) SetId(v string) *CreateCollectionDetail {
	s.Id = &v
	return s
}

// SetKmsKeyArn sets the KmsKeyArn field's value.
func (s *CreateCollectionDetail) SetKmsKeyArn(v string) *CreateCollectionDetail {
	s.KmsKeyArn = &v
	return s
}

// SetLastModifiedDate sets the LastModifiedDate field's value.
func (s *CreateCollectionDetail) SetLastModifiedDate(v int64) *CreateCollectionDetail {
	s.LastModifiedDate = &v
	return s
}

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

// SetStandbyReplicas sets the StandbyReplicas field's value.
func (s *CreateCollectionDetail) SetStandbyReplicas(v string) *CreateCollectionDetail {
	s.StandbyReplicas = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *CreateCollectionDetail) SetStatus(v string) *CreateCollectionDetail {
	s.Status = &v
	return s
}

// SetType sets the Type field's value.
func (s *CreateCollectionDetail) SetType(v string) *CreateCollectionDetail {
	s.Type = &v
	return s
}

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

	// Unique, case-sensitive identifier to ensure idempotency of the request.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// Description of the collection.
	Description *string `locationName:"description" type:"string"`

	// Name of the collection.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"3" type:"string" required:"true"`

	// Indicates whether standby replicas should be used for a collection.
	StandbyReplicas *string `locationName:"standbyReplicas" type:"string" enum:"StandbyReplicas"`

	// An arbitrary set of tags (key–value pairs) to associate with the OpenSearch
	// Serverless collection.
	Tags []*Tag `locationName:"tags" type:"list"`

	// The type of collection.
	Type *string `locationName:"type" type:"string" enum:"CollectionType"`
}

// 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 CreateCollectionInput) 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 CreateCollectionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateCollectionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateCollectionInput"}
	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 3 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

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

// SetClientToken sets the ClientToken field's value.
func (s *CreateCollectionInput) SetClientToken(v string) *CreateCollectionInput {
	s.ClientToken = &v
	return s
}

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

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

// SetStandbyReplicas sets the StandbyReplicas field's value.
func (s *CreateCollectionInput) SetStandbyReplicas(v string) *CreateCollectionInput {
	s.StandbyReplicas = &v
	return s
}

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

// SetType sets the Type field's value.
func (s *CreateCollectionInput) SetType(v string) *CreateCollectionInput {
	s.Type = &v
	return s
}

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

	// Details about the collection.
	CreateCollectionDetail *CreateCollectionDetail `locationName:"createCollectionDetail" 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 CreateCollectionOutput) 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 CreateCollectionOutput) GoString() string {
	return s.String()
}

// SetCreateCollectionDetail sets the CreateCollectionDetail field's value.
func (s *CreateCollectionOutput) SetCreateCollectionDetail(v *CreateCollectionDetail) *CreateCollectionOutput {
	s.CreateCollectionDetail = v
	return s
}

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

	// A unique, case-sensitive identifier to ensure idempotency of the request.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// A description of the lifecycle policy.
	Description *string `locationName:"description" type:"string"`

	// The name of the lifecycle policy.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"3" type:"string" required:"true"`

	// The JSON policy document to use as the content for the lifecycle policy.
	//
	// Policy is a required field
	Policy *string `locationName:"policy" min:"1" type:"string" required:"true"`

	// The type of lifecycle policy.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"LifecyclePolicyType"`
}

// 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 CreateLifecyclePolicyInput) 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 CreateLifecyclePolicyInput) GoString() string {
	return s.String()
}

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

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

// SetClientToken sets the ClientToken field's value.
func (s *CreateLifecyclePolicyInput) SetClientToken(v string) *CreateLifecyclePolicyInput {
	s.ClientToken = &v
	return s
}

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

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

// SetPolicy sets the Policy field's value.
func (s *CreateLifecyclePolicyInput) SetPolicy(v string) *CreateLifecyclePolicyInput {
	s.Policy = &v
	return s
}

// SetType sets the Type field's value.
func (s *CreateLifecyclePolicyInput) SetType(v string) *CreateLifecyclePolicyInput {
	s.Type = &v
	return s
}

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

	// Details about the created lifecycle policy.
	LifecyclePolicyDetail *LifecyclePolicyDetail `locationName:"lifecyclePolicyDetail" 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 CreateLifecyclePolicyOutput) 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 CreateLifecyclePolicyOutput) GoString() string {
	return s.String()
}

// SetLifecyclePolicyDetail sets the LifecyclePolicyDetail field's value.
func (s *CreateLifecyclePolicyOutput) SetLifecyclePolicyDetail(v *LifecyclePolicyDetail) *CreateLifecyclePolicyOutput {
	s.LifecyclePolicyDetail = v
	return s
}

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

	// Unique, case-sensitive identifier to ensure idempotency of the request.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// A description of the security configuration.
	Description *string `locationName:"description" min:"1" type:"string"`

	// The name of the security configuration.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"3" type:"string" required:"true"`

	// Describes SAML options in in the form of a key-value map. This field is required
	// if you specify saml for the type parameter.
	SamlOptions *SamlConfigOptions `locationName:"samlOptions" type:"structure"`

	// The type of security configuration.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"SecurityConfigType"`
}

// 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 CreateSecurityConfigInput) 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 CreateSecurityConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateSecurityConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateSecurityConfigInput"}
	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
	}
	if s.Description != nil && len(*s.Description) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 3 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 3))
	}
	if s.Type == nil {
		invalidParams.Add(request.NewErrParamRequired("Type"))
	}
	if s.SamlOptions != nil {
		if err := s.SamlOptions.Validate(); err != nil {
			invalidParams.AddNested("SamlOptions", err.(request.ErrInvalidParams))
		}
	}

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

// SetClientToken sets the ClientToken field's value.
func (s *CreateSecurityConfigInput) SetClientToken(v string) *CreateSecurityConfigInput {
	s.ClientToken = &v
	return s
}

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

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

// SetSamlOptions sets the SamlOptions field's value.
func (s *CreateSecurityConfigInput) SetSamlOptions(v *SamlConfigOptions) *CreateSecurityConfigInput {
	s.SamlOptions = v
	return s
}

// SetType sets the Type field's value.
func (s *CreateSecurityConfigInput) SetType(v string) *CreateSecurityConfigInput {
	s.Type = &v
	return s
}

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

	// Details about the created security configuration.
	SecurityConfigDetail *SecurityConfigDetail `locationName:"securityConfigDetail" 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 CreateSecurityConfigOutput) 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 CreateSecurityConfigOutput) GoString() string {
	return s.String()
}

// SetSecurityConfigDetail sets the SecurityConfigDetail field's value.
func (s *CreateSecurityConfigOutput) SetSecurityConfigDetail(v *SecurityConfigDetail) *CreateSecurityConfigOutput {
	s.SecurityConfigDetail = v
	return s
}

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

	// Unique, case-sensitive identifier to ensure idempotency of the request.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// A description of the policy. Typically used to store information about the
	// permissions defined in the policy.
	Description *string `locationName:"description" type:"string"`

	// The name of the policy.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"3" type:"string" required:"true"`

	// The JSON policy document to use as the content for the new policy.
	//
	// Policy is a required field
	Policy *string `locationName:"policy" min:"1" type:"string" required:"true"`

	// The type of security policy.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"SecurityPolicyType"`
}

// 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 CreateSecurityPolicyInput) 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 CreateSecurityPolicyInput) GoString() string {
	return s.String()
}

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

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

// SetClientToken sets the ClientToken field's value.
func (s *CreateSecurityPolicyInput) SetClientToken(v string) *CreateSecurityPolicyInput {
	s.ClientToken = &v
	return s
}

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

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

// SetPolicy sets the Policy field's value.
func (s *CreateSecurityPolicyInput) SetPolicy(v string) *CreateSecurityPolicyInput {
	s.Policy = &v
	return s
}

// SetType sets the Type field's value.
func (s *CreateSecurityPolicyInput) SetType(v string) *CreateSecurityPolicyInput {
	s.Type = &v
	return s
}

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

	// Details about the created security policy.
	SecurityPolicyDetail *SecurityPolicyDetail `locationName:"securityPolicyDetail" 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 CreateSecurityPolicyOutput) 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 CreateSecurityPolicyOutput) GoString() string {
	return s.String()
}

// SetSecurityPolicyDetail sets the SecurityPolicyDetail field's value.
func (s *CreateSecurityPolicyOutput) SetSecurityPolicyDetail(v *SecurityPolicyDetail) *CreateSecurityPolicyOutput {
	s.SecurityPolicyDetail = v
	return s
}

// Creation details for an OpenSearch Serverless-managed interface endpoint.
// For more information, see Access Amazon OpenSearch Serverless using an interface
// endpoint (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-vpc.html).
type CreateVpcEndpointDetail struct {
	_ struct{} `type:"structure"`

	// The unique identifier of the endpoint.
	Id *string `locationName:"id" min:"1" type:"string"`

	// The name of the endpoint.
	Name *string `locationName:"name" min:"3" type:"string"`

	// The current status in the endpoint creation process.
	Status *string `locationName:"status" type:"string" enum:"VpcEndpointStatus"`
}

// 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 CreateVpcEndpointDetail) 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 CreateVpcEndpointDetail) GoString() string {
	return s.String()
}

// SetId sets the Id field's value.
func (s *CreateVpcEndpointDetail) SetId(v string) *CreateVpcEndpointDetail {
	s.Id = &v
	return s
}

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

// SetStatus sets the Status field's value.
func (s *CreateVpcEndpointDetail) SetStatus(v string) *CreateVpcEndpointDetail {
	s.Status = &v
	return s
}

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

	// Unique, case-sensitive identifier to ensure idempotency of the request.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// The name of the interface endpoint.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"3" type:"string" required:"true"`

	// The unique identifiers of the security groups that define the ports, protocols,
	// and sources for inbound traffic that you are authorizing into your endpoint.
	SecurityGroupIds []*string `locationName:"securityGroupIds" min:"1" type:"list"`

	// The ID of one or more subnets from which you'll access OpenSearch Serverless.
	//
	// SubnetIds is a required field
	SubnetIds []*string `locationName:"subnetIds" min:"1" type:"list" required:"true"`

	// The ID of the VPC from which you'll access OpenSearch Serverless.
	//
	// VpcId is a required field
	VpcId *string `locationName:"vpcId" 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 CreateVpcEndpointInput) 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 CreateVpcEndpointInput) GoString() string {
	return s.String()
}

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

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

// SetClientToken sets the ClientToken field's value.
func (s *CreateVpcEndpointInput) SetClientToken(v string) *CreateVpcEndpointInput {
	s.ClientToken = &v
	return s
}

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

// SetSecurityGroupIds sets the SecurityGroupIds field's value.
func (s *CreateVpcEndpointInput) SetSecurityGroupIds(v []*string) *CreateVpcEndpointInput {
	s.SecurityGroupIds = v
	return s
}

// SetSubnetIds sets the SubnetIds field's value.
func (s *CreateVpcEndpointInput) SetSubnetIds(v []*string) *CreateVpcEndpointInput {
	s.SubnetIds = v
	return s
}

// SetVpcId sets the VpcId field's value.
func (s *CreateVpcEndpointInput) SetVpcId(v string) *CreateVpcEndpointInput {
	s.VpcId = &v
	return s
}

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

	// Details about the created interface VPC endpoint.
	CreateVpcEndpointDetail *CreateVpcEndpointDetail `locationName:"createVpcEndpointDetail" 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 CreateVpcEndpointOutput) 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 CreateVpcEndpointOutput) GoString() string {
	return s.String()
}

// SetCreateVpcEndpointDetail sets the CreateVpcEndpointDetail field's value.
func (s *CreateVpcEndpointOutput) SetCreateVpcEndpointDetail(v *CreateVpcEndpointDetail) *CreateVpcEndpointOutput {
	s.CreateVpcEndpointDetail = v
	return s
}

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

	// Unique, case-sensitive identifier to ensure idempotency of the request.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// The name of the policy to delete.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"3" type:"string" required:"true"`

	// The type of policy.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"AccessPolicyType"`
}

// 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 DeleteAccessPolicyInput) 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 DeleteAccessPolicyInput) GoString() string {
	return s.String()
}

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

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

// SetClientToken sets the ClientToken field's value.
func (s *DeleteAccessPolicyInput) SetClientToken(v string) *DeleteAccessPolicyInput {
	s.ClientToken = &v
	return s
}

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

// SetType sets the Type field's value.
func (s *DeleteAccessPolicyInput) SetType(v string) *DeleteAccessPolicyInput {
	s.Type = &v
	return s
}

type DeleteAccessPolicyOutput 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 DeleteAccessPolicyOutput) 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 DeleteAccessPolicyOutput) GoString() string {
	return s.String()
}

// Details about a deleted OpenSearch Serverless collection.
type DeleteCollectionDetail struct {
	_ struct{} `type:"structure"`

	// The unique identifier of the collection.
	Id *string `locationName:"id" min:"3" type:"string"`

	// The name of the collection.
	Name *string `locationName:"name" min:"3" type:"string"`

	// The current status of the collection.
	Status *string `locationName:"status" type:"string" enum:"CollectionStatus"`
}

// 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 DeleteCollectionDetail) 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 DeleteCollectionDetail) GoString() string {
	return s.String()
}

// SetId sets the Id field's value.
func (s *DeleteCollectionDetail) SetId(v string) *DeleteCollectionDetail {
	s.Id = &v
	return s
}

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

// SetStatus sets the Status field's value.
func (s *DeleteCollectionDetail) SetStatus(v string) *DeleteCollectionDetail {
	s.Status = &v
	return s
}

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

	// A unique, case-sensitive identifier to ensure idempotency of the request.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// The unique identifier of the collection. For example, 1iu5usc406kd. The ID
	// is part of the collection endpoint. You can also retrieve it using the ListCollections
	// (https://docs.aws.amazon.com/opensearch-service/latest/ServerlessAPIReference/API_ListCollections.html)
	// API.
	//
	// Id is a required field
	Id *string `locationName:"id" min:"3" 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 DeleteCollectionInput) 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 DeleteCollectionInput) GoString() string {
	return s.String()
}

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

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

// SetClientToken sets the ClientToken field's value.
func (s *DeleteCollectionInput) SetClientToken(v string) *DeleteCollectionInput {
	s.ClientToken = &v
	return s
}

// SetId sets the Id field's value.
func (s *DeleteCollectionInput) SetId(v string) *DeleteCollectionInput {
	s.Id = &v
	return s
}

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

	// Details of the deleted collection.
	DeleteCollectionDetail *DeleteCollectionDetail `locationName:"deleteCollectionDetail" 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 DeleteCollectionOutput) 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 DeleteCollectionOutput) GoString() string {
	return s.String()
}

// SetDeleteCollectionDetail sets the DeleteCollectionDetail field's value.
func (s *DeleteCollectionOutput) SetDeleteCollectionDetail(v *DeleteCollectionDetail) *DeleteCollectionOutput {
	s.DeleteCollectionDetail = v
	return s
}

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

	// Unique, case-sensitive identifier to ensure idempotency of the request.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// The name of the policy to delete.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"3" type:"string" required:"true"`

	// The type of lifecycle policy.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"LifecyclePolicyType"`
}

// 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 DeleteLifecyclePolicyInput) 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 DeleteLifecyclePolicyInput) GoString() string {
	return s.String()
}

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

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

// SetClientToken sets the ClientToken field's value.
func (s *DeleteLifecyclePolicyInput) SetClientToken(v string) *DeleteLifecyclePolicyInput {
	s.ClientToken = &v
	return s
}

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

// SetType sets the Type field's value.
func (s *DeleteLifecyclePolicyInput) SetType(v string) *DeleteLifecyclePolicyInput {
	s.Type = &v
	return s
}

type DeleteLifecyclePolicyOutput 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 DeleteLifecyclePolicyOutput) 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 DeleteLifecyclePolicyOutput) GoString() string {
	return s.String()
}

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

	// Unique, case-sensitive identifier to ensure idempotency of the request.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// The security configuration identifier. For SAML the ID will be saml/<accountId>/<idpProviderName>.
	// For example, saml/123456789123/OKTADev.
	//
	// Id is a required field
	Id *string `locationName:"id" 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 DeleteSecurityConfigInput) 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 DeleteSecurityConfigInput) GoString() string {
	return s.String()
}

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

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

// SetClientToken sets the ClientToken field's value.
func (s *DeleteSecurityConfigInput) SetClientToken(v string) *DeleteSecurityConfigInput {
	s.ClientToken = &v
	return s
}

// SetId sets the Id field's value.
func (s *DeleteSecurityConfigInput) SetId(v string) *DeleteSecurityConfigInput {
	s.Id = &v
	return s
}

type DeleteSecurityConfigOutput 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 DeleteSecurityConfigOutput) 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 DeleteSecurityConfigOutput) GoString() string {
	return s.String()
}

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

	// Unique, case-sensitive identifier to ensure idempotency of the request.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// The name of the policy to delete.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"3" type:"string" required:"true"`

	// The type of policy.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"SecurityPolicyType"`
}

// 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 DeleteSecurityPolicyInput) 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 DeleteSecurityPolicyInput) GoString() string {
	return s.String()
}

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

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

// SetClientToken sets the ClientToken field's value.
func (s *DeleteSecurityPolicyInput) SetClientToken(v string) *DeleteSecurityPolicyInput {
	s.ClientToken = &v
	return s
}

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

// SetType sets the Type field's value.
func (s *DeleteSecurityPolicyInput) SetType(v string) *DeleteSecurityPolicyInput {
	s.Type = &v
	return s
}

type DeleteSecurityPolicyOutput 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 DeleteSecurityPolicyOutput) 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 DeleteSecurityPolicyOutput) GoString() string {
	return s.String()
}

// Deletion details for an OpenSearch Serverless-managed interface endpoint.
type DeleteVpcEndpointDetail struct {
	_ struct{} `type:"structure"`

	// The unique identifier of the endpoint.
	Id *string `locationName:"id" min:"1" type:"string"`

	// The name of the endpoint.
	Name *string `locationName:"name" min:"3" type:"string"`

	// The current status of the endpoint deletion process.
	Status *string `locationName:"status" type:"string" enum:"VpcEndpointStatus"`
}

// 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 DeleteVpcEndpointDetail) 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 DeleteVpcEndpointDetail) GoString() string {
	return s.String()
}

// SetId sets the Id field's value.
func (s *DeleteVpcEndpointDetail) SetId(v string) *DeleteVpcEndpointDetail {
	s.Id = &v
	return s
}

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

// SetStatus sets the Status field's value.
func (s *DeleteVpcEndpointDetail) SetStatus(v string) *DeleteVpcEndpointDetail {
	s.Status = &v
	return s
}

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

	// Unique, case-sensitive identifier to ensure idempotency of the request.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// The VPC endpoint identifier.
	//
	// Id is a required field
	Id *string `locationName:"id" 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 DeleteVpcEndpointInput) 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 DeleteVpcEndpointInput) GoString() string {
	return s.String()
}

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

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

// SetClientToken sets the ClientToken field's value.
func (s *DeleteVpcEndpointInput) SetClientToken(v string) *DeleteVpcEndpointInput {
	s.ClientToken = &v
	return s
}

// SetId sets the Id field's value.
func (s *DeleteVpcEndpointInput) SetId(v string) *DeleteVpcEndpointInput {
	s.Id = &v
	return s
}

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

	// Details about the deleted endpoint.
	DeleteVpcEndpointDetail *DeleteVpcEndpointDetail `locationName:"deleteVpcEndpointDetail" 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 DeleteVpcEndpointOutput) 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 DeleteVpcEndpointOutput) GoString() string {
	return s.String()
}

// SetDeleteVpcEndpointDetail sets the DeleteVpcEndpointDetail field's value.
func (s *DeleteVpcEndpointOutput) SetDeleteVpcEndpointDetail(v *DeleteVpcEndpointDetail) *DeleteVpcEndpointOutput {
	s.DeleteVpcEndpointDetail = v
	return s
}

// Error information for an OpenSearch Serverless request.
type EffectiveLifecyclePolicyDetail struct {
	_ struct{} `type:"structure"`

	// The minimum number of index retention days set. That is an optional param
	// that will return as true if the minimum number of days or hours is not set
	// to a index resource.
	NoMinRetentionPeriod *bool `locationName:"noMinRetentionPeriod" type:"boolean"`

	// The name of the lifecycle policy.
	PolicyName *string `locationName:"policyName" min:"3" type:"string"`

	// The name of the OpenSearch Serverless index resource.
	Resource *string `locationName:"resource" type:"string"`

	// The type of OpenSearch Serverless resource. Currently, the only supported
	// resource is index.
	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`

	// The minimum number of index retention in days or hours. This is an optional
	// parameter that will return only if it’s set.
	RetentionPeriod *string `locationName:"retentionPeriod" type:"string"`

	// The type of lifecycle policy.
	Type *string `locationName:"type" type:"string" enum:"LifecyclePolicyType"`
}

// 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 EffectiveLifecyclePolicyDetail) 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 EffectiveLifecyclePolicyDetail) GoString() string {
	return s.String()
}

// SetNoMinRetentionPeriod sets the NoMinRetentionPeriod field's value.
func (s *EffectiveLifecyclePolicyDetail) SetNoMinRetentionPeriod(v bool) *EffectiveLifecyclePolicyDetail {
	s.NoMinRetentionPeriod = &v
	return s
}

// SetPolicyName sets the PolicyName field's value.
func (s *EffectiveLifecyclePolicyDetail) SetPolicyName(v string) *EffectiveLifecyclePolicyDetail {
	s.PolicyName = &v
	return s
}

// SetResource sets the Resource field's value.
func (s *EffectiveLifecyclePolicyDetail) SetResource(v string) *EffectiveLifecyclePolicyDetail {
	s.Resource = &v
	return s
}

// SetResourceType sets the ResourceType field's value.
func (s *EffectiveLifecyclePolicyDetail) SetResourceType(v string) *EffectiveLifecyclePolicyDetail {
	s.ResourceType = &v
	return s
}

// SetRetentionPeriod sets the RetentionPeriod field's value.
func (s *EffectiveLifecyclePolicyDetail) SetRetentionPeriod(v string) *EffectiveLifecyclePolicyDetail {
	s.RetentionPeriod = &v
	return s
}

// SetType sets the Type field's value.
func (s *EffectiveLifecyclePolicyDetail) SetType(v string) *EffectiveLifecyclePolicyDetail {
	s.Type = &v
	return s
}

// Error information for an OpenSearch Serverless request.
type EffectiveLifecyclePolicyErrorDetail struct {
	_ struct{} `type:"structure"`

	// The error code for the request.
	ErrorCode *string `locationName:"errorCode" type:"string"`

	// A description of the error. For example, The specified Index resource is
	// not found.
	ErrorMessage *string `locationName:"errorMessage" type:"string"`

	// The name of OpenSearch Serverless index resource.
	Resource *string `locationName:"resource" type:"string"`

	// The type of lifecycle policy.
	Type *string `locationName:"type" type:"string" enum:"LifecyclePolicyType"`
}

// 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 EffectiveLifecyclePolicyErrorDetail) 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 EffectiveLifecyclePolicyErrorDetail) GoString() string {
	return s.String()
}

// SetErrorCode sets the ErrorCode field's value.
func (s *EffectiveLifecyclePolicyErrorDetail) SetErrorCode(v string) *EffectiveLifecyclePolicyErrorDetail {
	s.ErrorCode = &v
	return s
}

// SetErrorMessage sets the ErrorMessage field's value.
func (s *EffectiveLifecyclePolicyErrorDetail) SetErrorMessage(v string) *EffectiveLifecyclePolicyErrorDetail {
	s.ErrorMessage = &v
	return s
}

// SetResource sets the Resource field's value.
func (s *EffectiveLifecyclePolicyErrorDetail) SetResource(v string) *EffectiveLifecyclePolicyErrorDetail {
	s.Resource = &v
	return s
}

// SetType sets the Type field's value.
func (s *EffectiveLifecyclePolicyErrorDetail) SetType(v string) *EffectiveLifecyclePolicyErrorDetail {
	s.Type = &v
	return s
}

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

	// The name of the access policy.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"3" type:"string" required:"true"`

	// Tye type of policy. Currently, the only supported value is data.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"AccessPolicyType"`
}

// 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 GetAccessPolicyInput) 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 GetAccessPolicyInput) GoString() string {
	return s.String()
}

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

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

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

// SetType sets the Type field's value.
func (s *GetAccessPolicyInput) SetType(v string) *GetAccessPolicyInput {
	s.Type = &v
	return s
}

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

	// Details about the requested access policy.
	AccessPolicyDetail *AccessPolicyDetail `locationName:"accessPolicyDetail" 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 GetAccessPolicyOutput) 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 GetAccessPolicyOutput) GoString() string {
	return s.String()
}

// SetAccessPolicyDetail sets the AccessPolicyDetail field's value.
func (s *GetAccessPolicyOutput) SetAccessPolicyDetail(v *AccessPolicyDetail) *GetAccessPolicyOutput {
	s.AccessPolicyDetail = v
	return s
}

type GetAccountSettingsInput 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 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"`

	// OpenSearch Serverless-related details for the current account.
	AccountSettingsDetail *AccountSettingsDetail `locationName:"accountSettingsDetail" 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()
}

// SetAccountSettingsDetail sets the AccountSettingsDetail field's value.
func (s *GetAccountSettingsOutput) SetAccountSettingsDetail(v *AccountSettingsDetail) *GetAccountSettingsOutput {
	s.AccountSettingsDetail = v
	return s
}

type GetPoliciesStatsInput 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 GetPoliciesStatsInput) 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 GetPoliciesStatsInput) GoString() string {
	return s.String()
}

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

	// Information about the data access policies in your account.
	AccessPolicyStats *AccessPolicyStats `type:"structure"`

	// Information about the lifecycle policies in your account.
	LifecyclePolicyStats *LifecyclePolicyStats `type:"structure"`

	// Information about the security configurations in your account.
	SecurityConfigStats *SecurityConfigStats `type:"structure"`

	// Information about the security policies in your account.
	SecurityPolicyStats *SecurityPolicyStats `type:"structure"`

	// The total number of OpenSearch Serverless security policies and configurations
	// in your account.
	TotalPolicyCount *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 GetPoliciesStatsOutput) 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 GetPoliciesStatsOutput) GoString() string {
	return s.String()
}

// SetAccessPolicyStats sets the AccessPolicyStats field's value.
func (s *GetPoliciesStatsOutput) SetAccessPolicyStats(v *AccessPolicyStats) *GetPoliciesStatsOutput {
	s.AccessPolicyStats = v
	return s
}

// SetLifecyclePolicyStats sets the LifecyclePolicyStats field's value.
func (s *GetPoliciesStatsOutput) SetLifecyclePolicyStats(v *LifecyclePolicyStats) *GetPoliciesStatsOutput {
	s.LifecyclePolicyStats = v
	return s
}

// SetSecurityConfigStats sets the SecurityConfigStats field's value.
func (s *GetPoliciesStatsOutput) SetSecurityConfigStats(v *SecurityConfigStats) *GetPoliciesStatsOutput {
	s.SecurityConfigStats = v
	return s
}

// SetSecurityPolicyStats sets the SecurityPolicyStats field's value.
func (s *GetPoliciesStatsOutput) SetSecurityPolicyStats(v *SecurityPolicyStats) *GetPoliciesStatsOutput {
	s.SecurityPolicyStats = v
	return s
}

// SetTotalPolicyCount sets the TotalPolicyCount field's value.
func (s *GetPoliciesStatsOutput) SetTotalPolicyCount(v int64) *GetPoliciesStatsOutput {
	s.TotalPolicyCount = &v
	return s
}

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

	// The unique identifier of the security configuration.
	//
	// Id is a required field
	Id *string `locationName:"id" 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 GetSecurityConfigInput) 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 GetSecurityConfigInput) GoString() string {
	return s.String()
}

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

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

// SetId sets the Id field's value.
func (s *GetSecurityConfigInput) SetId(v string) *GetSecurityConfigInput {
	s.Id = &v
	return s
}

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

	// Details of the requested security configuration.
	SecurityConfigDetail *SecurityConfigDetail `locationName:"securityConfigDetail" 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 GetSecurityConfigOutput) 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 GetSecurityConfigOutput) GoString() string {
	return s.String()
}

// SetSecurityConfigDetail sets the SecurityConfigDetail field's value.
func (s *GetSecurityConfigOutput) SetSecurityConfigDetail(v *SecurityConfigDetail) *GetSecurityConfigOutput {
	s.SecurityConfigDetail = v
	return s
}

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

	// The name of the security policy.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"3" type:"string" required:"true"`

	// The type of security policy.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"SecurityPolicyType"`
}

// 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 GetSecurityPolicyInput) 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 GetSecurityPolicyInput) GoString() string {
	return s.String()
}

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

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

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

// SetType sets the Type field's value.
func (s *GetSecurityPolicyInput) SetType(v string) *GetSecurityPolicyInput {
	s.Type = &v
	return s
}

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

	// Details about the requested security policy.
	SecurityPolicyDetail *SecurityPolicyDetail `locationName:"securityPolicyDetail" 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 GetSecurityPolicyOutput) 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 GetSecurityPolicyOutput) GoString() string {
	return s.String()
}

// SetSecurityPolicyDetail sets the SecurityPolicyDetail field's value.
func (s *GetSecurityPolicyOutput) SetSecurityPolicyDetail(v *SecurityPolicyDetail) *GetSecurityPolicyOutput {
	s.SecurityPolicyDetail = v
	return s
}

// Thrown when an error internal to the service occurs while processing a request.
type InternalServerException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

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

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InternalServerException) 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 InternalServerException) GoString() string {
	return s.String()
}

func newErrorInternalServerException(v protocol.ResponseMetadata) error {
	return &InternalServerException{
		RespMetadata: v,
	}
}

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

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

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

func (s *InternalServerException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

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

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

// Details about an OpenSearch Serverless lifecycle policy.
type LifecyclePolicyDetail struct {
	_ struct{} `type:"structure"`

	// The date the lifecycle policy was created.
	CreatedDate *int64 `locationName:"createdDate" type:"long"`

	// The description of the lifecycle policy.
	Description *string `locationName:"description" type:"string"`

	// The timestamp of when the lifecycle policy was last modified.
	LastModifiedDate *int64 `locationName:"lastModifiedDate" type:"long"`

	// The name of the lifecycle policy.
	Name *string `locationName:"name" min:"3" type:"string"`

	// The version of the lifecycle policy.
	PolicyVersion *string `locationName:"policyVersion" min:"20" type:"string"`

	// The type of lifecycle policy.
	Type *string `locationName:"type" type:"string" enum:"LifecyclePolicyType"`
}

// 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 LifecyclePolicyDetail) 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 LifecyclePolicyDetail) GoString() string {
	return s.String()
}

// SetCreatedDate sets the CreatedDate field's value.
func (s *LifecyclePolicyDetail) SetCreatedDate(v int64) *LifecyclePolicyDetail {
	s.CreatedDate = &v
	return s
}

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

// SetLastModifiedDate sets the LastModifiedDate field's value.
func (s *LifecyclePolicyDetail) SetLastModifiedDate(v int64) *LifecyclePolicyDetail {
	s.LastModifiedDate = &v
	return s
}

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

// SetPolicyVersion sets the PolicyVersion field's value.
func (s *LifecyclePolicyDetail) SetPolicyVersion(v string) *LifecyclePolicyDetail {
	s.PolicyVersion = &v
	return s
}

// SetType sets the Type field's value.
func (s *LifecyclePolicyDetail) SetType(v string) *LifecyclePolicyDetail {
	s.Type = &v
	return s
}

// Error information for an OpenSearch Serverless request.
type LifecyclePolicyErrorDetail struct {
	_ struct{} `type:"structure"`

	// The error code for the request. For example, NOT_FOUND.
	ErrorCode *string `locationName:"errorCode" type:"string"`

	// A description of the error. For example, The specified Lifecycle Policy is
	// not found.
	ErrorMessage *string `locationName:"errorMessage" type:"string"`

	// The name of the lifecycle policy.
	Name *string `locationName:"name" min:"3" type:"string"`

	// The type of lifecycle policy.
	Type *string `locationName:"type" type:"string" enum:"LifecyclePolicyType"`
}

// 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 LifecyclePolicyErrorDetail) 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 LifecyclePolicyErrorDetail) GoString() string {
	return s.String()
}

// SetErrorCode sets the ErrorCode field's value.
func (s *LifecyclePolicyErrorDetail) SetErrorCode(v string) *LifecyclePolicyErrorDetail {
	s.ErrorCode = &v
	return s
}

// SetErrorMessage sets the ErrorMessage field's value.
func (s *LifecyclePolicyErrorDetail) SetErrorMessage(v string) *LifecyclePolicyErrorDetail {
	s.ErrorMessage = &v
	return s
}

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

// SetType sets the Type field's value.
func (s *LifecyclePolicyErrorDetail) SetType(v string) *LifecyclePolicyErrorDetail {
	s.Type = &v
	return s
}

// The unique identifiers of policy types and policy names.
type LifecyclePolicyIdentifier struct {
	_ struct{} `type:"structure"`

	// The name of the lifecycle policy.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"3" type:"string" required:"true"`

	// The type of lifecycle policy.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"LifecyclePolicyType"`
}

// 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 LifecyclePolicyIdentifier) 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 LifecyclePolicyIdentifier) GoString() string {
	return s.String()
}

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

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

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

// SetType sets the Type field's value.
func (s *LifecyclePolicyIdentifier) SetType(v string) *LifecyclePolicyIdentifier {
	s.Type = &v
	return s
}

// The unique identifiers of policy types and resource names.
type LifecyclePolicyResourceIdentifier struct {
	_ struct{} `type:"structure"`

	// The name of the OpenSearch Serverless ilndex resource.
	//
	// Resource is a required field
	Resource *string `locationName:"resource" type:"string" required:"true"`

	// The type of lifecycle policy.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"LifecyclePolicyType"`
}

// 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 LifecyclePolicyResourceIdentifier) 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 LifecyclePolicyResourceIdentifier) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *LifecyclePolicyResourceIdentifier) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "LifecyclePolicyResourceIdentifier"}
	if s.Resource == nil {
		invalidParams.Add(request.NewErrParamRequired("Resource"))
	}
	if s.Type == nil {
		invalidParams.Add(request.NewErrParamRequired("Type"))
	}

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

// SetResource sets the Resource field's value.
func (s *LifecyclePolicyResourceIdentifier) SetResource(v string) *LifecyclePolicyResourceIdentifier {
	s.Resource = &v
	return s
}

// SetType sets the Type field's value.
func (s *LifecyclePolicyResourceIdentifier) SetType(v string) *LifecyclePolicyResourceIdentifier {
	s.Type = &v
	return s
}

// Statistics for an OpenSearch Serverless lifecycle policy.
type LifecyclePolicyStats struct {
	_ struct{} `type:"structure"`

	// The number of retention lifecycle policies in the current account.
	RetentionPolicyCount *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 LifecyclePolicyStats) 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 LifecyclePolicyStats) GoString() string {
	return s.String()
}

// SetRetentionPolicyCount sets the RetentionPolicyCount field's value.
func (s *LifecyclePolicyStats) SetRetentionPolicyCount(v int64) *LifecyclePolicyStats {
	s.RetentionPolicyCount = &v
	return s
}

// A summary of the lifecycle policy.
type LifecyclePolicySummary struct {
	_ struct{} `type:"structure"`

	// The Epoch time when the lifecycle policy was created.
	CreatedDate *int64 `locationName:"createdDate" type:"long"`

	// The description of the lifecycle policy.
	Description *string `locationName:"description" type:"string"`

	// The date and time when the lifecycle policy was last modified.
	LastModifiedDate *int64 `locationName:"lastModifiedDate" type:"long"`

	// The name of the lifecycle policy.
	Name *string `locationName:"name" min:"3" type:"string"`

	// The version of the lifecycle policy.
	PolicyVersion *string `locationName:"policyVersion" min:"20" type:"string"`

	// The type of lifecycle policy.
	Type *string `locationName:"type" type:"string" enum:"LifecyclePolicyType"`
}

// 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 LifecyclePolicySummary) 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 LifecyclePolicySummary) GoString() string {
	return s.String()
}

// SetCreatedDate sets the CreatedDate field's value.
func (s *LifecyclePolicySummary) SetCreatedDate(v int64) *LifecyclePolicySummary {
	s.CreatedDate = &v
	return s
}

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

// SetLastModifiedDate sets the LastModifiedDate field's value.
func (s *LifecyclePolicySummary) SetLastModifiedDate(v int64) *LifecyclePolicySummary {
	s.LastModifiedDate = &v
	return s
}

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

// SetPolicyVersion sets the PolicyVersion field's value.
func (s *LifecyclePolicySummary) SetPolicyVersion(v string) *LifecyclePolicySummary {
	s.PolicyVersion = &v
	return s
}

// SetType sets the Type field's value.
func (s *LifecyclePolicySummary) SetType(v string) *LifecyclePolicySummary {
	s.Type = &v
	return s
}

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

	// An optional parameter that specifies the maximum number of results to return.
	// You can use nextToken to get the next page of results. The default is 20.
	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`

	// If your initial ListAccessPolicies operation returns a nextToken, you can
	// include the returned nextToken in subsequent ListAccessPolicies operations,
	// which returns results in the next page.
	NextToken *string `locationName:"nextToken" type:"string"`

	// Resource filters (can be collections or indexes) that policies can apply
	// to.
	Resource []*string `locationName:"resource" min:"1" type:"list"`

	// The type of access policy.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"AccessPolicyType"`
}

// 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 ListAccessPoliciesInput) 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 ListAccessPoliciesInput) GoString() string {
	return s.String()
}

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

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

// SetMaxResults sets the MaxResults field's value.
func (s *ListAccessPoliciesInput) SetMaxResults(v int64) *ListAccessPoliciesInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAccessPoliciesInput) SetNextToken(v string) *ListAccessPoliciesInput {
	s.NextToken = &v
	return s
}

// SetResource sets the Resource field's value.
func (s *ListAccessPoliciesInput) SetResource(v []*string) *ListAccessPoliciesInput {
	s.Resource = v
	return s
}

// SetType sets the Type field's value.
func (s *ListAccessPoliciesInput) SetType(v string) *ListAccessPoliciesInput {
	s.Type = &v
	return s
}

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

	// Details about the requested access policies.
	AccessPolicySummaries []*AccessPolicySummary `locationName:"accessPolicySummaries" type:"list"`

	// When nextToken is returned, there are more results available. The value of
	// nextToken is a unique pagination token for each page. Make the call again
	// using the returned token to retrieve the next page.
	NextToken *string `locationName:"nextToken" 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 ListAccessPoliciesOutput) 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 ListAccessPoliciesOutput) GoString() string {
	return s.String()
}

// SetAccessPolicySummaries sets the AccessPolicySummaries field's value.
func (s *ListAccessPoliciesOutput) SetAccessPolicySummaries(v []*AccessPolicySummary) *ListAccessPoliciesOutput {
	s.AccessPolicySummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAccessPoliciesOutput) SetNextToken(v string) *ListAccessPoliciesOutput {
	s.NextToken = &v
	return s
}

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

	// A list of filter names and values that you can use for requests.
	CollectionFilters *CollectionFilters `locationName:"collectionFilters" type:"structure"`

	// The maximum number of results to return. Default is 20. You can use nextToken
	// to get the next page of results.
	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`

	// If your initial ListCollections operation returns a nextToken, you can include
	// the returned nextToken in subsequent ListCollections operations, which returns
	// results in the next page.
	NextToken *string `locationName:"nextToken" 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 ListCollectionsInput) 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 ListCollectionsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListCollectionsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListCollectionsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.CollectionFilters != nil {
		if err := s.CollectionFilters.Validate(); err != nil {
			invalidParams.AddNested("CollectionFilters", err.(request.ErrInvalidParams))
		}
	}

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

// SetCollectionFilters sets the CollectionFilters field's value.
func (s *ListCollectionsInput) SetCollectionFilters(v *CollectionFilters) *ListCollectionsInput {
	s.CollectionFilters = v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListCollectionsInput) SetMaxResults(v int64) *ListCollectionsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListCollectionsInput) SetNextToken(v string) *ListCollectionsInput {
	s.NextToken = &v
	return s
}

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

	// Details about each collection.
	CollectionSummaries []*CollectionSummary `locationName:"collectionSummaries" type:"list"`

	// When nextToken is returned, there are more results available. The value of
	// nextToken is a unique pagination token for each page. Make the call again
	// using the returned token to retrieve the next page.
	NextToken *string `locationName:"nextToken" 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 ListCollectionsOutput) 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 ListCollectionsOutput) GoString() string {
	return s.String()
}

// SetCollectionSummaries sets the CollectionSummaries field's value.
func (s *ListCollectionsOutput) SetCollectionSummaries(v []*CollectionSummary) *ListCollectionsOutput {
	s.CollectionSummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListCollectionsOutput) SetNextToken(v string) *ListCollectionsOutput {
	s.NextToken = &v
	return s
}

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

	// An optional parameter that specifies the maximum number of results to return.
	// You can use use nextToken to get the next page of results. The default is
	// 10.
	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`

	// If your initial ListLifecyclePolicies operation returns a nextToken, you
	// can include the returned nextToken in subsequent ListLifecyclePolicies operations,
	// which returns results in the next page.
	NextToken *string `locationName:"nextToken" type:"string"`

	// Resource filters that policies can apply to. Currently, the only supported
	// resource type is index.
	Resources []*string `locationName:"resources" min:"1" type:"list"`

	// The type of lifecycle policy.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"LifecyclePolicyType"`
}

// 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 ListLifecyclePoliciesInput) 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 ListLifecyclePoliciesInput) GoString() string {
	return s.String()
}

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

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

// SetMaxResults sets the MaxResults field's value.
func (s *ListLifecyclePoliciesInput) SetMaxResults(v int64) *ListLifecyclePoliciesInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListLifecyclePoliciesInput) SetNextToken(v string) *ListLifecyclePoliciesInput {
	s.NextToken = &v
	return s
}

// SetResources sets the Resources field's value.
func (s *ListLifecyclePoliciesInput) SetResources(v []*string) *ListLifecyclePoliciesInput {
	s.Resources = v
	return s
}

// SetType sets the Type field's value.
func (s *ListLifecyclePoliciesInput) SetType(v string) *ListLifecyclePoliciesInput {
	s.Type = &v
	return s
}

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

	// Details about the requested lifecycle policies.
	LifecyclePolicySummaries []*LifecyclePolicySummary `locationName:"lifecyclePolicySummaries" type:"list"`

	// When nextToken is returned, there are more results available. The value of
	// nextToken is a unique pagination token for each page. Make the call again
	// using the returned token to retrieve the next page.
	NextToken *string `locationName:"nextToken" 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 ListLifecyclePoliciesOutput) 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 ListLifecyclePoliciesOutput) GoString() string {
	return s.String()
}

// SetLifecyclePolicySummaries sets the LifecyclePolicySummaries field's value.
func (s *ListLifecyclePoliciesOutput) SetLifecyclePolicySummaries(v []*LifecyclePolicySummary) *ListLifecyclePoliciesOutput {
	s.LifecyclePolicySummaries = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListLifecyclePoliciesOutput) SetNextToken(v string) *ListLifecyclePoliciesOutput {
	s.NextToken = &v
	return s
}

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

	// An optional parameter that specifies the maximum number of results to return.
	// You can use nextToken to get the next page of results. The default is 20.
	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`

	// If your initial ListSecurityConfigs operation returns a nextToken, you can
	// include the returned nextToken in subsequent ListSecurityConfigs operations,
	// which returns results in the next page.
	NextToken *string `locationName:"nextToken" type:"string"`

	// The type of security configuration.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"SecurityConfigType"`
}

// 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 ListSecurityConfigsInput) 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 ListSecurityConfigsInput) GoString() string {
	return s.String()
}

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

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

// SetMaxResults sets the MaxResults field's value.
func (s *ListSecurityConfigsInput) SetMaxResults(v int64) *ListSecurityConfigsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListSecurityConfigsInput) SetNextToken(v string) *ListSecurityConfigsInput {
	s.NextToken = &v
	return s
}

// SetType sets the Type field's value.
func (s *ListSecurityConfigsInput) SetType(v string) *ListSecurityConfigsInput {
	s.Type = &v
	return s
}

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

	// When nextToken is returned, there are more results available. The value of
	// nextToken is a unique pagination token for each page. Make the call again
	// using the returned token to retrieve the next page.
	NextToken *string `locationName:"nextToken" type:"string"`

	// Details about the security configurations in your account.
	SecurityConfigSummaries []*SecurityConfigSummary `locationName:"securityConfigSummaries" 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 ListSecurityConfigsOutput) 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 ListSecurityConfigsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListSecurityConfigsOutput) SetNextToken(v string) *ListSecurityConfigsOutput {
	s.NextToken = &v
	return s
}

// SetSecurityConfigSummaries sets the SecurityConfigSummaries field's value.
func (s *ListSecurityConfigsOutput) SetSecurityConfigSummaries(v []*SecurityConfigSummary) *ListSecurityConfigsOutput {
	s.SecurityConfigSummaries = v
	return s
}

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

	// An optional parameter that specifies the maximum number of results to return.
	// You can use nextToken to get the next page of results. The default is 20.
	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`

	// If your initial ListSecurityPolicies operation returns a nextToken, you can
	// include the returned nextToken in subsequent ListSecurityPolicies operations,
	// which returns results in the next page.
	NextToken *string `locationName:"nextToken" type:"string"`

	// Resource filters (can be collection or indexes) that policies can apply to.
	Resource []*string `locationName:"resource" min:"1" type:"list"`

	// The type of policy.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"SecurityPolicyType"`
}

// 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 ListSecurityPoliciesInput) 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 ListSecurityPoliciesInput) GoString() string {
	return s.String()
}

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

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

// SetMaxResults sets the MaxResults field's value.
func (s *ListSecurityPoliciesInput) SetMaxResults(v int64) *ListSecurityPoliciesInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListSecurityPoliciesInput) SetNextToken(v string) *ListSecurityPoliciesInput {
	s.NextToken = &v
	return s
}

// SetResource sets the Resource field's value.
func (s *ListSecurityPoliciesInput) SetResource(v []*string) *ListSecurityPoliciesInput {
	s.Resource = v
	return s
}

// SetType sets the Type field's value.
func (s *ListSecurityPoliciesInput) SetType(v string) *ListSecurityPoliciesInput {
	s.Type = &v
	return s
}

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

	// When nextToken is returned, there are more results available. The value of
	// nextToken is a unique pagination token for each page. Make the call again
	// using the returned token to retrieve the next page.
	NextToken *string `locationName:"nextToken" type:"string"`

	// Details about the security policies in your account.
	SecurityPolicySummaries []*SecurityPolicySummary `locationName:"securityPolicySummaries" 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 ListSecurityPoliciesOutput) 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 ListSecurityPoliciesOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListSecurityPoliciesOutput) SetNextToken(v string) *ListSecurityPoliciesOutput {
	s.NextToken = &v
	return s
}

// SetSecurityPolicySummaries sets the SecurityPolicySummaries field's value.
func (s *ListSecurityPoliciesOutput) SetSecurityPolicySummaries(v []*SecurityPolicySummary) *ListSecurityPoliciesOutput {
	s.SecurityPolicySummaries = v
	return s
}

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

	// The Amazon Resource Name (ARN) of the resource. The resource must be active
	// (not in the DELETING state), and must be owned by the account ID included
	// in the request.
	//
	// ResourceArn is a required field
	ResourceArn *string `locationName:"resourceArn" 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 ListTagsForResourceInput) 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 ListTagsForResourceInput) GoString() string {
	return s.String()
}

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

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

// SetResourceArn sets the ResourceArn field's value.
func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
	s.ResourceArn = &v
	return s
}

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

	// The tags associated with the resource.
	Tags []*Tag `locationName:"tags" 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 ListTagsForResourceOutput) 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 ListTagsForResourceOutput) GoString() string {
	return s.String()
}

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

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

	// An optional parameter that specifies the maximum number of results to return.
	// You can use nextToken to get the next page of results. The default is 20.
	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`

	// If your initial ListVpcEndpoints operation returns a nextToken, you can include
	// the returned nextToken in subsequent ListVpcEndpoints operations, which returns
	// results in the next page.
	NextToken *string `locationName:"nextToken" type:"string"`

	// Filter the results according to the current status of the VPC endpoint. Possible
	// statuses are CREATING, DELETING, UPDATING, ACTIVE, and FAILED.
	VpcEndpointFilters *VpcEndpointFilters `locationName:"vpcEndpointFilters" 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 ListVpcEndpointsInput) 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 ListVpcEndpointsInput) GoString() string {
	return s.String()
}

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

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

// SetMaxResults sets the MaxResults field's value.
func (s *ListVpcEndpointsInput) SetMaxResults(v int64) *ListVpcEndpointsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListVpcEndpointsInput) SetNextToken(v string) *ListVpcEndpointsInput {
	s.NextToken = &v
	return s
}

// SetVpcEndpointFilters sets the VpcEndpointFilters field's value.
func (s *ListVpcEndpointsInput) SetVpcEndpointFilters(v *VpcEndpointFilters) *ListVpcEndpointsInput {
	s.VpcEndpointFilters = v
	return s
}

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

	// When nextToken is returned, there are more results available. The value of
	// nextToken is a unique pagination token for each page. Make the call again
	// using the returned token to retrieve the next page.
	NextToken *string `locationName:"nextToken" type:"string"`

	// Details about each VPC endpoint, including the name and current status.
	VpcEndpointSummaries []*VpcEndpointSummary `locationName:"vpcEndpointSummaries" 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 ListVpcEndpointsOutput) 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 ListVpcEndpointsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListVpcEndpointsOutput) SetNextToken(v string) *ListVpcEndpointsOutput {
	s.NextToken = &v
	return s
}

// SetVpcEndpointSummaries sets the VpcEndpointSummaries field's value.
func (s *ListVpcEndpointsOutput) SetVpcEndpointSummaries(v []*VpcEndpointSummary) *ListVpcEndpointsOutput {
	s.VpcEndpointSummaries = v
	return s
}

// Thrown when the collection you're attempting to create results in a number
// of search or indexing OCUs that exceeds the account limit.
type OcuLimitExceededException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	// Description of the error.
	Message_ *string `locationName:"message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s OcuLimitExceededException) 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 OcuLimitExceededException) GoString() string {
	return s.String()
}

func newErrorOcuLimitExceededException(v protocol.ResponseMetadata) error {
	return &OcuLimitExceededException{
		RespMetadata: v,
	}
}

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

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

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

func (s *OcuLimitExceededException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

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

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

// Thrown when accessing or deleting a resource that does not exist.
type ResourceNotFoundException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

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

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s 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", s.Code(), s.Message())
}

// 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
}

// Describes SAML options for an OpenSearch Serverless security configuration
// in the form of a key-value map.
type SamlConfigOptions struct {
	_ struct{} `type:"structure"`

	// The group attribute for this SAML integration.
	GroupAttribute *string `locationName:"groupAttribute" min:"1" type:"string"`

	// The XML IdP metadata file generated from your identity provider.
	//
	// Metadata is a required field
	Metadata *string `locationName:"metadata" min:"1" type:"string" required:"true"`

	// The session timeout, in minutes. Default is 60 minutes (12 hours).
	SessionTimeout *int64 `locationName:"sessionTimeout" min:"5" type:"integer"`

	// A user attribute for this SAML integration.
	UserAttribute *string `locationName:"userAttribute" 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 SamlConfigOptions) 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 SamlConfigOptions) GoString() string {
	return s.String()
}

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

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

// SetGroupAttribute sets the GroupAttribute field's value.
func (s *SamlConfigOptions) SetGroupAttribute(v string) *SamlConfigOptions {
	s.GroupAttribute = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *SamlConfigOptions) SetMetadata(v string) *SamlConfigOptions {
	s.Metadata = &v
	return s
}

// SetSessionTimeout sets the SessionTimeout field's value.
func (s *SamlConfigOptions) SetSessionTimeout(v int64) *SamlConfigOptions {
	s.SessionTimeout = &v
	return s
}

// SetUserAttribute sets the UserAttribute field's value.
func (s *SamlConfigOptions) SetUserAttribute(v string) *SamlConfigOptions {
	s.UserAttribute = &v
	return s
}

// Details about a security configuration for OpenSearch Serverless.
type SecurityConfigDetail struct {
	_ struct{} `type:"structure"`

	// The version of the security configuration.
	ConfigVersion *string `locationName:"configVersion" min:"20" type:"string"`

	// The date the configuration was created.
	CreatedDate *int64 `locationName:"createdDate" type:"long"`

	// The description of the security configuration.
	Description *string `locationName:"description" min:"1" type:"string"`

	// The unique identifier of the security configuration.
	Id *string `locationName:"id" min:"1" type:"string"`

	// The timestamp of when the configuration was last modified.
	LastModifiedDate *int64 `locationName:"lastModifiedDate" type:"long"`

	// SAML options for the security configuration in the form of a key-value map.
	SamlOptions *SamlConfigOptions `locationName:"samlOptions" type:"structure"`

	// The type of security configuration.
	Type *string `locationName:"type" type:"string" enum:"SecurityConfigType"`
}

// 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 SecurityConfigDetail) 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 SecurityConfigDetail) GoString() string {
	return s.String()
}

// SetConfigVersion sets the ConfigVersion field's value.
func (s *SecurityConfigDetail) SetConfigVersion(v string) *SecurityConfigDetail {
	s.ConfigVersion = &v
	return s
}

// SetCreatedDate sets the CreatedDate field's value.
func (s *SecurityConfigDetail) SetCreatedDate(v int64) *SecurityConfigDetail {
	s.CreatedDate = &v
	return s
}

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

// SetId sets the Id field's value.
func (s *SecurityConfigDetail) SetId(v string) *SecurityConfigDetail {
	s.Id = &v
	return s
}

// SetLastModifiedDate sets the LastModifiedDate field's value.
func (s *SecurityConfigDetail) SetLastModifiedDate(v int64) *SecurityConfigDetail {
	s.LastModifiedDate = &v
	return s
}

// SetSamlOptions sets the SamlOptions field's value.
func (s *SecurityConfigDetail) SetSamlOptions(v *SamlConfigOptions) *SecurityConfigDetail {
	s.SamlOptions = v
	return s
}

// SetType sets the Type field's value.
func (s *SecurityConfigDetail) SetType(v string) *SecurityConfigDetail {
	s.Type = &v
	return s
}

// Statistics for an OpenSearch Serverless security configuration.
type SecurityConfigStats struct {
	_ struct{} `type:"structure"`

	// The number of security configurations in the current account.
	SamlConfigCount *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 SecurityConfigStats) 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 SecurityConfigStats) GoString() string {
	return s.String()
}

// SetSamlConfigCount sets the SamlConfigCount field's value.
func (s *SecurityConfigStats) SetSamlConfigCount(v int64) *SecurityConfigStats {
	s.SamlConfigCount = &v
	return s
}

// A summary of a security configuration for OpenSearch Serverless.
type SecurityConfigSummary struct {
	_ struct{} `type:"structure"`

	// The version of the security configuration.
	ConfigVersion *string `locationName:"configVersion" min:"20" type:"string"`

	// The Epoch time when the security configuration was created.
	CreatedDate *int64 `locationName:"createdDate" type:"long"`

	// The description of the security configuration.
	Description *string `locationName:"description" min:"1" type:"string"`

	// The unique identifier of the security configuration.
	Id *string `locationName:"id" min:"1" type:"string"`

	// The timestamp of when the configuration was last modified.
	LastModifiedDate *int64 `locationName:"lastModifiedDate" type:"long"`

	// The type of security configuration.
	Type *string `locationName:"type" type:"string" enum:"SecurityConfigType"`
}

// 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 SecurityConfigSummary) 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 SecurityConfigSummary) GoString() string {
	return s.String()
}

// SetConfigVersion sets the ConfigVersion field's value.
func (s *SecurityConfigSummary) SetConfigVersion(v string) *SecurityConfigSummary {
	s.ConfigVersion = &v
	return s
}

// SetCreatedDate sets the CreatedDate field's value.
func (s *SecurityConfigSummary) SetCreatedDate(v int64) *SecurityConfigSummary {
	s.CreatedDate = &v
	return s
}

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

// SetId sets the Id field's value.
func (s *SecurityConfigSummary) SetId(v string) *SecurityConfigSummary {
	s.Id = &v
	return s
}

// SetLastModifiedDate sets the LastModifiedDate field's value.
func (s *SecurityConfigSummary) SetLastModifiedDate(v int64) *SecurityConfigSummary {
	s.LastModifiedDate = &v
	return s
}

// SetType sets the Type field's value.
func (s *SecurityConfigSummary) SetType(v string) *SecurityConfigSummary {
	s.Type = &v
	return s
}

// Details about an OpenSearch Serverless security policy.
type SecurityPolicyDetail struct {
	_ struct{} `type:"structure"`

	// The date the policy was created.
	CreatedDate *int64 `locationName:"createdDate" type:"long"`

	// The description of the security policy.
	Description *string `locationName:"description" type:"string"`

	// The timestamp of when the policy was last modified.
	LastModifiedDate *int64 `locationName:"lastModifiedDate" type:"long"`

	// The name of the policy.
	Name *string `locationName:"name" min:"3" type:"string"`

	// The version of the policy.
	PolicyVersion *string `locationName:"policyVersion" min:"20" type:"string"`

	// The type of security policy.
	Type *string `locationName:"type" type:"string" enum:"SecurityPolicyType"`
}

// 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 SecurityPolicyDetail) 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 SecurityPolicyDetail) GoString() string {
	return s.String()
}

// SetCreatedDate sets the CreatedDate field's value.
func (s *SecurityPolicyDetail) SetCreatedDate(v int64) *SecurityPolicyDetail {
	s.CreatedDate = &v
	return s
}

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

// SetLastModifiedDate sets the LastModifiedDate field's value.
func (s *SecurityPolicyDetail) SetLastModifiedDate(v int64) *SecurityPolicyDetail {
	s.LastModifiedDate = &v
	return s
}

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

// SetPolicyVersion sets the PolicyVersion field's value.
func (s *SecurityPolicyDetail) SetPolicyVersion(v string) *SecurityPolicyDetail {
	s.PolicyVersion = &v
	return s
}

// SetType sets the Type field's value.
func (s *SecurityPolicyDetail) SetType(v string) *SecurityPolicyDetail {
	s.Type = &v
	return s
}

// Statistics for an OpenSearch Serverless security policy.
type SecurityPolicyStats struct {
	_ struct{} `type:"structure"`

	// The number of encryption policies in the current account.
	EncryptionPolicyCount *int64 `type:"long"`

	// The number of network policies in the current account.
	NetworkPolicyCount *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 SecurityPolicyStats) 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 SecurityPolicyStats) GoString() string {
	return s.String()
}

// SetEncryptionPolicyCount sets the EncryptionPolicyCount field's value.
func (s *SecurityPolicyStats) SetEncryptionPolicyCount(v int64) *SecurityPolicyStats {
	s.EncryptionPolicyCount = &v
	return s
}

// SetNetworkPolicyCount sets the NetworkPolicyCount field's value.
func (s *SecurityPolicyStats) SetNetworkPolicyCount(v int64) *SecurityPolicyStats {
	s.NetworkPolicyCount = &v
	return s
}

// A summary of a security policy for OpenSearch Serverless.
type SecurityPolicySummary struct {
	_ struct{} `type:"structure"`

	// The date the policy was created.
	CreatedDate *int64 `locationName:"createdDate" type:"long"`

	// The description of the security policy.
	Description *string `locationName:"description" type:"string"`

	// The timestamp of when the policy was last modified.
	LastModifiedDate *int64 `locationName:"lastModifiedDate" type:"long"`

	// The name of the policy.
	Name *string `locationName:"name" min:"3" type:"string"`

	// The version of the policy.
	PolicyVersion *string `locationName:"policyVersion" min:"20" type:"string"`

	// The type of security policy.
	Type *string `locationName:"type" type:"string" enum:"SecurityPolicyType"`
}

// 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 SecurityPolicySummary) 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 SecurityPolicySummary) GoString() string {
	return s.String()
}

// SetCreatedDate sets the CreatedDate field's value.
func (s *SecurityPolicySummary) SetCreatedDate(v int64) *SecurityPolicySummary {
	s.CreatedDate = &v
	return s
}

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

// SetLastModifiedDate sets the LastModifiedDate field's value.
func (s *SecurityPolicySummary) SetLastModifiedDate(v int64) *SecurityPolicySummary {
	s.LastModifiedDate = &v
	return s
}

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

// SetPolicyVersion sets the PolicyVersion field's value.
func (s *SecurityPolicySummary) SetPolicyVersion(v string) *SecurityPolicySummary {
	s.PolicyVersion = &v
	return s
}

// SetType sets the Type field's value.
func (s *SecurityPolicySummary) SetType(v string) *SecurityPolicySummary {
	s.Type = &v
	return s
}

// Thrown when you attempt to create more resources than the service allows
// based on service quotas.
type ServiceQuotaExceededException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	// Description of the error.
	Message_ *string `locationName:"message" type:"string"`

	// Service Quotas requirement to identify originating quota.
	QuotaCode *string `locationName:"quotaCode" type:"string"`

	// Identifier of the resource affected.
	ResourceId *string `locationName:"resourceId" type:"string"`

	// Type of the resource affected.
	ResourceType *string `locationName:"resourceType" type:"string"`

	// Service Quotas requirement to identify originating service.
	//
	// ServiceCode is a required field
	ServiceCode *string `locationName:"serviceCode" 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 ServiceQuotaExceededException) 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 ServiceQuotaExceededException) GoString() string {
	return s.String()
}

func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error {
	return &ServiceQuotaExceededException{
		RespMetadata: v,
	}
}

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

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

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

func (s *ServiceQuotaExceededException) 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 *ServiceQuotaExceededException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

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

// A map of key-value pairs associated to an OpenSearch Serverless resource.
type Tag struct {
	_ struct{} `type:"structure"`

	// The key to use in the tag.
	//
	// Key is a required field
	Key *string `locationName:"key" min:"1" type:"string" required:"true"`

	// The value of the tag.
	//
	// Value is a required field
	Value *string `locationName:"value" type:"string" required:"true"`
}

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

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

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

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

// SetKey sets the Key field's value.
func (s *Tag) SetKey(v string) *Tag {
	s.Key = &v
	return s
}

// SetValue sets the Value field's value.
func (s *Tag) SetValue(v string) *Tag {
	s.Value = &v
	return s
}

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

	// The Amazon Resource Name (ARN) of the resource. The resource must be active
	// (not in the DELETING state), and must be owned by the account ID included
	// in the request.
	//
	// ResourceArn is a required field
	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"`

	// A list of tags (key-value pairs) to add to the resource. All tag keys in
	// the request must be unique.
	//
	// Tags is a required field
	Tags []*Tag `locationName:"tags" 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 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.ResourceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
	}
	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
	}
	if s.Tags == nil {
		invalidParams.Add(request.NewErrParamRequired("Tags"))
	}
	if s.Tags != nil {
		for i, v := range s.Tags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
			}
		}
	}

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

// SetResourceArn sets the ResourceArn field's value.
func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
	s.ResourceArn = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *TagResourceInput) SetTags(v []*Tag) *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()
}

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

	// The Amazon Resource Name (ARN) of the resource to remove tags from. The resource
	// must be active (not in the DELETING state), and must be owned by the account
	// ID included in the request.
	//
	// ResourceArn is a required field
	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"`

	// The tag or set of tags to remove from the resource. All tag keys in the request
	// must be unique.
	//
	// TagKeys is a required field
	TagKeys []*string `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.ResourceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
	}
	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
	}
	if s.TagKeys == nil {
		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
	}

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

// SetResourceArn sets the ResourceArn field's value.
func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
	s.ResourceArn = &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 UpdateAccessPolicyInput struct {
	_ struct{} `type:"structure"`

	// Unique, case-sensitive identifier to ensure idempotency of the request.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// A description of the policy. Typically used to store information about the
	// permissions defined in the policy.
	Description *string `locationName:"description" type:"string"`

	// The name of the policy.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"3" type:"string" required:"true"`

	// The JSON policy document to use as the content for the policy.
	Policy *string `locationName:"policy" min:"1" type:"string"`

	// The version of the policy being updated.
	//
	// PolicyVersion is a required field
	PolicyVersion *string `locationName:"policyVersion" min:"20" type:"string" required:"true"`

	// The type of policy.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"AccessPolicyType"`
}

// 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 UpdateAccessPolicyInput) 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 UpdateAccessPolicyInput) GoString() string {
	return s.String()
}

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

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

// SetClientToken sets the ClientToken field's value.
func (s *UpdateAccessPolicyInput) SetClientToken(v string) *UpdateAccessPolicyInput {
	s.ClientToken = &v
	return s
}

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

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

// SetPolicy sets the Policy field's value.
func (s *UpdateAccessPolicyInput) SetPolicy(v string) *UpdateAccessPolicyInput {
	s.Policy = &v
	return s
}

// SetPolicyVersion sets the PolicyVersion field's value.
func (s *UpdateAccessPolicyInput) SetPolicyVersion(v string) *UpdateAccessPolicyInput {
	s.PolicyVersion = &v
	return s
}

// SetType sets the Type field's value.
func (s *UpdateAccessPolicyInput) SetType(v string) *UpdateAccessPolicyInput {
	s.Type = &v
	return s
}

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

	// Details about the updated access policy.
	AccessPolicyDetail *AccessPolicyDetail `locationName:"accessPolicyDetail" 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 UpdateAccessPolicyOutput) 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 UpdateAccessPolicyOutput) GoString() string {
	return s.String()
}

// SetAccessPolicyDetail sets the AccessPolicyDetail field's value.
func (s *UpdateAccessPolicyOutput) SetAccessPolicyDetail(v *AccessPolicyDetail) *UpdateAccessPolicyOutput {
	s.AccessPolicyDetail = v
	return s
}

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

	// The maximum capacity limits for all OpenSearch Serverless collections, in
	// OpenSearch Compute Units (OCUs). These limits are used to scale your collections
	// based on the current workload. For more information, see Managing capacity
	// limits for Amazon OpenSearch Serverless (https://docs.aws.amazon.com/opensearch-service/latest/developerguide/serverless-scaling.html).
	CapacityLimits *CapacityLimits `locationName:"capacityLimits" 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 UpdateAccountSettingsInput) 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 UpdateAccountSettingsInput) GoString() string {
	return s.String()
}

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

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

// SetCapacityLimits sets the CapacityLimits field's value.
func (s *UpdateAccountSettingsInput) SetCapacityLimits(v *CapacityLimits) *UpdateAccountSettingsInput {
	s.CapacityLimits = v
	return s
}

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

	// OpenSearch Serverless-related settings for the current Amazon Web Services
	// account.
	AccountSettingsDetail *AccountSettingsDetail `locationName:"accountSettingsDetail" 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 UpdateAccountSettingsOutput) 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 UpdateAccountSettingsOutput) GoString() string {
	return s.String()
}

// SetAccountSettingsDetail sets the AccountSettingsDetail field's value.
func (s *UpdateAccountSettingsOutput) SetAccountSettingsDetail(v *AccountSettingsDetail) *UpdateAccountSettingsOutput {
	s.AccountSettingsDetail = v
	return s
}

// Details about an updated OpenSearch Serverless collection.
type UpdateCollectionDetail struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the collection.
	Arn *string `locationName:"arn" type:"string"`

	// The date and time when the collection was created.
	CreatedDate *int64 `locationName:"createdDate" type:"long"`

	// The description of the collection.
	Description *string `locationName:"description" type:"string"`

	// The unique identifier of the collection.
	Id *string `locationName:"id" min:"3" type:"string"`

	// The date and time when the collection was last modified.
	LastModifiedDate *int64 `locationName:"lastModifiedDate" type:"long"`

	// The name of the collection.
	Name *string `locationName:"name" min:"3" type:"string"`

	// The current status of the collection.
	Status *string `locationName:"status" type:"string" enum:"CollectionStatus"`

	// The collection type.
	Type *string `locationName:"type" type:"string" enum:"CollectionType"`
}

// 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 UpdateCollectionDetail) 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 UpdateCollectionDetail) GoString() string {
	return s.String()
}

// SetArn sets the Arn field's value.
func (s *UpdateCollectionDetail) SetArn(v string) *UpdateCollectionDetail {
	s.Arn = &v
	return s
}

// SetCreatedDate sets the CreatedDate field's value.
func (s *UpdateCollectionDetail) SetCreatedDate(v int64) *UpdateCollectionDetail {
	s.CreatedDate = &v
	return s
}

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

// SetId sets the Id field's value.
func (s *UpdateCollectionDetail) SetId(v string) *UpdateCollectionDetail {
	s.Id = &v
	return s
}

// SetLastModifiedDate sets the LastModifiedDate field's value.
func (s *UpdateCollectionDetail) SetLastModifiedDate(v int64) *UpdateCollectionDetail {
	s.LastModifiedDate = &v
	return s
}

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

// SetStatus sets the Status field's value.
func (s *UpdateCollectionDetail) SetStatus(v string) *UpdateCollectionDetail {
	s.Status = &v
	return s
}

// SetType sets the Type field's value.
func (s *UpdateCollectionDetail) SetType(v string) *UpdateCollectionDetail {
	s.Type = &v
	return s
}

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

	// Unique, case-sensitive identifier to ensure idempotency of the request.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

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

	// The unique identifier of the collection.
	//
	// Id is a required field
	Id *string `locationName:"id" min:"3" 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 UpdateCollectionInput) 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 UpdateCollectionInput) GoString() string {
	return s.String()
}

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

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

// SetClientToken sets the ClientToken field's value.
func (s *UpdateCollectionInput) SetClientToken(v string) *UpdateCollectionInput {
	s.ClientToken = &v
	return s
}

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

// SetId sets the Id field's value.
func (s *UpdateCollectionInput) SetId(v string) *UpdateCollectionInput {
	s.Id = &v
	return s
}

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

	// Details about the updated collection.
	UpdateCollectionDetail *UpdateCollectionDetail `locationName:"updateCollectionDetail" 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 UpdateCollectionOutput) 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 UpdateCollectionOutput) GoString() string {
	return s.String()
}

// SetUpdateCollectionDetail sets the UpdateCollectionDetail field's value.
func (s *UpdateCollectionOutput) SetUpdateCollectionDetail(v *UpdateCollectionDetail) *UpdateCollectionOutput {
	s.UpdateCollectionDetail = v
	return s
}

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

	// A unique, case-sensitive identifier to ensure idempotency of the request.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// A description of the lifecycle policy.
	Description *string `locationName:"description" type:"string"`

	// The name of the policy.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"3" type:"string" required:"true"`

	// The JSON policy document to use as the content for the lifecycle policy.
	Policy *string `locationName:"policy" min:"1" type:"string"`

	// The version of the policy being updated.
	//
	// PolicyVersion is a required field
	PolicyVersion *string `locationName:"policyVersion" min:"20" type:"string" required:"true"`

	// The type of lifecycle policy.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"LifecyclePolicyType"`
}

// 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 UpdateLifecyclePolicyInput) 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 UpdateLifecyclePolicyInput) GoString() string {
	return s.String()
}

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

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

// SetClientToken sets the ClientToken field's value.
func (s *UpdateLifecyclePolicyInput) SetClientToken(v string) *UpdateLifecyclePolicyInput {
	s.ClientToken = &v
	return s
}

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

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

// SetPolicy sets the Policy field's value.
func (s *UpdateLifecyclePolicyInput) SetPolicy(v string) *UpdateLifecyclePolicyInput {
	s.Policy = &v
	return s
}

// SetPolicyVersion sets the PolicyVersion field's value.
func (s *UpdateLifecyclePolicyInput) SetPolicyVersion(v string) *UpdateLifecyclePolicyInput {
	s.PolicyVersion = &v
	return s
}

// SetType sets the Type field's value.
func (s *UpdateLifecyclePolicyInput) SetType(v string) *UpdateLifecyclePolicyInput {
	s.Type = &v
	return s
}

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

	// Details about the updated lifecycle policy.
	LifecyclePolicyDetail *LifecyclePolicyDetail `locationName:"lifecyclePolicyDetail" 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 UpdateLifecyclePolicyOutput) 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 UpdateLifecyclePolicyOutput) GoString() string {
	return s.String()
}

// SetLifecyclePolicyDetail sets the LifecyclePolicyDetail field's value.
func (s *UpdateLifecyclePolicyOutput) SetLifecyclePolicyDetail(v *LifecyclePolicyDetail) *UpdateLifecyclePolicyOutput {
	s.LifecyclePolicyDetail = v
	return s
}

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

	// Unique, case-sensitive identifier to ensure idempotency of the request.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// The version of the security configuration to be updated. You can find the
	// most recent version of a security configuration using the GetSecurityPolicy
	// command.
	//
	// ConfigVersion is a required field
	ConfigVersion *string `locationName:"configVersion" min:"20" type:"string" required:"true"`

	// A description of the security configuration.
	Description *string `locationName:"description" min:"1" type:"string"`

	// The security configuration identifier. For SAML the ID will be saml/<accountId>/<idpProviderName>.
	// For example, saml/123456789123/OKTADev.
	//
	// Id is a required field
	Id *string `locationName:"id" min:"1" type:"string" required:"true"`

	// SAML options in in the form of a key-value map.
	SamlOptions *SamlConfigOptions `locationName:"samlOptions" 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 UpdateSecurityConfigInput) 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 UpdateSecurityConfigInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateSecurityConfigInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateSecurityConfigInput"}
	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
	}
	if s.ConfigVersion == nil {
		invalidParams.Add(request.NewErrParamRequired("ConfigVersion"))
	}
	if s.ConfigVersion != nil && len(*s.ConfigVersion) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("ConfigVersion", 20))
	}
	if s.Description != nil && len(*s.Description) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
	}
	if s.Id == nil {
		invalidParams.Add(request.NewErrParamRequired("Id"))
	}
	if s.Id != nil && len(*s.Id) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
	}
	if s.SamlOptions != nil {
		if err := s.SamlOptions.Validate(); err != nil {
			invalidParams.AddNested("SamlOptions", err.(request.ErrInvalidParams))
		}
	}

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

// SetClientToken sets the ClientToken field's value.
func (s *UpdateSecurityConfigInput) SetClientToken(v string) *UpdateSecurityConfigInput {
	s.ClientToken = &v
	return s
}

// SetConfigVersion sets the ConfigVersion field's value.
func (s *UpdateSecurityConfigInput) SetConfigVersion(v string) *UpdateSecurityConfigInput {
	s.ConfigVersion = &v
	return s
}

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

// SetId sets the Id field's value.
func (s *UpdateSecurityConfigInput) SetId(v string) *UpdateSecurityConfigInput {
	s.Id = &v
	return s
}

// SetSamlOptions sets the SamlOptions field's value.
func (s *UpdateSecurityConfigInput) SetSamlOptions(v *SamlConfigOptions) *UpdateSecurityConfigInput {
	s.SamlOptions = v
	return s
}

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

	// Details about the updated security configuration.
	SecurityConfigDetail *SecurityConfigDetail `locationName:"securityConfigDetail" 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 UpdateSecurityConfigOutput) 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 UpdateSecurityConfigOutput) GoString() string {
	return s.String()
}

// SetSecurityConfigDetail sets the SecurityConfigDetail field's value.
func (s *UpdateSecurityConfigOutput) SetSecurityConfigDetail(v *SecurityConfigDetail) *UpdateSecurityConfigOutput {
	s.SecurityConfigDetail = v
	return s
}

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

	// Unique, case-sensitive identifier to ensure idempotency of the request.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// A description of the policy. Typically used to store information about the
	// permissions defined in the policy.
	Description *string `locationName:"description" type:"string"`

	// The name of the policy.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"3" type:"string" required:"true"`

	// The JSON policy document to use as the content for the new policy.
	Policy *string `locationName:"policy" min:"1" type:"string"`

	// The version of the policy being updated.
	//
	// PolicyVersion is a required field
	PolicyVersion *string `locationName:"policyVersion" min:"20" type:"string" required:"true"`

	// The type of access policy.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"SecurityPolicyType"`
}

// 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 UpdateSecurityPolicyInput) 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 UpdateSecurityPolicyInput) GoString() string {
	return s.String()
}

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

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

// SetClientToken sets the ClientToken field's value.
func (s *UpdateSecurityPolicyInput) SetClientToken(v string) *UpdateSecurityPolicyInput {
	s.ClientToken = &v
	return s
}

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

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

// SetPolicy sets the Policy field's value.
func (s *UpdateSecurityPolicyInput) SetPolicy(v string) *UpdateSecurityPolicyInput {
	s.Policy = &v
	return s
}

// SetPolicyVersion sets the PolicyVersion field's value.
func (s *UpdateSecurityPolicyInput) SetPolicyVersion(v string) *UpdateSecurityPolicyInput {
	s.PolicyVersion = &v
	return s
}

// SetType sets the Type field's value.
func (s *UpdateSecurityPolicyInput) SetType(v string) *UpdateSecurityPolicyInput {
	s.Type = &v
	return s
}

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

	// Details about the updated security policy.
	SecurityPolicyDetail *SecurityPolicyDetail `locationName:"securityPolicyDetail" 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 UpdateSecurityPolicyOutput) 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 UpdateSecurityPolicyOutput) GoString() string {
	return s.String()
}

// SetSecurityPolicyDetail sets the SecurityPolicyDetail field's value.
func (s *UpdateSecurityPolicyOutput) SetSecurityPolicyDetail(v *SecurityPolicyDetail) *UpdateSecurityPolicyOutput {
	s.SecurityPolicyDetail = v
	return s
}

// Update details for an OpenSearch Serverless-managed interface endpoint.
type UpdateVpcEndpointDetail struct {
	_ struct{} `type:"structure"`

	// The unique identifier of the endpoint.
	Id *string `locationName:"id" min:"1" type:"string"`

	// The timestamp of when the endpoint was last modified.
	LastModifiedDate *int64 `locationName:"lastModifiedDate" type:"long"`

	// The name of the endpoint.
	Name *string `locationName:"name" min:"3" type:"string"`

	// The unique identifiers of the security groups that define the ports, protocols,
	// and sources for inbound traffic that you are authorizing into your endpoint.
	SecurityGroupIds []*string `locationName:"securityGroupIds" min:"1" type:"list"`

	// The current status of the endpoint update process.
	Status *string `locationName:"status" type:"string" enum:"VpcEndpointStatus"`

	// The ID of the subnets from which you access OpenSearch Serverless.
	SubnetIds []*string `locationName:"subnetIds" min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateVpcEndpointDetail) 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 UpdateVpcEndpointDetail) GoString() string {
	return s.String()
}

// SetId sets the Id field's value.
func (s *UpdateVpcEndpointDetail) SetId(v string) *UpdateVpcEndpointDetail {
	s.Id = &v
	return s
}

// SetLastModifiedDate sets the LastModifiedDate field's value.
func (s *UpdateVpcEndpointDetail) SetLastModifiedDate(v int64) *UpdateVpcEndpointDetail {
	s.LastModifiedDate = &v
	return s
}

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

// SetSecurityGroupIds sets the SecurityGroupIds field's value.
func (s *UpdateVpcEndpointDetail) SetSecurityGroupIds(v []*string) *UpdateVpcEndpointDetail {
	s.SecurityGroupIds = v
	return s
}

// SetStatus sets the Status field's value.
func (s *UpdateVpcEndpointDetail) SetStatus(v string) *UpdateVpcEndpointDetail {
	s.Status = &v
	return s
}

// SetSubnetIds sets the SubnetIds field's value.
func (s *UpdateVpcEndpointDetail) SetSubnetIds(v []*string) *UpdateVpcEndpointDetail {
	s.SubnetIds = v
	return s
}

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

	// The unique identifiers of the security groups to add to the endpoint. Security
	// groups define the ports, protocols, and sources for inbound traffic that
	// you are authorizing into your endpoint.
	AddSecurityGroupIds []*string `locationName:"addSecurityGroupIds" min:"1" type:"list"`

	// The ID of one or more subnets to add to the endpoint.
	AddSubnetIds []*string `locationName:"addSubnetIds" min:"1" type:"list"`

	// Unique, case-sensitive identifier to ensure idempotency of the request.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// The unique identifier of the interface endpoint to update.
	//
	// Id is a required field
	Id *string `locationName:"id" min:"1" type:"string" required:"true"`

	// The unique identifiers of the security groups to remove from the endpoint.
	RemoveSecurityGroupIds []*string `locationName:"removeSecurityGroupIds" min:"1" type:"list"`

	// The unique identifiers of the subnets to remove from the endpoint.
	RemoveSubnetIds []*string `locationName:"removeSubnetIds" min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateVpcEndpointInput) 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 UpdateVpcEndpointInput) GoString() string {
	return s.String()
}

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

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

// SetAddSecurityGroupIds sets the AddSecurityGroupIds field's value.
func (s *UpdateVpcEndpointInput) SetAddSecurityGroupIds(v []*string) *UpdateVpcEndpointInput {
	s.AddSecurityGroupIds = v
	return s
}

// SetAddSubnetIds sets the AddSubnetIds field's value.
func (s *UpdateVpcEndpointInput) SetAddSubnetIds(v []*string) *UpdateVpcEndpointInput {
	s.AddSubnetIds = v
	return s
}

// SetClientToken sets the ClientToken field's value.
func (s *UpdateVpcEndpointInput) SetClientToken(v string) *UpdateVpcEndpointInput {
	s.ClientToken = &v
	return s
}

// SetId sets the Id field's value.
func (s *UpdateVpcEndpointInput) SetId(v string) *UpdateVpcEndpointInput {
	s.Id = &v
	return s
}

// SetRemoveSecurityGroupIds sets the RemoveSecurityGroupIds field's value.
func (s *UpdateVpcEndpointInput) SetRemoveSecurityGroupIds(v []*string) *UpdateVpcEndpointInput {
	s.RemoveSecurityGroupIds = v
	return s
}

// SetRemoveSubnetIds sets the RemoveSubnetIds field's value.
func (s *UpdateVpcEndpointInput) SetRemoveSubnetIds(v []*string) *UpdateVpcEndpointInput {
	s.RemoveSubnetIds = v
	return s
}

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

	// Details about the updated VPC endpoint.
	UpdateVpcEndpointDetail *UpdateVpcEndpointDetail `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 UpdateVpcEndpointOutput) 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 UpdateVpcEndpointOutput) GoString() string {
	return s.String()
}

// SetUpdateVpcEndpointDetail sets the UpdateVpcEndpointDetail field's value.
func (s *UpdateVpcEndpointOutput) SetUpdateVpcEndpointDetail(v *UpdateVpcEndpointDetail) *UpdateVpcEndpointOutput {
	s.UpdateVpcEndpointDetail = v
	return s
}

// Thrown when the HTTP request contains invalid input or is missing required
// input.
type ValidationException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

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

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ValidationException) 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 ValidationException) GoString() string {
	return s.String()
}

func newErrorValidationException(v protocol.ResponseMetadata) error {
	return &ValidationException{
		RespMetadata: v,
	}
}

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

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

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

func (s *ValidationException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

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

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

// Details about an OpenSearch Serverless-managed interface endpoint.
type VpcEndpointDetail struct {
	_ struct{} `type:"structure"`

	// The date the endpoint was created.
	CreatedDate *int64 `locationName:"createdDate" type:"long"`

	// The unique identifier of the endpoint.
	Id *string `locationName:"id" min:"1" type:"string"`

	// The name of the endpoint.
	Name *string `locationName:"name" min:"3" type:"string"`

	// The unique identifiers of the security groups that define the ports, protocols,
	// and sources for inbound traffic that you are authorizing into your endpoint.
	SecurityGroupIds []*string `locationName:"securityGroupIds" min:"1" type:"list"`

	// The current status of the endpoint.
	Status *string `locationName:"status" type:"string" enum:"VpcEndpointStatus"`

	// The ID of the subnets from which you access OpenSearch Serverless.
	SubnetIds []*string `locationName:"subnetIds" min:"1" type:"list"`

	// The ID of the VPC from which you access OpenSearch Serverless.
	VpcId *string `locationName:"vpcId" 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 VpcEndpointDetail) 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 VpcEndpointDetail) GoString() string {
	return s.String()
}

// SetCreatedDate sets the CreatedDate field's value.
func (s *VpcEndpointDetail) SetCreatedDate(v int64) *VpcEndpointDetail {
	s.CreatedDate = &v
	return s
}

// SetId sets the Id field's value.
func (s *VpcEndpointDetail) SetId(v string) *VpcEndpointDetail {
	s.Id = &v
	return s
}

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

// SetSecurityGroupIds sets the SecurityGroupIds field's value.
func (s *VpcEndpointDetail) SetSecurityGroupIds(v []*string) *VpcEndpointDetail {
	s.SecurityGroupIds = v
	return s
}

// SetStatus sets the Status field's value.
func (s *VpcEndpointDetail) SetStatus(v string) *VpcEndpointDetail {
	s.Status = &v
	return s
}

// SetSubnetIds sets the SubnetIds field's value.
func (s *VpcEndpointDetail) SetSubnetIds(v []*string) *VpcEndpointDetail {
	s.SubnetIds = v
	return s
}

// SetVpcId sets the VpcId field's value.
func (s *VpcEndpointDetail) SetVpcId(v string) *VpcEndpointDetail {
	s.VpcId = &v
	return s
}

// Error information for a failed BatchGetVpcEndpoint request.
type VpcEndpointErrorDetail struct {
	_ struct{} `type:"structure"`

	// The error code for the failed request.
	ErrorCode *string `locationName:"errorCode" type:"string"`

	// An error message describing the reason for the failure.
	ErrorMessage *string `locationName:"errorMessage" type:"string"`

	// The unique identifier of the VPC endpoint.
	Id *string `locationName:"id" 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 VpcEndpointErrorDetail) 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 VpcEndpointErrorDetail) GoString() string {
	return s.String()
}

// SetErrorCode sets the ErrorCode field's value.
func (s *VpcEndpointErrorDetail) SetErrorCode(v string) *VpcEndpointErrorDetail {
	s.ErrorCode = &v
	return s
}

// SetErrorMessage sets the ErrorMessage field's value.
func (s *VpcEndpointErrorDetail) SetErrorMessage(v string) *VpcEndpointErrorDetail {
	s.ErrorMessage = &v
	return s
}

// SetId sets the Id field's value.
func (s *VpcEndpointErrorDetail) SetId(v string) *VpcEndpointErrorDetail {
	s.Id = &v
	return s
}

// Filter the results of a ListVpcEndpoints request.
type VpcEndpointFilters struct {
	_ struct{} `type:"structure"`

	// The current status of the endpoint.
	Status *string `locationName:"status" type:"string" enum:"VpcEndpointStatus"`
}

// 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 VpcEndpointFilters) 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 VpcEndpointFilters) GoString() string {
	return s.String()
}

// SetStatus sets the Status field's value.
func (s *VpcEndpointFilters) SetStatus(v string) *VpcEndpointFilters {
	s.Status = &v
	return s
}

// The VPC endpoint object.
type VpcEndpointSummary struct {
	_ struct{} `type:"structure"`

	// The unique identifier of the endpoint.
	Id *string `locationName:"id" min:"1" type:"string"`

	// The name of the endpoint.
	Name *string `locationName:"name" min:"3" type:"string"`

	// The current status of the endpoint.
	Status *string `locationName:"status" type:"string" enum:"VpcEndpointStatus"`
}

// 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 VpcEndpointSummary) 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 VpcEndpointSummary) GoString() string {
	return s.String()
}

// SetId sets the Id field's value.
func (s *VpcEndpointSummary) SetId(v string) *VpcEndpointSummary {
	s.Id = &v
	return s
}

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

// SetStatus sets the Status field's value.
func (s *VpcEndpointSummary) SetStatus(v string) *VpcEndpointSummary {
	s.Status = &v
	return s
}

const (
	// AccessPolicyTypeData is a AccessPolicyType enum value
	AccessPolicyTypeData = "data"
)

// AccessPolicyType_Values returns all elements of the AccessPolicyType enum
func AccessPolicyType_Values() []string {
	return []string{
		AccessPolicyTypeData,
	}
}

const (
	// CollectionStatusCreating is a CollectionStatus enum value
	CollectionStatusCreating = "CREATING"

	// CollectionStatusDeleting is a CollectionStatus enum value
	CollectionStatusDeleting = "DELETING"

	// CollectionStatusActive is a CollectionStatus enum value
	CollectionStatusActive = "ACTIVE"

	// CollectionStatusFailed is a CollectionStatus enum value
	CollectionStatusFailed = "FAILED"
)

// CollectionStatus_Values returns all elements of the CollectionStatus enum
func CollectionStatus_Values() []string {
	return []string{
		CollectionStatusCreating,
		CollectionStatusDeleting,
		CollectionStatusActive,
		CollectionStatusFailed,
	}
}

const (
	// CollectionTypeSearch is a CollectionType enum value
	CollectionTypeSearch = "SEARCH"

	// CollectionTypeTimeseries is a CollectionType enum value
	CollectionTypeTimeseries = "TIMESERIES"

	// CollectionTypeVectorsearch is a CollectionType enum value
	CollectionTypeVectorsearch = "VECTORSEARCH"
)

// CollectionType_Values returns all elements of the CollectionType enum
func CollectionType_Values() []string {
	return []string{
		CollectionTypeSearch,
		CollectionTypeTimeseries,
		CollectionTypeVectorsearch,
	}
}

const (
	// LifecyclePolicyTypeRetention is a LifecyclePolicyType enum value
	LifecyclePolicyTypeRetention = "retention"
)

// LifecyclePolicyType_Values returns all elements of the LifecyclePolicyType enum
func LifecyclePolicyType_Values() []string {
	return []string{
		LifecyclePolicyTypeRetention,
	}
}

const (
	// ResourceTypeIndex is a ResourceType enum value
	ResourceTypeIndex = "index"
)

// ResourceType_Values returns all elements of the ResourceType enum
func ResourceType_Values() []string {
	return []string{
		ResourceTypeIndex,
	}
}

const (
	// SecurityConfigTypeSaml is a SecurityConfigType enum value
	SecurityConfigTypeSaml = "saml"
)

// SecurityConfigType_Values returns all elements of the SecurityConfigType enum
func SecurityConfigType_Values() []string {
	return []string{
		SecurityConfigTypeSaml,
	}
}

const (
	// SecurityPolicyTypeEncryption is a SecurityPolicyType enum value
	SecurityPolicyTypeEncryption = "encryption"

	// SecurityPolicyTypeNetwork is a SecurityPolicyType enum value
	SecurityPolicyTypeNetwork = "network"
)

// SecurityPolicyType_Values returns all elements of the SecurityPolicyType enum
func SecurityPolicyType_Values() []string {
	return []string{
		SecurityPolicyTypeEncryption,
		SecurityPolicyTypeNetwork,
	}
}

const (
	// StandbyReplicasEnabled is a StandbyReplicas enum value
	StandbyReplicasEnabled = "ENABLED"

	// StandbyReplicasDisabled is a StandbyReplicas enum value
	StandbyReplicasDisabled = "DISABLED"
)

// StandbyReplicas_Values returns all elements of the StandbyReplicas enum
func StandbyReplicas_Values() []string {
	return []string{
		StandbyReplicasEnabled,
		StandbyReplicasDisabled,
	}
}

const (
	// VpcEndpointStatusPending is a VpcEndpointStatus enum value
	VpcEndpointStatusPending = "PENDING"

	// VpcEndpointStatusDeleting is a VpcEndpointStatus enum value
	VpcEndpointStatusDeleting = "DELETING"

	// VpcEndpointStatusActive is a VpcEndpointStatus enum value
	VpcEndpointStatusActive = "ACTIVE"

	// VpcEndpointStatusFailed is a VpcEndpointStatus enum value
	VpcEndpointStatusFailed = "FAILED"
)

// VpcEndpointStatus_Values returns all elements of the VpcEndpointStatus enum
func VpcEndpointStatus_Values() []string {
	return []string{
		VpcEndpointStatusPending,
		VpcEndpointStatusDeleting,
		VpcEndpointStatusActive,
		VpcEndpointStatusFailed,
	}
}
© 2026 GrazzMean
Beegazpacho


Let’s  Start  Your  Online  Journey  with  Beegazpacho 

Welcome to Beegazpacho,
where creativity meets strategy,
and innovation drives success.


Contact
Now


OUR CLIENTS

WhatsApp-Image-2021-12-06.png
Untitled-design-11.png
niaf-logo.png
20220406-163308-scaled.jpg
karchi-logo.png
20220405-171252.png
20220405-171309.png
20220321-161603.png
20220321-161611.png
20220321-161628.png
20220321-161244.png
20220321-161256.png
20220321-161450.png
20220321-161205.png
20220226-170222.png
20220321-161051.png
20211202-170852.png
Untitled-design-9
pidilite-png-logo-colour
logo-black-e1706125740216-qisosldqhzgcaerhdt6n4t3m4s50jr0iik48z0h5vk
Fraikin-Dayim-logo-1
hpcl-logo-2-1
services

Transforming Ideas into
Success

.01
Digital Marketing

We drive growth through data-driven strategies and cutting-edge techniques.

Learn More

.02
SEO

Improve your online visibility and rank higher on search engines with our expert SEO services.

Learn More

.03
Website Designing

We design websites that are not only visually stunning but also user-centric, ensuring seamless navigation and enhanced user experience.

Learn More

.04
App Development

Our apps are crafted to be intuitive, engaging, and functional, providing your users with an exceptional mobile experience.

Learn More

.05
Social Media Ads

Target the right audience with precision and creativity to maximize engagement and conversions.

Learn More

.06
Google Ads

Maximize ROI with precision-targeted campaigns on Google’s powerful ad platform.

Learn More

.07
Google My Business

Optimize your local presence with strategies that put your business on the map and attract more customers.

Learn More

.08
Graphic Designing

Our designs tell your brand’s story in a visually compelling way.

Learn More

.09
3D Videos

Bring your product to life with immersive and dynamic 3D explainer videos.

Learn More

about BEEGAZPACHO

creating special Things
For special brands

Join the ranks of successful brands by partnering with Beegazpacho

00+

Happy Customer

00+

Continents

Our vision is not just to be a service provider but to be your partner in growth. We see ourselves as an extension of your team, working tirelessly to ensure that your brand not only meets its goals but surpasses them.

Explore
more

Our Recent Work

Crafted with Passion and Precision

Connect now


Web Design
Design, Development & Identity

Logo Design
Design, Development & Identity

Creative Brand design
Design, Development & Identity

Product Design Marketing
Design, Development & Identity

DIGITAL MARKETING
SEO
WEBSITE DESIGNING
APP DEVELOPMENT
SOCIAL MEDIA ADS
GOOGLE ADS
GOOGLE MY BUSINESS
GRAPHIC DESINING
3D VIDEOS
Client Stories

Hear It from Those Who Know Us Best

Our clients’ success stories speak volumes about our commitment to excellence. Don’t just take our word for it—hear directly from the brands we’ve partnered with. Their testimonials highlight our ability to bring visions to life and create a lasting impact on their businesses.

“Beegazpacho feels like an extension of our team. Their content marketing and social media expertise have elevated our brand. They listen, adapt, and always deliver on time. We look forward to continuing this partnership.”

— Sarah Williams

Head of Marketing, GreenPlanet Apparel

“Beegazpacho’s data-driven strategies helped us improve our online ads, optimize our website, and enhance branding. We’ve seen great ROI and increased visibility. Their professionalism is unmatched.”

— Arvind Shah

CEO, InnovateTech Solutions

“Partnering with Beegazpacho has been a game-changer for our brand. Their creative ad campaigns and SEO services have boosted our online presence and significantly increased leads and sales. We couldn’t ask for a better partner!”

— Rina Kapoor

Marketing Director, Luxury Home Interiors

“Beegazpacho feels like an extension of our team. Their content marketing and social media expertise have elevated our brand. They listen, adapt, and always deliver on time. We look forward to continuing this partnership.”

— Sarah Williams

Head of Marketing, GreenPlanet Apparel

“Beegazpacho’s data-driven strategies helped us improve our online ads, optimize our website, and enhance branding. We’ve seen great ROI and increased visibility. Their professionalism is unmatched.”

— Arvind Shah

CEO, InnovateTech Solutions

“Partnering with Beegazpacho has been a game-changer for our brand. Their creative ad campaigns and SEO services have boosted our online presence and significantly increased leads and sales. We couldn’t ask for a better partner!”

— Rina Kapoor

Marketing Director, Luxury Home Interiors