404 Not Found


nginx
beegazpacho.com - GrazzMean
Uname: Linux in-mum-web1557.main-hosting.eu 5.14.0-611.42.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 24 05:30:20 EDT 2026 x86_64
Software: LiteSpeed
PHP version: 8.2.30 [ PHP INFO ] PHP os: Linux
Server Ip: 147.79.69.215
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 rolesanywhere

import (
	"fmt"
	"time"

	"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/restjson"
)

const opCreateProfile = "CreateProfile"

// CreateProfileRequest generates a "aws/request.Request" representing the
// client's request for the CreateProfile 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 CreateProfile for more information on using the CreateProfile
// 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 CreateProfileRequest method.
//	req, resp := client.CreateProfileRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/CreateProfile
func (c *RolesAnywhere) CreateProfileRequest(input *CreateProfileInput) (req *request.Request, output *CreateProfileOutput) {
	op := &request.Operation{
		Name:       opCreateProfile,
		HTTPMethod: "POST",
		HTTPPath:   "/profiles",
	}

	if input == nil {
		input = &CreateProfileInput{}
	}

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

// CreateProfile API operation for IAM Roles Anywhere.
//
// Creates a profile, a list of the roles that Roles Anywhere service is trusted
// to assume. You use profiles to intersect permissions with IAM managed policies.
//
// Required permissions: rolesanywhere:CreateProfile.
//
// 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 IAM Roles Anywhere's
// API operation CreateProfile for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     Validation exception error.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/CreateProfile
func (c *RolesAnywhere) CreateProfile(input *CreateProfileInput) (*CreateProfileOutput, error) {
	req, out := c.CreateProfileRequest(input)
	return out, req.Send()
}

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

const opCreateTrustAnchor = "CreateTrustAnchor"

// CreateTrustAnchorRequest generates a "aws/request.Request" representing the
// client's request for the CreateTrustAnchor 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 CreateTrustAnchor for more information on using the CreateTrustAnchor
// 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 CreateTrustAnchorRequest method.
//	req, resp := client.CreateTrustAnchorRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/CreateTrustAnchor
func (c *RolesAnywhere) CreateTrustAnchorRequest(input *CreateTrustAnchorInput) (req *request.Request, output *CreateTrustAnchorOutput) {
	op := &request.Operation{
		Name:       opCreateTrustAnchor,
		HTTPMethod: "POST",
		HTTPPath:   "/trustanchors",
	}

	if input == nil {
		input = &CreateTrustAnchorInput{}
	}

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

// CreateTrustAnchor API operation for IAM Roles Anywhere.
//
// Creates a trust anchor to establish trust between IAM Roles Anywhere and
// your certificate authority (CA). You can define a trust anchor as a reference
// to an Private Certificate Authority (Private CA) or by uploading a CA certificate.
// Your Amazon Web Services workloads can authenticate with the trust anchor
// using certificates issued by the CA in exchange for temporary Amazon Web
// Services credentials.
//
// Required permissions: rolesanywhere:CreateTrustAnchor.
//
// 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 IAM Roles Anywhere's
// API operation CreateTrustAnchor for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     Validation exception error.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/CreateTrustAnchor
func (c *RolesAnywhere) CreateTrustAnchor(input *CreateTrustAnchorInput) (*CreateTrustAnchorOutput, error) {
	req, out := c.CreateTrustAnchorRequest(input)
	return out, req.Send()
}

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

const opDeleteCrl = "DeleteCrl"

// DeleteCrlRequest generates a "aws/request.Request" representing the
// client's request for the DeleteCrl 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 DeleteCrl for more information on using the DeleteCrl
// 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 DeleteCrlRequest method.
//	req, resp := client.DeleteCrlRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/DeleteCrl
func (c *RolesAnywhere) DeleteCrlRequest(input *DeleteCrlInput) (req *request.Request, output *DeleteCrlOutput) {
	op := &request.Operation{
		Name:       opDeleteCrl,
		HTTPMethod: "DELETE",
		HTTPPath:   "/crl/{crlId}",
	}

	if input == nil {
		input = &DeleteCrlInput{}
	}

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

// DeleteCrl API operation for IAM Roles Anywhere.
//
// Deletes a certificate revocation list (CRL).
//
// Required permissions: rolesanywhere:DeleteCrl.
//
// 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 IAM Roles Anywhere's
// API operation DeleteCrl for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     The resource could not be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/DeleteCrl
func (c *RolesAnywhere) DeleteCrl(input *DeleteCrlInput) (*DeleteCrlOutput, error) {
	req, out := c.DeleteCrlRequest(input)
	return out, req.Send()
}

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

const opDeleteProfile = "DeleteProfile"

// DeleteProfileRequest generates a "aws/request.Request" representing the
// client's request for the DeleteProfile 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 DeleteProfile for more information on using the DeleteProfile
// 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 DeleteProfileRequest method.
//	req, resp := client.DeleteProfileRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/DeleteProfile
func (c *RolesAnywhere) DeleteProfileRequest(input *DeleteProfileInput) (req *request.Request, output *DeleteProfileOutput) {
	op := &request.Operation{
		Name:       opDeleteProfile,
		HTTPMethod: "DELETE",
		HTTPPath:   "/profile/{profileId}",
	}

	if input == nil {
		input = &DeleteProfileInput{}
	}

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

// DeleteProfile API operation for IAM Roles Anywhere.
//
// Deletes a profile.
//
// Required permissions: rolesanywhere:DeleteProfile.
//
// 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 IAM Roles Anywhere's
// API operation DeleteProfile for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     The resource could not be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/DeleteProfile
func (c *RolesAnywhere) DeleteProfile(input *DeleteProfileInput) (*DeleteProfileOutput, error) {
	req, out := c.DeleteProfileRequest(input)
	return out, req.Send()
}

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

const opDeleteTrustAnchor = "DeleteTrustAnchor"

// DeleteTrustAnchorRequest generates a "aws/request.Request" representing the
// client's request for the DeleteTrustAnchor 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 DeleteTrustAnchor for more information on using the DeleteTrustAnchor
// 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 DeleteTrustAnchorRequest method.
//	req, resp := client.DeleteTrustAnchorRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/DeleteTrustAnchor
func (c *RolesAnywhere) DeleteTrustAnchorRequest(input *DeleteTrustAnchorInput) (req *request.Request, output *DeleteTrustAnchorOutput) {
	op := &request.Operation{
		Name:       opDeleteTrustAnchor,
		HTTPMethod: "DELETE",
		HTTPPath:   "/trustanchor/{trustAnchorId}",
	}

	if input == nil {
		input = &DeleteTrustAnchorInput{}
	}

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

// DeleteTrustAnchor API operation for IAM Roles Anywhere.
//
// Deletes a trust anchor.
//
// Required permissions: rolesanywhere:DeleteTrustAnchor.
//
// 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 IAM Roles Anywhere's
// API operation DeleteTrustAnchor for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     The resource could not be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/DeleteTrustAnchor
func (c *RolesAnywhere) DeleteTrustAnchor(input *DeleteTrustAnchorInput) (*DeleteTrustAnchorOutput, error) {
	req, out := c.DeleteTrustAnchorRequest(input)
	return out, req.Send()
}

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

const opDisableCrl = "DisableCrl"

// DisableCrlRequest generates a "aws/request.Request" representing the
// client's request for the DisableCrl 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 DisableCrl for more information on using the DisableCrl
// 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 DisableCrlRequest method.
//	req, resp := client.DisableCrlRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/DisableCrl
func (c *RolesAnywhere) DisableCrlRequest(input *DisableCrlInput) (req *request.Request, output *DisableCrlOutput) {
	op := &request.Operation{
		Name:       opDisableCrl,
		HTTPMethod: "POST",
		HTTPPath:   "/crl/{crlId}/disable",
	}

	if input == nil {
		input = &DisableCrlInput{}
	}

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

// DisableCrl API operation for IAM Roles Anywhere.
//
// Disables a certificate revocation list (CRL).
//
// Required permissions: rolesanywhere:DisableCrl.
//
// 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 IAM Roles Anywhere's
// API operation DisableCrl for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     The resource could not be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/DisableCrl
func (c *RolesAnywhere) DisableCrl(input *DisableCrlInput) (*DisableCrlOutput, error) {
	req, out := c.DisableCrlRequest(input)
	return out, req.Send()
}

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

const opDisableProfile = "DisableProfile"

// DisableProfileRequest generates a "aws/request.Request" representing the
// client's request for the DisableProfile 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 DisableProfile for more information on using the DisableProfile
// 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 DisableProfileRequest method.
//	req, resp := client.DisableProfileRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/DisableProfile
func (c *RolesAnywhere) DisableProfileRequest(input *DisableProfileInput) (req *request.Request, output *DisableProfileOutput) {
	op := &request.Operation{
		Name:       opDisableProfile,
		HTTPMethod: "POST",
		HTTPPath:   "/profile/{profileId}/disable",
	}

	if input == nil {
		input = &DisableProfileInput{}
	}

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

// DisableProfile API operation for IAM Roles Anywhere.
//
// Disables a profile. When disabled, temporary credential requests with this
// profile fail.
//
// Required permissions: rolesanywhere:DisableProfile.
//
// 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 IAM Roles Anywhere's
// API operation DisableProfile for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     The resource could not be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/DisableProfile
func (c *RolesAnywhere) DisableProfile(input *DisableProfileInput) (*DisableProfileOutput, error) {
	req, out := c.DisableProfileRequest(input)
	return out, req.Send()
}

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

const opDisableTrustAnchor = "DisableTrustAnchor"

// DisableTrustAnchorRequest generates a "aws/request.Request" representing the
// client's request for the DisableTrustAnchor 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 DisableTrustAnchor for more information on using the DisableTrustAnchor
// 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 DisableTrustAnchorRequest method.
//	req, resp := client.DisableTrustAnchorRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/DisableTrustAnchor
func (c *RolesAnywhere) DisableTrustAnchorRequest(input *DisableTrustAnchorInput) (req *request.Request, output *DisableTrustAnchorOutput) {
	op := &request.Operation{
		Name:       opDisableTrustAnchor,
		HTTPMethod: "POST",
		HTTPPath:   "/trustanchor/{trustAnchorId}/disable",
	}

	if input == nil {
		input = &DisableTrustAnchorInput{}
	}

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

// DisableTrustAnchor API operation for IAM Roles Anywhere.
//
// Disables a trust anchor. When disabled, temporary credential requests specifying
// this trust anchor are unauthorized.
//
// Required permissions: rolesanywhere:DisableTrustAnchor.
//
// 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 IAM Roles Anywhere's
// API operation DisableTrustAnchor for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     The resource could not be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/DisableTrustAnchor
func (c *RolesAnywhere) DisableTrustAnchor(input *DisableTrustAnchorInput) (*DisableTrustAnchorOutput, error) {
	req, out := c.DisableTrustAnchorRequest(input)
	return out, req.Send()
}

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

const opEnableCrl = "EnableCrl"

// EnableCrlRequest generates a "aws/request.Request" representing the
// client's request for the EnableCrl 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 EnableCrl for more information on using the EnableCrl
// 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 EnableCrlRequest method.
//	req, resp := client.EnableCrlRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/EnableCrl
func (c *RolesAnywhere) EnableCrlRequest(input *EnableCrlInput) (req *request.Request, output *EnableCrlOutput) {
	op := &request.Operation{
		Name:       opEnableCrl,
		HTTPMethod: "POST",
		HTTPPath:   "/crl/{crlId}/enable",
	}

	if input == nil {
		input = &EnableCrlInput{}
	}

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

// EnableCrl API operation for IAM Roles Anywhere.
//
// Enables a certificate revocation list (CRL). When enabled, certificates stored
// in the CRL are unauthorized to receive session credentials.
//
// Required permissions: rolesanywhere:EnableCrl.
//
// 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 IAM Roles Anywhere's
// API operation EnableCrl for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     The resource could not be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/EnableCrl
func (c *RolesAnywhere) EnableCrl(input *EnableCrlInput) (*EnableCrlOutput, error) {
	req, out := c.EnableCrlRequest(input)
	return out, req.Send()
}

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

const opEnableProfile = "EnableProfile"

// EnableProfileRequest generates a "aws/request.Request" representing the
// client's request for the EnableProfile 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 EnableProfile for more information on using the EnableProfile
// 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 EnableProfileRequest method.
//	req, resp := client.EnableProfileRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/EnableProfile
func (c *RolesAnywhere) EnableProfileRequest(input *EnableProfileInput) (req *request.Request, output *EnableProfileOutput) {
	op := &request.Operation{
		Name:       opEnableProfile,
		HTTPMethod: "POST",
		HTTPPath:   "/profile/{profileId}/enable",
	}

	if input == nil {
		input = &EnableProfileInput{}
	}

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

// EnableProfile API operation for IAM Roles Anywhere.
//
// Enables temporary credential requests for a profile.
//
// Required permissions: rolesanywhere:EnableProfile.
//
// 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 IAM Roles Anywhere's
// API operation EnableProfile for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     The resource could not be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/EnableProfile
func (c *RolesAnywhere) EnableProfile(input *EnableProfileInput) (*EnableProfileOutput, error) {
	req, out := c.EnableProfileRequest(input)
	return out, req.Send()
}

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

const opEnableTrustAnchor = "EnableTrustAnchor"

// EnableTrustAnchorRequest generates a "aws/request.Request" representing the
// client's request for the EnableTrustAnchor 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 EnableTrustAnchor for more information on using the EnableTrustAnchor
// 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 EnableTrustAnchorRequest method.
//	req, resp := client.EnableTrustAnchorRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/EnableTrustAnchor
func (c *RolesAnywhere) EnableTrustAnchorRequest(input *EnableTrustAnchorInput) (req *request.Request, output *EnableTrustAnchorOutput) {
	op := &request.Operation{
		Name:       opEnableTrustAnchor,
		HTTPMethod: "POST",
		HTTPPath:   "/trustanchor/{trustAnchorId}/enable",
	}

	if input == nil {
		input = &EnableTrustAnchorInput{}
	}

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

// EnableTrustAnchor API operation for IAM Roles Anywhere.
//
// Enables a trust anchor. When enabled, certificates in the trust anchor chain
// are authorized for trust validation.
//
// Required permissions: rolesanywhere:EnableTrustAnchor.
//
// 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 IAM Roles Anywhere's
// API operation EnableTrustAnchor for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     The resource could not be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/EnableTrustAnchor
func (c *RolesAnywhere) EnableTrustAnchor(input *EnableTrustAnchorInput) (*EnableTrustAnchorOutput, error) {
	req, out := c.EnableTrustAnchorRequest(input)
	return out, req.Send()
}

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

const opGetCrl = "GetCrl"

// GetCrlRequest generates a "aws/request.Request" representing the
// client's request for the GetCrl 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 GetCrl for more information on using the GetCrl
// 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 GetCrlRequest method.
//	req, resp := client.GetCrlRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/GetCrl
func (c *RolesAnywhere) GetCrlRequest(input *GetCrlInput) (req *request.Request, output *GetCrlOutput) {
	op := &request.Operation{
		Name:       opGetCrl,
		HTTPMethod: "GET",
		HTTPPath:   "/crl/{crlId}",
	}

	if input == nil {
		input = &GetCrlInput{}
	}

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

// GetCrl API operation for IAM Roles Anywhere.
//
// Gets a certificate revocation list (CRL).
//
// Required permissions: rolesanywhere:GetCrl.
//
// 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 IAM Roles Anywhere's
// API operation GetCrl for usage and error information.
//
// Returned Error Types:
//   - ResourceNotFoundException
//     The resource could not be found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/GetCrl
func (c *RolesAnywhere) GetCrl(input *GetCrlInput) (*GetCrlOutput, error) {
	req, out := c.GetCrlRequest(input)
	return out, req.Send()
}

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

const opGetProfile = "GetProfile"

// GetProfileRequest generates a "aws/request.Request" representing the
// client's request for the GetProfile 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 GetProfile for more information on using the GetProfile
// 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 GetProfileRequest method.
//	req, resp := client.GetProfileRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/GetProfile
func (c *RolesAnywhere) GetProfileRequest(input *GetProfileInput) (req *request.Request, output *GetProfileOutput) {
	op := &request.Operation{
		Name:       opGetProfile,
		HTTPMethod: "GET",
		HTTPPath:   "/profile/{profileId}",
	}

	if input == nil {
		input = &GetProfileInput{}
	}

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

// GetProfile API operation for IAM Roles Anywhere.
//
// Gets a profile.
//
// Required permissions: rolesanywhere:GetProfile.
//
// 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 IAM Roles Anywhere's
// API operation GetProfile for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     The resource could not be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/GetProfile
func (c *RolesAnywhere) GetProfile(input *GetProfileInput) (*GetProfileOutput, error) {
	req, out := c.GetProfileRequest(input)
	return out, req.Send()
}

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

const opGetSubject = "GetSubject"

// GetSubjectRequest generates a "aws/request.Request" representing the
// client's request for the GetSubject 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 GetSubject for more information on using the GetSubject
// 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 GetSubjectRequest method.
//	req, resp := client.GetSubjectRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/GetSubject
func (c *RolesAnywhere) GetSubjectRequest(input *GetSubjectInput) (req *request.Request, output *GetSubjectOutput) {
	op := &request.Operation{
		Name:       opGetSubject,
		HTTPMethod: "GET",
		HTTPPath:   "/subject/{subjectId}",
	}

	if input == nil {
		input = &GetSubjectInput{}
	}

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

// GetSubject API operation for IAM Roles Anywhere.
//
// Gets a subject, which associates a certificate identity with authentication
// attempts. The subject stores auditing information such as the status of the
// last authentication attempt, the certificate data used in the attempt, and
// the last time the associated identity attempted authentication.
//
// Required permissions: rolesanywhere:GetSubject.
//
// 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 IAM Roles Anywhere's
// API operation GetSubject for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     The resource could not be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/GetSubject
func (c *RolesAnywhere) GetSubject(input *GetSubjectInput) (*GetSubjectOutput, error) {
	req, out := c.GetSubjectRequest(input)
	return out, req.Send()
}

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

const opGetTrustAnchor = "GetTrustAnchor"

// GetTrustAnchorRequest generates a "aws/request.Request" representing the
// client's request for the GetTrustAnchor 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 GetTrustAnchor for more information on using the GetTrustAnchor
// 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 GetTrustAnchorRequest method.
//	req, resp := client.GetTrustAnchorRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/GetTrustAnchor
func (c *RolesAnywhere) GetTrustAnchorRequest(input *GetTrustAnchorInput) (req *request.Request, output *GetTrustAnchorOutput) {
	op := &request.Operation{
		Name:       opGetTrustAnchor,
		HTTPMethod: "GET",
		HTTPPath:   "/trustanchor/{trustAnchorId}",
	}

	if input == nil {
		input = &GetTrustAnchorInput{}
	}

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

// GetTrustAnchor API operation for IAM Roles Anywhere.
//
// Gets a trust anchor.
//
// Required permissions: rolesanywhere:GetTrustAnchor.
//
// 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 IAM Roles Anywhere's
// API operation GetTrustAnchor for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     Validation exception error.
//
//   - ResourceNotFoundException
//     The resource could not be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/GetTrustAnchor
func (c *RolesAnywhere) GetTrustAnchor(input *GetTrustAnchorInput) (*GetTrustAnchorOutput, error) {
	req, out := c.GetTrustAnchorRequest(input)
	return out, req.Send()
}

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

const opImportCrl = "ImportCrl"

// ImportCrlRequest generates a "aws/request.Request" representing the
// client's request for the ImportCrl 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 ImportCrl for more information on using the ImportCrl
// 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 ImportCrlRequest method.
//	req, resp := client.ImportCrlRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/ImportCrl
func (c *RolesAnywhere) ImportCrlRequest(input *ImportCrlInput) (req *request.Request, output *ImportCrlOutput) {
	op := &request.Operation{
		Name:       opImportCrl,
		HTTPMethod: "POST",
		HTTPPath:   "/crls",
	}

	if input == nil {
		input = &ImportCrlInput{}
	}

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

// ImportCrl API operation for IAM Roles Anywhere.
//
// Imports the certificate revocation list (CRL). A CRL is a list of certificates
// that have been revoked by the issuing certificate Authority (CA). IAM Roles
// Anywhere validates against the CRL before issuing credentials.
//
// Required permissions: rolesanywhere:ImportCrl.
//
// 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 IAM Roles Anywhere's
// API operation ImportCrl for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     Validation exception error.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/ImportCrl
func (c *RolesAnywhere) ImportCrl(input *ImportCrlInput) (*ImportCrlOutput, error) {
	req, out := c.ImportCrlRequest(input)
	return out, req.Send()
}

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

const opListCrls = "ListCrls"

// ListCrlsRequest generates a "aws/request.Request" representing the
// client's request for the ListCrls 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 ListCrls for more information on using the ListCrls
// 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 ListCrlsRequest method.
//	req, resp := client.ListCrlsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/ListCrls
func (c *RolesAnywhere) ListCrlsRequest(input *ListCrlsInput) (req *request.Request, output *ListCrlsOutput) {
	op := &request.Operation{
		Name:       opListCrls,
		HTTPMethod: "GET",
		HTTPPath:   "/crls",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListCrlsInput{}
	}

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

// ListCrls API operation for IAM Roles Anywhere.
//
// Lists all certificate revocation lists (CRL) in the authenticated account
// and Amazon Web Services Region.
//
// Required permissions: rolesanywhere:ListCrls.
//
// 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 IAM Roles Anywhere's
// API operation ListCrls for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     Validation exception error.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/ListCrls
func (c *RolesAnywhere) ListCrls(input *ListCrlsInput) (*ListCrlsOutput, error) {
	req, out := c.ListCrlsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListProfiles = "ListProfiles"

// ListProfilesRequest generates a "aws/request.Request" representing the
// client's request for the ListProfiles 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 ListProfiles for more information on using the ListProfiles
// 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 ListProfilesRequest method.
//	req, resp := client.ListProfilesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/ListProfiles
func (c *RolesAnywhere) ListProfilesRequest(input *ListProfilesInput) (req *request.Request, output *ListProfilesOutput) {
	op := &request.Operation{
		Name:       opListProfiles,
		HTTPMethod: "GET",
		HTTPPath:   "/profiles",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListProfilesInput{}
	}

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

// ListProfiles API operation for IAM Roles Anywhere.
//
// Lists all profiles in the authenticated account and Amazon Web Services Region.
//
// Required permissions: rolesanywhere:ListProfiles.
//
// 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 IAM Roles Anywhere's
// API operation ListProfiles for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     Validation exception error.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/ListProfiles
func (c *RolesAnywhere) ListProfiles(input *ListProfilesInput) (*ListProfilesOutput, error) {
	req, out := c.ListProfilesRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListSubjects = "ListSubjects"

// ListSubjectsRequest generates a "aws/request.Request" representing the
// client's request for the ListSubjects 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 ListSubjects for more information on using the ListSubjects
// 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 ListSubjectsRequest method.
//	req, resp := client.ListSubjectsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/ListSubjects
func (c *RolesAnywhere) ListSubjectsRequest(input *ListSubjectsInput) (req *request.Request, output *ListSubjectsOutput) {
	op := &request.Operation{
		Name:       opListSubjects,
		HTTPMethod: "GET",
		HTTPPath:   "/subjects",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListSubjectsInput{}
	}

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

// ListSubjects API operation for IAM Roles Anywhere.
//
// Lists the subjects in the authenticated account and Amazon Web Services Region.
//
// Required permissions: rolesanywhere:ListSubjects.
//
// 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 IAM Roles Anywhere's
// API operation ListSubjects for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     Validation exception error.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/ListSubjects
func (c *RolesAnywhere) ListSubjects(input *ListSubjectsInput) (*ListSubjectsOutput, error) {
	req, out := c.ListSubjectsRequest(input)
	return out, req.Send()
}

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

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

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

	for p.Next() {
		if !fn(p.Page().(*ListSubjectsOutput), !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/rolesanywhere-2018-05-10/ListTagsForResource
func (c *RolesAnywhere) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
	op := &request.Operation{
		Name:       opListTagsForResource,
		HTTPMethod: "GET",
		HTTPPath:   "/ListTagsForResource",
	}

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

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

// ListTagsForResource API operation for IAM Roles Anywhere.
//
// Lists the tags attached to the resource.
//
// Required permissions: rolesanywhere:ListTagsForResource.
//
// 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 IAM Roles Anywhere's
// API operation ListTagsForResource for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     Validation exception error.
//
//   - ResourceNotFoundException
//     The resource could not be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/ListTagsForResource
func (c *RolesAnywhere) 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 *RolesAnywhere) 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 opListTrustAnchors = "ListTrustAnchors"

// ListTrustAnchorsRequest generates a "aws/request.Request" representing the
// client's request for the ListTrustAnchors 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 ListTrustAnchors for more information on using the ListTrustAnchors
// 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 ListTrustAnchorsRequest method.
//	req, resp := client.ListTrustAnchorsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/ListTrustAnchors
func (c *RolesAnywhere) ListTrustAnchorsRequest(input *ListTrustAnchorsInput) (req *request.Request, output *ListTrustAnchorsOutput) {
	op := &request.Operation{
		Name:       opListTrustAnchors,
		HTTPMethod: "GET",
		HTTPPath:   "/trustanchors",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListTrustAnchorsInput{}
	}

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

// ListTrustAnchors API operation for IAM Roles Anywhere.
//
// Lists the trust anchors in the authenticated account and Amazon Web Services
// Region.
//
// Required permissions: rolesanywhere:ListTrustAnchors.
//
// 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 IAM Roles Anywhere's
// API operation ListTrustAnchors for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     Validation exception error.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/ListTrustAnchors
func (c *RolesAnywhere) ListTrustAnchors(input *ListTrustAnchorsInput) (*ListTrustAnchorsOutput, error) {
	req, out := c.ListTrustAnchorsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opPutNotificationSettings = "PutNotificationSettings"

// PutNotificationSettingsRequest generates a "aws/request.Request" representing the
// client's request for the PutNotificationSettings 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 PutNotificationSettings for more information on using the PutNotificationSettings
// 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 PutNotificationSettingsRequest method.
//	req, resp := client.PutNotificationSettingsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/PutNotificationSettings
func (c *RolesAnywhere) PutNotificationSettingsRequest(input *PutNotificationSettingsInput) (req *request.Request, output *PutNotificationSettingsOutput) {
	op := &request.Operation{
		Name:       opPutNotificationSettings,
		HTTPMethod: "PATCH",
		HTTPPath:   "/put-notifications-settings",
	}

	if input == nil {
		input = &PutNotificationSettingsInput{}
	}

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

// PutNotificationSettings API operation for IAM Roles Anywhere.
//
// Attaches a list of notification settings to a trust anchor.
//
// A notification setting includes information such as event name, threshold,
// status of the notification setting, and the channel to notify.
//
// Required permissions: rolesanywhere:PutNotificationSettings.
//
// 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 IAM Roles Anywhere's
// API operation PutNotificationSettings for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     Validation exception error.
//
//   - ResourceNotFoundException
//     The resource could not be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/PutNotificationSettings
func (c *RolesAnywhere) PutNotificationSettings(input *PutNotificationSettingsInput) (*PutNotificationSettingsOutput, error) {
	req, out := c.PutNotificationSettingsRequest(input)
	return out, req.Send()
}

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

const opResetNotificationSettings = "ResetNotificationSettings"

// ResetNotificationSettingsRequest generates a "aws/request.Request" representing the
// client's request for the ResetNotificationSettings 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 ResetNotificationSettings for more information on using the ResetNotificationSettings
// 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 ResetNotificationSettingsRequest method.
//	req, resp := client.ResetNotificationSettingsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/ResetNotificationSettings
func (c *RolesAnywhere) ResetNotificationSettingsRequest(input *ResetNotificationSettingsInput) (req *request.Request, output *ResetNotificationSettingsOutput) {
	op := &request.Operation{
		Name:       opResetNotificationSettings,
		HTTPMethod: "PATCH",
		HTTPPath:   "/reset-notifications-settings",
	}

	if input == nil {
		input = &ResetNotificationSettingsInput{}
	}

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

// ResetNotificationSettings API operation for IAM Roles Anywhere.
//
// Resets the custom notification setting to IAM Roles Anywhere default setting.
//
// Required permissions: rolesanywhere:ResetNotificationSettings.
//
// 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 IAM Roles Anywhere's
// API operation ResetNotificationSettings for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     Validation exception error.
//
//   - ResourceNotFoundException
//     The resource could not be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/ResetNotificationSettings
func (c *RolesAnywhere) ResetNotificationSettings(input *ResetNotificationSettingsInput) (*ResetNotificationSettingsOutput, error) {
	req, out := c.ResetNotificationSettingsRequest(input)
	return out, req.Send()
}

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

const opTagResource = "TagResource"

// TagResourceRequest generates a "aws/request.Request" representing the
// client's request for the TagResource operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See TagResource for more information on using the TagResource
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the TagResourceRequest method.
//	req, resp := client.TagResourceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/TagResource
func (c *RolesAnywhere) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
	op := &request.Operation{
		Name:       opTagResource,
		HTTPMethod: "POST",
		HTTPPath:   "/TagResource",
	}

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

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

// TagResource API operation for IAM Roles Anywhere.
//
// Attaches tags to a resource.
//
// Required permissions: rolesanywhere:TagResource.
//
// 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 IAM Roles Anywhere's
// API operation TagResource for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     Validation exception error.
//
//   - ResourceNotFoundException
//     The resource could not be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - TooManyTagsException
//     Too many tags.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/TagResource
func (c *RolesAnywhere) 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 *RolesAnywhere) 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/rolesanywhere-2018-05-10/UntagResource
func (c *RolesAnywhere) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
	op := &request.Operation{
		Name:       opUntagResource,
		HTTPMethod: "POST",
		HTTPPath:   "/UntagResource",
	}

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

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

// UntagResource API operation for IAM Roles Anywhere.
//
// Removes tags from the resource.
//
// Required permissions: rolesanywhere:UntagResource.
//
// 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 IAM Roles Anywhere's
// API operation UntagResource for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     Validation exception error.
//
//   - ResourceNotFoundException
//     The resource could not be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/UntagResource
func (c *RolesAnywhere) 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 *RolesAnywhere) 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 opUpdateCrl = "UpdateCrl"

// UpdateCrlRequest generates a "aws/request.Request" representing the
// client's request for the UpdateCrl 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 UpdateCrl for more information on using the UpdateCrl
// 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 UpdateCrlRequest method.
//	req, resp := client.UpdateCrlRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/UpdateCrl
func (c *RolesAnywhere) UpdateCrlRequest(input *UpdateCrlInput) (req *request.Request, output *UpdateCrlOutput) {
	op := &request.Operation{
		Name:       opUpdateCrl,
		HTTPMethod: "PATCH",
		HTTPPath:   "/crl/{crlId}",
	}

	if input == nil {
		input = &UpdateCrlInput{}
	}

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

// UpdateCrl API operation for IAM Roles Anywhere.
//
// Updates the certificate revocation list (CRL). A CRL is a list of certificates
// that have been revoked by the issuing certificate authority (CA). IAM Roles
// Anywhere validates against the CRL before issuing credentials.
//
// Required permissions: rolesanywhere:UpdateCrl.
//
// 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 IAM Roles Anywhere's
// API operation UpdateCrl for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     Validation exception error.
//
//   - ResourceNotFoundException
//     The resource could not be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/UpdateCrl
func (c *RolesAnywhere) UpdateCrl(input *UpdateCrlInput) (*UpdateCrlOutput, error) {
	req, out := c.UpdateCrlRequest(input)
	return out, req.Send()
}

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

const opUpdateProfile = "UpdateProfile"

// UpdateProfileRequest generates a "aws/request.Request" representing the
// client's request for the UpdateProfile 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 UpdateProfile for more information on using the UpdateProfile
// 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 UpdateProfileRequest method.
//	req, resp := client.UpdateProfileRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/UpdateProfile
func (c *RolesAnywhere) UpdateProfileRequest(input *UpdateProfileInput) (req *request.Request, output *UpdateProfileOutput) {
	op := &request.Operation{
		Name:       opUpdateProfile,
		HTTPMethod: "PATCH",
		HTTPPath:   "/profile/{profileId}",
	}

	if input == nil {
		input = &UpdateProfileInput{}
	}

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

// UpdateProfile API operation for IAM Roles Anywhere.
//
// Updates a profile, a list of the roles that IAM Roles Anywhere service is
// trusted to assume. You use profiles to intersect permissions with IAM managed
// policies.
//
// Required permissions: rolesanywhere:UpdateProfile.
//
// 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 IAM Roles Anywhere's
// API operation UpdateProfile for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     Validation exception error.
//
//   - ResourceNotFoundException
//     The resource could not be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/UpdateProfile
func (c *RolesAnywhere) UpdateProfile(input *UpdateProfileInput) (*UpdateProfileOutput, error) {
	req, out := c.UpdateProfileRequest(input)
	return out, req.Send()
}

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

const opUpdateTrustAnchor = "UpdateTrustAnchor"

// UpdateTrustAnchorRequest generates a "aws/request.Request" representing the
// client's request for the UpdateTrustAnchor 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 UpdateTrustAnchor for more information on using the UpdateTrustAnchor
// 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 UpdateTrustAnchorRequest method.
//	req, resp := client.UpdateTrustAnchorRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/UpdateTrustAnchor
func (c *RolesAnywhere) UpdateTrustAnchorRequest(input *UpdateTrustAnchorInput) (req *request.Request, output *UpdateTrustAnchorOutput) {
	op := &request.Operation{
		Name:       opUpdateTrustAnchor,
		HTTPMethod: "PATCH",
		HTTPPath:   "/trustanchor/{trustAnchorId}",
	}

	if input == nil {
		input = &UpdateTrustAnchorInput{}
	}

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

// UpdateTrustAnchor API operation for IAM Roles Anywhere.
//
// Updates a trust anchor. You establish trust between IAM Roles Anywhere and
// your certificate authority (CA) by configuring a trust anchor. You can define
// a trust anchor as a reference to an Private Certificate Authority (Private
// CA) or by uploading a CA certificate. Your Amazon Web Services workloads
// can authenticate with the trust anchor using certificates issued by the CA
// in exchange for temporary Amazon Web Services credentials.
//
// Required permissions: rolesanywhere:UpdateTrustAnchor.
//
// 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 IAM Roles Anywhere's
// API operation UpdateTrustAnchor for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     Validation exception error.
//
//   - ResourceNotFoundException
//     The resource could not be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/UpdateTrustAnchor
func (c *RolesAnywhere) UpdateTrustAnchor(input *UpdateTrustAnchorInput) (*UpdateTrustAnchorOutput, error) {
	req, out := c.UpdateTrustAnchorRequest(input)
	return out, req.Send()
}

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

// You do not have sufficient access to perform this action.
type AccessDeniedException 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 AccessDeniedException) String() string {
	return awsutil.Prettify(s)
}

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

func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
	return &AccessDeniedException{
		RespMetadata: v,
	}
}

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

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

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

func (s *AccessDeniedException) 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 *AccessDeniedException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

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

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

	// The number of seconds the vended session credentials are valid for.
	DurationSeconds *int64 `locationName:"durationSeconds" min:"900" type:"integer"`

	// Specifies whether the profile is enabled.
	Enabled *bool `locationName:"enabled" type:"boolean"`

	// A list of managed policy ARNs that apply to the vended session credentials.
	ManagedPolicyArns []*string `locationName:"managedPolicyArns" type:"list"`

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

	// Specifies whether instance properties are required in temporary credential
	// requests with this profile.
	RequireInstanceProperties *bool `locationName:"requireInstanceProperties" type:"boolean"`

	// A list of IAM roles that this profile can assume in a temporary credential
	// request.
	//
	// RoleArns is a required field
	RoleArns []*string `locationName:"roleArns" type:"list" required:"true"`

	// A session policy that applies to the trust boundary of the vended session
	// credentials.
	SessionPolicy *string `locationName:"sessionPolicy" type:"string"`

	// The tags to attach to the profile.
	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 CreateProfileInput) String() string {
	return awsutil.Prettify(s)
}

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

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateProfileInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateProfileInput"}
	if s.DurationSeconds != nil && *s.DurationSeconds < 900 {
		invalidParams.Add(request.NewErrParamMinValue("DurationSeconds", 900))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.RoleArns == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArns"))
	}
	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
}

// SetDurationSeconds sets the DurationSeconds field's value.
func (s *CreateProfileInput) SetDurationSeconds(v int64) *CreateProfileInput {
	s.DurationSeconds = &v
	return s
}

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

// SetManagedPolicyArns sets the ManagedPolicyArns field's value.
func (s *CreateProfileInput) SetManagedPolicyArns(v []*string) *CreateProfileInput {
	s.ManagedPolicyArns = v
	return s
}

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

// SetRequireInstanceProperties sets the RequireInstanceProperties field's value.
func (s *CreateProfileInput) SetRequireInstanceProperties(v bool) *CreateProfileInput {
	s.RequireInstanceProperties = &v
	return s
}

// SetRoleArns sets the RoleArns field's value.
func (s *CreateProfileInput) SetRoleArns(v []*string) *CreateProfileInput {
	s.RoleArns = v
	return s
}

// SetSessionPolicy sets the SessionPolicy field's value.
func (s *CreateProfileInput) SetSessionPolicy(v string) *CreateProfileInput {
	s.SessionPolicy = &v
	return s
}

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

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

	// The state of the profile after a read or write operation.
	Profile *ProfileDetail `locationName:"profile" 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 CreateProfileOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetProfile sets the Profile field's value.
func (s *CreateProfileOutput) SetProfile(v *ProfileDetail) *CreateProfileOutput {
	s.Profile = v
	return s
}

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

	// Specifies whether the trust anchor is enabled.
	Enabled *bool `locationName:"enabled" type:"boolean"`

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

	// A list of notification settings to be associated to the trust anchor.
	NotificationSettings []*NotificationSetting `locationName:"notificationSettings" type:"list"`

	// The trust anchor type and its related certificate data.
	//
	// Source is a required field
	Source *Source `locationName:"source" type:"structure" required:"true"`

	// The tags to attach to the trust anchor.
	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 CreateTrustAnchorInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetNotificationSettings sets the NotificationSettings field's value.
func (s *CreateTrustAnchorInput) SetNotificationSettings(v []*NotificationSetting) *CreateTrustAnchorInput {
	s.NotificationSettings = v
	return s
}

// SetSource sets the Source field's value.
func (s *CreateTrustAnchorInput) SetSource(v *Source) *CreateTrustAnchorInput {
	s.Source = v
	return s
}

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

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

	// The state of the trust anchor after a read or write operation.
	//
	// TrustAnchor is a required field
	TrustAnchor *TrustAnchorDetail `locationName:"trustAnchor" type:"structure" required:"true"`
}

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

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

// SetTrustAnchor sets the TrustAnchor field's value.
func (s *CreateTrustAnchorOutput) SetTrustAnchor(v *TrustAnchorDetail) *CreateTrustAnchorOutput {
	s.TrustAnchor = v
	return s
}

// A record of a presented X509 credential from a temporary credential request.
type CredentialSummary struct {
	_ struct{} `type:"structure"`

	// Indicates whether the credential is enabled.
	Enabled *bool `locationName:"enabled" type:"boolean"`

	// Indicates whether the temporary credential request was successful.
	Failed *bool `locationName:"failed" type:"boolean"`

	// The fully qualified domain name of the issuing certificate for the presented
	// end-entity certificate.
	Issuer *string `locationName:"issuer" type:"string"`

	// The ISO-8601 time stamp of when the certificate was last used in a temporary
	// credential request.
	SeenAt *time.Time `locationName:"seenAt" type:"timestamp" timestampFormat:"iso8601"`

	// The serial number of the certificate.
	SerialNumber *string `locationName:"serialNumber" type:"string"`

	// The PEM-encoded data of the certificate.
	X509CertificateData *string `locationName:"x509CertificateData" 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 CredentialSummary) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetFailed sets the Failed field's value.
func (s *CredentialSummary) SetFailed(v bool) *CredentialSummary {
	s.Failed = &v
	return s
}

// SetIssuer sets the Issuer field's value.
func (s *CredentialSummary) SetIssuer(v string) *CredentialSummary {
	s.Issuer = &v
	return s
}

// SetSeenAt sets the SeenAt field's value.
func (s *CredentialSummary) SetSeenAt(v time.Time) *CredentialSummary {
	s.SeenAt = &v
	return s
}

// SetSerialNumber sets the SerialNumber field's value.
func (s *CredentialSummary) SetSerialNumber(v string) *CredentialSummary {
	s.SerialNumber = &v
	return s
}

// SetX509CertificateData sets the X509CertificateData field's value.
func (s *CredentialSummary) SetX509CertificateData(v string) *CredentialSummary {
	s.X509CertificateData = &v
	return s
}

// The state of the certificate revocation list (CRL) after a read or write
// operation.
type CrlDetail struct {
	_ struct{} `type:"structure"`

	// The ISO-8601 timestamp when the certificate revocation list (CRL) was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The ARN of the certificate revocation list (CRL).
	CrlArn *string `locationName:"crlArn" type:"string"`

	// The state of the certificate revocation list (CRL) after a read or write
	// operation.
	// CrlData is automatically base64 encoded/decoded by the SDK.
	CrlData []byte `locationName:"crlData" type:"blob"`

	// The unique identifier of the certificate revocation list (CRL).
	CrlId *string `locationName:"crlId" min:"36" type:"string"`

	// Indicates whether the certificate revocation list (CRL) is enabled.
	Enabled *bool `locationName:"enabled" type:"boolean"`

	// The name of the certificate revocation list (CRL).
	Name *string `locationName:"name" type:"string"`

	// The ARN of the TrustAnchor the certificate revocation list (CRL) will provide
	// revocation for.
	TrustAnchorArn *string `locationName:"trustAnchorArn" type:"string"`

	// The ISO-8601 timestamp when the certificate revocation list (CRL) was last
	// updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601"`
}

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

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

// SetCreatedAt sets the CreatedAt field's value.
func (s *CrlDetail) SetCreatedAt(v time.Time) *CrlDetail {
	s.CreatedAt = &v
	return s
}

// SetCrlArn sets the CrlArn field's value.
func (s *CrlDetail) SetCrlArn(v string) *CrlDetail {
	s.CrlArn = &v
	return s
}

// SetCrlData sets the CrlData field's value.
func (s *CrlDetail) SetCrlData(v []byte) *CrlDetail {
	s.CrlData = v
	return s
}

// SetCrlId sets the CrlId field's value.
func (s *CrlDetail) SetCrlId(v string) *CrlDetail {
	s.CrlId = &v
	return s
}

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

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

// SetTrustAnchorArn sets the TrustAnchorArn field's value.
func (s *CrlDetail) SetTrustAnchorArn(v string) *CrlDetail {
	s.TrustAnchorArn = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *CrlDetail) SetUpdatedAt(v time.Time) *CrlDetail {
	s.UpdatedAt = &v
	return s
}

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

	// The unique identifier of the certificate revocation list (CRL).
	//
	// CrlId is a required field
	CrlId *string `location:"uri" locationName:"crlId" min:"36" 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 DeleteCrlInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetCrlId sets the CrlId field's value.
func (s *DeleteCrlInput) SetCrlId(v string) *DeleteCrlInput {
	s.CrlId = &v
	return s
}

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

	// The state of the certificate revocation list (CRL) after a read or write
	// operation.
	//
	// Crl is a required field
	Crl *CrlDetail `locationName:"crl" type:"structure" required:"true"`
}

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

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

// SetCrl sets the Crl field's value.
func (s *DeleteCrlOutput) SetCrl(v *CrlDetail) *DeleteCrlOutput {
	s.Crl = v
	return s
}

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

	// The unique identifier of the profile.
	//
	// ProfileId is a required field
	ProfileId *string `location:"uri" locationName:"profileId" min:"36" 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 DeleteProfileInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetProfileId sets the ProfileId field's value.
func (s *DeleteProfileInput) SetProfileId(v string) *DeleteProfileInput {
	s.ProfileId = &v
	return s
}

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

	// The state of the profile after a read or write operation.
	Profile *ProfileDetail `locationName:"profile" 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 DeleteProfileOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetProfile sets the Profile field's value.
func (s *DeleteProfileOutput) SetProfile(v *ProfileDetail) *DeleteProfileOutput {
	s.Profile = v
	return s
}

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

	// The unique identifier of the trust anchor.
	//
	// TrustAnchorId is a required field
	TrustAnchorId *string `location:"uri" locationName:"trustAnchorId" min:"36" 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 DeleteTrustAnchorInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetTrustAnchorId sets the TrustAnchorId field's value.
func (s *DeleteTrustAnchorInput) SetTrustAnchorId(v string) *DeleteTrustAnchorInput {
	s.TrustAnchorId = &v
	return s
}

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

	// The state of the trust anchor after a read or write operation.
	//
	// TrustAnchor is a required field
	TrustAnchor *TrustAnchorDetail `locationName:"trustAnchor" type:"structure" required:"true"`
}

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

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

// SetTrustAnchor sets the TrustAnchor field's value.
func (s *DeleteTrustAnchorOutput) SetTrustAnchor(v *TrustAnchorDetail) *DeleteTrustAnchorOutput {
	s.TrustAnchor = v
	return s
}

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

	// The unique identifier of the certificate revocation list (CRL).
	//
	// CrlId is a required field
	CrlId *string `location:"uri" locationName:"crlId" min:"36" 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 DisableCrlInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetCrlId sets the CrlId field's value.
func (s *DisableCrlInput) SetCrlId(v string) *DisableCrlInput {
	s.CrlId = &v
	return s
}

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

	// The state of the certificate revocation list (CRL) after a read or write
	// operation.
	//
	// Crl is a required field
	Crl *CrlDetail `locationName:"crl" type:"structure" required:"true"`
}

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

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

// SetCrl sets the Crl field's value.
func (s *DisableCrlOutput) SetCrl(v *CrlDetail) *DisableCrlOutput {
	s.Crl = v
	return s
}

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

	// The unique identifier of the profile.
	//
	// ProfileId is a required field
	ProfileId *string `location:"uri" locationName:"profileId" min:"36" 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 DisableProfileInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetProfileId sets the ProfileId field's value.
func (s *DisableProfileInput) SetProfileId(v string) *DisableProfileInput {
	s.ProfileId = &v
	return s
}

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

	// The state of the profile after a read or write operation.
	Profile *ProfileDetail `locationName:"profile" 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 DisableProfileOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetProfile sets the Profile field's value.
func (s *DisableProfileOutput) SetProfile(v *ProfileDetail) *DisableProfileOutput {
	s.Profile = v
	return s
}

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

	// The unique identifier of the trust anchor.
	//
	// TrustAnchorId is a required field
	TrustAnchorId *string `location:"uri" locationName:"trustAnchorId" min:"36" 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 DisableTrustAnchorInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetTrustAnchorId sets the TrustAnchorId field's value.
func (s *DisableTrustAnchorInput) SetTrustAnchorId(v string) *DisableTrustAnchorInput {
	s.TrustAnchorId = &v
	return s
}

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

	// The state of the trust anchor after a read or write operation.
	//
	// TrustAnchor is a required field
	TrustAnchor *TrustAnchorDetail `locationName:"trustAnchor" type:"structure" required:"true"`
}

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

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

// SetTrustAnchor sets the TrustAnchor field's value.
func (s *DisableTrustAnchorOutput) SetTrustAnchor(v *TrustAnchorDetail) *DisableTrustAnchorOutput {
	s.TrustAnchor = v
	return s
}

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

	// The unique identifier of the certificate revocation list (CRL).
	//
	// CrlId is a required field
	CrlId *string `location:"uri" locationName:"crlId" min:"36" 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 EnableCrlInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetCrlId sets the CrlId field's value.
func (s *EnableCrlInput) SetCrlId(v string) *EnableCrlInput {
	s.CrlId = &v
	return s
}

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

	// The state of the certificate revocation list (CRL) after a read or write
	// operation.
	//
	// Crl is a required field
	Crl *CrlDetail `locationName:"crl" type:"structure" required:"true"`
}

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

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

// SetCrl sets the Crl field's value.
func (s *EnableCrlOutput) SetCrl(v *CrlDetail) *EnableCrlOutput {
	s.Crl = v
	return s
}

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

	// The unique identifier of the profile.
	//
	// ProfileId is a required field
	ProfileId *string `location:"uri" locationName:"profileId" min:"36" 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 EnableProfileInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetProfileId sets the ProfileId field's value.
func (s *EnableProfileInput) SetProfileId(v string) *EnableProfileInput {
	s.ProfileId = &v
	return s
}

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

	// The state of the profile after a read or write operation.
	Profile *ProfileDetail `locationName:"profile" 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 EnableProfileOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetProfile sets the Profile field's value.
func (s *EnableProfileOutput) SetProfile(v *ProfileDetail) *EnableProfileOutput {
	s.Profile = v
	return s
}

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

	// The unique identifier of the trust anchor.
	//
	// TrustAnchorId is a required field
	TrustAnchorId *string `location:"uri" locationName:"trustAnchorId" min:"36" 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 EnableTrustAnchorInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetTrustAnchorId sets the TrustAnchorId field's value.
func (s *EnableTrustAnchorInput) SetTrustAnchorId(v string) *EnableTrustAnchorInput {
	s.TrustAnchorId = &v
	return s
}

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

	// The state of the trust anchor after a read or write operation.
	//
	// TrustAnchor is a required field
	TrustAnchor *TrustAnchorDetail `locationName:"trustAnchor" type:"structure" required:"true"`
}

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

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

// SetTrustAnchor sets the TrustAnchor field's value.
func (s *EnableTrustAnchorOutput) SetTrustAnchor(v *TrustAnchorDetail) *EnableTrustAnchorOutput {
	s.TrustAnchor = v
	return s
}

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

	// The unique identifier of the certificate revocation list (CRL).
	//
	// CrlId is a required field
	CrlId *string `location:"uri" locationName:"crlId" min:"36" 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 GetCrlInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetCrlId sets the CrlId field's value.
func (s *GetCrlInput) SetCrlId(v string) *GetCrlInput {
	s.CrlId = &v
	return s
}

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

	// The state of the certificate revocation list (CRL) after a read or write
	// operation.
	//
	// Crl is a required field
	Crl *CrlDetail `locationName:"crl" type:"structure" required:"true"`
}

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

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

// SetCrl sets the Crl field's value.
func (s *GetCrlOutput) SetCrl(v *CrlDetail) *GetCrlOutput {
	s.Crl = v
	return s
}

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

	// The unique identifier of the profile.
	//
	// ProfileId is a required field
	ProfileId *string `location:"uri" locationName:"profileId" min:"36" 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 GetProfileInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetProfileId sets the ProfileId field's value.
func (s *GetProfileInput) SetProfileId(v string) *GetProfileInput {
	s.ProfileId = &v
	return s
}

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

	// The state of the profile after a read or write operation.
	Profile *ProfileDetail `locationName:"profile" 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 GetProfileOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetProfile sets the Profile field's value.
func (s *GetProfileOutput) SetProfile(v *ProfileDetail) *GetProfileOutput {
	s.Profile = v
	return s
}

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

	// The unique identifier of the subject.
	//
	// SubjectId is a required field
	SubjectId *string `location:"uri" locationName:"subjectId" min:"36" 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 GetSubjectInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetSubjectId sets the SubjectId field's value.
func (s *GetSubjectInput) SetSubjectId(v string) *GetSubjectInput {
	s.SubjectId = &v
	return s
}

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

	// The state of the subject after a read or write operation.
	Subject *SubjectDetail `locationName:"subject" 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 GetSubjectOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetSubject sets the Subject field's value.
func (s *GetSubjectOutput) SetSubject(v *SubjectDetail) *GetSubjectOutput {
	s.Subject = v
	return s
}

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

	// The unique identifier of the trust anchor.
	//
	// TrustAnchorId is a required field
	TrustAnchorId *string `location:"uri" locationName:"trustAnchorId" min:"36" 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 GetTrustAnchorInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetTrustAnchorId sets the TrustAnchorId field's value.
func (s *GetTrustAnchorInput) SetTrustAnchorId(v string) *GetTrustAnchorInput {
	s.TrustAnchorId = &v
	return s
}

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

	// The state of the trust anchor after a read or write operation.
	//
	// TrustAnchor is a required field
	TrustAnchor *TrustAnchorDetail `locationName:"trustAnchor" type:"structure" required:"true"`
}

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

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

// SetTrustAnchor sets the TrustAnchor field's value.
func (s *GetTrustAnchorOutput) SetTrustAnchor(v *TrustAnchorDetail) *GetTrustAnchorOutput {
	s.TrustAnchor = v
	return s
}

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

	// The x509 v3 specified certificate revocation list (CRL).
	// CrlData is automatically base64 encoded/decoded by the SDK.
	//
	// CrlData is a required field
	CrlData []byte `locationName:"crlData" min:"1" type:"blob" required:"true"`

	// Specifies whether the certificate revocation list (CRL) is enabled.
	Enabled *bool `locationName:"enabled" type:"boolean"`

	// The name of the certificate revocation list (CRL).
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// A list of tags to attach to the certificate revocation list (CRL).
	Tags []*Tag `locationName:"tags" type:"list"`

	// The ARN of the TrustAnchor the certificate revocation list (CRL) will provide
	// revocation for.
	//
	// TrustAnchorArn is a required field
	TrustAnchorArn *string `locationName:"trustAnchorArn" 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 ImportCrlInput) String() string {
	return awsutil.Prettify(s)
}

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

// Validate inspects the fields of the type to determine if they are valid.
func (s *ImportCrlInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ImportCrlInput"}
	if s.CrlData == nil {
		invalidParams.Add(request.NewErrParamRequired("CrlData"))
	}
	if s.CrlData != nil && len(s.CrlData) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CrlData", 1))
	}
	if s.Name == nil {
		invalidParams.Add(request.NewErrParamRequired("Name"))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.TrustAnchorArn == nil {
		invalidParams.Add(request.NewErrParamRequired("TrustAnchorArn"))
	}
	if s.TrustAnchorArn != nil && len(*s.TrustAnchorArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TrustAnchorArn", 1))
	}
	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
}

// SetCrlData sets the CrlData field's value.
func (s *ImportCrlInput) SetCrlData(v []byte) *ImportCrlInput {
	s.CrlData = v
	return s
}

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

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

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

// SetTrustAnchorArn sets the TrustAnchorArn field's value.
func (s *ImportCrlInput) SetTrustAnchorArn(v string) *ImportCrlInput {
	s.TrustAnchorArn = &v
	return s
}

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

	// The state of the certificate revocation list (CRL) after a read or write
	// operation.
	//
	// Crl is a required field
	Crl *CrlDetail `locationName:"crl" type:"structure" required:"true"`
}

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

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

// SetCrl sets the Crl field's value.
func (s *ImportCrlOutput) SetCrl(v *CrlDetail) *ImportCrlOutput {
	s.Crl = v
	return s
}

// A key-value pair you set that identifies a property of the authenticating
// instance.
type InstanceProperty struct {
	_ struct{} `type:"structure"`

	// Indicates whether the temporary credential request was successful.
	Failed *bool `locationName:"failed" type:"boolean"`

	// A list of instanceProperty objects.
	Properties map[string]*string `locationName:"properties" type:"map"`

	// The ISO-8601 time stamp of when the certificate was last used in a temporary
	// credential request.
	SeenAt *time.Time `locationName:"seenAt" type:"timestamp" timestampFormat:"iso8601"`
}

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

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

// SetFailed sets the Failed field's value.
func (s *InstanceProperty) SetFailed(v bool) *InstanceProperty {
	s.Failed = &v
	return s
}

// SetProperties sets the Properties field's value.
func (s *InstanceProperty) SetProperties(v map[string]*string) *InstanceProperty {
	s.Properties = v
	return s
}

// SetSeenAt sets the SeenAt field's value.
func (s *InstanceProperty) SetSeenAt(v time.Time) *InstanceProperty {
	s.SeenAt = &v
	return s
}

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

	// A token that indicates where the output should continue from, if a previous
	// request did not show all results. To get the next results, make the request
	// again with this value.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// The number of resources in the paginated list.
	PageSize *int64 `location:"querystring" locationName:"pageSize" 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 ListCrlsInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetPageSize sets the PageSize field's value.
func (s *ListCrlsInput) SetPageSize(v int64) *ListCrlsInput {
	s.PageSize = &v
	return s
}

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

	// A list of certificate revocation lists (CRL).
	Crls []*CrlDetail `locationName:"crls" type:"list"`

	// A token that indicates where the output should continue from, if a previous
	// request did not show all results. To get the next results, make the request
	// again with this value.
	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 ListCrlsOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetCrls sets the Crls field's value.
func (s *ListCrlsOutput) SetCrls(v []*CrlDetail) *ListCrlsOutput {
	s.Crls = v
	return s
}

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

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

	// A token that indicates where the output should continue from, if a previous
	// request did not show all results. To get the next results, make the request
	// again with this value.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// The number of resources in the paginated list.
	PageSize *int64 `location:"querystring" locationName:"pageSize" 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 ListProfilesInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetPageSize sets the PageSize field's value.
func (s *ListProfilesInput) SetPageSize(v int64) *ListProfilesInput {
	s.PageSize = &v
	return s
}

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

	// A token that indicates where the output should continue from, if a previous
	// request did not show all results. To get the next results, make the request
	// again with this value.
	NextToken *string `locationName:"nextToken" type:"string"`

	// A list of profiles.
	Profiles []*ProfileDetail `locationName:"profiles" 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 ListProfilesOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetProfiles sets the Profiles field's value.
func (s *ListProfilesOutput) SetProfiles(v []*ProfileDetail) *ListProfilesOutput {
	s.Profiles = v
	return s
}

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

	// A token that indicates where the output should continue from, if a previous
	// request did not show all results. To get the next results, make the request
	// again with this value.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// The number of resources in the paginated list.
	PageSize *int64 `location:"querystring" locationName:"pageSize" 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 ListSubjectsInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetPageSize sets the PageSize field's value.
func (s *ListSubjectsInput) SetPageSize(v int64) *ListSubjectsInput {
	s.PageSize = &v
	return s
}

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

	// A token that indicates where the output should continue from, if a previous
	// request did not show all results. To get the next results, make the request
	// again with this value.
	NextToken *string `locationName:"nextToken" type:"string"`

	// A list of subjects.
	Subjects []*SubjectSummary `locationName:"subjects" 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 ListSubjectsOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetSubjects sets the Subjects field's value.
func (s *ListSubjectsOutput) SetSubjects(v []*SubjectSummary) *ListSubjectsOutput {
	s.Subjects = v
	return s
}

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

	// The ARN of the resource.
	//
	// ResourceArn is a required field
	ResourceArn *string `location:"querystring" 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"`

	// A list of tags attached to 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 ListTrustAnchorsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// A token that indicates where the output should continue from, if a previous
	// request did not show all results. To get the next results, make the request
	// again with this value.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// The number of resources in the paginated list.
	PageSize *int64 `location:"querystring" locationName:"pageSize" 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 ListTrustAnchorsInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetPageSize sets the PageSize field's value.
func (s *ListTrustAnchorsInput) SetPageSize(v int64) *ListTrustAnchorsInput {
	s.PageSize = &v
	return s
}

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

	// A token that indicates where the output should continue from, if a previous
	// request did not show all results. To get the next results, make the request
	// again with this value.
	NextToken *string `locationName:"nextToken" type:"string"`

	// A list of trust anchors.
	TrustAnchors []*TrustAnchorDetail `locationName:"trustAnchors" 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 ListTrustAnchorsOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetTrustAnchors sets the TrustAnchors field's value.
func (s *ListTrustAnchorsOutput) SetTrustAnchors(v []*TrustAnchorDetail) *ListTrustAnchorsOutput {
	s.TrustAnchors = v
	return s
}

// Customizable notification settings that will be applied to notification events.
// IAM Roles Anywhere consumes these settings while notifying across multiple
// channels - CloudWatch metrics, EventBridge, and Health Dashboard.
type NotificationSetting struct {
	_ struct{} `type:"structure"`

	// The specified channel of notification. IAM Roles Anywhere uses CloudWatch
	// metrics, EventBridge, and Health Dashboard to notify for an event.
	//
	// In the absence of a specific channel, IAM Roles Anywhere applies this setting
	// to 'ALL' channels.
	Channel *string `locationName:"channel" type:"string" enum:"NotificationChannel"`

	// Indicates whether the notification setting is enabled.
	//
	// Enabled is a required field
	Enabled *bool `locationName:"enabled" type:"boolean" required:"true"`

	// The event to which this notification setting is applied.
	//
	// Event is a required field
	Event *string `locationName:"event" type:"string" required:"true" enum:"NotificationEvent"`

	// The number of days before a notification event. This value is required for
	// a notification setting that is enabled.
	Threshold *int64 `locationName:"threshold" min:"1" type:"integer"`
}

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

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

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

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

// SetChannel sets the Channel field's value.
func (s *NotificationSetting) SetChannel(v string) *NotificationSetting {
	s.Channel = &v
	return s
}

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

// SetEvent sets the Event field's value.
func (s *NotificationSetting) SetEvent(v string) *NotificationSetting {
	s.Event = &v
	return s
}

// SetThreshold sets the Threshold field's value.
func (s *NotificationSetting) SetThreshold(v int64) *NotificationSetting {
	s.Threshold = &v
	return s
}

// The state of a notification setting.
//
// A notification setting includes information such as event name, threshold,
// status of the notification setting, and the channel to notify.
type NotificationSettingDetail struct {
	_ struct{} `type:"structure"`

	// The specified channel of notification. IAM Roles Anywhere uses CloudWatch
	// metrics, EventBridge, and Health Dashboard to notify for an event.
	//
	// In the absence of a specific channel, IAM Roles Anywhere applies this setting
	// to 'ALL' channels.
	Channel *string `locationName:"channel" type:"string" enum:"NotificationChannel"`

	// The principal that configured the notification setting. For default settings
	// configured by IAM Roles Anywhere, the value is rolesanywhere.amazonaws.com,
	// and for customized notifications settings, it is the respective account ID.
	ConfiguredBy *string `locationName:"configuredBy" min:"1" type:"string"`

	// Indicates whether the notification setting is enabled.
	//
	// Enabled is a required field
	Enabled *bool `locationName:"enabled" type:"boolean" required:"true"`

	// The event to which this notification setting is applied.
	//
	// Event is a required field
	Event *string `locationName:"event" type:"string" required:"true" enum:"NotificationEvent"`

	// The number of days before a notification event.
	Threshold *int64 `locationName:"threshold" min:"1" type:"integer"`
}

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

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

// SetChannel sets the Channel field's value.
func (s *NotificationSettingDetail) SetChannel(v string) *NotificationSettingDetail {
	s.Channel = &v
	return s
}

// SetConfiguredBy sets the ConfiguredBy field's value.
func (s *NotificationSettingDetail) SetConfiguredBy(v string) *NotificationSettingDetail {
	s.ConfiguredBy = &v
	return s
}

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

// SetEvent sets the Event field's value.
func (s *NotificationSettingDetail) SetEvent(v string) *NotificationSettingDetail {
	s.Event = &v
	return s
}

// SetThreshold sets the Threshold field's value.
func (s *NotificationSettingDetail) SetThreshold(v int64) *NotificationSettingDetail {
	s.Threshold = &v
	return s
}

// A notification setting key to reset. A notification setting key includes
// the event and the channel.
type NotificationSettingKey struct {
	_ struct{} `type:"structure"`

	// The specified channel of notification.
	Channel *string `locationName:"channel" type:"string" enum:"NotificationChannel"`

	// The notification setting event to reset.
	//
	// Event is a required field
	Event *string `locationName:"event" type:"string" required:"true" enum:"NotificationEvent"`
}

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

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

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

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

// SetChannel sets the Channel field's value.
func (s *NotificationSettingKey) SetChannel(v string) *NotificationSettingKey {
	s.Channel = &v
	return s
}

// SetEvent sets the Event field's value.
func (s *NotificationSettingKey) SetEvent(v string) *NotificationSettingKey {
	s.Event = &v
	return s
}

// The state of the profile after a read or write operation.
type ProfileDetail struct {
	_ struct{} `type:"structure"`

	// The ISO-8601 timestamp when the profile was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The Amazon Web Services account that created the profile.
	CreatedBy *string `locationName:"createdBy" type:"string"`

	// The number of seconds the vended session credentials are valid for.
	DurationSeconds *int64 `locationName:"durationSeconds" type:"integer"`

	// Indicates whether the profile is enabled.
	Enabled *bool `locationName:"enabled" type:"boolean"`

	// A list of managed policy ARNs that apply to the vended session credentials.
	ManagedPolicyArns []*string `locationName:"managedPolicyArns" type:"list"`

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

	// The ARN of the profile.
	ProfileArn *string `locationName:"profileArn" min:"1" type:"string"`

	// The unique identifier of the profile.
	ProfileId *string `locationName:"profileId" min:"36" type:"string"`

	// Specifies whether instance properties are required in temporary credential
	// requests with this profile.
	RequireInstanceProperties *bool `locationName:"requireInstanceProperties" type:"boolean"`

	// A list of IAM roles that this profile can assume in a temporary credential
	// request.
	RoleArns []*string `locationName:"roleArns" type:"list"`

	// A session policy that applies to the trust boundary of the vended session
	// credentials.
	SessionPolicy *string `locationName:"sessionPolicy" type:"string"`

	// The ISO-8601 timestamp when the profile was last updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601"`
}

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

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

// SetCreatedAt sets the CreatedAt field's value.
func (s *ProfileDetail) SetCreatedAt(v time.Time) *ProfileDetail {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *ProfileDetail) SetCreatedBy(v string) *ProfileDetail {
	s.CreatedBy = &v
	return s
}

// SetDurationSeconds sets the DurationSeconds field's value.
func (s *ProfileDetail) SetDurationSeconds(v int64) *ProfileDetail {
	s.DurationSeconds = &v
	return s
}

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

// SetManagedPolicyArns sets the ManagedPolicyArns field's value.
func (s *ProfileDetail) SetManagedPolicyArns(v []*string) *ProfileDetail {
	s.ManagedPolicyArns = v
	return s
}

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

// SetProfileArn sets the ProfileArn field's value.
func (s *ProfileDetail) SetProfileArn(v string) *ProfileDetail {
	s.ProfileArn = &v
	return s
}

// SetProfileId sets the ProfileId field's value.
func (s *ProfileDetail) SetProfileId(v string) *ProfileDetail {
	s.ProfileId = &v
	return s
}

// SetRequireInstanceProperties sets the RequireInstanceProperties field's value.
func (s *ProfileDetail) SetRequireInstanceProperties(v bool) *ProfileDetail {
	s.RequireInstanceProperties = &v
	return s
}

// SetRoleArns sets the RoleArns field's value.
func (s *ProfileDetail) SetRoleArns(v []*string) *ProfileDetail {
	s.RoleArns = v
	return s
}

// SetSessionPolicy sets the SessionPolicy field's value.
func (s *ProfileDetail) SetSessionPolicy(v string) *ProfileDetail {
	s.SessionPolicy = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *ProfileDetail) SetUpdatedAt(v time.Time) *ProfileDetail {
	s.UpdatedAt = &v
	return s
}

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

	// A list of notification settings to be associated to the trust anchor.
	//
	// NotificationSettings is a required field
	NotificationSettings []*NotificationSetting `locationName:"notificationSettings" type:"list" required:"true"`

	// The unique identifier of the trust anchor.
	//
	// TrustAnchorId is a required field
	TrustAnchorId *string `locationName:"trustAnchorId" min:"36" 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 PutNotificationSettingsInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetNotificationSettings sets the NotificationSettings field's value.
func (s *PutNotificationSettingsInput) SetNotificationSettings(v []*NotificationSetting) *PutNotificationSettingsInput {
	s.NotificationSettings = v
	return s
}

// SetTrustAnchorId sets the TrustAnchorId field's value.
func (s *PutNotificationSettingsInput) SetTrustAnchorId(v string) *PutNotificationSettingsInput {
	s.TrustAnchorId = &v
	return s
}

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

	// The state of the trust anchor after a read or write operation.
	//
	// TrustAnchor is a required field
	TrustAnchor *TrustAnchorDetail `locationName:"trustAnchor" type:"structure" required:"true"`
}

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

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

// SetTrustAnchor sets the TrustAnchor field's value.
func (s *PutNotificationSettingsOutput) SetTrustAnchor(v *TrustAnchorDetail) *PutNotificationSettingsOutput {
	s.TrustAnchor = v
	return s
}

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

	// A list of notification setting keys to reset. A notification setting key
	// includes the event and the channel.
	//
	// NotificationSettingKeys is a required field
	NotificationSettingKeys []*NotificationSettingKey `locationName:"notificationSettingKeys" type:"list" required:"true"`

	// The unique identifier of the trust anchor.
	//
	// TrustAnchorId is a required field
	TrustAnchorId *string `locationName:"trustAnchorId" min:"36" 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 ResetNotificationSettingsInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetNotificationSettingKeys sets the NotificationSettingKeys field's value.
func (s *ResetNotificationSettingsInput) SetNotificationSettingKeys(v []*NotificationSettingKey) *ResetNotificationSettingsInput {
	s.NotificationSettingKeys = v
	return s
}

// SetTrustAnchorId sets the TrustAnchorId field's value.
func (s *ResetNotificationSettingsInput) SetTrustAnchorId(v string) *ResetNotificationSettingsInput {
	s.TrustAnchorId = &v
	return s
}

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

	// The state of the trust anchor after a read or write operation.
	//
	// TrustAnchor is a required field
	TrustAnchor *TrustAnchorDetail `locationName:"trustAnchor" type:"structure" required:"true"`
}

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

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

// SetTrustAnchor sets the TrustAnchor field's value.
func (s *ResetNotificationSettingsOutput) SetTrustAnchor(v *TrustAnchorDetail) *ResetNotificationSettingsOutput {
	s.TrustAnchor = v
	return s
}

// The resource could not be found.
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
}

// The trust anchor type and its related certificate data.
type Source struct {
	_ struct{} `type:"structure"`

	// The data field of the trust anchor depending on its type.
	SourceData *SourceData `locationName:"sourceData" type:"structure"`

	// The type of the trust anchor.
	SourceType *string `locationName:"sourceType" type:"string" enum:"TrustAnchorType"`
}

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

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

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

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

// SetSourceData sets the SourceData field's value.
func (s *Source) SetSourceData(v *SourceData) *Source {
	s.SourceData = v
	return s
}

// SetSourceType sets the SourceType field's value.
func (s *Source) SetSourceType(v string) *Source {
	s.SourceType = &v
	return s
}

// The data field of the trust anchor depending on its type.
type SourceData struct {
	_ struct{} `type:"structure"`

	// The root certificate of the Private Certificate Authority specified by this
	// ARN is used in trust validation for temporary credential requests. Included
	// for trust anchors of type AWS_ACM_PCA.
	AcmPcaArn *string `locationName:"acmPcaArn" type:"string"`

	// The PEM-encoded data for the certificate anchor. Included for trust anchors
	// of type CERTIFICATE_BUNDLE.
	X509CertificateData *string `locationName:"x509CertificateData" 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 SourceData) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetAcmPcaArn sets the AcmPcaArn field's value.
func (s *SourceData) SetAcmPcaArn(v string) *SourceData {
	s.AcmPcaArn = &v
	return s
}

// SetX509CertificateData sets the X509CertificateData field's value.
func (s *SourceData) SetX509CertificateData(v string) *SourceData {
	s.X509CertificateData = &v
	return s
}

// The state of the subject after a read or write operation.
type SubjectDetail struct {
	_ struct{} `type:"structure"`

	// The ISO-8601 timestamp when the subject was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The temporary session credentials vended at the last authenticating call
	// with this subject.
	Credentials []*CredentialSummary `locationName:"credentials" type:"list"`

	// The enabled status of the subject.
	Enabled *bool `locationName:"enabled" type:"boolean"`

	// The specified instance properties associated with the request.
	InstanceProperties []*InstanceProperty `locationName:"instanceProperties" type:"list"`

	// The ISO-8601 timestamp of the last time this subject requested temporary
	// session credentials.
	LastSeenAt *time.Time `locationName:"lastSeenAt" type:"timestamp" timestampFormat:"iso8601"`

	// The ARN of the resource.
	SubjectArn *string `locationName:"subjectArn" type:"string"`

	// The id of the resource
	SubjectId *string `locationName:"subjectId" min:"36" type:"string"`

	// The ISO-8601 timestamp when the subject was last updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601"`

	// The x509 principal identifier of the authenticating certificate.
	X509Subject *string `locationName:"x509Subject" 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 SubjectDetail) String() string {
	return awsutil.Prettify(s)
}

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

// SetCreatedAt sets the CreatedAt field's value.
func (s *SubjectDetail) SetCreatedAt(v time.Time) *SubjectDetail {
	s.CreatedAt = &v
	return s
}

// SetCredentials sets the Credentials field's value.
func (s *SubjectDetail) SetCredentials(v []*CredentialSummary) *SubjectDetail {
	s.Credentials = v
	return s
}

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

// SetInstanceProperties sets the InstanceProperties field's value.
func (s *SubjectDetail) SetInstanceProperties(v []*InstanceProperty) *SubjectDetail {
	s.InstanceProperties = v
	return s
}

// SetLastSeenAt sets the LastSeenAt field's value.
func (s *SubjectDetail) SetLastSeenAt(v time.Time) *SubjectDetail {
	s.LastSeenAt = &v
	return s
}

// SetSubjectArn sets the SubjectArn field's value.
func (s *SubjectDetail) SetSubjectArn(v string) *SubjectDetail {
	s.SubjectArn = &v
	return s
}

// SetSubjectId sets the SubjectId field's value.
func (s *SubjectDetail) SetSubjectId(v string) *SubjectDetail {
	s.SubjectId = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *SubjectDetail) SetUpdatedAt(v time.Time) *SubjectDetail {
	s.UpdatedAt = &v
	return s
}

// SetX509Subject sets the X509Subject field's value.
func (s *SubjectDetail) SetX509Subject(v string) *SubjectDetail {
	s.X509Subject = &v
	return s
}

// A summary representation of subjects.
type SubjectSummary struct {
	_ struct{} `type:"structure"`

	// The ISO-8601 time stamp of when the certificate was first used in a temporary
	// credential request.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The enabled status of the subject.
	Enabled *bool `locationName:"enabled" type:"boolean"`

	// The ISO-8601 time stamp of when the certificate was last used in a temporary
	// credential request.
	LastSeenAt *time.Time `locationName:"lastSeenAt" type:"timestamp" timestampFormat:"iso8601"`

	// The ARN of the resource.
	SubjectArn *string `locationName:"subjectArn" type:"string"`

	// The id of the resource.
	SubjectId *string `locationName:"subjectId" min:"36" type:"string"`

	// The ISO-8601 timestamp when the subject was last updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601"`

	// The x509 principal identifier of the authenticating certificate.
	X509Subject *string `locationName:"x509Subject" 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 SubjectSummary) String() string {
	return awsutil.Prettify(s)
}

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

// SetCreatedAt sets the CreatedAt field's value.
func (s *SubjectSummary) SetCreatedAt(v time.Time) *SubjectSummary {
	s.CreatedAt = &v
	return s
}

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

// SetLastSeenAt sets the LastSeenAt field's value.
func (s *SubjectSummary) SetLastSeenAt(v time.Time) *SubjectSummary {
	s.LastSeenAt = &v
	return s
}

// SetSubjectArn sets the SubjectArn field's value.
func (s *SubjectSummary) SetSubjectArn(v string) *SubjectSummary {
	s.SubjectArn = &v
	return s
}

// SetSubjectId sets the SubjectId field's value.
func (s *SubjectSummary) SetSubjectId(v string) *SubjectSummary {
	s.SubjectId = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *SubjectSummary) SetUpdatedAt(v time.Time) *SubjectSummary {
	s.UpdatedAt = &v
	return s
}

// SetX509Subject sets the X509Subject field's value.
func (s *SubjectSummary) SetX509Subject(v string) *SubjectSummary {
	s.X509Subject = &v
	return s
}

// A label that consists of a key and value you define.
type Tag struct {
	_ struct{} `type:"structure"`

	// The tag key.
	//
	// Key is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Tag's
	// String and GoString methods.
	//
	// Key is a required field
	Key *string `locationName:"key" min:"1" type:"string" required:"true" sensitive:"true"`

	// The tag value.
	//
	// Value is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Tag's
	// String and GoString methods.
	//
	// Value is a required field
	Value *string `locationName:"value" type:"string" required:"true" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s 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 ARN of the resource.
	//
	// ResourceArn is a required field
	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"`

	// The tags to attach to the resource.
	//
	// 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()
}

// Too many tags.
type TooManyTagsException 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 TooManyTagsException) String() string {
	return awsutil.Prettify(s)
}

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

func newErrorTooManyTagsException(v protocol.ResponseMetadata) error {
	return &TooManyTagsException{
		RespMetadata: v,
	}
}

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

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

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

func (s *TooManyTagsException) 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 *TooManyTagsException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

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

// The state of the trust anchor after a read or write operation.
type TrustAnchorDetail struct {
	_ struct{} `type:"structure"`

	// The ISO-8601 timestamp when the trust anchor was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// Indicates whether the trust anchor is enabled.
	Enabled *bool `locationName:"enabled" type:"boolean"`

	// The name of the trust anchor.
	Name *string `locationName:"name" min:"1" type:"string"`

	// A list of notification settings to be associated to the trust anchor.
	NotificationSettings []*NotificationSettingDetail `locationName:"notificationSettings" type:"list"`

	// The trust anchor type and its related certificate data.
	Source *Source `locationName:"source" type:"structure"`

	// The ARN of the trust anchor.
	TrustAnchorArn *string `locationName:"trustAnchorArn" type:"string"`

	// The unique identifier of the trust anchor.
	TrustAnchorId *string `locationName:"trustAnchorId" min:"36" type:"string"`

	// The ISO-8601 timestamp when the trust anchor was last updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601"`
}

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

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

// SetCreatedAt sets the CreatedAt field's value.
func (s *TrustAnchorDetail) SetCreatedAt(v time.Time) *TrustAnchorDetail {
	s.CreatedAt = &v
	return s
}

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

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

// SetNotificationSettings sets the NotificationSettings field's value.
func (s *TrustAnchorDetail) SetNotificationSettings(v []*NotificationSettingDetail) *TrustAnchorDetail {
	s.NotificationSettings = v
	return s
}

// SetSource sets the Source field's value.
func (s *TrustAnchorDetail) SetSource(v *Source) *TrustAnchorDetail {
	s.Source = v
	return s
}

// SetTrustAnchorArn sets the TrustAnchorArn field's value.
func (s *TrustAnchorDetail) SetTrustAnchorArn(v string) *TrustAnchorDetail {
	s.TrustAnchorArn = &v
	return s
}

// SetTrustAnchorId sets the TrustAnchorId field's value.
func (s *TrustAnchorDetail) SetTrustAnchorId(v string) *TrustAnchorDetail {
	s.TrustAnchorId = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *TrustAnchorDetail) SetUpdatedAt(v time.Time) *TrustAnchorDetail {
	s.UpdatedAt = &v
	return s
}

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

	// The ARN of the resource.
	//
	// ResourceArn is a required field
	ResourceArn *string `locationName:"resourceArn" min:"1" type:"string" required:"true"`

	// A list of keys. Tag keys are the unique identifiers of tags.
	//
	// 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 UpdateCrlInput struct {
	_ struct{} `type:"structure"`

	// The x509 v3 specified certificate revocation list (CRL).
	// CrlData is automatically base64 encoded/decoded by the SDK.
	CrlData []byte `locationName:"crlData" min:"1" type:"blob"`

	// The unique identifier of the certificate revocation list (CRL).
	//
	// CrlId is a required field
	CrlId *string `location:"uri" locationName:"crlId" min:"36" type:"string" required:"true"`

	// The name of the Crl.
	Name *string `locationName:"name" 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 UpdateCrlInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetCrlData sets the CrlData field's value.
func (s *UpdateCrlInput) SetCrlData(v []byte) *UpdateCrlInput {
	s.CrlData = v
	return s
}

// SetCrlId sets the CrlId field's value.
func (s *UpdateCrlInput) SetCrlId(v string) *UpdateCrlInput {
	s.CrlId = &v
	return s
}

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

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

	// The state of the certificate revocation list (CRL) after a read or write
	// operation.
	//
	// Crl is a required field
	Crl *CrlDetail `locationName:"crl" type:"structure" required:"true"`
}

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

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

// SetCrl sets the Crl field's value.
func (s *UpdateCrlOutput) SetCrl(v *CrlDetail) *UpdateCrlOutput {
	s.Crl = v
	return s
}

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

	// The number of seconds the vended session credentials are valid for.
	DurationSeconds *int64 `locationName:"durationSeconds" min:"900" type:"integer"`

	// A list of managed policy ARNs that apply to the vended session credentials.
	ManagedPolicyArns []*string `locationName:"managedPolicyArns" type:"list"`

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

	// The unique identifier of the profile.
	//
	// ProfileId is a required field
	ProfileId *string `location:"uri" locationName:"profileId" min:"36" type:"string" required:"true"`

	// A list of IAM roles that this profile can assume in a temporary credential
	// request.
	RoleArns []*string `locationName:"roleArns" type:"list"`

	// A session policy that applies to the trust boundary of the vended session
	// credentials.
	SessionPolicy *string `locationName:"sessionPolicy" 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 UpdateProfileInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDurationSeconds sets the DurationSeconds field's value.
func (s *UpdateProfileInput) SetDurationSeconds(v int64) *UpdateProfileInput {
	s.DurationSeconds = &v
	return s
}

// SetManagedPolicyArns sets the ManagedPolicyArns field's value.
func (s *UpdateProfileInput) SetManagedPolicyArns(v []*string) *UpdateProfileInput {
	s.ManagedPolicyArns = v
	return s
}

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

// SetProfileId sets the ProfileId field's value.
func (s *UpdateProfileInput) SetProfileId(v string) *UpdateProfileInput {
	s.ProfileId = &v
	return s
}

// SetRoleArns sets the RoleArns field's value.
func (s *UpdateProfileInput) SetRoleArns(v []*string) *UpdateProfileInput {
	s.RoleArns = v
	return s
}

// SetSessionPolicy sets the SessionPolicy field's value.
func (s *UpdateProfileInput) SetSessionPolicy(v string) *UpdateProfileInput {
	s.SessionPolicy = &v
	return s
}

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

	// The state of the profile after a read or write operation.
	Profile *ProfileDetail `locationName:"profile" 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 UpdateProfileOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetProfile sets the Profile field's value.
func (s *UpdateProfileOutput) SetProfile(v *ProfileDetail) *UpdateProfileOutput {
	s.Profile = v
	return s
}

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

	// The name of the trust anchor.
	Name *string `locationName:"name" min:"1" type:"string"`

	// The trust anchor type and its related certificate data.
	Source *Source `locationName:"source" type:"structure"`

	// The unique identifier of the trust anchor.
	//
	// TrustAnchorId is a required field
	TrustAnchorId *string `location:"uri" locationName:"trustAnchorId" min:"36" 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 UpdateTrustAnchorInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetSource sets the Source field's value.
func (s *UpdateTrustAnchorInput) SetSource(v *Source) *UpdateTrustAnchorInput {
	s.Source = v
	return s
}

// SetTrustAnchorId sets the TrustAnchorId field's value.
func (s *UpdateTrustAnchorInput) SetTrustAnchorId(v string) *UpdateTrustAnchorInput {
	s.TrustAnchorId = &v
	return s
}

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

	// The state of the trust anchor after a read or write operation.
	//
	// TrustAnchor is a required field
	TrustAnchor *TrustAnchorDetail `locationName:"trustAnchor" type:"structure" required:"true"`
}

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

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

// SetTrustAnchor sets the TrustAnchor field's value.
func (s *UpdateTrustAnchorOutput) SetTrustAnchor(v *TrustAnchorDetail) *UpdateTrustAnchorOutput {
	s.TrustAnchor = v
	return s
}

// Validation exception error.
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
}

const (
	// NotificationChannelAll is a NotificationChannel enum value
	NotificationChannelAll = "ALL"
)

// NotificationChannel_Values returns all elements of the NotificationChannel enum
func NotificationChannel_Values() []string {
	return []string{
		NotificationChannelAll,
	}
}

const (
	// NotificationEventCaCertificateExpiry is a NotificationEvent enum value
	NotificationEventCaCertificateExpiry = "CA_CERTIFICATE_EXPIRY"

	// NotificationEventEndEntityCertificateExpiry is a NotificationEvent enum value
	NotificationEventEndEntityCertificateExpiry = "END_ENTITY_CERTIFICATE_EXPIRY"
)

// NotificationEvent_Values returns all elements of the NotificationEvent enum
func NotificationEvent_Values() []string {
	return []string{
		NotificationEventCaCertificateExpiry,
		NotificationEventEndEntityCertificateExpiry,
	}
}

const (
	// TrustAnchorTypeAwsAcmPca is a TrustAnchorType enum value
	TrustAnchorTypeAwsAcmPca = "AWS_ACM_PCA"

	// TrustAnchorTypeCertificateBundle is a TrustAnchorType enum value
	TrustAnchorTypeCertificateBundle = "CERTIFICATE_BUNDLE"

	// TrustAnchorTypeSelfSignedRepository is a TrustAnchorType enum value
	TrustAnchorTypeSelfSignedRepository = "SELF_SIGNED_REPOSITORY"
)

// TrustAnchorType_Values returns all elements of the TrustAnchorType enum
func TrustAnchorType_Values() []string {
	return []string{
		TrustAnchorTypeAwsAcmPca,
		TrustAnchorTypeCertificateBundle,
		TrustAnchorTypeSelfSignedRepository,
	}
}
© 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