404 Not Found


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

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

package datazone

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 opAcceptPredictions = "AcceptPredictions"

// AcceptPredictionsRequest generates a "aws/request.Request" representing the
// client's request for the AcceptPredictions 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 AcceptPredictions for more information on using the AcceptPredictions
// 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 AcceptPredictionsRequest method.
//	req, resp := client.AcceptPredictionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/AcceptPredictions
func (c *DataZone) AcceptPredictionsRequest(input *AcceptPredictionsInput) (req *request.Request, output *AcceptPredictionsOutput) {
	op := &request.Operation{
		Name:       opAcceptPredictions,
		HTTPMethod: "PUT",
		HTTPPath:   "/v2/domains/{domainIdentifier}/assets/{identifier}/accept-predictions",
	}

	if input == nil {
		input = &AcceptPredictionsInput{}
	}

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

// AcceptPredictions API operation for Amazon DataZone.
//
// Accepts automatically generated business-friendly metadata for your Amazon
// DataZone assets.
//
// 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 Amazon DataZone's
// API operation AcceptPredictions for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/AcceptPredictions
func (c *DataZone) AcceptPredictions(input *AcceptPredictionsInput) (*AcceptPredictionsOutput, error) {
	req, out := c.AcceptPredictionsRequest(input)
	return out, req.Send()
}

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

const opAcceptSubscriptionRequest = "AcceptSubscriptionRequest"

// AcceptSubscriptionRequestRequest generates a "aws/request.Request" representing the
// client's request for the AcceptSubscriptionRequest 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 AcceptSubscriptionRequest for more information on using the AcceptSubscriptionRequest
// 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 AcceptSubscriptionRequestRequest method.
//	req, resp := client.AcceptSubscriptionRequestRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/AcceptSubscriptionRequest
func (c *DataZone) AcceptSubscriptionRequestRequest(input *AcceptSubscriptionRequestInput) (req *request.Request, output *AcceptSubscriptionRequestOutput) {
	op := &request.Operation{
		Name:       opAcceptSubscriptionRequest,
		HTTPMethod: "PUT",
		HTTPPath:   "/v2/domains/{domainIdentifier}/subscription-requests/{identifier}/accept",
	}

	if input == nil {
		input = &AcceptSubscriptionRequestInput{}
	}

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

// AcceptSubscriptionRequest API operation for Amazon DataZone.
//
// Accepts a subscription request to a specific asset.
//
// 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 Amazon DataZone's
// API operation AcceptSubscriptionRequest for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/AcceptSubscriptionRequest
func (c *DataZone) AcceptSubscriptionRequest(input *AcceptSubscriptionRequestInput) (*AcceptSubscriptionRequestOutput, error) {
	req, out := c.AcceptSubscriptionRequestRequest(input)
	return out, req.Send()
}

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

const opCancelSubscription = "CancelSubscription"

// CancelSubscriptionRequest generates a "aws/request.Request" representing the
// client's request for the CancelSubscription 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 CancelSubscription for more information on using the CancelSubscription
// 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 CancelSubscriptionRequest method.
//	req, resp := client.CancelSubscriptionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CancelSubscription
func (c *DataZone) CancelSubscriptionRequest(input *CancelSubscriptionInput) (req *request.Request, output *CancelSubscriptionOutput) {
	op := &request.Operation{
		Name:       opCancelSubscription,
		HTTPMethod: "PUT",
		HTTPPath:   "/v2/domains/{domainIdentifier}/subscriptions/{identifier}/cancel",
	}

	if input == nil {
		input = &CancelSubscriptionInput{}
	}

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

// CancelSubscription API operation for Amazon DataZone.
//
// Cancels the subscription to the specified asset.
//
// 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 Amazon DataZone's
// API operation CancelSubscription for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CancelSubscription
func (c *DataZone) CancelSubscription(input *CancelSubscriptionInput) (*CancelSubscriptionOutput, error) {
	req, out := c.CancelSubscriptionRequest(input)
	return out, req.Send()
}

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

const opCreateAsset = "CreateAsset"

// CreateAssetRequest generates a "aws/request.Request" representing the
// client's request for the CreateAsset 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 CreateAsset for more information on using the CreateAsset
// 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 CreateAssetRequest method.
//	req, resp := client.CreateAssetRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateAsset
func (c *DataZone) CreateAssetRequest(input *CreateAssetInput) (req *request.Request, output *CreateAssetOutput) {
	op := &request.Operation{
		Name:       opCreateAsset,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/assets",
	}

	if input == nil {
		input = &CreateAssetInput{}
	}

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

// CreateAsset API operation for Amazon DataZone.
//
// Creates an asset in Amazon DataZone catalog.
//
// 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 Amazon DataZone's
// API operation CreateAsset for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateAsset
func (c *DataZone) CreateAsset(input *CreateAssetInput) (*CreateAssetOutput, error) {
	req, out := c.CreateAssetRequest(input)
	return out, req.Send()
}

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

const opCreateAssetRevision = "CreateAssetRevision"

// CreateAssetRevisionRequest generates a "aws/request.Request" representing the
// client's request for the CreateAssetRevision 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 CreateAssetRevision for more information on using the CreateAssetRevision
// 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 CreateAssetRevisionRequest method.
//	req, resp := client.CreateAssetRevisionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateAssetRevision
func (c *DataZone) CreateAssetRevisionRequest(input *CreateAssetRevisionInput) (req *request.Request, output *CreateAssetRevisionOutput) {
	op := &request.Operation{
		Name:       opCreateAssetRevision,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/assets/{identifier}/revisions",
	}

	if input == nil {
		input = &CreateAssetRevisionInput{}
	}

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

// CreateAssetRevision API operation for Amazon DataZone.
//
// Creates a revision of the asset.
//
// 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 Amazon DataZone's
// API operation CreateAssetRevision for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateAssetRevision
func (c *DataZone) CreateAssetRevision(input *CreateAssetRevisionInput) (*CreateAssetRevisionOutput, error) {
	req, out := c.CreateAssetRevisionRequest(input)
	return out, req.Send()
}

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

const opCreateAssetType = "CreateAssetType"

// CreateAssetTypeRequest generates a "aws/request.Request" representing the
// client's request for the CreateAssetType 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 CreateAssetType for more information on using the CreateAssetType
// 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 CreateAssetTypeRequest method.
//	req, resp := client.CreateAssetTypeRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateAssetType
func (c *DataZone) CreateAssetTypeRequest(input *CreateAssetTypeInput) (req *request.Request, output *CreateAssetTypeOutput) {
	op := &request.Operation{
		Name:       opCreateAssetType,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/asset-types",
	}

	if input == nil {
		input = &CreateAssetTypeInput{}
	}

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

// CreateAssetType API operation for Amazon DataZone.
//
// Creates a custom asset type.
//
// 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 Amazon DataZone's
// API operation CreateAssetType for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateAssetType
func (c *DataZone) CreateAssetType(input *CreateAssetTypeInput) (*CreateAssetTypeOutput, error) {
	req, out := c.CreateAssetTypeRequest(input)
	return out, req.Send()
}

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

const opCreateDataSource = "CreateDataSource"

// CreateDataSourceRequest generates a "aws/request.Request" representing the
// client's request for the CreateDataSource 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 CreateDataSource for more information on using the CreateDataSource
// 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 CreateDataSourceRequest method.
//	req, resp := client.CreateDataSourceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateDataSource
func (c *DataZone) CreateDataSourceRequest(input *CreateDataSourceInput) (req *request.Request, output *CreateDataSourceOutput) {
	op := &request.Operation{
		Name:       opCreateDataSource,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/data-sources",
	}

	if input == nil {
		input = &CreateDataSourceInput{}
	}

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

// CreateDataSource API operation for Amazon DataZone.
//
// Creates an Amazon DataZone data source.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon DataZone's
// API operation CreateDataSource for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateDataSource
func (c *DataZone) CreateDataSource(input *CreateDataSourceInput) (*CreateDataSourceOutput, error) {
	req, out := c.CreateDataSourceRequest(input)
	return out, req.Send()
}

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

const opCreateDomain = "CreateDomain"

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

	if input == nil {
		input = &CreateDomainInput{}
	}

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

// CreateDomain API operation for Amazon DataZone.
//
// Creates an Amazon DataZone domain.
//
// 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 Amazon DataZone's
// API operation CreateDomain for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateDomain
func (c *DataZone) CreateDomain(input *CreateDomainInput) (*CreateDomainOutput, error) {
	req, out := c.CreateDomainRequest(input)
	return out, req.Send()
}

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

const opCreateEnvironment = "CreateEnvironment"

// CreateEnvironmentRequest generates a "aws/request.Request" representing the
// client's request for the CreateEnvironment 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 CreateEnvironment for more information on using the CreateEnvironment
// 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 CreateEnvironmentRequest method.
//	req, resp := client.CreateEnvironmentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateEnvironment
func (c *DataZone) CreateEnvironmentRequest(input *CreateEnvironmentInput) (req *request.Request, output *CreateEnvironmentOutput) {
	op := &request.Operation{
		Name:       opCreateEnvironment,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/environments",
	}

	if input == nil {
		input = &CreateEnvironmentInput{}
	}

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

// CreateEnvironment API operation for Amazon DataZone.
//
// Create an Amazon DataZone environment.
//
// 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 Amazon DataZone's
// API operation CreateEnvironment for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateEnvironment
func (c *DataZone) CreateEnvironment(input *CreateEnvironmentInput) (*CreateEnvironmentOutput, error) {
	req, out := c.CreateEnvironmentRequest(input)
	return out, req.Send()
}

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

const opCreateEnvironmentProfile = "CreateEnvironmentProfile"

// CreateEnvironmentProfileRequest generates a "aws/request.Request" representing the
// client's request for the CreateEnvironmentProfile 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 CreateEnvironmentProfile for more information on using the CreateEnvironmentProfile
// 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 CreateEnvironmentProfileRequest method.
//	req, resp := client.CreateEnvironmentProfileRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateEnvironmentProfile
func (c *DataZone) CreateEnvironmentProfileRequest(input *CreateEnvironmentProfileInput) (req *request.Request, output *CreateEnvironmentProfileOutput) {
	op := &request.Operation{
		Name:       opCreateEnvironmentProfile,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/environment-profiles",
	}

	if input == nil {
		input = &CreateEnvironmentProfileInput{}
	}

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

// CreateEnvironmentProfile API operation for Amazon DataZone.
//
// Creates an Amazon DataZone environment profile.
//
// 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 Amazon DataZone's
// API operation CreateEnvironmentProfile for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateEnvironmentProfile
func (c *DataZone) CreateEnvironmentProfile(input *CreateEnvironmentProfileInput) (*CreateEnvironmentProfileOutput, error) {
	req, out := c.CreateEnvironmentProfileRequest(input)
	return out, req.Send()
}

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

const opCreateFormType = "CreateFormType"

// CreateFormTypeRequest generates a "aws/request.Request" representing the
// client's request for the CreateFormType 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 CreateFormType for more information on using the CreateFormType
// 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 CreateFormTypeRequest method.
//	req, resp := client.CreateFormTypeRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateFormType
func (c *DataZone) CreateFormTypeRequest(input *CreateFormTypeInput) (req *request.Request, output *CreateFormTypeOutput) {
	op := &request.Operation{
		Name:       opCreateFormType,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/form-types",
	}

	if input == nil {
		input = &CreateFormTypeInput{}
	}

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

// CreateFormType API operation for Amazon DataZone.
//
// Creates a metadata form type.
//
// 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 Amazon DataZone's
// API operation CreateFormType for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateFormType
func (c *DataZone) CreateFormType(input *CreateFormTypeInput) (*CreateFormTypeOutput, error) {
	req, out := c.CreateFormTypeRequest(input)
	return out, req.Send()
}

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

const opCreateGlossary = "CreateGlossary"

// CreateGlossaryRequest generates a "aws/request.Request" representing the
// client's request for the CreateGlossary 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 CreateGlossary for more information on using the CreateGlossary
// 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 CreateGlossaryRequest method.
//	req, resp := client.CreateGlossaryRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateGlossary
func (c *DataZone) CreateGlossaryRequest(input *CreateGlossaryInput) (req *request.Request, output *CreateGlossaryOutput) {
	op := &request.Operation{
		Name:       opCreateGlossary,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/glossaries",
	}

	if input == nil {
		input = &CreateGlossaryInput{}
	}

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

// CreateGlossary API operation for Amazon DataZone.
//
// Creates an Amazon DataZone business glossary.
//
// 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 Amazon DataZone's
// API operation CreateGlossary for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateGlossary
func (c *DataZone) CreateGlossary(input *CreateGlossaryInput) (*CreateGlossaryOutput, error) {
	req, out := c.CreateGlossaryRequest(input)
	return out, req.Send()
}

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

const opCreateGlossaryTerm = "CreateGlossaryTerm"

// CreateGlossaryTermRequest generates a "aws/request.Request" representing the
// client's request for the CreateGlossaryTerm 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 CreateGlossaryTerm for more information on using the CreateGlossaryTerm
// 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 CreateGlossaryTermRequest method.
//	req, resp := client.CreateGlossaryTermRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateGlossaryTerm
func (c *DataZone) CreateGlossaryTermRequest(input *CreateGlossaryTermInput) (req *request.Request, output *CreateGlossaryTermOutput) {
	op := &request.Operation{
		Name:       opCreateGlossaryTerm,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/glossary-terms",
	}

	if input == nil {
		input = &CreateGlossaryTermInput{}
	}

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

// CreateGlossaryTerm API operation for Amazon DataZone.
//
// Creates a business glossary term.
//
// 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 Amazon DataZone's
// API operation CreateGlossaryTerm for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateGlossaryTerm
func (c *DataZone) CreateGlossaryTerm(input *CreateGlossaryTermInput) (*CreateGlossaryTermOutput, error) {
	req, out := c.CreateGlossaryTermRequest(input)
	return out, req.Send()
}

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

const opCreateGroupProfile = "CreateGroupProfile"

// CreateGroupProfileRequest generates a "aws/request.Request" representing the
// client's request for the CreateGroupProfile 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 CreateGroupProfile for more information on using the CreateGroupProfile
// 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 CreateGroupProfileRequest method.
//	req, resp := client.CreateGroupProfileRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateGroupProfile
func (c *DataZone) CreateGroupProfileRequest(input *CreateGroupProfileInput) (req *request.Request, output *CreateGroupProfileOutput) {
	op := &request.Operation{
		Name:       opCreateGroupProfile,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/group-profiles",
	}

	if input == nil {
		input = &CreateGroupProfileInput{}
	}

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

// CreateGroupProfile API operation for Amazon DataZone.
//
// Creates a group profile in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation CreateGroupProfile for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateGroupProfile
func (c *DataZone) CreateGroupProfile(input *CreateGroupProfileInput) (*CreateGroupProfileOutput, error) {
	req, out := c.CreateGroupProfileRequest(input)
	return out, req.Send()
}

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

const opCreateListingChangeSet = "CreateListingChangeSet"

// CreateListingChangeSetRequest generates a "aws/request.Request" representing the
// client's request for the CreateListingChangeSet 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 CreateListingChangeSet for more information on using the CreateListingChangeSet
// 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 CreateListingChangeSetRequest method.
//	req, resp := client.CreateListingChangeSetRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateListingChangeSet
func (c *DataZone) CreateListingChangeSetRequest(input *CreateListingChangeSetInput) (req *request.Request, output *CreateListingChangeSetOutput) {
	op := &request.Operation{
		Name:       opCreateListingChangeSet,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/listings/change-set",
	}

	if input == nil {
		input = &CreateListingChangeSetInput{}
	}

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

// CreateListingChangeSet API operation for Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation CreateListingChangeSet for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateListingChangeSet
func (c *DataZone) CreateListingChangeSet(input *CreateListingChangeSetInput) (*CreateListingChangeSetOutput, error) {
	req, out := c.CreateListingChangeSetRequest(input)
	return out, req.Send()
}

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

const opCreateProject = "CreateProject"

// CreateProjectRequest generates a "aws/request.Request" representing the
// client's request for the CreateProject 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 CreateProject for more information on using the CreateProject
// 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 CreateProjectRequest method.
//	req, resp := client.CreateProjectRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateProject
func (c *DataZone) CreateProjectRequest(input *CreateProjectInput) (req *request.Request, output *CreateProjectOutput) {
	op := &request.Operation{
		Name:       opCreateProject,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/projects",
	}

	if input == nil {
		input = &CreateProjectInput{}
	}

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

// CreateProject API operation for Amazon DataZone.
//
// Creates an Amazon DataZone project.
//
// 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 Amazon DataZone's
// API operation CreateProject for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateProject
func (c *DataZone) CreateProject(input *CreateProjectInput) (*CreateProjectOutput, error) {
	req, out := c.CreateProjectRequest(input)
	return out, req.Send()
}

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

const opCreateProjectMembership = "CreateProjectMembership"

// CreateProjectMembershipRequest generates a "aws/request.Request" representing the
// client's request for the CreateProjectMembership 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 CreateProjectMembership for more information on using the CreateProjectMembership
// 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 CreateProjectMembershipRequest method.
//	req, resp := client.CreateProjectMembershipRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateProjectMembership
func (c *DataZone) CreateProjectMembershipRequest(input *CreateProjectMembershipInput) (req *request.Request, output *CreateProjectMembershipOutput) {
	op := &request.Operation{
		Name:       opCreateProjectMembership,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/projects/{projectIdentifier}/createMembership",
	}

	if input == nil {
		input = &CreateProjectMembershipInput{}
	}

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

// CreateProjectMembership API operation for Amazon DataZone.
//
// Creates a project membership in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation CreateProjectMembership for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateProjectMembership
func (c *DataZone) CreateProjectMembership(input *CreateProjectMembershipInput) (*CreateProjectMembershipOutput, error) {
	req, out := c.CreateProjectMembershipRequest(input)
	return out, req.Send()
}

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

const opCreateSubscriptionGrant = "CreateSubscriptionGrant"

// CreateSubscriptionGrantRequest generates a "aws/request.Request" representing the
// client's request for the CreateSubscriptionGrant 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 CreateSubscriptionGrant for more information on using the CreateSubscriptionGrant
// 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 CreateSubscriptionGrantRequest method.
//	req, resp := client.CreateSubscriptionGrantRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateSubscriptionGrant
func (c *DataZone) CreateSubscriptionGrantRequest(input *CreateSubscriptionGrantInput) (req *request.Request, output *CreateSubscriptionGrantOutput) {
	op := &request.Operation{
		Name:       opCreateSubscriptionGrant,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/subscription-grants",
	}

	if input == nil {
		input = &CreateSubscriptionGrantInput{}
	}

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

// CreateSubscriptionGrant API operation for Amazon DataZone.
//
// Creates a subsscription grant in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation CreateSubscriptionGrant for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateSubscriptionGrant
func (c *DataZone) CreateSubscriptionGrant(input *CreateSubscriptionGrantInput) (*CreateSubscriptionGrantOutput, error) {
	req, out := c.CreateSubscriptionGrantRequest(input)
	return out, req.Send()
}

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

const opCreateSubscriptionRequest = "CreateSubscriptionRequest"

// CreateSubscriptionRequestRequest generates a "aws/request.Request" representing the
// client's request for the CreateSubscriptionRequest 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 CreateSubscriptionRequest for more information on using the CreateSubscriptionRequest
// 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 CreateSubscriptionRequestRequest method.
//	req, resp := client.CreateSubscriptionRequestRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateSubscriptionRequest
func (c *DataZone) CreateSubscriptionRequestRequest(input *CreateSubscriptionRequestInput) (req *request.Request, output *CreateSubscriptionRequestOutput) {
	op := &request.Operation{
		Name:       opCreateSubscriptionRequest,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/subscription-requests",
	}

	if input == nil {
		input = &CreateSubscriptionRequestInput{}
	}

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

// CreateSubscriptionRequest API operation for Amazon DataZone.
//
// Creates a subscription request in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation CreateSubscriptionRequest for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateSubscriptionRequest
func (c *DataZone) CreateSubscriptionRequest(input *CreateSubscriptionRequestInput) (*CreateSubscriptionRequestOutput, error) {
	req, out := c.CreateSubscriptionRequestRequest(input)
	return out, req.Send()
}

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

const opCreateSubscriptionTarget = "CreateSubscriptionTarget"

// CreateSubscriptionTargetRequest generates a "aws/request.Request" representing the
// client's request for the CreateSubscriptionTarget 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 CreateSubscriptionTarget for more information on using the CreateSubscriptionTarget
// 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 CreateSubscriptionTargetRequest method.
//	req, resp := client.CreateSubscriptionTargetRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateSubscriptionTarget
func (c *DataZone) CreateSubscriptionTargetRequest(input *CreateSubscriptionTargetInput) (req *request.Request, output *CreateSubscriptionTargetOutput) {
	op := &request.Operation{
		Name:       opCreateSubscriptionTarget,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/environments/{environmentIdentifier}/subscription-targets",
	}

	if input == nil {
		input = &CreateSubscriptionTargetInput{}
	}

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

// CreateSubscriptionTarget API operation for Amazon DataZone.
//
// Creates a subscription target in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation CreateSubscriptionTarget for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateSubscriptionTarget
func (c *DataZone) CreateSubscriptionTarget(input *CreateSubscriptionTargetInput) (*CreateSubscriptionTargetOutput, error) {
	req, out := c.CreateSubscriptionTargetRequest(input)
	return out, req.Send()
}

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

const opCreateUserProfile = "CreateUserProfile"

// CreateUserProfileRequest generates a "aws/request.Request" representing the
// client's request for the CreateUserProfile 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 CreateUserProfile for more information on using the CreateUserProfile
// 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 CreateUserProfileRequest method.
//	req, resp := client.CreateUserProfileRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateUserProfile
func (c *DataZone) CreateUserProfileRequest(input *CreateUserProfileInput) (req *request.Request, output *CreateUserProfileOutput) {
	op := &request.Operation{
		Name:       opCreateUserProfile,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/user-profiles",
	}

	if input == nil {
		input = &CreateUserProfileInput{}
	}

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

// CreateUserProfile API operation for Amazon DataZone.
//
// Creates a user profile in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation CreateUserProfile for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/CreateUserProfile
func (c *DataZone) CreateUserProfile(input *CreateUserProfileInput) (*CreateUserProfileOutput, error) {
	req, out := c.CreateUserProfileRequest(input)
	return out, req.Send()
}

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

const opDeleteAsset = "DeleteAsset"

// DeleteAssetRequest generates a "aws/request.Request" representing the
// client's request for the DeleteAsset 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 DeleteAsset for more information on using the DeleteAsset
// 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 DeleteAssetRequest method.
//	req, resp := client.DeleteAssetRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteAsset
func (c *DataZone) DeleteAssetRequest(input *DeleteAssetInput) (req *request.Request, output *DeleteAssetOutput) {
	op := &request.Operation{
		Name:       opDeleteAsset,
		HTTPMethod: "DELETE",
		HTTPPath:   "/v2/domains/{domainIdentifier}/assets/{identifier}",
	}

	if input == nil {
		input = &DeleteAssetInput{}
	}

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

// DeleteAsset API operation for Amazon DataZone.
//
// Delets an asset in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation DeleteAsset for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteAsset
func (c *DataZone) DeleteAsset(input *DeleteAssetInput) (*DeleteAssetOutput, error) {
	req, out := c.DeleteAssetRequest(input)
	return out, req.Send()
}

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

const opDeleteAssetType = "DeleteAssetType"

// DeleteAssetTypeRequest generates a "aws/request.Request" representing the
// client's request for the DeleteAssetType 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 DeleteAssetType for more information on using the DeleteAssetType
// 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 DeleteAssetTypeRequest method.
//	req, resp := client.DeleteAssetTypeRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteAssetType
func (c *DataZone) DeleteAssetTypeRequest(input *DeleteAssetTypeInput) (req *request.Request, output *DeleteAssetTypeOutput) {
	op := &request.Operation{
		Name:       opDeleteAssetType,
		HTTPMethod: "DELETE",
		HTTPPath:   "/v2/domains/{domainIdentifier}/asset-types/{identifier}",
	}

	if input == nil {
		input = &DeleteAssetTypeInput{}
	}

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

// DeleteAssetType API operation for Amazon DataZone.
//
// Deletes an asset type in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation DeleteAssetType for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteAssetType
func (c *DataZone) DeleteAssetType(input *DeleteAssetTypeInput) (*DeleteAssetTypeOutput, error) {
	req, out := c.DeleteAssetTypeRequest(input)
	return out, req.Send()
}

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

const opDeleteDataSource = "DeleteDataSource"

// DeleteDataSourceRequest generates a "aws/request.Request" representing the
// client's request for the DeleteDataSource 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 DeleteDataSource for more information on using the DeleteDataSource
// 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 DeleteDataSourceRequest method.
//	req, resp := client.DeleteDataSourceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteDataSource
func (c *DataZone) DeleteDataSourceRequest(input *DeleteDataSourceInput) (req *request.Request, output *DeleteDataSourceOutput) {
	op := &request.Operation{
		Name:       opDeleteDataSource,
		HTTPMethod: "DELETE",
		HTTPPath:   "/v2/domains/{domainIdentifier}/data-sources/{identifier}",
	}

	if input == nil {
		input = &DeleteDataSourceInput{}
	}

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

// DeleteDataSource API operation for Amazon DataZone.
//
// Deletes a data source in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation DeleteDataSource for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteDataSource
func (c *DataZone) DeleteDataSource(input *DeleteDataSourceInput) (*DeleteDataSourceOutput, error) {
	req, out := c.DeleteDataSourceRequest(input)
	return out, req.Send()
}

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

const opDeleteDomain = "DeleteDomain"

// DeleteDomainRequest generates a "aws/request.Request" representing the
// client's request for the DeleteDomain 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 DeleteDomain for more information on using the DeleteDomain
// 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 DeleteDomainRequest method.
//	req, resp := client.DeleteDomainRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteDomain
func (c *DataZone) DeleteDomainRequest(input *DeleteDomainInput) (req *request.Request, output *DeleteDomainOutput) {
	op := &request.Operation{
		Name:       opDeleteDomain,
		HTTPMethod: "DELETE",
		HTTPPath:   "/v2/domains/{identifier}",
	}

	if input == nil {
		input = &DeleteDomainInput{}
	}

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

// DeleteDomain API operation for Amazon DataZone.
//
// Deletes a Amazon DataZone domain.
//
// 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 Amazon DataZone's
// API operation DeleteDomain for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteDomain
func (c *DataZone) DeleteDomain(input *DeleteDomainInput) (*DeleteDomainOutput, error) {
	req, out := c.DeleteDomainRequest(input)
	return out, req.Send()
}

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

const opDeleteEnvironment = "DeleteEnvironment"

// DeleteEnvironmentRequest generates a "aws/request.Request" representing the
// client's request for the DeleteEnvironment 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 DeleteEnvironment for more information on using the DeleteEnvironment
// 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 DeleteEnvironmentRequest method.
//	req, resp := client.DeleteEnvironmentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteEnvironment
func (c *DataZone) DeleteEnvironmentRequest(input *DeleteEnvironmentInput) (req *request.Request, output *DeleteEnvironmentOutput) {
	op := &request.Operation{
		Name:       opDeleteEnvironment,
		HTTPMethod: "DELETE",
		HTTPPath:   "/v2/domains/{domainIdentifier}/environments/{identifier}",
	}

	if input == nil {
		input = &DeleteEnvironmentInput{}
	}

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

// DeleteEnvironment API operation for Amazon DataZone.
//
// Deletes an environment in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation DeleteEnvironment for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteEnvironment
func (c *DataZone) DeleteEnvironment(input *DeleteEnvironmentInput) (*DeleteEnvironmentOutput, error) {
	req, out := c.DeleteEnvironmentRequest(input)
	return out, req.Send()
}

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

const opDeleteEnvironmentBlueprintConfiguration = "DeleteEnvironmentBlueprintConfiguration"

// DeleteEnvironmentBlueprintConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the DeleteEnvironmentBlueprintConfiguration 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 DeleteEnvironmentBlueprintConfiguration for more information on using the DeleteEnvironmentBlueprintConfiguration
// 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 DeleteEnvironmentBlueprintConfigurationRequest method.
//	req, resp := client.DeleteEnvironmentBlueprintConfigurationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteEnvironmentBlueprintConfiguration
func (c *DataZone) DeleteEnvironmentBlueprintConfigurationRequest(input *DeleteEnvironmentBlueprintConfigurationInput) (req *request.Request, output *DeleteEnvironmentBlueprintConfigurationOutput) {
	op := &request.Operation{
		Name:       opDeleteEnvironmentBlueprintConfiguration,
		HTTPMethod: "DELETE",
		HTTPPath:   "/v2/domains/{domainIdentifier}/environment-blueprint-configurations/{environmentBlueprintIdentifier}",
	}

	if input == nil {
		input = &DeleteEnvironmentBlueprintConfigurationInput{}
	}

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

// DeleteEnvironmentBlueprintConfiguration API operation for Amazon DataZone.
//
// Deletes the blueprint configuration in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation DeleteEnvironmentBlueprintConfiguration for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteEnvironmentBlueprintConfiguration
func (c *DataZone) DeleteEnvironmentBlueprintConfiguration(input *DeleteEnvironmentBlueprintConfigurationInput) (*DeleteEnvironmentBlueprintConfigurationOutput, error) {
	req, out := c.DeleteEnvironmentBlueprintConfigurationRequest(input)
	return out, req.Send()
}

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

const opDeleteEnvironmentProfile = "DeleteEnvironmentProfile"

// DeleteEnvironmentProfileRequest generates a "aws/request.Request" representing the
// client's request for the DeleteEnvironmentProfile 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 DeleteEnvironmentProfile for more information on using the DeleteEnvironmentProfile
// 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 DeleteEnvironmentProfileRequest method.
//	req, resp := client.DeleteEnvironmentProfileRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteEnvironmentProfile
func (c *DataZone) DeleteEnvironmentProfileRequest(input *DeleteEnvironmentProfileInput) (req *request.Request, output *DeleteEnvironmentProfileOutput) {
	op := &request.Operation{
		Name:       opDeleteEnvironmentProfile,
		HTTPMethod: "DELETE",
		HTTPPath:   "/v2/domains/{domainIdentifier}/environment-profiles/{identifier}",
	}

	if input == nil {
		input = &DeleteEnvironmentProfileInput{}
	}

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

// DeleteEnvironmentProfile API operation for Amazon DataZone.
//
// Deletes an environment profile in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation DeleteEnvironmentProfile for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteEnvironmentProfile
func (c *DataZone) DeleteEnvironmentProfile(input *DeleteEnvironmentProfileInput) (*DeleteEnvironmentProfileOutput, error) {
	req, out := c.DeleteEnvironmentProfileRequest(input)
	return out, req.Send()
}

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

const opDeleteFormType = "DeleteFormType"

// DeleteFormTypeRequest generates a "aws/request.Request" representing the
// client's request for the DeleteFormType 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 DeleteFormType for more information on using the DeleteFormType
// 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 DeleteFormTypeRequest method.
//	req, resp := client.DeleteFormTypeRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteFormType
func (c *DataZone) DeleteFormTypeRequest(input *DeleteFormTypeInput) (req *request.Request, output *DeleteFormTypeOutput) {
	op := &request.Operation{
		Name:       opDeleteFormType,
		HTTPMethod: "DELETE",
		HTTPPath:   "/v2/domains/{domainIdentifier}/form-types/{formTypeIdentifier}",
	}

	if input == nil {
		input = &DeleteFormTypeInput{}
	}

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

// DeleteFormType API operation for Amazon DataZone.
//
// Delets and metadata form type in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation DeleteFormType for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteFormType
func (c *DataZone) DeleteFormType(input *DeleteFormTypeInput) (*DeleteFormTypeOutput, error) {
	req, out := c.DeleteFormTypeRequest(input)
	return out, req.Send()
}

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

const opDeleteGlossary = "DeleteGlossary"

// DeleteGlossaryRequest generates a "aws/request.Request" representing the
// client's request for the DeleteGlossary 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 DeleteGlossary for more information on using the DeleteGlossary
// 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 DeleteGlossaryRequest method.
//	req, resp := client.DeleteGlossaryRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteGlossary
func (c *DataZone) DeleteGlossaryRequest(input *DeleteGlossaryInput) (req *request.Request, output *DeleteGlossaryOutput) {
	op := &request.Operation{
		Name:       opDeleteGlossary,
		HTTPMethod: "DELETE",
		HTTPPath:   "/v2/domains/{domainIdentifier}/glossaries/{identifier}",
	}

	if input == nil {
		input = &DeleteGlossaryInput{}
	}

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

// DeleteGlossary API operation for Amazon DataZone.
//
// Deletes a business glossary in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation DeleteGlossary for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteGlossary
func (c *DataZone) DeleteGlossary(input *DeleteGlossaryInput) (*DeleteGlossaryOutput, error) {
	req, out := c.DeleteGlossaryRequest(input)
	return out, req.Send()
}

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

const opDeleteGlossaryTerm = "DeleteGlossaryTerm"

// DeleteGlossaryTermRequest generates a "aws/request.Request" representing the
// client's request for the DeleteGlossaryTerm 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 DeleteGlossaryTerm for more information on using the DeleteGlossaryTerm
// 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 DeleteGlossaryTermRequest method.
//	req, resp := client.DeleteGlossaryTermRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteGlossaryTerm
func (c *DataZone) DeleteGlossaryTermRequest(input *DeleteGlossaryTermInput) (req *request.Request, output *DeleteGlossaryTermOutput) {
	op := &request.Operation{
		Name:       opDeleteGlossaryTerm,
		HTTPMethod: "DELETE",
		HTTPPath:   "/v2/domains/{domainIdentifier}/glossary-terms/{identifier}",
	}

	if input == nil {
		input = &DeleteGlossaryTermInput{}
	}

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

// DeleteGlossaryTerm API operation for Amazon DataZone.
//
// Deletes a business glossary term in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation DeleteGlossaryTerm for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteGlossaryTerm
func (c *DataZone) DeleteGlossaryTerm(input *DeleteGlossaryTermInput) (*DeleteGlossaryTermOutput, error) {
	req, out := c.DeleteGlossaryTermRequest(input)
	return out, req.Send()
}

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

const opDeleteListing = "DeleteListing"

// DeleteListingRequest generates a "aws/request.Request" representing the
// client's request for the DeleteListing 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 DeleteListing for more information on using the DeleteListing
// 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 DeleteListingRequest method.
//	req, resp := client.DeleteListingRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteListing
func (c *DataZone) DeleteListingRequest(input *DeleteListingInput) (req *request.Request, output *DeleteListingOutput) {
	op := &request.Operation{
		Name:       opDeleteListing,
		HTTPMethod: "DELETE",
		HTTPPath:   "/v2/domains/{domainIdentifier}/listings/{identifier}",
	}

	if input == nil {
		input = &DeleteListingInput{}
	}

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

// DeleteListing API operation for Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation DeleteListing for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteListing
func (c *DataZone) DeleteListing(input *DeleteListingInput) (*DeleteListingOutput, error) {
	req, out := c.DeleteListingRequest(input)
	return out, req.Send()
}

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

const opDeleteProject = "DeleteProject"

// DeleteProjectRequest generates a "aws/request.Request" representing the
// client's request for the DeleteProject 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 DeleteProject for more information on using the DeleteProject
// 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 DeleteProjectRequest method.
//	req, resp := client.DeleteProjectRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteProject
func (c *DataZone) DeleteProjectRequest(input *DeleteProjectInput) (req *request.Request, output *DeleteProjectOutput) {
	op := &request.Operation{
		Name:       opDeleteProject,
		HTTPMethod: "DELETE",
		HTTPPath:   "/v2/domains/{domainIdentifier}/projects/{identifier}",
	}

	if input == nil {
		input = &DeleteProjectInput{}
	}

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

// DeleteProject API operation for Amazon DataZone.
//
// Deletes a project in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation DeleteProject for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteProject
func (c *DataZone) DeleteProject(input *DeleteProjectInput) (*DeleteProjectOutput, error) {
	req, out := c.DeleteProjectRequest(input)
	return out, req.Send()
}

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

const opDeleteProjectMembership = "DeleteProjectMembership"

// DeleteProjectMembershipRequest generates a "aws/request.Request" representing the
// client's request for the DeleteProjectMembership 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 DeleteProjectMembership for more information on using the DeleteProjectMembership
// 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 DeleteProjectMembershipRequest method.
//	req, resp := client.DeleteProjectMembershipRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteProjectMembership
func (c *DataZone) DeleteProjectMembershipRequest(input *DeleteProjectMembershipInput) (req *request.Request, output *DeleteProjectMembershipOutput) {
	op := &request.Operation{
		Name:       opDeleteProjectMembership,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/projects/{projectIdentifier}/deleteMembership",
	}

	if input == nil {
		input = &DeleteProjectMembershipInput{}
	}

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

// DeleteProjectMembership API operation for Amazon DataZone.
//
// Deletes project membership in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation DeleteProjectMembership for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteProjectMembership
func (c *DataZone) DeleteProjectMembership(input *DeleteProjectMembershipInput) (*DeleteProjectMembershipOutput, error) {
	req, out := c.DeleteProjectMembershipRequest(input)
	return out, req.Send()
}

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

const opDeleteSubscriptionGrant = "DeleteSubscriptionGrant"

// DeleteSubscriptionGrantRequest generates a "aws/request.Request" representing the
// client's request for the DeleteSubscriptionGrant 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 DeleteSubscriptionGrant for more information on using the DeleteSubscriptionGrant
// 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 DeleteSubscriptionGrantRequest method.
//	req, resp := client.DeleteSubscriptionGrantRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteSubscriptionGrant
func (c *DataZone) DeleteSubscriptionGrantRequest(input *DeleteSubscriptionGrantInput) (req *request.Request, output *DeleteSubscriptionGrantOutput) {
	op := &request.Operation{
		Name:       opDeleteSubscriptionGrant,
		HTTPMethod: "DELETE",
		HTTPPath:   "/v2/domains/{domainIdentifier}/subscription-grants/{identifier}",
	}

	if input == nil {
		input = &DeleteSubscriptionGrantInput{}
	}

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

// DeleteSubscriptionGrant API operation for Amazon DataZone.
//
// Deletes and subscription grant in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation DeleteSubscriptionGrant for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteSubscriptionGrant
func (c *DataZone) DeleteSubscriptionGrant(input *DeleteSubscriptionGrantInput) (*DeleteSubscriptionGrantOutput, error) {
	req, out := c.DeleteSubscriptionGrantRequest(input)
	return out, req.Send()
}

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

const opDeleteSubscriptionRequest = "DeleteSubscriptionRequest"

// DeleteSubscriptionRequestRequest generates a "aws/request.Request" representing the
// client's request for the DeleteSubscriptionRequest 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 DeleteSubscriptionRequest for more information on using the DeleteSubscriptionRequest
// 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 DeleteSubscriptionRequestRequest method.
//	req, resp := client.DeleteSubscriptionRequestRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteSubscriptionRequest
func (c *DataZone) DeleteSubscriptionRequestRequest(input *DeleteSubscriptionRequestInput) (req *request.Request, output *DeleteSubscriptionRequestOutput) {
	op := &request.Operation{
		Name:       opDeleteSubscriptionRequest,
		HTTPMethod: "DELETE",
		HTTPPath:   "/v2/domains/{domainIdentifier}/subscription-requests/{identifier}",
	}

	if input == nil {
		input = &DeleteSubscriptionRequestInput{}
	}

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

// DeleteSubscriptionRequest API operation for Amazon DataZone.
//
// Deletes a subscription request in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation DeleteSubscriptionRequest for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteSubscriptionRequest
func (c *DataZone) DeleteSubscriptionRequest(input *DeleteSubscriptionRequestInput) (*DeleteSubscriptionRequestOutput, error) {
	req, out := c.DeleteSubscriptionRequestRequest(input)
	return out, req.Send()
}

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

const opDeleteSubscriptionTarget = "DeleteSubscriptionTarget"

// DeleteSubscriptionTargetRequest generates a "aws/request.Request" representing the
// client's request for the DeleteSubscriptionTarget 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 DeleteSubscriptionTarget for more information on using the DeleteSubscriptionTarget
// 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 DeleteSubscriptionTargetRequest method.
//	req, resp := client.DeleteSubscriptionTargetRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteSubscriptionTarget
func (c *DataZone) DeleteSubscriptionTargetRequest(input *DeleteSubscriptionTargetInput) (req *request.Request, output *DeleteSubscriptionTargetOutput) {
	op := &request.Operation{
		Name:       opDeleteSubscriptionTarget,
		HTTPMethod: "DELETE",
		HTTPPath:   "/v2/domains/{domainIdentifier}/environments/{environmentIdentifier}/subscription-targets/{identifier}",
	}

	if input == nil {
		input = &DeleteSubscriptionTargetInput{}
	}

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

// DeleteSubscriptionTarget API operation for Amazon DataZone.
//
// Deletes a subscription target in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation DeleteSubscriptionTarget for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/DeleteSubscriptionTarget
func (c *DataZone) DeleteSubscriptionTarget(input *DeleteSubscriptionTargetInput) (*DeleteSubscriptionTargetOutput, error) {
	req, out := c.DeleteSubscriptionTargetRequest(input)
	return out, req.Send()
}

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

const opGetAsset = "GetAsset"

// GetAssetRequest generates a "aws/request.Request" representing the
// client's request for the GetAsset 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 GetAsset for more information on using the GetAsset
// 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 GetAssetRequest method.
//	req, resp := client.GetAssetRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetAsset
func (c *DataZone) GetAssetRequest(input *GetAssetInput) (req *request.Request, output *GetAssetOutput) {
	op := &request.Operation{
		Name:       opGetAsset,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/assets/{identifier}",
	}

	if input == nil {
		input = &GetAssetInput{}
	}

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

// GetAsset API operation for Amazon DataZone.
//
// Gets an Amazon DataZone asset.
//
// 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 Amazon DataZone's
// API operation GetAsset for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetAsset
func (c *DataZone) GetAsset(input *GetAssetInput) (*GetAssetOutput, error) {
	req, out := c.GetAssetRequest(input)
	return out, req.Send()
}

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

const opGetAssetType = "GetAssetType"

// GetAssetTypeRequest generates a "aws/request.Request" representing the
// client's request for the GetAssetType 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 GetAssetType for more information on using the GetAssetType
// 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 GetAssetTypeRequest method.
//	req, resp := client.GetAssetTypeRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetAssetType
func (c *DataZone) GetAssetTypeRequest(input *GetAssetTypeInput) (req *request.Request, output *GetAssetTypeOutput) {
	op := &request.Operation{
		Name:       opGetAssetType,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/asset-types/{identifier}",
	}

	if input == nil {
		input = &GetAssetTypeInput{}
	}

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

// GetAssetType API operation for Amazon DataZone.
//
// Gets an Amazon DataZone asset type.
//
// 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 Amazon DataZone's
// API operation GetAssetType for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetAssetType
func (c *DataZone) GetAssetType(input *GetAssetTypeInput) (*GetAssetTypeOutput, error) {
	req, out := c.GetAssetTypeRequest(input)
	return out, req.Send()
}

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

const opGetDataSource = "GetDataSource"

// GetDataSourceRequest generates a "aws/request.Request" representing the
// client's request for the GetDataSource 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 GetDataSource for more information on using the GetDataSource
// 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 GetDataSourceRequest method.
//	req, resp := client.GetDataSourceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetDataSource
func (c *DataZone) GetDataSourceRequest(input *GetDataSourceInput) (req *request.Request, output *GetDataSourceOutput) {
	op := &request.Operation{
		Name:       opGetDataSource,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/data-sources/{identifier}",
	}

	if input == nil {
		input = &GetDataSourceInput{}
	}

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

// GetDataSource API operation for Amazon DataZone.
//
// Gets an Amazon DataZone data source.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon DataZone's
// API operation GetDataSource for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetDataSource
func (c *DataZone) GetDataSource(input *GetDataSourceInput) (*GetDataSourceOutput, error) {
	req, out := c.GetDataSourceRequest(input)
	return out, req.Send()
}

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

const opGetDataSourceRun = "GetDataSourceRun"

// GetDataSourceRunRequest generates a "aws/request.Request" representing the
// client's request for the GetDataSourceRun 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 GetDataSourceRun for more information on using the GetDataSourceRun
// 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 GetDataSourceRunRequest method.
//	req, resp := client.GetDataSourceRunRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetDataSourceRun
func (c *DataZone) GetDataSourceRunRequest(input *GetDataSourceRunInput) (req *request.Request, output *GetDataSourceRunOutput) {
	op := &request.Operation{
		Name:       opGetDataSourceRun,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/data-source-runs/{identifier}",
	}

	if input == nil {
		input = &GetDataSourceRunInput{}
	}

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

// GetDataSourceRun API operation for Amazon DataZone.
//
// Gets an Amazon DataZone data source run.
//
// 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 Amazon DataZone's
// API operation GetDataSourceRun for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetDataSourceRun
func (c *DataZone) GetDataSourceRun(input *GetDataSourceRunInput) (*GetDataSourceRunOutput, error) {
	req, out := c.GetDataSourceRunRequest(input)
	return out, req.Send()
}

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

const opGetDomain = "GetDomain"

// GetDomainRequest generates a "aws/request.Request" representing the
// client's request for the GetDomain 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 GetDomain for more information on using the GetDomain
// 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 GetDomainRequest method.
//	req, resp := client.GetDomainRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetDomain
func (c *DataZone) GetDomainRequest(input *GetDomainInput) (req *request.Request, output *GetDomainOutput) {
	op := &request.Operation{
		Name:       opGetDomain,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{identifier}",
	}

	if input == nil {
		input = &GetDomainInput{}
	}

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

// GetDomain API operation for Amazon DataZone.
//
// Gets an Amazon DataZone domain.
//
// 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 Amazon DataZone's
// API operation GetDomain for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetDomain
func (c *DataZone) GetDomain(input *GetDomainInput) (*GetDomainOutput, error) {
	req, out := c.GetDomainRequest(input)
	return out, req.Send()
}

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

const opGetEnvironment = "GetEnvironment"

// GetEnvironmentRequest generates a "aws/request.Request" representing the
// client's request for the GetEnvironment 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 GetEnvironment for more information on using the GetEnvironment
// 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 GetEnvironmentRequest method.
//	req, resp := client.GetEnvironmentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetEnvironment
func (c *DataZone) GetEnvironmentRequest(input *GetEnvironmentInput) (req *request.Request, output *GetEnvironmentOutput) {
	op := &request.Operation{
		Name:       opGetEnvironment,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/environments/{identifier}",
	}

	if input == nil {
		input = &GetEnvironmentInput{}
	}

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

// GetEnvironment API operation for Amazon DataZone.
//
// Gets an Amazon DataZone environment.
//
// 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 Amazon DataZone's
// API operation GetEnvironment for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetEnvironment
func (c *DataZone) GetEnvironment(input *GetEnvironmentInput) (*GetEnvironmentOutput, error) {
	req, out := c.GetEnvironmentRequest(input)
	return out, req.Send()
}

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

const opGetEnvironmentBlueprint = "GetEnvironmentBlueprint"

// GetEnvironmentBlueprintRequest generates a "aws/request.Request" representing the
// client's request for the GetEnvironmentBlueprint 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 GetEnvironmentBlueprint for more information on using the GetEnvironmentBlueprint
// 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 GetEnvironmentBlueprintRequest method.
//	req, resp := client.GetEnvironmentBlueprintRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetEnvironmentBlueprint
func (c *DataZone) GetEnvironmentBlueprintRequest(input *GetEnvironmentBlueprintInput) (req *request.Request, output *GetEnvironmentBlueprintOutput) {
	op := &request.Operation{
		Name:       opGetEnvironmentBlueprint,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/environment-blueprints/{identifier}",
	}

	if input == nil {
		input = &GetEnvironmentBlueprintInput{}
	}

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

// GetEnvironmentBlueprint API operation for Amazon DataZone.
//
// Gets an Amazon DataZone blueprint.
//
// 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 Amazon DataZone's
// API operation GetEnvironmentBlueprint for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetEnvironmentBlueprint
func (c *DataZone) GetEnvironmentBlueprint(input *GetEnvironmentBlueprintInput) (*GetEnvironmentBlueprintOutput, error) {
	req, out := c.GetEnvironmentBlueprintRequest(input)
	return out, req.Send()
}

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

const opGetEnvironmentBlueprintConfiguration = "GetEnvironmentBlueprintConfiguration"

// GetEnvironmentBlueprintConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the GetEnvironmentBlueprintConfiguration 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 GetEnvironmentBlueprintConfiguration for more information on using the GetEnvironmentBlueprintConfiguration
// 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 GetEnvironmentBlueprintConfigurationRequest method.
//	req, resp := client.GetEnvironmentBlueprintConfigurationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetEnvironmentBlueprintConfiguration
func (c *DataZone) GetEnvironmentBlueprintConfigurationRequest(input *GetEnvironmentBlueprintConfigurationInput) (req *request.Request, output *GetEnvironmentBlueprintConfigurationOutput) {
	op := &request.Operation{
		Name:       opGetEnvironmentBlueprintConfiguration,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/environment-blueprint-configurations/{environmentBlueprintIdentifier}",
	}

	if input == nil {
		input = &GetEnvironmentBlueprintConfigurationInput{}
	}

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

// GetEnvironmentBlueprintConfiguration API operation for Amazon DataZone.
//
// Gets the blueprint configuration in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation GetEnvironmentBlueprintConfiguration for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetEnvironmentBlueprintConfiguration
func (c *DataZone) GetEnvironmentBlueprintConfiguration(input *GetEnvironmentBlueprintConfigurationInput) (*GetEnvironmentBlueprintConfigurationOutput, error) {
	req, out := c.GetEnvironmentBlueprintConfigurationRequest(input)
	return out, req.Send()
}

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

const opGetEnvironmentProfile = "GetEnvironmentProfile"

// GetEnvironmentProfileRequest generates a "aws/request.Request" representing the
// client's request for the GetEnvironmentProfile 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 GetEnvironmentProfile for more information on using the GetEnvironmentProfile
// 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 GetEnvironmentProfileRequest method.
//	req, resp := client.GetEnvironmentProfileRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetEnvironmentProfile
func (c *DataZone) GetEnvironmentProfileRequest(input *GetEnvironmentProfileInput) (req *request.Request, output *GetEnvironmentProfileOutput) {
	op := &request.Operation{
		Name:       opGetEnvironmentProfile,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/environment-profiles/{identifier}",
	}

	if input == nil {
		input = &GetEnvironmentProfileInput{}
	}

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

// GetEnvironmentProfile API operation for Amazon DataZone.
//
// Gets an evinronment profile in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation GetEnvironmentProfile for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetEnvironmentProfile
func (c *DataZone) GetEnvironmentProfile(input *GetEnvironmentProfileInput) (*GetEnvironmentProfileOutput, error) {
	req, out := c.GetEnvironmentProfileRequest(input)
	return out, req.Send()
}

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

const opGetFormType = "GetFormType"

// GetFormTypeRequest generates a "aws/request.Request" representing the
// client's request for the GetFormType 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 GetFormType for more information on using the GetFormType
// 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 GetFormTypeRequest method.
//	req, resp := client.GetFormTypeRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetFormType
func (c *DataZone) GetFormTypeRequest(input *GetFormTypeInput) (req *request.Request, output *GetFormTypeOutput) {
	op := &request.Operation{
		Name:       opGetFormType,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/form-types/{formTypeIdentifier}",
	}

	if input == nil {
		input = &GetFormTypeInput{}
	}

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

// GetFormType API operation for Amazon DataZone.
//
// Gets a metadata form type in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation GetFormType for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetFormType
func (c *DataZone) GetFormType(input *GetFormTypeInput) (*GetFormTypeOutput, error) {
	req, out := c.GetFormTypeRequest(input)
	return out, req.Send()
}

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

const opGetGlossary = "GetGlossary"

// GetGlossaryRequest generates a "aws/request.Request" representing the
// client's request for the GetGlossary 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 GetGlossary for more information on using the GetGlossary
// 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 GetGlossaryRequest method.
//	req, resp := client.GetGlossaryRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetGlossary
func (c *DataZone) GetGlossaryRequest(input *GetGlossaryInput) (req *request.Request, output *GetGlossaryOutput) {
	op := &request.Operation{
		Name:       opGetGlossary,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/glossaries/{identifier}",
	}

	if input == nil {
		input = &GetGlossaryInput{}
	}

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

// GetGlossary API operation for Amazon DataZone.
//
// Gets a business glossary in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation GetGlossary for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetGlossary
func (c *DataZone) GetGlossary(input *GetGlossaryInput) (*GetGlossaryOutput, error) {
	req, out := c.GetGlossaryRequest(input)
	return out, req.Send()
}

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

const opGetGlossaryTerm = "GetGlossaryTerm"

// GetGlossaryTermRequest generates a "aws/request.Request" representing the
// client's request for the GetGlossaryTerm 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 GetGlossaryTerm for more information on using the GetGlossaryTerm
// 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 GetGlossaryTermRequest method.
//	req, resp := client.GetGlossaryTermRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetGlossaryTerm
func (c *DataZone) GetGlossaryTermRequest(input *GetGlossaryTermInput) (req *request.Request, output *GetGlossaryTermOutput) {
	op := &request.Operation{
		Name:       opGetGlossaryTerm,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/glossary-terms/{identifier}",
	}

	if input == nil {
		input = &GetGlossaryTermInput{}
	}

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

// GetGlossaryTerm API operation for Amazon DataZone.
//
// Gets a business glossary term in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation GetGlossaryTerm for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetGlossaryTerm
func (c *DataZone) GetGlossaryTerm(input *GetGlossaryTermInput) (*GetGlossaryTermOutput, error) {
	req, out := c.GetGlossaryTermRequest(input)
	return out, req.Send()
}

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

const opGetGroupProfile = "GetGroupProfile"

// GetGroupProfileRequest generates a "aws/request.Request" representing the
// client's request for the GetGroupProfile 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 GetGroupProfile for more information on using the GetGroupProfile
// 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 GetGroupProfileRequest method.
//	req, resp := client.GetGroupProfileRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetGroupProfile
func (c *DataZone) GetGroupProfileRequest(input *GetGroupProfileInput) (req *request.Request, output *GetGroupProfileOutput) {
	op := &request.Operation{
		Name:       opGetGroupProfile,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/group-profiles/{groupIdentifier}",
	}

	if input == nil {
		input = &GetGroupProfileInput{}
	}

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

// GetGroupProfile API operation for Amazon DataZone.
//
// Gets a group profile in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation GetGroupProfile for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetGroupProfile
func (c *DataZone) GetGroupProfile(input *GetGroupProfileInput) (*GetGroupProfileOutput, error) {
	req, out := c.GetGroupProfileRequest(input)
	return out, req.Send()
}

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

const opGetIamPortalLoginUrl = "GetIamPortalLoginUrl"

// GetIamPortalLoginUrlRequest generates a "aws/request.Request" representing the
// client's request for the GetIamPortalLoginUrl 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 GetIamPortalLoginUrl for more information on using the GetIamPortalLoginUrl
// 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 GetIamPortalLoginUrlRequest method.
//	req, resp := client.GetIamPortalLoginUrlRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetIamPortalLoginUrl
func (c *DataZone) GetIamPortalLoginUrlRequest(input *GetIamPortalLoginUrlInput) (req *request.Request, output *GetIamPortalLoginUrlOutput) {
	op := &request.Operation{
		Name:       opGetIamPortalLoginUrl,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/get-portal-login-url",
	}

	if input == nil {
		input = &GetIamPortalLoginUrlInput{}
	}

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

// GetIamPortalLoginUrl API operation for Amazon DataZone.
//
// Gets the data portal URL for the specified Amazon DataZone domain.
//
// 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 Amazon DataZone's
// API operation GetIamPortalLoginUrl for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetIamPortalLoginUrl
func (c *DataZone) GetIamPortalLoginUrl(input *GetIamPortalLoginUrlInput) (*GetIamPortalLoginUrlOutput, error) {
	req, out := c.GetIamPortalLoginUrlRequest(input)
	return out, req.Send()
}

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

const opGetListing = "GetListing"

// GetListingRequest generates a "aws/request.Request" representing the
// client's request for the GetListing 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 GetListing for more information on using the GetListing
// 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 GetListingRequest method.
//	req, resp := client.GetListingRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetListing
func (c *DataZone) GetListingRequest(input *GetListingInput) (req *request.Request, output *GetListingOutput) {
	op := &request.Operation{
		Name:       opGetListing,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/listings/{identifier}",
	}

	if input == nil {
		input = &GetListingInput{}
	}

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

// GetListing API operation for Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation GetListing for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetListing
func (c *DataZone) GetListing(input *GetListingInput) (*GetListingOutput, error) {
	req, out := c.GetListingRequest(input)
	return out, req.Send()
}

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

const opGetProject = "GetProject"

// GetProjectRequest generates a "aws/request.Request" representing the
// client's request for the GetProject 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 GetProject for more information on using the GetProject
// 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 GetProjectRequest method.
//	req, resp := client.GetProjectRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetProject
func (c *DataZone) GetProjectRequest(input *GetProjectInput) (req *request.Request, output *GetProjectOutput) {
	op := &request.Operation{
		Name:       opGetProject,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/projects/{identifier}",
	}

	if input == nil {
		input = &GetProjectInput{}
	}

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

// GetProject API operation for Amazon DataZone.
//
// Gets a project in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation GetProject for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetProject
func (c *DataZone) GetProject(input *GetProjectInput) (*GetProjectOutput, error) {
	req, out := c.GetProjectRequest(input)
	return out, req.Send()
}

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

const opGetSubscription = "GetSubscription"

// GetSubscriptionRequest generates a "aws/request.Request" representing the
// client's request for the GetSubscription 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 GetSubscription for more information on using the GetSubscription
// 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 GetSubscriptionRequest method.
//	req, resp := client.GetSubscriptionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetSubscription
func (c *DataZone) GetSubscriptionRequest(input *GetSubscriptionInput) (req *request.Request, output *GetSubscriptionOutput) {
	op := &request.Operation{
		Name:       opGetSubscription,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/subscriptions/{identifier}",
	}

	if input == nil {
		input = &GetSubscriptionInput{}
	}

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

// GetSubscription API operation for Amazon DataZone.
//
// Gets a subscription in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation GetSubscription for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetSubscription
func (c *DataZone) GetSubscription(input *GetSubscriptionInput) (*GetSubscriptionOutput, error) {
	req, out := c.GetSubscriptionRequest(input)
	return out, req.Send()
}

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

const opGetSubscriptionGrant = "GetSubscriptionGrant"

// GetSubscriptionGrantRequest generates a "aws/request.Request" representing the
// client's request for the GetSubscriptionGrant 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 GetSubscriptionGrant for more information on using the GetSubscriptionGrant
// 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 GetSubscriptionGrantRequest method.
//	req, resp := client.GetSubscriptionGrantRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetSubscriptionGrant
func (c *DataZone) GetSubscriptionGrantRequest(input *GetSubscriptionGrantInput) (req *request.Request, output *GetSubscriptionGrantOutput) {
	op := &request.Operation{
		Name:       opGetSubscriptionGrant,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/subscription-grants/{identifier}",
	}

	if input == nil {
		input = &GetSubscriptionGrantInput{}
	}

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

// GetSubscriptionGrant API operation for Amazon DataZone.
//
// Gets the subscription grant in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation GetSubscriptionGrant for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetSubscriptionGrant
func (c *DataZone) GetSubscriptionGrant(input *GetSubscriptionGrantInput) (*GetSubscriptionGrantOutput, error) {
	req, out := c.GetSubscriptionGrantRequest(input)
	return out, req.Send()
}

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

const opGetSubscriptionRequestDetails = "GetSubscriptionRequestDetails"

// GetSubscriptionRequestDetailsRequest generates a "aws/request.Request" representing the
// client's request for the GetSubscriptionRequestDetails 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 GetSubscriptionRequestDetails for more information on using the GetSubscriptionRequestDetails
// 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 GetSubscriptionRequestDetailsRequest method.
//	req, resp := client.GetSubscriptionRequestDetailsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetSubscriptionRequestDetails
func (c *DataZone) GetSubscriptionRequestDetailsRequest(input *GetSubscriptionRequestDetailsInput) (req *request.Request, output *GetSubscriptionRequestDetailsOutput) {
	op := &request.Operation{
		Name:       opGetSubscriptionRequestDetails,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/subscription-requests/{identifier}",
	}

	if input == nil {
		input = &GetSubscriptionRequestDetailsInput{}
	}

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

// GetSubscriptionRequestDetails API operation for Amazon DataZone.
//
// Gets the details of the specified subscription request.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon DataZone's
// API operation GetSubscriptionRequestDetails for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetSubscriptionRequestDetails
func (c *DataZone) GetSubscriptionRequestDetails(input *GetSubscriptionRequestDetailsInput) (*GetSubscriptionRequestDetailsOutput, error) {
	req, out := c.GetSubscriptionRequestDetailsRequest(input)
	return out, req.Send()
}

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

const opGetSubscriptionTarget = "GetSubscriptionTarget"

// GetSubscriptionTargetRequest generates a "aws/request.Request" representing the
// client's request for the GetSubscriptionTarget 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 GetSubscriptionTarget for more information on using the GetSubscriptionTarget
// 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 GetSubscriptionTargetRequest method.
//	req, resp := client.GetSubscriptionTargetRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetSubscriptionTarget
func (c *DataZone) GetSubscriptionTargetRequest(input *GetSubscriptionTargetInput) (req *request.Request, output *GetSubscriptionTargetOutput) {
	op := &request.Operation{
		Name:       opGetSubscriptionTarget,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/environments/{environmentIdentifier}/subscription-targets/{identifier}",
	}

	if input == nil {
		input = &GetSubscriptionTargetInput{}
	}

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

// GetSubscriptionTarget API operation for Amazon DataZone.
//
// Gets the subscription target in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation GetSubscriptionTarget for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetSubscriptionTarget
func (c *DataZone) GetSubscriptionTarget(input *GetSubscriptionTargetInput) (*GetSubscriptionTargetOutput, error) {
	req, out := c.GetSubscriptionTargetRequest(input)
	return out, req.Send()
}

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

const opGetUserProfile = "GetUserProfile"

// GetUserProfileRequest generates a "aws/request.Request" representing the
// client's request for the GetUserProfile 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 GetUserProfile for more information on using the GetUserProfile
// 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 GetUserProfileRequest method.
//	req, resp := client.GetUserProfileRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetUserProfile
func (c *DataZone) GetUserProfileRequest(input *GetUserProfileInput) (req *request.Request, output *GetUserProfileOutput) {
	op := &request.Operation{
		Name:       opGetUserProfile,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/user-profiles/{userIdentifier}",
	}

	if input == nil {
		input = &GetUserProfileInput{}
	}

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

// GetUserProfile API operation for Amazon DataZone.
//
// Gets a user profile in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation GetUserProfile for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/GetUserProfile
func (c *DataZone) GetUserProfile(input *GetUserProfileInput) (*GetUserProfileOutput, error) {
	req, out := c.GetUserProfileRequest(input)
	return out, req.Send()
}

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

const opListAssetRevisions = "ListAssetRevisions"

// ListAssetRevisionsRequest generates a "aws/request.Request" representing the
// client's request for the ListAssetRevisions 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 ListAssetRevisions for more information on using the ListAssetRevisions
// 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 ListAssetRevisionsRequest method.
//	req, resp := client.ListAssetRevisionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListAssetRevisions
func (c *DataZone) ListAssetRevisionsRequest(input *ListAssetRevisionsInput) (req *request.Request, output *ListAssetRevisionsOutput) {
	op := &request.Operation{
		Name:       opListAssetRevisions,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/assets/{identifier}/revisions",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListAssetRevisionsInput{}
	}

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

// ListAssetRevisions API operation for Amazon DataZone.
//
// Lists the revisions for the asset.
//
// 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 Amazon DataZone's
// API operation ListAssetRevisions for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListAssetRevisions
func (c *DataZone) ListAssetRevisions(input *ListAssetRevisionsInput) (*ListAssetRevisionsOutput, error) {
	req, out := c.ListAssetRevisionsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListDataSourceRunActivities = "ListDataSourceRunActivities"

// ListDataSourceRunActivitiesRequest generates a "aws/request.Request" representing the
// client's request for the ListDataSourceRunActivities 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 ListDataSourceRunActivities for more information on using the ListDataSourceRunActivities
// 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 ListDataSourceRunActivitiesRequest method.
//	req, resp := client.ListDataSourceRunActivitiesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListDataSourceRunActivities
func (c *DataZone) ListDataSourceRunActivitiesRequest(input *ListDataSourceRunActivitiesInput) (req *request.Request, output *ListDataSourceRunActivitiesOutput) {
	op := &request.Operation{
		Name:       opListDataSourceRunActivities,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/data-source-runs/{identifier}/activities",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListDataSourceRunActivitiesInput{}
	}

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

// ListDataSourceRunActivities API operation for Amazon DataZone.
//
// Lists data source run activities.
//
// 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 Amazon DataZone's
// API operation ListDataSourceRunActivities for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListDataSourceRunActivities
func (c *DataZone) ListDataSourceRunActivities(input *ListDataSourceRunActivitiesInput) (*ListDataSourceRunActivitiesOutput, error) {
	req, out := c.ListDataSourceRunActivitiesRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListDataSourceRuns = "ListDataSourceRuns"

// ListDataSourceRunsRequest generates a "aws/request.Request" representing the
// client's request for the ListDataSourceRuns 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 ListDataSourceRuns for more information on using the ListDataSourceRuns
// 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 ListDataSourceRunsRequest method.
//	req, resp := client.ListDataSourceRunsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListDataSourceRuns
func (c *DataZone) ListDataSourceRunsRequest(input *ListDataSourceRunsInput) (req *request.Request, output *ListDataSourceRunsOutput) {
	op := &request.Operation{
		Name:       opListDataSourceRuns,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/data-sources/{dataSourceIdentifier}/runs",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListDataSourceRunsInput{}
	}

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

// ListDataSourceRuns API operation for Amazon DataZone.
//
// Lists data source runs in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation ListDataSourceRuns for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListDataSourceRuns
func (c *DataZone) ListDataSourceRuns(input *ListDataSourceRunsInput) (*ListDataSourceRunsOutput, error) {
	req, out := c.ListDataSourceRunsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListDataSources = "ListDataSources"

// ListDataSourcesRequest generates a "aws/request.Request" representing the
// client's request for the ListDataSources 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 ListDataSources for more information on using the ListDataSources
// 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 ListDataSourcesRequest method.
//	req, resp := client.ListDataSourcesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListDataSources
func (c *DataZone) ListDataSourcesRequest(input *ListDataSourcesInput) (req *request.Request, output *ListDataSourcesOutput) {
	op := &request.Operation{
		Name:       opListDataSources,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/data-sources",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListDataSourcesInput{}
	}

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

// ListDataSources API operation for Amazon DataZone.
//
// Lists data sources in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation ListDataSources for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListDataSources
func (c *DataZone) ListDataSources(input *ListDataSourcesInput) (*ListDataSourcesOutput, error) {
	req, out := c.ListDataSourcesRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListDomains = "ListDomains"

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

	if input == nil {
		input = &ListDomainsInput{}
	}

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

// ListDomains API operation for Amazon DataZone.
//
// Lists Amazon DataZone domains.
//
// 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 Amazon DataZone's
// API operation ListDomains for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListDomains
func (c *DataZone) ListDomains(input *ListDomainsInput) (*ListDomainsOutput, error) {
	req, out := c.ListDomainsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListEnvironmentBlueprintConfigurations = "ListEnvironmentBlueprintConfigurations"

// ListEnvironmentBlueprintConfigurationsRequest generates a "aws/request.Request" representing the
// client's request for the ListEnvironmentBlueprintConfigurations 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 ListEnvironmentBlueprintConfigurations for more information on using the ListEnvironmentBlueprintConfigurations
// 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 ListEnvironmentBlueprintConfigurationsRequest method.
//	req, resp := client.ListEnvironmentBlueprintConfigurationsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListEnvironmentBlueprintConfigurations
func (c *DataZone) ListEnvironmentBlueprintConfigurationsRequest(input *ListEnvironmentBlueprintConfigurationsInput) (req *request.Request, output *ListEnvironmentBlueprintConfigurationsOutput) {
	op := &request.Operation{
		Name:       opListEnvironmentBlueprintConfigurations,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/environment-blueprint-configurations",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListEnvironmentBlueprintConfigurationsInput{}
	}

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

// ListEnvironmentBlueprintConfigurations API operation for Amazon DataZone.
//
// Lists blueprint configurations for a Amazon DataZone environment.
//
// 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 Amazon DataZone's
// API operation ListEnvironmentBlueprintConfigurations for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListEnvironmentBlueprintConfigurations
func (c *DataZone) ListEnvironmentBlueprintConfigurations(input *ListEnvironmentBlueprintConfigurationsInput) (*ListEnvironmentBlueprintConfigurationsOutput, error) {
	req, out := c.ListEnvironmentBlueprintConfigurationsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListEnvironmentBlueprints = "ListEnvironmentBlueprints"

// ListEnvironmentBlueprintsRequest generates a "aws/request.Request" representing the
// client's request for the ListEnvironmentBlueprints 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 ListEnvironmentBlueprints for more information on using the ListEnvironmentBlueprints
// 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 ListEnvironmentBlueprintsRequest method.
//	req, resp := client.ListEnvironmentBlueprintsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListEnvironmentBlueprints
func (c *DataZone) ListEnvironmentBlueprintsRequest(input *ListEnvironmentBlueprintsInput) (req *request.Request, output *ListEnvironmentBlueprintsOutput) {
	op := &request.Operation{
		Name:       opListEnvironmentBlueprints,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/environment-blueprints",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListEnvironmentBlueprintsInput{}
	}

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

// ListEnvironmentBlueprints API operation for Amazon DataZone.
//
// Lists blueprints in an Amazon DataZone environment.
//
// 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 Amazon DataZone's
// API operation ListEnvironmentBlueprints for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListEnvironmentBlueprints
func (c *DataZone) ListEnvironmentBlueprints(input *ListEnvironmentBlueprintsInput) (*ListEnvironmentBlueprintsOutput, error) {
	req, out := c.ListEnvironmentBlueprintsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListEnvironmentProfiles = "ListEnvironmentProfiles"

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

	if input == nil {
		input = &ListEnvironmentProfilesInput{}
	}

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

// ListEnvironmentProfiles API operation for Amazon DataZone.
//
// Lists Amazon DataZone environment profiles.
//
// 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 Amazon DataZone's
// API operation ListEnvironmentProfiles for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListEnvironmentProfiles
func (c *DataZone) ListEnvironmentProfiles(input *ListEnvironmentProfilesInput) (*ListEnvironmentProfilesOutput, error) {
	req, out := c.ListEnvironmentProfilesRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListEnvironments = "ListEnvironments"

// ListEnvironmentsRequest generates a "aws/request.Request" representing the
// client's request for the ListEnvironments 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 ListEnvironments for more information on using the ListEnvironments
// 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 ListEnvironmentsRequest method.
//	req, resp := client.ListEnvironmentsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListEnvironments
func (c *DataZone) ListEnvironmentsRequest(input *ListEnvironmentsInput) (req *request.Request, output *ListEnvironmentsOutput) {
	op := &request.Operation{
		Name:       opListEnvironments,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/environments",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListEnvironmentsInput{}
	}

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

// ListEnvironments API operation for Amazon DataZone.
//
// Lists Amazon DataZone environments.
//
// 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 Amazon DataZone's
// API operation ListEnvironments for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListEnvironments
func (c *DataZone) ListEnvironments(input *ListEnvironmentsInput) (*ListEnvironmentsOutput, error) {
	req, out := c.ListEnvironmentsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListNotifications = "ListNotifications"

// ListNotificationsRequest generates a "aws/request.Request" representing the
// client's request for the ListNotifications 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 ListNotifications for more information on using the ListNotifications
// 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 ListNotificationsRequest method.
//	req, resp := client.ListNotificationsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListNotifications
func (c *DataZone) ListNotificationsRequest(input *ListNotificationsInput) (req *request.Request, output *ListNotificationsOutput) {
	op := &request.Operation{
		Name:       opListNotifications,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/notifications",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListNotificationsInput{}
	}

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

// ListNotifications API operation for Amazon DataZone.
//
// Lists all Amazon DataZone notifications.
//
// 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 Amazon DataZone's
// API operation ListNotifications for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListNotifications
func (c *DataZone) ListNotifications(input *ListNotificationsInput) (*ListNotificationsOutput, error) {
	req, out := c.ListNotificationsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListProjectMemberships = "ListProjectMemberships"

// ListProjectMembershipsRequest generates a "aws/request.Request" representing the
// client's request for the ListProjectMemberships 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 ListProjectMemberships for more information on using the ListProjectMemberships
// 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 ListProjectMembershipsRequest method.
//	req, resp := client.ListProjectMembershipsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListProjectMemberships
func (c *DataZone) ListProjectMembershipsRequest(input *ListProjectMembershipsInput) (req *request.Request, output *ListProjectMembershipsOutput) {
	op := &request.Operation{
		Name:       opListProjectMemberships,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/projects/{projectIdentifier}/memberships",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListProjectMembershipsInput{}
	}

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

// ListProjectMemberships API operation for Amazon DataZone.
//
// Lists all members of the specified project.
//
// 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 Amazon DataZone's
// API operation ListProjectMemberships for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListProjectMemberships
func (c *DataZone) ListProjectMemberships(input *ListProjectMembershipsInput) (*ListProjectMembershipsOutput, error) {
	req, out := c.ListProjectMembershipsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListProjects = "ListProjects"

// ListProjectsRequest generates a "aws/request.Request" representing the
// client's request for the ListProjects 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 ListProjects for more information on using the ListProjects
// 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 ListProjectsRequest method.
//	req, resp := client.ListProjectsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListProjects
func (c *DataZone) ListProjectsRequest(input *ListProjectsInput) (req *request.Request, output *ListProjectsOutput) {
	op := &request.Operation{
		Name:       opListProjects,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/projects",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListProjectsInput{}
	}

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

// ListProjects API operation for Amazon DataZone.
//
// Lists Amazon DataZone projects.
//
// 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 Amazon DataZone's
// API operation ListProjects for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListProjects
func (c *DataZone) ListProjects(input *ListProjectsInput) (*ListProjectsOutput, error) {
	req, out := c.ListProjectsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListSubscriptionGrants = "ListSubscriptionGrants"

// ListSubscriptionGrantsRequest generates a "aws/request.Request" representing the
// client's request for the ListSubscriptionGrants 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 ListSubscriptionGrants for more information on using the ListSubscriptionGrants
// 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 ListSubscriptionGrantsRequest method.
//	req, resp := client.ListSubscriptionGrantsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListSubscriptionGrants
func (c *DataZone) ListSubscriptionGrantsRequest(input *ListSubscriptionGrantsInput) (req *request.Request, output *ListSubscriptionGrantsOutput) {
	op := &request.Operation{
		Name:       opListSubscriptionGrants,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/subscription-grants",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListSubscriptionGrantsInput{}
	}

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

// ListSubscriptionGrants API operation for Amazon DataZone.
//
// Lists subscription grants.
//
// 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 Amazon DataZone's
// API operation ListSubscriptionGrants for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListSubscriptionGrants
func (c *DataZone) ListSubscriptionGrants(input *ListSubscriptionGrantsInput) (*ListSubscriptionGrantsOutput, error) {
	req, out := c.ListSubscriptionGrantsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListSubscriptionRequests = "ListSubscriptionRequests"

// ListSubscriptionRequestsRequest generates a "aws/request.Request" representing the
// client's request for the ListSubscriptionRequests 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 ListSubscriptionRequests for more information on using the ListSubscriptionRequests
// 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 ListSubscriptionRequestsRequest method.
//	req, resp := client.ListSubscriptionRequestsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListSubscriptionRequests
func (c *DataZone) ListSubscriptionRequestsRequest(input *ListSubscriptionRequestsInput) (req *request.Request, output *ListSubscriptionRequestsOutput) {
	op := &request.Operation{
		Name:       opListSubscriptionRequests,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/subscription-requests",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListSubscriptionRequestsInput{}
	}

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

// ListSubscriptionRequests API operation for Amazon DataZone.
//
// Lists Amazon DataZone subscription requests.
//
// 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 Amazon DataZone's
// API operation ListSubscriptionRequests for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListSubscriptionRequests
func (c *DataZone) ListSubscriptionRequests(input *ListSubscriptionRequestsInput) (*ListSubscriptionRequestsOutput, error) {
	req, out := c.ListSubscriptionRequestsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListSubscriptionTargets = "ListSubscriptionTargets"

// ListSubscriptionTargetsRequest generates a "aws/request.Request" representing the
// client's request for the ListSubscriptionTargets 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 ListSubscriptionTargets for more information on using the ListSubscriptionTargets
// 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 ListSubscriptionTargetsRequest method.
//	req, resp := client.ListSubscriptionTargetsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListSubscriptionTargets
func (c *DataZone) ListSubscriptionTargetsRequest(input *ListSubscriptionTargetsInput) (req *request.Request, output *ListSubscriptionTargetsOutput) {
	op := &request.Operation{
		Name:       opListSubscriptionTargets,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/environments/{environmentIdentifier}/subscription-targets",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListSubscriptionTargetsInput{}
	}

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

// ListSubscriptionTargets API operation for Amazon DataZone.
//
// Lists subscription targets in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation ListSubscriptionTargets for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListSubscriptionTargets
func (c *DataZone) ListSubscriptionTargets(input *ListSubscriptionTargetsInput) (*ListSubscriptionTargetsOutput, error) {
	req, out := c.ListSubscriptionTargetsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListSubscriptions = "ListSubscriptions"

// ListSubscriptionsRequest generates a "aws/request.Request" representing the
// client's request for the ListSubscriptions 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 ListSubscriptions for more information on using the ListSubscriptions
// 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 ListSubscriptionsRequest method.
//	req, resp := client.ListSubscriptionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListSubscriptions
func (c *DataZone) ListSubscriptionsRequest(input *ListSubscriptionsInput) (req *request.Request, output *ListSubscriptionsOutput) {
	op := &request.Operation{
		Name:       opListSubscriptions,
		HTTPMethod: "GET",
		HTTPPath:   "/v2/domains/{domainIdentifier}/subscriptions",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListSubscriptionsInput{}
	}

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

// ListSubscriptions API operation for Amazon DataZone.
//
// Lists subscriptions in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation ListSubscriptions for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListSubscriptions
func (c *DataZone) ListSubscriptions(input *ListSubscriptionsInput) (*ListSubscriptionsOutput, error) {
	req, out := c.ListSubscriptionsRequest(input)
	return out, req.Send()
}

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

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

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

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

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

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

// ListTagsForResource API operation for Amazon DataZone.
//
// Lists tags for the specified resource in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation ListTagsForResource for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/ListTagsForResource
func (c *DataZone) 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 *DataZone) 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 opPutEnvironmentBlueprintConfiguration = "PutEnvironmentBlueprintConfiguration"

// PutEnvironmentBlueprintConfigurationRequest generates a "aws/request.Request" representing the
// client's request for the PutEnvironmentBlueprintConfiguration 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 PutEnvironmentBlueprintConfiguration for more information on using the PutEnvironmentBlueprintConfiguration
// 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 PutEnvironmentBlueprintConfigurationRequest method.
//	req, resp := client.PutEnvironmentBlueprintConfigurationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/PutEnvironmentBlueprintConfiguration
func (c *DataZone) PutEnvironmentBlueprintConfigurationRequest(input *PutEnvironmentBlueprintConfigurationInput) (req *request.Request, output *PutEnvironmentBlueprintConfigurationOutput) {
	op := &request.Operation{
		Name:       opPutEnvironmentBlueprintConfiguration,
		HTTPMethod: "PUT",
		HTTPPath:   "/v2/domains/{domainIdentifier}/environment-blueprint-configurations/{environmentBlueprintIdentifier}",
	}

	if input == nil {
		input = &PutEnvironmentBlueprintConfigurationInput{}
	}

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

// PutEnvironmentBlueprintConfiguration API operation for Amazon DataZone.
//
// Writes the configuration for the specified environment blueprint in Amazon
// DataZone.
//
// 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 Amazon DataZone's
// API operation PutEnvironmentBlueprintConfiguration for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/PutEnvironmentBlueprintConfiguration
func (c *DataZone) PutEnvironmentBlueprintConfiguration(input *PutEnvironmentBlueprintConfigurationInput) (*PutEnvironmentBlueprintConfigurationOutput, error) {
	req, out := c.PutEnvironmentBlueprintConfigurationRequest(input)
	return out, req.Send()
}

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

const opRejectPredictions = "RejectPredictions"

// RejectPredictionsRequest generates a "aws/request.Request" representing the
// client's request for the RejectPredictions 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 RejectPredictions for more information on using the RejectPredictions
// 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 RejectPredictionsRequest method.
//	req, resp := client.RejectPredictionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/RejectPredictions
func (c *DataZone) RejectPredictionsRequest(input *RejectPredictionsInput) (req *request.Request, output *RejectPredictionsOutput) {
	op := &request.Operation{
		Name:       opRejectPredictions,
		HTTPMethod: "PUT",
		HTTPPath:   "/v2/domains/{domainIdentifier}/assets/{identifier}/reject-predictions",
	}

	if input == nil {
		input = &RejectPredictionsInput{}
	}

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

// RejectPredictions API operation for Amazon DataZone.
//
// Rejects automatically generated business-friendly metadata for your Amazon
// DataZone assets.
//
// 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 Amazon DataZone's
// API operation RejectPredictions for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/RejectPredictions
func (c *DataZone) RejectPredictions(input *RejectPredictionsInput) (*RejectPredictionsOutput, error) {
	req, out := c.RejectPredictionsRequest(input)
	return out, req.Send()
}

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

const opRejectSubscriptionRequest = "RejectSubscriptionRequest"

// RejectSubscriptionRequestRequest generates a "aws/request.Request" representing the
// client's request for the RejectSubscriptionRequest 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 RejectSubscriptionRequest for more information on using the RejectSubscriptionRequest
// 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 RejectSubscriptionRequestRequest method.
//	req, resp := client.RejectSubscriptionRequestRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/RejectSubscriptionRequest
func (c *DataZone) RejectSubscriptionRequestRequest(input *RejectSubscriptionRequestInput) (req *request.Request, output *RejectSubscriptionRequestOutput) {
	op := &request.Operation{
		Name:       opRejectSubscriptionRequest,
		HTTPMethod: "PUT",
		HTTPPath:   "/v2/domains/{domainIdentifier}/subscription-requests/{identifier}/reject",
	}

	if input == nil {
		input = &RejectSubscriptionRequestInput{}
	}

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

// RejectSubscriptionRequest API operation for Amazon DataZone.
//
// Rejects the specified subscription request.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for Amazon DataZone's
// API operation RejectSubscriptionRequest for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/RejectSubscriptionRequest
func (c *DataZone) RejectSubscriptionRequest(input *RejectSubscriptionRequestInput) (*RejectSubscriptionRequestOutput, error) {
	req, out := c.RejectSubscriptionRequestRequest(input)
	return out, req.Send()
}

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

const opRevokeSubscription = "RevokeSubscription"

// RevokeSubscriptionRequest generates a "aws/request.Request" representing the
// client's request for the RevokeSubscription 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 RevokeSubscription for more information on using the RevokeSubscription
// 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 RevokeSubscriptionRequest method.
//	req, resp := client.RevokeSubscriptionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/RevokeSubscription
func (c *DataZone) RevokeSubscriptionRequest(input *RevokeSubscriptionInput) (req *request.Request, output *RevokeSubscriptionOutput) {
	op := &request.Operation{
		Name:       opRevokeSubscription,
		HTTPMethod: "PUT",
		HTTPPath:   "/v2/domains/{domainIdentifier}/subscriptions/{identifier}/revoke",
	}

	if input == nil {
		input = &RevokeSubscriptionInput{}
	}

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

// RevokeSubscription API operation for Amazon DataZone.
//
// Revokes a specified subscription in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation RevokeSubscription for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/RevokeSubscription
func (c *DataZone) RevokeSubscription(input *RevokeSubscriptionInput) (*RevokeSubscriptionOutput, error) {
	req, out := c.RevokeSubscriptionRequest(input)
	return out, req.Send()
}

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

const opSearch = "Search"

// SearchRequest generates a "aws/request.Request" representing the
// client's request for the Search 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 Search for more information on using the Search
// 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 SearchRequest method.
//	req, resp := client.SearchRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/Search
func (c *DataZone) SearchRequest(input *SearchInput) (req *request.Request, output *SearchOutput) {
	op := &request.Operation{
		Name:       opSearch,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/search",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &SearchInput{}
	}

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

// Search API operation for Amazon DataZone.
//
// Searches for assets in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation Search for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/Search
func (c *DataZone) Search(input *SearchInput) (*SearchOutput, error) {
	req, out := c.SearchRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opSearchGroupProfiles = "SearchGroupProfiles"

// SearchGroupProfilesRequest generates a "aws/request.Request" representing the
// client's request for the SearchGroupProfiles 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 SearchGroupProfiles for more information on using the SearchGroupProfiles
// 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 SearchGroupProfilesRequest method.
//	req, resp := client.SearchGroupProfilesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/SearchGroupProfiles
func (c *DataZone) SearchGroupProfilesRequest(input *SearchGroupProfilesInput) (req *request.Request, output *SearchGroupProfilesOutput) {
	op := &request.Operation{
		Name:       opSearchGroupProfiles,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/search-group-profiles",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &SearchGroupProfilesInput{}
	}

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

// SearchGroupProfiles API operation for Amazon DataZone.
//
// Searches group profiles in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation SearchGroupProfiles for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/SearchGroupProfiles
func (c *DataZone) SearchGroupProfiles(input *SearchGroupProfilesInput) (*SearchGroupProfilesOutput, error) {
	req, out := c.SearchGroupProfilesRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opSearchListings = "SearchListings"

// SearchListingsRequest generates a "aws/request.Request" representing the
// client's request for the SearchListings 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 SearchListings for more information on using the SearchListings
// 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 SearchListingsRequest method.
//	req, resp := client.SearchListingsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/SearchListings
func (c *DataZone) SearchListingsRequest(input *SearchListingsInput) (req *request.Request, output *SearchListingsOutput) {
	op := &request.Operation{
		Name:       opSearchListings,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/listings/search",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &SearchListingsInput{}
	}

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

// SearchListings API operation for Amazon DataZone.
//
// Searches listings in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation SearchListings for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/SearchListings
func (c *DataZone) SearchListings(input *SearchListingsInput) (*SearchListingsOutput, error) {
	req, out := c.SearchListingsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opSearchTypes = "SearchTypes"

// SearchTypesRequest generates a "aws/request.Request" representing the
// client's request for the SearchTypes 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 SearchTypes for more information on using the SearchTypes
// 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 SearchTypesRequest method.
//	req, resp := client.SearchTypesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/SearchTypes
func (c *DataZone) SearchTypesRequest(input *SearchTypesInput) (req *request.Request, output *SearchTypesOutput) {
	op := &request.Operation{
		Name:       opSearchTypes,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/types-search",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &SearchTypesInput{}
	}

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

// SearchTypes API operation for Amazon DataZone.
//
// Searches for types in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation SearchTypes for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/SearchTypes
func (c *DataZone) SearchTypes(input *SearchTypesInput) (*SearchTypesOutput, error) {
	req, out := c.SearchTypesRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opSearchUserProfiles = "SearchUserProfiles"

// SearchUserProfilesRequest generates a "aws/request.Request" representing the
// client's request for the SearchUserProfiles 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 SearchUserProfiles for more information on using the SearchUserProfiles
// 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 SearchUserProfilesRequest method.
//	req, resp := client.SearchUserProfilesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/SearchUserProfiles
func (c *DataZone) SearchUserProfilesRequest(input *SearchUserProfilesInput) (req *request.Request, output *SearchUserProfilesOutput) {
	op := &request.Operation{
		Name:       opSearchUserProfiles,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/search-user-profiles",
		Paginator: &request.Paginator{
			InputTokens:     []string{"nextToken"},
			OutputTokens:    []string{"nextToken"},
			LimitToken:      "maxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &SearchUserProfilesInput{}
	}

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

// SearchUserProfiles API operation for Amazon DataZone.
//
// Searches user profiles in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation SearchUserProfiles for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/SearchUserProfiles
func (c *DataZone) SearchUserProfiles(input *SearchUserProfilesInput) (*SearchUserProfilesOutput, error) {
	req, out := c.SearchUserProfilesRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opStartDataSourceRun = "StartDataSourceRun"

// StartDataSourceRunRequest generates a "aws/request.Request" representing the
// client's request for the StartDataSourceRun 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 StartDataSourceRun for more information on using the StartDataSourceRun
// 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 StartDataSourceRunRequest method.
//	req, resp := client.StartDataSourceRunRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/StartDataSourceRun
func (c *DataZone) StartDataSourceRunRequest(input *StartDataSourceRunInput) (req *request.Request, output *StartDataSourceRunOutput) {
	op := &request.Operation{
		Name:       opStartDataSourceRun,
		HTTPMethod: "POST",
		HTTPPath:   "/v2/domains/{domainIdentifier}/data-sources/{dataSourceIdentifier}/runs",
	}

	if input == nil {
		input = &StartDataSourceRunInput{}
	}

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

// StartDataSourceRun API operation for Amazon DataZone.
//
// Start the run of the specified data source in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation StartDataSourceRun for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/StartDataSourceRun
func (c *DataZone) StartDataSourceRun(input *StartDataSourceRunInput) (*StartDataSourceRunOutput, error) {
	req, out := c.StartDataSourceRunRequest(input)
	return out, req.Send()
}

// StartDataSourceRunWithContext is the same as StartDataSourceRun with the addition of
// the ability to pass a context and additional request options.
//
// See StartDataSourceRun 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 *DataZone) StartDataSourceRunWithContext(ctx aws.Context, input *StartDataSourceRunInput, opts ...request.Option) (*StartDataSourceRunOutput, error) {
	req, out := c.StartDataSourceRunRequest(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/datazone-2018-05-10/TagResource
func (c *DataZone) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
	op := &request.Operation{
		Name:       opTagResource,
		HTTPMethod: "POST",
		HTTPPath:   "/tags/{resourceArn}",
	}

	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 Amazon DataZone.
//
// Tags a resource in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation TagResource for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/TagResource
func (c *DataZone) 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 *DataZone) 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/datazone-2018-05-10/UntagResource
func (c *DataZone) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
	op := &request.Operation{
		Name:       opUntagResource,
		HTTPMethod: "DELETE",
		HTTPPath:   "/tags/{resourceArn}",
	}

	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 Amazon DataZone.
//
// Untags a resource in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation UntagResource for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UntagResource
func (c *DataZone) 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 *DataZone) 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 opUpdateDataSource = "UpdateDataSource"

// UpdateDataSourceRequest generates a "aws/request.Request" representing the
// client's request for the UpdateDataSource 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 UpdateDataSource for more information on using the UpdateDataSource
// 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 UpdateDataSourceRequest method.
//	req, resp := client.UpdateDataSourceRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateDataSource
func (c *DataZone) UpdateDataSourceRequest(input *UpdateDataSourceInput) (req *request.Request, output *UpdateDataSourceOutput) {
	op := &request.Operation{
		Name:       opUpdateDataSource,
		HTTPMethod: "PATCH",
		HTTPPath:   "/v2/domains/{domainIdentifier}/data-sources/{identifier}",
	}

	if input == nil {
		input = &UpdateDataSourceInput{}
	}

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

// UpdateDataSource API operation for Amazon DataZone.
//
// Updates the specified data source in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation UpdateDataSource for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateDataSource
func (c *DataZone) UpdateDataSource(input *UpdateDataSourceInput) (*UpdateDataSourceOutput, error) {
	req, out := c.UpdateDataSourceRequest(input)
	return out, req.Send()
}

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

const opUpdateDomain = "UpdateDomain"

// UpdateDomainRequest generates a "aws/request.Request" representing the
// client's request for the UpdateDomain 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 UpdateDomain for more information on using the UpdateDomain
// 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 UpdateDomainRequest method.
//	req, resp := client.UpdateDomainRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateDomain
func (c *DataZone) UpdateDomainRequest(input *UpdateDomainInput) (req *request.Request, output *UpdateDomainOutput) {
	op := &request.Operation{
		Name:       opUpdateDomain,
		HTTPMethod: "PUT",
		HTTPPath:   "/v2/domains/{identifier}",
	}

	if input == nil {
		input = &UpdateDomainInput{}
	}

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

// UpdateDomain API operation for Amazon DataZone.
//
// Updates a Amazon DataZone domain.
//
// 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 Amazon DataZone's
// API operation UpdateDomain for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateDomain
func (c *DataZone) UpdateDomain(input *UpdateDomainInput) (*UpdateDomainOutput, error) {
	req, out := c.UpdateDomainRequest(input)
	return out, req.Send()
}

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

const opUpdateEnvironment = "UpdateEnvironment"

// UpdateEnvironmentRequest generates a "aws/request.Request" representing the
// client's request for the UpdateEnvironment 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 UpdateEnvironment for more information on using the UpdateEnvironment
// 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 UpdateEnvironmentRequest method.
//	req, resp := client.UpdateEnvironmentRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateEnvironment
func (c *DataZone) UpdateEnvironmentRequest(input *UpdateEnvironmentInput) (req *request.Request, output *UpdateEnvironmentOutput) {
	op := &request.Operation{
		Name:       opUpdateEnvironment,
		HTTPMethod: "PATCH",
		HTTPPath:   "/v2/domains/{domainIdentifier}/environments/{identifier}",
	}

	if input == nil {
		input = &UpdateEnvironmentInput{}
	}

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

// UpdateEnvironment API operation for Amazon DataZone.
//
// Updates the specified environment in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation UpdateEnvironment for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateEnvironment
func (c *DataZone) UpdateEnvironment(input *UpdateEnvironmentInput) (*UpdateEnvironmentOutput, error) {
	req, out := c.UpdateEnvironmentRequest(input)
	return out, req.Send()
}

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

const opUpdateEnvironmentProfile = "UpdateEnvironmentProfile"

// UpdateEnvironmentProfileRequest generates a "aws/request.Request" representing the
// client's request for the UpdateEnvironmentProfile 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 UpdateEnvironmentProfile for more information on using the UpdateEnvironmentProfile
// 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 UpdateEnvironmentProfileRequest method.
//	req, resp := client.UpdateEnvironmentProfileRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateEnvironmentProfile
func (c *DataZone) UpdateEnvironmentProfileRequest(input *UpdateEnvironmentProfileInput) (req *request.Request, output *UpdateEnvironmentProfileOutput) {
	op := &request.Operation{
		Name:       opUpdateEnvironmentProfile,
		HTTPMethod: "PATCH",
		HTTPPath:   "/v2/domains/{domainIdentifier}/environment-profiles/{identifier}",
	}

	if input == nil {
		input = &UpdateEnvironmentProfileInput{}
	}

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

// UpdateEnvironmentProfile API operation for Amazon DataZone.
//
// Updates the specified environment profile in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation UpdateEnvironmentProfile for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateEnvironmentProfile
func (c *DataZone) UpdateEnvironmentProfile(input *UpdateEnvironmentProfileInput) (*UpdateEnvironmentProfileOutput, error) {
	req, out := c.UpdateEnvironmentProfileRequest(input)
	return out, req.Send()
}

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

const opUpdateGlossary = "UpdateGlossary"

// UpdateGlossaryRequest generates a "aws/request.Request" representing the
// client's request for the UpdateGlossary 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 UpdateGlossary for more information on using the UpdateGlossary
// 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 UpdateGlossaryRequest method.
//	req, resp := client.UpdateGlossaryRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateGlossary
func (c *DataZone) UpdateGlossaryRequest(input *UpdateGlossaryInput) (req *request.Request, output *UpdateGlossaryOutput) {
	op := &request.Operation{
		Name:       opUpdateGlossary,
		HTTPMethod: "PATCH",
		HTTPPath:   "/v2/domains/{domainIdentifier}/glossaries/{identifier}",
	}

	if input == nil {
		input = &UpdateGlossaryInput{}
	}

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

// UpdateGlossary API operation for Amazon DataZone.
//
// Updates the business glossary in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation UpdateGlossary for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateGlossary
func (c *DataZone) UpdateGlossary(input *UpdateGlossaryInput) (*UpdateGlossaryOutput, error) {
	req, out := c.UpdateGlossaryRequest(input)
	return out, req.Send()
}

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

const opUpdateGlossaryTerm = "UpdateGlossaryTerm"

// UpdateGlossaryTermRequest generates a "aws/request.Request" representing the
// client's request for the UpdateGlossaryTerm 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 UpdateGlossaryTerm for more information on using the UpdateGlossaryTerm
// 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 UpdateGlossaryTermRequest method.
//	req, resp := client.UpdateGlossaryTermRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateGlossaryTerm
func (c *DataZone) UpdateGlossaryTermRequest(input *UpdateGlossaryTermInput) (req *request.Request, output *UpdateGlossaryTermOutput) {
	op := &request.Operation{
		Name:       opUpdateGlossaryTerm,
		HTTPMethod: "PATCH",
		HTTPPath:   "/v2/domains/{domainIdentifier}/glossary-terms/{identifier}",
	}

	if input == nil {
		input = &UpdateGlossaryTermInput{}
	}

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

// UpdateGlossaryTerm API operation for Amazon DataZone.
//
// Updates a business glossary term in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation UpdateGlossaryTerm for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateGlossaryTerm
func (c *DataZone) UpdateGlossaryTerm(input *UpdateGlossaryTermInput) (*UpdateGlossaryTermOutput, error) {
	req, out := c.UpdateGlossaryTermRequest(input)
	return out, req.Send()
}

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

const opUpdateGroupProfile = "UpdateGroupProfile"

// UpdateGroupProfileRequest generates a "aws/request.Request" representing the
// client's request for the UpdateGroupProfile 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 UpdateGroupProfile for more information on using the UpdateGroupProfile
// 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 UpdateGroupProfileRequest method.
//	req, resp := client.UpdateGroupProfileRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateGroupProfile
func (c *DataZone) UpdateGroupProfileRequest(input *UpdateGroupProfileInput) (req *request.Request, output *UpdateGroupProfileOutput) {
	op := &request.Operation{
		Name:       opUpdateGroupProfile,
		HTTPMethod: "PUT",
		HTTPPath:   "/v2/domains/{domainIdentifier}/group-profiles/{groupIdentifier}",
	}

	if input == nil {
		input = &UpdateGroupProfileInput{}
	}

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

// UpdateGroupProfile API operation for Amazon DataZone.
//
// Updates the specified group profile in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation UpdateGroupProfile for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateGroupProfile
func (c *DataZone) UpdateGroupProfile(input *UpdateGroupProfileInput) (*UpdateGroupProfileOutput, error) {
	req, out := c.UpdateGroupProfileRequest(input)
	return out, req.Send()
}

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

const opUpdateProject = "UpdateProject"

// UpdateProjectRequest generates a "aws/request.Request" representing the
// client's request for the UpdateProject 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 UpdateProject for more information on using the UpdateProject
// 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 UpdateProjectRequest method.
//	req, resp := client.UpdateProjectRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateProject
func (c *DataZone) UpdateProjectRequest(input *UpdateProjectInput) (req *request.Request, output *UpdateProjectOutput) {
	op := &request.Operation{
		Name:       opUpdateProject,
		HTTPMethod: "PATCH",
		HTTPPath:   "/v2/domains/{domainIdentifier}/projects/{identifier}",
	}

	if input == nil {
		input = &UpdateProjectInput{}
	}

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

// UpdateProject API operation for Amazon DataZone.
//
// Updates the specified project in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation UpdateProject for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ServiceQuotaExceededException
//     The request has exceeded the specified service quota.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateProject
func (c *DataZone) UpdateProject(input *UpdateProjectInput) (*UpdateProjectOutput, error) {
	req, out := c.UpdateProjectRequest(input)
	return out, req.Send()
}

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

const opUpdateSubscriptionGrantStatus = "UpdateSubscriptionGrantStatus"

// UpdateSubscriptionGrantStatusRequest generates a "aws/request.Request" representing the
// client's request for the UpdateSubscriptionGrantStatus 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 UpdateSubscriptionGrantStatus for more information on using the UpdateSubscriptionGrantStatus
// 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 UpdateSubscriptionGrantStatusRequest method.
//	req, resp := client.UpdateSubscriptionGrantStatusRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateSubscriptionGrantStatus
func (c *DataZone) UpdateSubscriptionGrantStatusRequest(input *UpdateSubscriptionGrantStatusInput) (req *request.Request, output *UpdateSubscriptionGrantStatusOutput) {
	op := &request.Operation{
		Name:       opUpdateSubscriptionGrantStatus,
		HTTPMethod: "PATCH",
		HTTPPath:   "/v2/domains/{domainIdentifier}/subscription-grants/{identifier}/status/{assetIdentifier}",
	}

	if input == nil {
		input = &UpdateSubscriptionGrantStatusInput{}
	}

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

// UpdateSubscriptionGrantStatus API operation for Amazon DataZone.
//
// Updates the status of the specified subscription grant status in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation UpdateSubscriptionGrantStatus for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateSubscriptionGrantStatus
func (c *DataZone) UpdateSubscriptionGrantStatus(input *UpdateSubscriptionGrantStatusInput) (*UpdateSubscriptionGrantStatusOutput, error) {
	req, out := c.UpdateSubscriptionGrantStatusRequest(input)
	return out, req.Send()
}

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

const opUpdateSubscriptionRequest = "UpdateSubscriptionRequest"

// UpdateSubscriptionRequestRequest generates a "aws/request.Request" representing the
// client's request for the UpdateSubscriptionRequest 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 UpdateSubscriptionRequest for more information on using the UpdateSubscriptionRequest
// 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 UpdateSubscriptionRequestRequest method.
//	req, resp := client.UpdateSubscriptionRequestRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateSubscriptionRequest
func (c *DataZone) UpdateSubscriptionRequestRequest(input *UpdateSubscriptionRequestInput) (req *request.Request, output *UpdateSubscriptionRequestOutput) {
	op := &request.Operation{
		Name:       opUpdateSubscriptionRequest,
		HTTPMethod: "PATCH",
		HTTPPath:   "/v2/domains/{domainIdentifier}/subscription-requests/{identifier}",
	}

	if input == nil {
		input = &UpdateSubscriptionRequestInput{}
	}

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

// UpdateSubscriptionRequest API operation for Amazon DataZone.
//
// Updates a specified subscription request in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation UpdateSubscriptionRequest for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateSubscriptionRequest
func (c *DataZone) UpdateSubscriptionRequest(input *UpdateSubscriptionRequestInput) (*UpdateSubscriptionRequestOutput, error) {
	req, out := c.UpdateSubscriptionRequestRequest(input)
	return out, req.Send()
}

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

const opUpdateSubscriptionTarget = "UpdateSubscriptionTarget"

// UpdateSubscriptionTargetRequest generates a "aws/request.Request" representing the
// client's request for the UpdateSubscriptionTarget 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 UpdateSubscriptionTarget for more information on using the UpdateSubscriptionTarget
// 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 UpdateSubscriptionTargetRequest method.
//	req, resp := client.UpdateSubscriptionTargetRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateSubscriptionTarget
func (c *DataZone) UpdateSubscriptionTargetRequest(input *UpdateSubscriptionTargetInput) (req *request.Request, output *UpdateSubscriptionTargetOutput) {
	op := &request.Operation{
		Name:       opUpdateSubscriptionTarget,
		HTTPMethod: "PATCH",
		HTTPPath:   "/v2/domains/{domainIdentifier}/environments/{environmentIdentifier}/subscription-targets/{identifier}",
	}

	if input == nil {
		input = &UpdateSubscriptionTargetInput{}
	}

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

// UpdateSubscriptionTarget API operation for Amazon DataZone.
//
// Updates the specified subscription target in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation UpdateSubscriptionTarget for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ConflictException
//     There is a conflict while performing this action.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateSubscriptionTarget
func (c *DataZone) UpdateSubscriptionTarget(input *UpdateSubscriptionTargetInput) (*UpdateSubscriptionTargetOutput, error) {
	req, out := c.UpdateSubscriptionTargetRequest(input)
	return out, req.Send()
}

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

const opUpdateUserProfile = "UpdateUserProfile"

// UpdateUserProfileRequest generates a "aws/request.Request" representing the
// client's request for the UpdateUserProfile 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 UpdateUserProfile for more information on using the UpdateUserProfile
// 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 UpdateUserProfileRequest method.
//	req, resp := client.UpdateUserProfileRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateUserProfile
func (c *DataZone) UpdateUserProfileRequest(input *UpdateUserProfileInput) (req *request.Request, output *UpdateUserProfileOutput) {
	op := &request.Operation{
		Name:       opUpdateUserProfile,
		HTTPMethod: "PUT",
		HTTPPath:   "/v2/domains/{domainIdentifier}/user-profiles/{userIdentifier}",
	}

	if input == nil {
		input = &UpdateUserProfileInput{}
	}

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

// UpdateUserProfile API operation for Amazon DataZone.
//
// Updates the specified user profile in Amazon DataZone.
//
// 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 Amazon DataZone's
// API operation UpdateUserProfile for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     The request has failed because of an unknown error, exception or failure.
//
//   - ResourceNotFoundException
//     The specified resource cannot be found.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - ThrottlingException
//     The request was denied due to request throttling.
//
//   - ValidationException
//     The input fails to satisfy the constraints specified by the Amazon Web Services
//     service.
//
//   - UnauthorizedException
//     You do not have permission to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/datazone-2018-05-10/UpdateUserProfile
func (c *DataZone) UpdateUserProfile(input *UpdateUserProfileInput) (*UpdateUserProfileOutput, error) {
	req, out := c.UpdateUserProfileRequest(input)
	return out, req.Send()
}

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

// Specifies the prediction (aka, the automatically generated piece of metadata)
// and the target (for example, a column name) that can be accepted.
type AcceptChoice struct {
	_ struct{} `type:"structure"`

	// Specifies the prediction (aka, the automatically generated piece of metadata)
	// that can be accepted.
	PredictionChoice *int64 `locationName:"predictionChoice" type:"integer"`

	// Specifies the target (for example, a column name) where a prediction can
	// be accepted.
	PredictionTarget *string `locationName:"predictionTarget" 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 AcceptChoice) String() string {
	return awsutil.Prettify(s)
}

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

// SetPredictionChoice sets the PredictionChoice field's value.
func (s *AcceptChoice) SetPredictionChoice(v int64) *AcceptChoice {
	s.PredictionChoice = &v
	return s
}

// SetPredictionTarget sets the PredictionTarget field's value.
func (s *AcceptChoice) SetPredictionTarget(v string) *AcceptChoice {
	s.PredictionTarget = &v
	return s
}

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

	AcceptChoices []*AcceptChoice `locationName:"acceptChoices" type:"list"`

	// Specifies the rule (or the conditions) under which a prediction can be accepted.
	AcceptRule *AcceptRule `locationName:"acceptRule" type:"structure"`

	// A unique, case-sensitive identifier to ensure idempotency of the request.
	// This field is automatically populated if not provided.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// The identifier of the Amazon DataZone domain.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" type:"string" required:"true"`

	Revision *string `location:"querystring" locationName:"revision" 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 AcceptPredictionsInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetAcceptChoices sets the AcceptChoices field's value.
func (s *AcceptPredictionsInput) SetAcceptChoices(v []*AcceptChoice) *AcceptPredictionsInput {
	s.AcceptChoices = v
	return s
}

// SetAcceptRule sets the AcceptRule field's value.
func (s *AcceptPredictionsInput) SetAcceptRule(v *AcceptRule) *AcceptPredictionsInput {
	s.AcceptRule = v
	return s
}

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *AcceptPredictionsInput) SetDomainIdentifier(v string) *AcceptPredictionsInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *AcceptPredictionsInput) SetIdentifier(v string) *AcceptPredictionsInput {
	s.Identifier = &v
	return s
}

// SetRevision sets the Revision field's value.
func (s *AcceptPredictionsInput) SetRevision(v string) *AcceptPredictionsInput {
	s.Revision = &v
	return s
}

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

	// AssetId is a required field
	AssetId *string `locationName:"assetId" type:"string" required:"true"`

	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// Revision is a required field
	Revision *string `locationName:"revision" 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 AcceptPredictionsOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetAssetId sets the AssetId field's value.
func (s *AcceptPredictionsOutput) SetAssetId(v string) *AcceptPredictionsOutput {
	s.AssetId = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *AcceptPredictionsOutput) SetDomainId(v string) *AcceptPredictionsOutput {
	s.DomainId = &v
	return s
}

// SetRevision sets the Revision field's value.
func (s *AcceptPredictionsOutput) SetRevision(v string) *AcceptPredictionsOutput {
	s.Revision = &v
	return s
}

// Specifies the rule and the threshold under which a prediction can be accepted.
type AcceptRule struct {
	_ struct{} `type:"structure"`

	// Specifies whether you want to accept the top prediction for all targets or
	// none.
	Rule *string `locationName:"rule" type:"string" enum:"AcceptRuleBehavior"`

	// The confidence score that specifies the condition at which a prediction can
	// be accepted.
	Threshold *float64 `locationName:"threshold" type:"float"`
}

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

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

// SetRule sets the Rule field's value.
func (s *AcceptRule) SetRule(v string) *AcceptRule {
	s.Rule = &v
	return s
}

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

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

	// A description that specifies the reason for accepting the specified subscription
	// request.
	//
	// DecisionComment is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by AcceptSubscriptionRequestInput's
	// String and GoString methods.
	DecisionComment *string `locationName:"decisionComment" min:"1" type:"string" sensitive:"true"`

	// The Amazon DataZone domain where the specified subscription request is being
	// accepted.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The unique identifier of the subscription request that is to be accepted.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 AcceptSubscriptionRequestInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDecisionComment sets the DecisionComment field's value.
func (s *AcceptSubscriptionRequestInput) SetDecisionComment(v string) *AcceptSubscriptionRequestInput {
	s.DecisionComment = &v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *AcceptSubscriptionRequestInput) SetDomainIdentifier(v string) *AcceptSubscriptionRequestInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *AcceptSubscriptionRequestInput) SetIdentifier(v string) *AcceptSubscriptionRequestInput {
	s.Identifier = &v
	return s
}

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

	// The timestamp that specifies when the subscription request was accepted.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`

	// Specifies the Amazon DataZone user that accepted the specified subscription
	// request.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// Specifies the reason for accepting the subscription request.
	//
	// DecisionComment is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by AcceptSubscriptionRequestOutput's
	// String and GoString methods.
	DecisionComment *string `locationName:"decisionComment" min:"1" type:"string" sensitive:"true"`

	// The unique identifier of the Amazon DataZone domain where the specified subscription
	// request was accepted.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The identifier of the subscription request.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// Specifies the reason for requesting a subscription to the asset.
	//
	// RequestReason is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by AcceptSubscriptionRequestOutput's
	// String and GoString methods.
	//
	// RequestReason is a required field
	RequestReason *string `locationName:"requestReason" min:"1" type:"string" required:"true" sensitive:"true"`

	// Specifes the ID of the Amazon DataZone user who reviewed the subscription
	// request.
	ReviewerId *string `locationName:"reviewerId" type:"string"`

	// Specifies the status of the subscription request.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"SubscriptionRequestStatus"`

	// Specifies the asset for which the subscription request was created.
	//
	// SubscribedListings is a required field
	SubscribedListings []*SubscribedListing `locationName:"subscribedListings" min:"1" type:"list" required:"true"`

	// Specifies the Amazon DataZone users who are subscribed to the asset specified
	// in the subscription request.
	//
	// SubscribedPrincipals is a required field
	SubscribedPrincipals []*SubscribedPrincipal `locationName:"subscribedPrincipals" min:"1" type:"list" required:"true"`

	// Specifies the timestamp when subscription request was updated.
	//
	// UpdatedAt is a required field
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" required:"true"`

	// Specifies the Amazon DataZone user who updated the subscription request.
	UpdatedBy *string `locationName:"updatedBy" 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 AcceptSubscriptionRequestOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDecisionComment sets the DecisionComment field's value.
func (s *AcceptSubscriptionRequestOutput) SetDecisionComment(v string) *AcceptSubscriptionRequestOutput {
	s.DecisionComment = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *AcceptSubscriptionRequestOutput) SetDomainId(v string) *AcceptSubscriptionRequestOutput {
	s.DomainId = &v
	return s
}

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

// SetRequestReason sets the RequestReason field's value.
func (s *AcceptSubscriptionRequestOutput) SetRequestReason(v string) *AcceptSubscriptionRequestOutput {
	s.RequestReason = &v
	return s
}

// SetReviewerId sets the ReviewerId field's value.
func (s *AcceptSubscriptionRequestOutput) SetReviewerId(v string) *AcceptSubscriptionRequestOutput {
	s.ReviewerId = &v
	return s
}

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

// SetSubscribedListings sets the SubscribedListings field's value.
func (s *AcceptSubscriptionRequestOutput) SetSubscribedListings(v []*SubscribedListing) *AcceptSubscriptionRequestOutput {
	s.SubscribedListings = v
	return s
}

// SetSubscribedPrincipals sets the SubscribedPrincipals field's value.
func (s *AcceptSubscriptionRequestOutput) SetSubscribedPrincipals(v []*SubscribedPrincipal) *AcceptSubscriptionRequestOutput {
	s.SubscribedPrincipals = v
	return s
}

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

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *AcceptSubscriptionRequestOutput) SetUpdatedBy(v string) *AcceptSubscriptionRequestOutput {
	s.UpdatedBy = &v
	return s
}

// 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
}

// A Amazon DataZone inventory asset.
type AssetItem struct {
	_ struct{} `type:"structure"`

	// The additional attributes of a Amazon DataZone inventory asset.
	AdditionalAttributes *AssetItemAdditionalAttributes `locationName:"additionalAttributes" type:"structure"`

	// The timestamp of when the Amazon DataZone inventory asset was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`

	// The Amazon DataZone user who created the inventory asset.
	CreatedBy *string `locationName:"createdBy" type:"string"`

	// The description of an Amazon DataZone inventory asset.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by AssetItem's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The identifier of the Amazon DataZone domain in which the inventory asset
	// exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The external identifier of the Amazon DataZone inventory asset.
	//
	// ExternalIdentifier is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by AssetItem's
	// String and GoString methods.
	ExternalIdentifier *string `locationName:"externalIdentifier" min:"1" type:"string" sensitive:"true"`

	// The timestamp of when the first revision of the inventory asset was created.
	FirstRevisionCreatedAt *time.Time `locationName:"firstRevisionCreatedAt" type:"timestamp"`

	// The Amazon DataZone user who created the first revision of the inventory
	// asset.
	FirstRevisionCreatedBy *string `locationName:"firstRevisionCreatedBy" type:"string"`

	// The glossary terms attached to the Amazon DataZone inventory asset.
	GlossaryTerms []*string `locationName:"glossaryTerms" min:"1" type:"list"`

	// the identifier of the Amazon DataZone inventory asset.
	//
	// Identifier is a required field
	Identifier *string `locationName:"identifier" type:"string" required:"true"`

	// The name of the Amazon DataZone inventory asset.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by AssetItem's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The identifier of the Amazon DataZone project that owns the inventory asset.
	//
	// OwningProjectId is a required field
	OwningProjectId *string `locationName:"owningProjectId" type:"string" required:"true"`

	// The identifier of the asset type of the specified Amazon DataZone inventory
	// asset.
	//
	// TypeIdentifier is a required field
	TypeIdentifier *string `locationName:"typeIdentifier" min:"1" type:"string" required:"true"`

	// The revision of the inventory asset type.
	//
	// TypeRevision is a required field
	TypeRevision *string `locationName:"typeRevision" 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 AssetItem) String() string {
	return awsutil.Prettify(s)
}

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

// SetAdditionalAttributes sets the AdditionalAttributes field's value.
func (s *AssetItem) SetAdditionalAttributes(v *AssetItemAdditionalAttributes) *AssetItem {
	s.AdditionalAttributes = v
	return s
}

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

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

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

// SetDomainId sets the DomainId field's value.
func (s *AssetItem) SetDomainId(v string) *AssetItem {
	s.DomainId = &v
	return s
}

// SetExternalIdentifier sets the ExternalIdentifier field's value.
func (s *AssetItem) SetExternalIdentifier(v string) *AssetItem {
	s.ExternalIdentifier = &v
	return s
}

// SetFirstRevisionCreatedAt sets the FirstRevisionCreatedAt field's value.
func (s *AssetItem) SetFirstRevisionCreatedAt(v time.Time) *AssetItem {
	s.FirstRevisionCreatedAt = &v
	return s
}

// SetFirstRevisionCreatedBy sets the FirstRevisionCreatedBy field's value.
func (s *AssetItem) SetFirstRevisionCreatedBy(v string) *AssetItem {
	s.FirstRevisionCreatedBy = &v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *AssetItem) SetGlossaryTerms(v []*string) *AssetItem {
	s.GlossaryTerms = v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *AssetItem) SetIdentifier(v string) *AssetItem {
	s.Identifier = &v
	return s
}

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

// SetOwningProjectId sets the OwningProjectId field's value.
func (s *AssetItem) SetOwningProjectId(v string) *AssetItem {
	s.OwningProjectId = &v
	return s
}

// SetTypeIdentifier sets the TypeIdentifier field's value.
func (s *AssetItem) SetTypeIdentifier(v string) *AssetItem {
	s.TypeIdentifier = &v
	return s
}

// SetTypeRevision sets the TypeRevision field's value.
func (s *AssetItem) SetTypeRevision(v string) *AssetItem {
	s.TypeRevision = &v
	return s
}

// The additional attributes of an inventory asset.
type AssetItemAdditionalAttributes struct {
	_ struct{} `type:"structure"`

	// The forms included in the additional attributes of an inventory asset.
	FormsOutput []*FormOutput_ `locationName:"formsOutput" type:"list"`

	// The read-only forms included in the additional attributes of an inventory
	// asset.
	ReadOnlyFormsOutput []*FormOutput_ `locationName:"readOnlyFormsOutput" 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 AssetItemAdditionalAttributes) String() string {
	return awsutil.Prettify(s)
}

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

// SetFormsOutput sets the FormsOutput field's value.
func (s *AssetItemAdditionalAttributes) SetFormsOutput(v []*FormOutput_) *AssetItemAdditionalAttributes {
	s.FormsOutput = v
	return s
}

// SetReadOnlyFormsOutput sets the ReadOnlyFormsOutput field's value.
func (s *AssetItemAdditionalAttributes) SetReadOnlyFormsOutput(v []*FormOutput_) *AssetItemAdditionalAttributes {
	s.ReadOnlyFormsOutput = v
	return s
}

// An asset published in an Amazon DataZone catalog.
type AssetListing struct {
	_ struct{} `type:"structure"`

	// The identifier of an asset published in an Amazon DataZone catalog.
	AssetId *string `locationName:"assetId" type:"string"`

	// The revision of an asset published in an Amazon DataZone catalog.
	AssetRevision *string `locationName:"assetRevision" min:"1" type:"string"`

	// The type of an asset published in an Amazon DataZone catalog.
	AssetType *string `locationName:"assetType" min:"1" type:"string"`

	// The timestamp of when an asset published in an Amazon DataZone catalog was
	// created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`

	// The metadata forms attached to an asset published in an Amazon DataZone catalog.
	Forms *string `locationName:"forms" type:"string"`

	// The glossary terms attached to an asset published in an Amazon DataZone catalog.
	GlossaryTerms []*DetailedGlossaryTerm `locationName:"glossaryTerms" type:"list"`

	// The identifier of the project where an asset published in an Amazon DataZone
	// catalog exists.
	OwningProjectId *string `locationName:"owningProjectId" 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 AssetListing) String() string {
	return awsutil.Prettify(s)
}

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

// SetAssetId sets the AssetId field's value.
func (s *AssetListing) SetAssetId(v string) *AssetListing {
	s.AssetId = &v
	return s
}

// SetAssetRevision sets the AssetRevision field's value.
func (s *AssetListing) SetAssetRevision(v string) *AssetListing {
	s.AssetRevision = &v
	return s
}

// SetAssetType sets the AssetType field's value.
func (s *AssetListing) SetAssetType(v string) *AssetListing {
	s.AssetType = &v
	return s
}

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

// SetForms sets the Forms field's value.
func (s *AssetListing) SetForms(v string) *AssetListing {
	s.Forms = &v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *AssetListing) SetGlossaryTerms(v []*DetailedGlossaryTerm) *AssetListing {
	s.GlossaryTerms = v
	return s
}

// SetOwningProjectId sets the OwningProjectId field's value.
func (s *AssetListing) SetOwningProjectId(v string) *AssetListing {
	s.OwningProjectId = &v
	return s
}

// The details of an asset published in an Amazon DataZone catalog.
type AssetListingDetails struct {
	_ struct{} `type:"structure"`

	// The identifier of an asset published in an Amazon DataZone catalog.
	//
	// ListingId is a required field
	ListingId *string `locationName:"listingId" type:"string" required:"true"`

	// The status of an asset published in an Amazon DataZone catalog.
	//
	// ListingStatus is a required field
	ListingStatus *string `locationName:"listingStatus" type:"string" required:"true" enum:"ListingStatus"`
}

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

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

// SetListingId sets the ListingId field's value.
func (s *AssetListingDetails) SetListingId(v string) *AssetListingDetails {
	s.ListingId = &v
	return s
}

// SetListingStatus sets the ListingStatus field's value.
func (s *AssetListingDetails) SetListingStatus(v string) *AssetListingDetails {
	s.ListingStatus = &v
	return s
}

// The details of an asset published in an Amazon DataZone catalog.
type AssetListingItem struct {
	_ struct{} `type:"structure"`

	// The additional attributes of an asset published in an Amazon DataZone catalog.
	AdditionalAttributes *AssetListingItemAdditionalAttributes `locationName:"additionalAttributes" type:"structure"`

	// The timestamp of when an asset published in an Amazon DataZone catalog was
	// created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`

	// The description of an asset published in an Amazon DataZone catalog.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by AssetListingItem's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The identifier of the inventory asset.
	EntityId *string `locationName:"entityId" type:"string"`

	// The revision of the inventory asset.
	EntityRevision *string `locationName:"entityRevision" min:"1" type:"string"`

	// The type of the inventory asset.
	EntityType *string `locationName:"entityType" min:"1" type:"string"`

	// Glossary terms attached to the inventory asset.
	GlossaryTerms []*DetailedGlossaryTerm `locationName:"glossaryTerms" type:"list"`

	// The Amazon DataZone user who created the listing.
	ListingCreatedBy *string `locationName:"listingCreatedBy" type:"string"`

	// The identifier of the listing (asset published in Amazon DataZone catalog).
	ListingId *string `locationName:"listingId" type:"string"`

	// The revision of the listing (asset published in Amazon DataZone catalog).
	ListingRevision *string `locationName:"listingRevision" min:"1" type:"string"`

	// The Amazon DataZone user who updated the listing.
	ListingUpdatedBy *string `locationName:"listingUpdatedBy" type:"string"`

	// The name of the inventory asset.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by AssetListingItem's
	// String and GoString methods.
	Name *string `locationName:"name" min:"1" type:"string" sensitive:"true"`

	// The identifier of the project that owns the inventory asset.
	OwningProjectId *string `locationName:"owningProjectId" 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 AssetListingItem) String() string {
	return awsutil.Prettify(s)
}

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

// SetAdditionalAttributes sets the AdditionalAttributes field's value.
func (s *AssetListingItem) SetAdditionalAttributes(v *AssetListingItemAdditionalAttributes) *AssetListingItem {
	s.AdditionalAttributes = v
	return s
}

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

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

// SetEntityId sets the EntityId field's value.
func (s *AssetListingItem) SetEntityId(v string) *AssetListingItem {
	s.EntityId = &v
	return s
}

// SetEntityRevision sets the EntityRevision field's value.
func (s *AssetListingItem) SetEntityRevision(v string) *AssetListingItem {
	s.EntityRevision = &v
	return s
}

// SetEntityType sets the EntityType field's value.
func (s *AssetListingItem) SetEntityType(v string) *AssetListingItem {
	s.EntityType = &v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *AssetListingItem) SetGlossaryTerms(v []*DetailedGlossaryTerm) *AssetListingItem {
	s.GlossaryTerms = v
	return s
}

// SetListingCreatedBy sets the ListingCreatedBy field's value.
func (s *AssetListingItem) SetListingCreatedBy(v string) *AssetListingItem {
	s.ListingCreatedBy = &v
	return s
}

// SetListingId sets the ListingId field's value.
func (s *AssetListingItem) SetListingId(v string) *AssetListingItem {
	s.ListingId = &v
	return s
}

// SetListingRevision sets the ListingRevision field's value.
func (s *AssetListingItem) SetListingRevision(v string) *AssetListingItem {
	s.ListingRevision = &v
	return s
}

// SetListingUpdatedBy sets the ListingUpdatedBy field's value.
func (s *AssetListingItem) SetListingUpdatedBy(v string) *AssetListingItem {
	s.ListingUpdatedBy = &v
	return s
}

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

// SetOwningProjectId sets the OwningProjectId field's value.
func (s *AssetListingItem) SetOwningProjectId(v string) *AssetListingItem {
	s.OwningProjectId = &v
	return s
}

// Additional attributes of an inventory asset.
type AssetListingItemAdditionalAttributes struct {
	_ struct{} `type:"structure"`

	// The metadata forms that form additional attributes of the metadata asset.
	Forms *string `locationName:"forms" 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 AssetListingItemAdditionalAttributes) String() string {
	return awsutil.Prettify(s)
}

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

// SetForms sets the Forms field's value.
func (s *AssetListingItemAdditionalAttributes) SetForms(v string) *AssetListingItemAdditionalAttributes {
	s.Forms = &v
	return s
}

// The revision of an inventory asset.
type AssetRevision struct {
	_ struct{} `type:"structure"`

	// The timestamp of when an inventory asset revison was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`

	// The Amazon DataZone user who created the asset revision.
	CreatedBy *string `locationName:"createdBy" type:"string"`

	// The Amazon DataZone user who created the inventory asset.
	DomainId *string `locationName:"domainId" type:"string"`

	// The identifier of the inventory asset revision.
	Id *string `locationName:"id" type:"string"`

	// The revision details of the inventory asset.
	Revision *string `locationName:"revision" 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 AssetRevision) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDomainId sets the DomainId field's value.
func (s *AssetRevision) SetDomainId(v string) *AssetRevision {
	s.DomainId = &v
	return s
}

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

// SetRevision sets the Revision field's value.
func (s *AssetRevision) SetRevision(v string) *AssetRevision {
	s.Revision = &v
	return s
}

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

	// The identifier of the inventory asset.
	//
	// AssetId is a required field
	AssetId *string `locationName:"assetId" type:"string" required:"true"`

	// The target name in the asset target name map.
	//
	// TargetName is a required field
	TargetName *string `locationName:"targetName" 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 AssetTargetNameMap) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetAssetId sets the AssetId field's value.
func (s *AssetTargetNameMap) SetAssetId(v string) *AssetTargetNameMap {
	s.AssetId = &v
	return s
}

// SetTargetName sets the TargetName field's value.
func (s *AssetTargetNameMap) SetTargetName(v string) *AssetTargetNameMap {
	s.TargetName = &v
	return s
}

// The details of the asset type.
type AssetTypeItem struct {
	_ struct{} `type:"structure"`

	// The timestamp of when the asset type was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`

	// The Amazon DataZone user who created the asset type.
	CreatedBy *string `locationName:"createdBy" type:"string"`

	// The description of the asset type.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by AssetTypeItem's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The identifier of the Amazon DataZone domain where the asset type exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The forms included in the details of the asset type.
	//
	// FormsOutput is a required field
	FormsOutput map[string]*FormEntryOutput_ `locationName:"formsOutput" type:"map" required:"true"`

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

	// The identifier of the Amazon DataZone domain where the asset type was originally
	// created.
	OriginDomainId *string `locationName:"originDomainId" type:"string"`

	// The identifier of the Amazon DataZone project where the asset type exists.
	OriginProjectId *string `locationName:"originProjectId" type:"string"`

	// The identifier of the Amazon DataZone project that owns the asset type.
	//
	// OwningProjectId is a required field
	OwningProjectId *string `locationName:"owningProjectId" type:"string" required:"true"`

	// The revision of the asset type.
	//
	// Revision is a required field
	Revision *string `locationName:"revision" min:"1" type:"string" required:"true"`

	// The timestamp of when the asset type was updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`

	// The Amazon DataZone user who updated the asset type.
	UpdatedBy *string `locationName:"updatedBy" 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 AssetTypeItem) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetDomainId sets the DomainId field's value.
func (s *AssetTypeItem) SetDomainId(v string) *AssetTypeItem {
	s.DomainId = &v
	return s
}

// SetFormsOutput sets the FormsOutput field's value.
func (s *AssetTypeItem) SetFormsOutput(v map[string]*FormEntryOutput_) *AssetTypeItem {
	s.FormsOutput = v
	return s
}

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

// SetOriginDomainId sets the OriginDomainId field's value.
func (s *AssetTypeItem) SetOriginDomainId(v string) *AssetTypeItem {
	s.OriginDomainId = &v
	return s
}

// SetOriginProjectId sets the OriginProjectId field's value.
func (s *AssetTypeItem) SetOriginProjectId(v string) *AssetTypeItem {
	s.OriginProjectId = &v
	return s
}

// SetOwningProjectId sets the OwningProjectId field's value.
func (s *AssetTypeItem) SetOwningProjectId(v string) *AssetTypeItem {
	s.OwningProjectId = &v
	return s
}

// SetRevision sets the Revision field's value.
func (s *AssetTypeItem) SetRevision(v string) *AssetTypeItem {
	s.Revision = &v
	return s
}

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

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *AssetTypeItem) SetUpdatedBy(v string) *AssetTypeItem {
	s.UpdatedBy = &v
	return s
}

// The configuration of the business name generation.
type BusinessNameGenerationConfiguration struct {
	_ struct{} `type:"structure"`

	// Specifies whether the business name generation is enabled.
	Enabled *bool `locationName:"enabled" type:"boolean"`
}

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

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

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

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

	// The unique identifier of the Amazon DataZone domain where the subscription
	// request is being cancelled.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The unique identifier of the subscription that is being cancelled.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 CancelSubscriptionInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *CancelSubscriptionInput) SetDomainIdentifier(v string) *CancelSubscriptionInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *CancelSubscriptionInput) SetIdentifier(v string) *CancelSubscriptionInput {
	s.Identifier = &v
	return s
}

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

	// The timestamp that specifies when the request to cancel the subscription
	// was created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`

	// Specifies the Amazon DataZone user who is cancelling the subscription.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The unique identifier of the Amazon DataZone domain where the subscription
	// is being cancelled.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The identifier of the subscription.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// Specifies whether the permissions to the asset are retained after the subscription
	// is cancelled.
	RetainPermissions *bool `locationName:"retainPermissions" type:"boolean"`

	// The status of the request to cancel the subscription.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"SubscriptionStatus"`

	// The asset to which a subscription is being cancelled.
	//
	// SubscribedListing is a required field
	SubscribedListing *SubscribedListing `locationName:"subscribedListing" type:"structure" required:"true"`

	// The Amazon DataZone user who is made a subscriber to the specified asset
	// by the subscription that is being cancelled.
	//
	// SubscribedPrincipal is a required field
	SubscribedPrincipal *SubscribedPrincipal `locationName:"subscribedPrincipal" type:"structure" required:"true"`

	// The unique ID of the subscripton request for the subscription that is being
	// cancelled.
	SubscriptionRequestId *string `locationName:"subscriptionRequestId" type:"string"`

	// The timestamp that specifies when the subscription was cancelled.
	//
	// UpdatedAt is a required field
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user that cancelled the subscription.
	UpdatedBy *string `locationName:"updatedBy" 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 CancelSubscriptionOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDomainId sets the DomainId field's value.
func (s *CancelSubscriptionOutput) SetDomainId(v string) *CancelSubscriptionOutput {
	s.DomainId = &v
	return s
}

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

// SetRetainPermissions sets the RetainPermissions field's value.
func (s *CancelSubscriptionOutput) SetRetainPermissions(v bool) *CancelSubscriptionOutput {
	s.RetainPermissions = &v
	return s
}

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

// SetSubscribedListing sets the SubscribedListing field's value.
func (s *CancelSubscriptionOutput) SetSubscribedListing(v *SubscribedListing) *CancelSubscriptionOutput {
	s.SubscribedListing = v
	return s
}

// SetSubscribedPrincipal sets the SubscribedPrincipal field's value.
func (s *CancelSubscriptionOutput) SetSubscribedPrincipal(v *SubscribedPrincipal) *CancelSubscriptionOutput {
	s.SubscribedPrincipal = v
	return s
}

// SetSubscriptionRequestId sets the SubscriptionRequestId field's value.
func (s *CancelSubscriptionOutput) SetSubscriptionRequestId(v string) *CancelSubscriptionOutput {
	s.SubscriptionRequestId = &v
	return s
}

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

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *CancelSubscriptionOutput) SetUpdatedBy(v string) *CancelSubscriptionOutput {
	s.UpdatedBy = &v
	return s
}

// Part of the provisioning properties of the environment blueprint.
type CloudFormationProperties struct {
	_ struct{} `type:"structure"`

	// The template URL of the cloud formation provisioning properties of the environment
	// blueprint.
	//
	// TemplateUrl is a required field
	TemplateUrl *string `locationName:"templateUrl" 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 CloudFormationProperties) String() string {
	return awsutil.Prettify(s)
}

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

// SetTemplateUrl sets the TemplateUrl field's value.
func (s *CloudFormationProperties) SetTemplateUrl(v string) *CloudFormationProperties {
	s.TemplateUrl = &v
	return s
}

// The details of the parameters for the configurable environment action.
type ConfigurableActionParameter struct {
	_ struct{} `type:"structure"`

	// The key of the configurable action parameter.
	Key *string `locationName:"key" type:"string"`

	// The value of the configurable action parameter.
	Value *string `locationName:"value" 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 ConfigurableActionParameter) String() string {
	return awsutil.Prettify(s)
}

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

// SetKey sets the Key field's value.
func (s *ConfigurableActionParameter) SetKey(v string) *ConfigurableActionParameter {
	s.Key = &v
	return s
}

// SetValue sets the Value field's value.
func (s *ConfigurableActionParameter) SetValue(v string) *ConfigurableActionParameter {
	s.Value = &v
	return s
}

// The configurable action of a Amazon DataZone environment.
type ConfigurableEnvironmentAction struct {
	_ struct{} `type:"structure"`

	// The authentication type of a configurable action of a Amazon DataZone environment.
	Auth *string `locationName:"auth" type:"string" enum:"ConfigurableActionTypeAuthorization"`

	// The parameters of a configurable action in a Amazon DataZone environment.
	//
	// Parameters is a required field
	Parameters []*ConfigurableActionParameter `locationName:"parameters" type:"list" required:"true"`

	// The type of a configurable action in a Amazon DataZone environment.
	//
	// Type is a required field
	Type *string `locationName:"type" 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 ConfigurableEnvironmentAction) String() string {
	return awsutil.Prettify(s)
}

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

// SetAuth sets the Auth field's value.
func (s *ConfigurableEnvironmentAction) SetAuth(v string) *ConfigurableEnvironmentAction {
	s.Auth = &v
	return s
}

// SetParameters sets the Parameters field's value.
func (s *ConfigurableEnvironmentAction) SetParameters(v []*ConfigurableActionParameter) *ConfigurableEnvironmentAction {
	s.Parameters = v
	return s
}

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

// There is a conflict while performing this action.
type ConflictException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

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

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

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

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

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

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

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

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

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

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

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

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

	// Asset description.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAssetInput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// Amazon DataZone domain where the asset is created.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// ExternalIdentifier is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAssetInput's
	// String and GoString methods.
	ExternalIdentifier *string `locationName:"externalIdentifier" min:"1" type:"string" sensitive:"true"`

	// Metadata forms attached to the asset.
	//
	// FormsInput is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAssetInput's
	// String and GoString methods.
	FormsInput []*FormInput_ `locationName:"formsInput" type:"list" sensitive:"true"`

	// Glossary terms attached to the asset.
	GlossaryTerms []*string `locationName:"glossaryTerms" min:"1" type:"list"`

	// Asset name.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAssetInput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The unique identifier of the project that owns this asset.
	//
	// OwningProjectIdentifier is a required field
	OwningProjectIdentifier *string `locationName:"owningProjectIdentifier" type:"string" required:"true"`

	// The configuration of the automatically generated business-friendly metadata
	// for the asset.
	PredictionConfiguration *PredictionConfiguration `locationName:"predictionConfiguration" type:"structure"`

	// The unique identifier of this asset's type.
	//
	// TypeIdentifier is a required field
	TypeIdentifier *string `locationName:"typeIdentifier" min:"1" type:"string" required:"true"`

	// The revision of this asset's type.
	TypeRevision *string `locationName:"typeRevision" 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 CreateAssetInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *CreateAssetInput) SetDomainIdentifier(v string) *CreateAssetInput {
	s.DomainIdentifier = &v
	return s
}

// SetExternalIdentifier sets the ExternalIdentifier field's value.
func (s *CreateAssetInput) SetExternalIdentifier(v string) *CreateAssetInput {
	s.ExternalIdentifier = &v
	return s
}

// SetFormsInput sets the FormsInput field's value.
func (s *CreateAssetInput) SetFormsInput(v []*FormInput_) *CreateAssetInput {
	s.FormsInput = v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *CreateAssetInput) SetGlossaryTerms(v []*string) *CreateAssetInput {
	s.GlossaryTerms = v
	return s
}

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

// SetOwningProjectIdentifier sets the OwningProjectIdentifier field's value.
func (s *CreateAssetInput) SetOwningProjectIdentifier(v string) *CreateAssetInput {
	s.OwningProjectIdentifier = &v
	return s
}

// SetPredictionConfiguration sets the PredictionConfiguration field's value.
func (s *CreateAssetInput) SetPredictionConfiguration(v *PredictionConfiguration) *CreateAssetInput {
	s.PredictionConfiguration = v
	return s
}

// SetTypeIdentifier sets the TypeIdentifier field's value.
func (s *CreateAssetInput) SetTypeIdentifier(v string) *CreateAssetInput {
	s.TypeIdentifier = &v
	return s
}

// SetTypeRevision sets the TypeRevision field's value.
func (s *CreateAssetInput) SetTypeRevision(v string) *CreateAssetInput {
	s.TypeRevision = &v
	return s
}

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

	// The timestamp of when the asset was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`

	// The Amazon DataZone user that created this asset in the catalog.
	CreatedBy *string `locationName:"createdBy" type:"string"`

	// The description of the created asset.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAssetOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain in which the asset was created.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// ExternalIdentifier is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAssetOutput's
	// String and GoString methods.
	ExternalIdentifier *string `locationName:"externalIdentifier" min:"1" type:"string" sensitive:"true"`

	// The timestamp of when the first revision of the asset took place.
	FirstRevisionCreatedAt *time.Time `locationName:"firstRevisionCreatedAt" type:"timestamp"`

	// The Amazon DataZone user that made the first revision of the asset.
	FirstRevisionCreatedBy *string `locationName:"firstRevisionCreatedBy" type:"string"`

	// The metadata forms that are attached to the created asset.
	//
	// FormsOutput is a required field
	FormsOutput []*FormOutput_ `locationName:"formsOutput" type:"list" required:"true"`

	// The glossary terms that are attached to the created asset.
	GlossaryTerms []*string `locationName:"glossaryTerms" min:"1" type:"list"`

	// The unique identifier of the created asset.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The details of an asset published in an Amazon DataZone catalog.
	Listing *AssetListingDetails `locationName:"listing" type:"structure"`

	// The name of the created asset.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAssetOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The ID of the Amazon DataZone project that owns the created asset.
	//
	// OwningProjectId is a required field
	OwningProjectId *string `locationName:"owningProjectId" type:"string" required:"true"`

	// The configuration of the automatically generated business-friendly metadata
	// for the asset.
	PredictionConfiguration *PredictionConfiguration `locationName:"predictionConfiguration" type:"structure"`

	// The read-only metadata forms that are attached to the created asset.
	ReadOnlyFormsOutput []*FormOutput_ `locationName:"readOnlyFormsOutput" type:"list"`

	// The revision of the asset.
	//
	// Revision is a required field
	Revision *string `locationName:"revision" min:"1" type:"string" required:"true"`

	// The identifier of the created asset type.
	//
	// TypeIdentifier is a required field
	TypeIdentifier *string `locationName:"typeIdentifier" min:"1" type:"string" required:"true"`

	// The revision type of the asset.
	//
	// TypeRevision is a required field
	TypeRevision *string `locationName:"typeRevision" 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 CreateAssetOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetDomainId sets the DomainId field's value.
func (s *CreateAssetOutput) SetDomainId(v string) *CreateAssetOutput {
	s.DomainId = &v
	return s
}

// SetExternalIdentifier sets the ExternalIdentifier field's value.
func (s *CreateAssetOutput) SetExternalIdentifier(v string) *CreateAssetOutput {
	s.ExternalIdentifier = &v
	return s
}

// SetFirstRevisionCreatedAt sets the FirstRevisionCreatedAt field's value.
func (s *CreateAssetOutput) SetFirstRevisionCreatedAt(v time.Time) *CreateAssetOutput {
	s.FirstRevisionCreatedAt = &v
	return s
}

// SetFirstRevisionCreatedBy sets the FirstRevisionCreatedBy field's value.
func (s *CreateAssetOutput) SetFirstRevisionCreatedBy(v string) *CreateAssetOutput {
	s.FirstRevisionCreatedBy = &v
	return s
}

// SetFormsOutput sets the FormsOutput field's value.
func (s *CreateAssetOutput) SetFormsOutput(v []*FormOutput_) *CreateAssetOutput {
	s.FormsOutput = v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *CreateAssetOutput) SetGlossaryTerms(v []*string) *CreateAssetOutput {
	s.GlossaryTerms = v
	return s
}

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

// SetListing sets the Listing field's value.
func (s *CreateAssetOutput) SetListing(v *AssetListingDetails) *CreateAssetOutput {
	s.Listing = v
	return s
}

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

// SetOwningProjectId sets the OwningProjectId field's value.
func (s *CreateAssetOutput) SetOwningProjectId(v string) *CreateAssetOutput {
	s.OwningProjectId = &v
	return s
}

// SetPredictionConfiguration sets the PredictionConfiguration field's value.
func (s *CreateAssetOutput) SetPredictionConfiguration(v *PredictionConfiguration) *CreateAssetOutput {
	s.PredictionConfiguration = v
	return s
}

// SetReadOnlyFormsOutput sets the ReadOnlyFormsOutput field's value.
func (s *CreateAssetOutput) SetReadOnlyFormsOutput(v []*FormOutput_) *CreateAssetOutput {
	s.ReadOnlyFormsOutput = v
	return s
}

// SetRevision sets the Revision field's value.
func (s *CreateAssetOutput) SetRevision(v string) *CreateAssetOutput {
	s.Revision = &v
	return s
}

// SetTypeIdentifier sets the TypeIdentifier field's value.
func (s *CreateAssetOutput) SetTypeIdentifier(v string) *CreateAssetOutput {
	s.TypeIdentifier = &v
	return s
}

// SetTypeRevision sets the TypeRevision field's value.
func (s *CreateAssetOutput) SetTypeRevision(v string) *CreateAssetOutput {
	s.TypeRevision = &v
	return s
}

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

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

	// The revised description of the asset.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAssetRevisionInput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The unique identifier of the domain where the asset is being revised.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The metadata forms to be attached to the asset as part of asset revision.
	//
	// FormsInput is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAssetRevisionInput's
	// String and GoString methods.
	FormsInput []*FormInput_ `locationName:"formsInput" type:"list" sensitive:"true"`

	// The glossary terms to be attached to the asset as part of asset revision.
	GlossaryTerms []*string `locationName:"glossaryTerms" min:"1" type:"list"`

	// The identifier of the asset.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" type:"string" required:"true"`

	// Te revised name of the asset.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAssetRevisionInput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The configuration of the automatically generated business-friendly metadata
	// for the asset.
	PredictionConfiguration *PredictionConfiguration `locationName:"predictionConfiguration" type:"structure"`

	// The revision type of the asset.
	TypeRevision *string `locationName:"typeRevision" 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 CreateAssetRevisionInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *CreateAssetRevisionInput) SetDomainIdentifier(v string) *CreateAssetRevisionInput {
	s.DomainIdentifier = &v
	return s
}

// SetFormsInput sets the FormsInput field's value.
func (s *CreateAssetRevisionInput) SetFormsInput(v []*FormInput_) *CreateAssetRevisionInput {
	s.FormsInput = v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *CreateAssetRevisionInput) SetGlossaryTerms(v []*string) *CreateAssetRevisionInput {
	s.GlossaryTerms = v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *CreateAssetRevisionInput) SetIdentifier(v string) *CreateAssetRevisionInput {
	s.Identifier = &v
	return s
}

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

// SetPredictionConfiguration sets the PredictionConfiguration field's value.
func (s *CreateAssetRevisionInput) SetPredictionConfiguration(v *PredictionConfiguration) *CreateAssetRevisionInput {
	s.PredictionConfiguration = v
	return s
}

// SetTypeRevision sets the TypeRevision field's value.
func (s *CreateAssetRevisionInput) SetTypeRevision(v string) *CreateAssetRevisionInput {
	s.TypeRevision = &v
	return s
}

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

	// The timestamp of when the asset revision occured.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`

	// The Amazon DataZone user who performed the asset revision.
	CreatedBy *string `locationName:"createdBy" type:"string"`

	// The revised asset description.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAssetRevisionOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The unique identifier of the Amazon DataZone domain where the asset was revised.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// ExternalIdentifier is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAssetRevisionOutput's
	// String and GoString methods.
	ExternalIdentifier *string `locationName:"externalIdentifier" min:"1" type:"string" sensitive:"true"`

	// The timestamp of when the first asset revision occured.
	FirstRevisionCreatedAt *time.Time `locationName:"firstRevisionCreatedAt" type:"timestamp"`

	// The Amazon DataZone user who performed the first asset revision.
	FirstRevisionCreatedBy *string `locationName:"firstRevisionCreatedBy" type:"string"`

	// The metadata forms that were attached to the asset as part of the asset revision.
	//
	// FormsOutput is a required field
	FormsOutput []*FormOutput_ `locationName:"formsOutput" type:"list" required:"true"`

	// The glossary terms that were attached to the asset as part of asset revision.
	GlossaryTerms []*string `locationName:"glossaryTerms" min:"1" type:"list"`

	// The unique identifier of the asset revision.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The details of an asset published in an Amazon DataZone catalog.
	Listing *AssetListingDetails `locationName:"listing" type:"structure"`

	// The revised name of the asset.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAssetRevisionOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The unique identifier of the revised project that owns the asset.
	//
	// OwningProjectId is a required field
	OwningProjectId *string `locationName:"owningProjectId" type:"string" required:"true"`

	// The configuration of the automatically generated business-friendly metadata
	// for the asset.
	PredictionConfiguration *PredictionConfiguration `locationName:"predictionConfiguration" type:"structure"`

	// The read-only metadata forms that were attached to the asset as part of the
	// asset revision.
	ReadOnlyFormsOutput []*FormOutput_ `locationName:"readOnlyFormsOutput" type:"list"`

	// The revision of the asset.
	//
	// Revision is a required field
	Revision *string `locationName:"revision" min:"1" type:"string" required:"true"`

	// The identifier of the revision type.
	//
	// TypeIdentifier is a required field
	TypeIdentifier *string `locationName:"typeIdentifier" min:"1" type:"string" required:"true"`

	// The revision type of the asset.
	//
	// TypeRevision is a required field
	TypeRevision *string `locationName:"typeRevision" 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 CreateAssetRevisionOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetDomainId sets the DomainId field's value.
func (s *CreateAssetRevisionOutput) SetDomainId(v string) *CreateAssetRevisionOutput {
	s.DomainId = &v
	return s
}

// SetExternalIdentifier sets the ExternalIdentifier field's value.
func (s *CreateAssetRevisionOutput) SetExternalIdentifier(v string) *CreateAssetRevisionOutput {
	s.ExternalIdentifier = &v
	return s
}

// SetFirstRevisionCreatedAt sets the FirstRevisionCreatedAt field's value.
func (s *CreateAssetRevisionOutput) SetFirstRevisionCreatedAt(v time.Time) *CreateAssetRevisionOutput {
	s.FirstRevisionCreatedAt = &v
	return s
}

// SetFirstRevisionCreatedBy sets the FirstRevisionCreatedBy field's value.
func (s *CreateAssetRevisionOutput) SetFirstRevisionCreatedBy(v string) *CreateAssetRevisionOutput {
	s.FirstRevisionCreatedBy = &v
	return s
}

// SetFormsOutput sets the FormsOutput field's value.
func (s *CreateAssetRevisionOutput) SetFormsOutput(v []*FormOutput_) *CreateAssetRevisionOutput {
	s.FormsOutput = v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *CreateAssetRevisionOutput) SetGlossaryTerms(v []*string) *CreateAssetRevisionOutput {
	s.GlossaryTerms = v
	return s
}

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

// SetListing sets the Listing field's value.
func (s *CreateAssetRevisionOutput) SetListing(v *AssetListingDetails) *CreateAssetRevisionOutput {
	s.Listing = v
	return s
}

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

// SetOwningProjectId sets the OwningProjectId field's value.
func (s *CreateAssetRevisionOutput) SetOwningProjectId(v string) *CreateAssetRevisionOutput {
	s.OwningProjectId = &v
	return s
}

// SetPredictionConfiguration sets the PredictionConfiguration field's value.
func (s *CreateAssetRevisionOutput) SetPredictionConfiguration(v *PredictionConfiguration) *CreateAssetRevisionOutput {
	s.PredictionConfiguration = v
	return s
}

// SetReadOnlyFormsOutput sets the ReadOnlyFormsOutput field's value.
func (s *CreateAssetRevisionOutput) SetReadOnlyFormsOutput(v []*FormOutput_) *CreateAssetRevisionOutput {
	s.ReadOnlyFormsOutput = v
	return s
}

// SetRevision sets the Revision field's value.
func (s *CreateAssetRevisionOutput) SetRevision(v string) *CreateAssetRevisionOutput {
	s.Revision = &v
	return s
}

// SetTypeIdentifier sets the TypeIdentifier field's value.
func (s *CreateAssetRevisionOutput) SetTypeIdentifier(v string) *CreateAssetRevisionOutput {
	s.TypeIdentifier = &v
	return s
}

// SetTypeRevision sets the TypeRevision field's value.
func (s *CreateAssetRevisionOutput) SetTypeRevision(v string) *CreateAssetRevisionOutput {
	s.TypeRevision = &v
	return s
}

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

	// The descripton of the custom asset type.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAssetTypeInput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The unique identifier of the Amazon DataZone domain where the custom asset
	// type is being created.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The metadata forms that are to be attached to the custom asset type.
	//
	// FormsInput is a required field
	FormsInput map[string]*FormEntryInput_ `locationName:"formsInput" type:"map" required:"true"`

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

	// The identifier of the Amazon DataZone project that is to own the custom asset
	// type.
	//
	// OwningProjectIdentifier is a required field
	OwningProjectIdentifier *string `locationName:"owningProjectIdentifier" 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 CreateAssetTypeInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *CreateAssetTypeInput) SetDomainIdentifier(v string) *CreateAssetTypeInput {
	s.DomainIdentifier = &v
	return s
}

// SetFormsInput sets the FormsInput field's value.
func (s *CreateAssetTypeInput) SetFormsInput(v map[string]*FormEntryInput_) *CreateAssetTypeInput {
	s.FormsInput = v
	return s
}

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

// SetOwningProjectIdentifier sets the OwningProjectIdentifier field's value.
func (s *CreateAssetTypeInput) SetOwningProjectIdentifier(v string) *CreateAssetTypeInput {
	s.OwningProjectIdentifier = &v
	return s
}

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

	// The timestamp of when the asset type is to be created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`

	// The Amazon DataZone user who creates this custom asset type.
	CreatedBy *string `locationName:"createdBy" type:"string"`

	// The description of the custom asset type.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateAssetTypeOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain in which the asset type was created.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The metadata forms that are attached to the asset type.
	//
	// FormsOutput is a required field
	FormsOutput map[string]*FormEntryOutput_ `locationName:"formsOutput" type:"map" required:"true"`

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

	// The ID of the Amazon DataZone domain where the asset type was originally
	// created.
	OriginDomainId *string `locationName:"originDomainId" type:"string"`

	// The ID of the Amazon DataZone project where the asset type was originally
	// created.
	OriginProjectId *string `locationName:"originProjectId" type:"string"`

	// The ID of the Amazon DataZone project that currently owns this asset type.
	OwningProjectId *string `locationName:"owningProjectId" type:"string"`

	// The revision of the custom asset type.
	//
	// Revision is a required field
	Revision *string `locationName:"revision" min:"1" type:"string" required:"true"`

	// The timestamp of when the custom type was created.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`

	// The Amazon DataZone user that created the custom asset type.
	UpdatedBy *string `locationName:"updatedBy" 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 CreateAssetTypeOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetDomainId sets the DomainId field's value.
func (s *CreateAssetTypeOutput) SetDomainId(v string) *CreateAssetTypeOutput {
	s.DomainId = &v
	return s
}

// SetFormsOutput sets the FormsOutput field's value.
func (s *CreateAssetTypeOutput) SetFormsOutput(v map[string]*FormEntryOutput_) *CreateAssetTypeOutput {
	s.FormsOutput = v
	return s
}

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

// SetOriginDomainId sets the OriginDomainId field's value.
func (s *CreateAssetTypeOutput) SetOriginDomainId(v string) *CreateAssetTypeOutput {
	s.OriginDomainId = &v
	return s
}

// SetOriginProjectId sets the OriginProjectId field's value.
func (s *CreateAssetTypeOutput) SetOriginProjectId(v string) *CreateAssetTypeOutput {
	s.OriginProjectId = &v
	return s
}

// SetOwningProjectId sets the OwningProjectId field's value.
func (s *CreateAssetTypeOutput) SetOwningProjectId(v string) *CreateAssetTypeOutput {
	s.OwningProjectId = &v
	return s
}

// SetRevision sets the Revision field's value.
func (s *CreateAssetTypeOutput) SetRevision(v string) *CreateAssetTypeOutput {
	s.Revision = &v
	return s
}

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

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *CreateAssetTypeOutput) SetUpdatedBy(v string) *CreateAssetTypeOutput {
	s.UpdatedBy = &v
	return s
}

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

	// The metadata forms that are to be attached to the assets that this data source
	// works with.
	//
	// AssetFormsInput is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateDataSourceInput's
	// String and GoString methods.
	AssetFormsInput []*FormInput_ `locationName:"assetFormsInput" type:"list" sensitive:"true"`

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

	// Specifies the configuration of the data source. It can be set to either glueRunConfiguration
	// or redshiftRunConfiguration.
	Configuration *DataSourceConfigurationInput_ `locationName:"configuration" type:"structure"`

	// The description of the data source.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateDataSourceInput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain where the data source is created.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// Specifies whether the data source is enabled.
	EnableSetting *string `locationName:"enableSetting" type:"string" enum:"EnableSetting"`

	// The unique identifier of the Amazon DataZone environment to which the data
	// source publishes assets.
	//
	// EnvironmentIdentifier is a required field
	EnvironmentIdentifier *string `locationName:"environmentIdentifier" type:"string" required:"true"`

	// The name of the data source.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateDataSourceInput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The identifier of the Amazon DataZone project in which you want to add this
	// data source.
	//
	// ProjectIdentifier is a required field
	ProjectIdentifier *string `locationName:"projectIdentifier" type:"string" required:"true"`

	// Specifies whether the assets that this data source creates in the inventory
	// are to be also automatically published to the catalog.
	PublishOnImport *bool `locationName:"publishOnImport" type:"boolean"`

	// Specifies whether the business name generation is to be enabled for this
	// data source.
	Recommendation *RecommendationConfiguration `locationName:"recommendation" type:"structure"`

	// The schedule of the data source runs.
	//
	// Schedule is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateDataSourceInput's
	// String and GoString methods.
	Schedule *ScheduleConfiguration `locationName:"schedule" type:"structure" sensitive:"true"`

	// The type of the data source.
	//
	// Type is a required field
	Type *string `locationName:"type" 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 CreateDataSourceInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetAssetFormsInput sets the AssetFormsInput field's value.
func (s *CreateDataSourceInput) SetAssetFormsInput(v []*FormInput_) *CreateDataSourceInput {
	s.AssetFormsInput = v
	return s
}

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

// SetConfiguration sets the Configuration field's value.
func (s *CreateDataSourceInput) SetConfiguration(v *DataSourceConfigurationInput_) *CreateDataSourceInput {
	s.Configuration = v
	return s
}

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *CreateDataSourceInput) SetDomainIdentifier(v string) *CreateDataSourceInput {
	s.DomainIdentifier = &v
	return s
}

// SetEnableSetting sets the EnableSetting field's value.
func (s *CreateDataSourceInput) SetEnableSetting(v string) *CreateDataSourceInput {
	s.EnableSetting = &v
	return s
}

// SetEnvironmentIdentifier sets the EnvironmentIdentifier field's value.
func (s *CreateDataSourceInput) SetEnvironmentIdentifier(v string) *CreateDataSourceInput {
	s.EnvironmentIdentifier = &v
	return s
}

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

// SetProjectIdentifier sets the ProjectIdentifier field's value.
func (s *CreateDataSourceInput) SetProjectIdentifier(v string) *CreateDataSourceInput {
	s.ProjectIdentifier = &v
	return s
}

// SetPublishOnImport sets the PublishOnImport field's value.
func (s *CreateDataSourceInput) SetPublishOnImport(v bool) *CreateDataSourceInput {
	s.PublishOnImport = &v
	return s
}

// SetRecommendation sets the Recommendation field's value.
func (s *CreateDataSourceInput) SetRecommendation(v *RecommendationConfiguration) *CreateDataSourceInput {
	s.Recommendation = v
	return s
}

// SetSchedule sets the Schedule field's value.
func (s *CreateDataSourceInput) SetSchedule(v *ScheduleConfiguration) *CreateDataSourceInput {
	s.Schedule = v
	return s
}

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

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

	// The metadata forms attached to the assets that this data source creates.
	AssetFormsOutput []*FormOutput_ `locationName:"assetFormsOutput" type:"list"`

	// Specifies the configuration of the data source. It can be set to either glueRunConfiguration
	// or redshiftRunConfiguration.
	Configuration *DataSourceConfigurationOutput_ `locationName:"configuration" type:"structure"`

	// The timestamp of when the data source was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The description of the data source.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateDataSourceOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain in which the data source is created.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// Specifies whether the data source is enabled.
	EnableSetting *string `locationName:"enableSetting" type:"string" enum:"EnableSetting"`

	// The unique identifier of the Amazon DataZone environment to which the data
	// source publishes assets.
	//
	// EnvironmentId is a required field
	EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"`

	// Specifies the error message that is returned if the operation cannot be successfully
	// completed.
	ErrorMessage *DataSourceErrorMessage `locationName:"errorMessage" type:"structure"`

	// The unique identifier of the data source.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The timestamp that specifies when the data source was last run.
	LastRunAt *time.Time `locationName:"lastRunAt" type:"timestamp" timestampFormat:"iso8601"`

	// Specifies the error message that is returned if the operation cannot be successfully
	// completed.
	LastRunErrorMessage *DataSourceErrorMessage `locationName:"lastRunErrorMessage" type:"structure"`

	// The status of the last run of this data source.
	LastRunStatus *string `locationName:"lastRunStatus" type:"string" enum:"DataSourceRunStatus"`

	// The name of the data source.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateDataSourceOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The ID of the Amazon DataZone project to which the data source is added.
	//
	// ProjectId is a required field
	ProjectId *string `locationName:"projectId" type:"string" required:"true"`

	// Specifies whether the assets that this data source creates in the inventory
	// are to be also automatically published to the catalog.
	PublishOnImport *bool `locationName:"publishOnImport" type:"boolean"`

	// Specifies whether the business name generation is to be enabled for this
	// data source.
	Recommendation *RecommendationConfiguration `locationName:"recommendation" type:"structure"`

	// The schedule of the data source runs.
	//
	// Schedule is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateDataSourceOutput's
	// String and GoString methods.
	Schedule *ScheduleConfiguration `locationName:"schedule" type:"structure" sensitive:"true"`

	// The status of the data source.
	Status *string `locationName:"status" type:"string" enum:"DataSourceStatus"`

	// The type of the data source.
	Type *string `locationName:"type" min:"1" type:"string"`

	// The timestamp of when the data source was 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 CreateDataSourceOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetAssetFormsOutput sets the AssetFormsOutput field's value.
func (s *CreateDataSourceOutput) SetAssetFormsOutput(v []*FormOutput_) *CreateDataSourceOutput {
	s.AssetFormsOutput = v
	return s
}

// SetConfiguration sets the Configuration field's value.
func (s *CreateDataSourceOutput) SetConfiguration(v *DataSourceConfigurationOutput_) *CreateDataSourceOutput {
	s.Configuration = v
	return s
}

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

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

// SetDomainId sets the DomainId field's value.
func (s *CreateDataSourceOutput) SetDomainId(v string) *CreateDataSourceOutput {
	s.DomainId = &v
	return s
}

// SetEnableSetting sets the EnableSetting field's value.
func (s *CreateDataSourceOutput) SetEnableSetting(v string) *CreateDataSourceOutput {
	s.EnableSetting = &v
	return s
}

// SetEnvironmentId sets the EnvironmentId field's value.
func (s *CreateDataSourceOutput) SetEnvironmentId(v string) *CreateDataSourceOutput {
	s.EnvironmentId = &v
	return s
}

// SetErrorMessage sets the ErrorMessage field's value.
func (s *CreateDataSourceOutput) SetErrorMessage(v *DataSourceErrorMessage) *CreateDataSourceOutput {
	s.ErrorMessage = v
	return s
}

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

// SetLastRunAt sets the LastRunAt field's value.
func (s *CreateDataSourceOutput) SetLastRunAt(v time.Time) *CreateDataSourceOutput {
	s.LastRunAt = &v
	return s
}

// SetLastRunErrorMessage sets the LastRunErrorMessage field's value.
func (s *CreateDataSourceOutput) SetLastRunErrorMessage(v *DataSourceErrorMessage) *CreateDataSourceOutput {
	s.LastRunErrorMessage = v
	return s
}

// SetLastRunStatus sets the LastRunStatus field's value.
func (s *CreateDataSourceOutput) SetLastRunStatus(v string) *CreateDataSourceOutput {
	s.LastRunStatus = &v
	return s
}

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

// SetProjectId sets the ProjectId field's value.
func (s *CreateDataSourceOutput) SetProjectId(v string) *CreateDataSourceOutput {
	s.ProjectId = &v
	return s
}

// SetPublishOnImport sets the PublishOnImport field's value.
func (s *CreateDataSourceOutput) SetPublishOnImport(v bool) *CreateDataSourceOutput {
	s.PublishOnImport = &v
	return s
}

// SetRecommendation sets the Recommendation field's value.
func (s *CreateDataSourceOutput) SetRecommendation(v *RecommendationConfiguration) *CreateDataSourceOutput {
	s.Recommendation = v
	return s
}

// SetSchedule sets the Schedule field's value.
func (s *CreateDataSourceOutput) SetSchedule(v *ScheduleConfiguration) *CreateDataSourceOutput {
	s.Schedule = v
	return s
}

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

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

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

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

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

	// The description of the Amazon DataZone domain.
	Description *string `locationName:"description" type:"string"`

	// The domain execution role that is created when an Amazon DataZone domain
	// is created. The domain execution role is created in the Amazon Web Services
	// account that houses the Amazon DataZone domain.
	//
	// DomainExecutionRole is a required field
	DomainExecutionRole *string `locationName:"domainExecutionRole" type:"string" required:"true"`

	// The identifier of the Amazon Web Services Key Management Service (KMS) key
	// that is used to encrypt the Amazon DataZone domain, metadata, and reporting
	// data.
	KmsKeyIdentifier *string `locationName:"kmsKeyIdentifier" min:"1" type:"string"`

	// The name of the Amazon DataZone domain.
	//
	// Name is a required field
	Name *string `locationName:"name" type:"string" required:"true"`

	// The single-sign on configuration of the Amazon DataZone domain.
	SingleSignOn *SingleSignOn `locationName:"singleSignOn" type:"structure"`

	// The tags specified for the Amazon DataZone domain.
	Tags map[string]*string `locationName:"tags" type:"map"`
}

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

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

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

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

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

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

// SetDomainExecutionRole sets the DomainExecutionRole field's value.
func (s *CreateDomainInput) SetDomainExecutionRole(v string) *CreateDomainInput {
	s.DomainExecutionRole = &v
	return s
}

// SetKmsKeyIdentifier sets the KmsKeyIdentifier field's value.
func (s *CreateDomainInput) SetKmsKeyIdentifier(v string) *CreateDomainInput {
	s.KmsKeyIdentifier = &v
	return s
}

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

// SetSingleSignOn sets the SingleSignOn field's value.
func (s *CreateDomainInput) SetSingleSignOn(v *SingleSignOn) *CreateDomainInput {
	s.SingleSignOn = v
	return s
}

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

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

	// The ARN of the Amazon DataZone domain.
	Arn *string `locationName:"arn" type:"string"`

	// The description of the Amazon DataZone domain.
	Description *string `locationName:"description" type:"string"`

	// The domain execution role that is created when an Amazon DataZone domain
	// is created. The domain execution role is created in the Amazon Web Services
	// account that houses the Amazon DataZone domain.
	DomainExecutionRole *string `locationName:"domainExecutionRole" type:"string"`

	// The identifier of the Amazon DataZone domain.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The identifier of the Amazon Web Services Key Management Service (KMS) key
	// that is used to encrypt the Amazon DataZone domain, metadata, and reporting
	// data.
	KmsKeyIdentifier *string `locationName:"kmsKeyIdentifier" min:"1" type:"string"`

	// The name of the Amazon DataZone domain.
	Name *string `locationName:"name" type:"string"`

	// The URL of the data portal for this Amazon DataZone domain.
	PortalUrl *string `locationName:"portalUrl" type:"string"`

	// The single-sign on configuration of the Amazon DataZone domain.
	SingleSignOn *SingleSignOn `locationName:"singleSignOn" type:"structure"`

	// The status of the Amazon DataZone domain.
	Status *string `locationName:"status" type:"string" enum:"DomainStatus"`

	// The tags specified for the Amazon DataZone domain.
	Tags map[string]*string `locationName:"tags" type:"map"`
}

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

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

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

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

// SetDomainExecutionRole sets the DomainExecutionRole field's value.
func (s *CreateDomainOutput) SetDomainExecutionRole(v string) *CreateDomainOutput {
	s.DomainExecutionRole = &v
	return s
}

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

// SetKmsKeyIdentifier sets the KmsKeyIdentifier field's value.
func (s *CreateDomainOutput) SetKmsKeyIdentifier(v string) *CreateDomainOutput {
	s.KmsKeyIdentifier = &v
	return s
}

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

// SetPortalUrl sets the PortalUrl field's value.
func (s *CreateDomainOutput) SetPortalUrl(v string) *CreateDomainOutput {
	s.PortalUrl = &v
	return s
}

// SetSingleSignOn sets the SingleSignOn field's value.
func (s *CreateDomainOutput) SetSingleSignOn(v *SingleSignOn) *CreateDomainOutput {
	s.SingleSignOn = v
	return s
}

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

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

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

	// The description of the Amazon DataZone environment.
	Description *string `locationName:"description" type:"string"`

	// The identifier of the Amazon DataZone domain in which the environment is
	// created.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the environment profile that is used to create this Amazon
	// DataZone environment.
	//
	// EnvironmentProfileIdentifier is a required field
	EnvironmentProfileIdentifier *string `locationName:"environmentProfileIdentifier" type:"string" required:"true"`

	// The glossary terms that can be used in this Amazon DataZone environment.
	GlossaryTerms []*string `locationName:"glossaryTerms" min:"1" type:"list"`

	// The name of the Amazon DataZone environment.
	//
	// Name is a required field
	Name *string `locationName:"name" type:"string" required:"true"`

	// The identifier of the Amazon DataZone project in which this environment is
	// created.
	//
	// ProjectIdentifier is a required field
	ProjectIdentifier *string `locationName:"projectIdentifier" type:"string" required:"true"`

	// The user parameters of this Amazon DataZone environment.
	UserParameters []*EnvironmentParameter `locationName:"userParameters" 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 CreateEnvironmentInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *CreateEnvironmentInput) SetDomainIdentifier(v string) *CreateEnvironmentInput {
	s.DomainIdentifier = &v
	return s
}

// SetEnvironmentProfileIdentifier sets the EnvironmentProfileIdentifier field's value.
func (s *CreateEnvironmentInput) SetEnvironmentProfileIdentifier(v string) *CreateEnvironmentInput {
	s.EnvironmentProfileIdentifier = &v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *CreateEnvironmentInput) SetGlossaryTerms(v []*string) *CreateEnvironmentInput {
	s.GlossaryTerms = v
	return s
}

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

// SetProjectIdentifier sets the ProjectIdentifier field's value.
func (s *CreateEnvironmentInput) SetProjectIdentifier(v string) *CreateEnvironmentInput {
	s.ProjectIdentifier = &v
	return s
}

// SetUserParameters sets the UserParameters field's value.
func (s *CreateEnvironmentInput) SetUserParameters(v []*EnvironmentParameter) *CreateEnvironmentInput {
	s.UserParameters = v
	return s
}

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

	// The Amazon Web Services account in which the Amazon DataZone environment
	// is created.
	AwsAccountId *string `locationName:"awsAccountId" type:"string"`

	// The Amazon Web Services region in which the Amazon DataZone environment is
	// created.
	AwsAccountRegion *string `locationName:"awsAccountRegion" type:"string"`

	// The timestamp of when the environment was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The Amazon DataZone user who created this environment.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The deployment properties of this Amazon DataZone environment.
	DeploymentProperties *DeploymentProperties `locationName:"deploymentProperties" type:"structure"`

	// The description of this Amazon DataZone environment.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateEnvironmentOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The identifier of the Amazon DataZone domain in which the environment is
	// created.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The configurable actions of this Amazon DataZone environment.
	EnvironmentActions []*ConfigurableEnvironmentAction `locationName:"environmentActions" type:"list"`

	// The ID of the blueprint with which this Amazon DataZone environment was created.
	EnvironmentBlueprintId *string `locationName:"environmentBlueprintId" type:"string"`

	// The ID of the environment profile with which this Amazon DataZone environment
	// was created.
	//
	// EnvironmentProfileId is a required field
	EnvironmentProfileId *string `locationName:"environmentProfileId" type:"string" required:"true"`

	// The glossary terms that can be used in this Amazon DataZone environment.
	GlossaryTerms []*string `locationName:"glossaryTerms" min:"1" type:"list"`

	// The ID of this Amazon DataZone environment.
	Id *string `locationName:"id" type:"string"`

	// The details of the last deployment of this Amazon DataZone environment.
	LastDeployment *Deployment `locationName:"lastDeployment" type:"structure"`

	// The name of this environment.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateEnvironmentOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The ID of the Amazon DataZone project in which this environment is created.
	//
	// ProjectId is a required field
	ProjectId *string `locationName:"projectId" type:"string" required:"true"`

	// The provider of this Amazon DataZone environment.
	//
	// Provider is a required field
	Provider *string `locationName:"provider" type:"string" required:"true"`

	// The provisioned resources of this Amazon DataZone environment.
	ProvisionedResources []*Resource `locationName:"provisionedResources" type:"list"`

	// The provisioning properties of this Amazon DataZone environment.
	ProvisioningProperties *ProvisioningProperties `locationName:"provisioningProperties" type:"structure"`

	// The status of this Amazon DataZone environment.
	Status *string `locationName:"status" type:"string" enum:"EnvironmentStatus"`

	// The timestamp of when this environment was updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601"`

	// The user parameters of this Amazon DataZone environment.
	UserParameters []*CustomParameter `locationName:"userParameters" 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 CreateEnvironmentOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetAwsAccountId sets the AwsAccountId field's value.
func (s *CreateEnvironmentOutput) SetAwsAccountId(v string) *CreateEnvironmentOutput {
	s.AwsAccountId = &v
	return s
}

// SetAwsAccountRegion sets the AwsAccountRegion field's value.
func (s *CreateEnvironmentOutput) SetAwsAccountRegion(v string) *CreateEnvironmentOutput {
	s.AwsAccountRegion = &v
	return s
}

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

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

// SetDeploymentProperties sets the DeploymentProperties field's value.
func (s *CreateEnvironmentOutput) SetDeploymentProperties(v *DeploymentProperties) *CreateEnvironmentOutput {
	s.DeploymentProperties = v
	return s
}

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

// SetDomainId sets the DomainId field's value.
func (s *CreateEnvironmentOutput) SetDomainId(v string) *CreateEnvironmentOutput {
	s.DomainId = &v
	return s
}

// SetEnvironmentActions sets the EnvironmentActions field's value.
func (s *CreateEnvironmentOutput) SetEnvironmentActions(v []*ConfigurableEnvironmentAction) *CreateEnvironmentOutput {
	s.EnvironmentActions = v
	return s
}

// SetEnvironmentBlueprintId sets the EnvironmentBlueprintId field's value.
func (s *CreateEnvironmentOutput) SetEnvironmentBlueprintId(v string) *CreateEnvironmentOutput {
	s.EnvironmentBlueprintId = &v
	return s
}

// SetEnvironmentProfileId sets the EnvironmentProfileId field's value.
func (s *CreateEnvironmentOutput) SetEnvironmentProfileId(v string) *CreateEnvironmentOutput {
	s.EnvironmentProfileId = &v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *CreateEnvironmentOutput) SetGlossaryTerms(v []*string) *CreateEnvironmentOutput {
	s.GlossaryTerms = v
	return s
}

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

// SetLastDeployment sets the LastDeployment field's value.
func (s *CreateEnvironmentOutput) SetLastDeployment(v *Deployment) *CreateEnvironmentOutput {
	s.LastDeployment = v
	return s
}

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

// SetProjectId sets the ProjectId field's value.
func (s *CreateEnvironmentOutput) SetProjectId(v string) *CreateEnvironmentOutput {
	s.ProjectId = &v
	return s
}

// SetProvider sets the Provider field's value.
func (s *CreateEnvironmentOutput) SetProvider(v string) *CreateEnvironmentOutput {
	s.Provider = &v
	return s
}

// SetProvisionedResources sets the ProvisionedResources field's value.
func (s *CreateEnvironmentOutput) SetProvisionedResources(v []*Resource) *CreateEnvironmentOutput {
	s.ProvisionedResources = v
	return s
}

// SetProvisioningProperties sets the ProvisioningProperties field's value.
func (s *CreateEnvironmentOutput) SetProvisioningProperties(v *ProvisioningProperties) *CreateEnvironmentOutput {
	s.ProvisioningProperties = v
	return s
}

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

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

// SetUserParameters sets the UserParameters field's value.
func (s *CreateEnvironmentOutput) SetUserParameters(v []*CustomParameter) *CreateEnvironmentOutput {
	s.UserParameters = v
	return s
}

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

	// The Amazon Web Services account in which the Amazon DataZone environment
	// is created.
	AwsAccountId *string `locationName:"awsAccountId" type:"string"`

	// The Amazon Web Services region in which this environment profile is created.
	AwsAccountRegion *string `locationName:"awsAccountRegion" type:"string"`

	// The description of this Amazon DataZone environment profile.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateEnvironmentProfileInput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain in which this environment profile is
	// created.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the blueprint with which this environment profile is created.
	//
	// EnvironmentBlueprintIdentifier is a required field
	EnvironmentBlueprintIdentifier *string `locationName:"environmentBlueprintIdentifier" type:"string" required:"true"`

	// The name of this Amazon DataZone environment profile.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateEnvironmentProfileInput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The identifier of the project in which to create the environment profile.
	//
	// ProjectIdentifier is a required field
	ProjectIdentifier *string `locationName:"projectIdentifier" type:"string" required:"true"`

	// The user parameters of this Amazon DataZone environment profile.
	UserParameters []*EnvironmentParameter `locationName:"userParameters" 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 CreateEnvironmentProfileInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetAwsAccountId sets the AwsAccountId field's value.
func (s *CreateEnvironmentProfileInput) SetAwsAccountId(v string) *CreateEnvironmentProfileInput {
	s.AwsAccountId = &v
	return s
}

// SetAwsAccountRegion sets the AwsAccountRegion field's value.
func (s *CreateEnvironmentProfileInput) SetAwsAccountRegion(v string) *CreateEnvironmentProfileInput {
	s.AwsAccountRegion = &v
	return s
}

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *CreateEnvironmentProfileInput) SetDomainIdentifier(v string) *CreateEnvironmentProfileInput {
	s.DomainIdentifier = &v
	return s
}

// SetEnvironmentBlueprintIdentifier sets the EnvironmentBlueprintIdentifier field's value.
func (s *CreateEnvironmentProfileInput) SetEnvironmentBlueprintIdentifier(v string) *CreateEnvironmentProfileInput {
	s.EnvironmentBlueprintIdentifier = &v
	return s
}

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

// SetProjectIdentifier sets the ProjectIdentifier field's value.
func (s *CreateEnvironmentProfileInput) SetProjectIdentifier(v string) *CreateEnvironmentProfileInput {
	s.ProjectIdentifier = &v
	return s
}

// SetUserParameters sets the UserParameters field's value.
func (s *CreateEnvironmentProfileInput) SetUserParameters(v []*EnvironmentParameter) *CreateEnvironmentProfileInput {
	s.UserParameters = v
	return s
}

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

	// The Amazon Web Services account ID in which this Amazon DataZone environment
	// profile is created.
	AwsAccountId *string `locationName:"awsAccountId" type:"string"`

	// The Amazon Web Services region in which this Amazon DataZone environment
	// profile is created.
	AwsAccountRegion *string `locationName:"awsAccountRegion" type:"string"`

	// The timestamp of when this environment profile was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The Amazon DataZone user who created this environment profile.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The description of this Amazon DataZone environment profile.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateEnvironmentProfileOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain in which this environment profile is
	// created.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The ID of the blueprint with which this environment profile is created.
	//
	// EnvironmentBlueprintId is a required field
	EnvironmentBlueprintId *string `locationName:"environmentBlueprintId" type:"string" required:"true"`

	// The ID of this Amazon DataZone environment profile.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The name of this Amazon DataZone environment profile.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateEnvironmentProfileOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The ID of the Amazon DataZone project in which this environment profile is
	// created.
	ProjectId *string `locationName:"projectId" type:"string"`

	// The timestamp of when this environment profile was updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601"`

	// The user parameters of this Amazon DataZone environment profile.
	UserParameters []*CustomParameter `locationName:"userParameters" 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 CreateEnvironmentProfileOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetAwsAccountId sets the AwsAccountId field's value.
func (s *CreateEnvironmentProfileOutput) SetAwsAccountId(v string) *CreateEnvironmentProfileOutput {
	s.AwsAccountId = &v
	return s
}

// SetAwsAccountRegion sets the AwsAccountRegion field's value.
func (s *CreateEnvironmentProfileOutput) SetAwsAccountRegion(v string) *CreateEnvironmentProfileOutput {
	s.AwsAccountRegion = &v
	return s
}

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

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

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

// SetDomainId sets the DomainId field's value.
func (s *CreateEnvironmentProfileOutput) SetDomainId(v string) *CreateEnvironmentProfileOutput {
	s.DomainId = &v
	return s
}

// SetEnvironmentBlueprintId sets the EnvironmentBlueprintId field's value.
func (s *CreateEnvironmentProfileOutput) SetEnvironmentBlueprintId(v string) *CreateEnvironmentProfileOutput {
	s.EnvironmentBlueprintId = &v
	return s
}

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

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

// SetProjectId sets the ProjectId field's value.
func (s *CreateEnvironmentProfileOutput) SetProjectId(v string) *CreateEnvironmentProfileOutput {
	s.ProjectId = &v
	return s
}

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

// SetUserParameters sets the UserParameters field's value.
func (s *CreateEnvironmentProfileOutput) SetUserParameters(v []*CustomParameter) *CreateEnvironmentProfileOutput {
	s.UserParameters = v
	return s
}

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

	// The description of this Amazon DataZone metadata form type.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateFormTypeInput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain in which this metadata form type is
	// created.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The model of this Amazon DataZone metadata form type.
	//
	// Model is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateFormTypeInput's
	// String and GoString methods.
	//
	// Model is a required field
	Model *Model `locationName:"model" type:"structure" required:"true" sensitive:"true"`

	// The name of this Amazon DataZone metadata form type.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateFormTypeInput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The ID of the Amazon DataZone project that owns this metadata form type.
	//
	// OwningProjectIdentifier is a required field
	OwningProjectIdentifier *string `locationName:"owningProjectIdentifier" type:"string" required:"true"`

	// The status of this Amazon DataZone metadata form type.
	Status *string `locationName:"status" type:"string" enum:"FormTypeStatus"`
}

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

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

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *CreateFormTypeInput) SetDomainIdentifier(v string) *CreateFormTypeInput {
	s.DomainIdentifier = &v
	return s
}

// SetModel sets the Model field's value.
func (s *CreateFormTypeInput) SetModel(v *Model) *CreateFormTypeInput {
	s.Model = v
	return s
}

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

// SetOwningProjectIdentifier sets the OwningProjectIdentifier field's value.
func (s *CreateFormTypeInput) SetOwningProjectIdentifier(v string) *CreateFormTypeInput {
	s.OwningProjectIdentifier = &v
	return s
}

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

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

	// The description of this Amazon DataZone metadata form type.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateFormTypeOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain in which this metadata form type is
	// created.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The name of this Amazon DataZone metadata form type.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateFormTypeOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The ID of the Amazon DataZone domain in which this metadata form type was
	// originally created.
	OriginDomainId *string `locationName:"originDomainId" type:"string"`

	// The ID of the project in which this Amazon DataZone metadata form type was
	// originally created.
	OriginProjectId *string `locationName:"originProjectId" type:"string"`

	// The ID of the project that owns this Amazon DataZone metadata form type.
	OwningProjectId *string `locationName:"owningProjectId" type:"string"`

	// The revision of this Amazon DataZone metadata form type.
	//
	// Revision is a required field
	Revision *string `locationName:"revision" 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 CreateFormTypeOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetDomainId sets the DomainId field's value.
func (s *CreateFormTypeOutput) SetDomainId(v string) *CreateFormTypeOutput {
	s.DomainId = &v
	return s
}

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

// SetOriginDomainId sets the OriginDomainId field's value.
func (s *CreateFormTypeOutput) SetOriginDomainId(v string) *CreateFormTypeOutput {
	s.OriginDomainId = &v
	return s
}

// SetOriginProjectId sets the OriginProjectId field's value.
func (s *CreateFormTypeOutput) SetOriginProjectId(v string) *CreateFormTypeOutput {
	s.OriginProjectId = &v
	return s
}

// SetOwningProjectId sets the OwningProjectId field's value.
func (s *CreateFormTypeOutput) SetOwningProjectId(v string) *CreateFormTypeOutput {
	s.OwningProjectId = &v
	return s
}

// SetRevision sets the Revision field's value.
func (s *CreateFormTypeOutput) SetRevision(v string) *CreateFormTypeOutput {
	s.Revision = &v
	return s
}

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

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

	// The description of this business glossary.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateGlossaryInput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain in which this business glossary is created.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The name of this business glossary.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateGlossaryInput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The ID of the project that currently owns business glossary.
	//
	// OwningProjectIdentifier is a required field
	OwningProjectIdentifier *string `locationName:"owningProjectIdentifier" type:"string" required:"true"`

	// The status of this business glossary.
	Status *string `locationName:"status" type:"string" enum:"GlossaryStatus"`
}

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

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

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

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *CreateGlossaryInput) SetDomainIdentifier(v string) *CreateGlossaryInput {
	s.DomainIdentifier = &v
	return s
}

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

// SetOwningProjectIdentifier sets the OwningProjectIdentifier field's value.
func (s *CreateGlossaryInput) SetOwningProjectIdentifier(v string) *CreateGlossaryInput {
	s.OwningProjectIdentifier = &v
	return s
}

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

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

	// The description of this business glossary.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateGlossaryOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain in which this business glossary is created.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The ID of this business glossary.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The name of this business glossary.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateGlossaryOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The ID of the project that currently owns this business glossary.
	//
	// OwningProjectId is a required field
	OwningProjectId *string `locationName:"owningProjectId" type:"string" required:"true"`

	// The status of this business glossary.
	Status *string `locationName:"status" type:"string" enum:"GlossaryStatus"`
}

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

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

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

// SetDomainId sets the DomainId field's value.
func (s *CreateGlossaryOutput) SetDomainId(v string) *CreateGlossaryOutput {
	s.DomainId = &v
	return s
}

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

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

// SetOwningProjectId sets the OwningProjectId field's value.
func (s *CreateGlossaryOutput) SetOwningProjectId(v string) *CreateGlossaryOutput {
	s.OwningProjectId = &v
	return s
}

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

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

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

	// The ID of the Amazon DataZone domain in which this business glossary term
	// is created.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the business glossary in which this term is created.
	//
	// GlossaryIdentifier is a required field
	GlossaryIdentifier *string `locationName:"glossaryIdentifier" type:"string" required:"true"`

	// The long description of this business glossary term.
	//
	// LongDescription is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateGlossaryTermInput's
	// String and GoString methods.
	LongDescription *string `locationName:"longDescription" type:"string" sensitive:"true"`

	// The name of this business glossary term.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateGlossaryTermInput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The short description of this business glossary term.
	//
	// ShortDescription is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateGlossaryTermInput's
	// String and GoString methods.
	ShortDescription *string `locationName:"shortDescription" type:"string" sensitive:"true"`

	// The status of this business glossary term.
	Status *string `locationName:"status" type:"string" enum:"GlossaryTermStatus"`

	// The term relations of this business glossary term.
	TermRelations *TermRelations `locationName:"termRelations" 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 CreateGlossaryTermInput) String() string {
	return awsutil.Prettify(s)
}

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

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateGlossaryTermInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateGlossaryTermInput"}
	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
	}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.GlossaryIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("GlossaryIdentifier"))
	}
	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.TermRelations != nil {
		if err := s.TermRelations.Validate(); err != nil {
			invalidParams.AddNested("TermRelations", err.(request.ErrInvalidParams))
		}
	}

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *CreateGlossaryTermInput) SetDomainIdentifier(v string) *CreateGlossaryTermInput {
	s.DomainIdentifier = &v
	return s
}

// SetGlossaryIdentifier sets the GlossaryIdentifier field's value.
func (s *CreateGlossaryTermInput) SetGlossaryIdentifier(v string) *CreateGlossaryTermInput {
	s.GlossaryIdentifier = &v
	return s
}

// SetLongDescription sets the LongDescription field's value.
func (s *CreateGlossaryTermInput) SetLongDescription(v string) *CreateGlossaryTermInput {
	s.LongDescription = &v
	return s
}

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

// SetShortDescription sets the ShortDescription field's value.
func (s *CreateGlossaryTermInput) SetShortDescription(v string) *CreateGlossaryTermInput {
	s.ShortDescription = &v
	return s
}

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

// SetTermRelations sets the TermRelations field's value.
func (s *CreateGlossaryTermInput) SetTermRelations(v *TermRelations) *CreateGlossaryTermInput {
	s.TermRelations = v
	return s
}

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

	// The ID of the Amazon DataZone domain in which this business glossary term
	// is created.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The ID of the business glossary in which this term is created.
	//
	// GlossaryId is a required field
	GlossaryId *string `locationName:"glossaryId" type:"string" required:"true"`

	// The ID of this business glossary term.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The long description of this business glossary term.
	//
	// LongDescription is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateGlossaryTermOutput's
	// String and GoString methods.
	LongDescription *string `locationName:"longDescription" type:"string" sensitive:"true"`

	// The name of this business glossary term.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateGlossaryTermOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The short description of this business glossary term.
	//
	// ShortDescription is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateGlossaryTermOutput's
	// String and GoString methods.
	ShortDescription *string `locationName:"shortDescription" type:"string" sensitive:"true"`

	// The status of this business glossary term.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"GlossaryTermStatus"`

	// The term relations of this business glossary term.
	TermRelations *TermRelations `locationName:"termRelations" 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 CreateGlossaryTermOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetDomainId sets the DomainId field's value.
func (s *CreateGlossaryTermOutput) SetDomainId(v string) *CreateGlossaryTermOutput {
	s.DomainId = &v
	return s
}

// SetGlossaryId sets the GlossaryId field's value.
func (s *CreateGlossaryTermOutput) SetGlossaryId(v string) *CreateGlossaryTermOutput {
	s.GlossaryId = &v
	return s
}

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

// SetLongDescription sets the LongDescription field's value.
func (s *CreateGlossaryTermOutput) SetLongDescription(v string) *CreateGlossaryTermOutput {
	s.LongDescription = &v
	return s
}

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

// SetShortDescription sets the ShortDescription field's value.
func (s *CreateGlossaryTermOutput) SetShortDescription(v string) *CreateGlossaryTermOutput {
	s.ShortDescription = &v
	return s
}

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

// SetTermRelations sets the TermRelations field's value.
func (s *CreateGlossaryTermOutput) SetTermRelations(v *TermRelations) *CreateGlossaryTermOutput {
	s.TermRelations = v
	return s
}

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

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

	// The identifier of the Amazon DataZone domain in which the group profile is
	// created.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the group for which the group profile is created.
	//
	// GroupIdentifier is a required field
	GroupIdentifier *string `locationName:"groupIdentifier" 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 CreateGroupProfileInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *CreateGroupProfileInput) SetDomainIdentifier(v string) *CreateGroupProfileInput {
	s.DomainIdentifier = &v
	return s
}

// SetGroupIdentifier sets the GroupIdentifier field's value.
func (s *CreateGroupProfileInput) SetGroupIdentifier(v string) *CreateGroupProfileInput {
	s.GroupIdentifier = &v
	return s
}

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

	// The identifier of the Amazon DataZone domain in which the group profile is
	// created.
	DomainId *string `locationName:"domainId" type:"string"`

	// The name of the group for which group profile is created.
	//
	// GroupName is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateGroupProfileOutput's
	// String and GoString methods.
	GroupName *string `locationName:"groupName" min:"1" type:"string" sensitive:"true"`

	// The identifier of the group profile.
	Id *string `locationName:"id" type:"string"`

	// The status of the group profile.
	Status *string `locationName:"status" type:"string" enum:"GroupProfileStatus"`
}

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

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

// SetDomainId sets the DomainId field's value.
func (s *CreateGroupProfileOutput) SetDomainId(v string) *CreateGroupProfileOutput {
	s.DomainId = &v
	return s
}

// SetGroupName sets the GroupName field's value.
func (s *CreateGroupProfileOutput) SetGroupName(v string) *CreateGroupProfileOutput {
	s.GroupName = &v
	return s
}

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

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

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

	// Action is a required field
	Action *string `locationName:"action" type:"string" required:"true" enum:"ChangeAction"`

	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// EntityIdentifier is a required field
	EntityIdentifier *string `locationName:"entityIdentifier" type:"string" required:"true"`

	EntityRevision *string `locationName:"entityRevision" min:"1" type:"string"`

	// EntityType is a required field
	EntityType *string `locationName:"entityType" type:"string" required:"true" enum:"EntityType"`
}

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

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

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

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *CreateListingChangeSetInput) SetDomainIdentifier(v string) *CreateListingChangeSetInput {
	s.DomainIdentifier = &v
	return s
}

// SetEntityIdentifier sets the EntityIdentifier field's value.
func (s *CreateListingChangeSetInput) SetEntityIdentifier(v string) *CreateListingChangeSetInput {
	s.EntityIdentifier = &v
	return s
}

// SetEntityRevision sets the EntityRevision field's value.
func (s *CreateListingChangeSetInput) SetEntityRevision(v string) *CreateListingChangeSetInput {
	s.EntityRevision = &v
	return s
}

// SetEntityType sets the EntityType field's value.
func (s *CreateListingChangeSetInput) SetEntityType(v string) *CreateListingChangeSetInput {
	s.EntityType = &v
	return s
}

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

	// ListingId is a required field
	ListingId *string `locationName:"listingId" type:"string" required:"true"`

	// ListingRevision is a required field
	ListingRevision *string `locationName:"listingRevision" min:"1" type:"string" required:"true"`

	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"ListingStatus"`
}

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

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

// SetListingId sets the ListingId field's value.
func (s *CreateListingChangeSetOutput) SetListingId(v string) *CreateListingChangeSetOutput {
	s.ListingId = &v
	return s
}

// SetListingRevision sets the ListingRevision field's value.
func (s *CreateListingChangeSetOutput) SetListingRevision(v string) *CreateListingChangeSetOutput {
	s.ListingRevision = &v
	return s
}

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

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

	// The description of the Amazon DataZone project.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateProjectInput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain in which this project is created.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The glossary terms that can be used in this Amazon DataZone project.
	GlossaryTerms []*string `locationName:"glossaryTerms" min:"1" type:"list"`

	// The name of the Amazon DataZone project.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateProjectInput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" 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 CreateProjectInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *CreateProjectInput) SetDomainIdentifier(v string) *CreateProjectInput {
	s.DomainIdentifier = &v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *CreateProjectInput) SetGlossaryTerms(v []*string) *CreateProjectInput {
	s.GlossaryTerms = v
	return s
}

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

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

	// The designation of the project membership.
	//
	// Designation is a required field
	Designation *string `locationName:"designation" type:"string" required:"true" enum:"UserDesignation"`

	// The ID of the Amazon DataZone domain in which project membership is created.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The project member whose project membership was created.
	//
	// Member is a required field
	Member *Member `locationName:"member" type:"structure" required:"true"`

	// The ID of the project for which this project membership was created.
	//
	// ProjectIdentifier is a required field
	ProjectIdentifier *string `location:"uri" locationName:"projectIdentifier" 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 CreateProjectMembershipInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDesignation sets the Designation field's value.
func (s *CreateProjectMembershipInput) SetDesignation(v string) *CreateProjectMembershipInput {
	s.Designation = &v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *CreateProjectMembershipInput) SetDomainIdentifier(v string) *CreateProjectMembershipInput {
	s.DomainIdentifier = &v
	return s
}

// SetMember sets the Member field's value.
func (s *CreateProjectMembershipInput) SetMember(v *Member) *CreateProjectMembershipInput {
	s.Member = v
	return s
}

// SetProjectIdentifier sets the ProjectIdentifier field's value.
func (s *CreateProjectMembershipInput) SetProjectIdentifier(v string) *CreateProjectMembershipInput {
	s.ProjectIdentifier = &v
	return s
}

type CreateProjectMembershipOutput 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 CreateProjectMembershipOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

	// The timestamp of when the project was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The Amazon DataZone user who created the project.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The description of the project.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateProjectOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The identifier of the Amazon DataZone domain in which the project was created.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// Reasons for failed project deletion
	FailureReasons []*ProjectDeletionError `locationName:"failureReasons" type:"list"`

	// The glossary terms that can be used in the project.
	GlossaryTerms []*string `locationName:"glossaryTerms" min:"1" type:"list"`

	// The ID of the Amazon DataZone project.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The timestamp of when the project was last updated.
	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp" timestampFormat:"iso8601"`

	// The name of the project.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateProjectOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// Status of the project
	ProjectStatus *string `locationName:"projectStatus" type:"string" enum:"ProjectStatus"`
}

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

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

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

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

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

// SetDomainId sets the DomainId field's value.
func (s *CreateProjectOutput) SetDomainId(v string) *CreateProjectOutput {
	s.DomainId = &v
	return s
}

// SetFailureReasons sets the FailureReasons field's value.
func (s *CreateProjectOutput) SetFailureReasons(v []*ProjectDeletionError) *CreateProjectOutput {
	s.FailureReasons = v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *CreateProjectOutput) SetGlossaryTerms(v []*string) *CreateProjectOutput {
	s.GlossaryTerms = v
	return s
}

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

// SetLastUpdatedAt sets the LastUpdatedAt field's value.
func (s *CreateProjectOutput) SetLastUpdatedAt(v time.Time) *CreateProjectOutput {
	s.LastUpdatedAt = &v
	return s
}

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

// SetProjectStatus sets the ProjectStatus field's value.
func (s *CreateProjectOutput) SetProjectStatus(v string) *CreateProjectOutput {
	s.ProjectStatus = &v
	return s
}

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

	// The names of the assets for which the subscription grant is created.
	AssetTargetNames []*AssetTargetNameMap `locationName:"assetTargetNames" type:"list"`

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

	// The ID of the Amazon DataZone domain in which the subscription grant is created.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the environment in which the subscription grant is created.
	//
	// EnvironmentIdentifier is a required field
	EnvironmentIdentifier *string `locationName:"environmentIdentifier" type:"string" required:"true"`

	// The entity to which the subscription is to be granted.
	//
	// GrantedEntity is a required field
	GrantedEntity *GrantedEntityInput_ `locationName:"grantedEntity" type:"structure" required:"true"`

	// The ID of the subscription target for which the subscription grant is created.
	//
	// SubscriptionTargetIdentifier is a required field
	SubscriptionTargetIdentifier *string `locationName:"subscriptionTargetIdentifier" 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 CreateSubscriptionGrantInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetAssetTargetNames sets the AssetTargetNames field's value.
func (s *CreateSubscriptionGrantInput) SetAssetTargetNames(v []*AssetTargetNameMap) *CreateSubscriptionGrantInput {
	s.AssetTargetNames = v
	return s
}

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *CreateSubscriptionGrantInput) SetDomainIdentifier(v string) *CreateSubscriptionGrantInput {
	s.DomainIdentifier = &v
	return s
}

// SetEnvironmentIdentifier sets the EnvironmentIdentifier field's value.
func (s *CreateSubscriptionGrantInput) SetEnvironmentIdentifier(v string) *CreateSubscriptionGrantInput {
	s.EnvironmentIdentifier = &v
	return s
}

// SetGrantedEntity sets the GrantedEntity field's value.
func (s *CreateSubscriptionGrantInput) SetGrantedEntity(v *GrantedEntityInput_) *CreateSubscriptionGrantInput {
	s.GrantedEntity = v
	return s
}

// SetSubscriptionTargetIdentifier sets the SubscriptionTargetIdentifier field's value.
func (s *CreateSubscriptionGrantInput) SetSubscriptionTargetIdentifier(v string) *CreateSubscriptionGrantInput {
	s.SubscriptionTargetIdentifier = &v
	return s
}

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

	// The assets for which the subscription grant is created.
	Assets []*SubscribedAsset `locationName:"assets" type:"list"`

	// A timestamp of when the subscription grant is created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who created the subscription grant.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The ID of the Amazon DataZone domain in which the subscription grant is created.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The entity to which the subscription is granted.
	//
	// GrantedEntity is a required field
	GrantedEntity *GrantedEntity `locationName:"grantedEntity" type:"structure" required:"true"`

	// The ID of the subscription grant.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The status of the subscription grant.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"SubscriptionGrantOverallStatus"`

	// The identifier of the subscription grant.
	SubscriptionId *string `locationName:"subscriptionId" type:"string"`

	// The ID of the subscription target for which the subscription grant is created.
	//
	// SubscriptionTargetId is a required field
	SubscriptionTargetId *string `locationName:"subscriptionTargetId" type:"string" required:"true"`

	// A timestamp of when the subscription grant was updated.
	//
	// UpdatedAt is a required field
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who updated the subscription grant.
	UpdatedBy *string `locationName:"updatedBy" 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 CreateSubscriptionGrantOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetAssets sets the Assets field's value.
func (s *CreateSubscriptionGrantOutput) SetAssets(v []*SubscribedAsset) *CreateSubscriptionGrantOutput {
	s.Assets = v
	return s
}

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

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

// SetDomainId sets the DomainId field's value.
func (s *CreateSubscriptionGrantOutput) SetDomainId(v string) *CreateSubscriptionGrantOutput {
	s.DomainId = &v
	return s
}

// SetGrantedEntity sets the GrantedEntity field's value.
func (s *CreateSubscriptionGrantOutput) SetGrantedEntity(v *GrantedEntity) *CreateSubscriptionGrantOutput {
	s.GrantedEntity = v
	return s
}

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

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

// SetSubscriptionId sets the SubscriptionId field's value.
func (s *CreateSubscriptionGrantOutput) SetSubscriptionId(v string) *CreateSubscriptionGrantOutput {
	s.SubscriptionId = &v
	return s
}

// SetSubscriptionTargetId sets the SubscriptionTargetId field's value.
func (s *CreateSubscriptionGrantOutput) SetSubscriptionTargetId(v string) *CreateSubscriptionGrantOutput {
	s.SubscriptionTargetId = &v
	return s
}

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

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *CreateSubscriptionGrantOutput) SetUpdatedBy(v string) *CreateSubscriptionGrantOutput {
	s.UpdatedBy = &v
	return s
}

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

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

	// The ID of the Amazon DataZone domain in which the subscription request is
	// created.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The reason for the subscription request.
	//
	// RequestReason is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateSubscriptionRequestInput's
	// String and GoString methods.
	//
	// RequestReason is a required field
	RequestReason *string `locationName:"requestReason" min:"1" type:"string" required:"true" sensitive:"true"`

	// SubscribedListings is a required field
	SubscribedListings []*SubscribedListingInput_ `locationName:"subscribedListings" min:"1" type:"list" required:"true"`

	// The Amazon DataZone principals for whom the subscription request is created.
	//
	// SubscribedPrincipals is a required field
	SubscribedPrincipals []*SubscribedPrincipalInput_ `locationName:"subscribedPrincipals" min:"1" type:"list" required:"true"`
}

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

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

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *CreateSubscriptionRequestInput) SetDomainIdentifier(v string) *CreateSubscriptionRequestInput {
	s.DomainIdentifier = &v
	return s
}

// SetRequestReason sets the RequestReason field's value.
func (s *CreateSubscriptionRequestInput) SetRequestReason(v string) *CreateSubscriptionRequestInput {
	s.RequestReason = &v
	return s
}

// SetSubscribedListings sets the SubscribedListings field's value.
func (s *CreateSubscriptionRequestInput) SetSubscribedListings(v []*SubscribedListingInput_) *CreateSubscriptionRequestInput {
	s.SubscribedListings = v
	return s
}

// SetSubscribedPrincipals sets the SubscribedPrincipals field's value.
func (s *CreateSubscriptionRequestInput) SetSubscribedPrincipals(v []*SubscribedPrincipalInput_) *CreateSubscriptionRequestInput {
	s.SubscribedPrincipals = v
	return s
}

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

	// A timestamp of when the subscription request is created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who created the subscription request.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The decision comment of the subscription request.
	//
	// DecisionComment is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateSubscriptionRequestOutput's
	// String and GoString methods.
	DecisionComment *string `locationName:"decisionComment" min:"1" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain in whcih the subscription request is
	// created.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The ID of the subscription request.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The reason for the subscription request.
	//
	// RequestReason is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateSubscriptionRequestOutput's
	// String and GoString methods.
	//
	// RequestReason is a required field
	RequestReason *string `locationName:"requestReason" min:"1" type:"string" required:"true" sensitive:"true"`

	// The ID of the reviewer of the subscription request.
	ReviewerId *string `locationName:"reviewerId" type:"string"`

	// The status of the subscription request.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"SubscriptionRequestStatus"`

	// SubscribedListings is a required field
	SubscribedListings []*SubscribedListing `locationName:"subscribedListings" min:"1" type:"list" required:"true"`

	// The subscribed principals of the subscription request.
	//
	// SubscribedPrincipals is a required field
	SubscribedPrincipals []*SubscribedPrincipal `locationName:"subscribedPrincipals" min:"1" type:"list" required:"true"`

	// The timestamp of when the subscription request was updated.
	//
	// UpdatedAt is a required field
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who updated the subscription request.
	UpdatedBy *string `locationName:"updatedBy" 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 CreateSubscriptionRequestOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDecisionComment sets the DecisionComment field's value.
func (s *CreateSubscriptionRequestOutput) SetDecisionComment(v string) *CreateSubscriptionRequestOutput {
	s.DecisionComment = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *CreateSubscriptionRequestOutput) SetDomainId(v string) *CreateSubscriptionRequestOutput {
	s.DomainId = &v
	return s
}

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

// SetRequestReason sets the RequestReason field's value.
func (s *CreateSubscriptionRequestOutput) SetRequestReason(v string) *CreateSubscriptionRequestOutput {
	s.RequestReason = &v
	return s
}

// SetReviewerId sets the ReviewerId field's value.
func (s *CreateSubscriptionRequestOutput) SetReviewerId(v string) *CreateSubscriptionRequestOutput {
	s.ReviewerId = &v
	return s
}

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

// SetSubscribedListings sets the SubscribedListings field's value.
func (s *CreateSubscriptionRequestOutput) SetSubscribedListings(v []*SubscribedListing) *CreateSubscriptionRequestOutput {
	s.SubscribedListings = v
	return s
}

// SetSubscribedPrincipals sets the SubscribedPrincipals field's value.
func (s *CreateSubscriptionRequestOutput) SetSubscribedPrincipals(v []*SubscribedPrincipal) *CreateSubscriptionRequestOutput {
	s.SubscribedPrincipals = v
	return s
}

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

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *CreateSubscriptionRequestOutput) SetUpdatedBy(v string) *CreateSubscriptionRequestOutput {
	s.UpdatedBy = &v
	return s
}

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

	// The asset types that can be included in the subscription target.
	//
	// ApplicableAssetTypes is a required field
	ApplicableAssetTypes []*string `locationName:"applicableAssetTypes" type:"list" required:"true"`

	// The authorized principals of the subscription target.
	//
	// AuthorizedPrincipals is a required field
	AuthorizedPrincipals []*string `locationName:"authorizedPrincipals" min:"1" type:"list" required:"true"`

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

	// The ID of the Amazon DataZone domain in which subscription target is created.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the environment in which subscription target is created.
	//
	// EnvironmentIdentifier is a required field
	EnvironmentIdentifier *string `location:"uri" locationName:"environmentIdentifier" type:"string" required:"true"`

	// The manage access role that is used to create the subscription target.
	//
	// ManageAccessRole is a required field
	ManageAccessRole *string `locationName:"manageAccessRole" type:"string" required:"true"`

	// The name of the subscription target.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateSubscriptionTargetInput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The provider of the subscription target.
	Provider *string `locationName:"provider" type:"string"`

	// The configuration of the subscription target.
	//
	// SubscriptionTargetConfig is a required field
	SubscriptionTargetConfig []*SubscriptionTargetForm `locationName:"subscriptionTargetConfig" type:"list" required:"true"`

	// The type of the subscription target.
	//
	// Type is a required field
	Type *string `locationName:"type" 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 CreateSubscriptionTargetInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetApplicableAssetTypes sets the ApplicableAssetTypes field's value.
func (s *CreateSubscriptionTargetInput) SetApplicableAssetTypes(v []*string) *CreateSubscriptionTargetInput {
	s.ApplicableAssetTypes = v
	return s
}

// SetAuthorizedPrincipals sets the AuthorizedPrincipals field's value.
func (s *CreateSubscriptionTargetInput) SetAuthorizedPrincipals(v []*string) *CreateSubscriptionTargetInput {
	s.AuthorizedPrincipals = v
	return s
}

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *CreateSubscriptionTargetInput) SetDomainIdentifier(v string) *CreateSubscriptionTargetInput {
	s.DomainIdentifier = &v
	return s
}

// SetEnvironmentIdentifier sets the EnvironmentIdentifier field's value.
func (s *CreateSubscriptionTargetInput) SetEnvironmentIdentifier(v string) *CreateSubscriptionTargetInput {
	s.EnvironmentIdentifier = &v
	return s
}

// SetManageAccessRole sets the ManageAccessRole field's value.
func (s *CreateSubscriptionTargetInput) SetManageAccessRole(v string) *CreateSubscriptionTargetInput {
	s.ManageAccessRole = &v
	return s
}

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

// SetProvider sets the Provider field's value.
func (s *CreateSubscriptionTargetInput) SetProvider(v string) *CreateSubscriptionTargetInput {
	s.Provider = &v
	return s
}

// SetSubscriptionTargetConfig sets the SubscriptionTargetConfig field's value.
func (s *CreateSubscriptionTargetInput) SetSubscriptionTargetConfig(v []*SubscriptionTargetForm) *CreateSubscriptionTargetInput {
	s.SubscriptionTargetConfig = v
	return s
}

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

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

	// The asset types that can be included in the subscription target.
	//
	// ApplicableAssetTypes is a required field
	ApplicableAssetTypes []*string `locationName:"applicableAssetTypes" type:"list" required:"true"`

	// The authorised principals of the subscription target.
	//
	// AuthorizedPrincipals is a required field
	AuthorizedPrincipals []*string `locationName:"authorizedPrincipals" min:"1" type:"list" required:"true"`

	// The timestamp of when the subscription target was created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who created the subscription target.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The ID of the Amazon DataZone domain in which the subscription target was
	// created.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The ID of the environment in which the subscription target was created.
	//
	// EnvironmentId is a required field
	EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"`

	// The ID of the subscription target.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The manage access role with which the subscription target was created.
	//
	// ManageAccessRole is a required field
	ManageAccessRole *string `locationName:"manageAccessRole" type:"string" required:"true"`

	// The name of the subscription target.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CreateSubscriptionTargetOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// ???
	//
	// ProjectId is a required field
	ProjectId *string `locationName:"projectId" type:"string" required:"true"`

	// The provider of the subscription target.
	//
	// Provider is a required field
	Provider *string `locationName:"provider" type:"string" required:"true"`

	// The configuration of the subscription target.
	//
	// SubscriptionTargetConfig is a required field
	SubscriptionTargetConfig []*SubscriptionTargetForm `locationName:"subscriptionTargetConfig" type:"list" required:"true"`

	// The type of the subscription target.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true"`

	// The timestamp of when the subscription target was updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`

	// The Amazon DataZone user who updated the subscription target.
	UpdatedBy *string `locationName:"updatedBy" 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 CreateSubscriptionTargetOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetApplicableAssetTypes sets the ApplicableAssetTypes field's value.
func (s *CreateSubscriptionTargetOutput) SetApplicableAssetTypes(v []*string) *CreateSubscriptionTargetOutput {
	s.ApplicableAssetTypes = v
	return s
}

// SetAuthorizedPrincipals sets the AuthorizedPrincipals field's value.
func (s *CreateSubscriptionTargetOutput) SetAuthorizedPrincipals(v []*string) *CreateSubscriptionTargetOutput {
	s.AuthorizedPrincipals = v
	return s
}

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

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

// SetDomainId sets the DomainId field's value.
func (s *CreateSubscriptionTargetOutput) SetDomainId(v string) *CreateSubscriptionTargetOutput {
	s.DomainId = &v
	return s
}

// SetEnvironmentId sets the EnvironmentId field's value.
func (s *CreateSubscriptionTargetOutput) SetEnvironmentId(v string) *CreateSubscriptionTargetOutput {
	s.EnvironmentId = &v
	return s
}

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

// SetManageAccessRole sets the ManageAccessRole field's value.
func (s *CreateSubscriptionTargetOutput) SetManageAccessRole(v string) *CreateSubscriptionTargetOutput {
	s.ManageAccessRole = &v
	return s
}

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

// SetProjectId sets the ProjectId field's value.
func (s *CreateSubscriptionTargetOutput) SetProjectId(v string) *CreateSubscriptionTargetOutput {
	s.ProjectId = &v
	return s
}

// SetProvider sets the Provider field's value.
func (s *CreateSubscriptionTargetOutput) SetProvider(v string) *CreateSubscriptionTargetOutput {
	s.Provider = &v
	return s
}

// SetSubscriptionTargetConfig sets the SubscriptionTargetConfig field's value.
func (s *CreateSubscriptionTargetOutput) SetSubscriptionTargetConfig(v []*SubscriptionTargetForm) *CreateSubscriptionTargetOutput {
	s.SubscriptionTargetConfig = v
	return s
}

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

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

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *CreateSubscriptionTargetOutput) SetUpdatedBy(v string) *CreateSubscriptionTargetOutput {
	s.UpdatedBy = &v
	return s
}

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

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

	// The identifier of the Amazon DataZone domain in which a user profile is created.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the user for which the user profile is created.
	//
	// UserIdentifier is a required field
	UserIdentifier *string `locationName:"userIdentifier" type:"string" required:"true"`

	// The user type of the user for which the user profile is created.
	UserType *string `locationName:"userType" type:"string" enum:"UserType"`
}

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

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

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *CreateUserProfileInput) SetDomainIdentifier(v string) *CreateUserProfileInput {
	s.DomainIdentifier = &v
	return s
}

// SetUserIdentifier sets the UserIdentifier field's value.
func (s *CreateUserProfileInput) SetUserIdentifier(v string) *CreateUserProfileInput {
	s.UserIdentifier = &v
	return s
}

// SetUserType sets the UserType field's value.
func (s *CreateUserProfileInput) SetUserType(v string) *CreateUserProfileInput {
	s.UserType = &v
	return s
}

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

	// The details of the user profile in Amazon DataZone.
	Details *UserProfileDetails `locationName:"details" type:"structure"`

	// The identifier of the Amazon DataZone domain in which a user profile is created.
	DomainId *string `locationName:"domainId" type:"string"`

	// The identifier of the user profile.
	Id *string `locationName:"id" type:"string"`

	// The status of the user profile.
	Status *string `locationName:"status" type:"string" enum:"UserProfileStatus"`

	// The type of the user profile.
	Type *string `locationName:"type" type:"string" enum:"UserProfileType"`
}

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

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

// SetDetails sets the Details field's value.
func (s *CreateUserProfileOutput) SetDetails(v *UserProfileDetails) *CreateUserProfileOutput {
	s.Details = v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *CreateUserProfileOutput) SetDomainId(v string) *CreateUserProfileOutput {
	s.DomainId = &v
	return s
}

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

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

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

// The details of user parameters of an environment blueprint.
type CustomParameter struct {
	_ struct{} `type:"structure"`

	// The default value of the parameter.
	DefaultValue *string `locationName:"defaultValue" type:"string"`

	// The description of the parameter.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by CustomParameter's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The filed type of the parameter.
	//
	// FieldType is a required field
	FieldType *string `locationName:"fieldType" type:"string" required:"true"`

	// Specifies whether the parameter is editable.
	IsEditable *bool `locationName:"isEditable" type:"boolean"`

	// Specifies whether the custom parameter is optional.
	IsOptional *bool `locationName:"isOptional" type:"boolean"`

	// The key name of the parameter.
	//
	// KeyName is a required field
	KeyName *string `locationName:"keyName" 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 CustomParameter) String() string {
	return awsutil.Prettify(s)
}

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

// SetDefaultValue sets the DefaultValue field's value.
func (s *CustomParameter) SetDefaultValue(v string) *CustomParameter {
	s.DefaultValue = &v
	return s
}

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

// SetFieldType sets the FieldType field's value.
func (s *CustomParameter) SetFieldType(v string) *CustomParameter {
	s.FieldType = &v
	return s
}

// SetIsEditable sets the IsEditable field's value.
func (s *CustomParameter) SetIsEditable(v bool) *CustomParameter {
	s.IsEditable = &v
	return s
}

// SetIsOptional sets the IsOptional field's value.
func (s *CustomParameter) SetIsOptional(v bool) *CustomParameter {
	s.IsOptional = &v
	return s
}

// SetKeyName sets the KeyName field's value.
func (s *CustomParameter) SetKeyName(v string) *CustomParameter {
	s.KeyName = &v
	return s
}

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

	DomainId *string `locationName:"domainId" type:"string"`

	ItemId *string `locationName:"itemId" 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 DataProductItem) String() string {
	return awsutil.Prettify(s)
}

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

// SetDomainId sets the DomainId field's value.
func (s *DataProductItem) SetDomainId(v string) *DataProductItem {
	s.DomainId = &v
	return s
}

// SetItemId sets the ItemId field's value.
func (s *DataProductItem) SetItemId(v string) *DataProductItem {
	s.ItemId = &v
	return s
}

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

	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`

	CreatedBy *string `locationName:"createdBy" type:"string"`

	DataProductItems []*DataProductItem `locationName:"dataProductItems" type:"list"`

	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by DataProductSummary's
	// String and GoString methods.
	Description *string `locationName:"description" min:"1" type:"string" sensitive:"true"`

	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	GlossaryTerms []*string `locationName:"glossaryTerms" min:"1" type:"list"`

	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

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

	// OwningProjectId is a required field
	OwningProjectId *string `locationName:"owningProjectId" type:"string" required:"true"`

	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`

	UpdatedBy *string `locationName:"updatedBy" 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 DataProductSummary) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDataProductItems sets the DataProductItems field's value.
func (s *DataProductSummary) SetDataProductItems(v []*DataProductItem) *DataProductSummary {
	s.DataProductItems = v
	return s
}

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

// SetDomainId sets the DomainId field's value.
func (s *DataProductSummary) SetDomainId(v string) *DataProductSummary {
	s.DomainId = &v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *DataProductSummary) SetGlossaryTerms(v []*string) *DataProductSummary {
	s.GlossaryTerms = v
	return s
}

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

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

// SetOwningProjectId sets the OwningProjectId field's value.
func (s *DataProductSummary) SetOwningProjectId(v string) *DataProductSummary {
	s.OwningProjectId = &v
	return s
}

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

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *DataProductSummary) SetUpdatedBy(v string) *DataProductSummary {
	s.UpdatedBy = &v
	return s
}

// The configuration of the data source.
type DataSourceConfigurationInput_ struct {
	_ struct{} `type:"structure"`

	// The configuration of the Amazon Web Services Glue data source.
	GlueRunConfiguration *GlueRunConfigurationInput_ `locationName:"glueRunConfiguration" type:"structure"`

	// The configuration of the Amazon Redshift data source.
	RedshiftRunConfiguration *RedshiftRunConfigurationInput_ `locationName:"redshiftRunConfiguration" 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 DataSourceConfigurationInput_) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetGlueRunConfiguration sets the GlueRunConfiguration field's value.
func (s *DataSourceConfigurationInput_) SetGlueRunConfiguration(v *GlueRunConfigurationInput_) *DataSourceConfigurationInput_ {
	s.GlueRunConfiguration = v
	return s
}

// SetRedshiftRunConfiguration sets the RedshiftRunConfiguration field's value.
func (s *DataSourceConfigurationInput_) SetRedshiftRunConfiguration(v *RedshiftRunConfigurationInput_) *DataSourceConfigurationInput_ {
	s.RedshiftRunConfiguration = v
	return s
}

// The configuration of the data source.
type DataSourceConfigurationOutput_ struct {
	_ struct{} `type:"structure"`

	// The configuration of the Amazon Web Services Glue data source.
	GlueRunConfiguration *GlueRunConfigurationOutput_ `locationName:"glueRunConfiguration" type:"structure"`

	// The configuration of the Amazon Redshift data source.
	RedshiftRunConfiguration *RedshiftRunConfigurationOutput_ `locationName:"redshiftRunConfiguration" 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 DataSourceConfigurationOutput_) String() string {
	return awsutil.Prettify(s)
}

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

// SetGlueRunConfiguration sets the GlueRunConfiguration field's value.
func (s *DataSourceConfigurationOutput_) SetGlueRunConfiguration(v *GlueRunConfigurationOutput_) *DataSourceConfigurationOutput_ {
	s.GlueRunConfiguration = v
	return s
}

// SetRedshiftRunConfiguration sets the RedshiftRunConfiguration field's value.
func (s *DataSourceConfigurationOutput_) SetRedshiftRunConfiguration(v *RedshiftRunConfigurationOutput_) *DataSourceConfigurationOutput_ {
	s.RedshiftRunConfiguration = v
	return s
}

// The details of the error message that is returned if the operation cannot
// be successfully completed.
type DataSourceErrorMessage struct {
	_ struct{} `type:"structure"`

	// The details of the error message that is returned if the operation cannot
	// be successfully completed.
	ErrorDetail *string `locationName:"errorDetail" type:"string"`

	// The type of the error message that is returned if the operation cannot be
	// successfully completed.
	//
	// ErrorType is a required field
	ErrorType *string `locationName:"errorType" type:"string" required:"true" enum:"DataSourceErrorType"`
}

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

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

// SetErrorDetail sets the ErrorDetail field's value.
func (s *DataSourceErrorMessage) SetErrorDetail(v string) *DataSourceErrorMessage {
	s.ErrorDetail = &v
	return s
}

// SetErrorType sets the ErrorType field's value.
func (s *DataSourceErrorMessage) SetErrorType(v string) *DataSourceErrorMessage {
	s.ErrorType = &v
	return s
}

// The activity details of the data source run.
type DataSourceRunActivity struct {
	_ struct{} `type:"structure"`

	// The timestamp of when data source run activity was created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"`

	// The identifier of the asset included in the data source run activity.
	DataAssetId *string `locationName:"dataAssetId" type:"string"`

	// The status of the asset included in the data source run activity.
	//
	// DataAssetStatus is a required field
	DataAssetStatus *string `locationName:"dataAssetStatus" type:"string" required:"true" enum:"DataAssetActivityStatus"`

	// The identifier of the data source for the data source run activity.
	//
	// DataSourceRunId is a required field
	DataSourceRunId *string `locationName:"dataSourceRunId" type:"string" required:"true"`

	// The database included in the data source run activity.
	//
	// Database is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by DataSourceRunActivity's
	// String and GoString methods.
	//
	// Database is a required field
	Database *string `locationName:"database" min:"1" type:"string" required:"true" sensitive:"true"`

	// The details of the error message that is returned if the operation cannot
	// be successfully completed.
	ErrorMessage *DataSourceErrorMessage `locationName:"errorMessage" type:"structure"`

	// The project ID included in the data source run activity.
	//
	// ProjectId is a required field
	ProjectId *string `locationName:"projectId" type:"string" required:"true"`

	// The technical description included in the data source run activity.
	//
	// TechnicalDescription is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by DataSourceRunActivity's
	// String and GoString methods.
	TechnicalDescription *string `locationName:"technicalDescription" type:"string" sensitive:"true"`

	// The technical name included in the data source run activity.
	//
	// TechnicalName is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by DataSourceRunActivity's
	// String and GoString methods.
	//
	// TechnicalName is a required field
	TechnicalName *string `locationName:"technicalName" min:"1" type:"string" required:"true" sensitive:"true"`

	// The timestamp of when data source run activity was updated.
	//
	// UpdatedAt is a required field
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" 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 DataSourceRunActivity) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetDataAssetId sets the DataAssetId field's value.
func (s *DataSourceRunActivity) SetDataAssetId(v string) *DataSourceRunActivity {
	s.DataAssetId = &v
	return s
}

// SetDataAssetStatus sets the DataAssetStatus field's value.
func (s *DataSourceRunActivity) SetDataAssetStatus(v string) *DataSourceRunActivity {
	s.DataAssetStatus = &v
	return s
}

// SetDataSourceRunId sets the DataSourceRunId field's value.
func (s *DataSourceRunActivity) SetDataSourceRunId(v string) *DataSourceRunActivity {
	s.DataSourceRunId = &v
	return s
}

// SetDatabase sets the Database field's value.
func (s *DataSourceRunActivity) SetDatabase(v string) *DataSourceRunActivity {
	s.Database = &v
	return s
}

// SetErrorMessage sets the ErrorMessage field's value.
func (s *DataSourceRunActivity) SetErrorMessage(v *DataSourceErrorMessage) *DataSourceRunActivity {
	s.ErrorMessage = v
	return s
}

// SetProjectId sets the ProjectId field's value.
func (s *DataSourceRunActivity) SetProjectId(v string) *DataSourceRunActivity {
	s.ProjectId = &v
	return s
}

// SetTechnicalDescription sets the TechnicalDescription field's value.
func (s *DataSourceRunActivity) SetTechnicalDescription(v string) *DataSourceRunActivity {
	s.TechnicalDescription = &v
	return s
}

// SetTechnicalName sets the TechnicalName field's value.
func (s *DataSourceRunActivity) SetTechnicalName(v string) *DataSourceRunActivity {
	s.TechnicalName = &v
	return s
}

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

// The details of a data source run.
type DataSourceRunSummary struct {
	_ struct{} `type:"structure"`

	// The timestamp of when a data source run was created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"`

	// The identifier of the data source of the data source run.
	//
	// DataSourceId is a required field
	DataSourceId *string `locationName:"dataSourceId" type:"string" required:"true"`

	// The details of the error message that is returned if the operation cannot
	// be successfully completed.
	ErrorMessage *DataSourceErrorMessage `locationName:"errorMessage" type:"structure"`

	// The identifier of the data source run.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The project ID of the data source run.
	//
	// ProjectId is a required field
	ProjectId *string `locationName:"projectId" type:"string" required:"true"`

	// The asset statistics from the data source run.
	RunStatisticsForAssets *RunStatisticsForAssets `locationName:"runStatisticsForAssets" type:"structure"`

	// The timestamp of when a data source run was started.
	StartedAt *time.Time `locationName:"startedAt" type:"timestamp" timestampFormat:"iso8601"`

	// The status of the data source run.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"DataSourceRunStatus"`

	// The timestamp of when a data source run was stopped.
	StoppedAt *time.Time `locationName:"stoppedAt" type:"timestamp" timestampFormat:"iso8601"`

	// The type of the data source run.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"DataSourceRunType"`

	// The timestamp of when a data source run was updated.
	//
	// UpdatedAt is a required field
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" 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 DataSourceRunSummary) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetDataSourceId sets the DataSourceId field's value.
func (s *DataSourceRunSummary) SetDataSourceId(v string) *DataSourceRunSummary {
	s.DataSourceId = &v
	return s
}

// SetErrorMessage sets the ErrorMessage field's value.
func (s *DataSourceRunSummary) SetErrorMessage(v *DataSourceErrorMessage) *DataSourceRunSummary {
	s.ErrorMessage = v
	return s
}

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

// SetProjectId sets the ProjectId field's value.
func (s *DataSourceRunSummary) SetProjectId(v string) *DataSourceRunSummary {
	s.ProjectId = &v
	return s
}

// SetRunStatisticsForAssets sets the RunStatisticsForAssets field's value.
func (s *DataSourceRunSummary) SetRunStatisticsForAssets(v *RunStatisticsForAssets) *DataSourceRunSummary {
	s.RunStatisticsForAssets = v
	return s
}

// SetStartedAt sets the StartedAt field's value.
func (s *DataSourceRunSummary) SetStartedAt(v time.Time) *DataSourceRunSummary {
	s.StartedAt = &v
	return s
}

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

// SetStoppedAt sets the StoppedAt field's value.
func (s *DataSourceRunSummary) SetStoppedAt(v time.Time) *DataSourceRunSummary {
	s.StoppedAt = &v
	return s
}

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

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

// The details of the data source.
type DataSourceSummary struct {
	_ struct{} `type:"structure"`

	// The timestamp of when the data source was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The ID of the data source.
	//
	// DataSourceId is a required field
	DataSourceId *string `locationName:"dataSourceId" type:"string" required:"true"`

	// The ID of the Amazon DataZone domain in which the data source exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// Specifies whether the data source is enabled.
	EnableSetting *string `locationName:"enableSetting" type:"string" enum:"EnableSetting"`

	// The ID of the environment in which the data source exists.
	//
	// EnvironmentId is a required field
	EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"`

	// The count of the assets created during the last data source run.
	LastRunAssetCount *int64 `locationName:"lastRunAssetCount" type:"integer"`

	// The timestamp of when the data source run was last performed.
	LastRunAt *time.Time `locationName:"lastRunAt" type:"timestamp" timestampFormat:"iso8601"`

	// The details of the error message that is returned if the operation cannot
	// be successfully completed.
	LastRunErrorMessage *DataSourceErrorMessage `locationName:"lastRunErrorMessage" type:"structure"`

	// The status of the last data source run.
	LastRunStatus *string `locationName:"lastRunStatus" type:"string" enum:"DataSourceRunStatus"`

	// The name of the data source.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by DataSourceSummary's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The details of the schedule of the data source runs.
	//
	// Schedule is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by DataSourceSummary's
	// String and GoString methods.
	Schedule *ScheduleConfiguration `locationName:"schedule" type:"structure" sensitive:"true"`

	// The status of the data source.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"DataSourceStatus"`

	// The type of the data source.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true"`

	// The timestamp of when the data source was 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 DataSourceSummary) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetDataSourceId sets the DataSourceId field's value.
func (s *DataSourceSummary) SetDataSourceId(v string) *DataSourceSummary {
	s.DataSourceId = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *DataSourceSummary) SetDomainId(v string) *DataSourceSummary {
	s.DomainId = &v
	return s
}

// SetEnableSetting sets the EnableSetting field's value.
func (s *DataSourceSummary) SetEnableSetting(v string) *DataSourceSummary {
	s.EnableSetting = &v
	return s
}

// SetEnvironmentId sets the EnvironmentId field's value.
func (s *DataSourceSummary) SetEnvironmentId(v string) *DataSourceSummary {
	s.EnvironmentId = &v
	return s
}

// SetLastRunAssetCount sets the LastRunAssetCount field's value.
func (s *DataSourceSummary) SetLastRunAssetCount(v int64) *DataSourceSummary {
	s.LastRunAssetCount = &v
	return s
}

// SetLastRunAt sets the LastRunAt field's value.
func (s *DataSourceSummary) SetLastRunAt(v time.Time) *DataSourceSummary {
	s.LastRunAt = &v
	return s
}

// SetLastRunErrorMessage sets the LastRunErrorMessage field's value.
func (s *DataSourceSummary) SetLastRunErrorMessage(v *DataSourceErrorMessage) *DataSourceSummary {
	s.LastRunErrorMessage = v
	return s
}

// SetLastRunStatus sets the LastRunStatus field's value.
func (s *DataSourceSummary) SetLastRunStatus(v string) *DataSourceSummary {
	s.LastRunStatus = &v
	return s
}

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

// SetSchedule sets the Schedule field's value.
func (s *DataSourceSummary) SetSchedule(v *ScheduleConfiguration) *DataSourceSummary {
	s.Schedule = v
	return s
}

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

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

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

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

	// The ID of the Amazon DataZone domain in which the asset is deleted.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the asset that is deleted.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 DeleteAssetInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *DeleteAssetInput) SetDomainIdentifier(v string) *DeleteAssetInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *DeleteAssetInput) SetIdentifier(v string) *DeleteAssetInput {
	s.Identifier = &v
	return s
}

type DeleteAssetOutput 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 DeleteAssetOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

	// The ID of the Amazon DataZone domain in which the asset type is deleted.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the asset type that is deleted.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 DeleteAssetTypeInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *DeleteAssetTypeInput) SetDomainIdentifier(v string) *DeleteAssetTypeInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *DeleteAssetTypeInput) SetIdentifier(v string) *DeleteAssetTypeInput {
	s.Identifier = &v
	return s
}

type DeleteAssetTypeOutput 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 DeleteAssetTypeOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

	// A unique, case-sensitive identifier that is provided to ensure the idempotency
	// of the request.
	ClientToken *string `location:"querystring" locationName:"clientToken" type:"string" idempotencyToken:"true"`

	// The ID of the Amazon DataZone domain in which the data source is deleted.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the data source that is deleted.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 DeleteDataSourceInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *DeleteDataSourceInput) SetDomainIdentifier(v string) *DeleteDataSourceInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *DeleteDataSourceInput) SetIdentifier(v string) *DeleteDataSourceInput {
	s.Identifier = &v
	return s
}

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

	// The asset data forms associated with this data source.
	AssetFormsOutput []*FormOutput_ `locationName:"assetFormsOutput" type:"list"`

	// The configuration of the data source that is deleted.
	Configuration *DataSourceConfigurationOutput_ `locationName:"configuration" type:"structure"`

	// The timestamp of when this data source was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The description of the data source that is deleted.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by DeleteDataSourceOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain in which the data source is deleted.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The enable setting of the data source that specifies whether the data source
	// is enabled or disabled.
	EnableSetting *string `locationName:"enableSetting" type:"string" enum:"EnableSetting"`

	// The ID of the environemnt associated with this data source.
	//
	// EnvironmentId is a required field
	EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"`

	// Specifies the error message that is returned if the operation cannot be successfully
	// completed.
	ErrorMessage *DataSourceErrorMessage `locationName:"errorMessage" type:"structure"`

	// The ID of the data source that is deleted.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The timestamp of when the data source was last run.
	LastRunAt *time.Time `locationName:"lastRunAt" type:"timestamp" timestampFormat:"iso8601"`

	// Specifies the error message that is returned if the operation cannot be successfully
	// completed.
	LastRunErrorMessage *DataSourceErrorMessage `locationName:"lastRunErrorMessage" type:"structure"`

	// The status of the last run of this data source.
	LastRunStatus *string `locationName:"lastRunStatus" type:"string" enum:"DataSourceRunStatus"`

	// The name of the data source that is deleted.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by DeleteDataSourceOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The ID of the project in which this data source exists and from which it's
	// deleted.
	//
	// ProjectId is a required field
	ProjectId *string `locationName:"projectId" type:"string" required:"true"`

	// Specifies whether the assets that this data source creates in the inventory
	// are to be also automatically published to the catalog.
	PublishOnImport *bool `locationName:"publishOnImport" type:"boolean"`

	// The schedule of runs for this data source.
	//
	// Schedule is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by DeleteDataSourceOutput's
	// String and GoString methods.
	Schedule *ScheduleConfiguration `locationName:"schedule" type:"structure" sensitive:"true"`

	// The status of this data source.
	Status *string `locationName:"status" type:"string" enum:"DataSourceStatus"`

	// The type of this data source.
	Type *string `locationName:"type" min:"1" type:"string"`

	// The timestamp of when this data source was 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 DeleteDataSourceOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetAssetFormsOutput sets the AssetFormsOutput field's value.
func (s *DeleteDataSourceOutput) SetAssetFormsOutput(v []*FormOutput_) *DeleteDataSourceOutput {
	s.AssetFormsOutput = v
	return s
}

// SetConfiguration sets the Configuration field's value.
func (s *DeleteDataSourceOutput) SetConfiguration(v *DataSourceConfigurationOutput_) *DeleteDataSourceOutput {
	s.Configuration = v
	return s
}

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

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

// SetDomainId sets the DomainId field's value.
func (s *DeleteDataSourceOutput) SetDomainId(v string) *DeleteDataSourceOutput {
	s.DomainId = &v
	return s
}

// SetEnableSetting sets the EnableSetting field's value.
func (s *DeleteDataSourceOutput) SetEnableSetting(v string) *DeleteDataSourceOutput {
	s.EnableSetting = &v
	return s
}

// SetEnvironmentId sets the EnvironmentId field's value.
func (s *DeleteDataSourceOutput) SetEnvironmentId(v string) *DeleteDataSourceOutput {
	s.EnvironmentId = &v
	return s
}

// SetErrorMessage sets the ErrorMessage field's value.
func (s *DeleteDataSourceOutput) SetErrorMessage(v *DataSourceErrorMessage) *DeleteDataSourceOutput {
	s.ErrorMessage = v
	return s
}

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

// SetLastRunAt sets the LastRunAt field's value.
func (s *DeleteDataSourceOutput) SetLastRunAt(v time.Time) *DeleteDataSourceOutput {
	s.LastRunAt = &v
	return s
}

// SetLastRunErrorMessage sets the LastRunErrorMessage field's value.
func (s *DeleteDataSourceOutput) SetLastRunErrorMessage(v *DataSourceErrorMessage) *DeleteDataSourceOutput {
	s.LastRunErrorMessage = v
	return s
}

// SetLastRunStatus sets the LastRunStatus field's value.
func (s *DeleteDataSourceOutput) SetLastRunStatus(v string) *DeleteDataSourceOutput {
	s.LastRunStatus = &v
	return s
}

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

// SetProjectId sets the ProjectId field's value.
func (s *DeleteDataSourceOutput) SetProjectId(v string) *DeleteDataSourceOutput {
	s.ProjectId = &v
	return s
}

// SetPublishOnImport sets the PublishOnImport field's value.
func (s *DeleteDataSourceOutput) SetPublishOnImport(v bool) *DeleteDataSourceOutput {
	s.PublishOnImport = &v
	return s
}

// SetSchedule sets the Schedule field's value.
func (s *DeleteDataSourceOutput) SetSchedule(v *ScheduleConfiguration) *DeleteDataSourceOutput {
	s.Schedule = v
	return s
}

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

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

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

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

	// A unique, case-sensitive identifier that is provided to ensure the idempotency
	// of the request.
	ClientToken *string `location:"querystring" locationName:"clientToken" type:"string" idempotencyToken:"true"`

	// The identifier of the Amazon Web Services domain that is to be deleted.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" type:"string" required:"true"`

	// Optional flag to delete all child entities within the domain
	SkipDeletionCheck *bool `location:"querystring" locationName:"skipDeletionCheck" type:"boolean"`
}

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

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

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

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

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

// SetIdentifier sets the Identifier field's value.
func (s *DeleteDomainInput) SetIdentifier(v string) *DeleteDomainInput {
	s.Identifier = &v
	return s
}

// SetSkipDeletionCheck sets the SkipDeletionCheck field's value.
func (s *DeleteDomainInput) SetSkipDeletionCheck(v bool) *DeleteDomainInput {
	s.SkipDeletionCheck = &v
	return s
}

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

	// The status of the domain.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"DomainStatus"`
}

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

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

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

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

	// The ID of the Amazon DataZone domain in which the blueprint configuration
	// is deleted.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the blueprint the configuration of which is deleted.
	//
	// EnvironmentBlueprintIdentifier is a required field
	EnvironmentBlueprintIdentifier *string `location:"uri" locationName:"environmentBlueprintIdentifier" 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 DeleteEnvironmentBlueprintConfigurationInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *DeleteEnvironmentBlueprintConfigurationInput) SetDomainIdentifier(v string) *DeleteEnvironmentBlueprintConfigurationInput {
	s.DomainIdentifier = &v
	return s
}

// SetEnvironmentBlueprintIdentifier sets the EnvironmentBlueprintIdentifier field's value.
func (s *DeleteEnvironmentBlueprintConfigurationInput) SetEnvironmentBlueprintIdentifier(v string) *DeleteEnvironmentBlueprintConfigurationInput {
	s.EnvironmentBlueprintIdentifier = &v
	return s
}

type DeleteEnvironmentBlueprintConfigurationOutput 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 DeleteEnvironmentBlueprintConfigurationOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

	// The ID of the Amazon DataZone domain in which the environment is deleted.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the environment that is to be deleted.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 DeleteEnvironmentInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *DeleteEnvironmentInput) SetDomainIdentifier(v string) *DeleteEnvironmentInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *DeleteEnvironmentInput) SetIdentifier(v string) *DeleteEnvironmentInput {
	s.Identifier = &v
	return s
}

type DeleteEnvironmentOutput 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 DeleteEnvironmentOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

	// The ID of the Amazon DataZone domain in which the environment profile is
	// deleted.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the environment profile that is deleted.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 DeleteEnvironmentProfileInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *DeleteEnvironmentProfileInput) SetDomainIdentifier(v string) *DeleteEnvironmentProfileInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *DeleteEnvironmentProfileInput) SetIdentifier(v string) *DeleteEnvironmentProfileInput {
	s.Identifier = &v
	return s
}

type DeleteEnvironmentProfileOutput 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 DeleteEnvironmentProfileOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

	// The ID of the Amazon DataZone domain in which the metadata form type is deleted.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the metadata form type that is deleted.
	//
	// FormTypeIdentifier is a required field
	FormTypeIdentifier *string `location:"uri" locationName:"formTypeIdentifier" 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 DeleteFormTypeInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *DeleteFormTypeInput) SetDomainIdentifier(v string) *DeleteFormTypeInput {
	s.DomainIdentifier = &v
	return s
}

// SetFormTypeIdentifier sets the FormTypeIdentifier field's value.
func (s *DeleteFormTypeInput) SetFormTypeIdentifier(v string) *DeleteFormTypeInput {
	s.FormTypeIdentifier = &v
	return s
}

type DeleteFormTypeOutput 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 DeleteFormTypeOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

	// The ID of the Amazon DataZone domain in which the business glossary is deleted.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the business glossary that is deleted.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 DeleteGlossaryInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *DeleteGlossaryInput) SetDomainIdentifier(v string) *DeleteGlossaryInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *DeleteGlossaryInput) SetIdentifier(v string) *DeleteGlossaryInput {
	s.Identifier = &v
	return s
}

type DeleteGlossaryOutput 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 DeleteGlossaryOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

	// The ID of the Amazon DataZone domain in which the business glossary term
	// is deleted.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the business glossary term that is deleted.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 DeleteGlossaryTermInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *DeleteGlossaryTermInput) SetDomainIdentifier(v string) *DeleteGlossaryTermInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *DeleteGlossaryTermInput) SetIdentifier(v string) *DeleteGlossaryTermInput {
	s.Identifier = &v
	return s
}

type DeleteGlossaryTermOutput 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 DeleteGlossaryTermOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 DeleteListingInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *DeleteListingInput) SetDomainIdentifier(v string) *DeleteListingInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *DeleteListingInput) SetIdentifier(v string) *DeleteListingInput {
	s.Identifier = &v
	return s
}

type DeleteListingOutput 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 DeleteListingOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

	// The ID of the Amazon DataZone domain in which the project is deleted.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the project that is to be deleted.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" type:"string" required:"true"`

	// Optional flag to asynchronously delete child entities within the project
	SkipDeletionCheck *bool `location:"querystring" locationName:"skipDeletionCheck" type:"boolean"`
}

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

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *DeleteProjectInput) SetDomainIdentifier(v string) *DeleteProjectInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *DeleteProjectInput) SetIdentifier(v string) *DeleteProjectInput {
	s.Identifier = &v
	return s
}

// SetSkipDeletionCheck sets the SkipDeletionCheck field's value.
func (s *DeleteProjectInput) SetSkipDeletionCheck(v bool) *DeleteProjectInput {
	s.SkipDeletionCheck = &v
	return s
}

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

	// The ID of the Amazon DataZone domain where project membership is deleted.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The project member whose project membership is deleted.
	//
	// Member is a required field
	Member *Member `locationName:"member" type:"structure" required:"true"`

	// The ID of the Amazon DataZone project the membership to which is deleted.
	//
	// ProjectIdentifier is a required field
	ProjectIdentifier *string `location:"uri" locationName:"projectIdentifier" 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 DeleteProjectMembershipInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *DeleteProjectMembershipInput) SetDomainIdentifier(v string) *DeleteProjectMembershipInput {
	s.DomainIdentifier = &v
	return s
}

// SetMember sets the Member field's value.
func (s *DeleteProjectMembershipInput) SetMember(v *Member) *DeleteProjectMembershipInput {
	s.Member = v
	return s
}

// SetProjectIdentifier sets the ProjectIdentifier field's value.
func (s *DeleteProjectMembershipInput) SetProjectIdentifier(v string) *DeleteProjectMembershipInput {
	s.ProjectIdentifier = &v
	return s
}

type DeleteProjectMembershipOutput 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 DeleteProjectMembershipOutput) String() string {
	return awsutil.Prettify(s)
}

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

type DeleteProjectOutput 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 DeleteProjectOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

	// The ID of the Amazon DataZone domain where the subscription grant is deleted.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the subscription grant that is deleted.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 DeleteSubscriptionGrantInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *DeleteSubscriptionGrantInput) SetDomainIdentifier(v string) *DeleteSubscriptionGrantInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *DeleteSubscriptionGrantInput) SetIdentifier(v string) *DeleteSubscriptionGrantInput {
	s.Identifier = &v
	return s
}

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

	// The assets for which the subsctiption grant that is deleted gave access.
	Assets []*SubscribedAsset `locationName:"assets" type:"list"`

	// The timestamp of when the subscription grant that is deleted was created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who created the subscription grant that is deleted.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The ID of the Amazon DataZone domain in which the subscription grant is deleted.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The entity to which the subscription is deleted.
	//
	// GrantedEntity is a required field
	GrantedEntity *GrantedEntity `locationName:"grantedEntity" type:"structure" required:"true"`

	// The ID of the subscription grant that is deleted.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The status of the subscription grant that is deleted.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"SubscriptionGrantOverallStatus"`

	// The identifier of the subsctiption whose subscription grant is to be deleted.
	SubscriptionId *string `locationName:"subscriptionId" type:"string"`

	// The ID of the subscription target associated with the subscription grant
	// that is deleted.
	//
	// SubscriptionTargetId is a required field
	SubscriptionTargetId *string `locationName:"subscriptionTargetId" type:"string" required:"true"`

	// The timestamp of when the subscription grant that is deleted was updated.
	//
	// UpdatedAt is a required field
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who updated the subscription grant that is deleted.
	UpdatedBy *string `locationName:"updatedBy" 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 DeleteSubscriptionGrantOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetAssets sets the Assets field's value.
func (s *DeleteSubscriptionGrantOutput) SetAssets(v []*SubscribedAsset) *DeleteSubscriptionGrantOutput {
	s.Assets = v
	return s
}

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

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

// SetDomainId sets the DomainId field's value.
func (s *DeleteSubscriptionGrantOutput) SetDomainId(v string) *DeleteSubscriptionGrantOutput {
	s.DomainId = &v
	return s
}

// SetGrantedEntity sets the GrantedEntity field's value.
func (s *DeleteSubscriptionGrantOutput) SetGrantedEntity(v *GrantedEntity) *DeleteSubscriptionGrantOutput {
	s.GrantedEntity = v
	return s
}

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

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

// SetSubscriptionId sets the SubscriptionId field's value.
func (s *DeleteSubscriptionGrantOutput) SetSubscriptionId(v string) *DeleteSubscriptionGrantOutput {
	s.SubscriptionId = &v
	return s
}

// SetSubscriptionTargetId sets the SubscriptionTargetId field's value.
func (s *DeleteSubscriptionGrantOutput) SetSubscriptionTargetId(v string) *DeleteSubscriptionGrantOutput {
	s.SubscriptionTargetId = &v
	return s
}

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

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *DeleteSubscriptionGrantOutput) SetUpdatedBy(v string) *DeleteSubscriptionGrantOutput {
	s.UpdatedBy = &v
	return s
}

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

	// The ID of the Amazon DataZone domain in which the subscription request is
	// deleted.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the subscription request that is deleted.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 DeleteSubscriptionRequestInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *DeleteSubscriptionRequestInput) SetDomainIdentifier(v string) *DeleteSubscriptionRequestInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *DeleteSubscriptionRequestInput) SetIdentifier(v string) *DeleteSubscriptionRequestInput {
	s.Identifier = &v
	return s
}

type DeleteSubscriptionRequestOutput 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 DeleteSubscriptionRequestOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

	// The ID of the Amazon DataZone domain in which the subscription target is
	// deleted.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the Amazon DataZone environment in which the subscription target
	// is deleted.
	//
	// EnvironmentIdentifier is a required field
	EnvironmentIdentifier *string `location:"uri" locationName:"environmentIdentifier" type:"string" required:"true"`

	// The ID of the subscription target that is deleted.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 DeleteSubscriptionTargetInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *DeleteSubscriptionTargetInput) SetDomainIdentifier(v string) *DeleteSubscriptionTargetInput {
	s.DomainIdentifier = &v
	return s
}

// SetEnvironmentIdentifier sets the EnvironmentIdentifier field's value.
func (s *DeleteSubscriptionTargetInput) SetEnvironmentIdentifier(v string) *DeleteSubscriptionTargetInput {
	s.EnvironmentIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *DeleteSubscriptionTargetInput) SetIdentifier(v string) *DeleteSubscriptionTargetInput {
	s.Identifier = &v
	return s
}

type DeleteSubscriptionTargetOutput 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 DeleteSubscriptionTargetOutput) String() string {
	return awsutil.Prettify(s)
}

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

// The details of the last deployment of the environment.
type Deployment struct {
	_ struct{} `type:"structure"`

	// The identifier of the last deployment of the environment.
	DeploymentId *string `locationName:"deploymentId" type:"string"`

	// The status of the last deployment of the environment.
	DeploymentStatus *string `locationName:"deploymentStatus" type:"string" enum:"DeploymentStatus"`

	// The type of the last deployment of the environment.
	DeploymentType *string `locationName:"deploymentType" type:"string" enum:"DeploymentType"`

	// The failure reason of the last deployment of the environment.
	FailureReason *EnvironmentError `locationName:"failureReason" type:"structure"`

	// Specifies whether the last deployment of the environment is complete.
	IsDeploymentComplete *bool `locationName:"isDeploymentComplete" type:"boolean"`

	// The messages of the last deployment of the environment.
	Messages []*string `locationName:"messages" 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 Deployment) String() string {
	return awsutil.Prettify(s)
}

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

// SetDeploymentId sets the DeploymentId field's value.
func (s *Deployment) SetDeploymentId(v string) *Deployment {
	s.DeploymentId = &v
	return s
}

// SetDeploymentStatus sets the DeploymentStatus field's value.
func (s *Deployment) SetDeploymentStatus(v string) *Deployment {
	s.DeploymentStatus = &v
	return s
}

// SetDeploymentType sets the DeploymentType field's value.
func (s *Deployment) SetDeploymentType(v string) *Deployment {
	s.DeploymentType = &v
	return s
}

// SetFailureReason sets the FailureReason field's value.
func (s *Deployment) SetFailureReason(v *EnvironmentError) *Deployment {
	s.FailureReason = v
	return s
}

// SetIsDeploymentComplete sets the IsDeploymentComplete field's value.
func (s *Deployment) SetIsDeploymentComplete(v bool) *Deployment {
	s.IsDeploymentComplete = &v
	return s
}

// SetMessages sets the Messages field's value.
func (s *Deployment) SetMessages(v []*string) *Deployment {
	s.Messages = v
	return s
}

// The deployment properties of the Amazon DataZone blueprint.
type DeploymentProperties struct {
	_ struct{} `type:"structure"`

	// The end timeout of the environment blueprint deployment.
	EndTimeoutMinutes *int64 `locationName:"endTimeoutMinutes" min:"1" type:"integer"`

	// The start timeout of the environment blueprint deployment.
	StartTimeoutMinutes *int64 `locationName:"startTimeoutMinutes" 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 DeploymentProperties) String() string {
	return awsutil.Prettify(s)
}

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

// SetEndTimeoutMinutes sets the EndTimeoutMinutes field's value.
func (s *DeploymentProperties) SetEndTimeoutMinutes(v int64) *DeploymentProperties {
	s.EndTimeoutMinutes = &v
	return s
}

// SetStartTimeoutMinutes sets the StartTimeoutMinutes field's value.
func (s *DeploymentProperties) SetStartTimeoutMinutes(v int64) *DeploymentProperties {
	s.StartTimeoutMinutes = &v
	return s
}

// Details of a glossary term attached to the inventory asset.
type DetailedGlossaryTerm struct {
	_ struct{} `type:"structure"`

	// The name of a glossary term attached to the inventory asset.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by DetailedGlossaryTerm's
	// String and GoString methods.
	Name *string `locationName:"name" min:"1" type:"string" sensitive:"true"`

	// The shoft description of a glossary term attached to the inventory asset.
	//
	// ShortDescription is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by DetailedGlossaryTerm's
	// String and GoString methods.
	ShortDescription *string `locationName:"shortDescription" type:"string" sensitive:"true"`
}

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

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

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

// SetShortDescription sets the ShortDescription field's value.
func (s *DetailedGlossaryTerm) SetShortDescription(v string) *DetailedGlossaryTerm {
	s.ShortDescription = &v
	return s
}

// A summary of a Amazon DataZone domain.
type DomainSummary struct {
	_ struct{} `type:"structure"`

	// The ARN of the Amazon DataZone domain.
	//
	// Arn is a required field
	Arn *string `locationName:"arn" type:"string" required:"true"`

	// A timestamp of when a Amazon DataZone domain was created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`

	// A description of an Amazon DataZone domain.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by DomainSummary's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// A timestamp of when a Amazon DataZone domain was last updated.
	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`

	// The identifier of the Amazon Web Services account that manages the domain.
	//
	// ManagedAccountId is a required field
	ManagedAccountId *string `locationName:"managedAccountId" type:"string" required:"true"`

	// A name of an Amazon DataZone domain.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by DomainSummary's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" type:"string" required:"true" sensitive:"true"`

	// The data portal URL for the Amazon DataZone domain.
	PortalUrl *string `locationName:"portalUrl" type:"string"`

	// The status of the Amazon DataZone domain.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"DomainStatus"`
}

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

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

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

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

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

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

// SetLastUpdatedAt sets the LastUpdatedAt field's value.
func (s *DomainSummary) SetLastUpdatedAt(v time.Time) *DomainSummary {
	s.LastUpdatedAt = &v
	return s
}

// SetManagedAccountId sets the ManagedAccountId field's value.
func (s *DomainSummary) SetManagedAccountId(v string) *DomainSummary {
	s.ManagedAccountId = &v
	return s
}

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

// SetPortalUrl sets the PortalUrl field's value.
func (s *DomainSummary) SetPortalUrl(v string) *DomainSummary {
	s.PortalUrl = &v
	return s
}

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

// The configuration details of an environment blueprint.
type EnvironmentBlueprintConfigurationItem struct {
	_ struct{} `type:"structure"`

	// The timestamp of when an environment blueprint was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The identifier of the Amazon DataZone domain in which an environment blueprint
	// exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The enabled Amazon Web Services Regions specified in a blueprint configuration.
	EnabledRegions []*string `locationName:"enabledRegions" type:"list"`

	// The identifier of the environment blueprint.
	//
	// EnvironmentBlueprintId is a required field
	EnvironmentBlueprintId *string `locationName:"environmentBlueprintId" type:"string" required:"true"`

	// The ARN of the manage access role specified in the environment blueprint
	// configuration.
	ManageAccessRoleArn *string `locationName:"manageAccessRoleArn" type:"string"`

	// The ARN of the provisioning role specified in the environment blueprint configuration.
	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" type:"string"`

	// The regional parameters of the environment blueprint.
	RegionalParameters map[string]map[string]*string `locationName:"regionalParameters" type:"map"`

	// The timestamp of when the environment blueprint was 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 EnvironmentBlueprintConfigurationItem) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetDomainId sets the DomainId field's value.
func (s *EnvironmentBlueprintConfigurationItem) SetDomainId(v string) *EnvironmentBlueprintConfigurationItem {
	s.DomainId = &v
	return s
}

// SetEnabledRegions sets the EnabledRegions field's value.
func (s *EnvironmentBlueprintConfigurationItem) SetEnabledRegions(v []*string) *EnvironmentBlueprintConfigurationItem {
	s.EnabledRegions = v
	return s
}

// SetEnvironmentBlueprintId sets the EnvironmentBlueprintId field's value.
func (s *EnvironmentBlueprintConfigurationItem) SetEnvironmentBlueprintId(v string) *EnvironmentBlueprintConfigurationItem {
	s.EnvironmentBlueprintId = &v
	return s
}

// SetManageAccessRoleArn sets the ManageAccessRoleArn field's value.
func (s *EnvironmentBlueprintConfigurationItem) SetManageAccessRoleArn(v string) *EnvironmentBlueprintConfigurationItem {
	s.ManageAccessRoleArn = &v
	return s
}

// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
func (s *EnvironmentBlueprintConfigurationItem) SetProvisioningRoleArn(v string) *EnvironmentBlueprintConfigurationItem {
	s.ProvisioningRoleArn = &v
	return s
}

// SetRegionalParameters sets the RegionalParameters field's value.
func (s *EnvironmentBlueprintConfigurationItem) SetRegionalParameters(v map[string]map[string]*string) *EnvironmentBlueprintConfigurationItem {
	s.RegionalParameters = v
	return s
}

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

// The details of an environment blueprint summary.
type EnvironmentBlueprintSummary struct {
	_ struct{} `type:"structure"`

	// The timestamp of when an environment blueprint was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The description of a blueprint.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by EnvironmentBlueprintSummary's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The identifier of the blueprint.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

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

	// The provider of the blueprint.
	//
	// Provider is a required field
	Provider *string `locationName:"provider" type:"string" required:"true"`

	// The provisioning properties of the blueprint.
	//
	// ProvisioningProperties is a required field
	ProvisioningProperties *ProvisioningProperties `locationName:"provisioningProperties" type:"structure" required:"true"`

	// The timestamp of when the blueprint was enabled.
	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 EnvironmentBlueprintSummary) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

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

// SetProvider sets the Provider field's value.
func (s *EnvironmentBlueprintSummary) SetProvider(v string) *EnvironmentBlueprintSummary {
	s.Provider = &v
	return s
}

// SetProvisioningProperties sets the ProvisioningProperties field's value.
func (s *EnvironmentBlueprintSummary) SetProvisioningProperties(v *ProvisioningProperties) *EnvironmentBlueprintSummary {
	s.ProvisioningProperties = v
	return s
}

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

// The failure reasons for the environment deployment.
type EnvironmentError struct {
	_ struct{} `type:"structure"`

	// The error code for the failure reason for the environment deployment.
	Code *string `locationName:"code" type:"string"`

	// The error message for the failure reason for the environment deployment.
	//
	// Message is a required field
	Message *string `locationName:"message" 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 EnvironmentError) String() string {
	return awsutil.Prettify(s)
}

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

// SetCode sets the Code field's value.
func (s *EnvironmentError) SetCode(v string) *EnvironmentError {
	s.Code = &v
	return s
}

// SetMessage sets the Message field's value.
func (s *EnvironmentError) SetMessage(v string) *EnvironmentError {
	s.Message = &v
	return s
}

// The parameter details of an evironment profile.
type EnvironmentParameter struct {
	_ struct{} `type:"structure"`

	// The name of an environment profile parameter.
	Name *string `locationName:"name" type:"string"`

	// The value of an environment profile parameter.
	Value *string `locationName:"value" 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 EnvironmentParameter) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetValue sets the Value field's value.
func (s *EnvironmentParameter) SetValue(v string) *EnvironmentParameter {
	s.Value = &v
	return s
}

// The details of an environment profile.
type EnvironmentProfileSummary struct {
	_ struct{} `type:"structure"`

	// The identifier of an Amazon Web Services account in which an environment
	// profile exists.
	AwsAccountId *string `locationName:"awsAccountId" type:"string"`

	// The Amazon Web Services Region in which an environment profile exists.
	AwsAccountRegion *string `locationName:"awsAccountRegion" type:"string"`

	// The timestamp of when an environment profile was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The Amazon DataZone user who created the environment profile.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The description of the environment profile.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by EnvironmentProfileSummary's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The identifier of the Amazon DataZone domain in which the environment profile
	// exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The identifier of a blueprint with which an environment profile is created.
	//
	// EnvironmentBlueprintId is a required field
	EnvironmentBlueprintId *string `locationName:"environmentBlueprintId" type:"string" required:"true"`

	// The identifier of the environment profile.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The name of the environment profile.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by EnvironmentProfileSummary's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The identifier of a project in which an environment profile exists.
	ProjectId *string `locationName:"projectId" type:"string"`

	// The timestamp of when the environment profile was 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 EnvironmentProfileSummary) String() string {
	return awsutil.Prettify(s)
}

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

// SetAwsAccountId sets the AwsAccountId field's value.
func (s *EnvironmentProfileSummary) SetAwsAccountId(v string) *EnvironmentProfileSummary {
	s.AwsAccountId = &v
	return s
}

// SetAwsAccountRegion sets the AwsAccountRegion field's value.
func (s *EnvironmentProfileSummary) SetAwsAccountRegion(v string) *EnvironmentProfileSummary {
	s.AwsAccountRegion = &v
	return s
}

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

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

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

// SetDomainId sets the DomainId field's value.
func (s *EnvironmentProfileSummary) SetDomainId(v string) *EnvironmentProfileSummary {
	s.DomainId = &v
	return s
}

// SetEnvironmentBlueprintId sets the EnvironmentBlueprintId field's value.
func (s *EnvironmentProfileSummary) SetEnvironmentBlueprintId(v string) *EnvironmentProfileSummary {
	s.EnvironmentBlueprintId = &v
	return s
}

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

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

// SetProjectId sets the ProjectId field's value.
func (s *EnvironmentProfileSummary) SetProjectId(v string) *EnvironmentProfileSummary {
	s.ProjectId = &v
	return s
}

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

// The details of an environment.
type EnvironmentSummary struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon Web Services account in which an environment
	// exists.
	AwsAccountId *string `locationName:"awsAccountId" type:"string"`

	// The Amazon Web Services Region in which an environment exists.
	AwsAccountRegion *string `locationName:"awsAccountRegion" type:"string"`

	// The timestamp of when the environment was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The Amazon DataZone user who created the environment.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The description of the environment.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by EnvironmentSummary's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The identifier of the Amazon DataZone domain in which the environment exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The identifier of the environment profile with which the environment was
	// created.
	//
	// EnvironmentProfileId is a required field
	EnvironmentProfileId *string `locationName:"environmentProfileId" type:"string" required:"true"`

	// The identifier of the environment.
	Id *string `locationName:"id" type:"string"`

	// The name of the environment.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by EnvironmentSummary's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The identifier of the project in which the environment exists.
	//
	// ProjectId is a required field
	ProjectId *string `locationName:"projectId" type:"string" required:"true"`

	// The provider of the environment.
	//
	// Provider is a required field
	Provider *string `locationName:"provider" type:"string" required:"true"`

	// The status of the environment.
	Status *string `locationName:"status" type:"string" enum:"EnvironmentStatus"`

	// The timestamp of when the environment was 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 EnvironmentSummary) String() string {
	return awsutil.Prettify(s)
}

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

// SetAwsAccountId sets the AwsAccountId field's value.
func (s *EnvironmentSummary) SetAwsAccountId(v string) *EnvironmentSummary {
	s.AwsAccountId = &v
	return s
}

// SetAwsAccountRegion sets the AwsAccountRegion field's value.
func (s *EnvironmentSummary) SetAwsAccountRegion(v string) *EnvironmentSummary {
	s.AwsAccountRegion = &v
	return s
}

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

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

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

// SetDomainId sets the DomainId field's value.
func (s *EnvironmentSummary) SetDomainId(v string) *EnvironmentSummary {
	s.DomainId = &v
	return s
}

// SetEnvironmentProfileId sets the EnvironmentProfileId field's value.
func (s *EnvironmentSummary) SetEnvironmentProfileId(v string) *EnvironmentSummary {
	s.EnvironmentProfileId = &v
	return s
}

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

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

// SetProjectId sets the ProjectId field's value.
func (s *EnvironmentSummary) SetProjectId(v string) *EnvironmentSummary {
	s.ProjectId = &v
	return s
}

// SetProvider sets the Provider field's value.
func (s *EnvironmentSummary) SetProvider(v string) *EnvironmentSummary {
	s.Provider = &v
	return s
}

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

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

// Specifies the error message that is returned if the operation cannot be successfully
// completed.
type FailureCause struct {
	_ struct{} `type:"structure"`

	// The description of the error message.
	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 FailureCause) String() string {
	return awsutil.Prettify(s)
}

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

// SetMessage sets the Message field's value.
func (s *FailureCause) SetMessage(v string) *FailureCause {
	s.Message = &v
	return s
}

// A search filter in Amazon DataZone.
type Filter struct {
	_ struct{} `type:"structure"`

	// A search filter attribute in Amazon DataZone.
	//
	// Attribute is a required field
	Attribute *string `locationName:"attribute" min:"1" type:"string" required:"true"`

	// A search filter value in Amazon DataZone.
	//
	// Value is a required field
	Value *string `locationName:"value" 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 Filter) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetAttribute sets the Attribute field's value.
func (s *Filter) SetAttribute(v string) *Filter {
	s.Attribute = &v
	return s
}

// SetValue sets the Value field's value.
func (s *Filter) SetValue(v string) *Filter {
	s.Value = &v
	return s
}

// A search filter clause in Amazon DataZone.
type FilterClause struct {
	_ struct{} `type:"structure"`

	// The 'and' search filter clause in Amazon DataZone.
	And []*FilterClause `locationName:"and" min:"1" type:"list"`

	// A search filter in Amazon DataZone.
	Filter *Filter `locationName:"filter" type:"structure"`

	// The 'or' search filter clause in Amazon DataZone.
	Or []*FilterClause `locationName:"or" min:"1" type:"list"`
}

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

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

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

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

// SetAnd sets the And field's value.
func (s *FilterClause) SetAnd(v []*FilterClause) *FilterClause {
	s.And = v
	return s
}

// SetFilter sets the Filter field's value.
func (s *FilterClause) SetFilter(v *Filter) *FilterClause {
	s.Filter = v
	return s
}

// SetOr sets the Or field's value.
func (s *FilterClause) SetOr(v []*FilterClause) *FilterClause {
	s.Or = v
	return s
}

// A filter expression in Amazon DataZone.
type FilterExpression struct {
	_ struct{} `type:"structure"`

	// The search filter expression.
	//
	// Expression is a required field
	Expression *string `locationName:"expression" min:"1" type:"string" required:"true"`

	// The search filter explresison type.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"FilterExpressionType"`
}

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

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

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

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

// SetExpression sets the Expression field's value.
func (s *FilterExpression) SetExpression(v string) *FilterExpression {
	s.Expression = &v
	return s
}

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

// The details of the form entry.
type FormEntryInput_ struct {
	_ struct{} `type:"structure"`

	// Specifies whether a form entry is required.
	Required *bool `locationName:"required" type:"boolean"`

	// The type ID of the form entry.
	//
	// TypeIdentifier is a required field
	TypeIdentifier *string `locationName:"typeIdentifier" min:"1" type:"string" required:"true"`

	// The type revision of the form entry.
	//
	// TypeRevision is a required field
	TypeRevision *string `locationName:"typeRevision" 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 FormEntryInput_) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetRequired sets the Required field's value.
func (s *FormEntryInput_) SetRequired(v bool) *FormEntryInput_ {
	s.Required = &v
	return s
}

// SetTypeIdentifier sets the TypeIdentifier field's value.
func (s *FormEntryInput_) SetTypeIdentifier(v string) *FormEntryInput_ {
	s.TypeIdentifier = &v
	return s
}

// SetTypeRevision sets the TypeRevision field's value.
func (s *FormEntryInput_) SetTypeRevision(v string) *FormEntryInput_ {
	s.TypeRevision = &v
	return s
}

// The details of the form entry.
type FormEntryOutput_ struct {
	_ struct{} `type:"structure"`

	// Specifies whether a form entry is required.
	Required *bool `locationName:"required" type:"boolean"`

	// The name of the type of the form entry.
	//
	// TypeName is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by FormEntryOutput_'s
	// String and GoString methods.
	//
	// TypeName is a required field
	TypeName *string `locationName:"typeName" min:"1" type:"string" required:"true" sensitive:"true"`

	// The type revision of the form entry.
	//
	// TypeRevision is a required field
	TypeRevision *string `locationName:"typeRevision" 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 FormEntryOutput_) String() string {
	return awsutil.Prettify(s)
}

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

// SetRequired sets the Required field's value.
func (s *FormEntryOutput_) SetRequired(v bool) *FormEntryOutput_ {
	s.Required = &v
	return s
}

// SetTypeName sets the TypeName field's value.
func (s *FormEntryOutput_) SetTypeName(v string) *FormEntryOutput_ {
	s.TypeName = &v
	return s
}

// SetTypeRevision sets the TypeRevision field's value.
func (s *FormEntryOutput_) SetTypeRevision(v string) *FormEntryOutput_ {
	s.TypeRevision = &v
	return s
}

// The details of a metadata form.
type FormInput_ struct {
	_ struct{} `type:"structure" sensitive:"true"`

	// The content of the metadata form.
	Content *string `locationName:"content" type:"string"`

	// The name of the metadata form.
	//
	// FormName is a required field
	FormName *string `locationName:"formName" min:"1" type:"string" required:"true"`

	// The ID of the metadata form type.
	TypeIdentifier *string `locationName:"typeIdentifier" min:"1" type:"string"`

	// The revision of the metadata form type.
	TypeRevision *string `locationName:"typeRevision" 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 FormInput_) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetContent sets the Content field's value.
func (s *FormInput_) SetContent(v string) *FormInput_ {
	s.Content = &v
	return s
}

// SetFormName sets the FormName field's value.
func (s *FormInput_) SetFormName(v string) *FormInput_ {
	s.FormName = &v
	return s
}

// SetTypeIdentifier sets the TypeIdentifier field's value.
func (s *FormInput_) SetTypeIdentifier(v string) *FormInput_ {
	s.TypeIdentifier = &v
	return s
}

// SetTypeRevision sets the TypeRevision field's value.
func (s *FormInput_) SetTypeRevision(v string) *FormInput_ {
	s.TypeRevision = &v
	return s
}

// The details of a metadata form.
type FormOutput_ struct {
	_ struct{} `type:"structure"`

	// The content of the metadata form.
	Content *string `locationName:"content" type:"string"`

	// The name of the metadata form.
	//
	// FormName is a required field
	FormName *string `locationName:"formName" min:"1" type:"string" required:"true"`

	// The name of the metadata form type.
	//
	// TypeName is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by FormOutput_'s
	// String and GoString methods.
	TypeName *string `locationName:"typeName" min:"1" type:"string" sensitive:"true"`

	// The revision of the metadata form type.
	TypeRevision *string `locationName:"typeRevision" 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 FormOutput_) String() string {
	return awsutil.Prettify(s)
}

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

// SetContent sets the Content field's value.
func (s *FormOutput_) SetContent(v string) *FormOutput_ {
	s.Content = &v
	return s
}

// SetFormName sets the FormName field's value.
func (s *FormOutput_) SetFormName(v string) *FormOutput_ {
	s.FormName = &v
	return s
}

// SetTypeName sets the TypeName field's value.
func (s *FormOutput_) SetTypeName(v string) *FormOutput_ {
	s.TypeName = &v
	return s
}

// SetTypeRevision sets the TypeRevision field's value.
func (s *FormOutput_) SetTypeRevision(v string) *FormOutput_ {
	s.TypeRevision = &v
	return s
}

// The details of the metadata form type.
type FormTypeData struct {
	_ struct{} `type:"structure"`

	// The timestamp of when the metadata form type was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`

	// The Amazon DataZone user who created teh metadata form type.
	CreatedBy *string `locationName:"createdBy" type:"string"`

	// The description of the metadata form type.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by FormTypeData's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The identifier of the Amazon DataZone domain in which the form type exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The imports specified in the form type.
	Imports []*Import `locationName:"imports" min:"1" type:"list"`

	// The model of the form type.
	//
	// Model is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by FormTypeData's
	// String and GoString methods.
	Model *Model `locationName:"model" type:"structure" sensitive:"true"`

	// The name of the form type.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by FormTypeData's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The identifier of the Amazon DataZone domain in which the form type was originally
	// created.
	OriginDomainId *string `locationName:"originDomainId" type:"string"`

	// The identifier of the project in which the form type was originally created.
	OriginProjectId *string `locationName:"originProjectId" type:"string"`

	// The identifier of the project that owns the form type.
	OwningProjectId *string `locationName:"owningProjectId" type:"string"`

	// The revision of the form type.
	//
	// Revision is a required field
	Revision *string `locationName:"revision" min:"1" type:"string" required:"true"`

	// The status of the form type.
	Status *string `locationName:"status" type:"string" enum:"FormTypeStatus"`
}

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

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

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

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

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

// SetDomainId sets the DomainId field's value.
func (s *FormTypeData) SetDomainId(v string) *FormTypeData {
	s.DomainId = &v
	return s
}

// SetImports sets the Imports field's value.
func (s *FormTypeData) SetImports(v []*Import) *FormTypeData {
	s.Imports = v
	return s
}

// SetModel sets the Model field's value.
func (s *FormTypeData) SetModel(v *Model) *FormTypeData {
	s.Model = v
	return s
}

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

// SetOriginDomainId sets the OriginDomainId field's value.
func (s *FormTypeData) SetOriginDomainId(v string) *FormTypeData {
	s.OriginDomainId = &v
	return s
}

// SetOriginProjectId sets the OriginProjectId field's value.
func (s *FormTypeData) SetOriginProjectId(v string) *FormTypeData {
	s.OriginProjectId = &v
	return s
}

// SetOwningProjectId sets the OwningProjectId field's value.
func (s *FormTypeData) SetOwningProjectId(v string) *FormTypeData {
	s.OwningProjectId = &v
	return s
}

// SetRevision sets the Revision field's value.
func (s *FormTypeData) SetRevision(v string) *FormTypeData {
	s.Revision = &v
	return s
}

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

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

	// The ID of the Amazon DataZone domain to which the asset belongs.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the Amazon DataZone asset.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" type:"string" required:"true"`

	// The revision of the Amazon DataZone asset.
	Revision *string `location:"querystring" locationName:"revision" 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 GetAssetInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *GetAssetInput) SetDomainIdentifier(v string) *GetAssetInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *GetAssetInput) SetIdentifier(v string) *GetAssetInput {
	s.Identifier = &v
	return s
}

// SetRevision sets the Revision field's value.
func (s *GetAssetInput) SetRevision(v string) *GetAssetInput {
	s.Revision = &v
	return s
}

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

	// The timestamp of when the asset was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`

	// The Amazon DataZone user who created the asset.
	CreatedBy *string `locationName:"createdBy" type:"string"`

	// The description of the Amazon DataZone asset.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetAssetOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain to which the asset belongs.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// ExternalIdentifier is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetAssetOutput's
	// String and GoString methods.
	ExternalIdentifier *string `locationName:"externalIdentifier" min:"1" type:"string" sensitive:"true"`

	// The timestamp of when the first revision of the asset was created.
	FirstRevisionCreatedAt *time.Time `locationName:"firstRevisionCreatedAt" type:"timestamp"`

	// The Amazon DataZone user who created the first revision of the asset.
	FirstRevisionCreatedBy *string `locationName:"firstRevisionCreatedBy" type:"string"`

	// The metadata forms attached to the asset.
	//
	// FormsOutput is a required field
	FormsOutput []*FormOutput_ `locationName:"formsOutput" type:"list" required:"true"`

	// The business glossary terms attached to the asset.
	GlossaryTerms []*string `locationName:"glossaryTerms" min:"1" type:"list"`

	// The ID of the asset.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The details of an asset published in an Amazon DataZone catalog.
	Listing *AssetListingDetails `locationName:"listing" type:"structure"`

	// The name of the asset.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetAssetOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The ID of the project that owns the asset.
	//
	// OwningProjectId is a required field
	OwningProjectId *string `locationName:"owningProjectId" type:"string" required:"true"`

	// The read-only metadata forms attached to the asset.
	ReadOnlyFormsOutput []*FormOutput_ `locationName:"readOnlyFormsOutput" type:"list"`

	// The revision of the asset.
	//
	// Revision is a required field
	Revision *string `locationName:"revision" min:"1" type:"string" required:"true"`

	// The ID of the asset type.
	//
	// TypeIdentifier is a required field
	TypeIdentifier *string `locationName:"typeIdentifier" min:"1" type:"string" required:"true"`

	// The revision of the asset type.
	//
	// TypeRevision is a required field
	TypeRevision *string `locationName:"typeRevision" 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 GetAssetOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetCreatedAt sets the CreatedAt field's value.
func (s *GetAssetOutput) SetCreatedAt(v time.Time) *GetAssetOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *GetAssetOutput) SetCreatedBy(v string) *GetAssetOutput {
	s.CreatedBy = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *GetAssetOutput) SetDescription(v string) *GetAssetOutput {
	s.Description = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *GetAssetOutput) SetDomainId(v string) *GetAssetOutput {
	s.DomainId = &v
	return s
}

// SetExternalIdentifier sets the ExternalIdentifier field's value.
func (s *GetAssetOutput) SetExternalIdentifier(v string) *GetAssetOutput {
	s.ExternalIdentifier = &v
	return s
}

// SetFirstRevisionCreatedAt sets the FirstRevisionCreatedAt field's value.
func (s *GetAssetOutput) SetFirstRevisionCreatedAt(v time.Time) *GetAssetOutput {
	s.FirstRevisionCreatedAt = &v
	return s
}

// SetFirstRevisionCreatedBy sets the FirstRevisionCreatedBy field's value.
func (s *GetAssetOutput) SetFirstRevisionCreatedBy(v string) *GetAssetOutput {
	s.FirstRevisionCreatedBy = &v
	return s
}

// SetFormsOutput sets the FormsOutput field's value.
func (s *GetAssetOutput) SetFormsOutput(v []*FormOutput_) *GetAssetOutput {
	s.FormsOutput = v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *GetAssetOutput) SetGlossaryTerms(v []*string) *GetAssetOutput {
	s.GlossaryTerms = v
	return s
}

// SetId sets the Id field's value.
func (s *GetAssetOutput) SetId(v string) *GetAssetOutput {
	s.Id = &v
	return s
}

// SetListing sets the Listing field's value.
func (s *GetAssetOutput) SetListing(v *AssetListingDetails) *GetAssetOutput {
	s.Listing = v
	return s
}

// SetName sets the Name field's value.
func (s *GetAssetOutput) SetName(v string) *GetAssetOutput {
	s.Name = &v
	return s
}

// SetOwningProjectId sets the OwningProjectId field's value.
func (s *GetAssetOutput) SetOwningProjectId(v string) *GetAssetOutput {
	s.OwningProjectId = &v
	return s
}

// SetReadOnlyFormsOutput sets the ReadOnlyFormsOutput field's value.
func (s *GetAssetOutput) SetReadOnlyFormsOutput(v []*FormOutput_) *GetAssetOutput {
	s.ReadOnlyFormsOutput = v
	return s
}

// SetRevision sets the Revision field's value.
func (s *GetAssetOutput) SetRevision(v string) *GetAssetOutput {
	s.Revision = &v
	return s
}

// SetTypeIdentifier sets the TypeIdentifier field's value.
func (s *GetAssetOutput) SetTypeIdentifier(v string) *GetAssetOutput {
	s.TypeIdentifier = &v
	return s
}

// SetTypeRevision sets the TypeRevision field's value.
func (s *GetAssetOutput) SetTypeRevision(v string) *GetAssetOutput {
	s.TypeRevision = &v
	return s
}

type GetAssetTypeInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ID of the Amazon DataZone domain in which the asset type exists.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the asset type.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" min:"1" type:"string" required:"true"`

	// The revision of the asset type.
	Revision *string `location:"querystring" locationName:"revision" 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 GetAssetTypeInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAssetTypeInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetAssetTypeInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetAssetTypeInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}
	if s.Revision != nil && len(*s.Revision) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Revision", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *GetAssetTypeInput) SetDomainIdentifier(v string) *GetAssetTypeInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *GetAssetTypeInput) SetIdentifier(v string) *GetAssetTypeInput {
	s.Identifier = &v
	return s
}

// SetRevision sets the Revision field's value.
func (s *GetAssetTypeInput) SetRevision(v string) *GetAssetTypeInput {
	s.Revision = &v
	return s
}

type GetAssetTypeOutput struct {
	_ struct{} `type:"structure"`

	// The timestamp of when the asset type was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`

	// The Amazon DataZone user who created the asset type.
	CreatedBy *string `locationName:"createdBy" type:"string"`

	// The description of the asset type.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetAssetTypeOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain in which the asset type exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The metadata forms attached to the asset type.
	//
	// FormsOutput is a required field
	FormsOutput map[string]*FormEntryOutput_ `locationName:"formsOutput" type:"map" required:"true"`

	// The name of the asset type.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// The ID of the Amazon DataZone domain in which the asset type was originally
	// created.
	OriginDomainId *string `locationName:"originDomainId" type:"string"`

	// The ID of the Amazon DataZone project in which the asset type was originally
	// created.
	OriginProjectId *string `locationName:"originProjectId" type:"string"`

	// The ID of the Amazon DataZone project that owns the asset type.
	//
	// OwningProjectId is a required field
	OwningProjectId *string `locationName:"owningProjectId" type:"string" required:"true"`

	// The revision of the asset type.
	//
	// Revision is a required field
	Revision *string `locationName:"revision" min:"1" type:"string" required:"true"`

	// The timestamp of when the asset type was updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`

	// The Amazon DataZone user that updated the asset type.
	UpdatedBy *string `locationName:"updatedBy" 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 GetAssetTypeOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetAssetTypeOutput) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *GetAssetTypeOutput) SetCreatedAt(v time.Time) *GetAssetTypeOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *GetAssetTypeOutput) SetCreatedBy(v string) *GetAssetTypeOutput {
	s.CreatedBy = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *GetAssetTypeOutput) SetDescription(v string) *GetAssetTypeOutput {
	s.Description = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *GetAssetTypeOutput) SetDomainId(v string) *GetAssetTypeOutput {
	s.DomainId = &v
	return s
}

// SetFormsOutput sets the FormsOutput field's value.
func (s *GetAssetTypeOutput) SetFormsOutput(v map[string]*FormEntryOutput_) *GetAssetTypeOutput {
	s.FormsOutput = v
	return s
}

// SetName sets the Name field's value.
func (s *GetAssetTypeOutput) SetName(v string) *GetAssetTypeOutput {
	s.Name = &v
	return s
}

// SetOriginDomainId sets the OriginDomainId field's value.
func (s *GetAssetTypeOutput) SetOriginDomainId(v string) *GetAssetTypeOutput {
	s.OriginDomainId = &v
	return s
}

// SetOriginProjectId sets the OriginProjectId field's value.
func (s *GetAssetTypeOutput) SetOriginProjectId(v string) *GetAssetTypeOutput {
	s.OriginProjectId = &v
	return s
}

// SetOwningProjectId sets the OwningProjectId field's value.
func (s *GetAssetTypeOutput) SetOwningProjectId(v string) *GetAssetTypeOutput {
	s.OwningProjectId = &v
	return s
}

// SetRevision sets the Revision field's value.
func (s *GetAssetTypeOutput) SetRevision(v string) *GetAssetTypeOutput {
	s.Revision = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *GetAssetTypeOutput) SetUpdatedAt(v time.Time) *GetAssetTypeOutput {
	s.UpdatedAt = &v
	return s
}

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *GetAssetTypeOutput) SetUpdatedBy(v string) *GetAssetTypeOutput {
	s.UpdatedBy = &v
	return s
}

type GetDataSourceInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ID of the Amazon DataZone domain in which the data source exists.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the Amazon DataZone data source.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 GetDataSourceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetDataSourceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetDataSourceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetDataSourceInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *GetDataSourceInput) SetDomainIdentifier(v string) *GetDataSourceInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *GetDataSourceInput) SetIdentifier(v string) *GetDataSourceInput {
	s.Identifier = &v
	return s
}

type GetDataSourceOutput struct {
	_ struct{} `type:"structure"`

	// The metadata forms attached to the assets created by this data source.
	AssetFormsOutput []*FormOutput_ `locationName:"assetFormsOutput" type:"list"`

	// The configuration of the data source.
	Configuration *DataSourceConfigurationOutput_ `locationName:"configuration" type:"structure"`

	// The timestamp of when the data source was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The description of the data source.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetDataSourceOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain in which the data source exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// Specifies whether this data source is enabled or not.
	EnableSetting *string `locationName:"enableSetting" type:"string" enum:"EnableSetting"`

	// The ID of the environment where this data source creates and publishes assets,
	//
	// EnvironmentId is a required field
	EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"`

	// Specifies the error message that is returned if the operation cannot be successfully
	// completed.
	ErrorMessage *DataSourceErrorMessage `locationName:"errorMessage" type:"structure"`

	// The ID of the data source.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The number of assets created by the data source during its last run.
	LastRunAssetCount *int64 `locationName:"lastRunAssetCount" type:"integer"`

	// The timestamp of the last run of the data source.
	LastRunAt *time.Time `locationName:"lastRunAt" type:"timestamp" timestampFormat:"iso8601"`

	// Specifies the error message that is returned if the operation cannot be successfully
	// completed.
	LastRunErrorMessage *DataSourceErrorMessage `locationName:"lastRunErrorMessage" type:"structure"`

	// The status of the last run of the data source.
	LastRunStatus *string `locationName:"lastRunStatus" type:"string" enum:"DataSourceRunStatus"`

	// The name of the data source.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetDataSourceOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The ID of the project where the data source creates and publishes assets.
	//
	// ProjectId is a required field
	ProjectId *string `locationName:"projectId" type:"string" required:"true"`

	// Specifies whether the assets that this data source creates in the inventory
	// are to be also automatically published to the catalog.
	PublishOnImport *bool `locationName:"publishOnImport" type:"boolean"`

	// The recommendation to be updated as part of the UpdateDataSource action.
	Recommendation *RecommendationConfiguration `locationName:"recommendation" type:"structure"`

	// The schedule of the data source runs.
	//
	// Schedule is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetDataSourceOutput's
	// String and GoString methods.
	Schedule *ScheduleConfiguration `locationName:"schedule" type:"structure" sensitive:"true"`

	// The status of the data source.
	Status *string `locationName:"status" type:"string" enum:"DataSourceStatus"`

	// The type of the data source.
	Type *string `locationName:"type" min:"1" type:"string"`

	// The timestamp of when the data source was 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 GetDataSourceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetDataSourceOutput) GoString() string {
	return s.String()
}

// SetAssetFormsOutput sets the AssetFormsOutput field's value.
func (s *GetDataSourceOutput) SetAssetFormsOutput(v []*FormOutput_) *GetDataSourceOutput {
	s.AssetFormsOutput = v
	return s
}

// SetConfiguration sets the Configuration field's value.
func (s *GetDataSourceOutput) SetConfiguration(v *DataSourceConfigurationOutput_) *GetDataSourceOutput {
	s.Configuration = v
	return s
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *GetDataSourceOutput) SetCreatedAt(v time.Time) *GetDataSourceOutput {
	s.CreatedAt = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *GetDataSourceOutput) SetDescription(v string) *GetDataSourceOutput {
	s.Description = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *GetDataSourceOutput) SetDomainId(v string) *GetDataSourceOutput {
	s.DomainId = &v
	return s
}

// SetEnableSetting sets the EnableSetting field's value.
func (s *GetDataSourceOutput) SetEnableSetting(v string) *GetDataSourceOutput {
	s.EnableSetting = &v
	return s
}

// SetEnvironmentId sets the EnvironmentId field's value.
func (s *GetDataSourceOutput) SetEnvironmentId(v string) *GetDataSourceOutput {
	s.EnvironmentId = &v
	return s
}

// SetErrorMessage sets the ErrorMessage field's value.
func (s *GetDataSourceOutput) SetErrorMessage(v *DataSourceErrorMessage) *GetDataSourceOutput {
	s.ErrorMessage = v
	return s
}

// SetId sets the Id field's value.
func (s *GetDataSourceOutput) SetId(v string) *GetDataSourceOutput {
	s.Id = &v
	return s
}

// SetLastRunAssetCount sets the LastRunAssetCount field's value.
func (s *GetDataSourceOutput) SetLastRunAssetCount(v int64) *GetDataSourceOutput {
	s.LastRunAssetCount = &v
	return s
}

// SetLastRunAt sets the LastRunAt field's value.
func (s *GetDataSourceOutput) SetLastRunAt(v time.Time) *GetDataSourceOutput {
	s.LastRunAt = &v
	return s
}

// SetLastRunErrorMessage sets the LastRunErrorMessage field's value.
func (s *GetDataSourceOutput) SetLastRunErrorMessage(v *DataSourceErrorMessage) *GetDataSourceOutput {
	s.LastRunErrorMessage = v
	return s
}

// SetLastRunStatus sets the LastRunStatus field's value.
func (s *GetDataSourceOutput) SetLastRunStatus(v string) *GetDataSourceOutput {
	s.LastRunStatus = &v
	return s
}

// SetName sets the Name field's value.
func (s *GetDataSourceOutput) SetName(v string) *GetDataSourceOutput {
	s.Name = &v
	return s
}

// SetProjectId sets the ProjectId field's value.
func (s *GetDataSourceOutput) SetProjectId(v string) *GetDataSourceOutput {
	s.ProjectId = &v
	return s
}

// SetPublishOnImport sets the PublishOnImport field's value.
func (s *GetDataSourceOutput) SetPublishOnImport(v bool) *GetDataSourceOutput {
	s.PublishOnImport = &v
	return s
}

// SetRecommendation sets the Recommendation field's value.
func (s *GetDataSourceOutput) SetRecommendation(v *RecommendationConfiguration) *GetDataSourceOutput {
	s.Recommendation = v
	return s
}

// SetSchedule sets the Schedule field's value.
func (s *GetDataSourceOutput) SetSchedule(v *ScheduleConfiguration) *GetDataSourceOutput {
	s.Schedule = v
	return s
}

// SetStatus sets the Status field's value.
func (s *GetDataSourceOutput) SetStatus(v string) *GetDataSourceOutput {
	s.Status = &v
	return s
}

// SetType sets the Type field's value.
func (s *GetDataSourceOutput) SetType(v string) *GetDataSourceOutput {
	s.Type = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *GetDataSourceOutput) SetUpdatedAt(v time.Time) *GetDataSourceOutput {
	s.UpdatedAt = &v
	return s
}

type GetDataSourceRunInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ID of the domain in which this data source run was performed.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the data source run.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 GetDataSourceRunInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetDataSourceRunInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetDataSourceRunInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetDataSourceRunInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *GetDataSourceRunInput) SetDomainIdentifier(v string) *GetDataSourceRunInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *GetDataSourceRunInput) SetIdentifier(v string) *GetDataSourceRunInput {
	s.Identifier = &v
	return s
}

type GetDataSourceRunOutput struct {
	_ struct{} `type:"structure"`

	// The timestamp of when the data source run was created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"`

	// The configuration snapshot of the data source run.
	DataSourceConfigurationSnapshot *string `locationName:"dataSourceConfigurationSnapshot" type:"string"`

	// The ID of the data source for this data source run.
	//
	// DataSourceId is a required field
	DataSourceId *string `locationName:"dataSourceId" type:"string" required:"true"`

	// The ID of the domain in which this data source run was performed.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// Specifies the error message that is returned if the operation cannot be successfully
	// completed.
	ErrorMessage *DataSourceErrorMessage `locationName:"errorMessage" type:"structure"`

	// The ID of the data source run.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The ID of the project in which this data source run occured.
	//
	// ProjectId is a required field
	ProjectId *string `locationName:"projectId" type:"string" required:"true"`

	// The asset statistics from this data source run.
	RunStatisticsForAssets *RunStatisticsForAssets `locationName:"runStatisticsForAssets" type:"structure"`

	// The timestamp of when this data source run started.
	StartedAt *time.Time `locationName:"startedAt" type:"timestamp" timestampFormat:"iso8601"`

	// The status of this data source run.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"DataSourceRunStatus"`

	// The timestamp of when this data source run stopped.
	StoppedAt *time.Time `locationName:"stoppedAt" type:"timestamp" timestampFormat:"iso8601"`

	// The type of this data source run.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"DataSourceRunType"`

	// The timestamp of when this data source run was updated.
	//
	// UpdatedAt is a required field
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" 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 GetDataSourceRunOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetDataSourceRunOutput) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *GetDataSourceRunOutput) SetCreatedAt(v time.Time) *GetDataSourceRunOutput {
	s.CreatedAt = &v
	return s
}

// SetDataSourceConfigurationSnapshot sets the DataSourceConfigurationSnapshot field's value.
func (s *GetDataSourceRunOutput) SetDataSourceConfigurationSnapshot(v string) *GetDataSourceRunOutput {
	s.DataSourceConfigurationSnapshot = &v
	return s
}

// SetDataSourceId sets the DataSourceId field's value.
func (s *GetDataSourceRunOutput) SetDataSourceId(v string) *GetDataSourceRunOutput {
	s.DataSourceId = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *GetDataSourceRunOutput) SetDomainId(v string) *GetDataSourceRunOutput {
	s.DomainId = &v
	return s
}

// SetErrorMessage sets the ErrorMessage field's value.
func (s *GetDataSourceRunOutput) SetErrorMessage(v *DataSourceErrorMessage) *GetDataSourceRunOutput {
	s.ErrorMessage = v
	return s
}

// SetId sets the Id field's value.
func (s *GetDataSourceRunOutput) SetId(v string) *GetDataSourceRunOutput {
	s.Id = &v
	return s
}

// SetProjectId sets the ProjectId field's value.
func (s *GetDataSourceRunOutput) SetProjectId(v string) *GetDataSourceRunOutput {
	s.ProjectId = &v
	return s
}

// SetRunStatisticsForAssets sets the RunStatisticsForAssets field's value.
func (s *GetDataSourceRunOutput) SetRunStatisticsForAssets(v *RunStatisticsForAssets) *GetDataSourceRunOutput {
	s.RunStatisticsForAssets = v
	return s
}

// SetStartedAt sets the StartedAt field's value.
func (s *GetDataSourceRunOutput) SetStartedAt(v time.Time) *GetDataSourceRunOutput {
	s.StartedAt = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *GetDataSourceRunOutput) SetStatus(v string) *GetDataSourceRunOutput {
	s.Status = &v
	return s
}

// SetStoppedAt sets the StoppedAt field's value.
func (s *GetDataSourceRunOutput) SetStoppedAt(v time.Time) *GetDataSourceRunOutput {
	s.StoppedAt = &v
	return s
}

// SetType sets the Type field's value.
func (s *GetDataSourceRunOutput) SetType(v string) *GetDataSourceRunOutput {
	s.Type = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *GetDataSourceRunOutput) SetUpdatedAt(v time.Time) *GetDataSourceRunOutput {
	s.UpdatedAt = &v
	return s
}

type GetDomainInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the specified Amazon DataZone domain.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 GetDomainInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetDomainInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetDomainInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetDomainInput"}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetIdentifier sets the Identifier field's value.
func (s *GetDomainInput) SetIdentifier(v string) *GetDomainInput {
	s.Identifier = &v
	return s
}

type GetDomainOutput struct {
	_ struct{} `type:"structure"`

	// The ARN of the specified Amazon DataZone domain.
	Arn *string `locationName:"arn" type:"string"`

	// The timestamp of when the Amazon DataZone domain was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`

	// The description of the Amazon DataZone domain.
	Description *string `locationName:"description" type:"string"`

	// The domain execution role with which the Amazon DataZone domain is created.
	//
	// DomainExecutionRole is a required field
	DomainExecutionRole *string `locationName:"domainExecutionRole" type:"string" required:"true"`

	// The identifier of the specified Amazon DataZone domain.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The identifier of the Amazon Web Services Key Management Service (KMS) key
	// that is used to encrypt the Amazon DataZone domain, metadata, and reporting
	// data.
	KmsKeyIdentifier *string `locationName:"kmsKeyIdentifier" min:"1" type:"string"`

	// The timestamp of when the Amazon DataZone domain was last updated.
	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`

	// The name of the Amazon DataZone domain.
	Name *string `locationName:"name" type:"string"`

	// The URL of the data portal for this Amazon DataZone domain.
	PortalUrl *string `locationName:"portalUrl" type:"string"`

	// The single sing-on option of the specified Amazon DataZone domain.
	SingleSignOn *SingleSignOn `locationName:"singleSignOn" type:"structure"`

	// The status of the specified Amazon DataZone domain.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"DomainStatus"`

	// The tags specified for the Amazon DataZone domain.
	Tags map[string]*string `locationName:"tags" type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetDomainOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetDomainOutput) GoString() string {
	return s.String()
}

// SetArn sets the Arn field's value.
func (s *GetDomainOutput) SetArn(v string) *GetDomainOutput {
	s.Arn = &v
	return s
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *GetDomainOutput) SetCreatedAt(v time.Time) *GetDomainOutput {
	s.CreatedAt = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *GetDomainOutput) SetDescription(v string) *GetDomainOutput {
	s.Description = &v
	return s
}

// SetDomainExecutionRole sets the DomainExecutionRole field's value.
func (s *GetDomainOutput) SetDomainExecutionRole(v string) *GetDomainOutput {
	s.DomainExecutionRole = &v
	return s
}

// SetId sets the Id field's value.
func (s *GetDomainOutput) SetId(v string) *GetDomainOutput {
	s.Id = &v
	return s
}

// SetKmsKeyIdentifier sets the KmsKeyIdentifier field's value.
func (s *GetDomainOutput) SetKmsKeyIdentifier(v string) *GetDomainOutput {
	s.KmsKeyIdentifier = &v
	return s
}

// SetLastUpdatedAt sets the LastUpdatedAt field's value.
func (s *GetDomainOutput) SetLastUpdatedAt(v time.Time) *GetDomainOutput {
	s.LastUpdatedAt = &v
	return s
}

// SetName sets the Name field's value.
func (s *GetDomainOutput) SetName(v string) *GetDomainOutput {
	s.Name = &v
	return s
}

// SetPortalUrl sets the PortalUrl field's value.
func (s *GetDomainOutput) SetPortalUrl(v string) *GetDomainOutput {
	s.PortalUrl = &v
	return s
}

// SetSingleSignOn sets the SingleSignOn field's value.
func (s *GetDomainOutput) SetSingleSignOn(v *SingleSignOn) *GetDomainOutput {
	s.SingleSignOn = v
	return s
}

// SetStatus sets the Status field's value.
func (s *GetDomainOutput) SetStatus(v string) *GetDomainOutput {
	s.Status = &v
	return s
}

// SetTags sets the Tags field's value.
func (s *GetDomainOutput) SetTags(v map[string]*string) *GetDomainOutput {
	s.Tags = v
	return s
}

type GetEnvironmentBlueprintConfigurationInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ID of the Amazon DataZone domain where this blueprint exists.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// He ID of the blueprint.
	//
	// EnvironmentBlueprintIdentifier is a required field
	EnvironmentBlueprintIdentifier *string `location:"uri" locationName:"environmentBlueprintIdentifier" 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 GetEnvironmentBlueprintConfigurationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetEnvironmentBlueprintConfigurationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetEnvironmentBlueprintConfigurationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetEnvironmentBlueprintConfigurationInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.EnvironmentBlueprintIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("EnvironmentBlueprintIdentifier"))
	}
	if s.EnvironmentBlueprintIdentifier != nil && len(*s.EnvironmentBlueprintIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EnvironmentBlueprintIdentifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *GetEnvironmentBlueprintConfigurationInput) SetDomainIdentifier(v string) *GetEnvironmentBlueprintConfigurationInput {
	s.DomainIdentifier = &v
	return s
}

// SetEnvironmentBlueprintIdentifier sets the EnvironmentBlueprintIdentifier field's value.
func (s *GetEnvironmentBlueprintConfigurationInput) SetEnvironmentBlueprintIdentifier(v string) *GetEnvironmentBlueprintConfigurationInput {
	s.EnvironmentBlueprintIdentifier = &v
	return s
}

type GetEnvironmentBlueprintConfigurationOutput struct {
	_ struct{} `type:"structure"`

	// The timestamp of when this blueprint was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The ID of the Amazon DataZone domain where this blueprint exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The Amazon Web Services regions in which this blueprint is enabled.
	EnabledRegions []*string `locationName:"enabledRegions" type:"list"`

	// The ID of the blueprint.
	//
	// EnvironmentBlueprintId is a required field
	EnvironmentBlueprintId *string `locationName:"environmentBlueprintId" type:"string" required:"true"`

	// The ARN of the manage access role with which this blueprint is created.
	ManageAccessRoleArn *string `locationName:"manageAccessRoleArn" type:"string"`

	// The ARN of the provisioning role with which this blueprint is created.
	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" type:"string"`

	// The regional parameters of the blueprint.
	RegionalParameters map[string]map[string]*string `locationName:"regionalParameters" type:"map"`

	// The timestamp of when this blueprint was upated.
	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 GetEnvironmentBlueprintConfigurationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetEnvironmentBlueprintConfigurationOutput) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *GetEnvironmentBlueprintConfigurationOutput) SetCreatedAt(v time.Time) *GetEnvironmentBlueprintConfigurationOutput {
	s.CreatedAt = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *GetEnvironmentBlueprintConfigurationOutput) SetDomainId(v string) *GetEnvironmentBlueprintConfigurationOutput {
	s.DomainId = &v
	return s
}

// SetEnabledRegions sets the EnabledRegions field's value.
func (s *GetEnvironmentBlueprintConfigurationOutput) SetEnabledRegions(v []*string) *GetEnvironmentBlueprintConfigurationOutput {
	s.EnabledRegions = v
	return s
}

// SetEnvironmentBlueprintId sets the EnvironmentBlueprintId field's value.
func (s *GetEnvironmentBlueprintConfigurationOutput) SetEnvironmentBlueprintId(v string) *GetEnvironmentBlueprintConfigurationOutput {
	s.EnvironmentBlueprintId = &v
	return s
}

// SetManageAccessRoleArn sets the ManageAccessRoleArn field's value.
func (s *GetEnvironmentBlueprintConfigurationOutput) SetManageAccessRoleArn(v string) *GetEnvironmentBlueprintConfigurationOutput {
	s.ManageAccessRoleArn = &v
	return s
}

// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
func (s *GetEnvironmentBlueprintConfigurationOutput) SetProvisioningRoleArn(v string) *GetEnvironmentBlueprintConfigurationOutput {
	s.ProvisioningRoleArn = &v
	return s
}

// SetRegionalParameters sets the RegionalParameters field's value.
func (s *GetEnvironmentBlueprintConfigurationOutput) SetRegionalParameters(v map[string]map[string]*string) *GetEnvironmentBlueprintConfigurationOutput {
	s.RegionalParameters = v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *GetEnvironmentBlueprintConfigurationOutput) SetUpdatedAt(v time.Time) *GetEnvironmentBlueprintConfigurationOutput {
	s.UpdatedAt = &v
	return s
}

type GetEnvironmentBlueprintInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the domain in which this blueprint exists.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of this Amazon DataZone blueprint.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 GetEnvironmentBlueprintInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetEnvironmentBlueprintInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetEnvironmentBlueprintInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetEnvironmentBlueprintInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *GetEnvironmentBlueprintInput) SetDomainIdentifier(v string) *GetEnvironmentBlueprintInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *GetEnvironmentBlueprintInput) SetIdentifier(v string) *GetEnvironmentBlueprintInput {
	s.Identifier = &v
	return s
}

type GetEnvironmentBlueprintOutput struct {
	_ struct{} `type:"structure"`

	// A timestamp of when this blueprint was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The deployment properties of this Amazon DataZone blueprint.
	DeploymentProperties *DeploymentProperties `locationName:"deploymentProperties" type:"structure"`

	// The description of this Amazon DataZone blueprint.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetEnvironmentBlueprintOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The glossary terms attached to this Amazon DataZone blueprint.
	GlossaryTerms []*string `locationName:"glossaryTerms" min:"1" type:"list"`

	// The ID of this Amazon DataZone blueprint.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The name of this Amazon DataZone blueprint.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// The provider of this Amazon DataZone blueprint.
	//
	// Provider is a required field
	Provider *string `locationName:"provider" type:"string" required:"true"`

	// The provisioning properties of this Amazon DataZone blueprint.
	//
	// ProvisioningProperties is a required field
	ProvisioningProperties *ProvisioningProperties `locationName:"provisioningProperties" type:"structure" required:"true"`

	// The timestamp of when this blueprint was updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601"`

	// The user parameters of this blueprint.
	UserParameters []*CustomParameter `locationName:"userParameters" 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 GetEnvironmentBlueprintOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetEnvironmentBlueprintOutput) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *GetEnvironmentBlueprintOutput) SetCreatedAt(v time.Time) *GetEnvironmentBlueprintOutput {
	s.CreatedAt = &v
	return s
}

// SetDeploymentProperties sets the DeploymentProperties field's value.
func (s *GetEnvironmentBlueprintOutput) SetDeploymentProperties(v *DeploymentProperties) *GetEnvironmentBlueprintOutput {
	s.DeploymentProperties = v
	return s
}

// SetDescription sets the Description field's value.
func (s *GetEnvironmentBlueprintOutput) SetDescription(v string) *GetEnvironmentBlueprintOutput {
	s.Description = &v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *GetEnvironmentBlueprintOutput) SetGlossaryTerms(v []*string) *GetEnvironmentBlueprintOutput {
	s.GlossaryTerms = v
	return s
}

// SetId sets the Id field's value.
func (s *GetEnvironmentBlueprintOutput) SetId(v string) *GetEnvironmentBlueprintOutput {
	s.Id = &v
	return s
}

// SetName sets the Name field's value.
func (s *GetEnvironmentBlueprintOutput) SetName(v string) *GetEnvironmentBlueprintOutput {
	s.Name = &v
	return s
}

// SetProvider sets the Provider field's value.
func (s *GetEnvironmentBlueprintOutput) SetProvider(v string) *GetEnvironmentBlueprintOutput {
	s.Provider = &v
	return s
}

// SetProvisioningProperties sets the ProvisioningProperties field's value.
func (s *GetEnvironmentBlueprintOutput) SetProvisioningProperties(v *ProvisioningProperties) *GetEnvironmentBlueprintOutput {
	s.ProvisioningProperties = v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *GetEnvironmentBlueprintOutput) SetUpdatedAt(v time.Time) *GetEnvironmentBlueprintOutput {
	s.UpdatedAt = &v
	return s
}

// SetUserParameters sets the UserParameters field's value.
func (s *GetEnvironmentBlueprintOutput) SetUserParameters(v []*CustomParameter) *GetEnvironmentBlueprintOutput {
	s.UserParameters = v
	return s
}

type GetEnvironmentInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ID of the Amazon DataZone domain where the environment exists.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the Amazon DataZone environment.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 GetEnvironmentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetEnvironmentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetEnvironmentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetEnvironmentInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *GetEnvironmentInput) SetDomainIdentifier(v string) *GetEnvironmentInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *GetEnvironmentInput) SetIdentifier(v string) *GetEnvironmentInput {
	s.Identifier = &v
	return s
}

type GetEnvironmentOutput struct {
	_ struct{} `type:"structure"`

	// The ID of the Amazon Web Services account where the environment exists.
	AwsAccountId *string `locationName:"awsAccountId" type:"string"`

	// The Amazon Web Services region where the environment exists.
	AwsAccountRegion *string `locationName:"awsAccountRegion" type:"string"`

	// The timestamp of when the environment was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The Amazon DataZone user who created the environment.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The deployment properties of the environment.
	DeploymentProperties *DeploymentProperties `locationName:"deploymentProperties" type:"structure"`

	// The description of the environment.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetEnvironmentOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain where the environment exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The actions of the environment.
	EnvironmentActions []*ConfigurableEnvironmentAction `locationName:"environmentActions" type:"list"`

	// The blueprint with which the environment is created.
	EnvironmentBlueprintId *string `locationName:"environmentBlueprintId" type:"string"`

	// The ID of the environment profile with which the environment is created.
	//
	// EnvironmentProfileId is a required field
	EnvironmentProfileId *string `locationName:"environmentProfileId" type:"string" required:"true"`

	// The business glossary terms that can be used in this environment.
	GlossaryTerms []*string `locationName:"glossaryTerms" min:"1" type:"list"`

	// The ID of the environment.
	Id *string `locationName:"id" type:"string"`

	// The details of the last deployment of the environment.
	LastDeployment *Deployment `locationName:"lastDeployment" type:"structure"`

	// The name of the environment.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetEnvironmentOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The ID of the Amazon DataZone project in which this environment is created.
	//
	// ProjectId is a required field
	ProjectId *string `locationName:"projectId" type:"string" required:"true"`

	// The provider of this Amazon DataZone environment.
	//
	// Provider is a required field
	Provider *string `locationName:"provider" type:"string" required:"true"`

	// The provisioned resources of this Amazon DataZone environment.
	ProvisionedResources []*Resource `locationName:"provisionedResources" type:"list"`

	// The provisioning properties of this Amazon DataZone environment.
	ProvisioningProperties *ProvisioningProperties `locationName:"provisioningProperties" type:"structure"`

	// The status of this Amazon DataZone environment.
	Status *string `locationName:"status" type:"string" enum:"EnvironmentStatus"`

	// The timestamp of when this environment was updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601"`

	// The user parameters of this Amazon DataZone environment.
	UserParameters []*CustomParameter `locationName:"userParameters" 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 GetEnvironmentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetEnvironmentOutput) GoString() string {
	return s.String()
}

// SetAwsAccountId sets the AwsAccountId field's value.
func (s *GetEnvironmentOutput) SetAwsAccountId(v string) *GetEnvironmentOutput {
	s.AwsAccountId = &v
	return s
}

// SetAwsAccountRegion sets the AwsAccountRegion field's value.
func (s *GetEnvironmentOutput) SetAwsAccountRegion(v string) *GetEnvironmentOutput {
	s.AwsAccountRegion = &v
	return s
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *GetEnvironmentOutput) SetCreatedAt(v time.Time) *GetEnvironmentOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *GetEnvironmentOutput) SetCreatedBy(v string) *GetEnvironmentOutput {
	s.CreatedBy = &v
	return s
}

// SetDeploymentProperties sets the DeploymentProperties field's value.
func (s *GetEnvironmentOutput) SetDeploymentProperties(v *DeploymentProperties) *GetEnvironmentOutput {
	s.DeploymentProperties = v
	return s
}

// SetDescription sets the Description field's value.
func (s *GetEnvironmentOutput) SetDescription(v string) *GetEnvironmentOutput {
	s.Description = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *GetEnvironmentOutput) SetDomainId(v string) *GetEnvironmentOutput {
	s.DomainId = &v
	return s
}

// SetEnvironmentActions sets the EnvironmentActions field's value.
func (s *GetEnvironmentOutput) SetEnvironmentActions(v []*ConfigurableEnvironmentAction) *GetEnvironmentOutput {
	s.EnvironmentActions = v
	return s
}

// SetEnvironmentBlueprintId sets the EnvironmentBlueprintId field's value.
func (s *GetEnvironmentOutput) SetEnvironmentBlueprintId(v string) *GetEnvironmentOutput {
	s.EnvironmentBlueprintId = &v
	return s
}

// SetEnvironmentProfileId sets the EnvironmentProfileId field's value.
func (s *GetEnvironmentOutput) SetEnvironmentProfileId(v string) *GetEnvironmentOutput {
	s.EnvironmentProfileId = &v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *GetEnvironmentOutput) SetGlossaryTerms(v []*string) *GetEnvironmentOutput {
	s.GlossaryTerms = v
	return s
}

// SetId sets the Id field's value.
func (s *GetEnvironmentOutput) SetId(v string) *GetEnvironmentOutput {
	s.Id = &v
	return s
}

// SetLastDeployment sets the LastDeployment field's value.
func (s *GetEnvironmentOutput) SetLastDeployment(v *Deployment) *GetEnvironmentOutput {
	s.LastDeployment = v
	return s
}

// SetName sets the Name field's value.
func (s *GetEnvironmentOutput) SetName(v string) *GetEnvironmentOutput {
	s.Name = &v
	return s
}

// SetProjectId sets the ProjectId field's value.
func (s *GetEnvironmentOutput) SetProjectId(v string) *GetEnvironmentOutput {
	s.ProjectId = &v
	return s
}

// SetProvider sets the Provider field's value.
func (s *GetEnvironmentOutput) SetProvider(v string) *GetEnvironmentOutput {
	s.Provider = &v
	return s
}

// SetProvisionedResources sets the ProvisionedResources field's value.
func (s *GetEnvironmentOutput) SetProvisionedResources(v []*Resource) *GetEnvironmentOutput {
	s.ProvisionedResources = v
	return s
}

// SetProvisioningProperties sets the ProvisioningProperties field's value.
func (s *GetEnvironmentOutput) SetProvisioningProperties(v *ProvisioningProperties) *GetEnvironmentOutput {
	s.ProvisioningProperties = v
	return s
}

// SetStatus sets the Status field's value.
func (s *GetEnvironmentOutput) SetStatus(v string) *GetEnvironmentOutput {
	s.Status = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *GetEnvironmentOutput) SetUpdatedAt(v time.Time) *GetEnvironmentOutput {
	s.UpdatedAt = &v
	return s
}

// SetUserParameters sets the UserParameters field's value.
func (s *GetEnvironmentOutput) SetUserParameters(v []*CustomParameter) *GetEnvironmentOutput {
	s.UserParameters = v
	return s
}

type GetEnvironmentProfileInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ID of the Amazon DataZone domain in which this environment profile exists.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the environment profile.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 GetEnvironmentProfileInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetEnvironmentProfileInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetEnvironmentProfileInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetEnvironmentProfileInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *GetEnvironmentProfileInput) SetDomainIdentifier(v string) *GetEnvironmentProfileInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *GetEnvironmentProfileInput) SetIdentifier(v string) *GetEnvironmentProfileInput {
	s.Identifier = &v
	return s
}

type GetEnvironmentProfileOutput struct {
	_ struct{} `type:"structure"`

	// The ID of the Amazon Web Services account where this environment profile
	// exists.
	AwsAccountId *string `locationName:"awsAccountId" type:"string"`

	// The Amazon Web Services region where this environment profile exists.
	AwsAccountRegion *string `locationName:"awsAccountRegion" type:"string"`

	// The timestamp of when this environment profile was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The Amazon DataZone user who created this environment profile.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The description of the environment profile.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetEnvironmentProfileOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain in which this environment profile exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The ID of the blueprint with which this environment profile is created.
	//
	// EnvironmentBlueprintId is a required field
	EnvironmentBlueprintId *string `locationName:"environmentBlueprintId" type:"string" required:"true"`

	// The ID of the environment profile.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The name of the environment profile.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetEnvironmentProfileOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The ID of the Amazon DataZone project in which this environment profile is
	// created.
	ProjectId *string `locationName:"projectId" type:"string"`

	// The timestamp of when this environment profile was upated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601"`

	// The user parameters of the environment profile.
	UserParameters []*CustomParameter `locationName:"userParameters" 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 GetEnvironmentProfileOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetEnvironmentProfileOutput) GoString() string {
	return s.String()
}

// SetAwsAccountId sets the AwsAccountId field's value.
func (s *GetEnvironmentProfileOutput) SetAwsAccountId(v string) *GetEnvironmentProfileOutput {
	s.AwsAccountId = &v
	return s
}

// SetAwsAccountRegion sets the AwsAccountRegion field's value.
func (s *GetEnvironmentProfileOutput) SetAwsAccountRegion(v string) *GetEnvironmentProfileOutput {
	s.AwsAccountRegion = &v
	return s
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *GetEnvironmentProfileOutput) SetCreatedAt(v time.Time) *GetEnvironmentProfileOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *GetEnvironmentProfileOutput) SetCreatedBy(v string) *GetEnvironmentProfileOutput {
	s.CreatedBy = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *GetEnvironmentProfileOutput) SetDescription(v string) *GetEnvironmentProfileOutput {
	s.Description = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *GetEnvironmentProfileOutput) SetDomainId(v string) *GetEnvironmentProfileOutput {
	s.DomainId = &v
	return s
}

// SetEnvironmentBlueprintId sets the EnvironmentBlueprintId field's value.
func (s *GetEnvironmentProfileOutput) SetEnvironmentBlueprintId(v string) *GetEnvironmentProfileOutput {
	s.EnvironmentBlueprintId = &v
	return s
}

// SetId sets the Id field's value.
func (s *GetEnvironmentProfileOutput) SetId(v string) *GetEnvironmentProfileOutput {
	s.Id = &v
	return s
}

// SetName sets the Name field's value.
func (s *GetEnvironmentProfileOutput) SetName(v string) *GetEnvironmentProfileOutput {
	s.Name = &v
	return s
}

// SetProjectId sets the ProjectId field's value.
func (s *GetEnvironmentProfileOutput) SetProjectId(v string) *GetEnvironmentProfileOutput {
	s.ProjectId = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *GetEnvironmentProfileOutput) SetUpdatedAt(v time.Time) *GetEnvironmentProfileOutput {
	s.UpdatedAt = &v
	return s
}

// SetUserParameters sets the UserParameters field's value.
func (s *GetEnvironmentProfileOutput) SetUserParameters(v []*CustomParameter) *GetEnvironmentProfileOutput {
	s.UserParameters = v
	return s
}

type GetFormTypeInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ID of the Amazon DataZone domain in which this metadata form type exists.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the metadata form type.
	//
	// FormTypeIdentifier is a required field
	FormTypeIdentifier *string `location:"uri" locationName:"formTypeIdentifier" min:"1" type:"string" required:"true"`

	// The revision of this metadata form type.
	Revision *string `location:"querystring" locationName:"revision" 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 GetFormTypeInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFormTypeInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetFormTypeInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetFormTypeInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.FormTypeIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("FormTypeIdentifier"))
	}
	if s.FormTypeIdentifier != nil && len(*s.FormTypeIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FormTypeIdentifier", 1))
	}
	if s.Revision != nil && len(*s.Revision) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Revision", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *GetFormTypeInput) SetDomainIdentifier(v string) *GetFormTypeInput {
	s.DomainIdentifier = &v
	return s
}

// SetFormTypeIdentifier sets the FormTypeIdentifier field's value.
func (s *GetFormTypeInput) SetFormTypeIdentifier(v string) *GetFormTypeInput {
	s.FormTypeIdentifier = &v
	return s
}

// SetRevision sets the Revision field's value.
func (s *GetFormTypeInput) SetRevision(v string) *GetFormTypeInput {
	s.Revision = &v
	return s
}

type GetFormTypeOutput struct {
	_ struct{} `type:"structure"`

	// The timestamp of when this metadata form type was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`

	// The Amazon DataZone user who created this metadata form type.
	CreatedBy *string `locationName:"createdBy" type:"string"`

	// The description of the metadata form type.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetFormTypeOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain in which this metadata form type exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The imports of the metadata form type.
	Imports []*Import `locationName:"imports" min:"1" type:"list"`

	// The model of the metadata form type.
	//
	// Model is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetFormTypeOutput's
	// String and GoString methods.
	//
	// Model is a required field
	Model *Model `locationName:"model" type:"structure" required:"true" sensitive:"true"`

	// The name of the metadata form type.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetFormTypeOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The ID of the Amazon DataZone domain in which the metadata form type was
	// originally created.
	OriginDomainId *string `locationName:"originDomainId" type:"string"`

	// The ID of the project in which this metadata form type was originally created.
	OriginProjectId *string `locationName:"originProjectId" type:"string"`

	// The ID of the project that owns this metadata form type.
	OwningProjectId *string `locationName:"owningProjectId" type:"string"`

	// The revision of the metadata form type.
	//
	// Revision is a required field
	Revision *string `locationName:"revision" min:"1" type:"string" required:"true"`

	// The status of the metadata form type.
	Status *string `locationName:"status" type:"string" enum:"FormTypeStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFormTypeOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetFormTypeOutput) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *GetFormTypeOutput) SetCreatedAt(v time.Time) *GetFormTypeOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *GetFormTypeOutput) SetCreatedBy(v string) *GetFormTypeOutput {
	s.CreatedBy = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *GetFormTypeOutput) SetDescription(v string) *GetFormTypeOutput {
	s.Description = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *GetFormTypeOutput) SetDomainId(v string) *GetFormTypeOutput {
	s.DomainId = &v
	return s
}

// SetImports sets the Imports field's value.
func (s *GetFormTypeOutput) SetImports(v []*Import) *GetFormTypeOutput {
	s.Imports = v
	return s
}

// SetModel sets the Model field's value.
func (s *GetFormTypeOutput) SetModel(v *Model) *GetFormTypeOutput {
	s.Model = v
	return s
}

// SetName sets the Name field's value.
func (s *GetFormTypeOutput) SetName(v string) *GetFormTypeOutput {
	s.Name = &v
	return s
}

// SetOriginDomainId sets the OriginDomainId field's value.
func (s *GetFormTypeOutput) SetOriginDomainId(v string) *GetFormTypeOutput {
	s.OriginDomainId = &v
	return s
}

// SetOriginProjectId sets the OriginProjectId field's value.
func (s *GetFormTypeOutput) SetOriginProjectId(v string) *GetFormTypeOutput {
	s.OriginProjectId = &v
	return s
}

// SetOwningProjectId sets the OwningProjectId field's value.
func (s *GetFormTypeOutput) SetOwningProjectId(v string) *GetFormTypeOutput {
	s.OwningProjectId = &v
	return s
}

// SetRevision sets the Revision field's value.
func (s *GetFormTypeOutput) SetRevision(v string) *GetFormTypeOutput {
	s.Revision = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *GetFormTypeOutput) SetStatus(v string) *GetFormTypeOutput {
	s.Status = &v
	return s
}

type GetGlossaryInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ID of the Amazon DataZone domain in which this business glossary exists.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the business glossary.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 GetGlossaryInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetGlossaryInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetGlossaryInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetGlossaryInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *GetGlossaryInput) SetDomainIdentifier(v string) *GetGlossaryInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *GetGlossaryInput) SetIdentifier(v string) *GetGlossaryInput {
	s.Identifier = &v
	return s
}

type GetGlossaryOutput struct {
	_ struct{} `type:"structure"`

	// The timestamp of when this business glossary was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`

	// The Amazon DataZone user who created this business glossary.
	CreatedBy *string `locationName:"createdBy" type:"string"`

	// The description of the business glossary.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetGlossaryOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain in which this business glossary exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The ID of the business glossary.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The name of the business glossary.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetGlossaryOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The ID of the project that owns this business glossary.
	//
	// OwningProjectId is a required field
	OwningProjectId *string `locationName:"owningProjectId" type:"string" required:"true"`

	// The status of the business glossary.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"GlossaryStatus"`

	// The timestamp of when the business glossary was updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`

	// The Amazon DataZone user who updated the business glossary.
	UpdatedBy *string `locationName:"updatedBy" 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 GetGlossaryOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetGlossaryOutput) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *GetGlossaryOutput) SetCreatedAt(v time.Time) *GetGlossaryOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *GetGlossaryOutput) SetCreatedBy(v string) *GetGlossaryOutput {
	s.CreatedBy = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *GetGlossaryOutput) SetDescription(v string) *GetGlossaryOutput {
	s.Description = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *GetGlossaryOutput) SetDomainId(v string) *GetGlossaryOutput {
	s.DomainId = &v
	return s
}

// SetId sets the Id field's value.
func (s *GetGlossaryOutput) SetId(v string) *GetGlossaryOutput {
	s.Id = &v
	return s
}

// SetName sets the Name field's value.
func (s *GetGlossaryOutput) SetName(v string) *GetGlossaryOutput {
	s.Name = &v
	return s
}

// SetOwningProjectId sets the OwningProjectId field's value.
func (s *GetGlossaryOutput) SetOwningProjectId(v string) *GetGlossaryOutput {
	s.OwningProjectId = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *GetGlossaryOutput) SetStatus(v string) *GetGlossaryOutput {
	s.Status = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *GetGlossaryOutput) SetUpdatedAt(v time.Time) *GetGlossaryOutput {
	s.UpdatedAt = &v
	return s
}

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *GetGlossaryOutput) SetUpdatedBy(v string) *GetGlossaryOutput {
	s.UpdatedBy = &v
	return s
}

type GetGlossaryTermInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ID of the Amazon DataZone domain in which this business glossary term
	// exists.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the business glossary term.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 GetGlossaryTermInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetGlossaryTermInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetGlossaryTermInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetGlossaryTermInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *GetGlossaryTermInput) SetDomainIdentifier(v string) *GetGlossaryTermInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *GetGlossaryTermInput) SetIdentifier(v string) *GetGlossaryTermInput {
	s.Identifier = &v
	return s
}

type GetGlossaryTermOutput struct {
	_ struct{} `type:"structure"`

	// The timestamp of when the business glossary term was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`

	// The Amazon DataZone user who created the business glossary.
	CreatedBy *string `locationName:"createdBy" type:"string"`

	// The ID of the Amazon DataZone domain in which this business glossary term
	// exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The ID of the business glossary to which this term belongs.
	//
	// GlossaryId is a required field
	GlossaryId *string `locationName:"glossaryId" type:"string" required:"true"`

	// The ID of the business glossary term.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The long description of the business glossary term.
	//
	// LongDescription is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetGlossaryTermOutput's
	// String and GoString methods.
	LongDescription *string `locationName:"longDescription" type:"string" sensitive:"true"`

	// The name of the business glossary term.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetGlossaryTermOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The short decription of the business glossary term.
	//
	// ShortDescription is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetGlossaryTermOutput's
	// String and GoString methods.
	ShortDescription *string `locationName:"shortDescription" type:"string" sensitive:"true"`

	// The status of the business glossary term.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"GlossaryTermStatus"`

	// The relations of the business glossary term.
	TermRelations *TermRelations `locationName:"termRelations" type:"structure"`

	// The timestamp of when the business glossary term was updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`

	// The Amazon DataZone user who updated the business glossary term.
	UpdatedBy *string `locationName:"updatedBy" 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 GetGlossaryTermOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetGlossaryTermOutput) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *GetGlossaryTermOutput) SetCreatedAt(v time.Time) *GetGlossaryTermOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *GetGlossaryTermOutput) SetCreatedBy(v string) *GetGlossaryTermOutput {
	s.CreatedBy = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *GetGlossaryTermOutput) SetDomainId(v string) *GetGlossaryTermOutput {
	s.DomainId = &v
	return s
}

// SetGlossaryId sets the GlossaryId field's value.
func (s *GetGlossaryTermOutput) SetGlossaryId(v string) *GetGlossaryTermOutput {
	s.GlossaryId = &v
	return s
}

// SetId sets the Id field's value.
func (s *GetGlossaryTermOutput) SetId(v string) *GetGlossaryTermOutput {
	s.Id = &v
	return s
}

// SetLongDescription sets the LongDescription field's value.
func (s *GetGlossaryTermOutput) SetLongDescription(v string) *GetGlossaryTermOutput {
	s.LongDescription = &v
	return s
}

// SetName sets the Name field's value.
func (s *GetGlossaryTermOutput) SetName(v string) *GetGlossaryTermOutput {
	s.Name = &v
	return s
}

// SetShortDescription sets the ShortDescription field's value.
func (s *GetGlossaryTermOutput) SetShortDescription(v string) *GetGlossaryTermOutput {
	s.ShortDescription = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *GetGlossaryTermOutput) SetStatus(v string) *GetGlossaryTermOutput {
	s.Status = &v
	return s
}

// SetTermRelations sets the TermRelations field's value.
func (s *GetGlossaryTermOutput) SetTermRelations(v *TermRelations) *GetGlossaryTermOutput {
	s.TermRelations = v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *GetGlossaryTermOutput) SetUpdatedAt(v time.Time) *GetGlossaryTermOutput {
	s.UpdatedAt = &v
	return s
}

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *GetGlossaryTermOutput) SetUpdatedBy(v string) *GetGlossaryTermOutput {
	s.UpdatedBy = &v
	return s
}

type GetGroupProfileInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the Amazon DataZone domain in which the group profile exists.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the group profile.
	//
	// GroupIdentifier is a required field
	GroupIdentifier *string `location:"uri" locationName:"groupIdentifier" 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 GetGroupProfileInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetGroupProfileInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetGroupProfileInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetGroupProfileInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.GroupIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("GroupIdentifier"))
	}
	if s.GroupIdentifier != nil && len(*s.GroupIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("GroupIdentifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *GetGroupProfileInput) SetDomainIdentifier(v string) *GetGroupProfileInput {
	s.DomainIdentifier = &v
	return s
}

// SetGroupIdentifier sets the GroupIdentifier field's value.
func (s *GetGroupProfileInput) SetGroupIdentifier(v string) *GetGroupProfileInput {
	s.GroupIdentifier = &v
	return s
}

type GetGroupProfileOutput struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon DataZone domain in which the group profile exists.
	DomainId *string `locationName:"domainId" type:"string"`

	// The name of the group for which the specified group profile exists.
	//
	// GroupName is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetGroupProfileOutput's
	// String and GoString methods.
	GroupName *string `locationName:"groupName" min:"1" type:"string" sensitive:"true"`

	// The identifier of the group profile.
	Id *string `locationName:"id" type:"string"`

	// The identifier of the group profile.
	Status *string `locationName:"status" type:"string" enum:"GroupProfileStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetGroupProfileOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetGroupProfileOutput) GoString() string {
	return s.String()
}

// SetDomainId sets the DomainId field's value.
func (s *GetGroupProfileOutput) SetDomainId(v string) *GetGroupProfileOutput {
	s.DomainId = &v
	return s
}

// SetGroupName sets the GroupName field's value.
func (s *GetGroupProfileOutput) SetGroupName(v string) *GetGroupProfileOutput {
	s.GroupName = &v
	return s
}

// SetId sets the Id field's value.
func (s *GetGroupProfileOutput) SetId(v string) *GetGroupProfileOutput {
	s.Id = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *GetGroupProfileOutput) SetStatus(v string) *GetGroupProfileOutput {
	s.Status = &v
	return s
}

type GetIamPortalLoginUrlInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// the ID of the Amazon DataZone domain the data portal of which you want to
	// get.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" 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 GetIamPortalLoginUrlInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetIamPortalLoginUrlInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetIamPortalLoginUrlInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetIamPortalLoginUrlInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *GetIamPortalLoginUrlInput) SetDomainIdentifier(v string) *GetIamPortalLoginUrlInput {
	s.DomainIdentifier = &v
	return s
}

type GetIamPortalLoginUrlOutput struct {
	_ struct{} `type:"structure"`

	// The data portal URL of the specified Amazon DataZone domain.
	AuthCodeUrl *string `locationName:"authCodeUrl" type:"string"`

	// The ID of the user profile.
	//
	// UserProfileId is a required field
	UserProfileId *string `locationName:"userProfileId" 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 GetIamPortalLoginUrlOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetIamPortalLoginUrlOutput) GoString() string {
	return s.String()
}

// SetAuthCodeUrl sets the AuthCodeUrl field's value.
func (s *GetIamPortalLoginUrlOutput) SetAuthCodeUrl(v string) *GetIamPortalLoginUrlOutput {
	s.AuthCodeUrl = &v
	return s
}

// SetUserProfileId sets the UserProfileId field's value.
func (s *GetIamPortalLoginUrlOutput) SetUserProfileId(v string) *GetIamPortalLoginUrlOutput {
	s.UserProfileId = &v
	return s
}

type GetListingInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" type:"string" required:"true"`

	ListingRevision *string `location:"querystring" locationName:"listingRevision" 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 GetListingInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetListingInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetListingInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetListingInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}
	if s.ListingRevision != nil && len(*s.ListingRevision) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ListingRevision", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *GetListingInput) SetDomainIdentifier(v string) *GetListingInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *GetListingInput) SetIdentifier(v string) *GetListingInput {
	s.Identifier = &v
	return s
}

// SetListingRevision sets the ListingRevision field's value.
func (s *GetListingInput) SetListingRevision(v string) *GetListingInput {
	s.ListingRevision = &v
	return s
}

type GetListingOutput struct {
	_ struct{} `type:"structure"`

	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`

	// The Amazon DataZone user who created the listing.
	CreatedBy *string `locationName:"createdBy" type:"string"`

	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetListingOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The details of a listing (aka asset published in a Amazon DataZone catalog).
	Item *ListingItem `locationName:"item" type:"structure"`

	// ListingRevision is a required field
	ListingRevision *string `locationName:"listingRevision" min:"1" type:"string" required:"true"`

	Name *string `locationName:"name" min:"1" type:"string"`

	Status *string `locationName:"status" type:"string" enum:"ListingStatus"`

	// The timestamp of when the listing was updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`

	// The Amazon DataZone user who updated the listing.
	UpdatedBy *string `locationName:"updatedBy" 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 GetListingOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetListingOutput) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *GetListingOutput) SetCreatedAt(v time.Time) *GetListingOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *GetListingOutput) SetCreatedBy(v string) *GetListingOutput {
	s.CreatedBy = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *GetListingOutput) SetDescription(v string) *GetListingOutput {
	s.Description = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *GetListingOutput) SetDomainId(v string) *GetListingOutput {
	s.DomainId = &v
	return s
}

// SetId sets the Id field's value.
func (s *GetListingOutput) SetId(v string) *GetListingOutput {
	s.Id = &v
	return s
}

// SetItem sets the Item field's value.
func (s *GetListingOutput) SetItem(v *ListingItem) *GetListingOutput {
	s.Item = v
	return s
}

// SetListingRevision sets the ListingRevision field's value.
func (s *GetListingOutput) SetListingRevision(v string) *GetListingOutput {
	s.ListingRevision = &v
	return s
}

// SetName sets the Name field's value.
func (s *GetListingOutput) SetName(v string) *GetListingOutput {
	s.Name = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *GetListingOutput) SetStatus(v string) *GetListingOutput {
	s.Status = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *GetListingOutput) SetUpdatedAt(v time.Time) *GetListingOutput {
	s.UpdatedAt = &v
	return s
}

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *GetListingOutput) SetUpdatedBy(v string) *GetListingOutput {
	s.UpdatedBy = &v
	return s
}

type GetProjectInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ID of the Amazon DataZone domain in which the project exists.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the project.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 GetProjectInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetProjectInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetProjectInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetProjectInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *GetProjectInput) SetDomainIdentifier(v string) *GetProjectInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *GetProjectInput) SetIdentifier(v string) *GetProjectInput {
	s.Identifier = &v
	return s
}

type GetProjectOutput struct {
	_ struct{} `type:"structure"`

	// The timestamp of when the project was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The Amazon DataZone user who created the project.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The description of the project.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetProjectOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The ID of the Amazon DataZone domain in which the project exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// Reasons for failed project deletion
	FailureReasons []*ProjectDeletionError `locationName:"failureReasons" type:"list"`

	// The business glossary terms that can be used in the project.
	GlossaryTerms []*string `locationName:"glossaryTerms" min:"1" type:"list"`

	// >The ID of the project.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The timestamp of when the project was last updated.
	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp" timestampFormat:"iso8601"`

	// The name of the project.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetProjectOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// Status of the project
	ProjectStatus *string `locationName:"projectStatus" type:"string" enum:"ProjectStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetProjectOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetProjectOutput) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *GetProjectOutput) SetCreatedAt(v time.Time) *GetProjectOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *GetProjectOutput) SetCreatedBy(v string) *GetProjectOutput {
	s.CreatedBy = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *GetProjectOutput) SetDescription(v string) *GetProjectOutput {
	s.Description = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *GetProjectOutput) SetDomainId(v string) *GetProjectOutput {
	s.DomainId = &v
	return s
}

// SetFailureReasons sets the FailureReasons field's value.
func (s *GetProjectOutput) SetFailureReasons(v []*ProjectDeletionError) *GetProjectOutput {
	s.FailureReasons = v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *GetProjectOutput) SetGlossaryTerms(v []*string) *GetProjectOutput {
	s.GlossaryTerms = v
	return s
}

// SetId sets the Id field's value.
func (s *GetProjectOutput) SetId(v string) *GetProjectOutput {
	s.Id = &v
	return s
}

// SetLastUpdatedAt sets the LastUpdatedAt field's value.
func (s *GetProjectOutput) SetLastUpdatedAt(v time.Time) *GetProjectOutput {
	s.LastUpdatedAt = &v
	return s
}

// SetName sets the Name field's value.
func (s *GetProjectOutput) SetName(v string) *GetProjectOutput {
	s.Name = &v
	return s
}

// SetProjectStatus sets the ProjectStatus field's value.
func (s *GetProjectOutput) SetProjectStatus(v string) *GetProjectOutput {
	s.ProjectStatus = &v
	return s
}

type GetSubscriptionGrantInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ID of the Amazon DataZone domain in which the subscription grant exists.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the subscription grant.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 GetSubscriptionGrantInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSubscriptionGrantInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetSubscriptionGrantInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetSubscriptionGrantInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *GetSubscriptionGrantInput) SetDomainIdentifier(v string) *GetSubscriptionGrantInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *GetSubscriptionGrantInput) SetIdentifier(v string) *GetSubscriptionGrantInput {
	s.Identifier = &v
	return s
}

type GetSubscriptionGrantOutput struct {
	_ struct{} `type:"structure"`

	// The assets for which the subscription grant is created.
	Assets []*SubscribedAsset `locationName:"assets" type:"list"`

	// The timestamp of when the subscription grant is created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who created the subscription grant.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The ID of the Amazon DataZone domain in which the subscription grant exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The entity to which the subscription is granted.
	//
	// GrantedEntity is a required field
	GrantedEntity *GrantedEntity `locationName:"grantedEntity" type:"structure" required:"true"`

	// The ID of the subscription grant.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The status of the subscription grant.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"SubscriptionGrantOverallStatus"`

	// The identifier of the subscription.
	SubscriptionId *string `locationName:"subscriptionId" type:"string"`

	// The subscription target ID associated with the subscription grant.
	//
	// SubscriptionTargetId is a required field
	SubscriptionTargetId *string `locationName:"subscriptionTargetId" type:"string" required:"true"`

	// The timestamp of when the subscription grant was upated.
	//
	// UpdatedAt is a required field
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who updated the subscription grant.
	UpdatedBy *string `locationName:"updatedBy" 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 GetSubscriptionGrantOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSubscriptionGrantOutput) GoString() string {
	return s.String()
}

// SetAssets sets the Assets field's value.
func (s *GetSubscriptionGrantOutput) SetAssets(v []*SubscribedAsset) *GetSubscriptionGrantOutput {
	s.Assets = v
	return s
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *GetSubscriptionGrantOutput) SetCreatedAt(v time.Time) *GetSubscriptionGrantOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *GetSubscriptionGrantOutput) SetCreatedBy(v string) *GetSubscriptionGrantOutput {
	s.CreatedBy = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *GetSubscriptionGrantOutput) SetDomainId(v string) *GetSubscriptionGrantOutput {
	s.DomainId = &v
	return s
}

// SetGrantedEntity sets the GrantedEntity field's value.
func (s *GetSubscriptionGrantOutput) SetGrantedEntity(v *GrantedEntity) *GetSubscriptionGrantOutput {
	s.GrantedEntity = v
	return s
}

// SetId sets the Id field's value.
func (s *GetSubscriptionGrantOutput) SetId(v string) *GetSubscriptionGrantOutput {
	s.Id = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *GetSubscriptionGrantOutput) SetStatus(v string) *GetSubscriptionGrantOutput {
	s.Status = &v
	return s
}

// SetSubscriptionId sets the SubscriptionId field's value.
func (s *GetSubscriptionGrantOutput) SetSubscriptionId(v string) *GetSubscriptionGrantOutput {
	s.SubscriptionId = &v
	return s
}

// SetSubscriptionTargetId sets the SubscriptionTargetId field's value.
func (s *GetSubscriptionGrantOutput) SetSubscriptionTargetId(v string) *GetSubscriptionGrantOutput {
	s.SubscriptionTargetId = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *GetSubscriptionGrantOutput) SetUpdatedAt(v time.Time) *GetSubscriptionGrantOutput {
	s.UpdatedAt = &v
	return s
}

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *GetSubscriptionGrantOutput) SetUpdatedBy(v string) *GetSubscriptionGrantOutput {
	s.UpdatedBy = &v
	return s
}

type GetSubscriptionInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ID of the Amazon DataZone domain in which the subscription exists.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the subscription.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 GetSubscriptionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSubscriptionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetSubscriptionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetSubscriptionInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *GetSubscriptionInput) SetDomainIdentifier(v string) *GetSubscriptionInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *GetSubscriptionInput) SetIdentifier(v string) *GetSubscriptionInput {
	s.Identifier = &v
	return s
}

type GetSubscriptionOutput struct {
	_ struct{} `type:"structure"`

	// The timestamp of when the subscription was created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who created the subscription.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The ID of the Amazon DataZone domain in which the subscription exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The ID of the subscription.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The retain permissions of the subscription.
	RetainPermissions *bool `locationName:"retainPermissions" type:"boolean"`

	// The status of the subscription.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"SubscriptionStatus"`

	// The details of the published asset for which the subscription grant is created.
	//
	// SubscribedListing is a required field
	SubscribedListing *SubscribedListing `locationName:"subscribedListing" type:"structure" required:"true"`

	// The principal that owns the subscription.
	//
	// SubscribedPrincipal is a required field
	SubscribedPrincipal *SubscribedPrincipal `locationName:"subscribedPrincipal" type:"structure" required:"true"`

	// The ID of the subscription request.
	SubscriptionRequestId *string `locationName:"subscriptionRequestId" type:"string"`

	// The timestamp of when the subscription was updated.
	//
	// UpdatedAt is a required field
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who updated the subscription.
	UpdatedBy *string `locationName:"updatedBy" 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 GetSubscriptionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSubscriptionOutput) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *GetSubscriptionOutput) SetCreatedAt(v time.Time) *GetSubscriptionOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *GetSubscriptionOutput) SetCreatedBy(v string) *GetSubscriptionOutput {
	s.CreatedBy = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *GetSubscriptionOutput) SetDomainId(v string) *GetSubscriptionOutput {
	s.DomainId = &v
	return s
}

// SetId sets the Id field's value.
func (s *GetSubscriptionOutput) SetId(v string) *GetSubscriptionOutput {
	s.Id = &v
	return s
}

// SetRetainPermissions sets the RetainPermissions field's value.
func (s *GetSubscriptionOutput) SetRetainPermissions(v bool) *GetSubscriptionOutput {
	s.RetainPermissions = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *GetSubscriptionOutput) SetStatus(v string) *GetSubscriptionOutput {
	s.Status = &v
	return s
}

// SetSubscribedListing sets the SubscribedListing field's value.
func (s *GetSubscriptionOutput) SetSubscribedListing(v *SubscribedListing) *GetSubscriptionOutput {
	s.SubscribedListing = v
	return s
}

// SetSubscribedPrincipal sets the SubscribedPrincipal field's value.
func (s *GetSubscriptionOutput) SetSubscribedPrincipal(v *SubscribedPrincipal) *GetSubscriptionOutput {
	s.SubscribedPrincipal = v
	return s
}

// SetSubscriptionRequestId sets the SubscriptionRequestId field's value.
func (s *GetSubscriptionOutput) SetSubscriptionRequestId(v string) *GetSubscriptionOutput {
	s.SubscriptionRequestId = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *GetSubscriptionOutput) SetUpdatedAt(v time.Time) *GetSubscriptionOutput {
	s.UpdatedAt = &v
	return s
}

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *GetSubscriptionOutput) SetUpdatedBy(v string) *GetSubscriptionOutput {
	s.UpdatedBy = &v
	return s
}

type GetSubscriptionRequestDetailsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the Amazon DataZone domain in which to get the subscription
	// request details.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the subscription request the details of which to get.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 GetSubscriptionRequestDetailsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSubscriptionRequestDetailsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetSubscriptionRequestDetailsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetSubscriptionRequestDetailsInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *GetSubscriptionRequestDetailsInput) SetDomainIdentifier(v string) *GetSubscriptionRequestDetailsInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *GetSubscriptionRequestDetailsInput) SetIdentifier(v string) *GetSubscriptionRequestDetailsInput {
	s.Identifier = &v
	return s
}

type GetSubscriptionRequestDetailsOutput struct {
	_ struct{} `type:"structure"`

	// The timestamp of when the specified subscription request was created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who created the subscription request.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The decision comment of the subscription request.
	//
	// DecisionComment is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetSubscriptionRequestDetailsOutput's
	// String and GoString methods.
	DecisionComment *string `locationName:"decisionComment" min:"1" type:"string" sensitive:"true"`

	// The Amazon DataZone domain of the subscription request.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The identifier of the subscription request.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The reason for the subscription request.
	//
	// RequestReason is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetSubscriptionRequestDetailsOutput's
	// String and GoString methods.
	//
	// RequestReason is a required field
	RequestReason *string `locationName:"requestReason" min:"1" type:"string" required:"true" sensitive:"true"`

	// The identifier of the Amazon DataZone user who reviewed the subscription
	// request.
	ReviewerId *string `locationName:"reviewerId" type:"string"`

	// The status of the subscription request.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"SubscriptionRequestStatus"`

	// The subscribed listings in the subscription request.
	//
	// SubscribedListings is a required field
	SubscribedListings []*SubscribedListing `locationName:"subscribedListings" min:"1" type:"list" required:"true"`

	// The subscribed principals in the subscription request.
	//
	// SubscribedPrincipals is a required field
	SubscribedPrincipals []*SubscribedPrincipal `locationName:"subscribedPrincipals" min:"1" type:"list" required:"true"`

	// The timestamp of when the subscription request was updated.
	//
	// UpdatedAt is a required field
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who updated the subscription request.
	UpdatedBy *string `locationName:"updatedBy" 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 GetSubscriptionRequestDetailsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSubscriptionRequestDetailsOutput) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *GetSubscriptionRequestDetailsOutput) SetCreatedAt(v time.Time) *GetSubscriptionRequestDetailsOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *GetSubscriptionRequestDetailsOutput) SetCreatedBy(v string) *GetSubscriptionRequestDetailsOutput {
	s.CreatedBy = &v
	return s
}

// SetDecisionComment sets the DecisionComment field's value.
func (s *GetSubscriptionRequestDetailsOutput) SetDecisionComment(v string) *GetSubscriptionRequestDetailsOutput {
	s.DecisionComment = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *GetSubscriptionRequestDetailsOutput) SetDomainId(v string) *GetSubscriptionRequestDetailsOutput {
	s.DomainId = &v
	return s
}

// SetId sets the Id field's value.
func (s *GetSubscriptionRequestDetailsOutput) SetId(v string) *GetSubscriptionRequestDetailsOutput {
	s.Id = &v
	return s
}

// SetRequestReason sets the RequestReason field's value.
func (s *GetSubscriptionRequestDetailsOutput) SetRequestReason(v string) *GetSubscriptionRequestDetailsOutput {
	s.RequestReason = &v
	return s
}

// SetReviewerId sets the ReviewerId field's value.
func (s *GetSubscriptionRequestDetailsOutput) SetReviewerId(v string) *GetSubscriptionRequestDetailsOutput {
	s.ReviewerId = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *GetSubscriptionRequestDetailsOutput) SetStatus(v string) *GetSubscriptionRequestDetailsOutput {
	s.Status = &v
	return s
}

// SetSubscribedListings sets the SubscribedListings field's value.
func (s *GetSubscriptionRequestDetailsOutput) SetSubscribedListings(v []*SubscribedListing) *GetSubscriptionRequestDetailsOutput {
	s.SubscribedListings = v
	return s
}

// SetSubscribedPrincipals sets the SubscribedPrincipals field's value.
func (s *GetSubscriptionRequestDetailsOutput) SetSubscribedPrincipals(v []*SubscribedPrincipal) *GetSubscriptionRequestDetailsOutput {
	s.SubscribedPrincipals = v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *GetSubscriptionRequestDetailsOutput) SetUpdatedAt(v time.Time) *GetSubscriptionRequestDetailsOutput {
	s.UpdatedAt = &v
	return s
}

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *GetSubscriptionRequestDetailsOutput) SetUpdatedBy(v string) *GetSubscriptionRequestDetailsOutput {
	s.UpdatedBy = &v
	return s
}

type GetSubscriptionTargetInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ID of the Amazon DataZone domain in which the subscription target exists.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The ID of the environment associated with the subscription target.
	//
	// EnvironmentIdentifier is a required field
	EnvironmentIdentifier *string `location:"uri" locationName:"environmentIdentifier" type:"string" required:"true"`

	// The ID of the subscription target.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 GetSubscriptionTargetInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSubscriptionTargetInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetSubscriptionTargetInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetSubscriptionTargetInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.EnvironmentIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("EnvironmentIdentifier"))
	}
	if s.EnvironmentIdentifier != nil && len(*s.EnvironmentIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EnvironmentIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *GetSubscriptionTargetInput) SetDomainIdentifier(v string) *GetSubscriptionTargetInput {
	s.DomainIdentifier = &v
	return s
}

// SetEnvironmentIdentifier sets the EnvironmentIdentifier field's value.
func (s *GetSubscriptionTargetInput) SetEnvironmentIdentifier(v string) *GetSubscriptionTargetInput {
	s.EnvironmentIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *GetSubscriptionTargetInput) SetIdentifier(v string) *GetSubscriptionTargetInput {
	s.Identifier = &v
	return s
}

type GetSubscriptionTargetOutput struct {
	_ struct{} `type:"structure"`

	// The asset types associated with the subscription target.
	//
	// ApplicableAssetTypes is a required field
	ApplicableAssetTypes []*string `locationName:"applicableAssetTypes" type:"list" required:"true"`

	// The authorized principals of the subscription target.
	//
	// AuthorizedPrincipals is a required field
	AuthorizedPrincipals []*string `locationName:"authorizedPrincipals" min:"1" type:"list" required:"true"`

	// The timestamp of when the subscription target was created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who created the subscription target.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The ID of the Amazon DataZone domain in which the subscription target exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The ID of the environment associated with the subscription target.
	//
	// EnvironmentId is a required field
	EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"`

	// The ID of the subscription target.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The manage access role with which the subscription target was created.
	//
	// ManageAccessRole is a required field
	ManageAccessRole *string `locationName:"manageAccessRole" type:"string" required:"true"`

	// The name of the subscription target.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GetSubscriptionTargetOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The ID of the project associated with the subscription target.
	//
	// ProjectId is a required field
	ProjectId *string `locationName:"projectId" type:"string" required:"true"`

	// The provider of the subscription target.
	//
	// Provider is a required field
	Provider *string `locationName:"provider" type:"string" required:"true"`

	// The configuration of teh subscription target.
	//
	// SubscriptionTargetConfig is a required field
	SubscriptionTargetConfig []*SubscriptionTargetForm `locationName:"subscriptionTargetConfig" type:"list" required:"true"`

	// The type of the subscription target.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true"`

	// The timestamp of when the subscription target was updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`

	// The Amazon DataZone user who updated the subscription target.
	UpdatedBy *string `locationName:"updatedBy" 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 GetSubscriptionTargetOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetSubscriptionTargetOutput) GoString() string {
	return s.String()
}

// SetApplicableAssetTypes sets the ApplicableAssetTypes field's value.
func (s *GetSubscriptionTargetOutput) SetApplicableAssetTypes(v []*string) *GetSubscriptionTargetOutput {
	s.ApplicableAssetTypes = v
	return s
}

// SetAuthorizedPrincipals sets the AuthorizedPrincipals field's value.
func (s *GetSubscriptionTargetOutput) SetAuthorizedPrincipals(v []*string) *GetSubscriptionTargetOutput {
	s.AuthorizedPrincipals = v
	return s
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *GetSubscriptionTargetOutput) SetCreatedAt(v time.Time) *GetSubscriptionTargetOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *GetSubscriptionTargetOutput) SetCreatedBy(v string) *GetSubscriptionTargetOutput {
	s.CreatedBy = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *GetSubscriptionTargetOutput) SetDomainId(v string) *GetSubscriptionTargetOutput {
	s.DomainId = &v
	return s
}

// SetEnvironmentId sets the EnvironmentId field's value.
func (s *GetSubscriptionTargetOutput) SetEnvironmentId(v string) *GetSubscriptionTargetOutput {
	s.EnvironmentId = &v
	return s
}

// SetId sets the Id field's value.
func (s *GetSubscriptionTargetOutput) SetId(v string) *GetSubscriptionTargetOutput {
	s.Id = &v
	return s
}

// SetManageAccessRole sets the ManageAccessRole field's value.
func (s *GetSubscriptionTargetOutput) SetManageAccessRole(v string) *GetSubscriptionTargetOutput {
	s.ManageAccessRole = &v
	return s
}

// SetName sets the Name field's value.
func (s *GetSubscriptionTargetOutput) SetName(v string) *GetSubscriptionTargetOutput {
	s.Name = &v
	return s
}

// SetProjectId sets the ProjectId field's value.
func (s *GetSubscriptionTargetOutput) SetProjectId(v string) *GetSubscriptionTargetOutput {
	s.ProjectId = &v
	return s
}

// SetProvider sets the Provider field's value.
func (s *GetSubscriptionTargetOutput) SetProvider(v string) *GetSubscriptionTargetOutput {
	s.Provider = &v
	return s
}

// SetSubscriptionTargetConfig sets the SubscriptionTargetConfig field's value.
func (s *GetSubscriptionTargetOutput) SetSubscriptionTargetConfig(v []*SubscriptionTargetForm) *GetSubscriptionTargetOutput {
	s.SubscriptionTargetConfig = v
	return s
}

// SetType sets the Type field's value.
func (s *GetSubscriptionTargetOutput) SetType(v string) *GetSubscriptionTargetOutput {
	s.Type = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *GetSubscriptionTargetOutput) SetUpdatedAt(v time.Time) *GetSubscriptionTargetOutput {
	s.UpdatedAt = &v
	return s
}

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *GetSubscriptionTargetOutput) SetUpdatedBy(v string) *GetSubscriptionTargetOutput {
	s.UpdatedBy = &v
	return s
}

type GetUserProfileInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// the ID of the Amazon DataZone domain the data portal of which you want to
	// get.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The type of the user profile.
	Type *string `location:"querystring" locationName:"type" type:"string" enum:"UserProfileType"`

	// The identifier of the user for which you want to get the user profile.
	//
	// UserIdentifier is a required field
	UserIdentifier *string `location:"uri" locationName:"userIdentifier" 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 GetUserProfileInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetUserProfileInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetUserProfileInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetUserProfileInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.UserIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("UserIdentifier"))
	}
	if s.UserIdentifier != nil && len(*s.UserIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UserIdentifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *GetUserProfileInput) SetDomainIdentifier(v string) *GetUserProfileInput {
	s.DomainIdentifier = &v
	return s
}

// SetType sets the Type field's value.
func (s *GetUserProfileInput) SetType(v string) *GetUserProfileInput {
	s.Type = &v
	return s
}

// SetUserIdentifier sets the UserIdentifier field's value.
func (s *GetUserProfileInput) SetUserIdentifier(v string) *GetUserProfileInput {
	s.UserIdentifier = &v
	return s
}

type GetUserProfileOutput struct {
	_ struct{} `type:"structure"`

	// The details of the user profile in Amazon DataZone.
	Details *UserProfileDetails `locationName:"details" type:"structure"`

	// the identifier of the Amazon DataZone domain of which you want to get the
	// user profile.
	DomainId *string `locationName:"domainId" type:"string"`

	// The identifier of the user profile.
	Id *string `locationName:"id" type:"string"`

	// The status of the user profile.
	Status *string `locationName:"status" type:"string" enum:"UserProfileStatus"`

	// The type of the user profile.
	Type *string `locationName:"type" type:"string" enum:"UserProfileType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetUserProfileOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GetUserProfileOutput) GoString() string {
	return s.String()
}

// SetDetails sets the Details field's value.
func (s *GetUserProfileOutput) SetDetails(v *UserProfileDetails) *GetUserProfileOutput {
	s.Details = v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *GetUserProfileOutput) SetDomainId(v string) *GetUserProfileOutput {
	s.DomainId = &v
	return s
}

// SetId sets the Id field's value.
func (s *GetUserProfileOutput) SetId(v string) *GetUserProfileOutput {
	s.Id = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *GetUserProfileOutput) SetStatus(v string) *GetUserProfileOutput {
	s.Status = &v
	return s
}

// SetType sets the Type field's value.
func (s *GetUserProfileOutput) SetType(v string) *GetUserProfileOutput {
	s.Type = &v
	return s
}

// The details of a business glossary.
type GlossaryItem struct {
	_ struct{} `type:"structure"`

	// The timestamp of when the glossary was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`

	// The Amazon DataZone user who created the glossary.
	CreatedBy *string `locationName:"createdBy" type:"string"`

	// The business glossary description.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GlossaryItem's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The identifier of the Amazon DataZone domain in which the business glossary
	// exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The identifier of the glossary.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The name of the glossary.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GlossaryItem's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The identifier of the project that owns the business glosary.
	//
	// OwningProjectId is a required field
	OwningProjectId *string `locationName:"owningProjectId" type:"string" required:"true"`

	// The business glossary status.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"GlossaryStatus"`

	// The timestamp of when the business glossary was updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`

	// The Amazon DataZone user who updated the business glossary.
	UpdatedBy *string `locationName:"updatedBy" 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 GlossaryItem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GlossaryItem) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *GlossaryItem) SetCreatedAt(v time.Time) *GlossaryItem {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *GlossaryItem) SetCreatedBy(v string) *GlossaryItem {
	s.CreatedBy = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *GlossaryItem) SetDescription(v string) *GlossaryItem {
	s.Description = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *GlossaryItem) SetDomainId(v string) *GlossaryItem {
	s.DomainId = &v
	return s
}

// SetId sets the Id field's value.
func (s *GlossaryItem) SetId(v string) *GlossaryItem {
	s.Id = &v
	return s
}

// SetName sets the Name field's value.
func (s *GlossaryItem) SetName(v string) *GlossaryItem {
	s.Name = &v
	return s
}

// SetOwningProjectId sets the OwningProjectId field's value.
func (s *GlossaryItem) SetOwningProjectId(v string) *GlossaryItem {
	s.OwningProjectId = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *GlossaryItem) SetStatus(v string) *GlossaryItem {
	s.Status = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *GlossaryItem) SetUpdatedAt(v time.Time) *GlossaryItem {
	s.UpdatedAt = &v
	return s
}

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *GlossaryItem) SetUpdatedBy(v string) *GlossaryItem {
	s.UpdatedBy = &v
	return s
}

// The details of a business glossary term.
type GlossaryTermItem struct {
	_ struct{} `type:"structure"`

	// The timestamp of when a business glossary term was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`

	// The Amazon DataZone user who created the business glossary.
	CreatedBy *string `locationName:"createdBy" type:"string"`

	// The identifier of the Amazon DataZone domain in which the business glossary
	// exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The identifier of the business glossary to which the term belongs.
	//
	// GlossaryId is a required field
	GlossaryId *string `locationName:"glossaryId" type:"string" required:"true"`

	// The identifier of the business glossary term.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The long description of the business glossary term.
	//
	// LongDescription is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GlossaryTermItem's
	// String and GoString methods.
	LongDescription *string `locationName:"longDescription" type:"string" sensitive:"true"`

	// The name of the business glossary term.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GlossaryTermItem's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The short description of the business glossary term.
	//
	// ShortDescription is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GlossaryTermItem's
	// String and GoString methods.
	ShortDescription *string `locationName:"shortDescription" type:"string" sensitive:"true"`

	// The status of the business glossary term.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"GlossaryTermStatus"`

	// The relations of the business glossary term.
	TermRelations *TermRelations `locationName:"termRelations" type:"structure"`

	// The timestamp of when a business glossary term was updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`

	// The Amazon DataZone user who updated the business glossary term.
	UpdatedBy *string `locationName:"updatedBy" 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 GlossaryTermItem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GlossaryTermItem) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *GlossaryTermItem) SetCreatedAt(v time.Time) *GlossaryTermItem {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *GlossaryTermItem) SetCreatedBy(v string) *GlossaryTermItem {
	s.CreatedBy = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *GlossaryTermItem) SetDomainId(v string) *GlossaryTermItem {
	s.DomainId = &v
	return s
}

// SetGlossaryId sets the GlossaryId field's value.
func (s *GlossaryTermItem) SetGlossaryId(v string) *GlossaryTermItem {
	s.GlossaryId = &v
	return s
}

// SetId sets the Id field's value.
func (s *GlossaryTermItem) SetId(v string) *GlossaryTermItem {
	s.Id = &v
	return s
}

// SetLongDescription sets the LongDescription field's value.
func (s *GlossaryTermItem) SetLongDescription(v string) *GlossaryTermItem {
	s.LongDescription = &v
	return s
}

// SetName sets the Name field's value.
func (s *GlossaryTermItem) SetName(v string) *GlossaryTermItem {
	s.Name = &v
	return s
}

// SetShortDescription sets the ShortDescription field's value.
func (s *GlossaryTermItem) SetShortDescription(v string) *GlossaryTermItem {
	s.ShortDescription = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *GlossaryTermItem) SetStatus(v string) *GlossaryTermItem {
	s.Status = &v
	return s
}

// SetTermRelations sets the TermRelations field's value.
func (s *GlossaryTermItem) SetTermRelations(v *TermRelations) *GlossaryTermItem {
	s.TermRelations = v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *GlossaryTermItem) SetUpdatedAt(v time.Time) *GlossaryTermItem {
	s.UpdatedAt = &v
	return s
}

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *GlossaryTermItem) SetUpdatedBy(v string) *GlossaryTermItem {
	s.UpdatedBy = &v
	return s
}

// The configuration details of the Amazon Web Services Glue data source.
type GlueRunConfigurationInput_ struct {
	_ struct{} `type:"structure"`

	// The data access role included in the configuration details of the Amazon
	// Web Services Glue data source.
	DataAccessRole *string `locationName:"dataAccessRole" type:"string"`

	// The relational filter configurations included in the configuration details
	// of the Amazon Web Services Glue data source.
	//
	// RelationalFilterConfigurations is a required field
	RelationalFilterConfigurations []*RelationalFilterConfiguration `locationName:"relationalFilterConfigurations" 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 GlueRunConfigurationInput_) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GlueRunConfigurationInput_) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GlueRunConfigurationInput_) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GlueRunConfigurationInput_"}
	if s.RelationalFilterConfigurations == nil {
		invalidParams.Add(request.NewErrParamRequired("RelationalFilterConfigurations"))
	}
	if s.RelationalFilterConfigurations != nil {
		for i, v := range s.RelationalFilterConfigurations {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RelationalFilterConfigurations", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDataAccessRole sets the DataAccessRole field's value.
func (s *GlueRunConfigurationInput_) SetDataAccessRole(v string) *GlueRunConfigurationInput_ {
	s.DataAccessRole = &v
	return s
}

// SetRelationalFilterConfigurations sets the RelationalFilterConfigurations field's value.
func (s *GlueRunConfigurationInput_) SetRelationalFilterConfigurations(v []*RelationalFilterConfiguration) *GlueRunConfigurationInput_ {
	s.RelationalFilterConfigurations = v
	return s
}

// The configuration details of the Amazon Web Services Glue data source.
type GlueRunConfigurationOutput_ struct {
	_ struct{} `type:"structure"`

	// The Amazon Web Services account ID included in the configuration details
	// of the Amazon Web Services Glue data source.
	AccountId *string `locationName:"accountId" min:"12" type:"string"`

	// The data access role included in the configuration details of the Amazon
	// Web Services Glue data source.
	DataAccessRole *string `locationName:"dataAccessRole" type:"string"`

	// The Amazon Web Services region included in the configuration details of the
	// Amazon Web Services Glue data source.
	Region *string `locationName:"region" min:"4" type:"string"`

	// The relational filter configurations included in the configuration details
	// of the Amazon Web Services Glue data source.
	//
	// RelationalFilterConfigurations is a required field
	RelationalFilterConfigurations []*RelationalFilterConfiguration `locationName:"relationalFilterConfigurations" 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 GlueRunConfigurationOutput_) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GlueRunConfigurationOutput_) GoString() string {
	return s.String()
}

// SetAccountId sets the AccountId field's value.
func (s *GlueRunConfigurationOutput_) SetAccountId(v string) *GlueRunConfigurationOutput_ {
	s.AccountId = &v
	return s
}

// SetDataAccessRole sets the DataAccessRole field's value.
func (s *GlueRunConfigurationOutput_) SetDataAccessRole(v string) *GlueRunConfigurationOutput_ {
	s.DataAccessRole = &v
	return s
}

// SetRegion sets the Region field's value.
func (s *GlueRunConfigurationOutput_) SetRegion(v string) *GlueRunConfigurationOutput_ {
	s.Region = &v
	return s
}

// SetRelationalFilterConfigurations sets the RelationalFilterConfigurations field's value.
func (s *GlueRunConfigurationOutput_) SetRelationalFilterConfigurations(v []*RelationalFilterConfiguration) *GlueRunConfigurationOutput_ {
	s.RelationalFilterConfigurations = v
	return s
}

// The details of a listing for which a subscription is granted.
type GrantedEntity struct {
	_ struct{} `type:"structure"`

	// The listing for which a subscription is granted.
	Listing *ListingRevision `locationName:"listing" 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 GrantedEntity) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GrantedEntity) GoString() string {
	return s.String()
}

// SetListing sets the Listing field's value.
func (s *GrantedEntity) SetListing(v *ListingRevision) *GrantedEntity {
	s.Listing = v
	return s
}

// The details of a listing for which a subscription is to be granted.
type GrantedEntityInput_ struct {
	_ struct{} `type:"structure"`

	// The listing for which a subscription is to be granted.
	Listing *ListingRevisionInput_ `locationName:"listing" 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 GrantedEntityInput_) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GrantedEntityInput_) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *GrantedEntityInput_) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GrantedEntityInput_"}
	if s.Listing != nil {
		if err := s.Listing.Validate(); err != nil {
			invalidParams.AddNested("Listing", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetListing sets the Listing field's value.
func (s *GrantedEntityInput_) SetListing(v *ListingRevisionInput_) *GrantedEntityInput_ {
	s.Listing = v
	return s
}

// The details of a group in Amazon DataZone.
type GroupDetails struct {
	_ struct{} `type:"structure"`

	// The identifier of the group in Amazon DataZone.
	//
	// GroupId is a required field
	GroupId *string `locationName:"groupId" 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 GroupDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GroupDetails) GoString() string {
	return s.String()
}

// SetGroupId sets the GroupId field's value.
func (s *GroupDetails) SetGroupId(v string) *GroupDetails {
	s.GroupId = &v
	return s
}

// The details of a group profile.
type GroupProfileSummary struct {
	_ struct{} `type:"structure"`

	// The ID of the Amazon DataZone domain of a group profile.
	DomainId *string `locationName:"domainId" type:"string"`

	// The group name of a group profile.
	//
	// GroupName is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by GroupProfileSummary's
	// String and GoString methods.
	GroupName *string `locationName:"groupName" min:"1" type:"string" sensitive:"true"`

	// The ID of a group profile.
	Id *string `locationName:"id" type:"string"`

	// The status of a group profile.
	Status *string `locationName:"status" type:"string" enum:"GroupProfileStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GroupProfileSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s GroupProfileSummary) GoString() string {
	return s.String()
}

// SetDomainId sets the DomainId field's value.
func (s *GroupProfileSummary) SetDomainId(v string) *GroupProfileSummary {
	s.DomainId = &v
	return s
}

// SetGroupName sets the GroupName field's value.
func (s *GroupProfileSummary) SetGroupName(v string) *GroupProfileSummary {
	s.GroupName = &v
	return s
}

// SetId sets the Id field's value.
func (s *GroupProfileSummary) SetId(v string) *GroupProfileSummary {
	s.Id = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *GroupProfileSummary) SetStatus(v string) *GroupProfileSummary {
	s.Status = &v
	return s
}

// The details of an IAM user profile in Amazon DataZone.
type IamUserProfileDetails struct {
	_ struct{} `type:"structure"`

	// The ARN of an IAM user profile in Amazon DataZone.
	Arn *string `locationName:"arn" 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 IamUserProfileDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s IamUserProfileDetails) GoString() string {
	return s.String()
}

// SetArn sets the Arn field's value.
func (s *IamUserProfileDetails) SetArn(v string) *IamUserProfileDetails {
	s.Arn = &v
	return s
}

// The details of the import of the metadata form type.
type Import struct {
	_ struct{} `type:"structure"`

	// The name of the import.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by Import's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The revision of the import.
	//
	// Revision is a required field
	Revision *string `locationName:"revision" 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 Import) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Import) GoString() string {
	return s.String()
}

// SetName sets the Name field's value.
func (s *Import) SetName(v string) *Import {
	s.Name = &v
	return s
}

// SetRevision sets the Revision field's value.
func (s *Import) SetRevision(v string) *Import {
	s.Revision = &v
	return s
}

// The request has failed because of an unknown error, exception or failure.
type InternalServerException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

	Message_ *string `locationName:"message" type:"string"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InternalServerException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s InternalServerException) GoString() string {
	return s.String()
}

func newErrorInternalServerException(v protocol.ResponseMetadata) error {
	return &InternalServerException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *InternalServerException) Code() string {
	return "InternalServerException"
}

// Message returns the exception's message.
func (s *InternalServerException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *InternalServerException) OrigErr() error {
	return nil
}

func (s *InternalServerException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *InternalServerException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *InternalServerException) RequestID() string {
	return s.RespMetadata.RequestID
}

type ListAssetRevisionsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the domain.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the asset.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" type:"string" required:"true"`

	// The maximum number of revisions to return in a single call to ListAssetRevisions.
	// When the number of revisions to be listed is greater than the value of MaxResults,
	// the response contains a NextToken value that you can use in a subsequent
	// call to ListAssetRevisions to list the next set of revisions.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// When the number of revisions is greater than the default value for the MaxResults
	// parameter, or if you explicitly specify a value for MaxResults that is less
	// than the number of revisions, the response includes a pagination token named
	// NextToken. You can specify this NextToken value in a subsequent call to ListAssetRevisions
	// to list the next set of revisions.
	NextToken *string `location:"querystring" locationName:"nextToken" 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 ListAssetRevisionsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAssetRevisionsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListAssetRevisionsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListAssetRevisionsInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *ListAssetRevisionsInput) SetDomainIdentifier(v string) *ListAssetRevisionsInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *ListAssetRevisionsInput) SetIdentifier(v string) *ListAssetRevisionsInput {
	s.Identifier = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListAssetRevisionsInput) SetMaxResults(v int64) *ListAssetRevisionsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAssetRevisionsInput) SetNextToken(v string) *ListAssetRevisionsInput {
	s.NextToken = &v
	return s
}

type ListAssetRevisionsOutput struct {
	_ struct{} `type:"structure"`

	// The results of the ListAssetRevisions action.
	Items []*AssetRevision `locationName:"items" type:"list"`

	// When the number of revisions is greater than the default value for the MaxResults
	// parameter, or if you explicitly specify a value for MaxResults that is less
	// than the number of revisions, the response includes a pagination token named
	// NextToken. You can specify this NextToken value in a subsequent call to ListAssetRevisions
	// to list the next set of revisions.
	NextToken *string `locationName:"nextToken" 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 ListAssetRevisionsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListAssetRevisionsOutput) GoString() string {
	return s.String()
}

// SetItems sets the Items field's value.
func (s *ListAssetRevisionsOutput) SetItems(v []*AssetRevision) *ListAssetRevisionsOutput {
	s.Items = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListAssetRevisionsOutput) SetNextToken(v string) *ListAssetRevisionsOutput {
	s.NextToken = &v
	return s
}

type ListDataSourceRunActivitiesInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the Amazon DataZone domain in which to list data source
	// run activities.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the data source run.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" type:"string" required:"true"`

	// The maximum number of activities to return in a single call to ListDataSourceRunActivities.
	// When the number of activities to be listed is greater than the value of MaxResults,
	// the response contains a NextToken value that you can use in a subsequent
	// call to ListDataSourceRunActivities to list the next set of activities.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// When the number of activities is greater than the default value for the MaxResults
	// parameter, or if you explicitly specify a value for MaxResults that is less
	// than the number of activities, the response includes a pagination token named
	// NextToken. You can specify this NextToken value in a subsequent call to ListDataSourceRunActivities
	// to list the next set of activities.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// The status of the data source run.
	Status *string `location:"querystring" locationName:"status" type:"string" enum:"DataAssetActivityStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDataSourceRunActivitiesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDataSourceRunActivitiesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListDataSourceRunActivitiesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListDataSourceRunActivitiesInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *ListDataSourceRunActivitiesInput) SetDomainIdentifier(v string) *ListDataSourceRunActivitiesInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *ListDataSourceRunActivitiesInput) SetIdentifier(v string) *ListDataSourceRunActivitiesInput {
	s.Identifier = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListDataSourceRunActivitiesInput) SetMaxResults(v int64) *ListDataSourceRunActivitiesInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListDataSourceRunActivitiesInput) SetNextToken(v string) *ListDataSourceRunActivitiesInput {
	s.NextToken = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ListDataSourceRunActivitiesInput) SetStatus(v string) *ListDataSourceRunActivitiesInput {
	s.Status = &v
	return s
}

type ListDataSourceRunActivitiesOutput struct {
	_ struct{} `type:"structure"`

	// The results of the ListDataSourceRunActivities action.
	//
	// Items is a required field
	Items []*DataSourceRunActivity `locationName:"items" type:"list" required:"true"`

	// When the number of activities is greater than the default value for the MaxResults
	// parameter, or if you explicitly specify a value for MaxResults that is less
	// than the number of activities, the response includes a pagination token named
	// NextToken. You can specify this NextToken value in a subsequent call to ListDataSourceRunActivities
	// to list the next set of activities.
	NextToken *string `locationName:"nextToken" 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 ListDataSourceRunActivitiesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDataSourceRunActivitiesOutput) GoString() string {
	return s.String()
}

// SetItems sets the Items field's value.
func (s *ListDataSourceRunActivitiesOutput) SetItems(v []*DataSourceRunActivity) *ListDataSourceRunActivitiesOutput {
	s.Items = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListDataSourceRunActivitiesOutput) SetNextToken(v string) *ListDataSourceRunActivitiesOutput {
	s.NextToken = &v
	return s
}

type ListDataSourceRunsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the data source.
	//
	// DataSourceIdentifier is a required field
	DataSourceIdentifier *string `location:"uri" locationName:"dataSourceIdentifier" type:"string" required:"true"`

	// The identifier of the Amazon DataZone domain in which to invoke the ListDataSourceRuns
	// action.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The maximum number of runs to return in a single call to ListDataSourceRuns.
	// When the number of runs to be listed is greater than the value of MaxResults,
	// the response contains a NextToken value that you can use in a subsequent
	// call to ListDataSourceRuns to list the next set of runs.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// When the number of runs is greater than the default value for the MaxResults
	// parameter, or if you explicitly specify a value for MaxResults that is less
	// than the number of runs, the response includes a pagination token named NextToken.
	// You can specify this NextToken value in a subsequent call to ListDataSourceRuns
	// to list the next set of runs.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// The status of the data source.
	Status *string `location:"querystring" locationName:"status" type:"string" enum:"DataSourceRunStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDataSourceRunsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDataSourceRunsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListDataSourceRunsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListDataSourceRunsInput"}
	if s.DataSourceIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DataSourceIdentifier"))
	}
	if s.DataSourceIdentifier != nil && len(*s.DataSourceIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DataSourceIdentifier", 1))
	}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDataSourceIdentifier sets the DataSourceIdentifier field's value.
func (s *ListDataSourceRunsInput) SetDataSourceIdentifier(v string) *ListDataSourceRunsInput {
	s.DataSourceIdentifier = &v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *ListDataSourceRunsInput) SetDomainIdentifier(v string) *ListDataSourceRunsInput {
	s.DomainIdentifier = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListDataSourceRunsInput) SetMaxResults(v int64) *ListDataSourceRunsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListDataSourceRunsInput) SetNextToken(v string) *ListDataSourceRunsInput {
	s.NextToken = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ListDataSourceRunsInput) SetStatus(v string) *ListDataSourceRunsInput {
	s.Status = &v
	return s
}

type ListDataSourceRunsOutput struct {
	_ struct{} `type:"structure"`

	// The results of the ListDataSourceRuns action.
	//
	// Items is a required field
	Items []*DataSourceRunSummary `locationName:"items" type:"list" required:"true"`

	// When the number of runs is greater than the default value for the MaxResults
	// parameter, or if you explicitly specify a value for MaxResults that is less
	// than the number of runs, the response includes a pagination token named NextToken.
	// You can specify this NextToken value in a subsequent call to ListDataSourceRuns
	// to list the next set of runs.
	NextToken *string `locationName:"nextToken" 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 ListDataSourceRunsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDataSourceRunsOutput) GoString() string {
	return s.String()
}

// SetItems sets the Items field's value.
func (s *ListDataSourceRunsOutput) SetItems(v []*DataSourceRunSummary) *ListDataSourceRunsOutput {
	s.Items = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListDataSourceRunsOutput) SetNextToken(v string) *ListDataSourceRunsOutput {
	s.NextToken = &v
	return s
}

type ListDataSourcesInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the Amazon DataZone domain in which to list the data sources.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the environment in which to list the data sources.
	EnvironmentIdentifier *string `location:"querystring" locationName:"environmentIdentifier" type:"string"`

	// The maximum number of data sources to return in a single call to ListDataSources.
	// When the number of data sources to be listed is greater than the value of
	// MaxResults, the response contains a NextToken value that you can use in a
	// subsequent call to ListDataSources to list the next set of data sources.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// The name of the data source.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListDataSourcesInput's
	// String and GoString methods.
	Name *string `location:"querystring" locationName:"name" min:"1" type:"string" sensitive:"true"`

	// When the number of data sources is greater than the default value for the
	// MaxResults parameter, or if you explicitly specify a value for MaxResults
	// that is less than the number of data sources, the response includes a pagination
	// token named NextToken. You can specify this NextToken value in a subsequent
	// call to ListDataSources to list the next set of data sources.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// The identifier of the project in which to list data sources.
	//
	// ProjectIdentifier is a required field
	ProjectIdentifier *string `location:"querystring" locationName:"projectIdentifier" type:"string" required:"true"`

	// The status of the data source.
	Status *string `location:"querystring" locationName:"status" type:"string" enum:"DataSourceStatus"`

	// The type of the data source.
	Type *string `location:"querystring" locationName:"type" 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 ListDataSourcesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDataSourcesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListDataSourcesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListDataSourcesInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}
	if s.ProjectIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("ProjectIdentifier"))
	}
	if s.Type != nil && len(*s.Type) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Type", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *ListDataSourcesInput) SetDomainIdentifier(v string) *ListDataSourcesInput {
	s.DomainIdentifier = &v
	return s
}

// SetEnvironmentIdentifier sets the EnvironmentIdentifier field's value.
func (s *ListDataSourcesInput) SetEnvironmentIdentifier(v string) *ListDataSourcesInput {
	s.EnvironmentIdentifier = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListDataSourcesInput) SetMaxResults(v int64) *ListDataSourcesInput {
	s.MaxResults = &v
	return s
}

// SetName sets the Name field's value.
func (s *ListDataSourcesInput) SetName(v string) *ListDataSourcesInput {
	s.Name = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListDataSourcesInput) SetNextToken(v string) *ListDataSourcesInput {
	s.NextToken = &v
	return s
}

// SetProjectIdentifier sets the ProjectIdentifier field's value.
func (s *ListDataSourcesInput) SetProjectIdentifier(v string) *ListDataSourcesInput {
	s.ProjectIdentifier = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ListDataSourcesInput) SetStatus(v string) *ListDataSourcesInput {
	s.Status = &v
	return s
}

// SetType sets the Type field's value.
func (s *ListDataSourcesInput) SetType(v string) *ListDataSourcesInput {
	s.Type = &v
	return s
}

type ListDataSourcesOutput struct {
	_ struct{} `type:"structure"`

	// The results of the ListDataSources action.
	//
	// Items is a required field
	Items []*DataSourceSummary `locationName:"items" type:"list" required:"true"`

	// When the number of data sources is greater than the default value for the
	// MaxResults parameter, or if you explicitly specify a value for MaxResults
	// that is less than the number of data sources, the response includes a pagination
	// token named NextToken. You can specify this NextToken value in a subsequent
	// call to ListDataSources to list the next set of data sources.
	NextToken *string `locationName:"nextToken" 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 ListDataSourcesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDataSourcesOutput) GoString() string {
	return s.String()
}

// SetItems sets the Items field's value.
func (s *ListDataSourcesOutput) SetItems(v []*DataSourceSummary) *ListDataSourcesOutput {
	s.Items = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListDataSourcesOutput) SetNextToken(v string) *ListDataSourcesOutput {
	s.NextToken = &v
	return s
}

type ListDomainsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The maximum number of domains to return in a single call to ListDomains.
	// When the number of domains to be listed is greater than the value of MaxResults,
	// the response contains a NextToken value that you can use in a subsequent
	// call to ListDomains to list the next set of domains.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// When the number of domains is greater than the default value for the MaxResults
	// parameter, or if you explicitly specify a value for MaxResults that is less
	// than the number of domains, the response includes a pagination token named
	// NextToken. You can specify this NextToken value in a subsequent call to ListDomains
	// to list the next set of domains.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// The status of the data source.
	Status *string `location:"querystring" locationName:"status" type:"string" enum:"DomainStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDomainsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDomainsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListDomainsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListDomainsInput"}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListDomainsInput) SetMaxResults(v int64) *ListDomainsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListDomainsInput) SetNextToken(v string) *ListDomainsInput {
	s.NextToken = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ListDomainsInput) SetStatus(v string) *ListDomainsInput {
	s.Status = &v
	return s
}

type ListDomainsOutput struct {
	_ struct{} `type:"structure"`

	// The results of the ListDomains action.
	//
	// Items is a required field
	Items []*DomainSummary `locationName:"items" type:"list" required:"true"`

	// When the number of domains is greater than the default value for the MaxResults
	// parameter, or if you explicitly specify a value for MaxResults that is less
	// than the number of domains, the response includes a pagination token named
	// NextToken. You can specify this NextToken value in a subsequent call to ListDomains
	// to list the next set of domains.
	NextToken *string `locationName:"nextToken" 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 ListDomainsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListDomainsOutput) GoString() string {
	return s.String()
}

// SetItems sets the Items field's value.
func (s *ListDomainsOutput) SetItems(v []*DomainSummary) *ListDomainsOutput {
	s.Items = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListDomainsOutput) SetNextToken(v string) *ListDomainsOutput {
	s.NextToken = &v
	return s
}

type ListEnvironmentBlueprintConfigurationsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the Amazon DataZone domain.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The maximum number of blueprint configurations to return in a single call
	// to ListEnvironmentBlueprintConfigurations. When the number of configurations
	// to be listed is greater than the value of MaxResults, the response contains
	// a NextToken value that you can use in a subsequent call to ListEnvironmentBlueprintConfigurations
	// to list the next set of configurations.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// When the number of blueprint configurations is greater than the default value
	// for the MaxResults parameter, or if you explicitly specify a value for MaxResults
	// that is less than the number of configurations, the response includes a pagination
	// token named NextToken. You can specify this NextToken value in a subsequent
	// call to ListEnvironmentBlueprintConfigurations to list the next set of configurations.
	NextToken *string `location:"querystring" locationName:"nextToken" 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 ListEnvironmentBlueprintConfigurationsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEnvironmentBlueprintConfigurationsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListEnvironmentBlueprintConfigurationsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListEnvironmentBlueprintConfigurationsInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *ListEnvironmentBlueprintConfigurationsInput) SetDomainIdentifier(v string) *ListEnvironmentBlueprintConfigurationsInput {
	s.DomainIdentifier = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListEnvironmentBlueprintConfigurationsInput) SetMaxResults(v int64) *ListEnvironmentBlueprintConfigurationsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListEnvironmentBlueprintConfigurationsInput) SetNextToken(v string) *ListEnvironmentBlueprintConfigurationsInput {
	s.NextToken = &v
	return s
}

type ListEnvironmentBlueprintConfigurationsOutput struct {
	_ struct{} `type:"structure"`

	// The results of the ListEnvironmentBlueprintConfigurations action.
	Items []*EnvironmentBlueprintConfigurationItem `locationName:"items" type:"list"`

	// When the number of blueprint configurations is greater than the default value
	// for the MaxResults parameter, or if you explicitly specify a value for MaxResults
	// that is less than the number of configurations, the response includes a pagination
	// token named NextToken. You can specify this NextToken value in a subsequent
	// call to ListEnvironmentBlueprintConfigurations to list the next set of configurations.
	NextToken *string `locationName:"nextToken" 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 ListEnvironmentBlueprintConfigurationsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEnvironmentBlueprintConfigurationsOutput) GoString() string {
	return s.String()
}

// SetItems sets the Items field's value.
func (s *ListEnvironmentBlueprintConfigurationsOutput) SetItems(v []*EnvironmentBlueprintConfigurationItem) *ListEnvironmentBlueprintConfigurationsOutput {
	s.Items = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListEnvironmentBlueprintConfigurationsOutput) SetNextToken(v string) *ListEnvironmentBlueprintConfigurationsOutput {
	s.NextToken = &v
	return s
}

type ListEnvironmentBlueprintsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the Amazon DataZone domain.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// Specifies whether the environment blueprint is managed by Amazon DataZone.
	Managed *bool `location:"querystring" locationName:"managed" type:"boolean"`

	// The maximum number of blueprints to return in a single call to ListEnvironmentBlueprints.
	// When the number of blueprints to be listed is greater than the value of MaxResults,
	// the response contains a NextToken value that you can use in a subsequent
	// call to ListEnvironmentBlueprints to list the next set of blueprints.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// The name of the Amazon DataZone environment.
	Name *string `location:"querystring" locationName:"name" min:"1" type:"string"`

	// When the number of blueprints in the environment is greater than the default
	// value for the MaxResults parameter, or if you explicitly specify a value
	// for MaxResults that is less than the number of blueprints in the environment,
	// the response includes a pagination token named NextToken. You can specify
	// this NextToken value in a subsequent call to ListEnvironmentBlueprintsto
	// list the next set of blueprints.
	NextToken *string `location:"querystring" locationName:"nextToken" 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 ListEnvironmentBlueprintsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEnvironmentBlueprintsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListEnvironmentBlueprintsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListEnvironmentBlueprintsInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *ListEnvironmentBlueprintsInput) SetDomainIdentifier(v string) *ListEnvironmentBlueprintsInput {
	s.DomainIdentifier = &v
	return s
}

// SetManaged sets the Managed field's value.
func (s *ListEnvironmentBlueprintsInput) SetManaged(v bool) *ListEnvironmentBlueprintsInput {
	s.Managed = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListEnvironmentBlueprintsInput) SetMaxResults(v int64) *ListEnvironmentBlueprintsInput {
	s.MaxResults = &v
	return s
}

// SetName sets the Name field's value.
func (s *ListEnvironmentBlueprintsInput) SetName(v string) *ListEnvironmentBlueprintsInput {
	s.Name = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListEnvironmentBlueprintsInput) SetNextToken(v string) *ListEnvironmentBlueprintsInput {
	s.NextToken = &v
	return s
}

type ListEnvironmentBlueprintsOutput struct {
	_ struct{} `type:"structure"`

	// The results of the ListEnvironmentBlueprints action.
	//
	// Items is a required field
	Items []*EnvironmentBlueprintSummary `locationName:"items" type:"list" required:"true"`

	// When the number of blueprints in the environment is greater than the default
	// value for the MaxResults parameter, or if you explicitly specify a value
	// for MaxResults that is less than the number of blueprints in the environment,
	// the response includes a pagination token named NextToken. You can specify
	// this NextToken value in a subsequent call to ListEnvironmentBlueprintsto
	// list the next set of blueprints.
	NextToken *string `locationName:"nextToken" 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 ListEnvironmentBlueprintsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEnvironmentBlueprintsOutput) GoString() string {
	return s.String()
}

// SetItems sets the Items field's value.
func (s *ListEnvironmentBlueprintsOutput) SetItems(v []*EnvironmentBlueprintSummary) *ListEnvironmentBlueprintsOutput {
	s.Items = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListEnvironmentBlueprintsOutput) SetNextToken(v string) *ListEnvironmentBlueprintsOutput {
	s.NextToken = &v
	return s
}

type ListEnvironmentProfilesInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the Amazon Web Services account where you want to list
	// environment profiles.
	AwsAccountId *string `location:"querystring" locationName:"awsAccountId" type:"string"`

	// The Amazon Web Services region where you want to list environment profiles.
	AwsAccountRegion *string `location:"querystring" locationName:"awsAccountRegion" type:"string"`

	// The identifier of the Amazon DataZone domain.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the blueprint that was used to create the environment profiles
	// that you want to list.
	EnvironmentBlueprintIdentifier *string `location:"querystring" locationName:"environmentBlueprintIdentifier" type:"string"`

	// The maximum number of environment profiles to return in a single call to
	// ListEnvironmentProfiles. When the number of environment profiles to be listed
	// is greater than the value of MaxResults, the response contains a NextToken
	// value that you can use in a subsequent call to ListEnvironmentProfiles to
	// list the next set of environment profiles.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListEnvironmentProfilesInput's
	// String and GoString methods.
	Name *string `location:"querystring" locationName:"name" min:"1" type:"string" sensitive:"true"`

	// When the number of environment profiles is greater than the default value
	// for the MaxResults parameter, or if you explicitly specify a value for MaxResults
	// that is less than the number of environment profiles, the response includes
	// a pagination token named NextToken. You can specify this NextToken value
	// in a subsequent call to ListEnvironmentProfiles to list the next set of environment
	// profiles.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// The identifier of the Amazon DataZone project.
	ProjectIdentifier *string `location:"querystring" locationName:"projectIdentifier" 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 ListEnvironmentProfilesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEnvironmentProfilesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListEnvironmentProfilesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListEnvironmentProfilesInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAwsAccountId sets the AwsAccountId field's value.
func (s *ListEnvironmentProfilesInput) SetAwsAccountId(v string) *ListEnvironmentProfilesInput {
	s.AwsAccountId = &v
	return s
}

// SetAwsAccountRegion sets the AwsAccountRegion field's value.
func (s *ListEnvironmentProfilesInput) SetAwsAccountRegion(v string) *ListEnvironmentProfilesInput {
	s.AwsAccountRegion = &v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *ListEnvironmentProfilesInput) SetDomainIdentifier(v string) *ListEnvironmentProfilesInput {
	s.DomainIdentifier = &v
	return s
}

// SetEnvironmentBlueprintIdentifier sets the EnvironmentBlueprintIdentifier field's value.
func (s *ListEnvironmentProfilesInput) SetEnvironmentBlueprintIdentifier(v string) *ListEnvironmentProfilesInput {
	s.EnvironmentBlueprintIdentifier = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListEnvironmentProfilesInput) SetMaxResults(v int64) *ListEnvironmentProfilesInput {
	s.MaxResults = &v
	return s
}

// SetName sets the Name field's value.
func (s *ListEnvironmentProfilesInput) SetName(v string) *ListEnvironmentProfilesInput {
	s.Name = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListEnvironmentProfilesInput) SetNextToken(v string) *ListEnvironmentProfilesInput {
	s.NextToken = &v
	return s
}

// SetProjectIdentifier sets the ProjectIdentifier field's value.
func (s *ListEnvironmentProfilesInput) SetProjectIdentifier(v string) *ListEnvironmentProfilesInput {
	s.ProjectIdentifier = &v
	return s
}

type ListEnvironmentProfilesOutput struct {
	_ struct{} `type:"structure"`

	// The results of the ListEnvironmentProfiles action.
	//
	// Items is a required field
	Items []*EnvironmentProfileSummary `locationName:"items" type:"list" required:"true"`

	// When the number of environment profiles is greater than the default value
	// for the MaxResults parameter, or if you explicitly specify a value for MaxResults
	// that is less than the number of environment profiles, the response includes
	// a pagination token named NextToken. You can specify this NextToken value
	// in a subsequent call to ListEnvironmentProfiles to list the next set of environment
	// profiles.
	NextToken *string `locationName:"nextToken" 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 ListEnvironmentProfilesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEnvironmentProfilesOutput) GoString() string {
	return s.String()
}

// SetItems sets the Items field's value.
func (s *ListEnvironmentProfilesOutput) SetItems(v []*EnvironmentProfileSummary) *ListEnvironmentProfilesOutput {
	s.Items = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListEnvironmentProfilesOutput) SetNextToken(v string) *ListEnvironmentProfilesOutput {
	s.NextToken = &v
	return s
}

type ListEnvironmentsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the Amazon Web Services account where you want to list
	// environments.
	AwsAccountId *string `location:"querystring" locationName:"awsAccountId" type:"string"`

	// The Amazon Web Services region where you want to list environments.
	AwsAccountRegion *string `location:"querystring" locationName:"awsAccountRegion" type:"string"`

	// The identifier of the Amazon DataZone domain.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the Amazon DataZone blueprint.
	EnvironmentBlueprintIdentifier *string `location:"querystring" locationName:"environmentBlueprintIdentifier" type:"string"`

	// The identifier of the environment profile.
	EnvironmentProfileIdentifier *string `location:"querystring" locationName:"environmentProfileIdentifier" type:"string"`

	// The maximum number of environments to return in a single call to ListEnvironments.
	// When the number of environments to be listed is greater than the value of
	// MaxResults, the response contains a NextToken value that you can use in a
	// subsequent call to ListEnvironments to list the next set of environments.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	Name *string `location:"querystring" locationName:"name" type:"string"`

	// When the number of environments is greater than the default value for the
	// MaxResults parameter, or if you explicitly specify a value for MaxResults
	// that is less than the number of environments, the response includes a pagination
	// token named NextToken. You can specify this NextToken value in a subsequent
	// call to ListEnvironments to list the next set of environments.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// The identifier of the Amazon DataZone project.
	//
	// ProjectIdentifier is a required field
	ProjectIdentifier *string `location:"querystring" locationName:"projectIdentifier" type:"string" required:"true"`

	// The provider of the environment.
	Provider *string `location:"querystring" locationName:"provider" type:"string"`

	// The status of the environments that you want to list.
	Status *string `location:"querystring" locationName:"status" type:"string" enum:"EnvironmentStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEnvironmentsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEnvironmentsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListEnvironmentsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListEnvironmentsInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}
	if s.ProjectIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("ProjectIdentifier"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAwsAccountId sets the AwsAccountId field's value.
func (s *ListEnvironmentsInput) SetAwsAccountId(v string) *ListEnvironmentsInput {
	s.AwsAccountId = &v
	return s
}

// SetAwsAccountRegion sets the AwsAccountRegion field's value.
func (s *ListEnvironmentsInput) SetAwsAccountRegion(v string) *ListEnvironmentsInput {
	s.AwsAccountRegion = &v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *ListEnvironmentsInput) SetDomainIdentifier(v string) *ListEnvironmentsInput {
	s.DomainIdentifier = &v
	return s
}

// SetEnvironmentBlueprintIdentifier sets the EnvironmentBlueprintIdentifier field's value.
func (s *ListEnvironmentsInput) SetEnvironmentBlueprintIdentifier(v string) *ListEnvironmentsInput {
	s.EnvironmentBlueprintIdentifier = &v
	return s
}

// SetEnvironmentProfileIdentifier sets the EnvironmentProfileIdentifier field's value.
func (s *ListEnvironmentsInput) SetEnvironmentProfileIdentifier(v string) *ListEnvironmentsInput {
	s.EnvironmentProfileIdentifier = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListEnvironmentsInput) SetMaxResults(v int64) *ListEnvironmentsInput {
	s.MaxResults = &v
	return s
}

// SetName sets the Name field's value.
func (s *ListEnvironmentsInput) SetName(v string) *ListEnvironmentsInput {
	s.Name = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListEnvironmentsInput) SetNextToken(v string) *ListEnvironmentsInput {
	s.NextToken = &v
	return s
}

// SetProjectIdentifier sets the ProjectIdentifier field's value.
func (s *ListEnvironmentsInput) SetProjectIdentifier(v string) *ListEnvironmentsInput {
	s.ProjectIdentifier = &v
	return s
}

// SetProvider sets the Provider field's value.
func (s *ListEnvironmentsInput) SetProvider(v string) *ListEnvironmentsInput {
	s.Provider = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ListEnvironmentsInput) SetStatus(v string) *ListEnvironmentsInput {
	s.Status = &v
	return s
}

type ListEnvironmentsOutput struct {
	_ struct{} `type:"structure"`

	// The results of the ListEnvironments action.
	//
	// Items is a required field
	Items []*EnvironmentSummary `locationName:"items" type:"list" required:"true"`

	// When the number of environments is greater than the default value for the
	// MaxResults parameter, or if you explicitly specify a value for MaxResults
	// that is less than the number of environments, the response includes a pagination
	// token named NextToken. You can specify this NextToken value in a subsequent
	// call to ListEnvironments to list the next set of environments.
	NextToken *string `locationName:"nextToken" 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 ListEnvironmentsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListEnvironmentsOutput) GoString() string {
	return s.String()
}

// SetItems sets the Items field's value.
func (s *ListEnvironmentsOutput) SetItems(v []*EnvironmentSummary) *ListEnvironmentsOutput {
	s.Items = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListEnvironmentsOutput) SetNextToken(v string) *ListEnvironmentsOutput {
	s.NextToken = &v
	return s
}

type ListNotificationsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The time after which you want to list notifications.
	AfterTimestamp *time.Time `location:"querystring" locationName:"afterTimestamp" type:"timestamp"`

	// The time before which you want to list notifications.
	BeforeTimestamp *time.Time `location:"querystring" locationName:"beforeTimestamp" type:"timestamp"`

	// The identifier of the Amazon DataZone domain.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The maximum number of notifications to return in a single call to ListNotifications.
	// When the number of notifications to be listed is greater than the value of
	// MaxResults, the response contains a NextToken value that you can use in a
	// subsequent call to ListNotifications to list the next set of notifications.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// When the number of notifications is greater than the default value for the
	// MaxResults parameter, or if you explicitly specify a value for MaxResults
	// that is less than the number of notifications, the response includes a pagination
	// token named NextToken. You can specify this NextToken value in a subsequent
	// call to ListNotifications to list the next set of notifications.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// The subjects of notifications.
	Subjects []*string `location:"querystring" locationName:"subjects" type:"list"`

	// The task status of notifications.
	TaskStatus *string `location:"querystring" locationName:"taskStatus" type:"string" enum:"TaskStatus"`

	// The type of notifications.
	//
	// Type is a required field
	Type *string `location:"querystring" locationName:"type" type:"string" required:"true" enum:"NotificationType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListNotificationsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListNotificationsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListNotificationsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListNotificationsInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}
	if s.Type == nil {
		invalidParams.Add(request.NewErrParamRequired("Type"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAfterTimestamp sets the AfterTimestamp field's value.
func (s *ListNotificationsInput) SetAfterTimestamp(v time.Time) *ListNotificationsInput {
	s.AfterTimestamp = &v
	return s
}

// SetBeforeTimestamp sets the BeforeTimestamp field's value.
func (s *ListNotificationsInput) SetBeforeTimestamp(v time.Time) *ListNotificationsInput {
	s.BeforeTimestamp = &v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *ListNotificationsInput) SetDomainIdentifier(v string) *ListNotificationsInput {
	s.DomainIdentifier = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListNotificationsInput) SetMaxResults(v int64) *ListNotificationsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListNotificationsInput) SetNextToken(v string) *ListNotificationsInput {
	s.NextToken = &v
	return s
}

// SetSubjects sets the Subjects field's value.
func (s *ListNotificationsInput) SetSubjects(v []*string) *ListNotificationsInput {
	s.Subjects = v
	return s
}

// SetTaskStatus sets the TaskStatus field's value.
func (s *ListNotificationsInput) SetTaskStatus(v string) *ListNotificationsInput {
	s.TaskStatus = &v
	return s
}

// SetType sets the Type field's value.
func (s *ListNotificationsInput) SetType(v string) *ListNotificationsInput {
	s.Type = &v
	return s
}

type ListNotificationsOutput struct {
	_ struct{} `type:"structure"`

	// When the number of notifications is greater than the default value for the
	// MaxResults parameter, or if you explicitly specify a value for MaxResults
	// that is less than the number of notifications, the response includes a pagination
	// token named NextToken. You can specify this NextToken value in a subsequent
	// call to ListNotifications to list the next set of notifications.
	NextToken *string `locationName:"nextToken" min:"1" type:"string"`

	// The results of the ListNotifications action.
	Notifications []*NotificationOutput_ `locationName:"notifications" 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 ListNotificationsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListNotificationsOutput) GoString() string {
	return s.String()
}

// SetNextToken sets the NextToken field's value.
func (s *ListNotificationsOutput) SetNextToken(v string) *ListNotificationsOutput {
	s.NextToken = &v
	return s
}

// SetNotifications sets the Notifications field's value.
func (s *ListNotificationsOutput) SetNotifications(v []*NotificationOutput_) *ListNotificationsOutput {
	s.Notifications = v
	return s
}

type ListProjectMembershipsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the Amazon DataZone domain in which you want to list project
	// memberships.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The maximum number of memberships to return in a single call to ListProjectMemberships.
	// When the number of memberships to be listed is greater than the value of
	// MaxResults, the response contains a NextToken value that you can use in a
	// subsequent call to ListProjectMemberships to list the next set of memberships.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// When the number of memberships is greater than the default value for the
	// MaxResults parameter, or if you explicitly specify a value for MaxResults
	// that is less than the number of memberships, the response includes a pagination
	// token named NextToken. You can specify this NextToken value in a subsequent
	// call to ListProjectMemberships to list the next set of memberships.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// The identifier of the project whose memberships you want to list.
	//
	// ProjectIdentifier is a required field
	ProjectIdentifier *string `location:"uri" locationName:"projectIdentifier" type:"string" required:"true"`

	// The method by which you want to sort the project memberships.
	SortBy *string `location:"querystring" locationName:"sortBy" type:"string" enum:"SortFieldProject"`

	// The sort order of the project memberships.
	SortOrder *string `location:"querystring" locationName:"sortOrder" type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProjectMembershipsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProjectMembershipsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListProjectMembershipsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListProjectMembershipsInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}
	if s.ProjectIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("ProjectIdentifier"))
	}
	if s.ProjectIdentifier != nil && len(*s.ProjectIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProjectIdentifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *ListProjectMembershipsInput) SetDomainIdentifier(v string) *ListProjectMembershipsInput {
	s.DomainIdentifier = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListProjectMembershipsInput) SetMaxResults(v int64) *ListProjectMembershipsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListProjectMembershipsInput) SetNextToken(v string) *ListProjectMembershipsInput {
	s.NextToken = &v
	return s
}

// SetProjectIdentifier sets the ProjectIdentifier field's value.
func (s *ListProjectMembershipsInput) SetProjectIdentifier(v string) *ListProjectMembershipsInput {
	s.ProjectIdentifier = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListProjectMembershipsInput) SetSortBy(v string) *ListProjectMembershipsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListProjectMembershipsInput) SetSortOrder(v string) *ListProjectMembershipsInput {
	s.SortOrder = &v
	return s
}

type ListProjectMembershipsOutput struct {
	_ struct{} `type:"structure"`

	// The members of the project.
	//
	// Members is a required field
	Members []*ProjectMember `locationName:"members" type:"list" required:"true"`

	// When the number of memberships is greater than the default value for the
	// MaxResults parameter, or if you explicitly specify a value for MaxResults
	// that is less than the number of memberships, the response includes a pagination
	// token named NextToken. You can specify this NextToken value in a subsequent
	// call to ListProjectMemberships to list the next set of memberships.
	NextToken *string `locationName:"nextToken" 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 ListProjectMembershipsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProjectMembershipsOutput) GoString() string {
	return s.String()
}

// SetMembers sets the Members field's value.
func (s *ListProjectMembershipsOutput) SetMembers(v []*ProjectMember) *ListProjectMembershipsOutput {
	s.Members = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListProjectMembershipsOutput) SetNextToken(v string) *ListProjectMembershipsOutput {
	s.NextToken = &v
	return s
}

type ListProjectsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the Amazon DataZone domain.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of a group.
	GroupIdentifier *string `location:"querystring" locationName:"groupIdentifier" type:"string"`

	// The maximum number of projects to return in a single call to ListProjects.
	// When the number of projects to be listed is greater than the value of MaxResults,
	// the response contains a NextToken value that you can use in a subsequent
	// call to ListProjects to list the next set of projects.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ListProjectsInput's
	// String and GoString methods.
	Name *string `location:"querystring" locationName:"name" min:"1" type:"string" sensitive:"true"`

	// When the number of projects is greater than the default value for the MaxResults
	// parameter, or if you explicitly specify a value for MaxResults that is less
	// than the number of projects, the response includes a pagination token named
	// NextToken. You can specify this NextToken value in a subsequent call to ListProjects
	// to list the next set of projects.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// The identifier of the Amazon DataZone user.
	UserIdentifier *string `location:"querystring" locationName:"userIdentifier" 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 ListProjectsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProjectsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListProjectsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListProjectsInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *ListProjectsInput) SetDomainIdentifier(v string) *ListProjectsInput {
	s.DomainIdentifier = &v
	return s
}

// SetGroupIdentifier sets the GroupIdentifier field's value.
func (s *ListProjectsInput) SetGroupIdentifier(v string) *ListProjectsInput {
	s.GroupIdentifier = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListProjectsInput) SetMaxResults(v int64) *ListProjectsInput {
	s.MaxResults = &v
	return s
}

// SetName sets the Name field's value.
func (s *ListProjectsInput) SetName(v string) *ListProjectsInput {
	s.Name = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListProjectsInput) SetNextToken(v string) *ListProjectsInput {
	s.NextToken = &v
	return s
}

// SetUserIdentifier sets the UserIdentifier field's value.
func (s *ListProjectsInput) SetUserIdentifier(v string) *ListProjectsInput {
	s.UserIdentifier = &v
	return s
}

type ListProjectsOutput struct {
	_ struct{} `type:"structure"`

	// The results of the ListProjects action.
	Items []*ProjectSummary `locationName:"items" type:"list"`

	// When the number of projects is greater than the default value for the MaxResults
	// parameter, or if you explicitly specify a value for MaxResults that is less
	// than the number of projects, the response includes a pagination token named
	// NextToken. You can specify this NextToken value in a subsequent call to ListProjects
	// to list the next set of projects.
	NextToken *string `locationName:"nextToken" 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 ListProjectsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListProjectsOutput) GoString() string {
	return s.String()
}

// SetItems sets the Items field's value.
func (s *ListProjectsOutput) SetItems(v []*ProjectSummary) *ListProjectsOutput {
	s.Items = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListProjectsOutput) SetNextToken(v string) *ListProjectsOutput {
	s.NextToken = &v
	return s
}

type ListSubscriptionGrantsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the Amazon DataZone domain.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the Amazon DataZone environment.
	EnvironmentId *string `location:"querystring" locationName:"environmentId" type:"string"`

	// The maximum number of subscription grants to return in a single call to ListSubscriptionGrants.
	// When the number of subscription grants to be listed is greater than the value
	// of MaxResults, the response contains a NextToken value that you can use in
	// a subsequent call to ListSubscriptionGrants to list the next set of subscription
	// grants.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// When the number of subscription grants is greater than the default value
	// for the MaxResults parameter, or if you explicitly specify a value for MaxResults
	// that is less than the number of subscription grants, the response includes
	// a pagination token named NextToken. You can specify this NextToken value
	// in a subsequent call to ListSubscriptionGrants to list the next set of subscription
	// grants.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// Specifies the way of sorting the results of this action.
	SortBy *string `location:"querystring" locationName:"sortBy" type:"string" enum:"SortKey"`

	// Specifies the sort order of this action.
	SortOrder *string `location:"querystring" locationName:"sortOrder" type:"string" enum:"SortOrder"`

	// The identifier of the subscribed listing.
	SubscribedListingId *string `location:"querystring" locationName:"subscribedListingId" type:"string"`

	// The identifier of the subscription.
	SubscriptionId *string `location:"querystring" locationName:"subscriptionId" type:"string"`

	// The identifier of the subscription target.
	SubscriptionTargetId *string `location:"querystring" locationName:"subscriptionTargetId" 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 ListSubscriptionGrantsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSubscriptionGrantsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListSubscriptionGrantsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListSubscriptionGrantsInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *ListSubscriptionGrantsInput) SetDomainIdentifier(v string) *ListSubscriptionGrantsInput {
	s.DomainIdentifier = &v
	return s
}

// SetEnvironmentId sets the EnvironmentId field's value.
func (s *ListSubscriptionGrantsInput) SetEnvironmentId(v string) *ListSubscriptionGrantsInput {
	s.EnvironmentId = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListSubscriptionGrantsInput) SetMaxResults(v int64) *ListSubscriptionGrantsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListSubscriptionGrantsInput) SetNextToken(v string) *ListSubscriptionGrantsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListSubscriptionGrantsInput) SetSortBy(v string) *ListSubscriptionGrantsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListSubscriptionGrantsInput) SetSortOrder(v string) *ListSubscriptionGrantsInput {
	s.SortOrder = &v
	return s
}

// SetSubscribedListingId sets the SubscribedListingId field's value.
func (s *ListSubscriptionGrantsInput) SetSubscribedListingId(v string) *ListSubscriptionGrantsInput {
	s.SubscribedListingId = &v
	return s
}

// SetSubscriptionId sets the SubscriptionId field's value.
func (s *ListSubscriptionGrantsInput) SetSubscriptionId(v string) *ListSubscriptionGrantsInput {
	s.SubscriptionId = &v
	return s
}

// SetSubscriptionTargetId sets the SubscriptionTargetId field's value.
func (s *ListSubscriptionGrantsInput) SetSubscriptionTargetId(v string) *ListSubscriptionGrantsInput {
	s.SubscriptionTargetId = &v
	return s
}

type ListSubscriptionGrantsOutput struct {
	_ struct{} `type:"structure"`

	// The results of the ListSubscriptionGrants action.
	//
	// Items is a required field
	Items []*SubscriptionGrantSummary `locationName:"items" type:"list" required:"true"`

	// When the number of subscription grants is greater than the default value
	// for the MaxResults parameter, or if you explicitly specify a value for MaxResults
	// that is less than the number of subscription grants, the response includes
	// a pagination token named NextToken. You can specify this NextToken value
	// in a subsequent call to ListSubscriptionGrants to list the next set of subscription
	// grants.
	NextToken *string `locationName:"nextToken" 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 ListSubscriptionGrantsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSubscriptionGrantsOutput) GoString() string {
	return s.String()
}

// SetItems sets the Items field's value.
func (s *ListSubscriptionGrantsOutput) SetItems(v []*SubscriptionGrantSummary) *ListSubscriptionGrantsOutput {
	s.Items = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListSubscriptionGrantsOutput) SetNextToken(v string) *ListSubscriptionGrantsOutput {
	s.NextToken = &v
	return s
}

type ListSubscriptionRequestsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the subscription request approver's project.
	ApproverProjectId *string `location:"querystring" locationName:"approverProjectId" type:"string"`

	// The identifier of the Amazon DataZone domain.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The maximum number of subscription requests to return in a single call to
	// ListSubscriptionRequests. When the number of subscription requests to be
	// listed is greater than the value of MaxResults, the response contains a NextToken
	// value that you can use in a subsequent call to ListSubscriptionRequests to
	// list the next set of subscription requests.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// When the number of subscription requests is greater than the default value
	// for the MaxResults parameter, or if you explicitly specify a value for MaxResults
	// that is less than the number of subscription requests, the response includes
	// a pagination token named NextToken. You can specify this NextToken value
	// in a subsequent call to ListSubscriptionRequests to list the next set of
	// subscription requests.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// The identifier of the project for the subscription requests.
	OwningProjectId *string `location:"querystring" locationName:"owningProjectId" type:"string"`

	// Specifies the way to sort the results of this action.
	SortBy *string `location:"querystring" locationName:"sortBy" type:"string" enum:"SortKey"`

	// Specifies the sort order for the results of this action.
	SortOrder *string `location:"querystring" locationName:"sortOrder" type:"string" enum:"SortOrder"`

	// Specifies the status of the subscription requests.
	Status *string `location:"querystring" locationName:"status" type:"string" enum:"SubscriptionRequestStatus"`

	// The identifier of the subscribed listing.
	SubscribedListingId *string `location:"querystring" locationName:"subscribedListingId" 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 ListSubscriptionRequestsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSubscriptionRequestsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListSubscriptionRequestsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListSubscriptionRequestsInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetApproverProjectId sets the ApproverProjectId field's value.
func (s *ListSubscriptionRequestsInput) SetApproverProjectId(v string) *ListSubscriptionRequestsInput {
	s.ApproverProjectId = &v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *ListSubscriptionRequestsInput) SetDomainIdentifier(v string) *ListSubscriptionRequestsInput {
	s.DomainIdentifier = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListSubscriptionRequestsInput) SetMaxResults(v int64) *ListSubscriptionRequestsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListSubscriptionRequestsInput) SetNextToken(v string) *ListSubscriptionRequestsInput {
	s.NextToken = &v
	return s
}

// SetOwningProjectId sets the OwningProjectId field's value.
func (s *ListSubscriptionRequestsInput) SetOwningProjectId(v string) *ListSubscriptionRequestsInput {
	s.OwningProjectId = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListSubscriptionRequestsInput) SetSortBy(v string) *ListSubscriptionRequestsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListSubscriptionRequestsInput) SetSortOrder(v string) *ListSubscriptionRequestsInput {
	s.SortOrder = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ListSubscriptionRequestsInput) SetStatus(v string) *ListSubscriptionRequestsInput {
	s.Status = &v
	return s
}

// SetSubscribedListingId sets the SubscribedListingId field's value.
func (s *ListSubscriptionRequestsInput) SetSubscribedListingId(v string) *ListSubscriptionRequestsInput {
	s.SubscribedListingId = &v
	return s
}

type ListSubscriptionRequestsOutput struct {
	_ struct{} `type:"structure"`

	// The results of the ListSubscriptionRequests action.
	//
	// Items is a required field
	Items []*SubscriptionRequestSummary `locationName:"items" type:"list" required:"true"`

	// When the number of subscription requests is greater than the default value
	// for the MaxResults parameter, or if you explicitly specify a value for MaxResults
	// that is less than the number of subscription requests, the response includes
	// a pagination token named NextToken. You can specify this NextToken value
	// in a subsequent call to ListSubscriptionRequests to list the next set of
	// subscription requests.
	NextToken *string `locationName:"nextToken" 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 ListSubscriptionRequestsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSubscriptionRequestsOutput) GoString() string {
	return s.String()
}

// SetItems sets the Items field's value.
func (s *ListSubscriptionRequestsOutput) SetItems(v []*SubscriptionRequestSummary) *ListSubscriptionRequestsOutput {
	s.Items = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListSubscriptionRequestsOutput) SetNextToken(v string) *ListSubscriptionRequestsOutput {
	s.NextToken = &v
	return s
}

type ListSubscriptionTargetsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the Amazon DataZone domain where you want to list subscription
	// targets.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the environment where you want to list subscription targets.
	//
	// EnvironmentIdentifier is a required field
	EnvironmentIdentifier *string `location:"uri" locationName:"environmentIdentifier" type:"string" required:"true"`

	// The maximum number of subscription targets to return in a single call to
	// ListSubscriptionTargets. When the number of subscription targets to be listed
	// is greater than the value of MaxResults, the response contains a NextToken
	// value that you can use in a subsequent call to ListSubscriptionTargets to
	// list the next set of subscription targets.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// When the number of subscription targets is greater than the default value
	// for the MaxResults parameter, or if you explicitly specify a value for MaxResults
	// that is less than the number of subscription targets, the response includes
	// a pagination token named NextToken. You can specify this NextToken value
	// in a subsequent call to ListSubscriptionTargets to list the next set of subscription
	// targets.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// Specifies the way in which the results of this action are to be sorted.
	SortBy *string `location:"querystring" locationName:"sortBy" type:"string" enum:"SortKey"`

	// Specifies the sort order for the results of this action.
	SortOrder *string `location:"querystring" locationName:"sortOrder" type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSubscriptionTargetsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSubscriptionTargetsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListSubscriptionTargetsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListSubscriptionTargetsInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.EnvironmentIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("EnvironmentIdentifier"))
	}
	if s.EnvironmentIdentifier != nil && len(*s.EnvironmentIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EnvironmentIdentifier", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *ListSubscriptionTargetsInput) SetDomainIdentifier(v string) *ListSubscriptionTargetsInput {
	s.DomainIdentifier = &v
	return s
}

// SetEnvironmentIdentifier sets the EnvironmentIdentifier field's value.
func (s *ListSubscriptionTargetsInput) SetEnvironmentIdentifier(v string) *ListSubscriptionTargetsInput {
	s.EnvironmentIdentifier = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListSubscriptionTargetsInput) SetMaxResults(v int64) *ListSubscriptionTargetsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListSubscriptionTargetsInput) SetNextToken(v string) *ListSubscriptionTargetsInput {
	s.NextToken = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListSubscriptionTargetsInput) SetSortBy(v string) *ListSubscriptionTargetsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListSubscriptionTargetsInput) SetSortOrder(v string) *ListSubscriptionTargetsInput {
	s.SortOrder = &v
	return s
}

type ListSubscriptionTargetsOutput struct {
	_ struct{} `type:"structure"`

	// The results of the ListSubscriptionTargets action.
	//
	// Items is a required field
	Items []*SubscriptionTargetSummary `locationName:"items" type:"list" required:"true"`

	// When the number of subscription targets is greater than the default value
	// for the MaxResults parameter, or if you explicitly specify a value for MaxResults
	// that is less than the number of subscription targets, the response includes
	// a pagination token named NextToken. You can specify this NextToken value
	// in a subsequent call to ListSubscriptionTargets to list the next set of subscription
	// targets.
	NextToken *string `locationName:"nextToken" 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 ListSubscriptionTargetsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSubscriptionTargetsOutput) GoString() string {
	return s.String()
}

// SetItems sets the Items field's value.
func (s *ListSubscriptionTargetsOutput) SetItems(v []*SubscriptionTargetSummary) *ListSubscriptionTargetsOutput {
	s.Items = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListSubscriptionTargetsOutput) SetNextToken(v string) *ListSubscriptionTargetsOutput {
	s.NextToken = &v
	return s
}

type ListSubscriptionsInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The identifier of the project for the subscription's approver.
	ApproverProjectId *string `location:"querystring" locationName:"approverProjectId" type:"string"`

	// The identifier of the Amazon DataZone domain.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The maximum number of subscriptions to return in a single call to ListSubscriptions.
	// When the number of subscriptions to be listed is greater than the value of
	// MaxResults, the response contains a NextToken value that you can use in a
	// subsequent call to ListSubscriptions to list the next set of Subscriptions.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// When the number of subscriptions is greater than the default value for the
	// MaxResults parameter, or if you explicitly specify a value for MaxResults
	// that is less than the number of subscriptions, the response includes a pagination
	// token named NextToken. You can specify this NextToken value in a subsequent
	// call to ListSubscriptions to list the next set of subscriptions.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// The identifier of the owning project.
	OwningProjectId *string `location:"querystring" locationName:"owningProjectId" type:"string"`

	// Specifies the way in which the results of this action are to be sorted.
	SortBy *string `location:"querystring" locationName:"sortBy" type:"string" enum:"SortKey"`

	// Specifies the sort order for the results of this action.
	SortOrder *string `location:"querystring" locationName:"sortOrder" type:"string" enum:"SortOrder"`

	// The status of the subscriptions that you want to list.
	Status *string `location:"querystring" locationName:"status" type:"string" enum:"SubscriptionStatus"`

	// The identifier of the subscribed listing for the subscriptions that you want
	// to list.
	SubscribedListingId *string `location:"querystring" locationName:"subscribedListingId" type:"string"`

	// The identifier of the subscription request for the subscriptions that you
	// want to list.
	SubscriptionRequestIdentifier *string `location:"querystring" locationName:"subscriptionRequestIdentifier" 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 ListSubscriptionsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSubscriptionsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListSubscriptionsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListSubscriptionsInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetApproverProjectId sets the ApproverProjectId field's value.
func (s *ListSubscriptionsInput) SetApproverProjectId(v string) *ListSubscriptionsInput {
	s.ApproverProjectId = &v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *ListSubscriptionsInput) SetDomainIdentifier(v string) *ListSubscriptionsInput {
	s.DomainIdentifier = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *ListSubscriptionsInput) SetMaxResults(v int64) *ListSubscriptionsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListSubscriptionsInput) SetNextToken(v string) *ListSubscriptionsInput {
	s.NextToken = &v
	return s
}

// SetOwningProjectId sets the OwningProjectId field's value.
func (s *ListSubscriptionsInput) SetOwningProjectId(v string) *ListSubscriptionsInput {
	s.OwningProjectId = &v
	return s
}

// SetSortBy sets the SortBy field's value.
func (s *ListSubscriptionsInput) SetSortBy(v string) *ListSubscriptionsInput {
	s.SortBy = &v
	return s
}

// SetSortOrder sets the SortOrder field's value.
func (s *ListSubscriptionsInput) SetSortOrder(v string) *ListSubscriptionsInput {
	s.SortOrder = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *ListSubscriptionsInput) SetStatus(v string) *ListSubscriptionsInput {
	s.Status = &v
	return s
}

// SetSubscribedListingId sets the SubscribedListingId field's value.
func (s *ListSubscriptionsInput) SetSubscribedListingId(v string) *ListSubscriptionsInput {
	s.SubscribedListingId = &v
	return s
}

// SetSubscriptionRequestIdentifier sets the SubscriptionRequestIdentifier field's value.
func (s *ListSubscriptionsInput) SetSubscriptionRequestIdentifier(v string) *ListSubscriptionsInput {
	s.SubscriptionRequestIdentifier = &v
	return s
}

type ListSubscriptionsOutput struct {
	_ struct{} `type:"structure"`

	// The results of the ListSubscriptions action.
	//
	// Items is a required field
	Items []*SubscriptionSummary `locationName:"items" type:"list" required:"true"`

	// When the number of subscriptions is greater than the default value for the
	// MaxResults parameter, or if you explicitly specify a value for MaxResults
	// that is less than the number of subscriptions, the response includes a pagination
	// token named NextToken. You can specify this NextToken value in a subsequent
	// call to ListSubscriptions to list the next set of subscriptions.
	NextToken *string `locationName:"nextToken" 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 ListSubscriptionsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListSubscriptionsOutput) GoString() string {
	return s.String()
}

// SetItems sets the Items field's value.
func (s *ListSubscriptionsOutput) SetItems(v []*SubscriptionSummary) *ListSubscriptionsOutput {
	s.Items = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *ListSubscriptionsOutput) SetNextToken(v string) *ListSubscriptionsOutput {
	s.NextToken = &v
	return s
}

type ListTagsForResourceInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the resource whose tags you want to list.
	//
	// ResourceArn is a required field
	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTagsForResourceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListTagsForResourceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListTagsForResourceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
	if s.ResourceArn == nil {
		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
	}
	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetResourceArn sets the ResourceArn field's value.
func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
	s.ResourceArn = &v
	return s
}

type ListTagsForResourceOutput struct {
	_ struct{} `type:"structure"`

	// The tags of the specified resource.
	Tags map[string]*string `locationName:"tags" type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s 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 map[string]*string) *ListTagsForResourceOutput {
	s.Tags = v
	return s
}

// The details of a listing (aka asset published in a Amazon DataZone catalog).
type ListingItem struct {
	_ struct{} `type:"structure"`

	// An asset published in an Amazon DataZone catalog.
	AssetListing *AssetListing `locationName:"assetListing" 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 ListingItem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListingItem) GoString() string {
	return s.String()
}

// SetAssetListing sets the AssetListing field's value.
func (s *ListingItem) SetAssetListing(v *AssetListing) *ListingItem {
	s.AssetListing = v
	return s
}

// A revision of an asset published in a Amazon DataZone catalog.
type ListingRevision struct {
	_ struct{} `type:"structure"`

	// An identifier of a revision of an asset published in a Amazon DataZone catalog.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The details of a revision of an asset published in a Amazon DataZone catalog.
	//
	// Revision is a required field
	Revision *string `locationName:"revision" 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 ListingRevision) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListingRevision) GoString() string {
	return s.String()
}

// SetId sets the Id field's value.
func (s *ListingRevision) SetId(v string) *ListingRevision {
	s.Id = &v
	return s
}

// SetRevision sets the Revision field's value.
func (s *ListingRevision) SetRevision(v string) *ListingRevision {
	s.Revision = &v
	return s
}

// A revision to be made to an asset published in a Amazon DataZone catalog.
type ListingRevisionInput_ struct {
	_ struct{} `type:"structure"`

	// An identifier of revision to be made to an asset published in a Amazon DataZone
	// catalog.
	//
	// Identifier is a required field
	Identifier *string `locationName:"identifier" type:"string" required:"true"`

	// The details of a revision to be made to an asset published in a Amazon DataZone
	// catalog.
	//
	// Revision is a required field
	Revision *string `locationName:"revision" 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 ListingRevisionInput_) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ListingRevisionInput_) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListingRevisionInput_) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListingRevisionInput_"}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Revision == nil {
		invalidParams.Add(request.NewErrParamRequired("Revision"))
	}
	if s.Revision != nil && len(*s.Revision) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Revision", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetIdentifier sets the Identifier field's value.
func (s *ListingRevisionInput_) SetIdentifier(v string) *ListingRevisionInput_ {
	s.Identifier = &v
	return s
}

// SetRevision sets the Revision field's value.
func (s *ListingRevisionInput_) SetRevision(v string) *ListingRevisionInput_ {
	s.Revision = &v
	return s
}

// The details about a project member.
type Member struct {
	_ struct{} `type:"structure"`

	// The ID of the group of a project member.
	GroupIdentifier *string `locationName:"groupIdentifier" type:"string"`

	// The user ID of a project member.
	UserIdentifier *string `locationName:"userIdentifier" 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 Member) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Member) GoString() string {
	return s.String()
}

// SetGroupIdentifier sets the GroupIdentifier field's value.
func (s *Member) SetGroupIdentifier(v string) *Member {
	s.GroupIdentifier = &v
	return s
}

// SetUserIdentifier sets the UserIdentifier field's value.
func (s *Member) SetUserIdentifier(v string) *Member {
	s.UserIdentifier = &v
	return s
}

// The details about a project member.
type MemberDetails struct {
	_ struct{} `type:"structure"`

	// The group details of a project member.
	Group *GroupDetails `locationName:"group" type:"structure"`

	// The user details of a project member.
	User *UserDetails `locationName:"user" 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 MemberDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s MemberDetails) GoString() string {
	return s.String()
}

// SetGroup sets the Group field's value.
func (s *MemberDetails) SetGroup(v *GroupDetails) *MemberDetails {
	s.Group = v
	return s
}

// SetUser sets the User field's value.
func (s *MemberDetails) SetUser(v *UserDetails) *MemberDetails {
	s.User = v
	return s
}

type Model struct {
	_ struct{} `type:"structure" sensitive:"true"`

	Smithy *string `locationName:"smithy" 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 Model) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Model) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *Model) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "Model"}
	if s.Smithy != nil && len(*s.Smithy) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Smithy", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSmithy sets the Smithy field's value.
func (s *Model) SetSmithy(v string) *Model {
	s.Smithy = &v
	return s
}

// The details of a notification generated in Amazon DataZone.
type NotificationOutput_ struct {
	_ struct{} `type:"structure"`

	// The action link included in the notification.
	//
	// ActionLink is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by NotificationOutput_'s
	// String and GoString methods.
	//
	// ActionLink is a required field
	ActionLink *string `locationName:"actionLink" type:"string" required:"true" sensitive:"true"`

	// The timestamp of when a notification was created.
	//
	// CreationTimestamp is a required field
	CreationTimestamp *time.Time `locationName:"creationTimestamp" type:"timestamp" required:"true"`

	// The identifier of a Amazon DataZone domain in which the notification exists.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the notification.
	//
	// Identifier is a required field
	Identifier *string `locationName:"identifier" type:"string" required:"true"`

	// The timestamp of when the notification was last updated.
	//
	// LastUpdatedTimestamp is a required field
	LastUpdatedTimestamp *time.Time `locationName:"lastUpdatedTimestamp" type:"timestamp" required:"true"`

	// The message included in the notification.
	//
	// Message is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by NotificationOutput_'s
	// String and GoString methods.
	//
	// Message is a required field
	Message *string `locationName:"message" type:"string" required:"true" sensitive:"true"`

	// The metadata included in the notification.
	Metadata map[string]*string `locationName:"metadata" type:"map"`

	// The status included in the notification.
	Status *string `locationName:"status" type:"string" enum:"TaskStatus"`

	// The title of the notification.
	//
	// Title is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by NotificationOutput_'s
	// String and GoString methods.
	//
	// Title is a required field
	Title *string `locationName:"title" type:"string" required:"true" sensitive:"true"`

	// The topic of the notification.
	//
	// Topic is a required field
	Topic *Topic `locationName:"topic" type:"structure" required:"true"`

	// The type of the notification.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"NotificationType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotificationOutput_) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotificationOutput_) GoString() string {
	return s.String()
}

// SetActionLink sets the ActionLink field's value.
func (s *NotificationOutput_) SetActionLink(v string) *NotificationOutput_ {
	s.ActionLink = &v
	return s
}

// SetCreationTimestamp sets the CreationTimestamp field's value.
func (s *NotificationOutput_) SetCreationTimestamp(v time.Time) *NotificationOutput_ {
	s.CreationTimestamp = &v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *NotificationOutput_) SetDomainIdentifier(v string) *NotificationOutput_ {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *NotificationOutput_) SetIdentifier(v string) *NotificationOutput_ {
	s.Identifier = &v
	return s
}

// SetLastUpdatedTimestamp sets the LastUpdatedTimestamp field's value.
func (s *NotificationOutput_) SetLastUpdatedTimestamp(v time.Time) *NotificationOutput_ {
	s.LastUpdatedTimestamp = &v
	return s
}

// SetMessage sets the Message field's value.
func (s *NotificationOutput_) SetMessage(v string) *NotificationOutput_ {
	s.Message = &v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *NotificationOutput_) SetMetadata(v map[string]*string) *NotificationOutput_ {
	s.Metadata = v
	return s
}

// SetStatus sets the Status field's value.
func (s *NotificationOutput_) SetStatus(v string) *NotificationOutput_ {
	s.Status = &v
	return s
}

// SetTitle sets the Title field's value.
func (s *NotificationOutput_) SetTitle(v string) *NotificationOutput_ {
	s.Title = &v
	return s
}

// SetTopic sets the Topic field's value.
func (s *NotificationOutput_) SetTopic(v *Topic) *NotificationOutput_ {
	s.Topic = v
	return s
}

// SetType sets the Type field's value.
func (s *NotificationOutput_) SetType(v string) *NotificationOutput_ {
	s.Type = &v
	return s
}

// The details of the resource mentioned in a notification.
type NotificationResource struct {
	_ struct{} `type:"structure"`

	// The ID of the resource mentioned in a notification.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The name of the resource mentioned in a notification.
	Name *string `locationName:"name" type:"string"`

	// The type of the resource mentioned in a notification.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"NotificationResourceType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotificationResource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s NotificationResource) GoString() string {
	return s.String()
}

// SetId sets the Id field's value.
func (s *NotificationResource) SetId(v string) *NotificationResource {
	s.Id = &v
	return s
}

// SetName sets the Name field's value.
func (s *NotificationResource) SetName(v string) *NotificationResource {
	s.Name = &v
	return s
}

// SetType sets the Type field's value.
func (s *NotificationResource) SetType(v string) *NotificationResource {
	s.Type = &v
	return s
}

// The configuration of the prediction.
type PredictionConfiguration struct {
	_ struct{} `type:"structure"`

	// The business name generation mechanism.
	BusinessNameGeneration *BusinessNameGenerationConfiguration `locationName:"businessNameGeneration" 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 PredictionConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PredictionConfiguration) GoString() string {
	return s.String()
}

// SetBusinessNameGeneration sets the BusinessNameGeneration field's value.
func (s *PredictionConfiguration) SetBusinessNameGeneration(v *BusinessNameGenerationConfiguration) *PredictionConfiguration {
	s.BusinessNameGeneration = v
	return s
}

// Error that occurred during project deletion
type ProjectDeletionError struct {
	_ struct{} `type:"structure"`

	// Project Deletion Error Code
	Code *string `locationName:"code" type:"string"`

	// Project Deletion Error Message
	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 ProjectDeletionError) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProjectDeletionError) GoString() string {
	return s.String()
}

// SetCode sets the Code field's value.
func (s *ProjectDeletionError) SetCode(v string) *ProjectDeletionError {
	s.Code = &v
	return s
}

// SetMessage sets the Message field's value.
func (s *ProjectDeletionError) SetMessage(v string) *ProjectDeletionError {
	s.Message = &v
	return s
}

// The details of a project member.
type ProjectMember struct {
	_ struct{} `type:"structure"`

	// The designated role of a project member.
	//
	// Designation is a required field
	Designation *string `locationName:"designation" type:"string" required:"true" enum:"UserDesignation"`

	// The membership details of a project member.
	//
	// MemberDetails is a required field
	MemberDetails *MemberDetails `locationName:"memberDetails" 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 ProjectMember) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProjectMember) GoString() string {
	return s.String()
}

// SetDesignation sets the Designation field's value.
func (s *ProjectMember) SetDesignation(v string) *ProjectMember {
	s.Designation = &v
	return s
}

// SetMemberDetails sets the MemberDetails field's value.
func (s *ProjectMember) SetMemberDetails(v *MemberDetails) *ProjectMember {
	s.MemberDetails = v
	return s
}

// The details of a Amazon DataZone project.
type ProjectSummary struct {
	_ struct{} `type:"structure"`

	// The timestamp of when a project was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The Amazon DataZone user who created the project.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The description of a project.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ProjectSummary's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The identifier of a Amazon DataZone domain where the project exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// Reasons for failed project deletion
	FailureReasons []*ProjectDeletionError `locationName:"failureReasons" type:"list"`

	// The identifier of a project.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The name of a project.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by ProjectSummary's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// Status of the project
	ProjectStatus *string `locationName:"projectStatus" type:"string" enum:"ProjectStatus"`

	// The timestamp of when the project was 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 ProjectSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProjectSummary) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *ProjectSummary) SetCreatedAt(v time.Time) *ProjectSummary {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *ProjectSummary) SetCreatedBy(v string) *ProjectSummary {
	s.CreatedBy = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *ProjectSummary) SetDescription(v string) *ProjectSummary {
	s.Description = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *ProjectSummary) SetDomainId(v string) *ProjectSummary {
	s.DomainId = &v
	return s
}

// SetFailureReasons sets the FailureReasons field's value.
func (s *ProjectSummary) SetFailureReasons(v []*ProjectDeletionError) *ProjectSummary {
	s.FailureReasons = v
	return s
}

// SetId sets the Id field's value.
func (s *ProjectSummary) SetId(v string) *ProjectSummary {
	s.Id = &v
	return s
}

// SetName sets the Name field's value.
func (s *ProjectSummary) SetName(v string) *ProjectSummary {
	s.Name = &v
	return s
}

// SetProjectStatus sets the ProjectStatus field's value.
func (s *ProjectSummary) SetProjectStatus(v string) *ProjectSummary {
	s.ProjectStatus = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *ProjectSummary) SetUpdatedAt(v time.Time) *ProjectSummary {
	s.UpdatedAt = &v
	return s
}

// The provisioning properties of an environment blueprint.
type ProvisioningProperties struct {
	_ struct{} `type:"structure"`

	// The cloud formation properties included as part of the provisioning properties
	// of an environment blueprint.
	CloudFormation *CloudFormationProperties `locationName:"cloudFormation" 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 ProvisioningProperties) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ProvisioningProperties) GoString() string {
	return s.String()
}

// SetCloudFormation sets the CloudFormation field's value.
func (s *ProvisioningProperties) SetCloudFormation(v *CloudFormationProperties) *ProvisioningProperties {
	s.CloudFormation = v
	return s
}

type PutEnvironmentBlueprintConfigurationInput struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon DataZone domain.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// Specifies the enabled Amazon Web Services Regions.
	//
	// EnabledRegions is a required field
	EnabledRegions []*string `locationName:"enabledRegions" type:"list" required:"true"`

	// The identifier of the environment blueprint.
	//
	// EnvironmentBlueprintIdentifier is a required field
	EnvironmentBlueprintIdentifier *string `location:"uri" locationName:"environmentBlueprintIdentifier" type:"string" required:"true"`

	// The ARN of the manage access role.
	ManageAccessRoleArn *string `locationName:"manageAccessRoleArn" type:"string"`

	// The ARN of the provisioning role.
	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" type:"string"`

	// The regional parameters in the environment blueprint.
	RegionalParameters map[string]map[string]*string `locationName:"regionalParameters" type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutEnvironmentBlueprintConfigurationInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutEnvironmentBlueprintConfigurationInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *PutEnvironmentBlueprintConfigurationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PutEnvironmentBlueprintConfigurationInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.EnabledRegions == nil {
		invalidParams.Add(request.NewErrParamRequired("EnabledRegions"))
	}
	if s.EnvironmentBlueprintIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("EnvironmentBlueprintIdentifier"))
	}
	if s.EnvironmentBlueprintIdentifier != nil && len(*s.EnvironmentBlueprintIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EnvironmentBlueprintIdentifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *PutEnvironmentBlueprintConfigurationInput) SetDomainIdentifier(v string) *PutEnvironmentBlueprintConfigurationInput {
	s.DomainIdentifier = &v
	return s
}

// SetEnabledRegions sets the EnabledRegions field's value.
func (s *PutEnvironmentBlueprintConfigurationInput) SetEnabledRegions(v []*string) *PutEnvironmentBlueprintConfigurationInput {
	s.EnabledRegions = v
	return s
}

// SetEnvironmentBlueprintIdentifier sets the EnvironmentBlueprintIdentifier field's value.
func (s *PutEnvironmentBlueprintConfigurationInput) SetEnvironmentBlueprintIdentifier(v string) *PutEnvironmentBlueprintConfigurationInput {
	s.EnvironmentBlueprintIdentifier = &v
	return s
}

// SetManageAccessRoleArn sets the ManageAccessRoleArn field's value.
func (s *PutEnvironmentBlueprintConfigurationInput) SetManageAccessRoleArn(v string) *PutEnvironmentBlueprintConfigurationInput {
	s.ManageAccessRoleArn = &v
	return s
}

// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
func (s *PutEnvironmentBlueprintConfigurationInput) SetProvisioningRoleArn(v string) *PutEnvironmentBlueprintConfigurationInput {
	s.ProvisioningRoleArn = &v
	return s
}

// SetRegionalParameters sets the RegionalParameters field's value.
func (s *PutEnvironmentBlueprintConfigurationInput) SetRegionalParameters(v map[string]map[string]*string) *PutEnvironmentBlueprintConfigurationInput {
	s.RegionalParameters = v
	return s
}

type PutEnvironmentBlueprintConfigurationOutput struct {
	_ struct{} `type:"structure"`

	// The timestamp of when the environment blueprint was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The identifier of the Amazon DataZone domain.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// Specifies the enabled Amazon Web Services Regions.
	EnabledRegions []*string `locationName:"enabledRegions" type:"list"`

	// The identifier of the environment blueprint.
	//
	// EnvironmentBlueprintId is a required field
	EnvironmentBlueprintId *string `locationName:"environmentBlueprintId" type:"string" required:"true"`

	// The ARN of the manage access role.
	ManageAccessRoleArn *string `locationName:"manageAccessRoleArn" type:"string"`

	// The ARN of the provisioning role.
	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" type:"string"`

	// The regional parameters in the environment blueprint.
	RegionalParameters map[string]map[string]*string `locationName:"regionalParameters" type:"map"`

	// The timestamp of when the environment blueprint was 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 PutEnvironmentBlueprintConfigurationOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s PutEnvironmentBlueprintConfigurationOutput) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *PutEnvironmentBlueprintConfigurationOutput) SetCreatedAt(v time.Time) *PutEnvironmentBlueprintConfigurationOutput {
	s.CreatedAt = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *PutEnvironmentBlueprintConfigurationOutput) SetDomainId(v string) *PutEnvironmentBlueprintConfigurationOutput {
	s.DomainId = &v
	return s
}

// SetEnabledRegions sets the EnabledRegions field's value.
func (s *PutEnvironmentBlueprintConfigurationOutput) SetEnabledRegions(v []*string) *PutEnvironmentBlueprintConfigurationOutput {
	s.EnabledRegions = v
	return s
}

// SetEnvironmentBlueprintId sets the EnvironmentBlueprintId field's value.
func (s *PutEnvironmentBlueprintConfigurationOutput) SetEnvironmentBlueprintId(v string) *PutEnvironmentBlueprintConfigurationOutput {
	s.EnvironmentBlueprintId = &v
	return s
}

// SetManageAccessRoleArn sets the ManageAccessRoleArn field's value.
func (s *PutEnvironmentBlueprintConfigurationOutput) SetManageAccessRoleArn(v string) *PutEnvironmentBlueprintConfigurationOutput {
	s.ManageAccessRoleArn = &v
	return s
}

// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
func (s *PutEnvironmentBlueprintConfigurationOutput) SetProvisioningRoleArn(v string) *PutEnvironmentBlueprintConfigurationOutput {
	s.ProvisioningRoleArn = &v
	return s
}

// SetRegionalParameters sets the RegionalParameters field's value.
func (s *PutEnvironmentBlueprintConfigurationOutput) SetRegionalParameters(v map[string]map[string]*string) *PutEnvironmentBlueprintConfigurationOutput {
	s.RegionalParameters = v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *PutEnvironmentBlueprintConfigurationOutput) SetUpdatedAt(v time.Time) *PutEnvironmentBlueprintConfigurationOutput {
	s.UpdatedAt = &v
	return s
}

// The recommendation to be updated as part of the UpdateDataSource action.
type RecommendationConfiguration struct {
	_ struct{} `type:"structure"`

	// Specifies whether automatic business name generation is to be enabled or
	// not as part of the recommendation configuration.
	EnableBusinessNameGeneration *bool `locationName:"enableBusinessNameGeneration" type:"boolean"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RecommendationConfiguration) GoString() string {
	return s.String()
}

// SetEnableBusinessNameGeneration sets the EnableBusinessNameGeneration field's value.
func (s *RecommendationConfiguration) SetEnableBusinessNameGeneration(v bool) *RecommendationConfiguration {
	s.EnableBusinessNameGeneration = &v
	return s
}

// The details of the Amazon Redshift cluster storage.
type RedshiftClusterStorage struct {
	_ struct{} `type:"structure"`

	// The name of an Amazon Redshift cluster.
	//
	// ClusterName is a required field
	ClusterName *string `locationName:"clusterName" 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 RedshiftClusterStorage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedshiftClusterStorage) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RedshiftClusterStorage) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RedshiftClusterStorage"}
	if s.ClusterName == nil {
		invalidParams.Add(request.NewErrParamRequired("ClusterName"))
	}
	if s.ClusterName != nil && len(*s.ClusterName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClusterName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClusterName sets the ClusterName field's value.
func (s *RedshiftClusterStorage) SetClusterName(v string) *RedshiftClusterStorage {
	s.ClusterName = &v
	return s
}

// The details of the credentials required to access an Amazon Redshift cluster.
type RedshiftCredentialConfiguration struct {
	_ struct{} `type:"structure"`

	// The ARN of a secret manager for an Amazon Redshift cluster.
	//
	// SecretManagerArn is a required field
	SecretManagerArn *string `locationName:"secretManagerArn" 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 RedshiftCredentialConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedshiftCredentialConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RedshiftCredentialConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RedshiftCredentialConfiguration"}
	if s.SecretManagerArn == nil {
		invalidParams.Add(request.NewErrParamRequired("SecretManagerArn"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSecretManagerArn sets the SecretManagerArn field's value.
func (s *RedshiftCredentialConfiguration) SetSecretManagerArn(v string) *RedshiftCredentialConfiguration {
	s.SecretManagerArn = &v
	return s
}

// The configuration details of the Amazon Redshift data source.
type RedshiftRunConfigurationInput_ struct {
	_ struct{} `type:"structure"`

	// The data access role included in the configuration details of the Amazon
	// Redshift data source.
	DataAccessRole *string `locationName:"dataAccessRole" type:"string"`

	// The details of the credentials required to access an Amazon Redshift cluster.
	//
	// RedshiftCredentialConfiguration is a required field
	RedshiftCredentialConfiguration *RedshiftCredentialConfiguration `locationName:"redshiftCredentialConfiguration" type:"structure" required:"true"`

	// The details of the Amazon Redshift storage as part of the configuration of
	// an Amazon Redshift data source run.
	//
	// RedshiftStorage is a required field
	RedshiftStorage *RedshiftStorage `locationName:"redshiftStorage" type:"structure" required:"true"`

	// The relational filger configurations included in the configuration details
	// of the Amazon Redshift data source.
	//
	// RelationalFilterConfigurations is a required field
	RelationalFilterConfigurations []*RelationalFilterConfiguration `locationName:"relationalFilterConfigurations" 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 RedshiftRunConfigurationInput_) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedshiftRunConfigurationInput_) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RedshiftRunConfigurationInput_) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RedshiftRunConfigurationInput_"}
	if s.RedshiftCredentialConfiguration == nil {
		invalidParams.Add(request.NewErrParamRequired("RedshiftCredentialConfiguration"))
	}
	if s.RedshiftStorage == nil {
		invalidParams.Add(request.NewErrParamRequired("RedshiftStorage"))
	}
	if s.RelationalFilterConfigurations == nil {
		invalidParams.Add(request.NewErrParamRequired("RelationalFilterConfigurations"))
	}
	if s.RedshiftCredentialConfiguration != nil {
		if err := s.RedshiftCredentialConfiguration.Validate(); err != nil {
			invalidParams.AddNested("RedshiftCredentialConfiguration", err.(request.ErrInvalidParams))
		}
	}
	if s.RedshiftStorage != nil {
		if err := s.RedshiftStorage.Validate(); err != nil {
			invalidParams.AddNested("RedshiftStorage", err.(request.ErrInvalidParams))
		}
	}
	if s.RelationalFilterConfigurations != nil {
		for i, v := range s.RelationalFilterConfigurations {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RelationalFilterConfigurations", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDataAccessRole sets the DataAccessRole field's value.
func (s *RedshiftRunConfigurationInput_) SetDataAccessRole(v string) *RedshiftRunConfigurationInput_ {
	s.DataAccessRole = &v
	return s
}

// SetRedshiftCredentialConfiguration sets the RedshiftCredentialConfiguration field's value.
func (s *RedshiftRunConfigurationInput_) SetRedshiftCredentialConfiguration(v *RedshiftCredentialConfiguration) *RedshiftRunConfigurationInput_ {
	s.RedshiftCredentialConfiguration = v
	return s
}

// SetRedshiftStorage sets the RedshiftStorage field's value.
func (s *RedshiftRunConfigurationInput_) SetRedshiftStorage(v *RedshiftStorage) *RedshiftRunConfigurationInput_ {
	s.RedshiftStorage = v
	return s
}

// SetRelationalFilterConfigurations sets the RelationalFilterConfigurations field's value.
func (s *RedshiftRunConfigurationInput_) SetRelationalFilterConfigurations(v []*RelationalFilterConfiguration) *RedshiftRunConfigurationInput_ {
	s.RelationalFilterConfigurations = v
	return s
}

// The configuration details of the Amazon Redshift data source.
type RedshiftRunConfigurationOutput_ struct {
	_ struct{} `type:"structure"`

	// The ID of the Amazon Web Services account included in the configuration details
	// of the Amazon Redshift data source.
	AccountId *string `locationName:"accountId" min:"12" type:"string"`

	// The data access role included in the configuration details of the Amazon
	// Redshift data source.
	DataAccessRole *string `locationName:"dataAccessRole" type:"string"`

	// The details of the credentials required to access an Amazon Redshift cluster.
	//
	// RedshiftCredentialConfiguration is a required field
	RedshiftCredentialConfiguration *RedshiftCredentialConfiguration `locationName:"redshiftCredentialConfiguration" type:"structure" required:"true"`

	// The details of the Amazon Redshift storage as part of the configuration of
	// an Amazon Redshift data source run.
	//
	// RedshiftStorage is a required field
	RedshiftStorage *RedshiftStorage `locationName:"redshiftStorage" type:"structure" required:"true"`

	// The Amazon Web Services region included in the configuration details of the
	// Amazon Redshift data source.
	Region *string `locationName:"region" min:"4" type:"string"`

	// The relational filger configurations included in the configuration details
	// of the Amazon Redshift data source.
	//
	// RelationalFilterConfigurations is a required field
	RelationalFilterConfigurations []*RelationalFilterConfiguration `locationName:"relationalFilterConfigurations" 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 RedshiftRunConfigurationOutput_) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedshiftRunConfigurationOutput_) GoString() string {
	return s.String()
}

// SetAccountId sets the AccountId field's value.
func (s *RedshiftRunConfigurationOutput_) SetAccountId(v string) *RedshiftRunConfigurationOutput_ {
	s.AccountId = &v
	return s
}

// SetDataAccessRole sets the DataAccessRole field's value.
func (s *RedshiftRunConfigurationOutput_) SetDataAccessRole(v string) *RedshiftRunConfigurationOutput_ {
	s.DataAccessRole = &v
	return s
}

// SetRedshiftCredentialConfiguration sets the RedshiftCredentialConfiguration field's value.
func (s *RedshiftRunConfigurationOutput_) SetRedshiftCredentialConfiguration(v *RedshiftCredentialConfiguration) *RedshiftRunConfigurationOutput_ {
	s.RedshiftCredentialConfiguration = v
	return s
}

// SetRedshiftStorage sets the RedshiftStorage field's value.
func (s *RedshiftRunConfigurationOutput_) SetRedshiftStorage(v *RedshiftStorage) *RedshiftRunConfigurationOutput_ {
	s.RedshiftStorage = v
	return s
}

// SetRegion sets the Region field's value.
func (s *RedshiftRunConfigurationOutput_) SetRegion(v string) *RedshiftRunConfigurationOutput_ {
	s.Region = &v
	return s
}

// SetRelationalFilterConfigurations sets the RelationalFilterConfigurations field's value.
func (s *RedshiftRunConfigurationOutput_) SetRelationalFilterConfigurations(v []*RelationalFilterConfiguration) *RedshiftRunConfigurationOutput_ {
	s.RelationalFilterConfigurations = v
	return s
}

// The details of the Amazon Redshift Serverless workgroup storage.
type RedshiftServerlessStorage struct {
	_ struct{} `type:"structure"`

	// The name of the Amazon Redshift Serverless workgroup.
	//
	// WorkgroupName is a required field
	WorkgroupName *string `locationName:"workgroupName" min:"3" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedshiftServerlessStorage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedshiftServerlessStorage) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RedshiftServerlessStorage) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RedshiftServerlessStorage"}
	if s.WorkgroupName == nil {
		invalidParams.Add(request.NewErrParamRequired("WorkgroupName"))
	}
	if s.WorkgroupName != nil && len(*s.WorkgroupName) < 3 {
		invalidParams.Add(request.NewErrParamMinLen("WorkgroupName", 3))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetWorkgroupName sets the WorkgroupName field's value.
func (s *RedshiftServerlessStorage) SetWorkgroupName(v string) *RedshiftServerlessStorage {
	s.WorkgroupName = &v
	return s
}

// The details of the Amazon Redshift storage as part of the configuration of
// an Amazon Redshift data source run.
type RedshiftStorage struct {
	_ struct{} `type:"structure"`

	// The details of the Amazon Redshift cluster source.
	RedshiftClusterSource *RedshiftClusterStorage `locationName:"redshiftClusterSource" type:"structure"`

	// The details of the Amazon Redshift Serverless workgroup source.
	RedshiftServerlessSource *RedshiftServerlessStorage `locationName:"redshiftServerlessSource" 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 RedshiftStorage) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RedshiftStorage) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RedshiftStorage) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RedshiftStorage"}
	if s.RedshiftClusterSource != nil {
		if err := s.RedshiftClusterSource.Validate(); err != nil {
			invalidParams.AddNested("RedshiftClusterSource", err.(request.ErrInvalidParams))
		}
	}
	if s.RedshiftServerlessSource != nil {
		if err := s.RedshiftServerlessSource.Validate(); err != nil {
			invalidParams.AddNested("RedshiftServerlessSource", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetRedshiftClusterSource sets the RedshiftClusterSource field's value.
func (s *RedshiftStorage) SetRedshiftClusterSource(v *RedshiftClusterStorage) *RedshiftStorage {
	s.RedshiftClusterSource = v
	return s
}

// SetRedshiftServerlessSource sets the RedshiftServerlessSource field's value.
func (s *RedshiftStorage) SetRedshiftServerlessSource(v *RedshiftServerlessStorage) *RedshiftStorage {
	s.RedshiftServerlessSource = v
	return s
}

// The details of the automatically generated business metadata that is rejected.
type RejectChoice struct {
	_ struct{} `type:"structure"`

	// Specifies the the automatically generated business metadata that can be rejected.
	PredictionChoices []*int64 `locationName:"predictionChoices" type:"list"`

	// Specifies the target (for example, a column name) where a prediction can
	// be rejected.
	PredictionTarget *string `locationName:"predictionTarget" 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 RejectChoice) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RejectChoice) GoString() string {
	return s.String()
}

// SetPredictionChoices sets the PredictionChoices field's value.
func (s *RejectChoice) SetPredictionChoices(v []*int64) *RejectChoice {
	s.PredictionChoices = v
	return s
}

// SetPredictionTarget sets the PredictionTarget field's value.
func (s *RejectChoice) SetPredictionTarget(v string) *RejectChoice {
	s.PredictionTarget = &v
	return s
}

type RejectPredictionsInput struct {
	_ struct{} `type:"structure"`

	// A unique, case-sensitive identifier that is provided to ensure the idempotency
	// of the request.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// The identifier of the Amazon DataZone domain.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the prediction.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" type:"string" required:"true"`

	RejectChoices []*RejectChoice `locationName:"rejectChoices" type:"list"`

	// Specifies the rule and the threshold under which a prediction can be rejected.
	RejectRule *RejectRule `locationName:"rejectRule" type:"structure"`

	Revision *string `location:"querystring" locationName:"revision" 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 RejectPredictionsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RejectPredictionsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RejectPredictionsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RejectPredictionsInput"}
	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
	}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}
	if s.Revision != nil && len(*s.Revision) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Revision", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClientToken sets the ClientToken field's value.
func (s *RejectPredictionsInput) SetClientToken(v string) *RejectPredictionsInput {
	s.ClientToken = &v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *RejectPredictionsInput) SetDomainIdentifier(v string) *RejectPredictionsInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *RejectPredictionsInput) SetIdentifier(v string) *RejectPredictionsInput {
	s.Identifier = &v
	return s
}

// SetRejectChoices sets the RejectChoices field's value.
func (s *RejectPredictionsInput) SetRejectChoices(v []*RejectChoice) *RejectPredictionsInput {
	s.RejectChoices = v
	return s
}

// SetRejectRule sets the RejectRule field's value.
func (s *RejectPredictionsInput) SetRejectRule(v *RejectRule) *RejectPredictionsInput {
	s.RejectRule = v
	return s
}

// SetRevision sets the Revision field's value.
func (s *RejectPredictionsInput) SetRevision(v string) *RejectPredictionsInput {
	s.Revision = &v
	return s
}

type RejectPredictionsOutput struct {
	_ struct{} `type:"structure"`

	// AssetId is a required field
	AssetId *string `locationName:"assetId" type:"string" required:"true"`

	// AssetRevision is a required field
	AssetRevision *string `locationName:"assetRevision" min:"1" type:"string" required:"true"`

	// DomainId is a required field
	DomainId *string `locationName:"domainId" 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 RejectPredictionsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RejectPredictionsOutput) GoString() string {
	return s.String()
}

// SetAssetId sets the AssetId field's value.
func (s *RejectPredictionsOutput) SetAssetId(v string) *RejectPredictionsOutput {
	s.AssetId = &v
	return s
}

// SetAssetRevision sets the AssetRevision field's value.
func (s *RejectPredictionsOutput) SetAssetRevision(v string) *RejectPredictionsOutput {
	s.AssetRevision = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *RejectPredictionsOutput) SetDomainId(v string) *RejectPredictionsOutput {
	s.DomainId = &v
	return s
}

// Specifies the rule and the threshold under which a prediction can be rejected.
type RejectRule struct {
	_ struct{} `type:"structure"`

	// Specifies whether you want to reject the top prediction for all targets or
	// none.
	Rule *string `locationName:"rule" type:"string" enum:"RejectRuleBehavior"`

	// The confidence score that specifies the condition at which a prediction can
	// be rejected.
	Threshold *float64 `locationName:"threshold" type:"float"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RejectRule) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RejectRule) GoString() string {
	return s.String()
}

// SetRule sets the Rule field's value.
func (s *RejectRule) SetRule(v string) *RejectRule {
	s.Rule = &v
	return s
}

// SetThreshold sets the Threshold field's value.
func (s *RejectRule) SetThreshold(v float64) *RejectRule {
	s.Threshold = &v
	return s
}

type RejectSubscriptionRequestInput struct {
	_ struct{} `type:"structure"`

	// The decision comment of the rejected subscription request.
	//
	// DecisionComment is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by RejectSubscriptionRequestInput's
	// String and GoString methods.
	DecisionComment *string `locationName:"decisionComment" min:"1" type:"string" sensitive:"true"`

	// The identifier of the Amazon DataZone domain in which the subscription request
	// was rejected.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the subscription request that was rejected.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" 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 RejectSubscriptionRequestInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RejectSubscriptionRequestInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RejectSubscriptionRequestInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RejectSubscriptionRequestInput"}
	if s.DecisionComment != nil && len(*s.DecisionComment) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DecisionComment", 1))
	}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDecisionComment sets the DecisionComment field's value.
func (s *RejectSubscriptionRequestInput) SetDecisionComment(v string) *RejectSubscriptionRequestInput {
	s.DecisionComment = &v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *RejectSubscriptionRequestInput) SetDomainIdentifier(v string) *RejectSubscriptionRequestInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *RejectSubscriptionRequestInput) SetIdentifier(v string) *RejectSubscriptionRequestInput {
	s.Identifier = &v
	return s
}

type RejectSubscriptionRequestOutput struct {
	_ struct{} `type:"structure"`

	// The timestamp of when the subscription request was rejected.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`

	// The timestamp of when the subscription request was rejected.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The decision comment of the rejected subscription request.
	//
	// DecisionComment is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by RejectSubscriptionRequestOutput's
	// String and GoString methods.
	DecisionComment *string `locationName:"decisionComment" min:"1" type:"string" sensitive:"true"`

	// The identifier of the Amazon DataZone domain in which the subscription request
	// was rejected.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The identifier of the subscription request that was rejected.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The reason for the subscription request.
	//
	// RequestReason is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by RejectSubscriptionRequestOutput's
	// String and GoString methods.
	//
	// RequestReason is a required field
	RequestReason *string `locationName:"requestReason" min:"1" type:"string" required:"true" sensitive:"true"`

	// The identifier of the subscription request reviewer.
	ReviewerId *string `locationName:"reviewerId" type:"string"`

	// The status of the subscription request.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"SubscriptionRequestStatus"`

	// The subscribed listings of the subscription request.
	//
	// SubscribedListings is a required field
	SubscribedListings []*SubscribedListing `locationName:"subscribedListings" min:"1" type:"list" required:"true"`

	// The subscribed principals of the subscription request.
	//
	// SubscribedPrincipals is a required field
	SubscribedPrincipals []*SubscribedPrincipal `locationName:"subscribedPrincipals" min:"1" type:"list" required:"true"`

	// The timestamp of when the subscription request was updated.
	//
	// UpdatedAt is a required field
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who updated the subscription request.
	UpdatedBy *string `locationName:"updatedBy" 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 RejectSubscriptionRequestOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RejectSubscriptionRequestOutput) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *RejectSubscriptionRequestOutput) SetCreatedAt(v time.Time) *RejectSubscriptionRequestOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *RejectSubscriptionRequestOutput) SetCreatedBy(v string) *RejectSubscriptionRequestOutput {
	s.CreatedBy = &v
	return s
}

// SetDecisionComment sets the DecisionComment field's value.
func (s *RejectSubscriptionRequestOutput) SetDecisionComment(v string) *RejectSubscriptionRequestOutput {
	s.DecisionComment = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *RejectSubscriptionRequestOutput) SetDomainId(v string) *RejectSubscriptionRequestOutput {
	s.DomainId = &v
	return s
}

// SetId sets the Id field's value.
func (s *RejectSubscriptionRequestOutput) SetId(v string) *RejectSubscriptionRequestOutput {
	s.Id = &v
	return s
}

// SetRequestReason sets the RequestReason field's value.
func (s *RejectSubscriptionRequestOutput) SetRequestReason(v string) *RejectSubscriptionRequestOutput {
	s.RequestReason = &v
	return s
}

// SetReviewerId sets the ReviewerId field's value.
func (s *RejectSubscriptionRequestOutput) SetReviewerId(v string) *RejectSubscriptionRequestOutput {
	s.ReviewerId = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *RejectSubscriptionRequestOutput) SetStatus(v string) *RejectSubscriptionRequestOutput {
	s.Status = &v
	return s
}

// SetSubscribedListings sets the SubscribedListings field's value.
func (s *RejectSubscriptionRequestOutput) SetSubscribedListings(v []*SubscribedListing) *RejectSubscriptionRequestOutput {
	s.SubscribedListings = v
	return s
}

// SetSubscribedPrincipals sets the SubscribedPrincipals field's value.
func (s *RejectSubscriptionRequestOutput) SetSubscribedPrincipals(v []*SubscribedPrincipal) *RejectSubscriptionRequestOutput {
	s.SubscribedPrincipals = v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *RejectSubscriptionRequestOutput) SetUpdatedAt(v time.Time) *RejectSubscriptionRequestOutput {
	s.UpdatedAt = &v
	return s
}

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *RejectSubscriptionRequestOutput) SetUpdatedBy(v string) *RejectSubscriptionRequestOutput {
	s.UpdatedBy = &v
	return s
}

// The relational filter configuration for the data source.
type RelationalFilterConfiguration struct {
	_ struct{} `type:"structure"`

	// The database name specified in the relational filter configuration for the
	// data source.
	//
	// DatabaseName is a required field
	DatabaseName *string `locationName:"databaseName" min:"1" type:"string" required:"true"`

	// The filter expressions specified in the relational filter configuration for
	// the data source.
	FilterExpressions []*FilterExpression `locationName:"filterExpressions" type:"list"`

	// The schema name specified in the relational filter configuration for the
	// data source.
	SchemaName *string `locationName:"schemaName" 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 RelationalFilterConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RelationalFilterConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RelationalFilterConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RelationalFilterConfiguration"}
	if s.DatabaseName == nil {
		invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
	}
	if s.DatabaseName != nil && len(*s.DatabaseName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DatabaseName", 1))
	}
	if s.SchemaName != nil && len(*s.SchemaName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SchemaName", 1))
	}
	if s.FilterExpressions != nil {
		for i, v := range s.FilterExpressions {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FilterExpressions", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDatabaseName sets the DatabaseName field's value.
func (s *RelationalFilterConfiguration) SetDatabaseName(v string) *RelationalFilterConfiguration {
	s.DatabaseName = &v
	return s
}

// SetFilterExpressions sets the FilterExpressions field's value.
func (s *RelationalFilterConfiguration) SetFilterExpressions(v []*FilterExpression) *RelationalFilterConfiguration {
	s.FilterExpressions = v
	return s
}

// SetSchemaName sets the SchemaName field's value.
func (s *RelationalFilterConfiguration) SetSchemaName(v string) *RelationalFilterConfiguration {
	s.SchemaName = &v
	return s
}

// The details of a provisioned resource of this Amazon DataZone environment.
type Resource struct {
	_ struct{} `type:"structure"`

	// The name of a provisioned resource of this Amazon DataZone environment.
	Name *string `locationName:"name" type:"string"`

	// The provider of a provisioned resource of this Amazon DataZone environment.
	Provider *string `locationName:"provider" type:"string"`

	// The type of a provisioned resource of this Amazon DataZone environment.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true"`

	// The value of a provisioned resource of this Amazon DataZone environment.
	//
	// Value is a required field
	Value *string `locationName:"value" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Resource) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Resource) GoString() string {
	return s.String()
}

// SetName sets the Name field's value.
func (s *Resource) SetName(v string) *Resource {
	s.Name = &v
	return s
}

// SetProvider sets the Provider field's value.
func (s *Resource) SetProvider(v string) *Resource {
	s.Provider = &v
	return s
}

// SetType sets the Type field's value.
func (s *Resource) SetType(v string) *Resource {
	s.Type = &v
	return s
}

// SetValue sets the Value field's value.
func (s *Resource) SetValue(v string) *Resource {
	s.Value = &v
	return s
}

// The specified resource cannot 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
}

type RevokeSubscriptionInput struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon DataZone domain where you want to revoke a subscription.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the revoked subscription.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" type:"string" required:"true"`

	// Specifies whether permissions are retained when the subscription is revoked.
	RetainPermissions *bool `locationName:"retainPermissions" type:"boolean"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RevokeSubscriptionInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RevokeSubscriptionInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *RevokeSubscriptionInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "RevokeSubscriptionInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *RevokeSubscriptionInput) SetDomainIdentifier(v string) *RevokeSubscriptionInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *RevokeSubscriptionInput) SetIdentifier(v string) *RevokeSubscriptionInput {
	s.Identifier = &v
	return s
}

// SetRetainPermissions sets the RetainPermissions field's value.
func (s *RevokeSubscriptionInput) SetRetainPermissions(v bool) *RevokeSubscriptionInput {
	s.RetainPermissions = &v
	return s
}

type RevokeSubscriptionOutput struct {
	_ struct{} `type:"structure"`

	// The timestamp of when the subscription was revoked.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`

	// The identifier of the user who revoked the subscription.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The identifier of the Amazon DataZone domain where you want to revoke a subscription.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The identifier of the revoked subscription.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// Specifies whether permissions are retained when the subscription is revoked.
	RetainPermissions *bool `locationName:"retainPermissions" type:"boolean"`

	// The status of the revoked subscription.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"SubscriptionStatus"`

	// The subscribed listing of the revoked subscription.
	//
	// SubscribedListing is a required field
	SubscribedListing *SubscribedListing `locationName:"subscribedListing" type:"structure" required:"true"`

	// The subscribed principal of the revoked subscription.
	//
	// SubscribedPrincipal is a required field
	SubscribedPrincipal *SubscribedPrincipal `locationName:"subscribedPrincipal" type:"structure" required:"true"`

	// The identifier of the subscription request for the revoked subscription.
	SubscriptionRequestId *string `locationName:"subscriptionRequestId" type:"string"`

	// The timestamp of when the subscription was revoked.
	//
	// UpdatedAt is a required field
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who revoked the subscription.
	UpdatedBy *string `locationName:"updatedBy" 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 RevokeSubscriptionOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RevokeSubscriptionOutput) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *RevokeSubscriptionOutput) SetCreatedAt(v time.Time) *RevokeSubscriptionOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *RevokeSubscriptionOutput) SetCreatedBy(v string) *RevokeSubscriptionOutput {
	s.CreatedBy = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *RevokeSubscriptionOutput) SetDomainId(v string) *RevokeSubscriptionOutput {
	s.DomainId = &v
	return s
}

// SetId sets the Id field's value.
func (s *RevokeSubscriptionOutput) SetId(v string) *RevokeSubscriptionOutput {
	s.Id = &v
	return s
}

// SetRetainPermissions sets the RetainPermissions field's value.
func (s *RevokeSubscriptionOutput) SetRetainPermissions(v bool) *RevokeSubscriptionOutput {
	s.RetainPermissions = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *RevokeSubscriptionOutput) SetStatus(v string) *RevokeSubscriptionOutput {
	s.Status = &v
	return s
}

// SetSubscribedListing sets the SubscribedListing field's value.
func (s *RevokeSubscriptionOutput) SetSubscribedListing(v *SubscribedListing) *RevokeSubscriptionOutput {
	s.SubscribedListing = v
	return s
}

// SetSubscribedPrincipal sets the SubscribedPrincipal field's value.
func (s *RevokeSubscriptionOutput) SetSubscribedPrincipal(v *SubscribedPrincipal) *RevokeSubscriptionOutput {
	s.SubscribedPrincipal = v
	return s
}

// SetSubscriptionRequestId sets the SubscriptionRequestId field's value.
func (s *RevokeSubscriptionOutput) SetSubscriptionRequestId(v string) *RevokeSubscriptionOutput {
	s.SubscriptionRequestId = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *RevokeSubscriptionOutput) SetUpdatedAt(v time.Time) *RevokeSubscriptionOutput {
	s.UpdatedAt = &v
	return s
}

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *RevokeSubscriptionOutput) SetUpdatedBy(v string) *RevokeSubscriptionOutput {
	s.UpdatedBy = &v
	return s
}

// The asset statistics from the data source run.
type RunStatisticsForAssets struct {
	_ struct{} `type:"structure"`

	// The added statistic for the data source run.
	Added *int64 `locationName:"added" type:"integer"`

	// The failed statistic for the data source run.
	Failed *int64 `locationName:"failed" type:"integer"`

	// The skipped statistic for the data source run.
	Skipped *int64 `locationName:"skipped" type:"integer"`

	// The unchanged statistic for the data source run.
	Unchanged *int64 `locationName:"unchanged" type:"integer"`

	// The updated statistic for the data source run.
	Updated *int64 `locationName:"updated" 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 RunStatisticsForAssets) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s RunStatisticsForAssets) GoString() string {
	return s.String()
}

// SetAdded sets the Added field's value.
func (s *RunStatisticsForAssets) SetAdded(v int64) *RunStatisticsForAssets {
	s.Added = &v
	return s
}

// SetFailed sets the Failed field's value.
func (s *RunStatisticsForAssets) SetFailed(v int64) *RunStatisticsForAssets {
	s.Failed = &v
	return s
}

// SetSkipped sets the Skipped field's value.
func (s *RunStatisticsForAssets) SetSkipped(v int64) *RunStatisticsForAssets {
	s.Skipped = &v
	return s
}

// SetUnchanged sets the Unchanged field's value.
func (s *RunStatisticsForAssets) SetUnchanged(v int64) *RunStatisticsForAssets {
	s.Unchanged = &v
	return s
}

// SetUpdated sets the Updated field's value.
func (s *RunStatisticsForAssets) SetUpdated(v int64) *RunStatisticsForAssets {
	s.Updated = &v
	return s
}

// The details of the schedule of the data source runs.
type ScheduleConfiguration struct {
	_ struct{} `type:"structure" sensitive:"true"`

	// The schedule of the data source runs.
	Schedule *string `locationName:"schedule" min:"1" type:"string"`

	// The timezone of the data source run.
	Timezone *string `locationName:"timezone" type:"string" enum:"Timezone"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ScheduleConfiguration) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ScheduleConfiguration) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *ScheduleConfiguration) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ScheduleConfiguration"}
	if s.Schedule != nil && len(*s.Schedule) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Schedule", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetSchedule sets the Schedule field's value.
func (s *ScheduleConfiguration) SetSchedule(v string) *ScheduleConfiguration {
	s.Schedule = &v
	return s
}

// SetTimezone sets the Timezone field's value.
func (s *ScheduleConfiguration) SetTimezone(v string) *ScheduleConfiguration {
	s.Timezone = &v
	return s
}

type SearchGroupProfilesInput struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon DataZone domain in which you want to search
	// group profiles.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The group type for which to search.
	//
	// GroupType is a required field
	GroupType *string `locationName:"groupType" type:"string" required:"true" enum:"GroupSearchType"`

	// The maximum number of results to return in a single call to SearchGroupProfiles.
	// When the number of results to be listed is greater than the value of MaxResults,
	// the response contains a NextToken value that you can use in a subsequent
	// call to SearchGroupProfiles to list the next set of results.
	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`

	// When the number of results is greater than the default value for the MaxResults
	// parameter, or if you explicitly specify a value for MaxResults that is less
	// than the number of results, the response includes a pagination token named
	// NextToken. You can specify this NextToken value in a subsequent call to SearchGroupProfiles
	// to list the next set of results.
	NextToken *string `locationName:"nextToken" min:"1" type:"string"`

	// Specifies the text for which to search.
	//
	// SearchText is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by SearchGroupProfilesInput's
	// String and GoString methods.
	SearchText *string `locationName:"searchText" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchGroupProfilesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchGroupProfilesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SearchGroupProfilesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SearchGroupProfilesInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.GroupType == nil {
		invalidParams.Add(request.NewErrParamRequired("GroupType"))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *SearchGroupProfilesInput) SetDomainIdentifier(v string) *SearchGroupProfilesInput {
	s.DomainIdentifier = &v
	return s
}

// SetGroupType sets the GroupType field's value.
func (s *SearchGroupProfilesInput) SetGroupType(v string) *SearchGroupProfilesInput {
	s.GroupType = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *SearchGroupProfilesInput) SetMaxResults(v int64) *SearchGroupProfilesInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *SearchGroupProfilesInput) SetNextToken(v string) *SearchGroupProfilesInput {
	s.NextToken = &v
	return s
}

// SetSearchText sets the SearchText field's value.
func (s *SearchGroupProfilesInput) SetSearchText(v string) *SearchGroupProfilesInput {
	s.SearchText = &v
	return s
}

type SearchGroupProfilesOutput struct {
	_ struct{} `type:"structure"`

	// The results of the SearchGroupProfiles action.
	Items []*GroupProfileSummary `locationName:"items" type:"list"`

	// When the number of results is greater than the default value for the MaxResults
	// parameter, or if you explicitly specify a value for MaxResults that is less
	// than the number of results, the response includes a pagination token named
	// NextToken. You can specify this NextToken value in a subsequent call to SearchGroupProfiles
	// to list the next set of results.
	NextToken *string `locationName:"nextToken" 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 SearchGroupProfilesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchGroupProfilesOutput) GoString() string {
	return s.String()
}

// SetItems sets the Items field's value.
func (s *SearchGroupProfilesOutput) SetItems(v []*GroupProfileSummary) *SearchGroupProfilesOutput {
	s.Items = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *SearchGroupProfilesOutput) SetNextToken(v string) *SearchGroupProfilesOutput {
	s.NextToken = &v
	return s
}

// The details of the search.
type SearchInItem struct {
	_ struct{} `type:"structure"`

	// The search attribute.
	//
	// Attribute is a required field
	Attribute *string `locationName:"attribute" 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 SearchInItem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchInItem) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SearchInItem) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SearchInItem"}
	if s.Attribute == nil {
		invalidParams.Add(request.NewErrParamRequired("Attribute"))
	}
	if s.Attribute != nil && len(*s.Attribute) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Attribute", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAttribute sets the Attribute field's value.
func (s *SearchInItem) SetAttribute(v string) *SearchInItem {
	s.Attribute = &v
	return s
}

type SearchInput struct {
	_ struct{} `type:"structure"`

	// Specifies additional attributes for the Search action.
	AdditionalAttributes []*string `locationName:"additionalAttributes" type:"list" enum:"SearchOutputAdditionalAttribute"`

	// The identifier of the Amazon DataZone domain.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// Specifies the search filters.
	Filters *FilterClause `locationName:"filters" type:"structure"`

	// The maximum number of results to return in a single call to Search. When
	// the number of results to be listed is greater than the value of MaxResults,
	// the response contains a NextToken value that you can use in a subsequent
	// call to Search to list the next set of results.
	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`

	// When the number of results is greater than the default value for the MaxResults
	// parameter, or if you explicitly specify a value for MaxResults that is less
	// than the number of results, the response includes a pagination token named
	// NextToken. You can specify this NextToken value in a subsequent call to Search
	// to list the next set of results.
	NextToken *string `locationName:"nextToken" min:"1" type:"string"`

	// The identifier of the owning project specified for the search.
	OwningProjectIdentifier *string `locationName:"owningProjectIdentifier" type:"string"`

	SearchIn []*SearchInItem `locationName:"searchIn" min:"1" type:"list"`

	// The scope of the search.
	//
	// SearchScope is a required field
	SearchScope *string `locationName:"searchScope" type:"string" required:"true" enum:"InventorySearchScope"`

	// Specifies the text for which to search.
	SearchText *string `locationName:"searchText" min:"1" type:"string"`

	// Specifies the way in which the search results are to be sorted.
	Sort *SearchSort `locationName:"sort" 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 SearchInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SearchInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SearchInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}
	if s.SearchIn != nil && len(s.SearchIn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SearchIn", 1))
	}
	if s.SearchScope == nil {
		invalidParams.Add(request.NewErrParamRequired("SearchScope"))
	}
	if s.SearchText != nil && len(*s.SearchText) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SearchText", 1))
	}
	if s.Filters != nil {
		if err := s.Filters.Validate(); err != nil {
			invalidParams.AddNested("Filters", err.(request.ErrInvalidParams))
		}
	}
	if s.SearchIn != nil {
		for i, v := range s.SearchIn {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SearchIn", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.Sort != nil {
		if err := s.Sort.Validate(); err != nil {
			invalidParams.AddNested("Sort", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAdditionalAttributes sets the AdditionalAttributes field's value.
func (s *SearchInput) SetAdditionalAttributes(v []*string) *SearchInput {
	s.AdditionalAttributes = v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *SearchInput) SetDomainIdentifier(v string) *SearchInput {
	s.DomainIdentifier = &v
	return s
}

// SetFilters sets the Filters field's value.
func (s *SearchInput) SetFilters(v *FilterClause) *SearchInput {
	s.Filters = v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *SearchInput) SetMaxResults(v int64) *SearchInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *SearchInput) SetNextToken(v string) *SearchInput {
	s.NextToken = &v
	return s
}

// SetOwningProjectIdentifier sets the OwningProjectIdentifier field's value.
func (s *SearchInput) SetOwningProjectIdentifier(v string) *SearchInput {
	s.OwningProjectIdentifier = &v
	return s
}

// SetSearchIn sets the SearchIn field's value.
func (s *SearchInput) SetSearchIn(v []*SearchInItem) *SearchInput {
	s.SearchIn = v
	return s
}

// SetSearchScope sets the SearchScope field's value.
func (s *SearchInput) SetSearchScope(v string) *SearchInput {
	s.SearchScope = &v
	return s
}

// SetSearchText sets the SearchText field's value.
func (s *SearchInput) SetSearchText(v string) *SearchInput {
	s.SearchText = &v
	return s
}

// SetSort sets the Sort field's value.
func (s *SearchInput) SetSort(v *SearchSort) *SearchInput {
	s.Sort = v
	return s
}

// The details of the search results.
type SearchInventoryResultItem struct {
	_ struct{} `type:"structure"`

	// The asset item included in the search results.
	AssetItem *AssetItem `locationName:"assetItem" type:"structure"`

	// The data product item included in the search results.
	DataProductItem *DataProductSummary `locationName:"dataProductItem" type:"structure"`

	// The glossary item included in the search results.
	GlossaryItem *GlossaryItem `locationName:"glossaryItem" type:"structure"`

	// The glossary term item included in the search results.
	GlossaryTermItem *GlossaryTermItem `locationName:"glossaryTermItem" 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 SearchInventoryResultItem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchInventoryResultItem) GoString() string {
	return s.String()
}

// SetAssetItem sets the AssetItem field's value.
func (s *SearchInventoryResultItem) SetAssetItem(v *AssetItem) *SearchInventoryResultItem {
	s.AssetItem = v
	return s
}

// SetDataProductItem sets the DataProductItem field's value.
func (s *SearchInventoryResultItem) SetDataProductItem(v *DataProductSummary) *SearchInventoryResultItem {
	s.DataProductItem = v
	return s
}

// SetGlossaryItem sets the GlossaryItem field's value.
func (s *SearchInventoryResultItem) SetGlossaryItem(v *GlossaryItem) *SearchInventoryResultItem {
	s.GlossaryItem = v
	return s
}

// SetGlossaryTermItem sets the GlossaryTermItem field's value.
func (s *SearchInventoryResultItem) SetGlossaryTermItem(v *GlossaryTermItem) *SearchInventoryResultItem {
	s.GlossaryTermItem = v
	return s
}

type SearchListingsInput struct {
	_ struct{} `type:"structure"`

	// Specifies additional attributes for the search.
	AdditionalAttributes []*string `locationName:"additionalAttributes" type:"list" enum:"SearchOutputAdditionalAttribute"`

	// The identifier of the domain in which to search listings.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// Specifies the filters for the search of listings.
	Filters *FilterClause `locationName:"filters" type:"structure"`

	// The maximum number of results to return in a single call to SearchListings.
	// When the number of results to be listed is greater than the value of MaxResults,
	// the response contains a NextToken value that you can use in a subsequent
	// call to SearchListings to list the next set of results.
	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`

	// When the number of results is greater than the default value for the MaxResults
	// parameter, or if you explicitly specify a value for MaxResults that is less
	// than the number of results, the response includes a pagination token named
	// NextToken. You can specify this NextToken value in a subsequent call to SearchListings
	// to list the next set of results.
	NextToken *string `locationName:"nextToken" min:"1" type:"string"`

	SearchIn []*SearchInItem `locationName:"searchIn" min:"1" type:"list"`

	// Specifies the text for which to search.
	SearchText *string `locationName:"searchText" type:"string"`

	// Specifies the way for sorting the search results.
	Sort *SearchSort `locationName:"sort" 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 SearchListingsInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchListingsInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SearchListingsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SearchListingsInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}
	if s.SearchIn != nil && len(s.SearchIn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SearchIn", 1))
	}
	if s.Filters != nil {
		if err := s.Filters.Validate(); err != nil {
			invalidParams.AddNested("Filters", err.(request.ErrInvalidParams))
		}
	}
	if s.SearchIn != nil {
		for i, v := range s.SearchIn {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SearchIn", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.Sort != nil {
		if err := s.Sort.Validate(); err != nil {
			invalidParams.AddNested("Sort", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAdditionalAttributes sets the AdditionalAttributes field's value.
func (s *SearchListingsInput) SetAdditionalAttributes(v []*string) *SearchListingsInput {
	s.AdditionalAttributes = v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *SearchListingsInput) SetDomainIdentifier(v string) *SearchListingsInput {
	s.DomainIdentifier = &v
	return s
}

// SetFilters sets the Filters field's value.
func (s *SearchListingsInput) SetFilters(v *FilterClause) *SearchListingsInput {
	s.Filters = v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *SearchListingsInput) SetMaxResults(v int64) *SearchListingsInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *SearchListingsInput) SetNextToken(v string) *SearchListingsInput {
	s.NextToken = &v
	return s
}

// SetSearchIn sets the SearchIn field's value.
func (s *SearchListingsInput) SetSearchIn(v []*SearchInItem) *SearchListingsInput {
	s.SearchIn = v
	return s
}

// SetSearchText sets the SearchText field's value.
func (s *SearchListingsInput) SetSearchText(v string) *SearchListingsInput {
	s.SearchText = &v
	return s
}

// SetSort sets the Sort field's value.
func (s *SearchListingsInput) SetSort(v *SearchSort) *SearchListingsInput {
	s.Sort = v
	return s
}

type SearchListingsOutput struct {
	_ struct{} `type:"structure"`

	// The results of the SearchListings action.
	Items []*SearchResultItem `locationName:"items" type:"list"`

	// When the number of results is greater than the default value for the MaxResults
	// parameter, or if you explicitly specify a value for MaxResults that is less
	// than the number of results, the response includes a pagination token named
	// NextToken. You can specify this NextToken value in a subsequent call to SearchListings
	// to list the next set of results.
	NextToken *string `locationName:"nextToken" min:"1" type:"string"`

	// Total number of search results.
	TotalMatchCount *int64 `locationName:"totalMatchCount" 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 SearchListingsOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchListingsOutput) GoString() string {
	return s.String()
}

// SetItems sets the Items field's value.
func (s *SearchListingsOutput) SetItems(v []*SearchResultItem) *SearchListingsOutput {
	s.Items = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *SearchListingsOutput) SetNextToken(v string) *SearchListingsOutput {
	s.NextToken = &v
	return s
}

// SetTotalMatchCount sets the TotalMatchCount field's value.
func (s *SearchListingsOutput) SetTotalMatchCount(v int64) *SearchListingsOutput {
	s.TotalMatchCount = &v
	return s
}

type SearchOutput struct {
	_ struct{} `type:"structure"`

	// The results of the Search action.
	Items []*SearchInventoryResultItem `locationName:"items" type:"list"`

	// When the number of results is greater than the default value for the MaxResults
	// parameter, or if you explicitly specify a value for MaxResults that is less
	// than the number of results, the response includes a pagination token named
	// NextToken. You can specify this NextToken value in a subsequent call to Search
	// to list the next set of results.
	NextToken *string `locationName:"nextToken" min:"1" type:"string"`

	// Total number of search results.
	TotalMatchCount *int64 `locationName:"totalMatchCount" 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 SearchOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchOutput) GoString() string {
	return s.String()
}

// SetItems sets the Items field's value.
func (s *SearchOutput) SetItems(v []*SearchInventoryResultItem) *SearchOutput {
	s.Items = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *SearchOutput) SetNextToken(v string) *SearchOutput {
	s.NextToken = &v
	return s
}

// SetTotalMatchCount sets the TotalMatchCount field's value.
func (s *SearchOutput) SetTotalMatchCount(v int64) *SearchOutput {
	s.TotalMatchCount = &v
	return s
}

// The details of the results of the SearchListings action.
type SearchResultItem struct {
	_ struct{} `type:"structure"`

	// The asset listing included in the results of the SearchListings action.
	AssetListing *AssetListingItem `locationName:"assetListing" 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 SearchResultItem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchResultItem) GoString() string {
	return s.String()
}

// SetAssetListing sets the AssetListing field's value.
func (s *SearchResultItem) SetAssetListing(v *AssetListingItem) *SearchResultItem {
	s.AssetListing = v
	return s
}

// The details of the way to sort search results.
type SearchSort struct {
	_ struct{} `type:"structure"`

	// The attribute detail of the way to sort search results.
	//
	// Attribute is a required field
	Attribute *string `locationName:"attribute" min:"1" type:"string" required:"true"`

	// The order detail of the wya to sort search results.
	Order *string `locationName:"order" type:"string" enum:"SortOrder"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchSort) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchSort) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SearchSort) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SearchSort"}
	if s.Attribute == nil {
		invalidParams.Add(request.NewErrParamRequired("Attribute"))
	}
	if s.Attribute != nil && len(*s.Attribute) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Attribute", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAttribute sets the Attribute field's value.
func (s *SearchSort) SetAttribute(v string) *SearchSort {
	s.Attribute = &v
	return s
}

// SetOrder sets the Order field's value.
func (s *SearchSort) SetOrder(v string) *SearchSort {
	s.Order = &v
	return s
}

type SearchTypesInput struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon DataZone domain in which to invoke the SearchTypes
	// action.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The filters for the SearchTypes action.
	Filters *FilterClause `locationName:"filters" type:"structure"`

	// Managed is a required field
	Managed *bool `locationName:"managed" type:"boolean" required:"true"`

	// The maximum number of results to return in a single call to SearchTypes.
	// When the number of results to be listed is greater than the value of MaxResults,
	// the response contains a NextToken value that you can use in a subsequent
	// call to SearchTypes to list the next set of results.
	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`

	// When the number of results is greater than the default value for the MaxResults
	// parameter, or if you explicitly specify a value for MaxResults that is less
	// than the number of results, the response includes a pagination token named
	// NextToken. You can specify this NextToken value in a subsequent call to SearchTypes
	// to list the next set of results.
	NextToken *string `locationName:"nextToken" min:"1" type:"string"`

	SearchIn []*SearchInItem `locationName:"searchIn" min:"1" type:"list"`

	// Specifies the scope of the search for types.
	//
	// SearchScope is a required field
	SearchScope *string `locationName:"searchScope" type:"string" required:"true" enum:"TypesSearchScope"`

	// Specifies the text for which to search.
	SearchText *string `locationName:"searchText" min:"1" type:"string"`

	// The specifies the way to sort the SearchTypes results.
	Sort *SearchSort `locationName:"sort" 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 SearchTypesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchTypesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SearchTypesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SearchTypesInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Managed == nil {
		invalidParams.Add(request.NewErrParamRequired("Managed"))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}
	if s.SearchIn != nil && len(s.SearchIn) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SearchIn", 1))
	}
	if s.SearchScope == nil {
		invalidParams.Add(request.NewErrParamRequired("SearchScope"))
	}
	if s.SearchText != nil && len(*s.SearchText) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SearchText", 1))
	}
	if s.Filters != nil {
		if err := s.Filters.Validate(); err != nil {
			invalidParams.AddNested("Filters", err.(request.ErrInvalidParams))
		}
	}
	if s.SearchIn != nil {
		for i, v := range s.SearchIn {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SearchIn", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.Sort != nil {
		if err := s.Sort.Validate(); err != nil {
			invalidParams.AddNested("Sort", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *SearchTypesInput) SetDomainIdentifier(v string) *SearchTypesInput {
	s.DomainIdentifier = &v
	return s
}

// SetFilters sets the Filters field's value.
func (s *SearchTypesInput) SetFilters(v *FilterClause) *SearchTypesInput {
	s.Filters = v
	return s
}

// SetManaged sets the Managed field's value.
func (s *SearchTypesInput) SetManaged(v bool) *SearchTypesInput {
	s.Managed = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *SearchTypesInput) SetMaxResults(v int64) *SearchTypesInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *SearchTypesInput) SetNextToken(v string) *SearchTypesInput {
	s.NextToken = &v
	return s
}

// SetSearchIn sets the SearchIn field's value.
func (s *SearchTypesInput) SetSearchIn(v []*SearchInItem) *SearchTypesInput {
	s.SearchIn = v
	return s
}

// SetSearchScope sets the SearchScope field's value.
func (s *SearchTypesInput) SetSearchScope(v string) *SearchTypesInput {
	s.SearchScope = &v
	return s
}

// SetSearchText sets the SearchText field's value.
func (s *SearchTypesInput) SetSearchText(v string) *SearchTypesInput {
	s.SearchText = &v
	return s
}

// SetSort sets the Sort field's value.
func (s *SearchTypesInput) SetSort(v *SearchSort) *SearchTypesInput {
	s.Sort = v
	return s
}

type SearchTypesOutput struct {
	_ struct{} `type:"structure"`

	// The results of the SearchTypes action.
	Items []*SearchTypesResultItem `locationName:"items" type:"list"`

	// When the number of results is greater than the default value for the MaxResults
	// parameter, or if you explicitly specify a value for MaxResults that is less
	// than the number of results, the response includes a pagination token named
	// NextToken. You can specify this NextToken value in a subsequent call to SearchTypes
	// to list the next set of results.
	NextToken *string `locationName:"nextToken" min:"1" type:"string"`

	// Total number of search results.
	TotalMatchCount *int64 `locationName:"totalMatchCount" 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 SearchTypesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchTypesOutput) GoString() string {
	return s.String()
}

// SetItems sets the Items field's value.
func (s *SearchTypesOutput) SetItems(v []*SearchTypesResultItem) *SearchTypesOutput {
	s.Items = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *SearchTypesOutput) SetNextToken(v string) *SearchTypesOutput {
	s.NextToken = &v
	return s
}

// SetTotalMatchCount sets the TotalMatchCount field's value.
func (s *SearchTypesOutput) SetTotalMatchCount(v int64) *SearchTypesOutput {
	s.TotalMatchCount = &v
	return s
}

// The details of the results of the SearchTypes action.
type SearchTypesResultItem struct {
	_ struct{} `type:"structure"`

	// The asset type included in the results of the SearchTypes action.
	AssetTypeItem *AssetTypeItem `locationName:"assetTypeItem" type:"structure"`

	// The form type included in the results of the SearchTypes action.
	FormTypeItem *FormTypeData `locationName:"formTypeItem" 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 SearchTypesResultItem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchTypesResultItem) GoString() string {
	return s.String()
}

// SetAssetTypeItem sets the AssetTypeItem field's value.
func (s *SearchTypesResultItem) SetAssetTypeItem(v *AssetTypeItem) *SearchTypesResultItem {
	s.AssetTypeItem = v
	return s
}

// SetFormTypeItem sets the FormTypeItem field's value.
func (s *SearchTypesResultItem) SetFormTypeItem(v *FormTypeData) *SearchTypesResultItem {
	s.FormTypeItem = v
	return s
}

type SearchUserProfilesInput struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon DataZone domain in which you want to search
	// user profiles.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The maximum number of results to return in a single call to SearchUserProfiles.
	// When the number of results to be listed is greater than the value of MaxResults,
	// the response contains a NextToken value that you can use in a subsequent
	// call to SearchUserProfiles to list the next set of results.
	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`

	// When the number of results is greater than the default value for the MaxResults
	// parameter, or if you explicitly specify a value for MaxResults that is less
	// than the number of results, the response includes a pagination token named
	// NextToken. You can specify this NextToken value in a subsequent call to SearchUserProfiles
	// to list the next set of results.
	NextToken *string `locationName:"nextToken" min:"1" type:"string"`

	// Specifies the text for which to search.
	//
	// SearchText is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by SearchUserProfilesInput's
	// String and GoString methods.
	SearchText *string `locationName:"searchText" type:"string" sensitive:"true"`

	// Specifies the user type for the SearchUserProfiles action.
	//
	// UserType is a required field
	UserType *string `locationName:"userType" type:"string" required:"true" enum:"UserSearchType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchUserProfilesInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchUserProfilesInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SearchUserProfilesInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SearchUserProfilesInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.MaxResults != nil && *s.MaxResults < 1 {
		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
	}
	if s.NextToken != nil && len(*s.NextToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
	}
	if s.UserType == nil {
		invalidParams.Add(request.NewErrParamRequired("UserType"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *SearchUserProfilesInput) SetDomainIdentifier(v string) *SearchUserProfilesInput {
	s.DomainIdentifier = &v
	return s
}

// SetMaxResults sets the MaxResults field's value.
func (s *SearchUserProfilesInput) SetMaxResults(v int64) *SearchUserProfilesInput {
	s.MaxResults = &v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *SearchUserProfilesInput) SetNextToken(v string) *SearchUserProfilesInput {
	s.NextToken = &v
	return s
}

// SetSearchText sets the SearchText field's value.
func (s *SearchUserProfilesInput) SetSearchText(v string) *SearchUserProfilesInput {
	s.SearchText = &v
	return s
}

// SetUserType sets the UserType field's value.
func (s *SearchUserProfilesInput) SetUserType(v string) *SearchUserProfilesInput {
	s.UserType = &v
	return s
}

type SearchUserProfilesOutput struct {
	_ struct{} `type:"structure"`

	// The results of the SearchUserProfiles action.
	Items []*UserProfileSummary `locationName:"items" type:"list"`

	// When the number of results is greater than the default value for the MaxResults
	// parameter, or if you explicitly specify a value for MaxResults that is less
	// than the number of results, the response includes a pagination token named
	// NextToken. You can specify this NextToken value in a subsequent call to SearchUserProfiles
	// to list the next set of results.
	NextToken *string `locationName:"nextToken" 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 SearchUserProfilesOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SearchUserProfilesOutput) GoString() string {
	return s.String()
}

// SetItems sets the Items field's value.
func (s *SearchUserProfilesOutput) SetItems(v []*UserProfileSummary) *SearchUserProfilesOutput {
	s.Items = v
	return s
}

// SetNextToken sets the NextToken field's value.
func (s *SearchUserProfilesOutput) SetNextToken(v string) *SearchUserProfilesOutput {
	s.NextToken = &v
	return s
}

// The request has exceeded the specified service quota.
type ServiceQuotaExceededException 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 ServiceQuotaExceededException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ServiceQuotaExceededException) GoString() string {
	return s.String()
}

func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error {
	return &ServiceQuotaExceededException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ServiceQuotaExceededException) Code() string {
	return "ServiceQuotaExceededException"
}

// Message returns the exception's message.
func (s *ServiceQuotaExceededException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ServiceQuotaExceededException) OrigErr() error {
	return nil
}

func (s *ServiceQuotaExceededException) Error() string {
	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
}

// Status code returns the HTTP status code for the request's response error.
func (s *ServiceQuotaExceededException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ServiceQuotaExceededException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The single sign-on details in Amazon DataZone.
type SingleSignOn struct {
	_ struct{} `type:"structure"`

	// The type of single sign-on in Amazon DataZone.
	Type *string `locationName:"type" type:"string" enum:"AuthType"`

	// The single sign-on user assignment in Amazon DataZone.
	UserAssignment *string `locationName:"userAssignment" type:"string" enum:"UserAssignment"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SingleSignOn) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SingleSignOn) GoString() string {
	return s.String()
}

// SetType sets the Type field's value.
func (s *SingleSignOn) SetType(v string) *SingleSignOn {
	s.Type = &v
	return s
}

// SetUserAssignment sets the UserAssignment field's value.
func (s *SingleSignOn) SetUserAssignment(v string) *SingleSignOn {
	s.UserAssignment = &v
	return s
}

// The single sign-on details of the user profile.
type SsoUserProfileDetails struct {
	_ struct{} `type:"structure"`

	// The first name included in the single sign-on details of the user profile.
	//
	// FirstName is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by SsoUserProfileDetails's
	// String and GoString methods.
	FirstName *string `locationName:"firstName" type:"string" sensitive:"true"`

	// The last name included in the single sign-on details of the user profile.
	//
	// LastName is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by SsoUserProfileDetails's
	// String and GoString methods.
	LastName *string `locationName:"lastName" type:"string" sensitive:"true"`

	// The username included in the single sign-on details of the user profile.
	//
	// Username is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by SsoUserProfileDetails's
	// String and GoString methods.
	Username *string `locationName:"username" min:"1" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SsoUserProfileDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SsoUserProfileDetails) GoString() string {
	return s.String()
}

// SetFirstName sets the FirstName field's value.
func (s *SsoUserProfileDetails) SetFirstName(v string) *SsoUserProfileDetails {
	s.FirstName = &v
	return s
}

// SetLastName sets the LastName field's value.
func (s *SsoUserProfileDetails) SetLastName(v string) *SsoUserProfileDetails {
	s.LastName = &v
	return s
}

// SetUsername sets the Username field's value.
func (s *SsoUserProfileDetails) SetUsername(v string) *SsoUserProfileDetails {
	s.Username = &v
	return s
}

type StartDataSourceRunInput struct {
	_ struct{} `type:"structure"`

	// A unique, case-sensitive identifier that is provided to ensure the idempotency
	// of the request.
	ClientToken *string `locationName:"clientToken" type:"string" idempotencyToken:"true"`

	// The identifier of the data source.
	//
	// DataSourceIdentifier is a required field
	DataSourceIdentifier *string `location:"uri" locationName:"dataSourceIdentifier" type:"string" required:"true"`

	// The identifier of the Amazon DataZone domain in which to start a data source
	// run.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" 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 StartDataSourceRunInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartDataSourceRunInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *StartDataSourceRunInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "StartDataSourceRunInput"}
	if s.DataSourceIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DataSourceIdentifier"))
	}
	if s.DataSourceIdentifier != nil && len(*s.DataSourceIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DataSourceIdentifier", 1))
	}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClientToken sets the ClientToken field's value.
func (s *StartDataSourceRunInput) SetClientToken(v string) *StartDataSourceRunInput {
	s.ClientToken = &v
	return s
}

// SetDataSourceIdentifier sets the DataSourceIdentifier field's value.
func (s *StartDataSourceRunInput) SetDataSourceIdentifier(v string) *StartDataSourceRunInput {
	s.DataSourceIdentifier = &v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *StartDataSourceRunInput) SetDomainIdentifier(v string) *StartDataSourceRunInput {
	s.DomainIdentifier = &v
	return s
}

type StartDataSourceRunOutput struct {
	_ struct{} `type:"structure"`

	// The timestamp of when data source run was created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601" required:"true"`

	// The configuration snapshot of the data source that is being run.
	DataSourceConfigurationSnapshot *string `locationName:"dataSourceConfigurationSnapshot" type:"string"`

	// The identifier of the data source.
	//
	// DataSourceId is a required field
	DataSourceId *string `locationName:"dataSourceId" type:"string" required:"true"`

	// The identifier of the Amazon DataZone domain in which to start a data source
	// run.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// Specifies the error message that is returned if the operation cannot be successfully
	// completed.
	ErrorMessage *DataSourceErrorMessage `locationName:"errorMessage" type:"structure"`

	// The identifier of the data source run.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The identifier of the project.
	//
	// ProjectId is a required field
	ProjectId *string `locationName:"projectId" type:"string" required:"true"`

	// Specifies run statistics for assets.
	RunStatisticsForAssets *RunStatisticsForAssets `locationName:"runStatisticsForAssets" type:"structure"`

	// The timestamp of when the data source run was started.
	StartedAt *time.Time `locationName:"startedAt" type:"timestamp" timestampFormat:"iso8601"`

	// The status of the data source run.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"DataSourceRunStatus"`

	// The timestamp of when the data source run was stopped.
	StoppedAt *time.Time `locationName:"stoppedAt" type:"timestamp" timestampFormat:"iso8601"`

	// The type of the data source run.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true" enum:"DataSourceRunType"`

	// The timestamp of when the data source run was updated.
	//
	// UpdatedAt is a required field
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601" 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 StartDataSourceRunOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s StartDataSourceRunOutput) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *StartDataSourceRunOutput) SetCreatedAt(v time.Time) *StartDataSourceRunOutput {
	s.CreatedAt = &v
	return s
}

// SetDataSourceConfigurationSnapshot sets the DataSourceConfigurationSnapshot field's value.
func (s *StartDataSourceRunOutput) SetDataSourceConfigurationSnapshot(v string) *StartDataSourceRunOutput {
	s.DataSourceConfigurationSnapshot = &v
	return s
}

// SetDataSourceId sets the DataSourceId field's value.
func (s *StartDataSourceRunOutput) SetDataSourceId(v string) *StartDataSourceRunOutput {
	s.DataSourceId = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *StartDataSourceRunOutput) SetDomainId(v string) *StartDataSourceRunOutput {
	s.DomainId = &v
	return s
}

// SetErrorMessage sets the ErrorMessage field's value.
func (s *StartDataSourceRunOutput) SetErrorMessage(v *DataSourceErrorMessage) *StartDataSourceRunOutput {
	s.ErrorMessage = v
	return s
}

// SetId sets the Id field's value.
func (s *StartDataSourceRunOutput) SetId(v string) *StartDataSourceRunOutput {
	s.Id = &v
	return s
}

// SetProjectId sets the ProjectId field's value.
func (s *StartDataSourceRunOutput) SetProjectId(v string) *StartDataSourceRunOutput {
	s.ProjectId = &v
	return s
}

// SetRunStatisticsForAssets sets the RunStatisticsForAssets field's value.
func (s *StartDataSourceRunOutput) SetRunStatisticsForAssets(v *RunStatisticsForAssets) *StartDataSourceRunOutput {
	s.RunStatisticsForAssets = v
	return s
}

// SetStartedAt sets the StartedAt field's value.
func (s *StartDataSourceRunOutput) SetStartedAt(v time.Time) *StartDataSourceRunOutput {
	s.StartedAt = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *StartDataSourceRunOutput) SetStatus(v string) *StartDataSourceRunOutput {
	s.Status = &v
	return s
}

// SetStoppedAt sets the StoppedAt field's value.
func (s *StartDataSourceRunOutput) SetStoppedAt(v time.Time) *StartDataSourceRunOutput {
	s.StoppedAt = &v
	return s
}

// SetType sets the Type field's value.
func (s *StartDataSourceRunOutput) SetType(v string) *StartDataSourceRunOutput {
	s.Type = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *StartDataSourceRunOutput) SetUpdatedAt(v time.Time) *StartDataSourceRunOutput {
	s.UpdatedAt = &v
	return s
}

// The details of the asset for which the subscription grant is created.
type SubscribedAsset struct {
	_ struct{} `type:"structure"`

	// The identifier of the asset for which the subscription grant is created.
	//
	// AssetId is a required field
	AssetId *string `locationName:"assetId" type:"string" required:"true"`

	// The revision of the asset for which the subscription grant is created.
	//
	// AssetRevision is a required field
	AssetRevision *string `locationName:"assetRevision" min:"1" type:"string" required:"true"`

	// The failure cause included in the details of the asset for which the subscription
	// grant is created.
	FailureCause *FailureCause `locationName:"failureCause" type:"structure"`

	// The failure timestamp included in the details of the asset for which the
	// subscription grant is created.
	FailureTimestamp *time.Time `locationName:"failureTimestamp" type:"timestamp"`

	// The timestamp of when the subscription grant to the asset is created.
	GrantedTimestamp *time.Time `locationName:"grantedTimestamp" type:"timestamp"`

	// The status of the asset for which the subscription grant is created.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"SubscriptionGrantStatus"`

	// The target name of the asset for which the subscription grant is created.
	TargetName *string `locationName:"targetName" 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 SubscribedAsset) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SubscribedAsset) GoString() string {
	return s.String()
}

// SetAssetId sets the AssetId field's value.
func (s *SubscribedAsset) SetAssetId(v string) *SubscribedAsset {
	s.AssetId = &v
	return s
}

// SetAssetRevision sets the AssetRevision field's value.
func (s *SubscribedAsset) SetAssetRevision(v string) *SubscribedAsset {
	s.AssetRevision = &v
	return s
}

// SetFailureCause sets the FailureCause field's value.
func (s *SubscribedAsset) SetFailureCause(v *FailureCause) *SubscribedAsset {
	s.FailureCause = v
	return s
}

// SetFailureTimestamp sets the FailureTimestamp field's value.
func (s *SubscribedAsset) SetFailureTimestamp(v time.Time) *SubscribedAsset {
	s.FailureTimestamp = &v
	return s
}

// SetGrantedTimestamp sets the GrantedTimestamp field's value.
func (s *SubscribedAsset) SetGrantedTimestamp(v time.Time) *SubscribedAsset {
	s.GrantedTimestamp = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *SubscribedAsset) SetStatus(v string) *SubscribedAsset {
	s.Status = &v
	return s
}

// SetTargetName sets the TargetName field's value.
func (s *SubscribedAsset) SetTargetName(v string) *SubscribedAsset {
	s.TargetName = &v
	return s
}

// The details of the published asset for which the subscription grant is created.
type SubscribedAssetListing struct {
	_ struct{} `type:"structure"`

	// The identifier of the published asset for which the subscription grant is
	// created.
	EntityId *string `locationName:"entityId" type:"string"`

	// The revision of the published asset for which the subscription grant is created.
	EntityRevision *string `locationName:"entityRevision" min:"1" type:"string"`

	// The type of the published asset for which the subscription grant is created.
	EntityType *string `locationName:"entityType" min:"1" type:"string"`

	// The forms attached to the published asset for which the subscription grant
	// is created.
	Forms *string `locationName:"forms" type:"string"`

	// The glossary terms attached to the published asset for which the subscription
	// grant is created.
	GlossaryTerms []*DetailedGlossaryTerm `locationName:"glossaryTerms" 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 SubscribedAssetListing) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SubscribedAssetListing) GoString() string {
	return s.String()
}

// SetEntityId sets the EntityId field's value.
func (s *SubscribedAssetListing) SetEntityId(v string) *SubscribedAssetListing {
	s.EntityId = &v
	return s
}

// SetEntityRevision sets the EntityRevision field's value.
func (s *SubscribedAssetListing) SetEntityRevision(v string) *SubscribedAssetListing {
	s.EntityRevision = &v
	return s
}

// SetEntityType sets the EntityType field's value.
func (s *SubscribedAssetListing) SetEntityType(v string) *SubscribedAssetListing {
	s.EntityType = &v
	return s
}

// SetForms sets the Forms field's value.
func (s *SubscribedAssetListing) SetForms(v string) *SubscribedAssetListing {
	s.Forms = &v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *SubscribedAssetListing) SetGlossaryTerms(v []*DetailedGlossaryTerm) *SubscribedAssetListing {
	s.GlossaryTerms = v
	return s
}

// The details of the published asset for which the subscription grant is created.
type SubscribedListing struct {
	_ struct{} `type:"structure"`

	// The description of the published asset for which the subscription grant is
	// created.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by SubscribedListing's
	// String and GoString methods.
	//
	// Description is a required field
	Description *string `locationName:"description" type:"string" required:"true" sensitive:"true"`

	// The identifier of the published asset for which the subscription grant is
	// created.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The published asset for which the subscription grant is created.
	//
	// Item is a required field
	Item *SubscribedListingItem `locationName:"item" type:"structure" required:"true"`

	// The name of the published asset for which the subscription grant is created.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true"`

	// The identifier of the project of the published asset for which the subscription
	// grant is created.
	//
	// OwnerProjectId is a required field
	OwnerProjectId *string `locationName:"ownerProjectId" type:"string" required:"true"`

	// The name of the project that owns the published asset for which the subscription
	// grant is created.
	OwnerProjectName *string `locationName:"ownerProjectName" type:"string"`

	// The revision of the published asset for which the subscription grant is created.
	Revision *string `locationName:"revision" 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 SubscribedListing) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SubscribedListing) GoString() string {
	return s.String()
}

// SetDescription sets the Description field's value.
func (s *SubscribedListing) SetDescription(v string) *SubscribedListing {
	s.Description = &v
	return s
}

// SetId sets the Id field's value.
func (s *SubscribedListing) SetId(v string) *SubscribedListing {
	s.Id = &v
	return s
}

// SetItem sets the Item field's value.
func (s *SubscribedListing) SetItem(v *SubscribedListingItem) *SubscribedListing {
	s.Item = v
	return s
}

// SetName sets the Name field's value.
func (s *SubscribedListing) SetName(v string) *SubscribedListing {
	s.Name = &v
	return s
}

// SetOwnerProjectId sets the OwnerProjectId field's value.
func (s *SubscribedListing) SetOwnerProjectId(v string) *SubscribedListing {
	s.OwnerProjectId = &v
	return s
}

// SetOwnerProjectName sets the OwnerProjectName field's value.
func (s *SubscribedListing) SetOwnerProjectName(v string) *SubscribedListing {
	s.OwnerProjectName = &v
	return s
}

// SetRevision sets the Revision field's value.
func (s *SubscribedListing) SetRevision(v string) *SubscribedListing {
	s.Revision = &v
	return s
}

// The published asset for which the subscription grant is to be created.
type SubscribedListingInput_ struct {
	_ struct{} `type:"structure"`

	// The identifier of the published asset for which the subscription grant is
	// to be created.
	//
	// Identifier is a required field
	Identifier *string `locationName:"identifier" 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 SubscribedListingInput_) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SubscribedListingInput_) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SubscribedListingInput_) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SubscribedListingInput_"}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetIdentifier sets the Identifier field's value.
func (s *SubscribedListingInput_) SetIdentifier(v string) *SubscribedListingInput_ {
	s.Identifier = &v
	return s
}

// The published asset for which the subscription grant is created.
type SubscribedListingItem struct {
	_ struct{} `type:"structure"`

	// The asset for which the subscription grant is created.
	AssetListing *SubscribedAssetListing `locationName:"assetListing" 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 SubscribedListingItem) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SubscribedListingItem) GoString() string {
	return s.String()
}

// SetAssetListing sets the AssetListing field's value.
func (s *SubscribedListingItem) SetAssetListing(v *SubscribedAssetListing) *SubscribedListingItem {
	s.AssetListing = v
	return s
}

// The principal that has the subscription grant for the asset.
type SubscribedPrincipal struct {
	_ struct{} `type:"structure"`

	// The project that has the subscription grant.
	Project *SubscribedProject `locationName:"project" 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 SubscribedPrincipal) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SubscribedPrincipal) GoString() string {
	return s.String()
}

// SetProject sets the Project field's value.
func (s *SubscribedPrincipal) SetProject(v *SubscribedProject) *SubscribedPrincipal {
	s.Project = v
	return s
}

// The principal that is to be given a subscriptiong grant.
type SubscribedPrincipalInput_ struct {
	_ struct{} `type:"structure"`

	// The project that is to be given a subscription grant.
	Project *SubscribedProjectInput_ `locationName:"project" 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 SubscribedPrincipalInput_) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SubscribedPrincipalInput_) GoString() string {
	return s.String()
}

// SetProject sets the Project field's value.
func (s *SubscribedPrincipalInput_) SetProject(v *SubscribedProjectInput_) *SubscribedPrincipalInput_ {
	s.Project = v
	return s
}

// The project that has the subscription grant.
type SubscribedProject struct {
	_ struct{} `type:"structure"`

	// The identifier of the project that has the subscription grant.
	Id *string `locationName:"id" type:"string"`

	// The name of the project that has the subscription grant.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by SubscribedProject's
	// String and GoString methods.
	Name *string `locationName:"name" min:"1" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SubscribedProject) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SubscribedProject) GoString() string {
	return s.String()
}

// SetId sets the Id field's value.
func (s *SubscribedProject) SetId(v string) *SubscribedProject {
	s.Id = &v
	return s
}

// SetName sets the Name field's value.
func (s *SubscribedProject) SetName(v string) *SubscribedProject {
	s.Name = &v
	return s
}

// The project that is to be given a subscription grant.
type SubscribedProjectInput_ struct {
	_ struct{} `type:"structure"`

	// The identifier of the project that is to be given a subscription grant.
	Identifier *string `locationName:"identifier" 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 SubscribedProjectInput_) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SubscribedProjectInput_) GoString() string {
	return s.String()
}

// SetIdentifier sets the Identifier field's value.
func (s *SubscribedProjectInput_) SetIdentifier(v string) *SubscribedProjectInput_ {
	s.Identifier = &v
	return s
}

// The details of the subscription grant.
type SubscriptionGrantSummary struct {
	_ struct{} `type:"structure"`

	// The assets included in the subscription grant.
	Assets []*SubscribedAsset `locationName:"assets" type:"list"`

	// The timestamp of when a subscription grant was created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`

	// The datazone user who created the subscription grant.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The identifier of the Amazon DataZone domain in which a subscription grant
	// exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The entity to which the subscription is granted.
	//
	// GrantedEntity is a required field
	GrantedEntity *GrantedEntity `locationName:"grantedEntity" type:"structure" required:"true"`

	// The identifier of the subscription grant.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The status of the subscription grant.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"SubscriptionGrantOverallStatus"`

	// The ID of the subscription grant.
	SubscriptionId *string `locationName:"subscriptionId" type:"string"`

	// The identifier of the target of the subscription grant.
	//
	// SubscriptionTargetId is a required field
	SubscriptionTargetId *string `locationName:"subscriptionTargetId" type:"string" required:"true"`

	// The timestampf of when the subscription grant was updated.
	//
	// UpdatedAt is a required field
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who updated the subscription grant.
	UpdatedBy *string `locationName:"updatedBy" 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 SubscriptionGrantSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SubscriptionGrantSummary) GoString() string {
	return s.String()
}

// SetAssets sets the Assets field's value.
func (s *SubscriptionGrantSummary) SetAssets(v []*SubscribedAsset) *SubscriptionGrantSummary {
	s.Assets = v
	return s
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *SubscriptionGrantSummary) SetCreatedAt(v time.Time) *SubscriptionGrantSummary {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *SubscriptionGrantSummary) SetCreatedBy(v string) *SubscriptionGrantSummary {
	s.CreatedBy = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *SubscriptionGrantSummary) SetDomainId(v string) *SubscriptionGrantSummary {
	s.DomainId = &v
	return s
}

// SetGrantedEntity sets the GrantedEntity field's value.
func (s *SubscriptionGrantSummary) SetGrantedEntity(v *GrantedEntity) *SubscriptionGrantSummary {
	s.GrantedEntity = v
	return s
}

// SetId sets the Id field's value.
func (s *SubscriptionGrantSummary) SetId(v string) *SubscriptionGrantSummary {
	s.Id = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *SubscriptionGrantSummary) SetStatus(v string) *SubscriptionGrantSummary {
	s.Status = &v
	return s
}

// SetSubscriptionId sets the SubscriptionId field's value.
func (s *SubscriptionGrantSummary) SetSubscriptionId(v string) *SubscriptionGrantSummary {
	s.SubscriptionId = &v
	return s
}

// SetSubscriptionTargetId sets the SubscriptionTargetId field's value.
func (s *SubscriptionGrantSummary) SetSubscriptionTargetId(v string) *SubscriptionGrantSummary {
	s.SubscriptionTargetId = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *SubscriptionGrantSummary) SetUpdatedAt(v time.Time) *SubscriptionGrantSummary {
	s.UpdatedAt = &v
	return s
}

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *SubscriptionGrantSummary) SetUpdatedBy(v string) *SubscriptionGrantSummary {
	s.UpdatedBy = &v
	return s
}

// The details of the subscription request.
type SubscriptionRequestSummary struct {
	_ struct{} `type:"structure"`

	// The timestamp of when a subscription request was created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who created the subscription request.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The decision comment of the subscription request.
	//
	// DecisionComment is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by SubscriptionRequestSummary's
	// String and GoString methods.
	DecisionComment *string `locationName:"decisionComment" min:"1" type:"string" sensitive:"true"`

	// The identifier of the Amazon DataZone domain in which a subscription request
	// exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The identifier of the subscription request.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The reason for the subscription request.
	//
	// RequestReason is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by SubscriptionRequestSummary's
	// String and GoString methods.
	//
	// RequestReason is a required field
	RequestReason *string `locationName:"requestReason" min:"1" type:"string" required:"true" sensitive:"true"`

	// The identifier of the subscription request reviewer.
	ReviewerId *string `locationName:"reviewerId" type:"string"`

	// The status of the subscription request.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"SubscriptionRequestStatus"`

	// The listings included in the subscription request.
	//
	// SubscribedListings is a required field
	SubscribedListings []*SubscribedListing `locationName:"subscribedListings" min:"1" type:"list" required:"true"`

	// The principals included in the subscription request.
	//
	// SubscribedPrincipals is a required field
	SubscribedPrincipals []*SubscribedPrincipal `locationName:"subscribedPrincipals" min:"1" type:"list" required:"true"`

	// The timestamp of when the subscription request was updated.
	//
	// UpdatedAt is a required field
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" required:"true"`

	// The identifier of the Amazon DataZone user who updated the subscription request.
	UpdatedBy *string `locationName:"updatedBy" 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 SubscriptionRequestSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SubscriptionRequestSummary) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *SubscriptionRequestSummary) SetCreatedAt(v time.Time) *SubscriptionRequestSummary {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *SubscriptionRequestSummary) SetCreatedBy(v string) *SubscriptionRequestSummary {
	s.CreatedBy = &v
	return s
}

// SetDecisionComment sets the DecisionComment field's value.
func (s *SubscriptionRequestSummary) SetDecisionComment(v string) *SubscriptionRequestSummary {
	s.DecisionComment = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *SubscriptionRequestSummary) SetDomainId(v string) *SubscriptionRequestSummary {
	s.DomainId = &v
	return s
}

// SetId sets the Id field's value.
func (s *SubscriptionRequestSummary) SetId(v string) *SubscriptionRequestSummary {
	s.Id = &v
	return s
}

// SetRequestReason sets the RequestReason field's value.
func (s *SubscriptionRequestSummary) SetRequestReason(v string) *SubscriptionRequestSummary {
	s.RequestReason = &v
	return s
}

// SetReviewerId sets the ReviewerId field's value.
func (s *SubscriptionRequestSummary) SetReviewerId(v string) *SubscriptionRequestSummary {
	s.ReviewerId = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *SubscriptionRequestSummary) SetStatus(v string) *SubscriptionRequestSummary {
	s.Status = &v
	return s
}

// SetSubscribedListings sets the SubscribedListings field's value.
func (s *SubscriptionRequestSummary) SetSubscribedListings(v []*SubscribedListing) *SubscriptionRequestSummary {
	s.SubscribedListings = v
	return s
}

// SetSubscribedPrincipals sets the SubscribedPrincipals field's value.
func (s *SubscriptionRequestSummary) SetSubscribedPrincipals(v []*SubscribedPrincipal) *SubscriptionRequestSummary {
	s.SubscribedPrincipals = v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *SubscriptionRequestSummary) SetUpdatedAt(v time.Time) *SubscriptionRequestSummary {
	s.UpdatedAt = &v
	return s
}

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *SubscriptionRequestSummary) SetUpdatedBy(v string) *SubscriptionRequestSummary {
	s.UpdatedBy = &v
	return s
}

// The details of the subscription.
type SubscriptionSummary struct {
	_ struct{} `type:"structure"`

	// The timestamp of when the subscription was created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who created the subscription.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The identifier of the Amazon DataZone domain in which a subscription exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The identifier of the subscription.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The retain permissions included in the subscription.
	RetainPermissions *bool `locationName:"retainPermissions" type:"boolean"`

	// The status of the subscription.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"SubscriptionStatus"`

	// The listing included in the subscription.
	//
	// SubscribedListing is a required field
	SubscribedListing *SubscribedListing `locationName:"subscribedListing" type:"structure" required:"true"`

	// The principal included in the subscription.
	//
	// SubscribedPrincipal is a required field
	SubscribedPrincipal *SubscribedPrincipal `locationName:"subscribedPrincipal" type:"structure" required:"true"`

	// The identifier of the subscription request for the subscription.
	SubscriptionRequestId *string `locationName:"subscriptionRequestId" type:"string"`

	// The timestamp of when the subscription was updated.
	//
	// UpdatedAt is a required field
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who updated the subscription.
	UpdatedBy *string `locationName:"updatedBy" 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 SubscriptionSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SubscriptionSummary) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *SubscriptionSummary) SetCreatedAt(v time.Time) *SubscriptionSummary {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *SubscriptionSummary) SetCreatedBy(v string) *SubscriptionSummary {
	s.CreatedBy = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *SubscriptionSummary) SetDomainId(v string) *SubscriptionSummary {
	s.DomainId = &v
	return s
}

// SetId sets the Id field's value.
func (s *SubscriptionSummary) SetId(v string) *SubscriptionSummary {
	s.Id = &v
	return s
}

// SetRetainPermissions sets the RetainPermissions field's value.
func (s *SubscriptionSummary) SetRetainPermissions(v bool) *SubscriptionSummary {
	s.RetainPermissions = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *SubscriptionSummary) SetStatus(v string) *SubscriptionSummary {
	s.Status = &v
	return s
}

// SetSubscribedListing sets the SubscribedListing field's value.
func (s *SubscriptionSummary) SetSubscribedListing(v *SubscribedListing) *SubscriptionSummary {
	s.SubscribedListing = v
	return s
}

// SetSubscribedPrincipal sets the SubscribedPrincipal field's value.
func (s *SubscriptionSummary) SetSubscribedPrincipal(v *SubscribedPrincipal) *SubscriptionSummary {
	s.SubscribedPrincipal = v
	return s
}

// SetSubscriptionRequestId sets the SubscriptionRequestId field's value.
func (s *SubscriptionSummary) SetSubscriptionRequestId(v string) *SubscriptionSummary {
	s.SubscriptionRequestId = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *SubscriptionSummary) SetUpdatedAt(v time.Time) *SubscriptionSummary {
	s.UpdatedAt = &v
	return s
}

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *SubscriptionSummary) SetUpdatedBy(v string) *SubscriptionSummary {
	s.UpdatedBy = &v
	return s
}

// The details of the subscription target configuration.
type SubscriptionTargetForm struct {
	_ struct{} `type:"structure"`

	// The content of the subscription target configuration.
	//
	// Content is a required field
	Content *string `locationName:"content" type:"string" required:"true"`

	// The form name included in the subscription target configuration.
	//
	// FormName is a required field
	FormName *string `locationName:"formName" 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 SubscriptionTargetForm) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SubscriptionTargetForm) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *SubscriptionTargetForm) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "SubscriptionTargetForm"}
	if s.Content == nil {
		invalidParams.Add(request.NewErrParamRequired("Content"))
	}
	if s.FormName == nil {
		invalidParams.Add(request.NewErrParamRequired("FormName"))
	}
	if s.FormName != nil && len(*s.FormName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FormName", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetContent sets the Content field's value.
func (s *SubscriptionTargetForm) SetContent(v string) *SubscriptionTargetForm {
	s.Content = &v
	return s
}

// SetFormName sets the FormName field's value.
func (s *SubscriptionTargetForm) SetFormName(v string) *SubscriptionTargetForm {
	s.FormName = &v
	return s
}

// The details of the subscription target.
type SubscriptionTargetSummary struct {
	_ struct{} `type:"structure"`

	// The asset types included in the subscription target.
	//
	// ApplicableAssetTypes is a required field
	ApplicableAssetTypes []*string `locationName:"applicableAssetTypes" type:"list" required:"true"`

	// The authorized principals included in the subscription target.
	//
	// AuthorizedPrincipals is a required field
	AuthorizedPrincipals []*string `locationName:"authorizedPrincipals" min:"1" type:"list" required:"true"`

	// The timestamp of when the subscription target was created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who created the subscription target.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The identifier of the Amazon DataZone domain in which the subscription target
	// exists.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The identifier of the environment of the subscription target.
	//
	// EnvironmentId is a required field
	EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"`

	// The identifier of the subscription target.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The manage access role specified in the subscription target.
	//
	// ManageAccessRole is a required field
	ManageAccessRole *string `locationName:"manageAccessRole" type:"string" required:"true"`

	// The name of the subscription target.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by SubscriptionTargetSummary's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The identifier of the project specified in the subscription target.
	//
	// ProjectId is a required field
	ProjectId *string `locationName:"projectId" type:"string" required:"true"`

	// The provider of the subscription target.
	//
	// Provider is a required field
	Provider *string `locationName:"provider" type:"string" required:"true"`

	// The configuration of the subscription target.
	//
	// SubscriptionTargetConfig is a required field
	SubscriptionTargetConfig []*SubscriptionTargetForm `locationName:"subscriptionTargetConfig" type:"list" required:"true"`

	// The type of the subscription target.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true"`

	// The timestamp of when the subscription target was updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`

	// The Amazon DataZone user who updated the subscription target.
	UpdatedBy *string `locationName:"updatedBy" 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 SubscriptionTargetSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s SubscriptionTargetSummary) GoString() string {
	return s.String()
}

// SetApplicableAssetTypes sets the ApplicableAssetTypes field's value.
func (s *SubscriptionTargetSummary) SetApplicableAssetTypes(v []*string) *SubscriptionTargetSummary {
	s.ApplicableAssetTypes = v
	return s
}

// SetAuthorizedPrincipals sets the AuthorizedPrincipals field's value.
func (s *SubscriptionTargetSummary) SetAuthorizedPrincipals(v []*string) *SubscriptionTargetSummary {
	s.AuthorizedPrincipals = v
	return s
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *SubscriptionTargetSummary) SetCreatedAt(v time.Time) *SubscriptionTargetSummary {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *SubscriptionTargetSummary) SetCreatedBy(v string) *SubscriptionTargetSummary {
	s.CreatedBy = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *SubscriptionTargetSummary) SetDomainId(v string) *SubscriptionTargetSummary {
	s.DomainId = &v
	return s
}

// SetEnvironmentId sets the EnvironmentId field's value.
func (s *SubscriptionTargetSummary) SetEnvironmentId(v string) *SubscriptionTargetSummary {
	s.EnvironmentId = &v
	return s
}

// SetId sets the Id field's value.
func (s *SubscriptionTargetSummary) SetId(v string) *SubscriptionTargetSummary {
	s.Id = &v
	return s
}

// SetManageAccessRole sets the ManageAccessRole field's value.
func (s *SubscriptionTargetSummary) SetManageAccessRole(v string) *SubscriptionTargetSummary {
	s.ManageAccessRole = &v
	return s
}

// SetName sets the Name field's value.
func (s *SubscriptionTargetSummary) SetName(v string) *SubscriptionTargetSummary {
	s.Name = &v
	return s
}

// SetProjectId sets the ProjectId field's value.
func (s *SubscriptionTargetSummary) SetProjectId(v string) *SubscriptionTargetSummary {
	s.ProjectId = &v
	return s
}

// SetProvider sets the Provider field's value.
func (s *SubscriptionTargetSummary) SetProvider(v string) *SubscriptionTargetSummary {
	s.Provider = &v
	return s
}

// SetSubscriptionTargetConfig sets the SubscriptionTargetConfig field's value.
func (s *SubscriptionTargetSummary) SetSubscriptionTargetConfig(v []*SubscriptionTargetForm) *SubscriptionTargetSummary {
	s.SubscriptionTargetConfig = v
	return s
}

// SetType sets the Type field's value.
func (s *SubscriptionTargetSummary) SetType(v string) *SubscriptionTargetSummary {
	s.Type = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *SubscriptionTargetSummary) SetUpdatedAt(v time.Time) *SubscriptionTargetSummary {
	s.UpdatedAt = &v
	return s
}

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *SubscriptionTargetSummary) SetUpdatedBy(v string) *SubscriptionTargetSummary {
	s.UpdatedBy = &v
	return s
}

type TagResourceInput struct {
	_ struct{} `type:"structure"`

	// The ARN of the resource to be tagged in Amazon DataZone.
	//
	// ResourceArn is a required field
	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`

	// Specifies the tags for the TagResource action.
	//
	// Tags is a required field
	Tags map[string]*string `locationName:"tags" type:"map" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagResourceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagResourceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TagResourceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
	if s.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 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 map[string]*string) *TagResourceInput {
	s.Tags = v
	return s
}

type TagResourceOutput struct {
	_ struct{} `type:"structure"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagResourceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TagResourceOutput) GoString() string {
	return s.String()
}

// The details of the term relations.
type TermRelations struct {
	_ struct{} `type:"structure"`

	// The classifies of the term relations.
	Classifies []*string `locationName:"classifies" min:"1" type:"list"`

	// The isA property of the term relations.
	IsA []*string `locationName:"isA" min:"1" type:"list"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TermRelations) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s TermRelations) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *TermRelations) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "TermRelations"}
	if s.Classifies != nil && len(s.Classifies) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Classifies", 1))
	}
	if s.IsA != nil && len(s.IsA) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("IsA", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClassifies sets the Classifies field's value.
func (s *TermRelations) SetClassifies(v []*string) *TermRelations {
	s.Classifies = v
	return s
}

// SetIsA sets the IsA field's value.
func (s *TermRelations) SetIsA(v []*string) *TermRelations {
	s.IsA = v
	return s
}

// The request was denied due to request throttling.
type ThrottlingException 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 ThrottlingException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s ThrottlingException) GoString() string {
	return s.String()
}

func newErrorThrottlingException(v protocol.ResponseMetadata) error {
	return &ThrottlingException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *ThrottlingException) Code() string {
	return "ThrottlingException"
}

// Message returns the exception's message.
func (s *ThrottlingException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *ThrottlingException) OrigErr() error {
	return nil
}

func (s *ThrottlingException) 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 *ThrottlingException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *ThrottlingException) RequestID() string {
	return s.RespMetadata.RequestID
}

// The topic of the notification.
type Topic struct {
	_ struct{} `type:"structure"`

	// The details of the resource mentioned in a notification.
	//
	// Resource is a required field
	Resource *NotificationResource `locationName:"resource" type:"structure" required:"true"`

	// The role of the resource mentioned in a notification.
	//
	// Role is a required field
	Role *string `locationName:"role" type:"string" required:"true" enum:"NotificationRole"`

	// The subject of the resource mentioned in a notification.
	//
	// Subject is a required field
	Subject *string `locationName:"subject" 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 Topic) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s Topic) GoString() string {
	return s.String()
}

// SetResource sets the Resource field's value.
func (s *Topic) SetResource(v *NotificationResource) *Topic {
	s.Resource = v
	return s
}

// SetRole sets the Role field's value.
func (s *Topic) SetRole(v string) *Topic {
	s.Role = &v
	return s
}

// SetSubject sets the Subject field's value.
func (s *Topic) SetSubject(v string) *Topic {
	s.Subject = &v
	return s
}

// You do not have permission to perform this action.
type UnauthorizedException 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 UnauthorizedException) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UnauthorizedException) GoString() string {
	return s.String()
}

func newErrorUnauthorizedException(v protocol.ResponseMetadata) error {
	return &UnauthorizedException{
		RespMetadata: v,
	}
}

// Code returns the exception type name.
func (s *UnauthorizedException) Code() string {
	return "UnauthorizedException"
}

// Message returns the exception's message.
func (s *UnauthorizedException) Message() string {
	if s.Message_ != nil {
		return *s.Message_
	}
	return ""
}

// OrigErr always returns nil, satisfies awserr.Error interface.
func (s *UnauthorizedException) OrigErr() error {
	return nil
}

func (s *UnauthorizedException) 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 *UnauthorizedException) StatusCode() int {
	return s.RespMetadata.StatusCode
}

// RequestID returns the service's response RequestID for request.
func (s *UnauthorizedException) RequestID() string {
	return s.RespMetadata.RequestID
}

type UntagResourceInput struct {
	_ struct{} `type:"structure" nopayload:"true"`

	// The ARN of the resource to be untagged in Amazon DataZone.
	//
	// ResourceArn is a required field
	ResourceArn *string `location:"uri" locationName:"resourceArn" type:"string" required:"true"`

	// Specifies the tag keys for the UntagResource action.
	//
	// TagKeys is a required field
	TagKeys []*string `location:"querystring" locationName:"tagKeys" type:"list" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagResourceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UntagResourceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UntagResourceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
	if s.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 UpdateDataSourceInput struct {
	_ struct{} `type:"structure"`

	// The asset forms to be updated as part of the UpdateDataSource action.
	//
	// AssetFormsInput is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateDataSourceInput's
	// String and GoString methods.
	AssetFormsInput []*FormInput_ `locationName:"assetFormsInput" type:"list" sensitive:"true"`

	// The configuration to be updated as part of the UpdateDataSource action.
	Configuration *DataSourceConfigurationInput_ `locationName:"configuration" type:"structure"`

	// The description to be updated as part of the UpdateDataSource action.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateDataSourceInput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The identifier of the domain in which to update a data source.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The enable setting to be updated as part of the UpdateDataSource action.
	EnableSetting *string `locationName:"enableSetting" type:"string" enum:"EnableSetting"`

	// The identifier of the data source to be updated.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" type:"string" required:"true"`

	// The name to be updated as part of the UpdateDataSource action.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateDataSourceInput's
	// String and GoString methods.
	Name *string `locationName:"name" min:"1" type:"string" sensitive:"true"`

	// The publish on import setting to be updated as part of the UpdateDataSource
	// action.
	PublishOnImport *bool `locationName:"publishOnImport" type:"boolean"`

	// The recommendation to be updated as part of the UpdateDataSource action.
	Recommendation *RecommendationConfiguration `locationName:"recommendation" type:"structure"`

	// The schedule to be updated as part of the UpdateDataSource action.
	//
	// Schedule is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateDataSourceInput's
	// String and GoString methods.
	Schedule *ScheduleConfiguration `locationName:"schedule" type:"structure" 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 UpdateDataSourceInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateDataSourceInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateDataSourceInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateDataSourceInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.AssetFormsInput != nil {
		for i, v := range s.AssetFormsInput {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AssetFormsInput", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.Configuration != nil {
		if err := s.Configuration.Validate(); err != nil {
			invalidParams.AddNested("Configuration", err.(request.ErrInvalidParams))
		}
	}
	if s.Schedule != nil {
		if err := s.Schedule.Validate(); err != nil {
			invalidParams.AddNested("Schedule", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAssetFormsInput sets the AssetFormsInput field's value.
func (s *UpdateDataSourceInput) SetAssetFormsInput(v []*FormInput_) *UpdateDataSourceInput {
	s.AssetFormsInput = v
	return s
}

// SetConfiguration sets the Configuration field's value.
func (s *UpdateDataSourceInput) SetConfiguration(v *DataSourceConfigurationInput_) *UpdateDataSourceInput {
	s.Configuration = v
	return s
}

// SetDescription sets the Description field's value.
func (s *UpdateDataSourceInput) SetDescription(v string) *UpdateDataSourceInput {
	s.Description = &v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *UpdateDataSourceInput) SetDomainIdentifier(v string) *UpdateDataSourceInput {
	s.DomainIdentifier = &v
	return s
}

// SetEnableSetting sets the EnableSetting field's value.
func (s *UpdateDataSourceInput) SetEnableSetting(v string) *UpdateDataSourceInput {
	s.EnableSetting = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *UpdateDataSourceInput) SetIdentifier(v string) *UpdateDataSourceInput {
	s.Identifier = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateDataSourceInput) SetName(v string) *UpdateDataSourceInput {
	s.Name = &v
	return s
}

// SetPublishOnImport sets the PublishOnImport field's value.
func (s *UpdateDataSourceInput) SetPublishOnImport(v bool) *UpdateDataSourceInput {
	s.PublishOnImport = &v
	return s
}

// SetRecommendation sets the Recommendation field's value.
func (s *UpdateDataSourceInput) SetRecommendation(v *RecommendationConfiguration) *UpdateDataSourceInput {
	s.Recommendation = v
	return s
}

// SetSchedule sets the Schedule field's value.
func (s *UpdateDataSourceInput) SetSchedule(v *ScheduleConfiguration) *UpdateDataSourceInput {
	s.Schedule = v
	return s
}

type UpdateDataSourceOutput struct {
	_ struct{} `type:"structure"`

	// The asset forms to be updated as part of the UpdateDataSource action.
	AssetFormsOutput []*FormOutput_ `locationName:"assetFormsOutput" type:"list"`

	// The configuration to be updated as part of the UpdateDataSource action.
	Configuration *DataSourceConfigurationOutput_ `locationName:"configuration" type:"structure"`

	// The timestamp of when the data source was updated.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The description to be updated as part of the UpdateDataSource action.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateDataSourceOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The identifier of the Amazon DataZone domain in which a data source is to
	// be updated.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The enable setting to be updated as part of the UpdateDataSource action.
	EnableSetting *string `locationName:"enableSetting" type:"string" enum:"EnableSetting"`

	// The identifier of the environment in which a data source is to be updated.
	//
	// EnvironmentId is a required field
	EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"`

	// Specifies the error message that is returned if the operation cannot be successfully
	// completed.
	ErrorMessage *DataSourceErrorMessage `locationName:"errorMessage" type:"structure"`

	// The identifier of the data source to be updated.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The timestamp of when the data source was last run.
	LastRunAt *time.Time `locationName:"lastRunAt" type:"timestamp" timestampFormat:"iso8601"`

	// The last run error message of the data source.
	LastRunErrorMessage *DataSourceErrorMessage `locationName:"lastRunErrorMessage" type:"structure"`

	// The last run status of the data source.
	LastRunStatus *string `locationName:"lastRunStatus" type:"string" enum:"DataSourceRunStatus"`

	// The name to be updated as part of the UpdateDataSource action.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateDataSourceOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The identifier of the project where data source is to be updated.
	//
	// ProjectId is a required field
	ProjectId *string `locationName:"projectId" type:"string" required:"true"`

	// The publish on import setting to be updated as part of the UpdateDataSource
	// action.
	PublishOnImport *bool `locationName:"publishOnImport" type:"boolean"`

	// The recommendation to be updated as part of the UpdateDataSource action.
	Recommendation *RecommendationConfiguration `locationName:"recommendation" type:"structure"`

	// The schedule to be updated as part of the UpdateDataSource action.
	//
	// Schedule is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateDataSourceOutput's
	// String and GoString methods.
	Schedule *ScheduleConfiguration `locationName:"schedule" type:"structure" sensitive:"true"`

	// The status to be updated as part of the UpdateDataSource action.
	Status *string `locationName:"status" type:"string" enum:"DataSourceStatus"`

	// The type to be updated as part of the UpdateDataSource action.
	Type *string `locationName:"type" min:"1" type:"string"`

	// The timestamp of when the data source was 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 UpdateDataSourceOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateDataSourceOutput) GoString() string {
	return s.String()
}

// SetAssetFormsOutput sets the AssetFormsOutput field's value.
func (s *UpdateDataSourceOutput) SetAssetFormsOutput(v []*FormOutput_) *UpdateDataSourceOutput {
	s.AssetFormsOutput = v
	return s
}

// SetConfiguration sets the Configuration field's value.
func (s *UpdateDataSourceOutput) SetConfiguration(v *DataSourceConfigurationOutput_) *UpdateDataSourceOutput {
	s.Configuration = v
	return s
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *UpdateDataSourceOutput) SetCreatedAt(v time.Time) *UpdateDataSourceOutput {
	s.CreatedAt = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *UpdateDataSourceOutput) SetDescription(v string) *UpdateDataSourceOutput {
	s.Description = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *UpdateDataSourceOutput) SetDomainId(v string) *UpdateDataSourceOutput {
	s.DomainId = &v
	return s
}

// SetEnableSetting sets the EnableSetting field's value.
func (s *UpdateDataSourceOutput) SetEnableSetting(v string) *UpdateDataSourceOutput {
	s.EnableSetting = &v
	return s
}

// SetEnvironmentId sets the EnvironmentId field's value.
func (s *UpdateDataSourceOutput) SetEnvironmentId(v string) *UpdateDataSourceOutput {
	s.EnvironmentId = &v
	return s
}

// SetErrorMessage sets the ErrorMessage field's value.
func (s *UpdateDataSourceOutput) SetErrorMessage(v *DataSourceErrorMessage) *UpdateDataSourceOutput {
	s.ErrorMessage = v
	return s
}

// SetId sets the Id field's value.
func (s *UpdateDataSourceOutput) SetId(v string) *UpdateDataSourceOutput {
	s.Id = &v
	return s
}

// SetLastRunAt sets the LastRunAt field's value.
func (s *UpdateDataSourceOutput) SetLastRunAt(v time.Time) *UpdateDataSourceOutput {
	s.LastRunAt = &v
	return s
}

// SetLastRunErrorMessage sets the LastRunErrorMessage field's value.
func (s *UpdateDataSourceOutput) SetLastRunErrorMessage(v *DataSourceErrorMessage) *UpdateDataSourceOutput {
	s.LastRunErrorMessage = v
	return s
}

// SetLastRunStatus sets the LastRunStatus field's value.
func (s *UpdateDataSourceOutput) SetLastRunStatus(v string) *UpdateDataSourceOutput {
	s.LastRunStatus = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateDataSourceOutput) SetName(v string) *UpdateDataSourceOutput {
	s.Name = &v
	return s
}

// SetProjectId sets the ProjectId field's value.
func (s *UpdateDataSourceOutput) SetProjectId(v string) *UpdateDataSourceOutput {
	s.ProjectId = &v
	return s
}

// SetPublishOnImport sets the PublishOnImport field's value.
func (s *UpdateDataSourceOutput) SetPublishOnImport(v bool) *UpdateDataSourceOutput {
	s.PublishOnImport = &v
	return s
}

// SetRecommendation sets the Recommendation field's value.
func (s *UpdateDataSourceOutput) SetRecommendation(v *RecommendationConfiguration) *UpdateDataSourceOutput {
	s.Recommendation = v
	return s
}

// SetSchedule sets the Schedule field's value.
func (s *UpdateDataSourceOutput) SetSchedule(v *ScheduleConfiguration) *UpdateDataSourceOutput {
	s.Schedule = v
	return s
}

// SetStatus sets the Status field's value.
func (s *UpdateDataSourceOutput) SetStatus(v string) *UpdateDataSourceOutput {
	s.Status = &v
	return s
}

// SetType sets the Type field's value.
func (s *UpdateDataSourceOutput) SetType(v string) *UpdateDataSourceOutput {
	s.Type = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *UpdateDataSourceOutput) SetUpdatedAt(v time.Time) *UpdateDataSourceOutput {
	s.UpdatedAt = &v
	return s
}

type UpdateDomainInput struct {
	_ struct{} `type:"structure"`

	// A unique, case-sensitive identifier that is provided to ensure the idempotency
	// of the request.
	ClientToken *string `location:"querystring" locationName:"clientToken" type:"string" idempotencyToken:"true"`

	// The description to be updated as part of the UpdateDomain action.
	Description *string `locationName:"description" type:"string"`

	// The domain execution role to be updated as part of the UpdateDomain action.
	DomainExecutionRole *string `locationName:"domainExecutionRole" type:"string"`

	// The ID of the Amazon Web Services domain that is to be updated.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" type:"string" required:"true"`

	// The name to be updated as part of the UpdateDomain action.
	Name *string `locationName:"name" type:"string"`

	// The single sign-on option to be updated as part of the UpdateDomain action.
	SingleSignOn *SingleSignOn `locationName:"singleSignOn" 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 UpdateDomainInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateDomainInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateDomainInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateDomainInput"}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClientToken sets the ClientToken field's value.
func (s *UpdateDomainInput) SetClientToken(v string) *UpdateDomainInput {
	s.ClientToken = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *UpdateDomainInput) SetDescription(v string) *UpdateDomainInput {
	s.Description = &v
	return s
}

// SetDomainExecutionRole sets the DomainExecutionRole field's value.
func (s *UpdateDomainInput) SetDomainExecutionRole(v string) *UpdateDomainInput {
	s.DomainExecutionRole = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *UpdateDomainInput) SetIdentifier(v string) *UpdateDomainInput {
	s.Identifier = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateDomainInput) SetName(v string) *UpdateDomainInput {
	s.Name = &v
	return s
}

// SetSingleSignOn sets the SingleSignOn field's value.
func (s *UpdateDomainInput) SetSingleSignOn(v *SingleSignOn) *UpdateDomainInput {
	s.SingleSignOn = v
	return s
}

type UpdateDomainOutput struct {
	_ struct{} `type:"structure"`

	// The description to be updated as part of the UpdateDomain action.
	Description *string `locationName:"description" type:"string"`

	// The domain execution role to be updated as part of the UpdateDomain action.
	DomainExecutionRole *string `locationName:"domainExecutionRole" type:"string"`

	// The identifier of the Amazon DataZone domain.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// Specifies the timestamp of when the domain was last updated.
	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`

	// The name to be updated as part of the UpdateDomain action.
	Name *string `locationName:"name" type:"string"`

	// The single sign-on option of the Amazon DataZone domain.
	SingleSignOn *SingleSignOn `locationName:"singleSignOn" 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 UpdateDomainOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateDomainOutput) GoString() string {
	return s.String()
}

// SetDescription sets the Description field's value.
func (s *UpdateDomainOutput) SetDescription(v string) *UpdateDomainOutput {
	s.Description = &v
	return s
}

// SetDomainExecutionRole sets the DomainExecutionRole field's value.
func (s *UpdateDomainOutput) SetDomainExecutionRole(v string) *UpdateDomainOutput {
	s.DomainExecutionRole = &v
	return s
}

// SetId sets the Id field's value.
func (s *UpdateDomainOutput) SetId(v string) *UpdateDomainOutput {
	s.Id = &v
	return s
}

// SetLastUpdatedAt sets the LastUpdatedAt field's value.
func (s *UpdateDomainOutput) SetLastUpdatedAt(v time.Time) *UpdateDomainOutput {
	s.LastUpdatedAt = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateDomainOutput) SetName(v string) *UpdateDomainOutput {
	s.Name = &v
	return s
}

// SetSingleSignOn sets the SingleSignOn field's value.
func (s *UpdateDomainOutput) SetSingleSignOn(v *SingleSignOn) *UpdateDomainOutput {
	s.SingleSignOn = v
	return s
}

type UpdateEnvironmentInput struct {
	_ struct{} `type:"structure"`

	// The description to be updated as part of the UpdateEnvironment action.
	Description *string `locationName:"description" type:"string"`

	// The identifier of the domain in which the environment is to be updated.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The glossary terms to be updated as part of the UpdateEnvironment action.
	GlossaryTerms []*string `locationName:"glossaryTerms" min:"1" type:"list"`

	// The identifier of the environment that is to be updated.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" type:"string" required:"true"`

	// The name to be updated as part of the UpdateEnvironment action.
	Name *string `locationName:"name" 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 UpdateEnvironmentInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateEnvironmentInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateEnvironmentInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateEnvironmentInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.GlossaryTerms != nil && len(s.GlossaryTerms) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("GlossaryTerms", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDescription sets the Description field's value.
func (s *UpdateEnvironmentInput) SetDescription(v string) *UpdateEnvironmentInput {
	s.Description = &v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *UpdateEnvironmentInput) SetDomainIdentifier(v string) *UpdateEnvironmentInput {
	s.DomainIdentifier = &v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *UpdateEnvironmentInput) SetGlossaryTerms(v []*string) *UpdateEnvironmentInput {
	s.GlossaryTerms = v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *UpdateEnvironmentInput) SetIdentifier(v string) *UpdateEnvironmentInput {
	s.Identifier = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateEnvironmentInput) SetName(v string) *UpdateEnvironmentInput {
	s.Name = &v
	return s
}

type UpdateEnvironmentOutput struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon Web Services account in which the environment
	// is to be updated.
	AwsAccountId *string `locationName:"awsAccountId" type:"string"`

	// The Amazon Web Services Region in which the environment is updated.
	AwsAccountRegion *string `locationName:"awsAccountRegion" type:"string"`

	// The timestamp of when the environment was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The Amazon DataZone user who created the environment.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The deployment properties to be updated as part of the UpdateEnvironment
	// action.
	DeploymentProperties *DeploymentProperties `locationName:"deploymentProperties" type:"structure"`

	// The description to be updated as part of the UpdateEnvironment action.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateEnvironmentOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The identifier of the domain in which the environment is to be updated.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The environment actions to be updated as part of the UpdateEnvironment action.
	EnvironmentActions []*ConfigurableEnvironmentAction `locationName:"environmentActions" type:"list"`

	// The blueprint identifier of the environment.
	EnvironmentBlueprintId *string `locationName:"environmentBlueprintId" type:"string"`

	// The profile identifier of the environment.
	//
	// EnvironmentProfileId is a required field
	EnvironmentProfileId *string `locationName:"environmentProfileId" type:"string" required:"true"`

	// The glossary terms to be updated as part of the UpdateEnvironment action.
	GlossaryTerms []*string `locationName:"glossaryTerms" min:"1" type:"list"`

	// The identifier of the environment that is to be updated.
	Id *string `locationName:"id" type:"string"`

	// The last deployment of the environment.
	LastDeployment *Deployment `locationName:"lastDeployment" type:"structure"`

	// The name to be updated as part of the UpdateEnvironment action.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateEnvironmentOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The project identifier of the environment.
	//
	// ProjectId is a required field
	ProjectId *string `locationName:"projectId" type:"string" required:"true"`

	// The provider identifier of the environment.
	//
	// Provider is a required field
	Provider *string `locationName:"provider" type:"string" required:"true"`

	// The provisioned resources to be updated as part of the UpdateEnvironment
	// action.
	ProvisionedResources []*Resource `locationName:"provisionedResources" type:"list"`

	// The provisioning properties to be updated as part of the UpdateEnvironment
	// action.
	ProvisioningProperties *ProvisioningProperties `locationName:"provisioningProperties" type:"structure"`

	// The status to be updated as part of the UpdateEnvironment action.
	Status *string `locationName:"status" type:"string" enum:"EnvironmentStatus"`

	// The timestamp of when the environment was updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601"`

	// The user parameters to be updated as part of the UpdateEnvironment action.
	UserParameters []*CustomParameter `locationName:"userParameters" 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 UpdateEnvironmentOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateEnvironmentOutput) GoString() string {
	return s.String()
}

// SetAwsAccountId sets the AwsAccountId field's value.
func (s *UpdateEnvironmentOutput) SetAwsAccountId(v string) *UpdateEnvironmentOutput {
	s.AwsAccountId = &v
	return s
}

// SetAwsAccountRegion sets the AwsAccountRegion field's value.
func (s *UpdateEnvironmentOutput) SetAwsAccountRegion(v string) *UpdateEnvironmentOutput {
	s.AwsAccountRegion = &v
	return s
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *UpdateEnvironmentOutput) SetCreatedAt(v time.Time) *UpdateEnvironmentOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *UpdateEnvironmentOutput) SetCreatedBy(v string) *UpdateEnvironmentOutput {
	s.CreatedBy = &v
	return s
}

// SetDeploymentProperties sets the DeploymentProperties field's value.
func (s *UpdateEnvironmentOutput) SetDeploymentProperties(v *DeploymentProperties) *UpdateEnvironmentOutput {
	s.DeploymentProperties = v
	return s
}

// SetDescription sets the Description field's value.
func (s *UpdateEnvironmentOutput) SetDescription(v string) *UpdateEnvironmentOutput {
	s.Description = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *UpdateEnvironmentOutput) SetDomainId(v string) *UpdateEnvironmentOutput {
	s.DomainId = &v
	return s
}

// SetEnvironmentActions sets the EnvironmentActions field's value.
func (s *UpdateEnvironmentOutput) SetEnvironmentActions(v []*ConfigurableEnvironmentAction) *UpdateEnvironmentOutput {
	s.EnvironmentActions = v
	return s
}

// SetEnvironmentBlueprintId sets the EnvironmentBlueprintId field's value.
func (s *UpdateEnvironmentOutput) SetEnvironmentBlueprintId(v string) *UpdateEnvironmentOutput {
	s.EnvironmentBlueprintId = &v
	return s
}

// SetEnvironmentProfileId sets the EnvironmentProfileId field's value.
func (s *UpdateEnvironmentOutput) SetEnvironmentProfileId(v string) *UpdateEnvironmentOutput {
	s.EnvironmentProfileId = &v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *UpdateEnvironmentOutput) SetGlossaryTerms(v []*string) *UpdateEnvironmentOutput {
	s.GlossaryTerms = v
	return s
}

// SetId sets the Id field's value.
func (s *UpdateEnvironmentOutput) SetId(v string) *UpdateEnvironmentOutput {
	s.Id = &v
	return s
}

// SetLastDeployment sets the LastDeployment field's value.
func (s *UpdateEnvironmentOutput) SetLastDeployment(v *Deployment) *UpdateEnvironmentOutput {
	s.LastDeployment = v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateEnvironmentOutput) SetName(v string) *UpdateEnvironmentOutput {
	s.Name = &v
	return s
}

// SetProjectId sets the ProjectId field's value.
func (s *UpdateEnvironmentOutput) SetProjectId(v string) *UpdateEnvironmentOutput {
	s.ProjectId = &v
	return s
}

// SetProvider sets the Provider field's value.
func (s *UpdateEnvironmentOutput) SetProvider(v string) *UpdateEnvironmentOutput {
	s.Provider = &v
	return s
}

// SetProvisionedResources sets the ProvisionedResources field's value.
func (s *UpdateEnvironmentOutput) SetProvisionedResources(v []*Resource) *UpdateEnvironmentOutput {
	s.ProvisionedResources = v
	return s
}

// SetProvisioningProperties sets the ProvisioningProperties field's value.
func (s *UpdateEnvironmentOutput) SetProvisioningProperties(v *ProvisioningProperties) *UpdateEnvironmentOutput {
	s.ProvisioningProperties = v
	return s
}

// SetStatus sets the Status field's value.
func (s *UpdateEnvironmentOutput) SetStatus(v string) *UpdateEnvironmentOutput {
	s.Status = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *UpdateEnvironmentOutput) SetUpdatedAt(v time.Time) *UpdateEnvironmentOutput {
	s.UpdatedAt = &v
	return s
}

// SetUserParameters sets the UserParameters field's value.
func (s *UpdateEnvironmentOutput) SetUserParameters(v []*CustomParameter) *UpdateEnvironmentOutput {
	s.UserParameters = v
	return s
}

type UpdateEnvironmentProfileInput struct {
	_ struct{} `type:"structure"`

	// The Amazon Web Services account in which a specified environment profile
	// is to be udpated.
	AwsAccountId *string `locationName:"awsAccountId" type:"string"`

	// The Amazon Web Services Region in which a specified environment profile is
	// to be updated.
	AwsAccountRegion *string `locationName:"awsAccountRegion" type:"string"`

	// The description to be updated as part of the UpdateEnvironmentProfile action.
	Description *string `locationName:"description" type:"string"`

	// The identifier of the Amazon DataZone domain in which an environment profile
	// is to be updated.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the environment profile that is to be updated.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" type:"string" required:"true"`

	// The name to be updated as part of the UpdateEnvironmentProfile action.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateEnvironmentProfileInput's
	// String and GoString methods.
	Name *string `locationName:"name" min:"1" type:"string" sensitive:"true"`

	// The user parameters to be updated as part of the UpdateEnvironmentProfile
	// action.
	UserParameters []*EnvironmentParameter `locationName:"userParameters" 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 UpdateEnvironmentProfileInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateEnvironmentProfileInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateEnvironmentProfileInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateEnvironmentProfileInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAwsAccountId sets the AwsAccountId field's value.
func (s *UpdateEnvironmentProfileInput) SetAwsAccountId(v string) *UpdateEnvironmentProfileInput {
	s.AwsAccountId = &v
	return s
}

// SetAwsAccountRegion sets the AwsAccountRegion field's value.
func (s *UpdateEnvironmentProfileInput) SetAwsAccountRegion(v string) *UpdateEnvironmentProfileInput {
	s.AwsAccountRegion = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *UpdateEnvironmentProfileInput) SetDescription(v string) *UpdateEnvironmentProfileInput {
	s.Description = &v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *UpdateEnvironmentProfileInput) SetDomainIdentifier(v string) *UpdateEnvironmentProfileInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *UpdateEnvironmentProfileInput) SetIdentifier(v string) *UpdateEnvironmentProfileInput {
	s.Identifier = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateEnvironmentProfileInput) SetName(v string) *UpdateEnvironmentProfileInput {
	s.Name = &v
	return s
}

// SetUserParameters sets the UserParameters field's value.
func (s *UpdateEnvironmentProfileInput) SetUserParameters(v []*EnvironmentParameter) *UpdateEnvironmentProfileInput {
	s.UserParameters = v
	return s
}

type UpdateEnvironmentProfileOutput struct {
	_ struct{} `type:"structure"`

	// The Amazon Web Services account in which a specified environment profile
	// is to be udpated.
	AwsAccountId *string `locationName:"awsAccountId" type:"string"`

	// The Amazon Web Services Region in which a specified environment profile is
	// to be updated.
	AwsAccountRegion *string `locationName:"awsAccountRegion" type:"string"`

	// The timestamp of when the environment profile was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The Amazon DataZone user who created the environment profile.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The description to be updated as part of the UpdateEnvironmentProfile action.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateEnvironmentProfileOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The identifier of the Amazon DataZone domain in which the environment profile
	// is to be updated.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The identifier of the blueprint of the environment profile that is to be
	// updated.
	//
	// EnvironmentBlueprintId is a required field
	EnvironmentBlueprintId *string `locationName:"environmentBlueprintId" type:"string" required:"true"`

	// The identifier of the environment profile that is to be udpated.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The name to be updated as part of the UpdateEnvironmentProfile action.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateEnvironmentProfileOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The identifier of the project of the environment profile that is to be updated.
	ProjectId *string `locationName:"projectId" type:"string"`

	// The timestamp of when the environment profile was updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" timestampFormat:"iso8601"`

	// The user parameters to be updated as part of the UpdateEnvironmentProfile
	// action.
	UserParameters []*CustomParameter `locationName:"userParameters" 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 UpdateEnvironmentProfileOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateEnvironmentProfileOutput) GoString() string {
	return s.String()
}

// SetAwsAccountId sets the AwsAccountId field's value.
func (s *UpdateEnvironmentProfileOutput) SetAwsAccountId(v string) *UpdateEnvironmentProfileOutput {
	s.AwsAccountId = &v
	return s
}

// SetAwsAccountRegion sets the AwsAccountRegion field's value.
func (s *UpdateEnvironmentProfileOutput) SetAwsAccountRegion(v string) *UpdateEnvironmentProfileOutput {
	s.AwsAccountRegion = &v
	return s
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *UpdateEnvironmentProfileOutput) SetCreatedAt(v time.Time) *UpdateEnvironmentProfileOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *UpdateEnvironmentProfileOutput) SetCreatedBy(v string) *UpdateEnvironmentProfileOutput {
	s.CreatedBy = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *UpdateEnvironmentProfileOutput) SetDescription(v string) *UpdateEnvironmentProfileOutput {
	s.Description = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *UpdateEnvironmentProfileOutput) SetDomainId(v string) *UpdateEnvironmentProfileOutput {
	s.DomainId = &v
	return s
}

// SetEnvironmentBlueprintId sets the EnvironmentBlueprintId field's value.
func (s *UpdateEnvironmentProfileOutput) SetEnvironmentBlueprintId(v string) *UpdateEnvironmentProfileOutput {
	s.EnvironmentBlueprintId = &v
	return s
}

// SetId sets the Id field's value.
func (s *UpdateEnvironmentProfileOutput) SetId(v string) *UpdateEnvironmentProfileOutput {
	s.Id = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateEnvironmentProfileOutput) SetName(v string) *UpdateEnvironmentProfileOutput {
	s.Name = &v
	return s
}

// SetProjectId sets the ProjectId field's value.
func (s *UpdateEnvironmentProfileOutput) SetProjectId(v string) *UpdateEnvironmentProfileOutput {
	s.ProjectId = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *UpdateEnvironmentProfileOutput) SetUpdatedAt(v time.Time) *UpdateEnvironmentProfileOutput {
	s.UpdatedAt = &v
	return s
}

// SetUserParameters sets the UserParameters field's value.
func (s *UpdateEnvironmentProfileOutput) SetUserParameters(v []*CustomParameter) *UpdateEnvironmentProfileOutput {
	s.UserParameters = v
	return s
}

type UpdateGlossaryInput struct {
	_ struct{} `type:"structure"`

	// A unique, case-sensitive identifier that is provided to ensure the idempotency
	// of the request.
	ClientToken *string `locationName:"clientToken" min:"1" type:"string" idempotencyToken:"true"`

	// The description to be updated as part of the UpdateGlossary action.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateGlossaryInput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The identifier of the Amazon DataZone domain in which a business glossary
	// is to be updated.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the business glossary to be updated.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" type:"string" required:"true"`

	// The name to be updated as part of the UpdateGlossary action.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateGlossaryInput's
	// String and GoString methods.
	Name *string `locationName:"name" min:"1" type:"string" sensitive:"true"`

	// The status to be updated as part of the UpdateGlossary action.
	Status *string `locationName:"status" type:"string" enum:"GlossaryStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateGlossaryInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateGlossaryInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateGlossaryInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateGlossaryInput"}
	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
	}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetClientToken sets the ClientToken field's value.
func (s *UpdateGlossaryInput) SetClientToken(v string) *UpdateGlossaryInput {
	s.ClientToken = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *UpdateGlossaryInput) SetDescription(v string) *UpdateGlossaryInput {
	s.Description = &v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *UpdateGlossaryInput) SetDomainIdentifier(v string) *UpdateGlossaryInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *UpdateGlossaryInput) SetIdentifier(v string) *UpdateGlossaryInput {
	s.Identifier = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateGlossaryInput) SetName(v string) *UpdateGlossaryInput {
	s.Name = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *UpdateGlossaryInput) SetStatus(v string) *UpdateGlossaryInput {
	s.Status = &v
	return s
}

type UpdateGlossaryOutput struct {
	_ struct{} `type:"structure"`

	// The description to be updated as part of the UpdateGlossary action.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateGlossaryOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The identifier of the Amazon DataZone domain in which a business glossary
	// is to be updated.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The identifier of the business glossary that is to be updated.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The name to be updated as part of the UpdateGlossary action.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateGlossaryOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The identifier of the project in which to update a business glossary.
	//
	// OwningProjectId is a required field
	OwningProjectId *string `locationName:"owningProjectId" type:"string" required:"true"`

	// The status to be updated as part of the UpdateGlossary action.
	Status *string `locationName:"status" type:"string" enum:"GlossaryStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateGlossaryOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateGlossaryOutput) GoString() string {
	return s.String()
}

// SetDescription sets the Description field's value.
func (s *UpdateGlossaryOutput) SetDescription(v string) *UpdateGlossaryOutput {
	s.Description = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *UpdateGlossaryOutput) SetDomainId(v string) *UpdateGlossaryOutput {
	s.DomainId = &v
	return s
}

// SetId sets the Id field's value.
func (s *UpdateGlossaryOutput) SetId(v string) *UpdateGlossaryOutput {
	s.Id = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateGlossaryOutput) SetName(v string) *UpdateGlossaryOutput {
	s.Name = &v
	return s
}

// SetOwningProjectId sets the OwningProjectId field's value.
func (s *UpdateGlossaryOutput) SetOwningProjectId(v string) *UpdateGlossaryOutput {
	s.OwningProjectId = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *UpdateGlossaryOutput) SetStatus(v string) *UpdateGlossaryOutput {
	s.Status = &v
	return s
}

type UpdateGlossaryTermInput struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon DataZone domain in which a business glossary
	// term is to be updated.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the business glossary in which a term is to be updated.
	GlossaryIdentifier *string `locationName:"glossaryIdentifier" type:"string"`

	// The identifier of the business glossary term that is to be updated.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" type:"string" required:"true"`

	// The long description to be updated as part of the UpdateGlossaryTerm action.
	//
	// LongDescription is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateGlossaryTermInput's
	// String and GoString methods.
	LongDescription *string `locationName:"longDescription" type:"string" sensitive:"true"`

	// The name to be updated as part of the UpdateGlossaryTerm action.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateGlossaryTermInput's
	// String and GoString methods.
	Name *string `locationName:"name" min:"1" type:"string" sensitive:"true"`

	// The short description to be updated as part of the UpdateGlossaryTerm action.
	//
	// ShortDescription is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateGlossaryTermInput's
	// String and GoString methods.
	ShortDescription *string `locationName:"shortDescription" type:"string" sensitive:"true"`

	// The status to be updated as part of the UpdateGlossaryTerm action.
	Status *string `locationName:"status" type:"string" enum:"GlossaryTermStatus"`

	// The term relations to be updated as part of the UpdateGlossaryTerm action.
	TermRelations *TermRelations `locationName:"termRelations" 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 UpdateGlossaryTermInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateGlossaryTermInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateGlossaryTermInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateGlossaryTermInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.TermRelations != nil {
		if err := s.TermRelations.Validate(); err != nil {
			invalidParams.AddNested("TermRelations", err.(request.ErrInvalidParams))
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *UpdateGlossaryTermInput) SetDomainIdentifier(v string) *UpdateGlossaryTermInput {
	s.DomainIdentifier = &v
	return s
}

// SetGlossaryIdentifier sets the GlossaryIdentifier field's value.
func (s *UpdateGlossaryTermInput) SetGlossaryIdentifier(v string) *UpdateGlossaryTermInput {
	s.GlossaryIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *UpdateGlossaryTermInput) SetIdentifier(v string) *UpdateGlossaryTermInput {
	s.Identifier = &v
	return s
}

// SetLongDescription sets the LongDescription field's value.
func (s *UpdateGlossaryTermInput) SetLongDescription(v string) *UpdateGlossaryTermInput {
	s.LongDescription = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateGlossaryTermInput) SetName(v string) *UpdateGlossaryTermInput {
	s.Name = &v
	return s
}

// SetShortDescription sets the ShortDescription field's value.
func (s *UpdateGlossaryTermInput) SetShortDescription(v string) *UpdateGlossaryTermInput {
	s.ShortDescription = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *UpdateGlossaryTermInput) SetStatus(v string) *UpdateGlossaryTermInput {
	s.Status = &v
	return s
}

// SetTermRelations sets the TermRelations field's value.
func (s *UpdateGlossaryTermInput) SetTermRelations(v *TermRelations) *UpdateGlossaryTermInput {
	s.TermRelations = v
	return s
}

type UpdateGlossaryTermOutput struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon DataZone domain in which a business glossary
	// term is to be updated.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The identifier of the business glossary in which a term is to be updated.
	//
	// GlossaryId is a required field
	GlossaryId *string `locationName:"glossaryId" type:"string" required:"true"`

	// The identifier of the business glossary term that is to be updated.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The long description to be updated as part of the UpdateGlossaryTerm action.
	//
	// LongDescription is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateGlossaryTermOutput's
	// String and GoString methods.
	LongDescription *string `locationName:"longDescription" type:"string" sensitive:"true"`

	// The name to be updated as part of the UpdateGlossaryTerm action.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateGlossaryTermOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The short description to be updated as part of the UpdateGlossaryTerm action.
	//
	// ShortDescription is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateGlossaryTermOutput's
	// String and GoString methods.
	ShortDescription *string `locationName:"shortDescription" type:"string" sensitive:"true"`

	// The status to be updated as part of the UpdateGlossaryTerm action.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"GlossaryTermStatus"`

	// The term relations to be updated as part of the UpdateGlossaryTerm action.
	TermRelations *TermRelations `locationName:"termRelations" 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 UpdateGlossaryTermOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateGlossaryTermOutput) GoString() string {
	return s.String()
}

// SetDomainId sets the DomainId field's value.
func (s *UpdateGlossaryTermOutput) SetDomainId(v string) *UpdateGlossaryTermOutput {
	s.DomainId = &v
	return s
}

// SetGlossaryId sets the GlossaryId field's value.
func (s *UpdateGlossaryTermOutput) SetGlossaryId(v string) *UpdateGlossaryTermOutput {
	s.GlossaryId = &v
	return s
}

// SetId sets the Id field's value.
func (s *UpdateGlossaryTermOutput) SetId(v string) *UpdateGlossaryTermOutput {
	s.Id = &v
	return s
}

// SetLongDescription sets the LongDescription field's value.
func (s *UpdateGlossaryTermOutput) SetLongDescription(v string) *UpdateGlossaryTermOutput {
	s.LongDescription = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateGlossaryTermOutput) SetName(v string) *UpdateGlossaryTermOutput {
	s.Name = &v
	return s
}

// SetShortDescription sets the ShortDescription field's value.
func (s *UpdateGlossaryTermOutput) SetShortDescription(v string) *UpdateGlossaryTermOutput {
	s.ShortDescription = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *UpdateGlossaryTermOutput) SetStatus(v string) *UpdateGlossaryTermOutput {
	s.Status = &v
	return s
}

// SetTermRelations sets the TermRelations field's value.
func (s *UpdateGlossaryTermOutput) SetTermRelations(v *TermRelations) *UpdateGlossaryTermOutput {
	s.TermRelations = v
	return s
}

type UpdateGroupProfileInput struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon DataZone domain in which a group profile is
	// updated.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the group profile that is updated.
	//
	// GroupIdentifier is a required field
	GroupIdentifier *string `location:"uri" locationName:"groupIdentifier" type:"string" required:"true"`

	// The status of the group profile that is updated.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"GroupProfileStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateGroupProfileInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateGroupProfileInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateGroupProfileInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateGroupProfileInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.GroupIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("GroupIdentifier"))
	}
	if s.GroupIdentifier != nil && len(*s.GroupIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("GroupIdentifier", 1))
	}
	if s.Status == nil {
		invalidParams.Add(request.NewErrParamRequired("Status"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *UpdateGroupProfileInput) SetDomainIdentifier(v string) *UpdateGroupProfileInput {
	s.DomainIdentifier = &v
	return s
}

// SetGroupIdentifier sets the GroupIdentifier field's value.
func (s *UpdateGroupProfileInput) SetGroupIdentifier(v string) *UpdateGroupProfileInput {
	s.GroupIdentifier = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *UpdateGroupProfileInput) SetStatus(v string) *UpdateGroupProfileInput {
	s.Status = &v
	return s
}

type UpdateGroupProfileOutput struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon DataZone domain in which a group profile is
	// updated.
	DomainId *string `locationName:"domainId" type:"string"`

	// The name of the group profile that is updated.
	//
	// GroupName is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateGroupProfileOutput's
	// String and GoString methods.
	GroupName *string `locationName:"groupName" min:"1" type:"string" sensitive:"true"`

	// The identifier of the group profile that is updated.
	Id *string `locationName:"id" type:"string"`

	// The status of the group profile that is updated.
	Status *string `locationName:"status" type:"string" enum:"GroupProfileStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateGroupProfileOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateGroupProfileOutput) GoString() string {
	return s.String()
}

// SetDomainId sets the DomainId field's value.
func (s *UpdateGroupProfileOutput) SetDomainId(v string) *UpdateGroupProfileOutput {
	s.DomainId = &v
	return s
}

// SetGroupName sets the GroupName field's value.
func (s *UpdateGroupProfileOutput) SetGroupName(v string) *UpdateGroupProfileOutput {
	s.GroupName = &v
	return s
}

// SetId sets the Id field's value.
func (s *UpdateGroupProfileOutput) SetId(v string) *UpdateGroupProfileOutput {
	s.Id = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *UpdateGroupProfileOutput) SetStatus(v string) *UpdateGroupProfileOutput {
	s.Status = &v
	return s
}

type UpdateProjectInput struct {
	_ struct{} `type:"structure"`

	// The description to be updated as part of the UpdateProject action.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateProjectInput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The identifier of the Amazon DataZone domain in which a project is to be
	// updated.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The glossary terms to be updated as part of the UpdateProject action.
	GlossaryTerms []*string `locationName:"glossaryTerms" min:"1" type:"list"`

	// The identifier of the project that is to be updated.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" type:"string" required:"true"`

	// The name to be updated as part of the UpdateProject action.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateProjectInput's
	// String and GoString methods.
	Name *string `locationName:"name" min:"1" type:"string" sensitive:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateProjectInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateProjectInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateProjectInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateProjectInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.GlossaryTerms != nil && len(s.GlossaryTerms) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("GlossaryTerms", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDescription sets the Description field's value.
func (s *UpdateProjectInput) SetDescription(v string) *UpdateProjectInput {
	s.Description = &v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *UpdateProjectInput) SetDomainIdentifier(v string) *UpdateProjectInput {
	s.DomainIdentifier = &v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *UpdateProjectInput) SetGlossaryTerms(v []*string) *UpdateProjectInput {
	s.GlossaryTerms = v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *UpdateProjectInput) SetIdentifier(v string) *UpdateProjectInput {
	s.Identifier = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateProjectInput) SetName(v string) *UpdateProjectInput {
	s.Name = &v
	return s
}

type UpdateProjectOutput struct {
	_ struct{} `type:"structure"`

	// The timestamp of when the project was created.
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" timestampFormat:"iso8601"`

	// The Amazon DataZone user who created the project.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The description of the project that is to be updated.
	//
	// Description is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateProjectOutput's
	// String and GoString methods.
	Description *string `locationName:"description" type:"string" sensitive:"true"`

	// The identifier of the Amazon DataZone domain in which a project is updated.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// Reasons for failed project deletion
	FailureReasons []*ProjectDeletionError `locationName:"failureReasons" type:"list"`

	// The glossary terms of the project that are to be updated.
	GlossaryTerms []*string `locationName:"glossaryTerms" min:"1" type:"list"`

	// The identifier of the project that is to be updated.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The timestamp of when the project was last updated.
	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp" timestampFormat:"iso8601"`

	// The name of the project that is to be updated.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateProjectOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// Status of the project
	ProjectStatus *string `locationName:"projectStatus" type:"string" enum:"ProjectStatus"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateProjectOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateProjectOutput) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *UpdateProjectOutput) SetCreatedAt(v time.Time) *UpdateProjectOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *UpdateProjectOutput) SetCreatedBy(v string) *UpdateProjectOutput {
	s.CreatedBy = &v
	return s
}

// SetDescription sets the Description field's value.
func (s *UpdateProjectOutput) SetDescription(v string) *UpdateProjectOutput {
	s.Description = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *UpdateProjectOutput) SetDomainId(v string) *UpdateProjectOutput {
	s.DomainId = &v
	return s
}

// SetFailureReasons sets the FailureReasons field's value.
func (s *UpdateProjectOutput) SetFailureReasons(v []*ProjectDeletionError) *UpdateProjectOutput {
	s.FailureReasons = v
	return s
}

// SetGlossaryTerms sets the GlossaryTerms field's value.
func (s *UpdateProjectOutput) SetGlossaryTerms(v []*string) *UpdateProjectOutput {
	s.GlossaryTerms = v
	return s
}

// SetId sets the Id field's value.
func (s *UpdateProjectOutput) SetId(v string) *UpdateProjectOutput {
	s.Id = &v
	return s
}

// SetLastUpdatedAt sets the LastUpdatedAt field's value.
func (s *UpdateProjectOutput) SetLastUpdatedAt(v time.Time) *UpdateProjectOutput {
	s.LastUpdatedAt = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateProjectOutput) SetName(v string) *UpdateProjectOutput {
	s.Name = &v
	return s
}

// SetProjectStatus sets the ProjectStatus field's value.
func (s *UpdateProjectOutput) SetProjectStatus(v string) *UpdateProjectOutput {
	s.ProjectStatus = &v
	return s
}

type UpdateSubscriptionGrantStatusInput struct {
	_ struct{} `type:"structure"`

	// The identifier of the asset the subscription grant status of which is to
	// be updated.
	//
	// AssetIdentifier is a required field
	AssetIdentifier *string `location:"uri" locationName:"assetIdentifier" type:"string" required:"true"`

	// The identifier of the Amazon DataZone domain in which a subscription grant
	// status is to be updated.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// Specifies the error message that is returned if the operation cannot be successfully
	// completed.
	FailureCause *FailureCause `locationName:"failureCause" type:"structure"`

	// The identifier of the subscription grant the status of which is to be updated.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" type:"string" required:"true"`

	// The status to be updated as part of the UpdateSubscriptionGrantStatus action.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"SubscriptionGrantStatus"`

	// The target name to be updated as part of the UpdateSubscriptionGrantStatus
	// action.
	TargetName *string `locationName:"targetName" 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 UpdateSubscriptionGrantStatusInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSubscriptionGrantStatusInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateSubscriptionGrantStatusInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateSubscriptionGrantStatusInput"}
	if s.AssetIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("AssetIdentifier"))
	}
	if s.AssetIdentifier != nil && len(*s.AssetIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AssetIdentifier", 1))
	}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}
	if s.Status == nil {
		invalidParams.Add(request.NewErrParamRequired("Status"))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetAssetIdentifier sets the AssetIdentifier field's value.
func (s *UpdateSubscriptionGrantStatusInput) SetAssetIdentifier(v string) *UpdateSubscriptionGrantStatusInput {
	s.AssetIdentifier = &v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *UpdateSubscriptionGrantStatusInput) SetDomainIdentifier(v string) *UpdateSubscriptionGrantStatusInput {
	s.DomainIdentifier = &v
	return s
}

// SetFailureCause sets the FailureCause field's value.
func (s *UpdateSubscriptionGrantStatusInput) SetFailureCause(v *FailureCause) *UpdateSubscriptionGrantStatusInput {
	s.FailureCause = v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *UpdateSubscriptionGrantStatusInput) SetIdentifier(v string) *UpdateSubscriptionGrantStatusInput {
	s.Identifier = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *UpdateSubscriptionGrantStatusInput) SetStatus(v string) *UpdateSubscriptionGrantStatusInput {
	s.Status = &v
	return s
}

// SetTargetName sets the TargetName field's value.
func (s *UpdateSubscriptionGrantStatusInput) SetTargetName(v string) *UpdateSubscriptionGrantStatusInput {
	s.TargetName = &v
	return s
}

type UpdateSubscriptionGrantStatusOutput struct {
	_ struct{} `type:"structure"`

	Assets []*SubscribedAsset `locationName:"assets" type:"list"`

	// The timestamp of when the subscription grant status was created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`

	// The Amazon DataZone domain user who created the subscription grant status.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The identifier of the Amazon DataZone domain in which a subscription grant
	// status is to be updated.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The granted entity to be updated as part of the UpdateSubscriptionGrantStatus
	// action.
	//
	// GrantedEntity is a required field
	GrantedEntity *GrantedEntity `locationName:"grantedEntity" type:"structure" required:"true"`

	// The identifier of the subscription grant.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The status to be updated as part of the UpdateSubscriptionGrantStatus action.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"SubscriptionGrantOverallStatus"`

	// The identifier of the subscription.
	SubscriptionId *string `locationName:"subscriptionId" type:"string"`

	// The identifier of the subscription target whose subscription grant status
	// is to be updated.
	//
	// SubscriptionTargetId is a required field
	SubscriptionTargetId *string `locationName:"subscriptionTargetId" type:"string" required:"true"`

	// The timestamp of when the subscription grant status is to be updated.
	//
	// UpdatedAt is a required field
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who updated the subscription grant status.
	UpdatedBy *string `locationName:"updatedBy" 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 UpdateSubscriptionGrantStatusOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSubscriptionGrantStatusOutput) GoString() string {
	return s.String()
}

// SetAssets sets the Assets field's value.
func (s *UpdateSubscriptionGrantStatusOutput) SetAssets(v []*SubscribedAsset) *UpdateSubscriptionGrantStatusOutput {
	s.Assets = v
	return s
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *UpdateSubscriptionGrantStatusOutput) SetCreatedAt(v time.Time) *UpdateSubscriptionGrantStatusOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *UpdateSubscriptionGrantStatusOutput) SetCreatedBy(v string) *UpdateSubscriptionGrantStatusOutput {
	s.CreatedBy = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *UpdateSubscriptionGrantStatusOutput) SetDomainId(v string) *UpdateSubscriptionGrantStatusOutput {
	s.DomainId = &v
	return s
}

// SetGrantedEntity sets the GrantedEntity field's value.
func (s *UpdateSubscriptionGrantStatusOutput) SetGrantedEntity(v *GrantedEntity) *UpdateSubscriptionGrantStatusOutput {
	s.GrantedEntity = v
	return s
}

// SetId sets the Id field's value.
func (s *UpdateSubscriptionGrantStatusOutput) SetId(v string) *UpdateSubscriptionGrantStatusOutput {
	s.Id = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *UpdateSubscriptionGrantStatusOutput) SetStatus(v string) *UpdateSubscriptionGrantStatusOutput {
	s.Status = &v
	return s
}

// SetSubscriptionId sets the SubscriptionId field's value.
func (s *UpdateSubscriptionGrantStatusOutput) SetSubscriptionId(v string) *UpdateSubscriptionGrantStatusOutput {
	s.SubscriptionId = &v
	return s
}

// SetSubscriptionTargetId sets the SubscriptionTargetId field's value.
func (s *UpdateSubscriptionGrantStatusOutput) SetSubscriptionTargetId(v string) *UpdateSubscriptionGrantStatusOutput {
	s.SubscriptionTargetId = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *UpdateSubscriptionGrantStatusOutput) SetUpdatedAt(v time.Time) *UpdateSubscriptionGrantStatusOutput {
	s.UpdatedAt = &v
	return s
}

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *UpdateSubscriptionGrantStatusOutput) SetUpdatedBy(v string) *UpdateSubscriptionGrantStatusOutput {
	s.UpdatedBy = &v
	return s
}

type UpdateSubscriptionRequestInput struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon DataZone domain in which a subscription request
	// is to be updated.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the subscription request that is to be updated.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" type:"string" required:"true"`

	// The reason for the UpdateSubscriptionRequest action.
	//
	// RequestReason is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateSubscriptionRequestInput's
	// String and GoString methods.
	//
	// RequestReason is a required field
	RequestReason *string `locationName:"requestReason" min:"1" 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 UpdateSubscriptionRequestInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSubscriptionRequestInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateSubscriptionRequestInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateSubscriptionRequestInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}
	if s.RequestReason == nil {
		invalidParams.Add(request.NewErrParamRequired("RequestReason"))
	}
	if s.RequestReason != nil && len(*s.RequestReason) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("RequestReason", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *UpdateSubscriptionRequestInput) SetDomainIdentifier(v string) *UpdateSubscriptionRequestInput {
	s.DomainIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *UpdateSubscriptionRequestInput) SetIdentifier(v string) *UpdateSubscriptionRequestInput {
	s.Identifier = &v
	return s
}

// SetRequestReason sets the RequestReason field's value.
func (s *UpdateSubscriptionRequestInput) SetRequestReason(v string) *UpdateSubscriptionRequestInput {
	s.RequestReason = &v
	return s
}

type UpdateSubscriptionRequestOutput struct {
	_ struct{} `type:"structure"`

	// The timestamp of when the subscription request was created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who created the subscription request.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The decision comment of the UpdateSubscriptionRequest action.
	//
	// DecisionComment is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateSubscriptionRequestOutput's
	// String and GoString methods.
	DecisionComment *string `locationName:"decisionComment" min:"1" type:"string" sensitive:"true"`

	// The identifier of the Amazon DataZone domain in which a subscription request
	// is to be updated.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The identifier of the subscription request that is to be updated.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The reason for the UpdateSubscriptionRequest action.
	//
	// RequestReason is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateSubscriptionRequestOutput's
	// String and GoString methods.
	//
	// RequestReason is a required field
	RequestReason *string `locationName:"requestReason" min:"1" type:"string" required:"true" sensitive:"true"`

	// The identifier of the Amazon DataZone user who reviews the subscription request.
	ReviewerId *string `locationName:"reviewerId" type:"string"`

	// The status of the subscription request.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"SubscriptionRequestStatus"`

	// The subscribed listings of the subscription request.
	//
	// SubscribedListings is a required field
	SubscribedListings []*SubscribedListing `locationName:"subscribedListings" min:"1" type:"list" required:"true"`

	// The subscribed principals of the subscription request.
	//
	// SubscribedPrincipals is a required field
	SubscribedPrincipals []*SubscribedPrincipal `locationName:"subscribedPrincipals" min:"1" type:"list" required:"true"`

	// The timestamp of when the subscription request was updated.
	//
	// UpdatedAt is a required field
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who updated the subscription request.
	UpdatedBy *string `locationName:"updatedBy" 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 UpdateSubscriptionRequestOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSubscriptionRequestOutput) GoString() string {
	return s.String()
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *UpdateSubscriptionRequestOutput) SetCreatedAt(v time.Time) *UpdateSubscriptionRequestOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *UpdateSubscriptionRequestOutput) SetCreatedBy(v string) *UpdateSubscriptionRequestOutput {
	s.CreatedBy = &v
	return s
}

// SetDecisionComment sets the DecisionComment field's value.
func (s *UpdateSubscriptionRequestOutput) SetDecisionComment(v string) *UpdateSubscriptionRequestOutput {
	s.DecisionComment = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *UpdateSubscriptionRequestOutput) SetDomainId(v string) *UpdateSubscriptionRequestOutput {
	s.DomainId = &v
	return s
}

// SetId sets the Id field's value.
func (s *UpdateSubscriptionRequestOutput) SetId(v string) *UpdateSubscriptionRequestOutput {
	s.Id = &v
	return s
}

// SetRequestReason sets the RequestReason field's value.
func (s *UpdateSubscriptionRequestOutput) SetRequestReason(v string) *UpdateSubscriptionRequestOutput {
	s.RequestReason = &v
	return s
}

// SetReviewerId sets the ReviewerId field's value.
func (s *UpdateSubscriptionRequestOutput) SetReviewerId(v string) *UpdateSubscriptionRequestOutput {
	s.ReviewerId = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *UpdateSubscriptionRequestOutput) SetStatus(v string) *UpdateSubscriptionRequestOutput {
	s.Status = &v
	return s
}

// SetSubscribedListings sets the SubscribedListings field's value.
func (s *UpdateSubscriptionRequestOutput) SetSubscribedListings(v []*SubscribedListing) *UpdateSubscriptionRequestOutput {
	s.SubscribedListings = v
	return s
}

// SetSubscribedPrincipals sets the SubscribedPrincipals field's value.
func (s *UpdateSubscriptionRequestOutput) SetSubscribedPrincipals(v []*SubscribedPrincipal) *UpdateSubscriptionRequestOutput {
	s.SubscribedPrincipals = v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *UpdateSubscriptionRequestOutput) SetUpdatedAt(v time.Time) *UpdateSubscriptionRequestOutput {
	s.UpdatedAt = &v
	return s
}

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *UpdateSubscriptionRequestOutput) SetUpdatedBy(v string) *UpdateSubscriptionRequestOutput {
	s.UpdatedBy = &v
	return s
}

type UpdateSubscriptionTargetInput struct {
	_ struct{} `type:"structure"`

	// The applicable asset types to be updated as part of the UpdateSubscriptionTarget
	// action.
	ApplicableAssetTypes []*string `locationName:"applicableAssetTypes" type:"list"`

	// The authorized principals to be updated as part of the UpdateSubscriptionTarget
	// action.
	AuthorizedPrincipals []*string `locationName:"authorizedPrincipals" min:"1" type:"list"`

	// The identifier of the Amazon DataZone domain in which a subscription target
	// is to be updated.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The identifier of the environment in which a subscription target is to be
	// updated.
	//
	// EnvironmentIdentifier is a required field
	EnvironmentIdentifier *string `location:"uri" locationName:"environmentIdentifier" type:"string" required:"true"`

	// Identifier of the subscription target that is to be updated.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"identifier" type:"string" required:"true"`

	// The manage access role to be updated as part of the UpdateSubscriptionTarget
	// action.
	ManageAccessRole *string `locationName:"manageAccessRole" type:"string"`

	// The name to be updated as part of the UpdateSubscriptionTarget action.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateSubscriptionTargetInput's
	// String and GoString methods.
	Name *string `locationName:"name" min:"1" type:"string" sensitive:"true"`

	// The provider to be updated as part of the UpdateSubscriptionTarget action.
	Provider *string `locationName:"provider" type:"string"`

	// The configuration to be updated as part of the UpdateSubscriptionTarget action.
	SubscriptionTargetConfig []*SubscriptionTargetForm `locationName:"subscriptionTargetConfig" 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 UpdateSubscriptionTargetInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSubscriptionTargetInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateSubscriptionTargetInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateSubscriptionTargetInput"}
	if s.AuthorizedPrincipals != nil && len(s.AuthorizedPrincipals) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("AuthorizedPrincipals", 1))
	}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.EnvironmentIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("EnvironmentIdentifier"))
	}
	if s.EnvironmentIdentifier != nil && len(*s.EnvironmentIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EnvironmentIdentifier", 1))
	}
	if s.Identifier == nil {
		invalidParams.Add(request.NewErrParamRequired("Identifier"))
	}
	if s.Identifier != nil && len(*s.Identifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Identifier", 1))
	}
	if s.Name != nil && len(*s.Name) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
	}
	if s.SubscriptionTargetConfig != nil {
		for i, v := range s.SubscriptionTargetConfig {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SubscriptionTargetConfig", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetApplicableAssetTypes sets the ApplicableAssetTypes field's value.
func (s *UpdateSubscriptionTargetInput) SetApplicableAssetTypes(v []*string) *UpdateSubscriptionTargetInput {
	s.ApplicableAssetTypes = v
	return s
}

// SetAuthorizedPrincipals sets the AuthorizedPrincipals field's value.
func (s *UpdateSubscriptionTargetInput) SetAuthorizedPrincipals(v []*string) *UpdateSubscriptionTargetInput {
	s.AuthorizedPrincipals = v
	return s
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *UpdateSubscriptionTargetInput) SetDomainIdentifier(v string) *UpdateSubscriptionTargetInput {
	s.DomainIdentifier = &v
	return s
}

// SetEnvironmentIdentifier sets the EnvironmentIdentifier field's value.
func (s *UpdateSubscriptionTargetInput) SetEnvironmentIdentifier(v string) *UpdateSubscriptionTargetInput {
	s.EnvironmentIdentifier = &v
	return s
}

// SetIdentifier sets the Identifier field's value.
func (s *UpdateSubscriptionTargetInput) SetIdentifier(v string) *UpdateSubscriptionTargetInput {
	s.Identifier = &v
	return s
}

// SetManageAccessRole sets the ManageAccessRole field's value.
func (s *UpdateSubscriptionTargetInput) SetManageAccessRole(v string) *UpdateSubscriptionTargetInput {
	s.ManageAccessRole = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateSubscriptionTargetInput) SetName(v string) *UpdateSubscriptionTargetInput {
	s.Name = &v
	return s
}

// SetProvider sets the Provider field's value.
func (s *UpdateSubscriptionTargetInput) SetProvider(v string) *UpdateSubscriptionTargetInput {
	s.Provider = &v
	return s
}

// SetSubscriptionTargetConfig sets the SubscriptionTargetConfig field's value.
func (s *UpdateSubscriptionTargetInput) SetSubscriptionTargetConfig(v []*SubscriptionTargetForm) *UpdateSubscriptionTargetInput {
	s.SubscriptionTargetConfig = v
	return s
}

type UpdateSubscriptionTargetOutput struct {
	_ struct{} `type:"structure"`

	// The applicable asset types to be updated as part of the UpdateSubscriptionTarget
	// action.
	//
	// ApplicableAssetTypes is a required field
	ApplicableAssetTypes []*string `locationName:"applicableAssetTypes" type:"list" required:"true"`

	// The authorized principals to be updated as part of the UpdateSubscriptionTarget
	// action.
	//
	// AuthorizedPrincipals is a required field
	AuthorizedPrincipals []*string `locationName:"authorizedPrincipals" min:"1" type:"list" required:"true"`

	// The timestamp of when a subscription target was created.
	//
	// CreatedAt is a required field
	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp" required:"true"`

	// The Amazon DataZone user who created the subscription target.
	//
	// CreatedBy is a required field
	CreatedBy *string `locationName:"createdBy" type:"string" required:"true"`

	// The identifier of the Amazon DataZone domain in which a subscription target
	// is to be updated.
	//
	// DomainId is a required field
	DomainId *string `locationName:"domainId" type:"string" required:"true"`

	// The identifier of the environment in which a subscription target is to be
	// updated.
	//
	// EnvironmentId is a required field
	EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"`

	// Identifier of the subscription target that is to be updated.
	//
	// Id is a required field
	Id *string `locationName:"id" type:"string" required:"true"`

	// The manage access role to be updated as part of the UpdateSubscriptionTarget
	// action.
	//
	// ManageAccessRole is a required field
	ManageAccessRole *string `locationName:"manageAccessRole" type:"string" required:"true"`

	// The name to be updated as part of the UpdateSubscriptionTarget action.
	//
	// Name is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by UpdateSubscriptionTargetOutput's
	// String and GoString methods.
	//
	// Name is a required field
	Name *string `locationName:"name" min:"1" type:"string" required:"true" sensitive:"true"`

	// The identifier of the project in which a subscription target is to be updated.
	//
	// ProjectId is a required field
	ProjectId *string `locationName:"projectId" type:"string" required:"true"`

	// The provider to be updated as part of the UpdateSubscriptionTarget action.
	//
	// Provider is a required field
	Provider *string `locationName:"provider" type:"string" required:"true"`

	// The configuration to be updated as part of the UpdateSubscriptionTarget action.
	//
	// SubscriptionTargetConfig is a required field
	SubscriptionTargetConfig []*SubscriptionTargetForm `locationName:"subscriptionTargetConfig" type:"list" required:"true"`

	// The type to be updated as part of the UpdateSubscriptionTarget action.
	//
	// Type is a required field
	Type *string `locationName:"type" type:"string" required:"true"`

	// The timestamp of when the subscription target was updated.
	UpdatedAt *time.Time `locationName:"updatedAt" type:"timestamp"`

	// The Amazon DataZone user who updated the subscription target.
	UpdatedBy *string `locationName:"updatedBy" 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 UpdateSubscriptionTargetOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateSubscriptionTargetOutput) GoString() string {
	return s.String()
}

// SetApplicableAssetTypes sets the ApplicableAssetTypes field's value.
func (s *UpdateSubscriptionTargetOutput) SetApplicableAssetTypes(v []*string) *UpdateSubscriptionTargetOutput {
	s.ApplicableAssetTypes = v
	return s
}

// SetAuthorizedPrincipals sets the AuthorizedPrincipals field's value.
func (s *UpdateSubscriptionTargetOutput) SetAuthorizedPrincipals(v []*string) *UpdateSubscriptionTargetOutput {
	s.AuthorizedPrincipals = v
	return s
}

// SetCreatedAt sets the CreatedAt field's value.
func (s *UpdateSubscriptionTargetOutput) SetCreatedAt(v time.Time) *UpdateSubscriptionTargetOutput {
	s.CreatedAt = &v
	return s
}

// SetCreatedBy sets the CreatedBy field's value.
func (s *UpdateSubscriptionTargetOutput) SetCreatedBy(v string) *UpdateSubscriptionTargetOutput {
	s.CreatedBy = &v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *UpdateSubscriptionTargetOutput) SetDomainId(v string) *UpdateSubscriptionTargetOutput {
	s.DomainId = &v
	return s
}

// SetEnvironmentId sets the EnvironmentId field's value.
func (s *UpdateSubscriptionTargetOutput) SetEnvironmentId(v string) *UpdateSubscriptionTargetOutput {
	s.EnvironmentId = &v
	return s
}

// SetId sets the Id field's value.
func (s *UpdateSubscriptionTargetOutput) SetId(v string) *UpdateSubscriptionTargetOutput {
	s.Id = &v
	return s
}

// SetManageAccessRole sets the ManageAccessRole field's value.
func (s *UpdateSubscriptionTargetOutput) SetManageAccessRole(v string) *UpdateSubscriptionTargetOutput {
	s.ManageAccessRole = &v
	return s
}

// SetName sets the Name field's value.
func (s *UpdateSubscriptionTargetOutput) SetName(v string) *UpdateSubscriptionTargetOutput {
	s.Name = &v
	return s
}

// SetProjectId sets the ProjectId field's value.
func (s *UpdateSubscriptionTargetOutput) SetProjectId(v string) *UpdateSubscriptionTargetOutput {
	s.ProjectId = &v
	return s
}

// SetProvider sets the Provider field's value.
func (s *UpdateSubscriptionTargetOutput) SetProvider(v string) *UpdateSubscriptionTargetOutput {
	s.Provider = &v
	return s
}

// SetSubscriptionTargetConfig sets the SubscriptionTargetConfig field's value.
func (s *UpdateSubscriptionTargetOutput) SetSubscriptionTargetConfig(v []*SubscriptionTargetForm) *UpdateSubscriptionTargetOutput {
	s.SubscriptionTargetConfig = v
	return s
}

// SetType sets the Type field's value.
func (s *UpdateSubscriptionTargetOutput) SetType(v string) *UpdateSubscriptionTargetOutput {
	s.Type = &v
	return s
}

// SetUpdatedAt sets the UpdatedAt field's value.
func (s *UpdateSubscriptionTargetOutput) SetUpdatedAt(v time.Time) *UpdateSubscriptionTargetOutput {
	s.UpdatedAt = &v
	return s
}

// SetUpdatedBy sets the UpdatedBy field's value.
func (s *UpdateSubscriptionTargetOutput) SetUpdatedBy(v string) *UpdateSubscriptionTargetOutput {
	s.UpdatedBy = &v
	return s
}

type UpdateUserProfileInput struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon DataZone domain in which a user profile is updated.
	//
	// DomainIdentifier is a required field
	DomainIdentifier *string `location:"uri" locationName:"domainIdentifier" type:"string" required:"true"`

	// The status of the user profile that are to be updated.
	//
	// Status is a required field
	Status *string `locationName:"status" type:"string" required:"true" enum:"UserProfileStatus"`

	// The type of the user profile that are to be updated.
	Type *string `locationName:"type" type:"string" enum:"UserProfileType"`

	// The identifier of the user whose user profile is to be updated.
	//
	// UserIdentifier is a required field
	UserIdentifier *string `location:"uri" locationName:"userIdentifier" 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 UpdateUserProfileInput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateUserProfileInput) GoString() string {
	return s.String()
}

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateUserProfileInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateUserProfileInput"}
	if s.DomainIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("DomainIdentifier"))
	}
	if s.DomainIdentifier != nil && len(*s.DomainIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DomainIdentifier", 1))
	}
	if s.Status == nil {
		invalidParams.Add(request.NewErrParamRequired("Status"))
	}
	if s.UserIdentifier == nil {
		invalidParams.Add(request.NewErrParamRequired("UserIdentifier"))
	}
	if s.UserIdentifier != nil && len(*s.UserIdentifier) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("UserIdentifier", 1))
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}

// SetDomainIdentifier sets the DomainIdentifier field's value.
func (s *UpdateUserProfileInput) SetDomainIdentifier(v string) *UpdateUserProfileInput {
	s.DomainIdentifier = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *UpdateUserProfileInput) SetStatus(v string) *UpdateUserProfileInput {
	s.Status = &v
	return s
}

// SetType sets the Type field's value.
func (s *UpdateUserProfileInput) SetType(v string) *UpdateUserProfileInput {
	s.Type = &v
	return s
}

// SetUserIdentifier sets the UserIdentifier field's value.
func (s *UpdateUserProfileInput) SetUserIdentifier(v string) *UpdateUserProfileInput {
	s.UserIdentifier = &v
	return s
}

type UpdateUserProfileOutput struct {
	_ struct{} `type:"structure"`

	// The details of the user profile in Amazon DataZone.
	Details *UserProfileDetails `locationName:"details" type:"structure"`

	// The identifier of the Amazon DataZone domain in which a user profile is updated.
	DomainId *string `locationName:"domainId" type:"string"`

	// The identifier of the user profile.
	Id *string `locationName:"id" type:"string"`

	// The status of the user profile.
	Status *string `locationName:"status" type:"string" enum:"UserProfileStatus"`

	// The type of the user profile.
	Type *string `locationName:"type" type:"string" enum:"UserProfileType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateUserProfileOutput) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UpdateUserProfileOutput) GoString() string {
	return s.String()
}

// SetDetails sets the Details field's value.
func (s *UpdateUserProfileOutput) SetDetails(v *UserProfileDetails) *UpdateUserProfileOutput {
	s.Details = v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *UpdateUserProfileOutput) SetDomainId(v string) *UpdateUserProfileOutput {
	s.DomainId = &v
	return s
}

// SetId sets the Id field's value.
func (s *UpdateUserProfileOutput) SetId(v string) *UpdateUserProfileOutput {
	s.Id = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *UpdateUserProfileOutput) SetStatus(v string) *UpdateUserProfileOutput {
	s.Status = &v
	return s
}

// SetType sets the Type field's value.
func (s *UpdateUserProfileOutput) SetType(v string) *UpdateUserProfileOutput {
	s.Type = &v
	return s
}

// The user details of a project member.
type UserDetails struct {
	_ struct{} `type:"structure"`

	// The identifier of the Amazon DataZone user.
	//
	// UserId is a required field
	UserId *string `locationName:"userId" 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 UserDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UserDetails) GoString() string {
	return s.String()
}

// SetUserId sets the UserId field's value.
func (s *UserDetails) SetUserId(v string) *UserDetails {
	s.UserId = &v
	return s
}

// The details of the user profile in Amazon DataZone.
type UserProfileDetails struct {
	_ struct{} `type:"structure"`

	// The IAM details included in the user profile details.
	Iam *IamUserProfileDetails `locationName:"iam" type:"structure"`

	// The single sign-on details included in the user profile details.
	Sso *SsoUserProfileDetails `locationName:"sso" 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 UserProfileDetails) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UserProfileDetails) GoString() string {
	return s.String()
}

// SetIam sets the Iam field's value.
func (s *UserProfileDetails) SetIam(v *IamUserProfileDetails) *UserProfileDetails {
	s.Iam = v
	return s
}

// SetSso sets the Sso field's value.
func (s *UserProfileDetails) SetSso(v *SsoUserProfileDetails) *UserProfileDetails {
	s.Sso = v
	return s
}

// The details of the user profile.
type UserProfileSummary struct {
	_ struct{} `type:"structure"`

	// The details of the user profile.
	Details *UserProfileDetails `locationName:"details" type:"structure"`

	// The ID of the Amazon DataZone domain of the user profile.
	DomainId *string `locationName:"domainId" type:"string"`

	// The ID of the user profile.
	Id *string `locationName:"id" type:"string"`

	// The status of the user profile.
	Status *string `locationName:"status" type:"string" enum:"UserProfileStatus"`

	// The type of the user profile.
	Type *string `locationName:"type" type:"string" enum:"UserProfileType"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UserProfileSummary) String() string {
	return awsutil.Prettify(s)
}

// GoString returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s UserProfileSummary) GoString() string {
	return s.String()
}

// SetDetails sets the Details field's value.
func (s *UserProfileSummary) SetDetails(v *UserProfileDetails) *UserProfileSummary {
	s.Details = v
	return s
}

// SetDomainId sets the DomainId field's value.
func (s *UserProfileSummary) SetDomainId(v string) *UserProfileSummary {
	s.DomainId = &v
	return s
}

// SetId sets the Id field's value.
func (s *UserProfileSummary) SetId(v string) *UserProfileSummary {
	s.Id = &v
	return s
}

// SetStatus sets the Status field's value.
func (s *UserProfileSummary) SetStatus(v string) *UserProfileSummary {
	s.Status = &v
	return s
}

// SetType sets the Type field's value.
func (s *UserProfileSummary) SetType(v string) *UserProfileSummary {
	s.Type = &v
	return s
}

// The input fails to satisfy the constraints specified by the Amazon Web Services
// service.
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 (
	// AcceptRuleBehaviorAll is a AcceptRuleBehavior enum value
	AcceptRuleBehaviorAll = "ALL"

	// AcceptRuleBehaviorNone is a AcceptRuleBehavior enum value
	AcceptRuleBehaviorNone = "NONE"
)

// AcceptRuleBehavior_Values returns all elements of the AcceptRuleBehavior enum
func AcceptRuleBehavior_Values() []string {
	return []string{
		AcceptRuleBehaviorAll,
		AcceptRuleBehaviorNone,
	}
}

const (
	// AuthTypeIamIdc is a AuthType enum value
	AuthTypeIamIdc = "IAM_IDC"

	// AuthTypeDisabled is a AuthType enum value
	AuthTypeDisabled = "DISABLED"
)

// AuthType_Values returns all elements of the AuthType enum
func AuthType_Values() []string {
	return []string{
		AuthTypeIamIdc,
		AuthTypeDisabled,
	}
}

const (
	// ChangeActionPublish is a ChangeAction enum value
	ChangeActionPublish = "PUBLISH"

	// ChangeActionUnpublish is a ChangeAction enum value
	ChangeActionUnpublish = "UNPUBLISH"
)

// ChangeAction_Values returns all elements of the ChangeAction enum
func ChangeAction_Values() []string {
	return []string{
		ChangeActionPublish,
		ChangeActionUnpublish,
	}
}

const (
	// ConfigurableActionTypeAuthorizationIam is a ConfigurableActionTypeAuthorization enum value
	ConfigurableActionTypeAuthorizationIam = "IAM"

	// ConfigurableActionTypeAuthorizationHttps is a ConfigurableActionTypeAuthorization enum value
	ConfigurableActionTypeAuthorizationHttps = "HTTPS"
)

// ConfigurableActionTypeAuthorization_Values returns all elements of the ConfigurableActionTypeAuthorization enum
func ConfigurableActionTypeAuthorization_Values() []string {
	return []string{
		ConfigurableActionTypeAuthorizationIam,
		ConfigurableActionTypeAuthorizationHttps,
	}
}

const (
	// DataAssetActivityStatusFailed is a DataAssetActivityStatus enum value
	DataAssetActivityStatusFailed = "FAILED"

	// DataAssetActivityStatusPublishingFailed is a DataAssetActivityStatus enum value
	DataAssetActivityStatusPublishingFailed = "PUBLISHING_FAILED"

	// DataAssetActivityStatusSucceededCreated is a DataAssetActivityStatus enum value
	DataAssetActivityStatusSucceededCreated = "SUCCEEDED_CREATED"

	// DataAssetActivityStatusSucceededUpdated is a DataAssetActivityStatus enum value
	DataAssetActivityStatusSucceededUpdated = "SUCCEEDED_UPDATED"

	// DataAssetActivityStatusSkippedAlreadyImported is a DataAssetActivityStatus enum value
	DataAssetActivityStatusSkippedAlreadyImported = "SKIPPED_ALREADY_IMPORTED"

	// DataAssetActivityStatusSkippedArchived is a DataAssetActivityStatus enum value
	DataAssetActivityStatusSkippedArchived = "SKIPPED_ARCHIVED"

	// DataAssetActivityStatusSkippedNoAccess is a DataAssetActivityStatus enum value
	DataAssetActivityStatusSkippedNoAccess = "SKIPPED_NO_ACCESS"

	// DataAssetActivityStatusUnchanged is a DataAssetActivityStatus enum value
	DataAssetActivityStatusUnchanged = "UNCHANGED"
)

// DataAssetActivityStatus_Values returns all elements of the DataAssetActivityStatus enum
func DataAssetActivityStatus_Values() []string {
	return []string{
		DataAssetActivityStatusFailed,
		DataAssetActivityStatusPublishingFailed,
		DataAssetActivityStatusSucceededCreated,
		DataAssetActivityStatusSucceededUpdated,
		DataAssetActivityStatusSkippedAlreadyImported,
		DataAssetActivityStatusSkippedArchived,
		DataAssetActivityStatusSkippedNoAccess,
		DataAssetActivityStatusUnchanged,
	}
}

const (
	// DataSourceErrorTypeAccessDeniedException is a DataSourceErrorType enum value
	DataSourceErrorTypeAccessDeniedException = "ACCESS_DENIED_EXCEPTION"

	// DataSourceErrorTypeConflictException is a DataSourceErrorType enum value
	DataSourceErrorTypeConflictException = "CONFLICT_EXCEPTION"

	// DataSourceErrorTypeInternalServerException is a DataSourceErrorType enum value
	DataSourceErrorTypeInternalServerException = "INTERNAL_SERVER_EXCEPTION"

	// DataSourceErrorTypeResourceNotFoundException is a DataSourceErrorType enum value
	DataSourceErrorTypeResourceNotFoundException = "RESOURCE_NOT_FOUND_EXCEPTION"

	// DataSourceErrorTypeServiceQuotaExceededException is a DataSourceErrorType enum value
	DataSourceErrorTypeServiceQuotaExceededException = "SERVICE_QUOTA_EXCEEDED_EXCEPTION"

	// DataSourceErrorTypeThrottlingException is a DataSourceErrorType enum value
	DataSourceErrorTypeThrottlingException = "THROTTLING_EXCEPTION"

	// DataSourceErrorTypeValidationException is a DataSourceErrorType enum value
	DataSourceErrorTypeValidationException = "VALIDATION_EXCEPTION"
)

// DataSourceErrorType_Values returns all elements of the DataSourceErrorType enum
func DataSourceErrorType_Values() []string {
	return []string{
		DataSourceErrorTypeAccessDeniedException,
		DataSourceErrorTypeConflictException,
		DataSourceErrorTypeInternalServerException,
		DataSourceErrorTypeResourceNotFoundException,
		DataSourceErrorTypeServiceQuotaExceededException,
		DataSourceErrorTypeThrottlingException,
		DataSourceErrorTypeValidationException,
	}
}

const (
	// DataSourceRunStatusRequested is a DataSourceRunStatus enum value
	DataSourceRunStatusRequested = "REQUESTED"

	// DataSourceRunStatusRunning is a DataSourceRunStatus enum value
	DataSourceRunStatusRunning = "RUNNING"

	// DataSourceRunStatusFailed is a DataSourceRunStatus enum value
	DataSourceRunStatusFailed = "FAILED"

	// DataSourceRunStatusPartiallySucceeded is a DataSourceRunStatus enum value
	DataSourceRunStatusPartiallySucceeded = "PARTIALLY_SUCCEEDED"

	// DataSourceRunStatusSuccess is a DataSourceRunStatus enum value
	DataSourceRunStatusSuccess = "SUCCESS"
)

// DataSourceRunStatus_Values returns all elements of the DataSourceRunStatus enum
func DataSourceRunStatus_Values() []string {
	return []string{
		DataSourceRunStatusRequested,
		DataSourceRunStatusRunning,
		DataSourceRunStatusFailed,
		DataSourceRunStatusPartiallySucceeded,
		DataSourceRunStatusSuccess,
	}
}

const (
	// DataSourceRunTypePrioritized is a DataSourceRunType enum value
	DataSourceRunTypePrioritized = "PRIORITIZED"

	// DataSourceRunTypeScheduled is a DataSourceRunType enum value
	DataSourceRunTypeScheduled = "SCHEDULED"
)

// DataSourceRunType_Values returns all elements of the DataSourceRunType enum
func DataSourceRunType_Values() []string {
	return []string{
		DataSourceRunTypePrioritized,
		DataSourceRunTypeScheduled,
	}
}

const (
	// DataSourceStatusCreating is a DataSourceStatus enum value
	DataSourceStatusCreating = "CREATING"

	// DataSourceStatusFailedCreation is a DataSourceStatus enum value
	DataSourceStatusFailedCreation = "FAILED_CREATION"

	// DataSourceStatusReady is a DataSourceStatus enum value
	DataSourceStatusReady = "READY"

	// DataSourceStatusUpdating is a DataSourceStatus enum value
	DataSourceStatusUpdating = "UPDATING"

	// DataSourceStatusFailedUpdate is a DataSourceStatus enum value
	DataSourceStatusFailedUpdate = "FAILED_UPDATE"

	// DataSourceStatusRunning is a DataSourceStatus enum value
	DataSourceStatusRunning = "RUNNING"

	// DataSourceStatusDeleting is a DataSourceStatus enum value
	DataSourceStatusDeleting = "DELETING"

	// DataSourceStatusFailedDeletion is a DataSourceStatus enum value
	DataSourceStatusFailedDeletion = "FAILED_DELETION"
)

// DataSourceStatus_Values returns all elements of the DataSourceStatus enum
func DataSourceStatus_Values() []string {
	return []string{
		DataSourceStatusCreating,
		DataSourceStatusFailedCreation,
		DataSourceStatusReady,
		DataSourceStatusUpdating,
		DataSourceStatusFailedUpdate,
		DataSourceStatusRunning,
		DataSourceStatusDeleting,
		DataSourceStatusFailedDeletion,
	}
}

const (
	// DeploymentStatusInProgress is a DeploymentStatus enum value
	DeploymentStatusInProgress = "IN_PROGRESS"

	// DeploymentStatusSuccessful is a DeploymentStatus enum value
	DeploymentStatusSuccessful = "SUCCESSFUL"

	// DeploymentStatusFailed is a DeploymentStatus enum value
	DeploymentStatusFailed = "FAILED"

	// DeploymentStatusPendingDeployment is a DeploymentStatus enum value
	DeploymentStatusPendingDeployment = "PENDING_DEPLOYMENT"
)

// DeploymentStatus_Values returns all elements of the DeploymentStatus enum
func DeploymentStatus_Values() []string {
	return []string{
		DeploymentStatusInProgress,
		DeploymentStatusSuccessful,
		DeploymentStatusFailed,
		DeploymentStatusPendingDeployment,
	}
}

const (
	// DeploymentTypeCreate is a DeploymentType enum value
	DeploymentTypeCreate = "CREATE"

	// DeploymentTypeUpdate is a DeploymentType enum value
	DeploymentTypeUpdate = "UPDATE"

	// DeploymentTypeDelete is a DeploymentType enum value
	DeploymentTypeDelete = "DELETE"
)

// DeploymentType_Values returns all elements of the DeploymentType enum
func DeploymentType_Values() []string {
	return []string{
		DeploymentTypeCreate,
		DeploymentTypeUpdate,
		DeploymentTypeDelete,
	}
}

const (
	// DomainStatusCreating is a DomainStatus enum value
	DomainStatusCreating = "CREATING"

	// DomainStatusAvailable is a DomainStatus enum value
	DomainStatusAvailable = "AVAILABLE"

	// DomainStatusCreationFailed is a DomainStatus enum value
	DomainStatusCreationFailed = "CREATION_FAILED"

	// DomainStatusDeleting is a DomainStatus enum value
	DomainStatusDeleting = "DELETING"

	// DomainStatusDeleted is a DomainStatus enum value
	DomainStatusDeleted = "DELETED"

	// DomainStatusDeletionFailed is a DomainStatus enum value
	DomainStatusDeletionFailed = "DELETION_FAILED"
)

// DomainStatus_Values returns all elements of the DomainStatus enum
func DomainStatus_Values() []string {
	return []string{
		DomainStatusCreating,
		DomainStatusAvailable,
		DomainStatusCreationFailed,
		DomainStatusDeleting,
		DomainStatusDeleted,
		DomainStatusDeletionFailed,
	}
}

const (
	// EnableSettingEnabled is a EnableSetting enum value
	EnableSettingEnabled = "ENABLED"

	// EnableSettingDisabled is a EnableSetting enum value
	EnableSettingDisabled = "DISABLED"
)

// EnableSetting_Values returns all elements of the EnableSetting enum
func EnableSetting_Values() []string {
	return []string{
		EnableSettingEnabled,
		EnableSettingDisabled,
	}
}

const (
	// EntityTypeAsset is a EntityType enum value
	EntityTypeAsset = "ASSET"
)

// EntityType_Values returns all elements of the EntityType enum
func EntityType_Values() []string {
	return []string{
		EntityTypeAsset,
	}
}

const (
	// EnvironmentStatusActive is a EnvironmentStatus enum value
	EnvironmentStatusActive = "ACTIVE"

	// EnvironmentStatusCreating is a EnvironmentStatus enum value
	EnvironmentStatusCreating = "CREATING"

	// EnvironmentStatusUpdating is a EnvironmentStatus enum value
	EnvironmentStatusUpdating = "UPDATING"

	// EnvironmentStatusDeleting is a EnvironmentStatus enum value
	EnvironmentStatusDeleting = "DELETING"

	// EnvironmentStatusCreateFailed is a EnvironmentStatus enum value
	EnvironmentStatusCreateFailed = "CREATE_FAILED"

	// EnvironmentStatusUpdateFailed is a EnvironmentStatus enum value
	EnvironmentStatusUpdateFailed = "UPDATE_FAILED"

	// EnvironmentStatusDeleteFailed is a EnvironmentStatus enum value
	EnvironmentStatusDeleteFailed = "DELETE_FAILED"

	// EnvironmentStatusValidationFailed is a EnvironmentStatus enum value
	EnvironmentStatusValidationFailed = "VALIDATION_FAILED"

	// EnvironmentStatusSuspended is a EnvironmentStatus enum value
	EnvironmentStatusSuspended = "SUSPENDED"

	// EnvironmentStatusDisabled is a EnvironmentStatus enum value
	EnvironmentStatusDisabled = "DISABLED"

	// EnvironmentStatusExpired is a EnvironmentStatus enum value
	EnvironmentStatusExpired = "EXPIRED"

	// EnvironmentStatusDeleted is a EnvironmentStatus enum value
	EnvironmentStatusDeleted = "DELETED"

	// EnvironmentStatusInaccessible is a EnvironmentStatus enum value
	EnvironmentStatusInaccessible = "INACCESSIBLE"
)

// EnvironmentStatus_Values returns all elements of the EnvironmentStatus enum
func EnvironmentStatus_Values() []string {
	return []string{
		EnvironmentStatusActive,
		EnvironmentStatusCreating,
		EnvironmentStatusUpdating,
		EnvironmentStatusDeleting,
		EnvironmentStatusCreateFailed,
		EnvironmentStatusUpdateFailed,
		EnvironmentStatusDeleteFailed,
		EnvironmentStatusValidationFailed,
		EnvironmentStatusSuspended,
		EnvironmentStatusDisabled,
		EnvironmentStatusExpired,
		EnvironmentStatusDeleted,
		EnvironmentStatusInaccessible,
	}
}

const (
	// FilterExpressionTypeInclude is a FilterExpressionType enum value
	FilterExpressionTypeInclude = "INCLUDE"

	// FilterExpressionTypeExclude is a FilterExpressionType enum value
	FilterExpressionTypeExclude = "EXCLUDE"
)

// FilterExpressionType_Values returns all elements of the FilterExpressionType enum
func FilterExpressionType_Values() []string {
	return []string{
		FilterExpressionTypeInclude,
		FilterExpressionTypeExclude,
	}
}

const (
	// FormTypeStatusEnabled is a FormTypeStatus enum value
	FormTypeStatusEnabled = "ENABLED"

	// FormTypeStatusDisabled is a FormTypeStatus enum value
	FormTypeStatusDisabled = "DISABLED"
)

// FormTypeStatus_Values returns all elements of the FormTypeStatus enum
func FormTypeStatus_Values() []string {
	return []string{
		FormTypeStatusEnabled,
		FormTypeStatusDisabled,
	}
}

const (
	// GlossaryStatusDisabled is a GlossaryStatus enum value
	GlossaryStatusDisabled = "DISABLED"

	// GlossaryStatusEnabled is a GlossaryStatus enum value
	GlossaryStatusEnabled = "ENABLED"
)

// GlossaryStatus_Values returns all elements of the GlossaryStatus enum
func GlossaryStatus_Values() []string {
	return []string{
		GlossaryStatusDisabled,
		GlossaryStatusEnabled,
	}
}

const (
	// GlossaryTermStatusEnabled is a GlossaryTermStatus enum value
	GlossaryTermStatusEnabled = "ENABLED"

	// GlossaryTermStatusDisabled is a GlossaryTermStatus enum value
	GlossaryTermStatusDisabled = "DISABLED"
)

// GlossaryTermStatus_Values returns all elements of the GlossaryTermStatus enum
func GlossaryTermStatus_Values() []string {
	return []string{
		GlossaryTermStatusEnabled,
		GlossaryTermStatusDisabled,
	}
}

const (
	// GroupProfileStatusAssigned is a GroupProfileStatus enum value
	GroupProfileStatusAssigned = "ASSIGNED"

	// GroupProfileStatusNotAssigned is a GroupProfileStatus enum value
	GroupProfileStatusNotAssigned = "NOT_ASSIGNED"
)

// GroupProfileStatus_Values returns all elements of the GroupProfileStatus enum
func GroupProfileStatus_Values() []string {
	return []string{
		GroupProfileStatusAssigned,
		GroupProfileStatusNotAssigned,
	}
}

const (
	// GroupSearchTypeSsoGroup is a GroupSearchType enum value
	GroupSearchTypeSsoGroup = "SSO_GROUP"

	// GroupSearchTypeDatazoneSsoGroup is a GroupSearchType enum value
	GroupSearchTypeDatazoneSsoGroup = "DATAZONE_SSO_GROUP"
)

// GroupSearchType_Values returns all elements of the GroupSearchType enum
func GroupSearchType_Values() []string {
	return []string{
		GroupSearchTypeSsoGroup,
		GroupSearchTypeDatazoneSsoGroup,
	}
}

const (
	// InventorySearchScopeAsset is a InventorySearchScope enum value
	InventorySearchScopeAsset = "ASSET"

	// InventorySearchScopeGlossary is a InventorySearchScope enum value
	InventorySearchScopeGlossary = "GLOSSARY"

	// InventorySearchScopeGlossaryTerm is a InventorySearchScope enum value
	InventorySearchScopeGlossaryTerm = "GLOSSARY_TERM"
)

// InventorySearchScope_Values returns all elements of the InventorySearchScope enum
func InventorySearchScope_Values() []string {
	return []string{
		InventorySearchScopeAsset,
		InventorySearchScopeGlossary,
		InventorySearchScopeGlossaryTerm,
	}
}

const (
	// ListingStatusCreating is a ListingStatus enum value
	ListingStatusCreating = "CREATING"

	// ListingStatusActive is a ListingStatus enum value
	ListingStatusActive = "ACTIVE"

	// ListingStatusInactive is a ListingStatus enum value
	ListingStatusInactive = "INACTIVE"
)

// ListingStatus_Values returns all elements of the ListingStatus enum
func ListingStatus_Values() []string {
	return []string{
		ListingStatusCreating,
		ListingStatusActive,
		ListingStatusInactive,
	}
}

const (
	// NotificationResourceTypeProject is a NotificationResourceType enum value
	NotificationResourceTypeProject = "PROJECT"
)

// NotificationResourceType_Values returns all elements of the NotificationResourceType enum
func NotificationResourceType_Values() []string {
	return []string{
		NotificationResourceTypeProject,
	}
}

const (
	// NotificationRoleProjectOwner is a NotificationRole enum value
	NotificationRoleProjectOwner = "PROJECT_OWNER"

	// NotificationRoleProjectContributor is a NotificationRole enum value
	NotificationRoleProjectContributor = "PROJECT_CONTRIBUTOR"

	// NotificationRoleProjectViewer is a NotificationRole enum value
	NotificationRoleProjectViewer = "PROJECT_VIEWER"

	// NotificationRoleDomainOwner is a NotificationRole enum value
	NotificationRoleDomainOwner = "DOMAIN_OWNER"

	// NotificationRoleProjectSubscriber is a NotificationRole enum value
	NotificationRoleProjectSubscriber = "PROJECT_SUBSCRIBER"
)

// NotificationRole_Values returns all elements of the NotificationRole enum
func NotificationRole_Values() []string {
	return []string{
		NotificationRoleProjectOwner,
		NotificationRoleProjectContributor,
		NotificationRoleProjectViewer,
		NotificationRoleDomainOwner,
		NotificationRoleProjectSubscriber,
	}
}

const (
	// NotificationTypeTask is a NotificationType enum value
	NotificationTypeTask = "TASK"

	// NotificationTypeEvent is a NotificationType enum value
	NotificationTypeEvent = "EVENT"
)

// NotificationType_Values returns all elements of the NotificationType enum
func NotificationType_Values() []string {
	return []string{
		NotificationTypeTask,
		NotificationTypeEvent,
	}
}

const (
	// ProjectStatusActive is a ProjectStatus enum value
	ProjectStatusActive = "ACTIVE"

	// ProjectStatusDeleting is a ProjectStatus enum value
	ProjectStatusDeleting = "DELETING"

	// ProjectStatusDeleteFailed is a ProjectStatus enum value
	ProjectStatusDeleteFailed = "DELETE_FAILED"
)

// ProjectStatus_Values returns all elements of the ProjectStatus enum
func ProjectStatus_Values() []string {
	return []string{
		ProjectStatusActive,
		ProjectStatusDeleting,
		ProjectStatusDeleteFailed,
	}
}

const (
	// RejectRuleBehaviorAll is a RejectRuleBehavior enum value
	RejectRuleBehaviorAll = "ALL"

	// RejectRuleBehaviorNone is a RejectRuleBehavior enum value
	RejectRuleBehaviorNone = "NONE"
)

// RejectRuleBehavior_Values returns all elements of the RejectRuleBehavior enum
func RejectRuleBehavior_Values() []string {
	return []string{
		RejectRuleBehaviorAll,
		RejectRuleBehaviorNone,
	}
}

const (
	// SearchOutputAdditionalAttributeForms is a SearchOutputAdditionalAttribute enum value
	SearchOutputAdditionalAttributeForms = "FORMS"
)

// SearchOutputAdditionalAttribute_Values returns all elements of the SearchOutputAdditionalAttribute enum
func SearchOutputAdditionalAttribute_Values() []string {
	return []string{
		SearchOutputAdditionalAttributeForms,
	}
}

const (
	// SortFieldProjectName is a SortFieldProject enum value
	SortFieldProjectName = "NAME"
)

// SortFieldProject_Values returns all elements of the SortFieldProject enum
func SortFieldProject_Values() []string {
	return []string{
		SortFieldProjectName,
	}
}

const (
	// SortKeyCreatedAt is a SortKey enum value
	SortKeyCreatedAt = "CREATED_AT"

	// SortKeyUpdatedAt is a SortKey enum value
	SortKeyUpdatedAt = "UPDATED_AT"
)

// SortKey_Values returns all elements of the SortKey enum
func SortKey_Values() []string {
	return []string{
		SortKeyCreatedAt,
		SortKeyUpdatedAt,
	}
}

const (
	// SortOrderAscending is a SortOrder enum value
	SortOrderAscending = "ASCENDING"

	// SortOrderDescending is a SortOrder enum value
	SortOrderDescending = "DESCENDING"
)

// SortOrder_Values returns all elements of the SortOrder enum
func SortOrder_Values() []string {
	return []string{
		SortOrderAscending,
		SortOrderDescending,
	}
}

const (
	// SubscriptionGrantOverallStatusPending is a SubscriptionGrantOverallStatus enum value
	SubscriptionGrantOverallStatusPending = "PENDING"

	// SubscriptionGrantOverallStatusInProgress is a SubscriptionGrantOverallStatus enum value
	SubscriptionGrantOverallStatusInProgress = "IN_PROGRESS"

	// SubscriptionGrantOverallStatusGrantFailed is a SubscriptionGrantOverallStatus enum value
	SubscriptionGrantOverallStatusGrantFailed = "GRANT_FAILED"

	// SubscriptionGrantOverallStatusRevokeFailed is a SubscriptionGrantOverallStatus enum value
	SubscriptionGrantOverallStatusRevokeFailed = "REVOKE_FAILED"

	// SubscriptionGrantOverallStatusGrantAndRevokeFailed is a SubscriptionGrantOverallStatus enum value
	SubscriptionGrantOverallStatusGrantAndRevokeFailed = "GRANT_AND_REVOKE_FAILED"

	// SubscriptionGrantOverallStatusCompleted is a SubscriptionGrantOverallStatus enum value
	SubscriptionGrantOverallStatusCompleted = "COMPLETED"

	// SubscriptionGrantOverallStatusInaccessible is a SubscriptionGrantOverallStatus enum value
	SubscriptionGrantOverallStatusInaccessible = "INACCESSIBLE"
)

// SubscriptionGrantOverallStatus_Values returns all elements of the SubscriptionGrantOverallStatus enum
func SubscriptionGrantOverallStatus_Values() []string {
	return []string{
		SubscriptionGrantOverallStatusPending,
		SubscriptionGrantOverallStatusInProgress,
		SubscriptionGrantOverallStatusGrantFailed,
		SubscriptionGrantOverallStatusRevokeFailed,
		SubscriptionGrantOverallStatusGrantAndRevokeFailed,
		SubscriptionGrantOverallStatusCompleted,
		SubscriptionGrantOverallStatusInaccessible,
	}
}

const (
	// SubscriptionGrantStatusGrantPending is a SubscriptionGrantStatus enum value
	SubscriptionGrantStatusGrantPending = "GRANT_PENDING"

	// SubscriptionGrantStatusRevokePending is a SubscriptionGrantStatus enum value
	SubscriptionGrantStatusRevokePending = "REVOKE_PENDING"

	// SubscriptionGrantStatusGrantInProgress is a SubscriptionGrantStatus enum value
	SubscriptionGrantStatusGrantInProgress = "GRANT_IN_PROGRESS"

	// SubscriptionGrantStatusRevokeInProgress is a SubscriptionGrantStatus enum value
	SubscriptionGrantStatusRevokeInProgress = "REVOKE_IN_PROGRESS"

	// SubscriptionGrantStatusGranted is a SubscriptionGrantStatus enum value
	SubscriptionGrantStatusGranted = "GRANTED"

	// SubscriptionGrantStatusRevoked is a SubscriptionGrantStatus enum value
	SubscriptionGrantStatusRevoked = "REVOKED"

	// SubscriptionGrantStatusGrantFailed is a SubscriptionGrantStatus enum value
	SubscriptionGrantStatusGrantFailed = "GRANT_FAILED"

	// SubscriptionGrantStatusRevokeFailed is a SubscriptionGrantStatus enum value
	SubscriptionGrantStatusRevokeFailed = "REVOKE_FAILED"
)

// SubscriptionGrantStatus_Values returns all elements of the SubscriptionGrantStatus enum
func SubscriptionGrantStatus_Values() []string {
	return []string{
		SubscriptionGrantStatusGrantPending,
		SubscriptionGrantStatusRevokePending,
		SubscriptionGrantStatusGrantInProgress,
		SubscriptionGrantStatusRevokeInProgress,
		SubscriptionGrantStatusGranted,
		SubscriptionGrantStatusRevoked,
		SubscriptionGrantStatusGrantFailed,
		SubscriptionGrantStatusRevokeFailed,
	}
}

const (
	// SubscriptionRequestStatusPending is a SubscriptionRequestStatus enum value
	SubscriptionRequestStatusPending = "PENDING"

	// SubscriptionRequestStatusAccepted is a SubscriptionRequestStatus enum value
	SubscriptionRequestStatusAccepted = "ACCEPTED"

	// SubscriptionRequestStatusRejected is a SubscriptionRequestStatus enum value
	SubscriptionRequestStatusRejected = "REJECTED"
)

// SubscriptionRequestStatus_Values returns all elements of the SubscriptionRequestStatus enum
func SubscriptionRequestStatus_Values() []string {
	return []string{
		SubscriptionRequestStatusPending,
		SubscriptionRequestStatusAccepted,
		SubscriptionRequestStatusRejected,
	}
}

const (
	// SubscriptionStatusApproved is a SubscriptionStatus enum value
	SubscriptionStatusApproved = "APPROVED"

	// SubscriptionStatusRevoked is a SubscriptionStatus enum value
	SubscriptionStatusRevoked = "REVOKED"

	// SubscriptionStatusCancelled is a SubscriptionStatus enum value
	SubscriptionStatusCancelled = "CANCELLED"
)

// SubscriptionStatus_Values returns all elements of the SubscriptionStatus enum
func SubscriptionStatus_Values() []string {
	return []string{
		SubscriptionStatusApproved,
		SubscriptionStatusRevoked,
		SubscriptionStatusCancelled,
	}
}

const (
	// TaskStatusActive is a TaskStatus enum value
	TaskStatusActive = "ACTIVE"

	// TaskStatusInactive is a TaskStatus enum value
	TaskStatusInactive = "INACTIVE"
)

// TaskStatus_Values returns all elements of the TaskStatus enum
func TaskStatus_Values() []string {
	return []string{
		TaskStatusActive,
		TaskStatusInactive,
	}
}

const (
	// TimezoneUtc is a Timezone enum value
	TimezoneUtc = "UTC"

	// TimezoneAfricaJohannesburg is a Timezone enum value
	TimezoneAfricaJohannesburg = "AFRICA_JOHANNESBURG"

	// TimezoneAmericaMontreal is a Timezone enum value
	TimezoneAmericaMontreal = "AMERICA_MONTREAL"

	// TimezoneAmericaSaoPaulo is a Timezone enum value
	TimezoneAmericaSaoPaulo = "AMERICA_SAO_PAULO"

	// TimezoneAsiaBahrain is a Timezone enum value
	TimezoneAsiaBahrain = "ASIA_BAHRAIN"

	// TimezoneAsiaBangkok is a Timezone enum value
	TimezoneAsiaBangkok = "ASIA_BANGKOK"

	// TimezoneAsiaCalcutta is a Timezone enum value
	TimezoneAsiaCalcutta = "ASIA_CALCUTTA"

	// TimezoneAsiaDubai is a Timezone enum value
	TimezoneAsiaDubai = "ASIA_DUBAI"

	// TimezoneAsiaHongKong is a Timezone enum value
	TimezoneAsiaHongKong = "ASIA_HONG_KONG"

	// TimezoneAsiaJakarta is a Timezone enum value
	TimezoneAsiaJakarta = "ASIA_JAKARTA"

	// TimezoneAsiaKualaLumpur is a Timezone enum value
	TimezoneAsiaKualaLumpur = "ASIA_KUALA_LUMPUR"

	// TimezoneAsiaSeoul is a Timezone enum value
	TimezoneAsiaSeoul = "ASIA_SEOUL"

	// TimezoneAsiaShanghai is a Timezone enum value
	TimezoneAsiaShanghai = "ASIA_SHANGHAI"

	// TimezoneAsiaSingapore is a Timezone enum value
	TimezoneAsiaSingapore = "ASIA_SINGAPORE"

	// TimezoneAsiaTaipei is a Timezone enum value
	TimezoneAsiaTaipei = "ASIA_TAIPEI"

	// TimezoneAsiaTokyo is a Timezone enum value
	TimezoneAsiaTokyo = "ASIA_TOKYO"

	// TimezoneAustraliaMelbourne is a Timezone enum value
	TimezoneAustraliaMelbourne = "AUSTRALIA_MELBOURNE"

	// TimezoneAustraliaSydney is a Timezone enum value
	TimezoneAustraliaSydney = "AUSTRALIA_SYDNEY"

	// TimezoneCanadaCentral is a Timezone enum value
	TimezoneCanadaCentral = "CANADA_CENTRAL"

	// TimezoneCet is a Timezone enum value
	TimezoneCet = "CET"

	// TimezoneCst6cdt is a Timezone enum value
	TimezoneCst6cdt = "CST6CDT"

	// TimezoneEtcGmt is a Timezone enum value
	TimezoneEtcGmt = "ETC_GMT"

	// TimezoneEtcGmt0 is a Timezone enum value
	TimezoneEtcGmt0 = "ETC_GMT0"

	// TimezoneEtcGmtAdd0 is a Timezone enum value
	TimezoneEtcGmtAdd0 = "ETC_GMT_ADD_0"

	// TimezoneEtcGmtAdd1 is a Timezone enum value
	TimezoneEtcGmtAdd1 = "ETC_GMT_ADD_1"

	// TimezoneEtcGmtAdd10 is a Timezone enum value
	TimezoneEtcGmtAdd10 = "ETC_GMT_ADD_10"

	// TimezoneEtcGmtAdd11 is a Timezone enum value
	TimezoneEtcGmtAdd11 = "ETC_GMT_ADD_11"

	// TimezoneEtcGmtAdd12 is a Timezone enum value
	TimezoneEtcGmtAdd12 = "ETC_GMT_ADD_12"

	// TimezoneEtcGmtAdd2 is a Timezone enum value
	TimezoneEtcGmtAdd2 = "ETC_GMT_ADD_2"

	// TimezoneEtcGmtAdd3 is a Timezone enum value
	TimezoneEtcGmtAdd3 = "ETC_GMT_ADD_3"

	// TimezoneEtcGmtAdd4 is a Timezone enum value
	TimezoneEtcGmtAdd4 = "ETC_GMT_ADD_4"

	// TimezoneEtcGmtAdd5 is a Timezone enum value
	TimezoneEtcGmtAdd5 = "ETC_GMT_ADD_5"

	// TimezoneEtcGmtAdd6 is a Timezone enum value
	TimezoneEtcGmtAdd6 = "ETC_GMT_ADD_6"

	// TimezoneEtcGmtAdd7 is a Timezone enum value
	TimezoneEtcGmtAdd7 = "ETC_GMT_ADD_7"

	// TimezoneEtcGmtAdd8 is a Timezone enum value
	TimezoneEtcGmtAdd8 = "ETC_GMT_ADD_8"

	// TimezoneEtcGmtAdd9 is a Timezone enum value
	TimezoneEtcGmtAdd9 = "ETC_GMT_ADD_9"

	// TimezoneEtcGmtNeg0 is a Timezone enum value
	TimezoneEtcGmtNeg0 = "ETC_GMT_NEG_0"

	// TimezoneEtcGmtNeg1 is a Timezone enum value
	TimezoneEtcGmtNeg1 = "ETC_GMT_NEG_1"

	// TimezoneEtcGmtNeg10 is a Timezone enum value
	TimezoneEtcGmtNeg10 = "ETC_GMT_NEG_10"

	// TimezoneEtcGmtNeg11 is a Timezone enum value
	TimezoneEtcGmtNeg11 = "ETC_GMT_NEG_11"

	// TimezoneEtcGmtNeg12 is a Timezone enum value
	TimezoneEtcGmtNeg12 = "ETC_GMT_NEG_12"

	// TimezoneEtcGmtNeg13 is a Timezone enum value
	TimezoneEtcGmtNeg13 = "ETC_GMT_NEG_13"

	// TimezoneEtcGmtNeg14 is a Timezone enum value
	TimezoneEtcGmtNeg14 = "ETC_GMT_NEG_14"

	// TimezoneEtcGmtNeg2 is a Timezone enum value
	TimezoneEtcGmtNeg2 = "ETC_GMT_NEG_2"

	// TimezoneEtcGmtNeg3 is a Timezone enum value
	TimezoneEtcGmtNeg3 = "ETC_GMT_NEG_3"

	// TimezoneEtcGmtNeg4 is a Timezone enum value
	TimezoneEtcGmtNeg4 = "ETC_GMT_NEG_4"

	// TimezoneEtcGmtNeg5 is a Timezone enum value
	TimezoneEtcGmtNeg5 = "ETC_GMT_NEG_5"

	// TimezoneEtcGmtNeg6 is a Timezone enum value
	TimezoneEtcGmtNeg6 = "ETC_GMT_NEG_6"

	// TimezoneEtcGmtNeg7 is a Timezone enum value
	TimezoneEtcGmtNeg7 = "ETC_GMT_NEG_7"

	// TimezoneEtcGmtNeg8 is a Timezone enum value
	TimezoneEtcGmtNeg8 = "ETC_GMT_NEG_8"

	// TimezoneEtcGmtNeg9 is a Timezone enum value
	TimezoneEtcGmtNeg9 = "ETC_GMT_NEG_9"

	// TimezoneEuropeDublin is a Timezone enum value
	TimezoneEuropeDublin = "EUROPE_DUBLIN"

	// TimezoneEuropeLondon is a Timezone enum value
	TimezoneEuropeLondon = "EUROPE_LONDON"

	// TimezoneEuropeParis is a Timezone enum value
	TimezoneEuropeParis = "EUROPE_PARIS"

	// TimezoneEuropeStockholm is a Timezone enum value
	TimezoneEuropeStockholm = "EUROPE_STOCKHOLM"

	// TimezoneEuropeZurich is a Timezone enum value
	TimezoneEuropeZurich = "EUROPE_ZURICH"

	// TimezoneIsrael is a Timezone enum value
	TimezoneIsrael = "ISRAEL"

	// TimezoneMexicoGeneral is a Timezone enum value
	TimezoneMexicoGeneral = "MEXICO_GENERAL"

	// TimezoneMst7mdt is a Timezone enum value
	TimezoneMst7mdt = "MST7MDT"

	// TimezonePacificAuckland is a Timezone enum value
	TimezonePacificAuckland = "PACIFIC_AUCKLAND"

	// TimezoneUsCentral is a Timezone enum value
	TimezoneUsCentral = "US_CENTRAL"

	// TimezoneUsEastern is a Timezone enum value
	TimezoneUsEastern = "US_EASTERN"

	// TimezoneUsMountain is a Timezone enum value
	TimezoneUsMountain = "US_MOUNTAIN"

	// TimezoneUsPacific is a Timezone enum value
	TimezoneUsPacific = "US_PACIFIC"
)

// Timezone_Values returns all elements of the Timezone enum
func Timezone_Values() []string {
	return []string{
		TimezoneUtc,
		TimezoneAfricaJohannesburg,
		TimezoneAmericaMontreal,
		TimezoneAmericaSaoPaulo,
		TimezoneAsiaBahrain,
		TimezoneAsiaBangkok,
		TimezoneAsiaCalcutta,
		TimezoneAsiaDubai,
		TimezoneAsiaHongKong,
		TimezoneAsiaJakarta,
		TimezoneAsiaKualaLumpur,
		TimezoneAsiaSeoul,
		TimezoneAsiaShanghai,
		TimezoneAsiaSingapore,
		TimezoneAsiaTaipei,
		TimezoneAsiaTokyo,
		TimezoneAustraliaMelbourne,
		TimezoneAustraliaSydney,
		TimezoneCanadaCentral,
		TimezoneCet,
		TimezoneCst6cdt,
		TimezoneEtcGmt,
		TimezoneEtcGmt0,
		TimezoneEtcGmtAdd0,
		TimezoneEtcGmtAdd1,
		TimezoneEtcGmtAdd10,
		TimezoneEtcGmtAdd11,
		TimezoneEtcGmtAdd12,
		TimezoneEtcGmtAdd2,
		TimezoneEtcGmtAdd3,
		TimezoneEtcGmtAdd4,
		TimezoneEtcGmtAdd5,
		TimezoneEtcGmtAdd6,
		TimezoneEtcGmtAdd7,
		TimezoneEtcGmtAdd8,
		TimezoneEtcGmtAdd9,
		TimezoneEtcGmtNeg0,
		TimezoneEtcGmtNeg1,
		TimezoneEtcGmtNeg10,
		TimezoneEtcGmtNeg11,
		TimezoneEtcGmtNeg12,
		TimezoneEtcGmtNeg13,
		TimezoneEtcGmtNeg14,
		TimezoneEtcGmtNeg2,
		TimezoneEtcGmtNeg3,
		TimezoneEtcGmtNeg4,
		TimezoneEtcGmtNeg5,
		TimezoneEtcGmtNeg6,
		TimezoneEtcGmtNeg7,
		TimezoneEtcGmtNeg8,
		TimezoneEtcGmtNeg9,
		TimezoneEuropeDublin,
		TimezoneEuropeLondon,
		TimezoneEuropeParis,
		TimezoneEuropeStockholm,
		TimezoneEuropeZurich,
		TimezoneIsrael,
		TimezoneMexicoGeneral,
		TimezoneMst7mdt,
		TimezonePacificAuckland,
		TimezoneUsCentral,
		TimezoneUsEastern,
		TimezoneUsMountain,
		TimezoneUsPacific,
	}
}

const (
	// TypesSearchScopeAssetType is a TypesSearchScope enum value
	TypesSearchScopeAssetType = "ASSET_TYPE"

	// TypesSearchScopeFormType is a TypesSearchScope enum value
	TypesSearchScopeFormType = "FORM_TYPE"
)

// TypesSearchScope_Values returns all elements of the TypesSearchScope enum
func TypesSearchScope_Values() []string {
	return []string{
		TypesSearchScopeAssetType,
		TypesSearchScopeFormType,
	}
}

const (
	// UserAssignmentAutomatic is a UserAssignment enum value
	UserAssignmentAutomatic = "AUTOMATIC"

	// UserAssignmentManual is a UserAssignment enum value
	UserAssignmentManual = "MANUAL"
)

// UserAssignment_Values returns all elements of the UserAssignment enum
func UserAssignment_Values() []string {
	return []string{
		UserAssignmentAutomatic,
		UserAssignmentManual,
	}
}

const (
	// UserDesignationProjectOwner is a UserDesignation enum value
	UserDesignationProjectOwner = "PROJECT_OWNER"

	// UserDesignationProjectContributor is a UserDesignation enum value
	UserDesignationProjectContributor = "PROJECT_CONTRIBUTOR"
)

// UserDesignation_Values returns all elements of the UserDesignation enum
func UserDesignation_Values() []string {
	return []string{
		UserDesignationProjectOwner,
		UserDesignationProjectContributor,
	}
}

const (
	// UserProfileStatusAssigned is a UserProfileStatus enum value
	UserProfileStatusAssigned = "ASSIGNED"

	// UserProfileStatusNotAssigned is a UserProfileStatus enum value
	UserProfileStatusNotAssigned = "NOT_ASSIGNED"

	// UserProfileStatusActivated is a UserProfileStatus enum value
	UserProfileStatusActivated = "ACTIVATED"

	// UserProfileStatusDeactivated is a UserProfileStatus enum value
	UserProfileStatusDeactivated = "DEACTIVATED"
)

// UserProfileStatus_Values returns all elements of the UserProfileStatus enum
func UserProfileStatus_Values() []string {
	return []string{
		UserProfileStatusAssigned,
		UserProfileStatusNotAssigned,
		UserProfileStatusActivated,
		UserProfileStatusDeactivated,
	}
}

const (
	// UserProfileTypeIam is a UserProfileType enum value
	UserProfileTypeIam = "IAM"

	// UserProfileTypeSso is a UserProfileType enum value
	UserProfileTypeSso = "SSO"
)

// UserProfileType_Values returns all elements of the UserProfileType enum
func UserProfileType_Values() []string {
	return []string{
		UserProfileTypeIam,
		UserProfileTypeSso,
	}
}

const (
	// UserSearchTypeSsoUser is a UserSearchType enum value
	UserSearchTypeSsoUser = "SSO_USER"

	// UserSearchTypeDatazoneUser is a UserSearchType enum value
	UserSearchTypeDatazoneUser = "DATAZONE_USER"

	// UserSearchTypeDatazoneSsoUser is a UserSearchType enum value
	UserSearchTypeDatazoneSsoUser = "DATAZONE_SSO_USER"

	// UserSearchTypeDatazoneIamUser is a UserSearchType enum value
	UserSearchTypeDatazoneIamUser = "DATAZONE_IAM_USER"
)

// UserSearchType_Values returns all elements of the UserSearchType enum
func UserSearchType_Values() []string {
	return []string{
		UserSearchTypeSsoUser,
		UserSearchTypeDatazoneUser,
		UserSearchTypeDatazoneSsoUser,
		UserSearchTypeDatazoneIamUser,
	}
}

const (
	// UserTypeIamUser is a UserType enum value
	UserTypeIamUser = "IAM_USER"

	// UserTypeIamRole is a UserType enum value
	UserTypeIamRole = "IAM_ROLE"

	// UserTypeSsoUser is a UserType enum value
	UserTypeSsoUser = "SSO_USER"
)

// UserType_Values returns all elements of the UserType enum
func UserType_Values() []string {
	return []string{
		UserTypeIamUser,
		UserTypeIamRole,
		UserTypeSsoUser,
	}
}
© 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