404 Not Found


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

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 opCreateApplication = "CreateApplication"

// CreateApplicationRequest generates a "aws/request.Request" representing the
// client's request for the CreateApplication 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 CreateApplication for more information on using the CreateApplication
// 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 CreateApplicationRequest method.
//	req, resp := client.CreateApplicationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/CreateApplication
func (c *AppIntegrationsService) CreateApplicationRequest(input *CreateApplicationInput) (req *request.Request, output *CreateApplicationOutput) {
	op := &request.Operation{
		Name:       opCreateApplication,
		HTTPMethod: "POST",
		HTTPPath:   "/applications",
	}

	if input == nil {
		input = &CreateApplicationInput{}
	}

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

// CreateApplication API operation for Amazon AppIntegrations Service.
//
// This API is in preview release and subject to change.
//
// Creates and persists an Application resource.
//
// 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 AppIntegrations Service's
// API operation CreateApplication for usage and error information.
//
// Returned Error Types:
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ResourceQuotaExceededException
//     The allowed quota for the resource has been exceeded.
//
//   - DuplicateResourceException
//     A resource with the specified name already exists.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - UnsupportedOperationException
//     The operation is not supported.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/CreateApplication
func (c *AppIntegrationsService) CreateApplication(input *CreateApplicationInput) (*CreateApplicationOutput, error) {
	req, out := c.CreateApplicationRequest(input)
	return out, req.Send()
}

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

const opCreateDataIntegration = "CreateDataIntegration"

// CreateDataIntegrationRequest generates a "aws/request.Request" representing the
// client's request for the CreateDataIntegration 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 CreateDataIntegration for more information on using the CreateDataIntegration
// 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 CreateDataIntegrationRequest method.
//	req, resp := client.CreateDataIntegrationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/CreateDataIntegration
func (c *AppIntegrationsService) CreateDataIntegrationRequest(input *CreateDataIntegrationInput) (req *request.Request, output *CreateDataIntegrationOutput) {
	op := &request.Operation{
		Name:       opCreateDataIntegration,
		HTTPMethod: "POST",
		HTTPPath:   "/dataIntegrations",
	}

	if input == nil {
		input = &CreateDataIntegrationInput{}
	}

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

// CreateDataIntegration API operation for Amazon AppIntegrations Service.
//
// Creates and persists a DataIntegration resource.
//
// You cannot create a DataIntegration association for a DataIntegration that
// has been previously associated. Use a different DataIntegration, or recreate
// the DataIntegration using the CreateDataIntegration API.
//
// 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 AppIntegrations Service's
// API operation CreateDataIntegration for usage and error information.
//
// Returned Error Types:
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ResourceQuotaExceededException
//     The allowed quota for the resource has been exceeded.
//
//   - DuplicateResourceException
//     A resource with the specified name already exists.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/CreateDataIntegration
func (c *AppIntegrationsService) CreateDataIntegration(input *CreateDataIntegrationInput) (*CreateDataIntegrationOutput, error) {
	req, out := c.CreateDataIntegrationRequest(input)
	return out, req.Send()
}

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

const opCreateEventIntegration = "CreateEventIntegration"

// CreateEventIntegrationRequest generates a "aws/request.Request" representing the
// client's request for the CreateEventIntegration 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 CreateEventIntegration for more information on using the CreateEventIntegration
// 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 CreateEventIntegrationRequest method.
//	req, resp := client.CreateEventIntegrationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/CreateEventIntegration
func (c *AppIntegrationsService) CreateEventIntegrationRequest(input *CreateEventIntegrationInput) (req *request.Request, output *CreateEventIntegrationOutput) {
	op := &request.Operation{
		Name:       opCreateEventIntegration,
		HTTPMethod: "POST",
		HTTPPath:   "/eventIntegrations",
	}

	if input == nil {
		input = &CreateEventIntegrationInput{}
	}

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

// CreateEventIntegration API operation for Amazon AppIntegrations Service.
//
// Creates an EventIntegration, given a specified name, description, and a reference
// to an Amazon EventBridge bus in your account and a partner event source that
// pushes events to that bus. No objects are created in the your account, only
// metadata that is persisted on the EventIntegration control plane.
//
// 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 AppIntegrations Service's
// API operation CreateEventIntegration for usage and error information.
//
// Returned Error Types:
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ResourceQuotaExceededException
//     The allowed quota for the resource has been exceeded.
//
//   - DuplicateResourceException
//     A resource with the specified name already exists.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/CreateEventIntegration
func (c *AppIntegrationsService) CreateEventIntegration(input *CreateEventIntegrationInput) (*CreateEventIntegrationOutput, error) {
	req, out := c.CreateEventIntegrationRequest(input)
	return out, req.Send()
}

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

const opDeleteApplication = "DeleteApplication"

// DeleteApplicationRequest generates a "aws/request.Request" representing the
// client's request for the DeleteApplication 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 DeleteApplication for more information on using the DeleteApplication
// 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 DeleteApplicationRequest method.
//	req, resp := client.DeleteApplicationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/DeleteApplication
func (c *AppIntegrationsService) DeleteApplicationRequest(input *DeleteApplicationInput) (req *request.Request, output *DeleteApplicationOutput) {
	op := &request.Operation{
		Name:       opDeleteApplication,
		HTTPMethod: "DELETE",
		HTTPPath:   "/applications/{ApplicationIdentifier}",
	}

	if input == nil {
		input = &DeleteApplicationInput{}
	}

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

// DeleteApplication API operation for Amazon AppIntegrations Service.
//
// Deletes the Application. Only Applications that don't have any Application
// Associations can be deleted.
//
// 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 AppIntegrations Service's
// API operation DeleteApplication for usage and error information.
//
// Returned Error Types:
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
//   - ResourceNotFoundException
//     The specified resource was not found.
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/DeleteApplication
func (c *AppIntegrationsService) DeleteApplication(input *DeleteApplicationInput) (*DeleteApplicationOutput, error) {
	req, out := c.DeleteApplicationRequest(input)
	return out, req.Send()
}

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

const opDeleteDataIntegration = "DeleteDataIntegration"

// DeleteDataIntegrationRequest generates a "aws/request.Request" representing the
// client's request for the DeleteDataIntegration 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 DeleteDataIntegration for more information on using the DeleteDataIntegration
// 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 DeleteDataIntegrationRequest method.
//	req, resp := client.DeleteDataIntegrationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/DeleteDataIntegration
func (c *AppIntegrationsService) DeleteDataIntegrationRequest(input *DeleteDataIntegrationInput) (req *request.Request, output *DeleteDataIntegrationOutput) {
	op := &request.Operation{
		Name:       opDeleteDataIntegration,
		HTTPMethod: "DELETE",
		HTTPPath:   "/dataIntegrations/{Identifier}",
	}

	if input == nil {
		input = &DeleteDataIntegrationInput{}
	}

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

// DeleteDataIntegration API operation for Amazon AppIntegrations Service.
//
// Deletes the DataIntegration. Only DataIntegrations that don't have any DataIntegrationAssociations
// can be deleted. Deleting a DataIntegration also deletes the underlying Amazon
// AppFlow flow and service linked role.
//
// You cannot create a DataIntegration association for a DataIntegration that
// has been previously associated. Use a different DataIntegration, or recreate
// the DataIntegration using the CreateDataIntegration (https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html)
// API.
//
// 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 AppIntegrations Service's
// API operation DeleteDataIntegration for usage and error information.
//
// Returned Error Types:
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
//   - ResourceNotFoundException
//     The specified resource was not found.
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/DeleteDataIntegration
func (c *AppIntegrationsService) DeleteDataIntegration(input *DeleteDataIntegrationInput) (*DeleteDataIntegrationOutput, error) {
	req, out := c.DeleteDataIntegrationRequest(input)
	return out, req.Send()
}

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

const opDeleteEventIntegration = "DeleteEventIntegration"

// DeleteEventIntegrationRequest generates a "aws/request.Request" representing the
// client's request for the DeleteEventIntegration 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 DeleteEventIntegration for more information on using the DeleteEventIntegration
// 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 DeleteEventIntegrationRequest method.
//	req, resp := client.DeleteEventIntegrationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/DeleteEventIntegration
func (c *AppIntegrationsService) DeleteEventIntegrationRequest(input *DeleteEventIntegrationInput) (req *request.Request, output *DeleteEventIntegrationOutput) {
	op := &request.Operation{
		Name:       opDeleteEventIntegration,
		HTTPMethod: "DELETE",
		HTTPPath:   "/eventIntegrations/{Name}",
	}

	if input == nil {
		input = &DeleteEventIntegrationInput{}
	}

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

// DeleteEventIntegration API operation for Amazon AppIntegrations Service.
//
// Deletes the specified existing event integration. If the event integration
// is associated with clients, the request is rejected.
//
// 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 AppIntegrations Service's
// API operation DeleteEventIntegration for usage and error information.
//
// Returned Error Types:
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
//   - ResourceNotFoundException
//     The specified resource was not found.
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/DeleteEventIntegration
func (c *AppIntegrationsService) DeleteEventIntegration(input *DeleteEventIntegrationInput) (*DeleteEventIntegrationOutput, error) {
	req, out := c.DeleteEventIntegrationRequest(input)
	return out, req.Send()
}

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

const opGetApplication = "GetApplication"

// GetApplicationRequest generates a "aws/request.Request" representing the
// client's request for the GetApplication 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 GetApplication for more information on using the GetApplication
// 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 GetApplicationRequest method.
//	req, resp := client.GetApplicationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/GetApplication
func (c *AppIntegrationsService) GetApplicationRequest(input *GetApplicationInput) (req *request.Request, output *GetApplicationOutput) {
	op := &request.Operation{
		Name:       opGetApplication,
		HTTPMethod: "GET",
		HTTPPath:   "/applications/{ApplicationIdentifier}",
	}

	if input == nil {
		input = &GetApplicationInput{}
	}

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

// GetApplication API operation for Amazon AppIntegrations Service.
//
// This API is in preview release and subject to change.
//
// Get an Application resource.
//
// 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 AppIntegrations Service's
// API operation GetApplication for usage and error information.
//
// Returned Error Types:
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
//   - ResourceNotFoundException
//     The specified resource was not found.
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/GetApplication
func (c *AppIntegrationsService) GetApplication(input *GetApplicationInput) (*GetApplicationOutput, error) {
	req, out := c.GetApplicationRequest(input)
	return out, req.Send()
}

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

const opGetDataIntegration = "GetDataIntegration"

// GetDataIntegrationRequest generates a "aws/request.Request" representing the
// client's request for the GetDataIntegration 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 GetDataIntegration for more information on using the GetDataIntegration
// 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 GetDataIntegrationRequest method.
//	req, resp := client.GetDataIntegrationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/GetDataIntegration
func (c *AppIntegrationsService) GetDataIntegrationRequest(input *GetDataIntegrationInput) (req *request.Request, output *GetDataIntegrationOutput) {
	op := &request.Operation{
		Name:       opGetDataIntegration,
		HTTPMethod: "GET",
		HTTPPath:   "/dataIntegrations/{Identifier}",
	}

	if input == nil {
		input = &GetDataIntegrationInput{}
	}

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

// GetDataIntegration API operation for Amazon AppIntegrations Service.
//
// Returns information about the DataIntegration.
//
// You cannot create a DataIntegration association for a DataIntegration that
// has been previously associated. Use a different DataIntegration, or recreate
// the DataIntegration using the CreateDataIntegration (https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html)
// API.
//
// 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 AppIntegrations Service's
// API operation GetDataIntegration for usage and error information.
//
// Returned Error Types:
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
//   - ResourceNotFoundException
//     The specified resource was not found.
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/GetDataIntegration
func (c *AppIntegrationsService) GetDataIntegration(input *GetDataIntegrationInput) (*GetDataIntegrationOutput, error) {
	req, out := c.GetDataIntegrationRequest(input)
	return out, req.Send()
}

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

const opGetEventIntegration = "GetEventIntegration"

// GetEventIntegrationRequest generates a "aws/request.Request" representing the
// client's request for the GetEventIntegration 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 GetEventIntegration for more information on using the GetEventIntegration
// 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 GetEventIntegrationRequest method.
//	req, resp := client.GetEventIntegrationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/GetEventIntegration
func (c *AppIntegrationsService) GetEventIntegrationRequest(input *GetEventIntegrationInput) (req *request.Request, output *GetEventIntegrationOutput) {
	op := &request.Operation{
		Name:       opGetEventIntegration,
		HTTPMethod: "GET",
		HTTPPath:   "/eventIntegrations/{Name}",
	}

	if input == nil {
		input = &GetEventIntegrationInput{}
	}

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

// GetEventIntegration API operation for Amazon AppIntegrations Service.
//
// Returns information about the event integration.
//
// 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 AppIntegrations Service's
// API operation GetEventIntegration for usage and error information.
//
// Returned Error Types:
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
//   - ResourceNotFoundException
//     The specified resource was not found.
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/GetEventIntegration
func (c *AppIntegrationsService) GetEventIntegration(input *GetEventIntegrationInput) (*GetEventIntegrationOutput, error) {
	req, out := c.GetEventIntegrationRequest(input)
	return out, req.Send()
}

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

const opListApplicationAssociations = "ListApplicationAssociations"

// ListApplicationAssociationsRequest generates a "aws/request.Request" representing the
// client's request for the ListApplicationAssociations 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 ListApplicationAssociations for more information on using the ListApplicationAssociations
// 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 ListApplicationAssociationsRequest method.
//	req, resp := client.ListApplicationAssociationsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListApplicationAssociations
func (c *AppIntegrationsService) ListApplicationAssociationsRequest(input *ListApplicationAssociationsInput) (req *request.Request, output *ListApplicationAssociationsOutput) {
	op := &request.Operation{
		Name:       opListApplicationAssociations,
		HTTPMethod: "GET",
		HTTPPath:   "/applications/{ApplicationIdentifier}/associations",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListApplicationAssociationsInput{}
	}

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

// ListApplicationAssociations API operation for Amazon AppIntegrations Service.
//
// Returns a paginated list of application associations for an application.
//
// 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 AppIntegrations Service's
// API operation ListApplicationAssociations for usage and error information.
//
// Returned Error Types:
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
//   - ResourceNotFoundException
//     The specified resource was not found.
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListApplicationAssociations
func (c *AppIntegrationsService) ListApplicationAssociations(input *ListApplicationAssociationsInput) (*ListApplicationAssociationsOutput, error) {
	req, out := c.ListApplicationAssociationsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListApplications = "ListApplications"

// ListApplicationsRequest generates a "aws/request.Request" representing the
// client's request for the ListApplications 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 ListApplications for more information on using the ListApplications
// 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 ListApplicationsRequest method.
//	req, resp := client.ListApplicationsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListApplications
func (c *AppIntegrationsService) ListApplicationsRequest(input *ListApplicationsInput) (req *request.Request, output *ListApplicationsOutput) {
	op := &request.Operation{
		Name:       opListApplications,
		HTTPMethod: "GET",
		HTTPPath:   "/applications",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListApplicationsInput{}
	}

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

// ListApplications API operation for Amazon AppIntegrations Service.
//
// This API is in preview release and subject to change.
//
// Lists applications in the account.
//
// 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 AppIntegrations Service's
// API operation ListApplications for usage and error information.
//
// Returned Error Types:
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListApplications
func (c *AppIntegrationsService) ListApplications(input *ListApplicationsInput) (*ListApplicationsOutput, error) {
	req, out := c.ListApplicationsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListDataIntegrationAssociations = "ListDataIntegrationAssociations"

// ListDataIntegrationAssociationsRequest generates a "aws/request.Request" representing the
// client's request for the ListDataIntegrationAssociations 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 ListDataIntegrationAssociations for more information on using the ListDataIntegrationAssociations
// 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 ListDataIntegrationAssociationsRequest method.
//	req, resp := client.ListDataIntegrationAssociationsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListDataIntegrationAssociations
func (c *AppIntegrationsService) ListDataIntegrationAssociationsRequest(input *ListDataIntegrationAssociationsInput) (req *request.Request, output *ListDataIntegrationAssociationsOutput) {
	op := &request.Operation{
		Name:       opListDataIntegrationAssociations,
		HTTPMethod: "GET",
		HTTPPath:   "/dataIntegrations/{Identifier}/associations",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListDataIntegrationAssociationsInput{}
	}

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

// ListDataIntegrationAssociations API operation for Amazon AppIntegrations Service.
//
// Returns a paginated list of DataIntegration associations in the account.
//
// You cannot create a DataIntegration association for a DataIntegration that
// has been previously associated. Use a different DataIntegration, or recreate
// the DataIntegration using the CreateDataIntegration (https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html)
// API.
//
// 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 AppIntegrations Service's
// API operation ListDataIntegrationAssociations for usage and error information.
//
// Returned Error Types:
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
//   - ResourceNotFoundException
//     The specified resource was not found.
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListDataIntegrationAssociations
func (c *AppIntegrationsService) ListDataIntegrationAssociations(input *ListDataIntegrationAssociationsInput) (*ListDataIntegrationAssociationsOutput, error) {
	req, out := c.ListDataIntegrationAssociationsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListDataIntegrations = "ListDataIntegrations"

// ListDataIntegrationsRequest generates a "aws/request.Request" representing the
// client's request for the ListDataIntegrations 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 ListDataIntegrations for more information on using the ListDataIntegrations
// 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 ListDataIntegrationsRequest method.
//	req, resp := client.ListDataIntegrationsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListDataIntegrations
func (c *AppIntegrationsService) ListDataIntegrationsRequest(input *ListDataIntegrationsInput) (req *request.Request, output *ListDataIntegrationsOutput) {
	op := &request.Operation{
		Name:       opListDataIntegrations,
		HTTPMethod: "GET",
		HTTPPath:   "/dataIntegrations",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListDataIntegrationsInput{}
	}

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

// ListDataIntegrations API operation for Amazon AppIntegrations Service.
//
// Returns a paginated list of DataIntegrations in the account.
//
// You cannot create a DataIntegration association for a DataIntegration that
// has been previously associated. Use a different DataIntegration, or recreate
// the DataIntegration using the CreateDataIntegration (https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html)
// API.
//
// 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 AppIntegrations Service's
// API operation ListDataIntegrations for usage and error information.
//
// Returned Error Types:
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListDataIntegrations
func (c *AppIntegrationsService) ListDataIntegrations(input *ListDataIntegrationsInput) (*ListDataIntegrationsOutput, error) {
	req, out := c.ListDataIntegrationsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListEventIntegrationAssociations = "ListEventIntegrationAssociations"

// ListEventIntegrationAssociationsRequest generates a "aws/request.Request" representing the
// client's request for the ListEventIntegrationAssociations 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 ListEventIntegrationAssociations for more information on using the ListEventIntegrationAssociations
// 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 ListEventIntegrationAssociationsRequest method.
//	req, resp := client.ListEventIntegrationAssociationsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListEventIntegrationAssociations
func (c *AppIntegrationsService) ListEventIntegrationAssociationsRequest(input *ListEventIntegrationAssociationsInput) (req *request.Request, output *ListEventIntegrationAssociationsOutput) {
	op := &request.Operation{
		Name:       opListEventIntegrationAssociations,
		HTTPMethod: "GET",
		HTTPPath:   "/eventIntegrations/{Name}/associations",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListEventIntegrationAssociationsInput{}
	}

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

// ListEventIntegrationAssociations API operation for Amazon AppIntegrations Service.
//
// Returns a paginated list of event integration associations in the account.
//
// 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 AppIntegrations Service's
// API operation ListEventIntegrationAssociations for usage and error information.
//
// Returned Error Types:
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
//   - ResourceNotFoundException
//     The specified resource was not found.
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListEventIntegrationAssociations
func (c *AppIntegrationsService) ListEventIntegrationAssociations(input *ListEventIntegrationAssociationsInput) (*ListEventIntegrationAssociationsOutput, error) {
	req, out := c.ListEventIntegrationAssociationsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListEventIntegrations = "ListEventIntegrations"

// ListEventIntegrationsRequest generates a "aws/request.Request" representing the
// client's request for the ListEventIntegrations 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 ListEventIntegrations for more information on using the ListEventIntegrations
// 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 ListEventIntegrationsRequest method.
//	req, resp := client.ListEventIntegrationsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListEventIntegrations
func (c *AppIntegrationsService) ListEventIntegrationsRequest(input *ListEventIntegrationsInput) (req *request.Request, output *ListEventIntegrationsOutput) {
	op := &request.Operation{
		Name:       opListEventIntegrations,
		HTTPMethod: "GET",
		HTTPPath:   "/eventIntegrations",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListEventIntegrationsInput{}
	}

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

// ListEventIntegrations API operation for Amazon AppIntegrations Service.
//
// Returns a paginated list of event integrations in the account.
//
// 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 AppIntegrations Service's
// API operation ListEventIntegrations for usage and error information.
//
// Returned Error Types:
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListEventIntegrations
func (c *AppIntegrationsService) ListEventIntegrations(input *ListEventIntegrationsInput) (*ListEventIntegrationsOutput, error) {
	req, out := c.ListEventIntegrationsRequest(input)
	return out, req.Send()
}

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

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

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

	for p.Next() {
		if !fn(p.Page().(*ListEventIntegrationsOutput), !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/appintegrations-2020-07-29/ListTagsForResource
func (c *AppIntegrationsService) 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 AppIntegrations Service.
//
// Lists the tags for the specified resource.
//
// 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 AppIntegrations Service's
// API operation ListTagsForResource for usage and error information.
//
// Returned Error Types:
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ResourceNotFoundException
//     The specified resource was not found.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListTagsForResource
func (c *AppIntegrationsService) 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 *AppIntegrationsService) 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 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/appintegrations-2020-07-29/TagResource
func (c *AppIntegrationsService) 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 AppIntegrations Service.
//
// Adds the specified tags to the specified resource.
//
// 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 AppIntegrations Service's
// API operation TagResource for usage and error information.
//
// Returned Error Types:
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ResourceNotFoundException
//     The specified resource was not found.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/TagResource
func (c *AppIntegrationsService) 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 *AppIntegrationsService) 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/appintegrations-2020-07-29/UntagResource
func (c *AppIntegrationsService) 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 AppIntegrations Service.
//
// Removes the specified tags from the specified resource.
//
// 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 AppIntegrations Service's
// API operation UntagResource for usage and error information.
//
// Returned Error Types:
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ResourceNotFoundException
//     The specified resource was not found.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/UntagResource
func (c *AppIntegrationsService) 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 *AppIntegrationsService) 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 opUpdateApplication = "UpdateApplication"

// UpdateApplicationRequest generates a "aws/request.Request" representing the
// client's request for the UpdateApplication 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 UpdateApplication for more information on using the UpdateApplication
// 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 UpdateApplicationRequest method.
//	req, resp := client.UpdateApplicationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/UpdateApplication
func (c *AppIntegrationsService) UpdateApplicationRequest(input *UpdateApplicationInput) (req *request.Request, output *UpdateApplicationOutput) {
	op := &request.Operation{
		Name:       opUpdateApplication,
		HTTPMethod: "PATCH",
		HTTPPath:   "/applications/{ApplicationIdentifier}",
	}

	if input == nil {
		input = &UpdateApplicationInput{}
	}

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

// UpdateApplication API operation for Amazon AppIntegrations Service.
//
// This API is in preview release and subject to change.
//
// Updates and persists an Application resource.
//
// 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 AppIntegrations Service's
// API operation UpdateApplication for usage and error information.
//
// Returned Error Types:
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
//   - ResourceNotFoundException
//     The specified resource was not found.
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
//   - UnsupportedOperationException
//     The operation is not supported.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/UpdateApplication
func (c *AppIntegrationsService) UpdateApplication(input *UpdateApplicationInput) (*UpdateApplicationOutput, error) {
	req, out := c.UpdateApplicationRequest(input)
	return out, req.Send()
}

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

const opUpdateDataIntegration = "UpdateDataIntegration"

// UpdateDataIntegrationRequest generates a "aws/request.Request" representing the
// client's request for the UpdateDataIntegration 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 UpdateDataIntegration for more information on using the UpdateDataIntegration
// 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 UpdateDataIntegrationRequest method.
//	req, resp := client.UpdateDataIntegrationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/UpdateDataIntegration
func (c *AppIntegrationsService) UpdateDataIntegrationRequest(input *UpdateDataIntegrationInput) (req *request.Request, output *UpdateDataIntegrationOutput) {
	op := &request.Operation{
		Name:       opUpdateDataIntegration,
		HTTPMethod: "PATCH",
		HTTPPath:   "/dataIntegrations/{Identifier}",
	}

	if input == nil {
		input = &UpdateDataIntegrationInput{}
	}

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

// UpdateDataIntegration API operation for Amazon AppIntegrations Service.
//
// Updates the description of a DataIntegration.
//
// You cannot create a DataIntegration association for a DataIntegration that
// has been previously associated. Use a different DataIntegration, or recreate
// the DataIntegration using the CreateDataIntegration (https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html)
// API.
//
// 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 AppIntegrations Service's
// API operation UpdateDataIntegration for usage and error information.
//
// Returned Error Types:
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
//   - ResourceNotFoundException
//     The specified resource was not found.
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/UpdateDataIntegration
func (c *AppIntegrationsService) UpdateDataIntegration(input *UpdateDataIntegrationInput) (*UpdateDataIntegrationOutput, error) {
	req, out := c.UpdateDataIntegrationRequest(input)
	return out, req.Send()
}

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

const opUpdateEventIntegration = "UpdateEventIntegration"

// UpdateEventIntegrationRequest generates a "aws/request.Request" representing the
// client's request for the UpdateEventIntegration 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 UpdateEventIntegration for more information on using the UpdateEventIntegration
// 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 UpdateEventIntegrationRequest method.
//	req, resp := client.UpdateEventIntegrationRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/UpdateEventIntegration
func (c *AppIntegrationsService) UpdateEventIntegrationRequest(input *UpdateEventIntegrationInput) (req *request.Request, output *UpdateEventIntegrationOutput) {
	op := &request.Operation{
		Name:       opUpdateEventIntegration,
		HTTPMethod: "PATCH",
		HTTPPath:   "/eventIntegrations/{Name}",
	}

	if input == nil {
		input = &UpdateEventIntegrationInput{}
	}

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

// UpdateEventIntegration API operation for Amazon AppIntegrations Service.
//
// Updates the description of an event integration.
//
// 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 AppIntegrations Service's
// API operation UpdateEventIntegration for usage and error information.
//
// Returned Error Types:
//
//   - InternalServiceError
//     Request processing failed due to an error or failure with the service.
//
//   - ThrottlingException
//     The throttling limit has been exceeded.
//
//   - ResourceNotFoundException
//     The specified resource was not found.
//
//   - InvalidRequestException
//     The request is not valid.
//
//   - AccessDeniedException
//     You do not have sufficient access to perform this action.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/UpdateEventIntegration
func (c *AppIntegrationsService) UpdateEventIntegration(input *UpdateEventIntegrationInput) (*UpdateEventIntegrationOutput, error) {
	req, out := c.UpdateEventIntegrationRequest(input)
	return out, req.Send()
}

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

// You do not have sufficient access to perform this action.
type AccessDeniedException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

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

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

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

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

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

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

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

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

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

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

// Summary information about the Application Association.
type ApplicationAssociationSummary struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the Application.
	ApplicationArn *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of the Application Association.
	ApplicationAssociationArn *string `min:"1" type:"string"`

	// The identifier for the client that is associated with the Application Association.
	ClientId *string `min:"1" type:"string"`
}

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

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

// SetApplicationArn sets the ApplicationArn field's value.
func (s *ApplicationAssociationSummary) SetApplicationArn(v string) *ApplicationAssociationSummary {
	s.ApplicationArn = &v
	return s
}

// SetApplicationAssociationArn sets the ApplicationAssociationArn field's value.
func (s *ApplicationAssociationSummary) SetApplicationAssociationArn(v string) *ApplicationAssociationSummary {
	s.ApplicationAssociationArn = &v
	return s
}

// SetClientId sets the ClientId field's value.
func (s *ApplicationAssociationSummary) SetClientId(v string) *ApplicationAssociationSummary {
	s.ClientId = &v
	return s
}

// The configuration for where the application should be loaded from.
type ApplicationSourceConfig struct {
	_ struct{} `type:"structure"`

	// The external URL source for the application.
	ExternalUrlConfig *ExternalUrlConfig `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 ApplicationSourceConfig) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetExternalUrlConfig sets the ExternalUrlConfig field's value.
func (s *ApplicationSourceConfig) SetExternalUrlConfig(v *ExternalUrlConfig) *ApplicationSourceConfig {
	s.ExternalUrlConfig = v
	return s
}

// Summary information about the Application.
type ApplicationSummary struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the Application.
	Arn *string `min:"1" type:"string"`

	// The time when the application was created.
	CreatedTime *time.Time `type:"timestamp"`

	// A unique identifier for the Application.
	Id *string `type:"string"`

	// The time when the application was last modified.
	LastModifiedTime *time.Time `type:"timestamp"`

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

	// The namespace of the application.
	Namespace *string `min:"1" type:"string"`
}

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

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

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

// SetCreatedTime sets the CreatedTime field's value.
func (s *ApplicationSummary) SetCreatedTime(v time.Time) *ApplicationSummary {
	s.CreatedTime = &v
	return s
}

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

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *ApplicationSummary) SetLastModifiedTime(v time.Time) *ApplicationSummary {
	s.LastModifiedTime = &v
	return s
}

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

// SetNamespace sets the Namespace field's value.
func (s *ApplicationSummary) SetNamespace(v string) *ApplicationSummary {
	s.Namespace = &v
	return s
}

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

	// The configuration for where the application should be loaded from.
	//
	// ApplicationSourceConfig is a required field
	ApplicationSourceConfig *ApplicationSourceConfig `type:"structure" required:"true"`

	// A unique, case-sensitive identifier that you provide to ensure the idempotency
	// of the request. If not provided, the Amazon Web Services SDK populates this
	// field. For more information about idempotency, see Making retries safe with
	// idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/).
	ClientToken *string `min:"1" type:"string" idempotencyToken:"true"`

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

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

	// The namespace of the application.
	//
	// Namespace is a required field
	Namespace *string `min:"1" type:"string" required:"true"`

	// The configuration of events or requests that the application has access to.
	Permissions []*string `type:"list"`

	// The events that the application publishes.
	//
	// Deprecated: Publications has been replaced with Permissions
	Publications []*Publication `deprecated:"true" type:"list"`

	// The events that the application subscribes.
	//
	// Deprecated: Subscriptions has been replaced with Permissions
	Subscriptions []*Subscription `deprecated:"true" type:"list"`

	// The tags used to organize, track, or control access for this resource. For
	// example, { "tags": {"key1":"value1", "key2":"value2"} }.
	Tags map[string]*string `min:"1" type:"map"`
}

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

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

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

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

// SetApplicationSourceConfig sets the ApplicationSourceConfig field's value.
func (s *CreateApplicationInput) SetApplicationSourceConfig(v *ApplicationSourceConfig) *CreateApplicationInput {
	s.ApplicationSourceConfig = v
	return s
}

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

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

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

// SetNamespace sets the Namespace field's value.
func (s *CreateApplicationInput) SetNamespace(v string) *CreateApplicationInput {
	s.Namespace = &v
	return s
}

// SetPermissions sets the Permissions field's value.
func (s *CreateApplicationInput) SetPermissions(v []*string) *CreateApplicationInput {
	s.Permissions = v
	return s
}

// SetPublications sets the Publications field's value.
func (s *CreateApplicationInput) SetPublications(v []*Publication) *CreateApplicationInput {
	s.Publications = v
	return s
}

// SetSubscriptions sets the Subscriptions field's value.
func (s *CreateApplicationInput) SetSubscriptions(v []*Subscription) *CreateApplicationInput {
	s.Subscriptions = v
	return s
}

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

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

	// The Amazon Resource Name (ARN) of the Application.
	Arn *string `min:"1" type:"string"`

	// A unique identifier for the Application.
	Id *string `type:"string"`
}

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

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

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

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

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

	// A unique, case-sensitive identifier that you provide to ensure the idempotency
	// of the request. If not provided, the Amazon Web Services SDK populates this
	// field. For more information about idempotency, see Making retries safe with
	// idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/).
	ClientToken *string `min:"1" type:"string" idempotencyToken:"true"`

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

	// The configuration for what files should be pulled from the source.
	FileConfiguration *FileConfiguration `type:"structure"`

	// The KMS key for the DataIntegration.
	//
	// KmsKey is a required field
	KmsKey *string `min:"1" type:"string" required:"true"`

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

	// The configuration for what data should be pulled from the source.
	ObjectConfiguration map[string]map[string][]*string `type:"map"`

	// The name of the data and how often it should be pulled from the source.
	ScheduleConfig *ScheduleConfiguration `type:"structure"`

	// The URI of the data source.
	//
	// SourceURI is a required field
	SourceURI *string `min:"1" type:"string" required:"true"`

	// The tags used to organize, track, or control access for this resource. For
	// example, { "tags": {"key1":"value1", "key2":"value2"} }.
	Tags map[string]*string `min:"1" type:"map"`
}

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

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

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateDataIntegrationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateDataIntegrationInput"}
	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
	}
	if s.KmsKey == nil {
		invalidParams.Add(request.NewErrParamRequired("KmsKey"))
	}
	if s.KmsKey != nil && len(*s.KmsKey) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("KmsKey", 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.SourceURI == nil {
		invalidParams.Add(request.NewErrParamRequired("SourceURI"))
	}
	if s.SourceURI != nil && len(*s.SourceURI) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("SourceURI", 1))
	}
	if s.Tags != nil && len(s.Tags) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
	}
	if s.FileConfiguration != nil {
		if err := s.FileConfiguration.Validate(); err != nil {
			invalidParams.AddNested("FileConfiguration", err.(request.ErrInvalidParams))
		}
	}
	if s.ScheduleConfig != nil {
		if err := s.ScheduleConfig.Validate(); err != nil {
			invalidParams.AddNested("ScheduleConfig", err.(request.ErrInvalidParams))
		}
	}

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

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

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

// SetFileConfiguration sets the FileConfiguration field's value.
func (s *CreateDataIntegrationInput) SetFileConfiguration(v *FileConfiguration) *CreateDataIntegrationInput {
	s.FileConfiguration = v
	return s
}

// SetKmsKey sets the KmsKey field's value.
func (s *CreateDataIntegrationInput) SetKmsKey(v string) *CreateDataIntegrationInput {
	s.KmsKey = &v
	return s
}

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

// SetObjectConfiguration sets the ObjectConfiguration field's value.
func (s *CreateDataIntegrationInput) SetObjectConfiguration(v map[string]map[string][]*string) *CreateDataIntegrationInput {
	s.ObjectConfiguration = v
	return s
}

// SetScheduleConfig sets the ScheduleConfig field's value.
func (s *CreateDataIntegrationInput) SetScheduleConfig(v *ScheduleConfiguration) *CreateDataIntegrationInput {
	s.ScheduleConfig = v
	return s
}

// SetSourceURI sets the SourceURI field's value.
func (s *CreateDataIntegrationInput) SetSourceURI(v string) *CreateDataIntegrationInput {
	s.SourceURI = &v
	return s
}

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

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

	// The Amazon Resource Name (ARN)
	Arn *string `min:"1" type:"string"`

	// A unique, case-sensitive identifier that you provide to ensure the idempotency
	// of the request. If not provided, the Amazon Web Services SDK populates this
	// field. For more information about idempotency, see Making retries safe with
	// idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/).
	ClientToken *string `min:"1" type:"string"`

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

	// The configuration for what files should be pulled from the source.
	FileConfiguration *FileConfiguration `type:"structure"`

	// A unique identifier.
	Id *string `type:"string"`

	// The KMS key for the DataIntegration.
	KmsKey *string `min:"1" type:"string"`

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

	// The configuration for what data should be pulled from the source.
	ObjectConfiguration map[string]map[string][]*string `type:"map"`

	// The name of the data and how often it should be pulled from the source.
	ScheduleConfiguration *ScheduleConfiguration `type:"structure"`

	// The URI of the data source.
	SourceURI *string `min:"1" type:"string"`

	// The tags used to organize, track, or control access for this resource. For
	// example, { "tags": {"key1":"value1", "key2":"value2"} }.
	Tags map[string]*string `min:"1" type:"map"`
}

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

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

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

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

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

// SetFileConfiguration sets the FileConfiguration field's value.
func (s *CreateDataIntegrationOutput) SetFileConfiguration(v *FileConfiguration) *CreateDataIntegrationOutput {
	s.FileConfiguration = v
	return s
}

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

// SetKmsKey sets the KmsKey field's value.
func (s *CreateDataIntegrationOutput) SetKmsKey(v string) *CreateDataIntegrationOutput {
	s.KmsKey = &v
	return s
}

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

// SetObjectConfiguration sets the ObjectConfiguration field's value.
func (s *CreateDataIntegrationOutput) SetObjectConfiguration(v map[string]map[string][]*string) *CreateDataIntegrationOutput {
	s.ObjectConfiguration = v
	return s
}

// SetScheduleConfiguration sets the ScheduleConfiguration field's value.
func (s *CreateDataIntegrationOutput) SetScheduleConfiguration(v *ScheduleConfiguration) *CreateDataIntegrationOutput {
	s.ScheduleConfiguration = v
	return s
}

// SetSourceURI sets the SourceURI field's value.
func (s *CreateDataIntegrationOutput) SetSourceURI(v string) *CreateDataIntegrationOutput {
	s.SourceURI = &v
	return s
}

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

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

	// A unique, case-sensitive identifier that you provide to ensure the idempotency
	// of the request. If not provided, the Amazon Web Services SDK populates this
	// field. For more information about idempotency, see Making retries safe with
	// idempotent APIs (https://aws.amazon.com/builders-library/making-retries-safe-with-idempotent-APIs/).
	ClientToken *string `min:"1" type:"string" idempotencyToken:"true"`

	// The description of the event integration.
	Description *string `type:"string"`

	// The EventBridge bus.
	//
	// EventBridgeBus is a required field
	EventBridgeBus *string `min:"1" type:"string" required:"true"`

	// The event filter.
	//
	// EventFilter is a required field
	EventFilter *EventFilter `type:"structure" required:"true"`

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

	// The tags used to organize, track, or control access for this resource. For
	// example, { "tags": {"key1":"value1", "key2":"value2"} }.
	Tags map[string]*string `min:"1" type:"map"`
}

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

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

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateEventIntegrationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateEventIntegrationInput"}
	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
	}
	if s.EventBridgeBus == nil {
		invalidParams.Add(request.NewErrParamRequired("EventBridgeBus"))
	}
	if s.EventBridgeBus != nil && len(*s.EventBridgeBus) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("EventBridgeBus", 1))
	}
	if s.EventFilter == nil {
		invalidParams.Add(request.NewErrParamRequired("EventFilter"))
	}
	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.Tags != nil && len(s.Tags) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
	}
	if s.EventFilter != nil {
		if err := s.EventFilter.Validate(); err != nil {
			invalidParams.AddNested("EventFilter", err.(request.ErrInvalidParams))
		}
	}

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

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

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

// SetEventBridgeBus sets the EventBridgeBus field's value.
func (s *CreateEventIntegrationInput) SetEventBridgeBus(v string) *CreateEventIntegrationInput {
	s.EventBridgeBus = &v
	return s
}

// SetEventFilter sets the EventFilter field's value.
func (s *CreateEventIntegrationInput) SetEventFilter(v *EventFilter) *CreateEventIntegrationInput {
	s.EventFilter = v
	return s
}

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

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

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

	// The Amazon Resource Name (ARN) of the event integration.
	EventIntegrationArn *string `min:"1" type:"string"`
}

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

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

// SetEventIntegrationArn sets the EventIntegrationArn field's value.
func (s *CreateEventIntegrationOutput) SetEventIntegrationArn(v string) *CreateEventIntegrationOutput {
	s.EventIntegrationArn = &v
	return s
}

// Summary information about the DataIntegration association.
type DataIntegrationAssociationSummary struct {
	_ struct{} `type:"structure"`

	// The identifier for the client that is associated with the DataIntegration
	// association.
	ClientId *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of the DataIntegration.
	DataIntegrationArn *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of the DataIntegration association.
	DataIntegrationAssociationArn *string `min:"1" type:"string"`
}

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

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

// SetClientId sets the ClientId field's value.
func (s *DataIntegrationAssociationSummary) SetClientId(v string) *DataIntegrationAssociationSummary {
	s.ClientId = &v
	return s
}

// SetDataIntegrationArn sets the DataIntegrationArn field's value.
func (s *DataIntegrationAssociationSummary) SetDataIntegrationArn(v string) *DataIntegrationAssociationSummary {
	s.DataIntegrationArn = &v
	return s
}

// SetDataIntegrationAssociationArn sets the DataIntegrationAssociationArn field's value.
func (s *DataIntegrationAssociationSummary) SetDataIntegrationAssociationArn(v string) *DataIntegrationAssociationSummary {
	s.DataIntegrationAssociationArn = &v
	return s
}

// Summary information about the DataIntegration.
type DataIntegrationSummary struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) of the DataIntegration.
	Arn *string `min:"1" type:"string"`

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

	// The URI of the data source.
	SourceURI *string `min:"1" type:"string"`
}

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

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

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

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

// SetSourceURI sets the SourceURI field's value.
func (s *DataIntegrationSummary) SetSourceURI(v string) *DataIntegrationSummary {
	s.SourceURI = &v
	return s
}

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

	// The Amazon Resource Name (ARN) of the Application.
	//
	// Arn is a required field
	Arn *string `location:"uri" locationName:"ApplicationIdentifier" 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 DeleteApplicationInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

type DeleteApplicationOutput 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 DeleteApplicationOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

	// A unique identifier for the DataIntegration.
	//
	// DataIntegrationIdentifier is a required field
	DataIntegrationIdentifier *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 DeleteDataIntegrationInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDataIntegrationIdentifier sets the DataIntegrationIdentifier field's value.
func (s *DeleteDataIntegrationInput) SetDataIntegrationIdentifier(v string) *DeleteDataIntegrationInput {
	s.DataIntegrationIdentifier = &v
	return s
}

type DeleteDataIntegrationOutput 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 DeleteDataIntegrationOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

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

// Validate inspects the fields of the type to determine if they are valid.
func (s *DeleteEventIntegrationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DeleteEventIntegrationInput"}
	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
}

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

type DeleteEventIntegrationOutput 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 DeleteEventIntegrationOutput) String() string {
	return awsutil.Prettify(s)
}

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

// A resource with the specified name already exists.
type DuplicateResourceException 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 DuplicateResourceException) String() string {
	return awsutil.Prettify(s)
}

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

func newErrorDuplicateResourceException(v protocol.ResponseMetadata) error {
	return &DuplicateResourceException{
		RespMetadata: v,
	}
}

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

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

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

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

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

// The event filter.
type EventFilter struct {
	_ struct{} `type:"structure"`

	// The source of the events.
	//
	// Source is a required field
	Source *string `min:"1" type:"string" required:"true"`
}

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

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

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

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

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

// The event integration.
type EventIntegration struct {
	_ struct{} `type:"structure"`

	// The event integration description.
	Description *string `type:"string"`

	// The Amazon EventBridge bus for the event integration.
	EventBridgeBus *string `min:"1" type:"string"`

	// The event integration filter.
	EventFilter *EventFilter `type:"structure"`

	// The Amazon Resource Name (ARN) of the event integration.
	EventIntegrationArn *string `min:"1" type:"string"`

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

	// The tags used to organize, track, or control access for this resource. For
	// example, { "tags": {"key1":"value1", "key2":"value2"} }.
	Tags map[string]*string `min:"1" type:"map"`
}

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

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

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

// SetEventBridgeBus sets the EventBridgeBus field's value.
func (s *EventIntegration) SetEventBridgeBus(v string) *EventIntegration {
	s.EventBridgeBus = &v
	return s
}

// SetEventFilter sets the EventFilter field's value.
func (s *EventIntegration) SetEventFilter(v *EventFilter) *EventIntegration {
	s.EventFilter = v
	return s
}

// SetEventIntegrationArn sets the EventIntegrationArn field's value.
func (s *EventIntegration) SetEventIntegrationArn(v string) *EventIntegration {
	s.EventIntegrationArn = &v
	return s
}

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

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

// The event integration association.
type EventIntegrationAssociation struct {
	_ struct{} `type:"structure"`

	// The metadata associated with the client.
	ClientAssociationMetadata map[string]*string `type:"map"`

	// The identifier for the client that is associated with the event integration.
	ClientId *string `min:"1" type:"string"`

	// The name of the EventBridge rule.
	EventBridgeRuleName *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) for the event integration association.
	EventIntegrationAssociationArn *string `min:"1" type:"string"`

	// The identifier for the event integration association.
	EventIntegrationAssociationId *string `type:"string"`

	// The name of the event integration.
	EventIntegrationName *string `min:"1" type:"string"`
}

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

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

// SetClientAssociationMetadata sets the ClientAssociationMetadata field's value.
func (s *EventIntegrationAssociation) SetClientAssociationMetadata(v map[string]*string) *EventIntegrationAssociation {
	s.ClientAssociationMetadata = v
	return s
}

// SetClientId sets the ClientId field's value.
func (s *EventIntegrationAssociation) SetClientId(v string) *EventIntegrationAssociation {
	s.ClientId = &v
	return s
}

// SetEventBridgeRuleName sets the EventBridgeRuleName field's value.
func (s *EventIntegrationAssociation) SetEventBridgeRuleName(v string) *EventIntegrationAssociation {
	s.EventBridgeRuleName = &v
	return s
}

// SetEventIntegrationAssociationArn sets the EventIntegrationAssociationArn field's value.
func (s *EventIntegrationAssociation) SetEventIntegrationAssociationArn(v string) *EventIntegrationAssociation {
	s.EventIntegrationAssociationArn = &v
	return s
}

// SetEventIntegrationAssociationId sets the EventIntegrationAssociationId field's value.
func (s *EventIntegrationAssociation) SetEventIntegrationAssociationId(v string) *EventIntegrationAssociation {
	s.EventIntegrationAssociationId = &v
	return s
}

// SetEventIntegrationName sets the EventIntegrationName field's value.
func (s *EventIntegrationAssociation) SetEventIntegrationName(v string) *EventIntegrationAssociation {
	s.EventIntegrationName = &v
	return s
}

// The external URL source for the application.
type ExternalUrlConfig struct {
	_ struct{} `type:"structure"`

	// The URL to access the application.
	//
	// AccessUrl is a required field
	AccessUrl *string `min:"1" type:"string" required:"true"`

	// Additional URLs to allow list if different than the access URL.
	ApprovedOrigins []*string `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 ExternalUrlConfig) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetAccessUrl sets the AccessUrl field's value.
func (s *ExternalUrlConfig) SetAccessUrl(v string) *ExternalUrlConfig {
	s.AccessUrl = &v
	return s
}

// SetApprovedOrigins sets the ApprovedOrigins field's value.
func (s *ExternalUrlConfig) SetApprovedOrigins(v []*string) *ExternalUrlConfig {
	s.ApprovedOrigins = v
	return s
}

// The configuration for what files should be pulled from the source.
type FileConfiguration struct {
	_ struct{} `type:"structure"`

	// Restrictions for what files should be pulled from the source.
	Filters map[string][]*string `type:"map"`

	// Identifiers for the source folders to pull all files from recursively.
	//
	// Folders is a required field
	Folders []*string `min:"1" type:"list" required:"true"`
}

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

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

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

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

// SetFilters sets the Filters field's value.
func (s *FileConfiguration) SetFilters(v map[string][]*string) *FileConfiguration {
	s.Filters = v
	return s
}

// SetFolders sets the Folders field's value.
func (s *FileConfiguration) SetFolders(v []*string) *FileConfiguration {
	s.Folders = v
	return s
}

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

	// The Amazon Resource Name (ARN) of the Application.
	//
	// Arn is a required field
	Arn *string `location:"uri" locationName:"ApplicationIdentifier" 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 GetApplicationInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

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

	// The configuration for where the application should be loaded from.
	ApplicationSourceConfig *ApplicationSourceConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of the Application.
	Arn *string `min:"1" type:"string"`

	// The created time of the Application.
	CreatedTime *time.Time `type:"timestamp"`

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

	// A unique identifier for the Application.
	Id *string `type:"string"`

	// The last modified time of the Application.
	LastModifiedTime *time.Time `type:"timestamp"`

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

	// The namespace of the application.
	Namespace *string `min:"1" type:"string"`

	// The configuration of events or requests that the application has access to.
	Permissions []*string `type:"list"`

	// The events that the application publishes.
	//
	// Deprecated: Publications has been replaced with Permissions
	Publications []*Publication `deprecated:"true" type:"list"`

	// The events that the application subscribes.
	//
	// Deprecated: Subscriptions has been replaced with Permissions
	Subscriptions []*Subscription `deprecated:"true" type:"list"`

	// The tags used to organize, track, or control access for this resource. For
	// example, { "tags": {"key1":"value1", "key2":"value2"} }.
	Tags map[string]*string `min:"1" type:"map"`
}

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

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

// SetApplicationSourceConfig sets the ApplicationSourceConfig field's value.
func (s *GetApplicationOutput) SetApplicationSourceConfig(v *ApplicationSourceConfig) *GetApplicationOutput {
	s.ApplicationSourceConfig = v
	return s
}

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

// SetCreatedTime sets the CreatedTime field's value.
func (s *GetApplicationOutput) SetCreatedTime(v time.Time) *GetApplicationOutput {
	s.CreatedTime = &v
	return s
}

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

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

// SetLastModifiedTime sets the LastModifiedTime field's value.
func (s *GetApplicationOutput) SetLastModifiedTime(v time.Time) *GetApplicationOutput {
	s.LastModifiedTime = &v
	return s
}

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

// SetNamespace sets the Namespace field's value.
func (s *GetApplicationOutput) SetNamespace(v string) *GetApplicationOutput {
	s.Namespace = &v
	return s
}

// SetPermissions sets the Permissions field's value.
func (s *GetApplicationOutput) SetPermissions(v []*string) *GetApplicationOutput {
	s.Permissions = v
	return s
}

// SetPublications sets the Publications field's value.
func (s *GetApplicationOutput) SetPublications(v []*Publication) *GetApplicationOutput {
	s.Publications = v
	return s
}

// SetSubscriptions sets the Subscriptions field's value.
func (s *GetApplicationOutput) SetSubscriptions(v []*Subscription) *GetApplicationOutput {
	s.Subscriptions = v
	return s
}

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

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

	// A unique identifier.
	//
	// 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 GetDataIntegrationInput) String() string {
	return awsutil.Prettify(s)
}

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

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetDataIntegrationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetDataIntegrationInput"}
	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 *GetDataIntegrationInput) SetIdentifier(v string) *GetDataIntegrationInput {
	s.Identifier = &v
	return s
}

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

	// The Amazon Resource Name (ARN) for the DataIntegration.
	Arn *string `min:"1" type:"string"`

	// The KMS key for the DataIntegration.
	Description *string `type:"string"`

	// The configuration for what files should be pulled from the source.
	FileConfiguration *FileConfiguration `type:"structure"`

	// A unique identifier.
	Id *string `type:"string"`

	// The KMS key for the DataIntegration.
	KmsKey *string `min:"1" type:"string"`

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

	// The configuration for what data should be pulled from the source.
	ObjectConfiguration map[string]map[string][]*string `type:"map"`

	// The name of the data and how often it should be pulled from the source.
	ScheduleConfiguration *ScheduleConfiguration `type:"structure"`

	// The URI of the data source.
	SourceURI *string `min:"1" type:"string"`

	// The tags used to organize, track, or control access for this resource. For
	// example, { "tags": {"key1":"value1", "key2":"value2"} }.
	Tags map[string]*string `min:"1" type:"map"`
}

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

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

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

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

// SetFileConfiguration sets the FileConfiguration field's value.
func (s *GetDataIntegrationOutput) SetFileConfiguration(v *FileConfiguration) *GetDataIntegrationOutput {
	s.FileConfiguration = v
	return s
}

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

// SetKmsKey sets the KmsKey field's value.
func (s *GetDataIntegrationOutput) SetKmsKey(v string) *GetDataIntegrationOutput {
	s.KmsKey = &v
	return s
}

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

// SetObjectConfiguration sets the ObjectConfiguration field's value.
func (s *GetDataIntegrationOutput) SetObjectConfiguration(v map[string]map[string][]*string) *GetDataIntegrationOutput {
	s.ObjectConfiguration = v
	return s
}

// SetScheduleConfiguration sets the ScheduleConfiguration field's value.
func (s *GetDataIntegrationOutput) SetScheduleConfiguration(v *ScheduleConfiguration) *GetDataIntegrationOutput {
	s.ScheduleConfiguration = v
	return s
}

// SetSourceURI sets the SourceURI field's value.
func (s *GetDataIntegrationOutput) SetSourceURI(v string) *GetDataIntegrationOutput {
	s.SourceURI = &v
	return s
}

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

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

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

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

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

// Validate inspects the fields of the type to determine if they are valid.
func (s *GetEventIntegrationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "GetEventIntegrationInput"}
	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
}

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

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

	// The description of the event integration.
	Description *string `type:"string"`

	// The EventBridge bus.
	EventBridgeBus *string `min:"1" type:"string"`

	// The event filter.
	EventFilter *EventFilter `type:"structure"`

	// The Amazon Resource Name (ARN) for the event integration.
	EventIntegrationArn *string `min:"1" type:"string"`

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

	// The tags used to organize, track, or control access for this resource. For
	// example, { "tags": {"key1":"value1", "key2":"value2"} }.
	Tags map[string]*string `min:"1" type:"map"`
}

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

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

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

// SetEventBridgeBus sets the EventBridgeBus field's value.
func (s *GetEventIntegrationOutput) SetEventBridgeBus(v string) *GetEventIntegrationOutput {
	s.EventBridgeBus = &v
	return s
}

// SetEventFilter sets the EventFilter field's value.
func (s *GetEventIntegrationOutput) SetEventFilter(v *EventFilter) *GetEventIntegrationOutput {
	s.EventFilter = v
	return s
}

// SetEventIntegrationArn sets the EventIntegrationArn field's value.
func (s *GetEventIntegrationOutput) SetEventIntegrationArn(v string) *GetEventIntegrationOutput {
	s.EventIntegrationArn = &v
	return s
}

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

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

// Request processing failed due to an error or failure with the service.
type InternalServiceError 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 InternalServiceError) String() string {
	return awsutil.Prettify(s)
}

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

func newErrorInternalServiceError(v protocol.ResponseMetadata) error {
	return &InternalServiceError{
		RespMetadata: v,
	}
}

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

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

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

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

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

// The request is not valid.
type InvalidRequestException 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 InvalidRequestException) String() string {
	return awsutil.Prettify(s)
}

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

func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
	return &InvalidRequestException{
		RespMetadata: v,
	}
}

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

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

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

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

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

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

	// A unique identifier for the Application.
	//
	// ApplicationId is a required field
	ApplicationId *string `location:"uri" locationName:"ApplicationIdentifier" min:"1" type:"string" required:"true"`

	// The maximum number of results to return per page.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// The token for the next set of results. Use the value returned in the previous
	// response in the next request to retrieve the next set of results.
	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 ListApplicationAssociationsInput) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetApplicationId sets the ApplicationId field's value.
func (s *ListApplicationAssociationsInput) SetApplicationId(v string) *ListApplicationAssociationsInput {
	s.ApplicationId = &v
	return s
}

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

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

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

	// List of Application Associations for the Application.
	ApplicationAssociations []*ApplicationAssociationSummary `min:"1" type:"list"`

	// If there are additional results, this is the token for the next set of results.
	NextToken *string `min:"1" type:"string"`
}

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

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

// SetApplicationAssociations sets the ApplicationAssociations field's value.
func (s *ListApplicationAssociationsOutput) SetApplicationAssociations(v []*ApplicationAssociationSummary) *ListApplicationAssociationsOutput {
	s.ApplicationAssociations = v
	return s
}

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

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

	// The maximum number of results to return per page.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// The token for the next set of results. Use the value returned in the previous
	// response in the next request to retrieve the next set of results.
	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 ListApplicationsInput) String() string {
	return awsutil.Prettify(s)
}

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

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListApplicationsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListApplicationsInput"}
	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 *ListApplicationsInput) SetMaxResults(v int64) *ListApplicationsInput {
	s.MaxResults = &v
	return s
}

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

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

	// The Applications associated with this account.
	Applications []*ApplicationSummary `min:"1" type:"list"`

	// If there are additional results, this is the token for the next set of results.
	NextToken *string `min:"1" type:"string"`
}

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

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

// SetApplications sets the Applications field's value.
func (s *ListApplicationsOutput) SetApplications(v []*ApplicationSummary) *ListApplicationsOutput {
	s.Applications = v
	return s
}

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

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

	// A unique identifier for the DataIntegration.
	//
	// DataIntegrationIdentifier is a required field
	DataIntegrationIdentifier *string `location:"uri" locationName:"Identifier" min:"1" type:"string" required:"true"`

	// The maximum number of results to return per page.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// The token for the next set of results. Use the value returned in the previous
	// response in the next request to retrieve the next set of results.
	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 ListDataIntegrationAssociationsInput) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetDataIntegrationIdentifier sets the DataIntegrationIdentifier field's value.
func (s *ListDataIntegrationAssociationsInput) SetDataIntegrationIdentifier(v string) *ListDataIntegrationAssociationsInput {
	s.DataIntegrationIdentifier = &v
	return s
}

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

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

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

	// The Amazon Resource Name (ARN) and unique ID of the DataIntegration association.
	DataIntegrationAssociations []*DataIntegrationAssociationSummary `min:"1" type:"list"`

	// If there are additional results, this is the token for the next set of results.
	NextToken *string `min:"1" type:"string"`
}

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

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

// SetDataIntegrationAssociations sets the DataIntegrationAssociations field's value.
func (s *ListDataIntegrationAssociationsOutput) SetDataIntegrationAssociations(v []*DataIntegrationAssociationSummary) *ListDataIntegrationAssociationsOutput {
	s.DataIntegrationAssociations = v
	return s
}

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

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

	// The maximum number of results to return per page.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// The token for the next set of results. Use the value returned in the previous
	// response in the next request to retrieve the next set of results.
	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 ListDataIntegrationsInput) String() string {
	return awsutil.Prettify(s)
}

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

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListDataIntegrationsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListDataIntegrationsInput"}
	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 *ListDataIntegrationsInput) SetMaxResults(v int64) *ListDataIntegrationsInput {
	s.MaxResults = &v
	return s
}

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

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

	// The DataIntegrations associated with this account.
	DataIntegrations []*DataIntegrationSummary `min:"1" type:"list"`

	// If there are additional results, this is the token for the next set of results.
	NextToken *string `min:"1" type:"string"`
}

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

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

// SetDataIntegrations sets the DataIntegrations field's value.
func (s *ListDataIntegrationsOutput) SetDataIntegrations(v []*DataIntegrationSummary) *ListDataIntegrationsOutput {
	s.DataIntegrations = v
	return s
}

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

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

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

	// The maximum number of results to return per page.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// The token for the next set of results. Use the value returned in the previous
	// response in the next request to retrieve the next set of results.
	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 ListEventIntegrationAssociationsInput) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetEventIntegrationName sets the EventIntegrationName field's value.
func (s *ListEventIntegrationAssociationsInput) SetEventIntegrationName(v string) *ListEventIntegrationAssociationsInput {
	s.EventIntegrationName = &v
	return s
}

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

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

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

	// The event integration associations.
	EventIntegrationAssociations []*EventIntegrationAssociation `min:"1" type:"list"`

	// If there are additional results, this is the token for the next set of results.
	NextToken *string `min:"1" type:"string"`
}

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

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

// SetEventIntegrationAssociations sets the EventIntegrationAssociations field's value.
func (s *ListEventIntegrationAssociationsOutput) SetEventIntegrationAssociations(v []*EventIntegrationAssociation) *ListEventIntegrationAssociationsOutput {
	s.EventIntegrationAssociations = v
	return s
}

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

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

	// The maximum number of results to return per page.
	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`

	// The token for the next set of results. Use the value returned in the previous
	// response in the next request to retrieve the next set of results.
	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 ListEventIntegrationsInput) String() string {
	return awsutil.Prettify(s)
}

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

// Validate inspects the fields of the type to determine if they are valid.
func (s *ListEventIntegrationsInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "ListEventIntegrationsInput"}
	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 *ListEventIntegrationsInput) SetMaxResults(v int64) *ListEventIntegrationsInput {
	s.MaxResults = &v
	return s
}

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

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

	// The event integrations.
	EventIntegrations []*EventIntegration `min:"1" type:"list"`

	// If there are additional results, this is the token for the next set of results.
	NextToken *string `min:"1" type:"string"`
}

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

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

// SetEventIntegrations sets the EventIntegrations field's value.
func (s *ListEventIntegrationsOutput) SetEventIntegrations(v []*EventIntegration) *ListEventIntegrationsOutput {
	s.EventIntegrations = v
	return s
}

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

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

	// The Amazon Resource Name (ARN) of the resource.
	//
	// ResourceArn is a required field
	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`
}

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

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

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

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

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

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

	// Information about the tags.
	Tags map[string]*string `locationName:"tags" min:"1" type:"map"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s 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 configuration of an event that the application publishes.
type Publication struct {
	_ struct{} `type:"structure"`

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

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

	// The JSON schema of the publication event.
	//
	// Schema is a required field
	Schema *string `min:"1" type:"string" required:"true"`
}

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

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

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

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

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

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

// SetSchema sets the Schema field's value.
func (s *Publication) SetSchema(v string) *Publication {
	s.Schema = &v
	return s
}

// The specified resource was not found.
type ResourceNotFoundException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

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

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

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

func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
	return &ResourceNotFoundException{
		RespMetadata: v,
	}
}

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

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

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

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

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

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

// The allowed quota for the resource has been exceeded.
type ResourceQuotaExceededException 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 ResourceQuotaExceededException) String() string {
	return awsutil.Prettify(s)
}

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

func newErrorResourceQuotaExceededException(v protocol.ResponseMetadata) error {
	return &ResourceQuotaExceededException{
		RespMetadata: v,
	}
}

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

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

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

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

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

// The name of the data and how often it should be pulled from the source.
type ScheduleConfiguration struct {
	_ struct{} `type:"structure"`

	// The start date for objects to import in the first flow run as an Unix/epoch
	// timestamp in milliseconds or in ISO-8601 format.
	FirstExecutionFrom *string `min:"1" type:"string"`

	// The name of the object to pull from the data source.
	Object *string `min:"1" type:"string"`

	// How often the data should be pulled from data source.
	//
	// ScheduleExpression is a required field
	ScheduleExpression *string `min:"1" type:"string" required:"true"`
}

// String returns the string representation.
//
// API parameter values that are decorated as "sensitive" in the API will not
// be included in the string output. The member name will be present, but the
// value will be replaced with "sensitive".
func (s 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.FirstExecutionFrom != nil && len(*s.FirstExecutionFrom) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("FirstExecutionFrom", 1))
	}
	if s.Object != nil && len(*s.Object) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Object", 1))
	}
	if s.ScheduleExpression == nil {
		invalidParams.Add(request.NewErrParamRequired("ScheduleExpression"))
	}
	if s.ScheduleExpression != nil && len(*s.ScheduleExpression) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ScheduleExpression", 1))
	}

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

// SetFirstExecutionFrom sets the FirstExecutionFrom field's value.
func (s *ScheduleConfiguration) SetFirstExecutionFrom(v string) *ScheduleConfiguration {
	s.FirstExecutionFrom = &v
	return s
}

// SetObject sets the Object field's value.
func (s *ScheduleConfiguration) SetObject(v string) *ScheduleConfiguration {
	s.Object = &v
	return s
}

// SetScheduleExpression sets the ScheduleExpression field's value.
func (s *ScheduleConfiguration) SetScheduleExpression(v string) *ScheduleConfiguration {
	s.ScheduleExpression = &v
	return s
}

// The configuration of an event that the application subscribes.
type Subscription struct {
	_ struct{} `type:"structure"`

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

	// The name of the subscription.
	//
	// Event is a required field
	Event *string `min:"1" type:"string" required:"true"`
}

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

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

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

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

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

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

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

	// The Amazon Resource Name (ARN) of the resource.
	//
	// ResourceArn is a required field
	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`

	// The tags used to organize, track, or control access for this resource. For
	// example, { "tags": {"key1":"value1", "key2":"value2"} }.
	//
	// Tags is a required field
	Tags map[string]*string `locationName:"tags" min:"1" 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 s.Tags != nil && len(s.Tags) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
	}

	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 throttling limit has been exceeded.
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 operation is not supported.
type UnsupportedOperationException 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 UnsupportedOperationException) String() string {
	return awsutil.Prettify(s)
}

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

func newErrorUnsupportedOperationException(v protocol.ResponseMetadata) error {
	return &UnsupportedOperationException{
		RespMetadata: v,
	}
}

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

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

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

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

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

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

	// The Amazon Resource Name (ARN) of the resource.
	//
	// ResourceArn is a required field
	ResourceArn *string `location:"uri" locationName:"resourceArn" min:"1" type:"string" required:"true"`

	// The tag keys.
	//
	// TagKeys is a required field
	TagKeys []*string `location:"querystring" locationName:"tagKeys" 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 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 s.TagKeys != nil && len(s.TagKeys) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
	}

	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 UpdateApplicationInput struct {
	_ struct{} `type:"structure"`

	// The configuration for where the application should be loaded from.
	ApplicationSourceConfig *ApplicationSourceConfig `type:"structure"`

	// The Amazon Resource Name (ARN) of the Application.
	//
	// Arn is a required field
	Arn *string `location:"uri" locationName:"ApplicationIdentifier" min:"1" type:"string" required:"true"`

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

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

	// The configuration of events or requests that the application has access to.
	Permissions []*string `type:"list"`

	// The events that the application publishes.
	//
	// Deprecated: Publications has been replaced with Permissions
	Publications []*Publication `deprecated:"true" type:"list"`

	// The events that the application subscribes.
	//
	// Deprecated: Subscriptions has been replaced with Permissions
	Subscriptions []*Subscription `deprecated:"true" 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 UpdateApplicationInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetApplicationSourceConfig sets the ApplicationSourceConfig field's value.
func (s *UpdateApplicationInput) SetApplicationSourceConfig(v *ApplicationSourceConfig) *UpdateApplicationInput {
	s.ApplicationSourceConfig = v
	return s
}

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

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

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

// SetPermissions sets the Permissions field's value.
func (s *UpdateApplicationInput) SetPermissions(v []*string) *UpdateApplicationInput {
	s.Permissions = v
	return s
}

// SetPublications sets the Publications field's value.
func (s *UpdateApplicationInput) SetPublications(v []*Publication) *UpdateApplicationInput {
	s.Publications = v
	return s
}

// SetSubscriptions sets the Subscriptions field's value.
func (s *UpdateApplicationInput) SetSubscriptions(v []*Subscription) *UpdateApplicationInput {
	s.Subscriptions = v
	return s
}

type UpdateApplicationOutput 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 UpdateApplicationOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// A unique identifier for the DataIntegration.
	//
	// Identifier is a required field
	Identifier *string `location:"uri" locationName:"Identifier" min:"1" type:"string" required:"true"`

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

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

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

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateDataIntegrationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateDataIntegrationInput"}
	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 *UpdateDataIntegrationInput) SetDescription(v string) *UpdateDataIntegrationInput {
	s.Description = &v
	return s
}

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

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

type UpdateDataIntegrationOutput 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 UpdateDataIntegrationOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

	// The description of the event integration.
	Description *string `type:"string"`

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

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

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

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateEventIntegrationInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateEventIntegrationInput"}
	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 *UpdateEventIntegrationInput) SetDescription(v string) *UpdateEventIntegrationInput {
	s.Description = &v
	return s
}

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

type UpdateEventIntegrationOutput 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 UpdateEventIntegrationOutput) String() string {
	return awsutil.Prettify(s)
}

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