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: 88.222.243.6
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 gluedatabrew

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 opBatchDeleteRecipeVersion = "BatchDeleteRecipeVersion"

// BatchDeleteRecipeVersionRequest generates a "aws/request.Request" representing the
// client's request for the BatchDeleteRecipeVersion 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 BatchDeleteRecipeVersion for more information on using the BatchDeleteRecipeVersion
// 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 BatchDeleteRecipeVersionRequest method.
//	req, resp := client.BatchDeleteRecipeVersionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/BatchDeleteRecipeVersion
func (c *GlueDataBrew) BatchDeleteRecipeVersionRequest(input *BatchDeleteRecipeVersionInput) (req *request.Request, output *BatchDeleteRecipeVersionOutput) {
	op := &request.Operation{
		Name:       opBatchDeleteRecipeVersion,
		HTTPMethod: "POST",
		HTTPPath:   "/recipes/{name}/batchDeleteRecipeVersion",
	}

	if input == nil {
		input = &BatchDeleteRecipeVersionInput{}
	}

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

// BatchDeleteRecipeVersion API operation for AWS Glue DataBrew.
//
// Deletes one or more versions of a recipe at a time.
//
// The entire request will be rejected if:
//
//   - The recipe does not exist.
//
//   - There is an invalid version identifier in the list of versions.
//
//   - The version list is empty.
//
//   - The version list size exceeds 50.
//
//   - The version list contains duplicate entries.
//
// The request will complete successfully, but with partial failures, if:
//
//   - A version does not exist.
//
//   - A version is being used by a job.
//
//   - You specify LATEST_WORKING, but it's being used by a project.
//
//   - The version fails to be deleted.
//
// The LATEST_WORKING version will only be deleted if the recipe has no other
// versions. If you try to delete LATEST_WORKING while other versions exist
// (or if they can't be deleted), then LATEST_WORKING will be listed as partial
// failure in the response.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation BatchDeleteRecipeVersion for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     Updating or deleting a resource can cause an inconsistent state.
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/BatchDeleteRecipeVersion
func (c *GlueDataBrew) BatchDeleteRecipeVersion(input *BatchDeleteRecipeVersionInput) (*BatchDeleteRecipeVersionOutput, error) {
	req, out := c.BatchDeleteRecipeVersionRequest(input)
	return out, req.Send()
}

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

const opCreateDataset = "CreateDataset"

// CreateDatasetRequest generates a "aws/request.Request" representing the
// client's request for the CreateDataset 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 CreateDataset for more information on using the CreateDataset
// 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 CreateDatasetRequest method.
//	req, resp := client.CreateDatasetRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/CreateDataset
func (c *GlueDataBrew) CreateDatasetRequest(input *CreateDatasetInput) (req *request.Request, output *CreateDatasetOutput) {
	op := &request.Operation{
		Name:       opCreateDataset,
		HTTPMethod: "POST",
		HTTPPath:   "/datasets",
	}

	if input == nil {
		input = &CreateDatasetInput{}
	}

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

// CreateDataset API operation for AWS Glue DataBrew.
//
// Creates a new DataBrew dataset.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation CreateDataset for usage and error information.
//
// Returned Error Types:
//
//   - AccessDeniedException
//     Access to the specified resource was denied.
//
//   - ConflictException
//     Updating or deleting a resource can cause an inconsistent state.
//
//   - ServiceQuotaExceededException
//     A service quota is exceeded.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/CreateDataset
func (c *GlueDataBrew) CreateDataset(input *CreateDatasetInput) (*CreateDatasetOutput, error) {
	req, out := c.CreateDatasetRequest(input)
	return out, req.Send()
}

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

const opCreateProfileJob = "CreateProfileJob"

// CreateProfileJobRequest generates a "aws/request.Request" representing the
// client's request for the CreateProfileJob 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 CreateProfileJob for more information on using the CreateProfileJob
// 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 CreateProfileJobRequest method.
//	req, resp := client.CreateProfileJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/CreateProfileJob
func (c *GlueDataBrew) CreateProfileJobRequest(input *CreateProfileJobInput) (req *request.Request, output *CreateProfileJobOutput) {
	op := &request.Operation{
		Name:       opCreateProfileJob,
		HTTPMethod: "POST",
		HTTPPath:   "/profileJobs",
	}

	if input == nil {
		input = &CreateProfileJobInput{}
	}

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

// CreateProfileJob API operation for AWS Glue DataBrew.
//
// Creates a new job to analyze a dataset and create its data profile.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation CreateProfileJob for usage and error information.
//
// Returned Error Types:
//
//   - AccessDeniedException
//     Access to the specified resource was denied.
//
//   - ConflictException
//     Updating or deleting a resource can cause an inconsistent state.
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ServiceQuotaExceededException
//     A service quota is exceeded.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/CreateProfileJob
func (c *GlueDataBrew) CreateProfileJob(input *CreateProfileJobInput) (*CreateProfileJobOutput, error) {
	req, out := c.CreateProfileJobRequest(input)
	return out, req.Send()
}

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

const opCreateProject = "CreateProject"

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

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

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

// CreateProject API operation for AWS Glue DataBrew.
//
// Creates a new DataBrew project.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation CreateProject for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     Updating or deleting a resource can cause an inconsistent state.
//
//   - InternalServerException
//     An internal service failure occurred.
//
//   - ServiceQuotaExceededException
//     A service quota is exceeded.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/CreateProject
func (c *GlueDataBrew) CreateProject(input *CreateProjectInput) (*CreateProjectOutput, error) {
	req, out := c.CreateProjectRequest(input)
	return out, req.Send()
}

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

const opCreateRecipe = "CreateRecipe"

// CreateRecipeRequest generates a "aws/request.Request" representing the
// client's request for the CreateRecipe 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 CreateRecipe for more information on using the CreateRecipe
// 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 CreateRecipeRequest method.
//	req, resp := client.CreateRecipeRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/CreateRecipe
func (c *GlueDataBrew) CreateRecipeRequest(input *CreateRecipeInput) (req *request.Request, output *CreateRecipeOutput) {
	op := &request.Operation{
		Name:       opCreateRecipe,
		HTTPMethod: "POST",
		HTTPPath:   "/recipes",
	}

	if input == nil {
		input = &CreateRecipeInput{}
	}

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

// CreateRecipe API operation for AWS Glue DataBrew.
//
// Creates a new DataBrew recipe.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation CreateRecipe for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     Updating or deleting a resource can cause an inconsistent state.
//
//   - ServiceQuotaExceededException
//     A service quota is exceeded.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/CreateRecipe
func (c *GlueDataBrew) CreateRecipe(input *CreateRecipeInput) (*CreateRecipeOutput, error) {
	req, out := c.CreateRecipeRequest(input)
	return out, req.Send()
}

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

const opCreateRecipeJob = "CreateRecipeJob"

// CreateRecipeJobRequest generates a "aws/request.Request" representing the
// client's request for the CreateRecipeJob 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 CreateRecipeJob for more information on using the CreateRecipeJob
// 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 CreateRecipeJobRequest method.
//	req, resp := client.CreateRecipeJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/CreateRecipeJob
func (c *GlueDataBrew) CreateRecipeJobRequest(input *CreateRecipeJobInput) (req *request.Request, output *CreateRecipeJobOutput) {
	op := &request.Operation{
		Name:       opCreateRecipeJob,
		HTTPMethod: "POST",
		HTTPPath:   "/recipeJobs",
	}

	if input == nil {
		input = &CreateRecipeJobInput{}
	}

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

// CreateRecipeJob API operation for AWS Glue DataBrew.
//
// Creates a new job to transform input data, using steps defined in an existing
// Glue DataBrew recipe
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation CreateRecipeJob for usage and error information.
//
// Returned Error Types:
//
//   - AccessDeniedException
//     Access to the specified resource was denied.
//
//   - ConflictException
//     Updating or deleting a resource can cause an inconsistent state.
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ServiceQuotaExceededException
//     A service quota is exceeded.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/CreateRecipeJob
func (c *GlueDataBrew) CreateRecipeJob(input *CreateRecipeJobInput) (*CreateRecipeJobOutput, error) {
	req, out := c.CreateRecipeJobRequest(input)
	return out, req.Send()
}

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

const opCreateRuleset = "CreateRuleset"

// CreateRulesetRequest generates a "aws/request.Request" representing the
// client's request for the CreateRuleset 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 CreateRuleset for more information on using the CreateRuleset
// 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 CreateRulesetRequest method.
//	req, resp := client.CreateRulesetRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/CreateRuleset
func (c *GlueDataBrew) CreateRulesetRequest(input *CreateRulesetInput) (req *request.Request, output *CreateRulesetOutput) {
	op := &request.Operation{
		Name:       opCreateRuleset,
		HTTPMethod: "POST",
		HTTPPath:   "/rulesets",
	}

	if input == nil {
		input = &CreateRulesetInput{}
	}

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

// CreateRuleset API operation for AWS Glue DataBrew.
//
// Creates a new ruleset that can be used in a profile job to validate the data
// quality of a dataset.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation CreateRuleset for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     Updating or deleting a resource can cause an inconsistent state.
//
//   - ServiceQuotaExceededException
//     A service quota is exceeded.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/CreateRuleset
func (c *GlueDataBrew) CreateRuleset(input *CreateRulesetInput) (*CreateRulesetOutput, error) {
	req, out := c.CreateRulesetRequest(input)
	return out, req.Send()
}

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

const opCreateSchedule = "CreateSchedule"

// CreateScheduleRequest generates a "aws/request.Request" representing the
// client's request for the CreateSchedule 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 CreateSchedule for more information on using the CreateSchedule
// 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 CreateScheduleRequest method.
//	req, resp := client.CreateScheduleRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/CreateSchedule
func (c *GlueDataBrew) CreateScheduleRequest(input *CreateScheduleInput) (req *request.Request, output *CreateScheduleOutput) {
	op := &request.Operation{
		Name:       opCreateSchedule,
		HTTPMethod: "POST",
		HTTPPath:   "/schedules",
	}

	if input == nil {
		input = &CreateScheduleInput{}
	}

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

// CreateSchedule API operation for AWS Glue DataBrew.
//
// Creates a new schedule for one or more DataBrew jobs. Jobs can be run at
// a specific date and time, or at regular intervals.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation CreateSchedule for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     Updating or deleting a resource can cause an inconsistent state.
//
//   - ServiceQuotaExceededException
//     A service quota is exceeded.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/CreateSchedule
func (c *GlueDataBrew) CreateSchedule(input *CreateScheduleInput) (*CreateScheduleOutput, error) {
	req, out := c.CreateScheduleRequest(input)
	return out, req.Send()
}

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

const opDeleteDataset = "DeleteDataset"

// DeleteDatasetRequest generates a "aws/request.Request" representing the
// client's request for the DeleteDataset 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 DeleteDataset for more information on using the DeleteDataset
// 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 DeleteDatasetRequest method.
//	req, resp := client.DeleteDatasetRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DeleteDataset
func (c *GlueDataBrew) DeleteDatasetRequest(input *DeleteDatasetInput) (req *request.Request, output *DeleteDatasetOutput) {
	op := &request.Operation{
		Name:       opDeleteDataset,
		HTTPMethod: "DELETE",
		HTTPPath:   "/datasets/{name}",
	}

	if input == nil {
		input = &DeleteDatasetInput{}
	}

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

// DeleteDataset API operation for AWS Glue DataBrew.
//
// Deletes a dataset from DataBrew.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation DeleteDataset for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     Updating or deleting a resource can cause an inconsistent state.
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DeleteDataset
func (c *GlueDataBrew) DeleteDataset(input *DeleteDatasetInput) (*DeleteDatasetOutput, error) {
	req, out := c.DeleteDatasetRequest(input)
	return out, req.Send()
}

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

const opDeleteJob = "DeleteJob"

// DeleteJobRequest generates a "aws/request.Request" representing the
// client's request for the DeleteJob 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 DeleteJob for more information on using the DeleteJob
// 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 DeleteJobRequest method.
//	req, resp := client.DeleteJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DeleteJob
func (c *GlueDataBrew) DeleteJobRequest(input *DeleteJobInput) (req *request.Request, output *DeleteJobOutput) {
	op := &request.Operation{
		Name:       opDeleteJob,
		HTTPMethod: "DELETE",
		HTTPPath:   "/jobs/{name}",
	}

	if input == nil {
		input = &DeleteJobInput{}
	}

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

// DeleteJob API operation for AWS Glue DataBrew.
//
// Deletes the specified DataBrew job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation DeleteJob for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     Updating or deleting a resource can cause an inconsistent state.
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DeleteJob
func (c *GlueDataBrew) DeleteJob(input *DeleteJobInput) (*DeleteJobOutput, error) {
	req, out := c.DeleteJobRequest(input)
	return out, req.Send()
}

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

const opDeleteProject = "DeleteProject"

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

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

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

// DeleteProject API operation for AWS Glue DataBrew.
//
// Deletes an existing DataBrew project.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation DeleteProject for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     Updating or deleting a resource can cause an inconsistent state.
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DeleteProject
func (c *GlueDataBrew) DeleteProject(input *DeleteProjectInput) (*DeleteProjectOutput, error) {
	req, out := c.DeleteProjectRequest(input)
	return out, req.Send()
}

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

const opDeleteRecipeVersion = "DeleteRecipeVersion"

// DeleteRecipeVersionRequest generates a "aws/request.Request" representing the
// client's request for the DeleteRecipeVersion 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 DeleteRecipeVersion for more information on using the DeleteRecipeVersion
// 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 DeleteRecipeVersionRequest method.
//	req, resp := client.DeleteRecipeVersionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DeleteRecipeVersion
func (c *GlueDataBrew) DeleteRecipeVersionRequest(input *DeleteRecipeVersionInput) (req *request.Request, output *DeleteRecipeVersionOutput) {
	op := &request.Operation{
		Name:       opDeleteRecipeVersion,
		HTTPMethod: "DELETE",
		HTTPPath:   "/recipes/{name}/recipeVersion/{recipeVersion}",
	}

	if input == nil {
		input = &DeleteRecipeVersionInput{}
	}

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

// DeleteRecipeVersion API operation for AWS Glue DataBrew.
//
// Deletes a single version of a DataBrew recipe.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation DeleteRecipeVersion for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     Updating or deleting a resource can cause an inconsistent state.
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DeleteRecipeVersion
func (c *GlueDataBrew) DeleteRecipeVersion(input *DeleteRecipeVersionInput) (*DeleteRecipeVersionOutput, error) {
	req, out := c.DeleteRecipeVersionRequest(input)
	return out, req.Send()
}

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

const opDeleteRuleset = "DeleteRuleset"

// DeleteRulesetRequest generates a "aws/request.Request" representing the
// client's request for the DeleteRuleset 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 DeleteRuleset for more information on using the DeleteRuleset
// 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 DeleteRulesetRequest method.
//	req, resp := client.DeleteRulesetRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DeleteRuleset
func (c *GlueDataBrew) DeleteRulesetRequest(input *DeleteRulesetInput) (req *request.Request, output *DeleteRulesetOutput) {
	op := &request.Operation{
		Name:       opDeleteRuleset,
		HTTPMethod: "DELETE",
		HTTPPath:   "/rulesets/{name}",
	}

	if input == nil {
		input = &DeleteRulesetInput{}
	}

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

// DeleteRuleset API operation for AWS Glue DataBrew.
//
// Deletes a ruleset.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation DeleteRuleset for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
//   - ConflictException
//     Updating or deleting a resource can cause an inconsistent state.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DeleteRuleset
func (c *GlueDataBrew) DeleteRuleset(input *DeleteRulesetInput) (*DeleteRulesetOutput, error) {
	req, out := c.DeleteRulesetRequest(input)
	return out, req.Send()
}

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

const opDeleteSchedule = "DeleteSchedule"

// DeleteScheduleRequest generates a "aws/request.Request" representing the
// client's request for the DeleteSchedule 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 DeleteSchedule for more information on using the DeleteSchedule
// 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 DeleteScheduleRequest method.
//	req, resp := client.DeleteScheduleRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DeleteSchedule
func (c *GlueDataBrew) DeleteScheduleRequest(input *DeleteScheduleInput) (req *request.Request, output *DeleteScheduleOutput) {
	op := &request.Operation{
		Name:       opDeleteSchedule,
		HTTPMethod: "DELETE",
		HTTPPath:   "/schedules/{name}",
	}

	if input == nil {
		input = &DeleteScheduleInput{}
	}

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

// DeleteSchedule API operation for AWS Glue DataBrew.
//
// Deletes the specified DataBrew schedule.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation DeleteSchedule for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DeleteSchedule
func (c *GlueDataBrew) DeleteSchedule(input *DeleteScheduleInput) (*DeleteScheduleOutput, error) {
	req, out := c.DeleteScheduleRequest(input)
	return out, req.Send()
}

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

const opDescribeDataset = "DescribeDataset"

// DescribeDatasetRequest generates a "aws/request.Request" representing the
// client's request for the DescribeDataset 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 DescribeDataset for more information on using the DescribeDataset
// 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 DescribeDatasetRequest method.
//	req, resp := client.DescribeDatasetRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DescribeDataset
func (c *GlueDataBrew) DescribeDatasetRequest(input *DescribeDatasetInput) (req *request.Request, output *DescribeDatasetOutput) {
	op := &request.Operation{
		Name:       opDescribeDataset,
		HTTPMethod: "GET",
		HTTPPath:   "/datasets/{name}",
	}

	if input == nil {
		input = &DescribeDatasetInput{}
	}

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

// DescribeDataset API operation for AWS Glue DataBrew.
//
// Returns the definition of a specific DataBrew dataset.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation DescribeDataset for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DescribeDataset
func (c *GlueDataBrew) DescribeDataset(input *DescribeDatasetInput) (*DescribeDatasetOutput, error) {
	req, out := c.DescribeDatasetRequest(input)
	return out, req.Send()
}

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

const opDescribeJob = "DescribeJob"

// DescribeJobRequest generates a "aws/request.Request" representing the
// client's request for the DescribeJob 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 DescribeJob for more information on using the DescribeJob
// 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 DescribeJobRequest method.
//	req, resp := client.DescribeJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DescribeJob
func (c *GlueDataBrew) DescribeJobRequest(input *DescribeJobInput) (req *request.Request, output *DescribeJobOutput) {
	op := &request.Operation{
		Name:       opDescribeJob,
		HTTPMethod: "GET",
		HTTPPath:   "/jobs/{name}",
	}

	if input == nil {
		input = &DescribeJobInput{}
	}

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

// DescribeJob API operation for AWS Glue DataBrew.
//
// Returns the definition of a specific DataBrew job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation DescribeJob for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DescribeJob
func (c *GlueDataBrew) DescribeJob(input *DescribeJobInput) (*DescribeJobOutput, error) {
	req, out := c.DescribeJobRequest(input)
	return out, req.Send()
}

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

const opDescribeJobRun = "DescribeJobRun"

// DescribeJobRunRequest generates a "aws/request.Request" representing the
// client's request for the DescribeJobRun 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 DescribeJobRun for more information on using the DescribeJobRun
// 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 DescribeJobRunRequest method.
//	req, resp := client.DescribeJobRunRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DescribeJobRun
func (c *GlueDataBrew) DescribeJobRunRequest(input *DescribeJobRunInput) (req *request.Request, output *DescribeJobRunOutput) {
	op := &request.Operation{
		Name:       opDescribeJobRun,
		HTTPMethod: "GET",
		HTTPPath:   "/jobs/{name}/jobRun/{runId}",
	}

	if input == nil {
		input = &DescribeJobRunInput{}
	}

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

// DescribeJobRun API operation for AWS Glue DataBrew.
//
// Represents one run of a DataBrew job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation DescribeJobRun for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DescribeJobRun
func (c *GlueDataBrew) DescribeJobRun(input *DescribeJobRunInput) (*DescribeJobRunOutput, error) {
	req, out := c.DescribeJobRunRequest(input)
	return out, req.Send()
}

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

const opDescribeProject = "DescribeProject"

// DescribeProjectRequest generates a "aws/request.Request" representing the
// client's request for the DescribeProject 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 DescribeProject for more information on using the DescribeProject
// 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 DescribeProjectRequest method.
//	req, resp := client.DescribeProjectRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DescribeProject
func (c *GlueDataBrew) DescribeProjectRequest(input *DescribeProjectInput) (req *request.Request, output *DescribeProjectOutput) {
	op := &request.Operation{
		Name:       opDescribeProject,
		HTTPMethod: "GET",
		HTTPPath:   "/projects/{name}",
	}

	if input == nil {
		input = &DescribeProjectInput{}
	}

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

// DescribeProject API operation for AWS Glue DataBrew.
//
// Returns the definition of a specific DataBrew project.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation DescribeProject for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DescribeProject
func (c *GlueDataBrew) DescribeProject(input *DescribeProjectInput) (*DescribeProjectOutput, error) {
	req, out := c.DescribeProjectRequest(input)
	return out, req.Send()
}

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

const opDescribeRecipe = "DescribeRecipe"

// DescribeRecipeRequest generates a "aws/request.Request" representing the
// client's request for the DescribeRecipe 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 DescribeRecipe for more information on using the DescribeRecipe
// 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 DescribeRecipeRequest method.
//	req, resp := client.DescribeRecipeRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DescribeRecipe
func (c *GlueDataBrew) DescribeRecipeRequest(input *DescribeRecipeInput) (req *request.Request, output *DescribeRecipeOutput) {
	op := &request.Operation{
		Name:       opDescribeRecipe,
		HTTPMethod: "GET",
		HTTPPath:   "/recipes/{name}",
	}

	if input == nil {
		input = &DescribeRecipeInput{}
	}

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

// DescribeRecipe API operation for AWS Glue DataBrew.
//
// Returns the definition of a specific DataBrew recipe corresponding to a particular
// version.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation DescribeRecipe for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DescribeRecipe
func (c *GlueDataBrew) DescribeRecipe(input *DescribeRecipeInput) (*DescribeRecipeOutput, error) {
	req, out := c.DescribeRecipeRequest(input)
	return out, req.Send()
}

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

const opDescribeRuleset = "DescribeRuleset"

// DescribeRulesetRequest generates a "aws/request.Request" representing the
// client's request for the DescribeRuleset 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 DescribeRuleset for more information on using the DescribeRuleset
// 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 DescribeRulesetRequest method.
//	req, resp := client.DescribeRulesetRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DescribeRuleset
func (c *GlueDataBrew) DescribeRulesetRequest(input *DescribeRulesetInput) (req *request.Request, output *DescribeRulesetOutput) {
	op := &request.Operation{
		Name:       opDescribeRuleset,
		HTTPMethod: "GET",
		HTTPPath:   "/rulesets/{name}",
	}

	if input == nil {
		input = &DescribeRulesetInput{}
	}

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

// DescribeRuleset API operation for AWS Glue DataBrew.
//
// Retrieves detailed information about the ruleset.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation DescribeRuleset for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DescribeRuleset
func (c *GlueDataBrew) DescribeRuleset(input *DescribeRulesetInput) (*DescribeRulesetOutput, error) {
	req, out := c.DescribeRulesetRequest(input)
	return out, req.Send()
}

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

const opDescribeSchedule = "DescribeSchedule"

// DescribeScheduleRequest generates a "aws/request.Request" representing the
// client's request for the DescribeSchedule 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 DescribeSchedule for more information on using the DescribeSchedule
// 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 DescribeScheduleRequest method.
//	req, resp := client.DescribeScheduleRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DescribeSchedule
func (c *GlueDataBrew) DescribeScheduleRequest(input *DescribeScheduleInput) (req *request.Request, output *DescribeScheduleOutput) {
	op := &request.Operation{
		Name:       opDescribeSchedule,
		HTTPMethod: "GET",
		HTTPPath:   "/schedules/{name}",
	}

	if input == nil {
		input = &DescribeScheduleInput{}
	}

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

// DescribeSchedule API operation for AWS Glue DataBrew.
//
// Returns the definition of a specific DataBrew schedule.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation DescribeSchedule for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/DescribeSchedule
func (c *GlueDataBrew) DescribeSchedule(input *DescribeScheduleInput) (*DescribeScheduleOutput, error) {
	req, out := c.DescribeScheduleRequest(input)
	return out, req.Send()
}

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

const opListDatasets = "ListDatasets"

// ListDatasetsRequest generates a "aws/request.Request" representing the
// client's request for the ListDatasets 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 ListDatasets for more information on using the ListDatasets
// 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 ListDatasetsRequest method.
//	req, resp := client.ListDatasetsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/ListDatasets
func (c *GlueDataBrew) ListDatasetsRequest(input *ListDatasetsInput) (req *request.Request, output *ListDatasetsOutput) {
	op := &request.Operation{
		Name:       opListDatasets,
		HTTPMethod: "GET",
		HTTPPath:   "/datasets",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListDatasetsInput{}
	}

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

// ListDatasets API operation for AWS Glue DataBrew.
//
// Lists all of the DataBrew datasets.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation ListDatasets for usage and error information.
//
// Returned Error Types:
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/ListDatasets
func (c *GlueDataBrew) ListDatasets(input *ListDatasetsInput) (*ListDatasetsOutput, error) {
	req, out := c.ListDatasetsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListJobRuns = "ListJobRuns"

// ListJobRunsRequest generates a "aws/request.Request" representing the
// client's request for the ListJobRuns 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 ListJobRuns for more information on using the ListJobRuns
// 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 ListJobRunsRequest method.
//	req, resp := client.ListJobRunsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/ListJobRuns
func (c *GlueDataBrew) ListJobRunsRequest(input *ListJobRunsInput) (req *request.Request, output *ListJobRunsOutput) {
	op := &request.Operation{
		Name:       opListJobRuns,
		HTTPMethod: "GET",
		HTTPPath:   "/jobs/{name}/jobRuns",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListJobRunsInput{}
	}

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

// ListJobRuns API operation for AWS Glue DataBrew.
//
// Lists all of the previous runs of a particular DataBrew job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation ListJobRuns for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/ListJobRuns
func (c *GlueDataBrew) ListJobRuns(input *ListJobRunsInput) (*ListJobRunsOutput, error) {
	req, out := c.ListJobRunsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListJobs = "ListJobs"

// ListJobsRequest generates a "aws/request.Request" representing the
// client's request for the ListJobs 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 ListJobs for more information on using the ListJobs
// 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 ListJobsRequest method.
//	req, resp := client.ListJobsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/ListJobs
func (c *GlueDataBrew) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) {
	op := &request.Operation{
		Name:       opListJobs,
		HTTPMethod: "GET",
		HTTPPath:   "/jobs",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListJobsInput{}
	}

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

// ListJobs API operation for AWS Glue DataBrew.
//
// Lists all of the DataBrew jobs that are defined.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation ListJobs for usage and error information.
//
// Returned Error Types:
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/ListJobs
func (c *GlueDataBrew) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) {
	req, out := c.ListJobsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListProjects = "ListProjects"

// ListProjectsRequest generates a "aws/request.Request" representing the
// client's request for the ListProjects operation. The "output" return
// value will be populated with the request's response once the request completes
// successfully.
//
// Use "Send" method on the returned Request to send the API call to the service.
// the "output" return value is not valid until after Send returns without error.
//
// See ListProjects for more information on using the ListProjects
// API call, and error handling.
//
// This method is useful when you want to inject custom logic or configuration
// into the SDK's request lifecycle. Such as custom headers, or retry logic.
//
//	// Example sending a request using the ListProjectsRequest method.
//	req, resp := client.ListProjectsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/ListProjects
func (c *GlueDataBrew) ListProjectsRequest(input *ListProjectsInput) (req *request.Request, output *ListProjectsOutput) {
	op := &request.Operation{
		Name:       opListProjects,
		HTTPMethod: "GET",
		HTTPPath:   "/projects",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

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

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

// ListProjects API operation for AWS Glue DataBrew.
//
// Lists all of the DataBrew projects that are defined.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation ListProjects for usage and error information.
//
// Returned Error Types:
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/ListProjects
func (c *GlueDataBrew) ListProjects(input *ListProjectsInput) (*ListProjectsOutput, error) {
	req, out := c.ListProjectsRequest(input)
	return out, req.Send()
}

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

// ListProjectsPages iterates over the pages of a ListProjects operation,
// calling the "fn" function with the response data for each page. To stop
// iterating, return false from the fn function.
//
// See ListProjects method for more information on how to use this operation.
//
// Note: This operation can generate multiple requests to a service.
//
//	// Example iterating over at most 3 pages of a ListProjects operation.
//	pageNum := 0
//	err := client.ListProjectsPages(params,
//	    func(page *gluedatabrew.ListProjectsOutput, lastPage bool) bool {
//	        pageNum++
//	        fmt.Println(page)
//	        return pageNum <= 3
//	    })
func (c *GlueDataBrew) ListProjectsPages(input *ListProjectsInput, fn func(*ListProjectsOutput, bool) bool) error {
	return c.ListProjectsPagesWithContext(aws.BackgroundContext(), input, fn)
}

// ListProjectsPagesWithContext same as ListProjectsPages except
// it takes a Context and allows setting request options on the pages.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *GlueDataBrew) ListProjectsPagesWithContext(ctx aws.Context, input *ListProjectsInput, fn func(*ListProjectsOutput, bool) bool, opts ...request.Option) error {
	p := request.Pagination{
		NewRequest: func() (*request.Request, error) {
			var inCpy *ListProjectsInput
			if input != nil {
				tmp := *input
				inCpy = &tmp
			}
			req, _ := c.ListProjectsRequest(inCpy)
			req.SetContext(ctx)
			req.ApplyOptions(opts...)
			return req, nil
		},
	}

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

	return p.Err()
}

const opListRecipeVersions = "ListRecipeVersions"

// ListRecipeVersionsRequest generates a "aws/request.Request" representing the
// client's request for the ListRecipeVersions 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 ListRecipeVersions for more information on using the ListRecipeVersions
// 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 ListRecipeVersionsRequest method.
//	req, resp := client.ListRecipeVersionsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/ListRecipeVersions
func (c *GlueDataBrew) ListRecipeVersionsRequest(input *ListRecipeVersionsInput) (req *request.Request, output *ListRecipeVersionsOutput) {
	op := &request.Operation{
		Name:       opListRecipeVersions,
		HTTPMethod: "GET",
		HTTPPath:   "/recipeVersions",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListRecipeVersionsInput{}
	}

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

// ListRecipeVersions API operation for AWS Glue DataBrew.
//
// Lists the versions of a particular DataBrew recipe, except for LATEST_WORKING.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation ListRecipeVersions for usage and error information.
//
// Returned Error Types:
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/ListRecipeVersions
func (c *GlueDataBrew) ListRecipeVersions(input *ListRecipeVersionsInput) (*ListRecipeVersionsOutput, error) {
	req, out := c.ListRecipeVersionsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListRecipes = "ListRecipes"

// ListRecipesRequest generates a "aws/request.Request" representing the
// client's request for the ListRecipes 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 ListRecipes for more information on using the ListRecipes
// 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 ListRecipesRequest method.
//	req, resp := client.ListRecipesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/ListRecipes
func (c *GlueDataBrew) ListRecipesRequest(input *ListRecipesInput) (req *request.Request, output *ListRecipesOutput) {
	op := &request.Operation{
		Name:       opListRecipes,
		HTTPMethod: "GET",
		HTTPPath:   "/recipes",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListRecipesInput{}
	}

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

// ListRecipes API operation for AWS Glue DataBrew.
//
// Lists all of the DataBrew recipes that are defined.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation ListRecipes for usage and error information.
//
// Returned Error Types:
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/ListRecipes
func (c *GlueDataBrew) ListRecipes(input *ListRecipesInput) (*ListRecipesOutput, error) {
	req, out := c.ListRecipesRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListRulesets = "ListRulesets"

// ListRulesetsRequest generates a "aws/request.Request" representing the
// client's request for the ListRulesets 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 ListRulesets for more information on using the ListRulesets
// 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 ListRulesetsRequest method.
//	req, resp := client.ListRulesetsRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/ListRulesets
func (c *GlueDataBrew) ListRulesetsRequest(input *ListRulesetsInput) (req *request.Request, output *ListRulesetsOutput) {
	op := &request.Operation{
		Name:       opListRulesets,
		HTTPMethod: "GET",
		HTTPPath:   "/rulesets",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListRulesetsInput{}
	}

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

// ListRulesets API operation for AWS Glue DataBrew.
//
// List all rulesets available in the current account or rulesets associated
// with a specific resource (dataset).
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation ListRulesets for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/ListRulesets
func (c *GlueDataBrew) ListRulesets(input *ListRulesetsInput) (*ListRulesetsOutput, error) {
	req, out := c.ListRulesetsRequest(input)
	return out, req.Send()
}

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

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

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

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

	return p.Err()
}

const opListSchedules = "ListSchedules"

// ListSchedulesRequest generates a "aws/request.Request" representing the
// client's request for the ListSchedules 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 ListSchedules for more information on using the ListSchedules
// 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 ListSchedulesRequest method.
//	req, resp := client.ListSchedulesRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/ListSchedules
func (c *GlueDataBrew) ListSchedulesRequest(input *ListSchedulesInput) (req *request.Request, output *ListSchedulesOutput) {
	op := &request.Operation{
		Name:       opListSchedules,
		HTTPMethod: "GET",
		HTTPPath:   "/schedules",
		Paginator: &request.Paginator{
			InputTokens:     []string{"NextToken"},
			OutputTokens:    []string{"NextToken"},
			LimitToken:      "MaxResults",
			TruncationToken: "",
		},
	}

	if input == nil {
		input = &ListSchedulesInput{}
	}

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

// ListSchedules API operation for AWS Glue DataBrew.
//
// Lists the DataBrew schedules that are defined.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation ListSchedules for usage and error information.
//
// Returned Error Types:
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/ListSchedules
func (c *GlueDataBrew) ListSchedules(input *ListSchedulesInput) (*ListSchedulesOutput, error) {
	req, out := c.ListSchedulesRequest(input)
	return out, req.Send()
}

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

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

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

	for p.Next() {
		if !fn(p.Page().(*ListSchedulesOutput), !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/databrew-2017-07-25/ListTagsForResource
func (c *GlueDataBrew) 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 AWS Glue DataBrew.
//
// Lists all the tags for a DataBrew 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 AWS Glue DataBrew's
// API operation ListTagsForResource for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     An internal service failure occurred.
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/ListTagsForResource
func (c *GlueDataBrew) 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 *GlueDataBrew) 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 opPublishRecipe = "PublishRecipe"

// PublishRecipeRequest generates a "aws/request.Request" representing the
// client's request for the PublishRecipe 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 PublishRecipe for more information on using the PublishRecipe
// 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 PublishRecipeRequest method.
//	req, resp := client.PublishRecipeRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/PublishRecipe
func (c *GlueDataBrew) PublishRecipeRequest(input *PublishRecipeInput) (req *request.Request, output *PublishRecipeOutput) {
	op := &request.Operation{
		Name:       opPublishRecipe,
		HTTPMethod: "POST",
		HTTPPath:   "/recipes/{name}/publishRecipe",
	}

	if input == nil {
		input = &PublishRecipeInput{}
	}

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

// PublishRecipe API operation for AWS Glue DataBrew.
//
// Publishes a new version of a DataBrew recipe.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation PublishRecipe for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ServiceQuotaExceededException
//     A service quota is exceeded.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/PublishRecipe
func (c *GlueDataBrew) PublishRecipe(input *PublishRecipeInput) (*PublishRecipeOutput, error) {
	req, out := c.PublishRecipeRequest(input)
	return out, req.Send()
}

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

const opSendProjectSessionAction = "SendProjectSessionAction"

// SendProjectSessionActionRequest generates a "aws/request.Request" representing the
// client's request for the SendProjectSessionAction 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 SendProjectSessionAction for more information on using the SendProjectSessionAction
// 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 SendProjectSessionActionRequest method.
//	req, resp := client.SendProjectSessionActionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/SendProjectSessionAction
func (c *GlueDataBrew) SendProjectSessionActionRequest(input *SendProjectSessionActionInput) (req *request.Request, output *SendProjectSessionActionOutput) {
	op := &request.Operation{
		Name:       opSendProjectSessionAction,
		HTTPMethod: "PUT",
		HTTPPath:   "/projects/{name}/sendProjectSessionAction",
	}

	if input == nil {
		input = &SendProjectSessionActionInput{}
	}

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

// SendProjectSessionAction API operation for AWS Glue DataBrew.
//
// Performs a recipe step within an interactive DataBrew session that's currently
// open.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation SendProjectSessionAction for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     Updating or deleting a resource can cause an inconsistent state.
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/SendProjectSessionAction
func (c *GlueDataBrew) SendProjectSessionAction(input *SendProjectSessionActionInput) (*SendProjectSessionActionOutput, error) {
	req, out := c.SendProjectSessionActionRequest(input)
	return out, req.Send()
}

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

const opStartJobRun = "StartJobRun"

// StartJobRunRequest generates a "aws/request.Request" representing the
// client's request for the StartJobRun 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 StartJobRun for more information on using the StartJobRun
// 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 StartJobRunRequest method.
//	req, resp := client.StartJobRunRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/StartJobRun
func (c *GlueDataBrew) StartJobRunRequest(input *StartJobRunInput) (req *request.Request, output *StartJobRunOutput) {
	op := &request.Operation{
		Name:       opStartJobRun,
		HTTPMethod: "POST",
		HTTPPath:   "/jobs/{name}/startJobRun",
	}

	if input == nil {
		input = &StartJobRunInput{}
	}

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

// StartJobRun API operation for AWS Glue DataBrew.
//
// Runs a DataBrew job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation StartJobRun for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     Updating or deleting a resource can cause an inconsistent state.
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ServiceQuotaExceededException
//     A service quota is exceeded.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/StartJobRun
func (c *GlueDataBrew) StartJobRun(input *StartJobRunInput) (*StartJobRunOutput, error) {
	req, out := c.StartJobRunRequest(input)
	return out, req.Send()
}

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

const opStartProjectSession = "StartProjectSession"

// StartProjectSessionRequest generates a "aws/request.Request" representing the
// client's request for the StartProjectSession 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 StartProjectSession for more information on using the StartProjectSession
// 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 StartProjectSessionRequest method.
//	req, resp := client.StartProjectSessionRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/StartProjectSession
func (c *GlueDataBrew) StartProjectSessionRequest(input *StartProjectSessionInput) (req *request.Request, output *StartProjectSessionOutput) {
	op := &request.Operation{
		Name:       opStartProjectSession,
		HTTPMethod: "PUT",
		HTTPPath:   "/projects/{name}/startProjectSession",
	}

	if input == nil {
		input = &StartProjectSessionInput{}
	}

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

// StartProjectSession API operation for AWS Glue DataBrew.
//
// Creates an interactive session, enabling you to manipulate data in a DataBrew
// project.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation StartProjectSession for usage and error information.
//
// Returned Error Types:
//
//   - ConflictException
//     Updating or deleting a resource can cause an inconsistent state.
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ServiceQuotaExceededException
//     A service quota is exceeded.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/StartProjectSession
func (c *GlueDataBrew) StartProjectSession(input *StartProjectSessionInput) (*StartProjectSessionOutput, error) {
	req, out := c.StartProjectSessionRequest(input)
	return out, req.Send()
}

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

const opStopJobRun = "StopJobRun"

// StopJobRunRequest generates a "aws/request.Request" representing the
// client's request for the StopJobRun 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 StopJobRun for more information on using the StopJobRun
// 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 StopJobRunRequest method.
//	req, resp := client.StopJobRunRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/StopJobRun
func (c *GlueDataBrew) StopJobRunRequest(input *StopJobRunInput) (req *request.Request, output *StopJobRunOutput) {
	op := &request.Operation{
		Name:       opStopJobRun,
		HTTPMethod: "POST",
		HTTPPath:   "/jobs/{name}/jobRun/{runId}/stopJobRun",
	}

	if input == nil {
		input = &StopJobRunInput{}
	}

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

// StopJobRun API operation for AWS Glue DataBrew.
//
// Stops a particular run of a job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation StopJobRun for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/StopJobRun
func (c *GlueDataBrew) StopJobRun(input *StopJobRunInput) (*StopJobRunOutput, error) {
	req, out := c.StopJobRunRequest(input)
	return out, req.Send()
}

// StopJobRunWithContext is the same as StopJobRun with the addition of
// the ability to pass a context and additional request options.
//
// See StopJobRun 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 *GlueDataBrew) StopJobRunWithContext(ctx aws.Context, input *StopJobRunInput, opts ...request.Option) (*StopJobRunOutput, error) {
	req, out := c.StopJobRunRequest(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/databrew-2017-07-25/TagResource
func (c *GlueDataBrew) 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 AWS Glue DataBrew.
//
// Adds metadata tags to a DataBrew resource, such as a dataset, project, recipe,
// job, or schedule.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation TagResource for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     An internal service failure occurred.
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/TagResource
func (c *GlueDataBrew) 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 *GlueDataBrew) 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/databrew-2017-07-25/UntagResource
func (c *GlueDataBrew) 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 AWS Glue DataBrew.
//
// Removes metadata tags from a DataBrew 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 AWS Glue DataBrew's
// API operation UntagResource for usage and error information.
//
// Returned Error Types:
//
//   - InternalServerException
//     An internal service failure occurred.
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/UntagResource
func (c *GlueDataBrew) 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 *GlueDataBrew) 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 opUpdateDataset = "UpdateDataset"

// UpdateDatasetRequest generates a "aws/request.Request" representing the
// client's request for the UpdateDataset 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 UpdateDataset for more information on using the UpdateDataset
// 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 UpdateDatasetRequest method.
//	req, resp := client.UpdateDatasetRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/UpdateDataset
func (c *GlueDataBrew) UpdateDatasetRequest(input *UpdateDatasetInput) (req *request.Request, output *UpdateDatasetOutput) {
	op := &request.Operation{
		Name:       opUpdateDataset,
		HTTPMethod: "PUT",
		HTTPPath:   "/datasets/{name}",
	}

	if input == nil {
		input = &UpdateDatasetInput{}
	}

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

// UpdateDataset API operation for AWS Glue DataBrew.
//
// Modifies the definition of an existing DataBrew dataset.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation UpdateDataset for usage and error information.
//
// Returned Error Types:
//
//   - AccessDeniedException
//     Access to the specified resource was denied.
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/UpdateDataset
func (c *GlueDataBrew) UpdateDataset(input *UpdateDatasetInput) (*UpdateDatasetOutput, error) {
	req, out := c.UpdateDatasetRequest(input)
	return out, req.Send()
}

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

const opUpdateProfileJob = "UpdateProfileJob"

// UpdateProfileJobRequest generates a "aws/request.Request" representing the
// client's request for the UpdateProfileJob 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 UpdateProfileJob for more information on using the UpdateProfileJob
// 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 UpdateProfileJobRequest method.
//	req, resp := client.UpdateProfileJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/UpdateProfileJob
func (c *GlueDataBrew) UpdateProfileJobRequest(input *UpdateProfileJobInput) (req *request.Request, output *UpdateProfileJobOutput) {
	op := &request.Operation{
		Name:       opUpdateProfileJob,
		HTTPMethod: "PUT",
		HTTPPath:   "/profileJobs/{name}",
	}

	if input == nil {
		input = &UpdateProfileJobInput{}
	}

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

// UpdateProfileJob API operation for AWS Glue DataBrew.
//
// Modifies the definition of an existing profile job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation UpdateProfileJob for usage and error information.
//
// Returned Error Types:
//
//   - AccessDeniedException
//     Access to the specified resource was denied.
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/UpdateProfileJob
func (c *GlueDataBrew) UpdateProfileJob(input *UpdateProfileJobInput) (*UpdateProfileJobOutput, error) {
	req, out := c.UpdateProfileJobRequest(input)
	return out, req.Send()
}

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

const opUpdateProject = "UpdateProject"

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

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

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

// UpdateProject API operation for AWS Glue DataBrew.
//
// Modifies the definition of an existing DataBrew project.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation UpdateProject for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/UpdateProject
func (c *GlueDataBrew) UpdateProject(input *UpdateProjectInput) (*UpdateProjectOutput, error) {
	req, out := c.UpdateProjectRequest(input)
	return out, req.Send()
}

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

const opUpdateRecipe = "UpdateRecipe"

// UpdateRecipeRequest generates a "aws/request.Request" representing the
// client's request for the UpdateRecipe 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 UpdateRecipe for more information on using the UpdateRecipe
// 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 UpdateRecipeRequest method.
//	req, resp := client.UpdateRecipeRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/UpdateRecipe
func (c *GlueDataBrew) UpdateRecipeRequest(input *UpdateRecipeInput) (req *request.Request, output *UpdateRecipeOutput) {
	op := &request.Operation{
		Name:       opUpdateRecipe,
		HTTPMethod: "PUT",
		HTTPPath:   "/recipes/{name}",
	}

	if input == nil {
		input = &UpdateRecipeInput{}
	}

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

// UpdateRecipe API operation for AWS Glue DataBrew.
//
// Modifies the definition of the LATEST_WORKING version of a DataBrew recipe.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation UpdateRecipe for usage and error information.
//
// Returned Error Types:
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/UpdateRecipe
func (c *GlueDataBrew) UpdateRecipe(input *UpdateRecipeInput) (*UpdateRecipeOutput, error) {
	req, out := c.UpdateRecipeRequest(input)
	return out, req.Send()
}

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

const opUpdateRecipeJob = "UpdateRecipeJob"

// UpdateRecipeJobRequest generates a "aws/request.Request" representing the
// client's request for the UpdateRecipeJob 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 UpdateRecipeJob for more information on using the UpdateRecipeJob
// 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 UpdateRecipeJobRequest method.
//	req, resp := client.UpdateRecipeJobRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/UpdateRecipeJob
func (c *GlueDataBrew) UpdateRecipeJobRequest(input *UpdateRecipeJobInput) (req *request.Request, output *UpdateRecipeJobOutput) {
	op := &request.Operation{
		Name:       opUpdateRecipeJob,
		HTTPMethod: "PUT",
		HTTPPath:   "/recipeJobs/{name}",
	}

	if input == nil {
		input = &UpdateRecipeJobInput{}
	}

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

// UpdateRecipeJob API operation for AWS Glue DataBrew.
//
// Modifies the definition of an existing DataBrew recipe job.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation UpdateRecipeJob for usage and error information.
//
// Returned Error Types:
//
//   - AccessDeniedException
//     Access to the specified resource was denied.
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/UpdateRecipeJob
func (c *GlueDataBrew) UpdateRecipeJob(input *UpdateRecipeJobInput) (*UpdateRecipeJobOutput, error) {
	req, out := c.UpdateRecipeJobRequest(input)
	return out, req.Send()
}

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

const opUpdateRuleset = "UpdateRuleset"

// UpdateRulesetRequest generates a "aws/request.Request" representing the
// client's request for the UpdateRuleset 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 UpdateRuleset for more information on using the UpdateRuleset
// 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 UpdateRulesetRequest method.
//	req, resp := client.UpdateRulesetRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/UpdateRuleset
func (c *GlueDataBrew) UpdateRulesetRequest(input *UpdateRulesetInput) (req *request.Request, output *UpdateRulesetOutput) {
	op := &request.Operation{
		Name:       opUpdateRuleset,
		HTTPMethod: "PUT",
		HTTPPath:   "/rulesets/{name}",
	}

	if input == nil {
		input = &UpdateRulesetInput{}
	}

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

// UpdateRuleset API operation for AWS Glue DataBrew.
//
// Updates specified ruleset.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation UpdateRuleset for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/UpdateRuleset
func (c *GlueDataBrew) UpdateRuleset(input *UpdateRulesetInput) (*UpdateRulesetOutput, error) {
	req, out := c.UpdateRulesetRequest(input)
	return out, req.Send()
}

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

const opUpdateSchedule = "UpdateSchedule"

// UpdateScheduleRequest generates a "aws/request.Request" representing the
// client's request for the UpdateSchedule 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 UpdateSchedule for more information on using the UpdateSchedule
// 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 UpdateScheduleRequest method.
//	req, resp := client.UpdateScheduleRequest(params)
//
//	err := req.Send()
//	if err == nil { // resp is now filled
//	    fmt.Println(resp)
//	}
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/UpdateSchedule
func (c *GlueDataBrew) UpdateScheduleRequest(input *UpdateScheduleInput) (req *request.Request, output *UpdateScheduleOutput) {
	op := &request.Operation{
		Name:       opUpdateSchedule,
		HTTPMethod: "PUT",
		HTTPPath:   "/schedules/{name}",
	}

	if input == nil {
		input = &UpdateScheduleInput{}
	}

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

// UpdateSchedule API operation for AWS Glue DataBrew.
//
// Modifies the definition of an existing DataBrew schedule.
//
// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
// with awserr.Error's Code and Message methods to get detailed information about
// the error.
//
// See the AWS API reference guide for AWS Glue DataBrew's
// API operation UpdateSchedule for usage and error information.
//
// Returned Error Types:
//
//   - ResourceNotFoundException
//     One or more resources can't be found.
//
//   - ServiceQuotaExceededException
//     A service quota is exceeded.
//
//   - ValidationException
//     The input parameters for this request failed validation.
//
// See also, https://docs.aws.amazon.com/goto/WebAPI/databrew-2017-07-25/UpdateSchedule
func (c *GlueDataBrew) UpdateSchedule(input *UpdateScheduleInput) (*UpdateScheduleOutput, error) {
	req, out := c.UpdateScheduleRequest(input)
	return out, req.Send()
}

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

// Access to the specified resource was denied.
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
}

// Configuration of statistics that are allowed to be run on columns that contain
// detected entities. When undefined, no statistics will be computed on columns
// that contain detected entities.
type AllowedStatistics struct {
	_ struct{} `type:"structure"`

	// One or more column statistics to allow for columns that contain detected
	// entities.
	//
	// Statistics is a required field
	Statistics []*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 AllowedStatistics) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetStatistics sets the Statistics field's value.
func (s *AllowedStatistics) SetStatistics(v []*string) *AllowedStatistics {
	s.Statistics = v
	return s
}

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

	// The name of the recipe whose versions are to be deleted.
	//
	// Name is a required field
	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`

	// An array of version identifiers, for the recipe versions to be deleted. You
	// can specify numeric versions (X.Y) or LATEST_WORKING. LATEST_PUBLISHED is
	// not supported.
	//
	// RecipeVersions is a required field
	RecipeVersions []*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 BatchDeleteRecipeVersionInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetRecipeVersions sets the RecipeVersions field's value.
func (s *BatchDeleteRecipeVersionInput) SetRecipeVersions(v []*string) *BatchDeleteRecipeVersionInput {
	s.RecipeVersions = v
	return s
}

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

	// Errors, if any, that occurred while attempting to delete the recipe versions.
	Errors []*RecipeVersionErrorDetail `type:"list"`

	// The name of the recipe that was modified.
	//
	// Name is a required field
	Name *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 BatchDeleteRecipeVersionOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetErrors sets the Errors field's value.
func (s *BatchDeleteRecipeVersionOutput) SetErrors(v []*RecipeVersionErrorDetail) *BatchDeleteRecipeVersionOutput {
	s.Errors = v
	return s
}

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

// Selector of a column from a dataset for profile job configuration. One selector
// includes either a column name or a regular expression.
type ColumnSelector struct {
	_ struct{} `type:"structure"`

	// The name of a column from a dataset.
	Name *string `min:"1" type:"string"`

	// A regular expression for selecting a column from a dataset.
	Regex *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 ColumnSelector) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetRegex sets the Regex field's value.
func (s *ColumnSelector) SetRegex(v string) *ColumnSelector {
	s.Regex = &v
	return s
}

// Configuration for column evaluations for a profile job. ColumnStatisticsConfiguration
// can be used to select evaluations and override parameters of evaluations
// for particular columns.
type ColumnStatisticsConfiguration struct {
	_ struct{} `type:"structure"`

	// List of column selectors. Selectors can be used to select columns from the
	// dataset. When selectors are undefined, configuration will be applied to all
	// supported columns.
	Selectors []*ColumnSelector `min:"1" type:"list"`

	// Configuration for evaluations. Statistics can be used to select evaluations
	// and override parameters of evaluations.
	//
	// Statistics is a required field
	Statistics *StatisticsConfiguration `type:"structure" required:"true"`
}

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

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

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

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

// SetSelectors sets the Selectors field's value.
func (s *ColumnStatisticsConfiguration) SetSelectors(v []*ColumnSelector) *ColumnStatisticsConfiguration {
	s.Selectors = v
	return s
}

// SetStatistics sets the Statistics field's value.
func (s *ColumnStatisticsConfiguration) SetStatistics(v *StatisticsConfiguration) *ColumnStatisticsConfiguration {
	s.Statistics = v
	return s
}

// Represents an individual condition that evaluates to true or false.
//
// Conditions are used with recipe actions. The action is only performed for
// column values where the condition evaluates to true.
//
// If a recipe requires more than one condition, then the recipe must specify
// multiple ConditionExpression elements. Each condition is applied to the rows
// in a dataset first, before the recipe action is performed.
type ConditionExpression struct {
	_ struct{} `type:"structure"`

	// A specific condition to apply to a recipe action. For more information, see
	// Recipe structure (https://docs.aws.amazon.com/databrew/latest/dg/recipes.html#recipes.structure)
	// in the Glue DataBrew Developer Guide.
	//
	// Condition is a required field
	Condition *string `min:"1" type:"string" required:"true"`

	// A column to apply this condition to.
	//
	// TargetColumn is a required field
	TargetColumn *string `min:"1" type:"string" required:"true"`

	// A value that the condition must evaluate to for the condition to succeed.
	Value *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 ConditionExpression) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetCondition sets the Condition field's value.
func (s *ConditionExpression) SetCondition(v string) *ConditionExpression {
	s.Condition = &v
	return s
}

// SetTargetColumn sets the TargetColumn field's value.
func (s *ConditionExpression) SetTargetColumn(v string) *ConditionExpression {
	s.TargetColumn = &v
	return s
}

// SetValue sets the Value field's value.
func (s *ConditionExpression) SetValue(v string) *ConditionExpression {
	s.Value = &v
	return s
}

// Updating or deleting a resource can cause an inconsistent state.
type ConflictException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

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

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

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

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

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

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

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

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

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

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

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

	// The file format of a dataset that is created from an Amazon S3 file or folder.
	Format *string `type:"string" enum:"InputFormat"`

	// Represents a set of options that define the structure of either comma-separated
	// value (CSV), Excel, or JSON input.
	FormatOptions *FormatOptions `type:"structure"`

	// Represents information on how DataBrew can find data, in either the Glue
	// Data Catalog or Amazon S3.
	//
	// Input is a required field
	Input *Input `type:"structure" required:"true"`

	// The name of the dataset to be created. Valid characters are alphanumeric
	// (A-Z, a-z, 0-9), hyphen (-), period (.), and space.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// A set of options that defines how DataBrew interprets an Amazon S3 path of
	// the dataset.
	PathOptions *PathOptions `type:"structure"`

	// Metadata tags to apply to this dataset.
	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 CreateDatasetInput) String() string {
	return awsutil.Prettify(s)
}

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

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateDatasetInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateDatasetInput"}
	if s.Input == nil {
		invalidParams.Add(request.NewErrParamRequired("Input"))
	}
	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.FormatOptions != nil {
		if err := s.FormatOptions.Validate(); err != nil {
			invalidParams.AddNested("FormatOptions", err.(request.ErrInvalidParams))
		}
	}
	if s.Input != nil {
		if err := s.Input.Validate(); err != nil {
			invalidParams.AddNested("Input", err.(request.ErrInvalidParams))
		}
	}
	if s.PathOptions != nil {
		if err := s.PathOptions.Validate(); err != nil {
			invalidParams.AddNested("PathOptions", err.(request.ErrInvalidParams))
		}
	}

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

// SetFormat sets the Format field's value.
func (s *CreateDatasetInput) SetFormat(v string) *CreateDatasetInput {
	s.Format = &v
	return s
}

// SetFormatOptions sets the FormatOptions field's value.
func (s *CreateDatasetInput) SetFormatOptions(v *FormatOptions) *CreateDatasetInput {
	s.FormatOptions = v
	return s
}

// SetInput sets the Input field's value.
func (s *CreateDatasetInput) SetInput(v *Input) *CreateDatasetInput {
	s.Input = v
	return s
}

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

// SetPathOptions sets the PathOptions field's value.
func (s *CreateDatasetInput) SetPathOptions(v *PathOptions) *CreateDatasetInput {
	s.PathOptions = v
	return s
}

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

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

	// The name of the dataset that you created.
	//
	// Name is a required field
	Name *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 CreateDatasetOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// Configuration for profile jobs. Used to select columns, do evaluations, and
	// override default parameters of evaluations. When configuration is null, the
	// profile job will run with default settings.
	Configuration *ProfileConfiguration `type:"structure"`

	// The name of the dataset that this job is to act upon.
	//
	// DatasetName is a required field
	DatasetName *string `min:"1" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of an encryption key that is used to protect
	// the job.
	EncryptionKeyArn *string `min:"20" type:"string"`

	// The encryption mode for the job, which can be one of the following:
	//
	//    * SSE-KMS - SSE-KMS - Server-side encryption with KMS-managed keys.
	//
	//    * SSE-S3 - Server-side encryption with keys managed by Amazon S3.
	EncryptionMode *string `type:"string" enum:"EncryptionMode"`

	// Sample configuration for profile jobs only. Determines the number of rows
	// on which the profile job will be executed. If a JobSample value is not provided,
	// the default value will be used. The default value is CUSTOM_ROWS for the
	// mode parameter and 20000 for the size parameter.
	JobSample *JobSample `type:"structure"`

	// Enables or disables Amazon CloudWatch logging for the job. If logging is
	// enabled, CloudWatch writes one log stream for each job run.
	LogSubscription *string `type:"string" enum:"LogSubscription"`

	// The maximum number of nodes that DataBrew can use when the job processes
	// data.
	MaxCapacity *int64 `type:"integer"`

	// The maximum number of times to retry the job after a job run fails.
	MaxRetries *int64 `type:"integer"`

	// The name of the job to be created. Valid characters are alphanumeric (A-Z,
	// a-z, 0-9), hyphen (-), period (.), and space.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// Represents an Amazon S3 location (bucket name, bucket owner, and object key)
	// where DataBrew can read input data, or write output from a job.
	//
	// OutputLocation is a required field
	OutputLocation *S3Location `type:"structure" required:"true"`

	// The Amazon Resource Name (ARN) of the Identity and Access Management (IAM)
	// role to be assumed when DataBrew runs the job.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// Metadata tags to apply to this job.
	Tags map[string]*string `min:"1" type:"map"`

	// The job's timeout in minutes. A job that attempts to run longer than this
	// timeout period ends with a status of TIMEOUT.
	Timeout *int64 `type:"integer"`

	// List of validation configurations that are applied to the profile job.
	ValidationConfigurations []*ValidationConfiguration `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 CreateProfileJobInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetConfiguration sets the Configuration field's value.
func (s *CreateProfileJobInput) SetConfiguration(v *ProfileConfiguration) *CreateProfileJobInput {
	s.Configuration = v
	return s
}

// SetDatasetName sets the DatasetName field's value.
func (s *CreateProfileJobInput) SetDatasetName(v string) *CreateProfileJobInput {
	s.DatasetName = &v
	return s
}

// SetEncryptionKeyArn sets the EncryptionKeyArn field's value.
func (s *CreateProfileJobInput) SetEncryptionKeyArn(v string) *CreateProfileJobInput {
	s.EncryptionKeyArn = &v
	return s
}

// SetEncryptionMode sets the EncryptionMode field's value.
func (s *CreateProfileJobInput) SetEncryptionMode(v string) *CreateProfileJobInput {
	s.EncryptionMode = &v
	return s
}

// SetJobSample sets the JobSample field's value.
func (s *CreateProfileJobInput) SetJobSample(v *JobSample) *CreateProfileJobInput {
	s.JobSample = v
	return s
}

// SetLogSubscription sets the LogSubscription field's value.
func (s *CreateProfileJobInput) SetLogSubscription(v string) *CreateProfileJobInput {
	s.LogSubscription = &v
	return s
}

// SetMaxCapacity sets the MaxCapacity field's value.
func (s *CreateProfileJobInput) SetMaxCapacity(v int64) *CreateProfileJobInput {
	s.MaxCapacity = &v
	return s
}

// SetMaxRetries sets the MaxRetries field's value.
func (s *CreateProfileJobInput) SetMaxRetries(v int64) *CreateProfileJobInput {
	s.MaxRetries = &v
	return s
}

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

// SetOutputLocation sets the OutputLocation field's value.
func (s *CreateProfileJobInput) SetOutputLocation(v *S3Location) *CreateProfileJobInput {
	s.OutputLocation = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateProfileJobInput) SetRoleArn(v string) *CreateProfileJobInput {
	s.RoleArn = &v
	return s
}

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

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

// SetValidationConfigurations sets the ValidationConfigurations field's value.
func (s *CreateProfileJobInput) SetValidationConfigurations(v []*ValidationConfiguration) *CreateProfileJobInput {
	s.ValidationConfigurations = v
	return s
}

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

	// The name of the job that was created.
	//
	// Name is a required field
	Name *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 CreateProfileJobOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// The name of an existing dataset to associate this project with.
	//
	// DatasetName is a required field
	DatasetName *string `min:"1" type:"string" required:"true"`

	// A unique name for the new project. Valid characters are alphanumeric (A-Z,
	// a-z, 0-9), hyphen (-), period (.), and space.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// The name of an existing recipe to associate with the project.
	//
	// RecipeName is a required field
	RecipeName *string `min:"1" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the Identity and Access Management (IAM)
	// role to be assumed for this request.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// Represents the sample size and sampling type for DataBrew to use for interactive
	// data analysis.
	Sample *Sample `type:"structure"`

	// Metadata tags to apply to this project.
	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 CreateProjectInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDatasetName sets the DatasetName field's value.
func (s *CreateProjectInput) SetDatasetName(v string) *CreateProjectInput {
	s.DatasetName = &v
	return s
}

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

// SetRecipeName sets the RecipeName field's value.
func (s *CreateProjectInput) SetRecipeName(v string) *CreateProjectInput {
	s.RecipeName = &v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateProjectInput) SetRoleArn(v string) *CreateProjectInput {
	s.RoleArn = &v
	return s
}

// SetSample sets the Sample field's value.
func (s *CreateProjectInput) SetSample(v *Sample) *CreateProjectInput {
	s.Sample = v
	return s
}

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

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

	// The name of the project that you created.
	//
	// Name is a required field
	Name *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 CreateProjectOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// A description for the recipe.
	Description *string `type:"string"`

	// A unique name for the recipe. Valid characters are alphanumeric (A-Z, a-z,
	// 0-9), hyphen (-), period (.), and space.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// An array containing the steps to be performed by the recipe. Each recipe
	// step consists of one recipe action and (optionally) an array of condition
	// expressions.
	//
	// Steps is a required field
	Steps []*RecipeStep `type:"list" required:"true"`

	// Metadata tags to apply to this recipe.
	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 CreateRecipeInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

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

// SetSteps sets the Steps field's value.
func (s *CreateRecipeInput) SetSteps(v []*RecipeStep) *CreateRecipeInput {
	s.Steps = v
	return s
}

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

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

	// One or more artifacts that represent the Glue Data Catalog output from running
	// the job.
	DataCatalogOutputs []*DataCatalogOutput_ `min:"1" type:"list"`

	// Represents a list of JDBC database output objects which defines the output
	// destination for a DataBrew recipe job to write to.
	DatabaseOutputs []*DatabaseOutput_ `min:"1" type:"list"`

	// The name of the dataset that this job processes.
	DatasetName *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of an encryption key that is used to protect
	// the job.
	EncryptionKeyArn *string `min:"20" type:"string"`

	// The encryption mode for the job, which can be one of the following:
	//
	//    * SSE-KMS - Server-side encryption with keys managed by KMS.
	//
	//    * SSE-S3 - Server-side encryption with keys managed by Amazon S3.
	EncryptionMode *string `type:"string" enum:"EncryptionMode"`

	// Enables or disables Amazon CloudWatch logging for the job. If logging is
	// enabled, CloudWatch writes one log stream for each job run.
	LogSubscription *string `type:"string" enum:"LogSubscription"`

	// The maximum number of nodes that DataBrew can consume when the job processes
	// data.
	MaxCapacity *int64 `type:"integer"`

	// The maximum number of times to retry the job after a job run fails.
	MaxRetries *int64 `type:"integer"`

	// A unique name for the job. Valid characters are alphanumeric (A-Z, a-z, 0-9),
	// hyphen (-), period (.), and space.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// One or more artifacts that represent the output from running the job.
	Outputs []*Output `min:"1" type:"list"`

	// Either the name of an existing project, or a combination of a recipe and
	// a dataset to associate with the recipe.
	ProjectName *string `min:"1" type:"string"`

	// Represents the name and version of a DataBrew recipe.
	RecipeReference *RecipeReference `type:"structure"`

	// The Amazon Resource Name (ARN) of the Identity and Access Management (IAM)
	// role to be assumed when DataBrew runs the job.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// Metadata tags to apply to this job.
	Tags map[string]*string `min:"1" type:"map"`

	// The job's timeout in minutes. A job that attempts to run longer than this
	// timeout period ends with a status of TIMEOUT.
	Timeout *int64 `type:"integer"`
}

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

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

// Validate inspects the fields of the type to determine if they are valid.
func (s *CreateRecipeJobInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "CreateRecipeJobInput"}
	if s.DataCatalogOutputs != nil && len(s.DataCatalogOutputs) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DataCatalogOutputs", 1))
	}
	if s.DatabaseOutputs != nil && len(s.DatabaseOutputs) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DatabaseOutputs", 1))
	}
	if s.DatasetName != nil && len(*s.DatasetName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DatasetName", 1))
	}
	if s.EncryptionKeyArn != nil && len(*s.EncryptionKeyArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("EncryptionKeyArn", 20))
	}
	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.Outputs != nil && len(s.Outputs) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Outputs", 1))
	}
	if s.ProjectName != nil && len(*s.ProjectName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ProjectName", 1))
	}
	if s.RoleArn == nil {
		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
	}
	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
	}
	if s.Tags != nil && len(s.Tags) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
	}
	if s.DataCatalogOutputs != nil {
		for i, v := range s.DataCatalogOutputs {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DataCatalogOutputs", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.DatabaseOutputs != nil {
		for i, v := range s.DatabaseOutputs {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DatabaseOutputs", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.Outputs != nil {
		for i, v := range s.Outputs {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Outputs", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.RecipeReference != nil {
		if err := s.RecipeReference.Validate(); err != nil {
			invalidParams.AddNested("RecipeReference", err.(request.ErrInvalidParams))
		}
	}

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

// SetDataCatalogOutputs sets the DataCatalogOutputs field's value.
func (s *CreateRecipeJobInput) SetDataCatalogOutputs(v []*DataCatalogOutput_) *CreateRecipeJobInput {
	s.DataCatalogOutputs = v
	return s
}

// SetDatabaseOutputs sets the DatabaseOutputs field's value.
func (s *CreateRecipeJobInput) SetDatabaseOutputs(v []*DatabaseOutput_) *CreateRecipeJobInput {
	s.DatabaseOutputs = v
	return s
}

// SetDatasetName sets the DatasetName field's value.
func (s *CreateRecipeJobInput) SetDatasetName(v string) *CreateRecipeJobInput {
	s.DatasetName = &v
	return s
}

// SetEncryptionKeyArn sets the EncryptionKeyArn field's value.
func (s *CreateRecipeJobInput) SetEncryptionKeyArn(v string) *CreateRecipeJobInput {
	s.EncryptionKeyArn = &v
	return s
}

// SetEncryptionMode sets the EncryptionMode field's value.
func (s *CreateRecipeJobInput) SetEncryptionMode(v string) *CreateRecipeJobInput {
	s.EncryptionMode = &v
	return s
}

// SetLogSubscription sets the LogSubscription field's value.
func (s *CreateRecipeJobInput) SetLogSubscription(v string) *CreateRecipeJobInput {
	s.LogSubscription = &v
	return s
}

// SetMaxCapacity sets the MaxCapacity field's value.
func (s *CreateRecipeJobInput) SetMaxCapacity(v int64) *CreateRecipeJobInput {
	s.MaxCapacity = &v
	return s
}

// SetMaxRetries sets the MaxRetries field's value.
func (s *CreateRecipeJobInput) SetMaxRetries(v int64) *CreateRecipeJobInput {
	s.MaxRetries = &v
	return s
}

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

// SetOutputs sets the Outputs field's value.
func (s *CreateRecipeJobInput) SetOutputs(v []*Output) *CreateRecipeJobInput {
	s.Outputs = v
	return s
}

// SetProjectName sets the ProjectName field's value.
func (s *CreateRecipeJobInput) SetProjectName(v string) *CreateRecipeJobInput {
	s.ProjectName = &v
	return s
}

// SetRecipeReference sets the RecipeReference field's value.
func (s *CreateRecipeJobInput) SetRecipeReference(v *RecipeReference) *CreateRecipeJobInput {
	s.RecipeReference = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *CreateRecipeJobInput) SetRoleArn(v string) *CreateRecipeJobInput {
	s.RoleArn = &v
	return s
}

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

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

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

	// The name of the job that you created.
	//
	// Name is a required field
	Name *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 CreateRecipeJobOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// The name of the recipe that you created.
	//
	// Name is a required field
	Name *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 CreateRecipeOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

	// The name of the ruleset to be created. Valid characters are alphanumeric
	// (A-Z, a-z, 0-9), hyphen (-), period (.), and space.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// A list of rules that are defined with the ruleset. A rule includes one or
	// more checks to be validated on a DataBrew dataset.
	//
	// Rules is a required field
	Rules []*Rule `min:"1" type:"list" required:"true"`

	// Metadata tags to apply to the ruleset.
	Tags map[string]*string `min:"1" type:"map"`

	// The Amazon Resource Name (ARN) of a resource (dataset) that the ruleset is
	// associated with.
	//
	// TargetArn is a required field
	TargetArn *string `min:"20" 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 CreateRulesetInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

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

// SetRules sets the Rules field's value.
func (s *CreateRulesetInput) SetRules(v []*Rule) *CreateRulesetInput {
	s.Rules = v
	return s
}

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

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

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

	// The unique name of the created ruleset.
	//
	// Name is a required field
	Name *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 CreateRulesetOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// The date or dates and time or times when the jobs are to be run. For more
	// information, see Cron expressions (https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html)
	// in the Glue DataBrew Developer Guide.
	//
	// CronExpression is a required field
	CronExpression *string `min:"1" type:"string" required:"true"`

	// The name or names of one or more jobs to be run.
	JobNames []*string `type:"list"`

	// A unique name for the schedule. Valid characters are alphanumeric (A-Z, a-z,
	// 0-9), hyphen (-), period (.), and space.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// Metadata tags to apply to this schedule.
	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 CreateScheduleInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetCronExpression sets the CronExpression field's value.
func (s *CreateScheduleInput) SetCronExpression(v string) *CreateScheduleInput {
	s.CronExpression = &v
	return s
}

// SetJobNames sets the JobNames field's value.
func (s *CreateScheduleInput) SetJobNames(v []*string) *CreateScheduleInput {
	s.JobNames = v
	return s
}

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

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

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

	// The name of the schedule that was created.
	//
	// Name is a required field
	Name *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 CreateScheduleOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

// Represents a set of options that define how DataBrew will read a comma-separated
// value (CSV) file when creating a dataset from that file.
type CsvOptions struct {
	_ struct{} `type:"structure"`

	// A single character that specifies the delimiter being used in the CSV file.
	Delimiter *string `min:"1" type:"string"`

	// A variable that specifies whether the first row in the file is parsed as
	// the header. If this value is false, column names are auto-generated.
	HeaderRow *bool `type:"boolean"`
}

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

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

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

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

// SetDelimiter sets the Delimiter field's value.
func (s *CsvOptions) SetDelimiter(v string) *CsvOptions {
	s.Delimiter = &v
	return s
}

// SetHeaderRow sets the HeaderRow field's value.
func (s *CsvOptions) SetHeaderRow(v bool) *CsvOptions {
	s.HeaderRow = &v
	return s
}

// Represents a set of options that define how DataBrew will write a comma-separated
// value (CSV) file.
type CsvOutputOptions struct {
	_ struct{} `type:"structure"`

	// A single character that specifies the delimiter used to create CSV job output.
	Delimiter *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 CsvOutputOptions) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDelimiter sets the Delimiter field's value.
func (s *CsvOutputOptions) SetDelimiter(v string) *CsvOutputOptions {
	s.Delimiter = &v
	return s
}

// Represents how metadata stored in the Glue Data Catalog is defined in a DataBrew
// dataset.
type DataCatalogInputDefinition struct {
	_ struct{} `type:"structure"`

	// The unique identifier of the Amazon Web Services account that holds the Data
	// Catalog that stores the data.
	CatalogId *string `min:"1" type:"string"`

	// The name of a database in the Data Catalog.
	//
	// DatabaseName is a required field
	DatabaseName *string `min:"1" type:"string" required:"true"`

	// The name of a database table in the Data Catalog. This table corresponds
	// to a DataBrew dataset.
	//
	// TableName is a required field
	TableName *string `min:"1" type:"string" required:"true"`

	// Represents an Amazon location where DataBrew can store intermediate results.
	TempDirectory *S3Location `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 DataCatalogInputDefinition) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetCatalogId sets the CatalogId field's value.
func (s *DataCatalogInputDefinition) SetCatalogId(v string) *DataCatalogInputDefinition {
	s.CatalogId = &v
	return s
}

// SetDatabaseName sets the DatabaseName field's value.
func (s *DataCatalogInputDefinition) SetDatabaseName(v string) *DataCatalogInputDefinition {
	s.DatabaseName = &v
	return s
}

// SetTableName sets the TableName field's value.
func (s *DataCatalogInputDefinition) SetTableName(v string) *DataCatalogInputDefinition {
	s.TableName = &v
	return s
}

// SetTempDirectory sets the TempDirectory field's value.
func (s *DataCatalogInputDefinition) SetTempDirectory(v *S3Location) *DataCatalogInputDefinition {
	s.TempDirectory = v
	return s
}

// Represents options that specify how and where in the Glue Data Catalog DataBrew
// writes the output generated by recipe jobs.
type DataCatalogOutput_ struct {
	_ struct{} `type:"structure"`

	// The unique identifier of the Amazon Web Services account that holds the Data
	// Catalog that stores the data.
	CatalogId *string `min:"1" type:"string"`

	// The name of a database in the Data Catalog.
	//
	// DatabaseName is a required field
	DatabaseName *string `min:"1" type:"string" required:"true"`

	// Represents options that specify how and where DataBrew writes the database
	// output generated by recipe jobs.
	DatabaseOptions *DatabaseTableOutputOptions `type:"structure"`

	// A value that, if true, means that any data in the location specified for
	// output is overwritten with new output. Not supported with DatabaseOptions.
	Overwrite *bool `type:"boolean"`

	// Represents options that specify how and where DataBrew writes the Amazon
	// S3 output generated by recipe jobs.
	S3Options *S3TableOutputOptions `type:"structure"`

	// The name of a table in the Data Catalog.
	//
	// TableName is a required field
	TableName *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 DataCatalogOutput_) String() string {
	return awsutil.Prettify(s)
}

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

// Validate inspects the fields of the type to determine if they are valid.
func (s *DataCatalogOutput_) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DataCatalogOutput_"}
	if s.CatalogId != nil && len(*s.CatalogId) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("CatalogId", 1))
	}
	if s.DatabaseName == nil {
		invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
	}
	if s.DatabaseName != nil && len(*s.DatabaseName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("DatabaseName", 1))
	}
	if s.TableName == nil {
		invalidParams.Add(request.NewErrParamRequired("TableName"))
	}
	if s.TableName != nil && len(*s.TableName) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TableName", 1))
	}
	if s.DatabaseOptions != nil {
		if err := s.DatabaseOptions.Validate(); err != nil {
			invalidParams.AddNested("DatabaseOptions", err.(request.ErrInvalidParams))
		}
	}
	if s.S3Options != nil {
		if err := s.S3Options.Validate(); err != nil {
			invalidParams.AddNested("S3Options", err.(request.ErrInvalidParams))
		}
	}

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

// SetCatalogId sets the CatalogId field's value.
func (s *DataCatalogOutput_) SetCatalogId(v string) *DataCatalogOutput_ {
	s.CatalogId = &v
	return s
}

// SetDatabaseName sets the DatabaseName field's value.
func (s *DataCatalogOutput_) SetDatabaseName(v string) *DataCatalogOutput_ {
	s.DatabaseName = &v
	return s
}

// SetDatabaseOptions sets the DatabaseOptions field's value.
func (s *DataCatalogOutput_) SetDatabaseOptions(v *DatabaseTableOutputOptions) *DataCatalogOutput_ {
	s.DatabaseOptions = v
	return s
}

// SetOverwrite sets the Overwrite field's value.
func (s *DataCatalogOutput_) SetOverwrite(v bool) *DataCatalogOutput_ {
	s.Overwrite = &v
	return s
}

// SetS3Options sets the S3Options field's value.
func (s *DataCatalogOutput_) SetS3Options(v *S3TableOutputOptions) *DataCatalogOutput_ {
	s.S3Options = v
	return s
}

// SetTableName sets the TableName field's value.
func (s *DataCatalogOutput_) SetTableName(v string) *DataCatalogOutput_ {
	s.TableName = &v
	return s
}

// Connection information for dataset input files stored in a database.
type DatabaseInputDefinition struct {
	_ struct{} `type:"structure"`

	// The table within the target database.
	DatabaseTableName *string `min:"1" type:"string"`

	// The Glue Connection that stores the connection information for the target
	// database.
	//
	// GlueConnectionName is a required field
	GlueConnectionName *string `min:"1" type:"string" required:"true"`

	// Custom SQL to run against the provided Glue connection. This SQL will be
	// used as the input for DataBrew projects and jobs.
	QueryString *string `min:"1" type:"string"`

	// Represents an Amazon S3 location (bucket name, bucket owner, and object key)
	// where DataBrew can read input data, or write output from a job.
	TempDirectory *S3Location `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 DatabaseInputDefinition) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDatabaseTableName sets the DatabaseTableName field's value.
func (s *DatabaseInputDefinition) SetDatabaseTableName(v string) *DatabaseInputDefinition {
	s.DatabaseTableName = &v
	return s
}

// SetGlueConnectionName sets the GlueConnectionName field's value.
func (s *DatabaseInputDefinition) SetGlueConnectionName(v string) *DatabaseInputDefinition {
	s.GlueConnectionName = &v
	return s
}

// SetQueryString sets the QueryString field's value.
func (s *DatabaseInputDefinition) SetQueryString(v string) *DatabaseInputDefinition {
	s.QueryString = &v
	return s
}

// SetTempDirectory sets the TempDirectory field's value.
func (s *DatabaseInputDefinition) SetTempDirectory(v *S3Location) *DatabaseInputDefinition {
	s.TempDirectory = v
	return s
}

// Represents a JDBC database output object which defines the output destination
// for a DataBrew recipe job to write into.
type DatabaseOutput_ struct {
	_ struct{} `type:"structure"`

	// Represents options that specify how and where DataBrew writes the database
	// output generated by recipe jobs.
	//
	// DatabaseOptions is a required field
	DatabaseOptions *DatabaseTableOutputOptions `type:"structure" required:"true"`

	// The output mode to write into the database. Currently supported option: NEW_TABLE.
	DatabaseOutputMode *string `type:"string" enum:"DatabaseOutputMode"`

	// The Glue connection that stores the connection information for the target
	// database.
	//
	// GlueConnectionName is a required field
	GlueConnectionName *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 DatabaseOutput_) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDatabaseOptions sets the DatabaseOptions field's value.
func (s *DatabaseOutput_) SetDatabaseOptions(v *DatabaseTableOutputOptions) *DatabaseOutput_ {
	s.DatabaseOptions = v
	return s
}

// SetDatabaseOutputMode sets the DatabaseOutputMode field's value.
func (s *DatabaseOutput_) SetDatabaseOutputMode(v string) *DatabaseOutput_ {
	s.DatabaseOutputMode = &v
	return s
}

// SetGlueConnectionName sets the GlueConnectionName field's value.
func (s *DatabaseOutput_) SetGlueConnectionName(v string) *DatabaseOutput_ {
	s.GlueConnectionName = &v
	return s
}

// Represents options that specify how and where DataBrew writes the database
// output generated by recipe jobs.
type DatabaseTableOutputOptions struct {
	_ struct{} `type:"structure"`

	// A prefix for the name of a table DataBrew will create in the database.
	//
	// TableName is a required field
	TableName *string `min:"1" type:"string" required:"true"`

	// Represents an Amazon S3 location (bucket name and object key) where DataBrew
	// can store intermediate results.
	TempDirectory *S3Location `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 DatabaseTableOutputOptions) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetTableName sets the TableName field's value.
func (s *DatabaseTableOutputOptions) SetTableName(v string) *DatabaseTableOutputOptions {
	s.TableName = &v
	return s
}

// SetTempDirectory sets the TempDirectory field's value.
func (s *DatabaseTableOutputOptions) SetTempDirectory(v *S3Location) *DatabaseTableOutputOptions {
	s.TempDirectory = v
	return s
}

// Represents a dataset that can be processed by DataBrew.
type Dataset struct {
	_ struct{} `type:"structure"`

	// The ID of the Amazon Web Services account that owns the dataset.
	AccountId *string `type:"string"`

	// The date and time that the dataset was created.
	CreateDate *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the user who created the dataset.
	CreatedBy *string `type:"string"`

	// The file format of a dataset that is created from an Amazon S3 file or folder.
	Format *string `type:"string" enum:"InputFormat"`

	// A set of options that define how DataBrew interprets the data in the dataset.
	FormatOptions *FormatOptions `type:"structure"`

	// Information on how DataBrew can find the dataset, in either the Glue Data
	// Catalog or Amazon S3.
	//
	// Input is a required field
	Input *Input `type:"structure" required:"true"`

	// The Amazon Resource Name (ARN) of the user who last modified the dataset.
	LastModifiedBy *string `type:"string"`

	// The last modification date and time of the dataset.
	LastModifiedDate *time.Time `type:"timestamp"`

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

	// A set of options that defines how DataBrew interprets an Amazon S3 path of
	// the dataset.
	PathOptions *PathOptions `type:"structure"`

	// The unique Amazon Resource Name (ARN) for the dataset.
	ResourceArn *string `min:"20" type:"string"`

	// The location of the data for the dataset, either Amazon S3 or the Glue Data
	// Catalog.
	Source *string `type:"string" enum:"Source"`

	// Metadata tags that have been applied to the dataset.
	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 Dataset) String() string {
	return awsutil.Prettify(s)
}

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

// SetAccountId sets the AccountId field's value.
func (s *Dataset) SetAccountId(v string) *Dataset {
	s.AccountId = &v
	return s
}

// SetCreateDate sets the CreateDate field's value.
func (s *Dataset) SetCreateDate(v time.Time) *Dataset {
	s.CreateDate = &v
	return s
}

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

// SetFormat sets the Format field's value.
func (s *Dataset) SetFormat(v string) *Dataset {
	s.Format = &v
	return s
}

// SetFormatOptions sets the FormatOptions field's value.
func (s *Dataset) SetFormatOptions(v *FormatOptions) *Dataset {
	s.FormatOptions = v
	return s
}

// SetInput sets the Input field's value.
func (s *Dataset) SetInput(v *Input) *Dataset {
	s.Input = v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *Dataset) SetLastModifiedBy(v string) *Dataset {
	s.LastModifiedBy = &v
	return s
}

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

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

// SetPathOptions sets the PathOptions field's value.
func (s *Dataset) SetPathOptions(v *PathOptions) *Dataset {
	s.PathOptions = v
	return s
}

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

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

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

// Represents a dataset parameter that defines type and conditions for a parameter
// in the Amazon S3 path of the dataset.
type DatasetParameter struct {
	_ struct{} `type:"structure"`

	// Optional boolean value that defines whether the captured value of this parameter
	// should be used to create a new column in a dataset.
	CreateColumn *bool `type:"boolean"`

	// Additional parameter options such as a format and a timezone. Required for
	// datetime parameters.
	DatetimeOptions *DatetimeOptions `type:"structure"`

	// The optional filter expression structure to apply additional matching criteria
	// to the parameter.
	Filter *FilterExpression `type:"structure"`

	// The name of the parameter that is used in the dataset's Amazon S3 path.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// The type of the dataset parameter, can be one of a 'String', 'Number' or
	// 'Datetime'.
	//
	// Type is a required field
	Type *string `type:"string" required:"true" enum:"ParameterType"`
}

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

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

// Validate inspects the fields of the type to determine if they are valid.
func (s *DatasetParameter) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "DatasetParameter"}
	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.Type == nil {
		invalidParams.Add(request.NewErrParamRequired("Type"))
	}
	if s.DatetimeOptions != nil {
		if err := s.DatetimeOptions.Validate(); err != nil {
			invalidParams.AddNested("DatetimeOptions", err.(request.ErrInvalidParams))
		}
	}
	if s.Filter != nil {
		if err := s.Filter.Validate(); err != nil {
			invalidParams.AddNested("Filter", err.(request.ErrInvalidParams))
		}
	}

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

// SetCreateColumn sets the CreateColumn field's value.
func (s *DatasetParameter) SetCreateColumn(v bool) *DatasetParameter {
	s.CreateColumn = &v
	return s
}

// SetDatetimeOptions sets the DatetimeOptions field's value.
func (s *DatasetParameter) SetDatetimeOptions(v *DatetimeOptions) *DatasetParameter {
	s.DatetimeOptions = v
	return s
}

// SetFilter sets the Filter field's value.
func (s *DatasetParameter) SetFilter(v *FilterExpression) *DatasetParameter {
	s.Filter = v
	return s
}

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

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

// Represents additional options for correct interpretation of datetime parameters
// used in the Amazon S3 path of a dataset.
type DatetimeOptions struct {
	_ struct{} `type:"structure"`

	// Required option, that defines the datetime format used for a date parameter
	// in the Amazon S3 path. Should use only supported datetime specifiers and
	// separation characters, all literal a-z or A-Z characters should be escaped
	// with single quotes. E.g. "MM.dd.yyyy-'at'-HH:mm".
	//
	// Format is a required field
	Format *string `min:"2" type:"string" required:"true"`

	// Optional value for a non-US locale code, needed for correct interpretation
	// of some date formats.
	LocaleCode *string `min:"2" type:"string"`

	// Optional value for a timezone offset of the datetime parameter value in the
	// Amazon S3 path. Shouldn't be used if Format for this parameter includes timezone
	// fields. If no offset specified, UTC is assumed.
	TimezoneOffset *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 DatetimeOptions) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetFormat sets the Format field's value.
func (s *DatetimeOptions) SetFormat(v string) *DatetimeOptions {
	s.Format = &v
	return s
}

// SetLocaleCode sets the LocaleCode field's value.
func (s *DatetimeOptions) SetLocaleCode(v string) *DatetimeOptions {
	s.LocaleCode = &v
	return s
}

// SetTimezoneOffset sets the TimezoneOffset field's value.
func (s *DatetimeOptions) SetTimezoneOffset(v string) *DatetimeOptions {
	s.TimezoneOffset = &v
	return s
}

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

	// The name of the dataset to be deleted.
	//
	// 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 DeleteDatasetInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// The name of the dataset that you deleted.
	//
	// Name is a required field
	Name *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 DeleteDatasetOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// The name of the job to be deleted.
	//
	// 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 DeleteJobInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// The name of the job that you deleted.
	//
	// Name is a required field
	Name *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 DeleteJobOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// The name of the project to be deleted.
	//
	// 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 DeleteProjectInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// The name of the project that you deleted.
	//
	// Name is a required field
	Name *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 DeleteProjectOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

	// The version of the recipe to be deleted. You can specify a numeric versions
	// (X.Y) or LATEST_WORKING. LATEST_PUBLISHED is not supported.
	//
	// RecipeVersion is a required field
	RecipeVersion *string `location:"uri" locationName:"recipeVersion" 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 DeleteRecipeVersionInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetRecipeVersion sets the RecipeVersion field's value.
func (s *DeleteRecipeVersionInput) SetRecipeVersion(v string) *DeleteRecipeVersionInput {
	s.RecipeVersion = &v
	return s
}

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

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

	// The version of the recipe that was deleted.
	//
	// RecipeVersion is a required field
	RecipeVersion *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 DeleteRecipeVersionOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetRecipeVersion sets the RecipeVersion field's value.
func (s *DeleteRecipeVersionOutput) SetRecipeVersion(v string) *DeleteRecipeVersionOutput {
	s.RecipeVersion = &v
	return s
}

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

	// The name of the ruleset to be deleted.
	//
	// 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 DeleteRulesetInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// The name of the deleted ruleset.
	//
	// Name is a required field
	Name *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 DeleteRulesetOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// The name of the schedule to be deleted.
	//
	// 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 DeleteScheduleInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// The name of the schedule that was deleted.
	//
	// Name is a required field
	Name *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 DeleteScheduleOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// The name of the dataset to be described.
	//
	// 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 DescribeDatasetInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// The date and time that the dataset was created.
	CreateDate *time.Time `type:"timestamp"`

	// The identifier (user name) of the user who created the dataset.
	CreatedBy *string `type:"string"`

	// The file format of a dataset that is created from an Amazon S3 file or folder.
	Format *string `type:"string" enum:"InputFormat"`

	// Represents a set of options that define the structure of either comma-separated
	// value (CSV), Excel, or JSON input.
	FormatOptions *FormatOptions `type:"structure"`

	// Represents information on how DataBrew can find data, in either the Glue
	// Data Catalog or Amazon S3.
	//
	// Input is a required field
	Input *Input `type:"structure" required:"true"`

	// The identifier (user name) of the user who last modified the dataset.
	LastModifiedBy *string `type:"string"`

	// The date and time that the dataset was last modified.
	LastModifiedDate *time.Time `type:"timestamp"`

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

	// A set of options that defines how DataBrew interprets an Amazon S3 path of
	// the dataset.
	PathOptions *PathOptions `type:"structure"`

	// The Amazon Resource Name (ARN) of the dataset.
	ResourceArn *string `min:"20" type:"string"`

	// The location of the data for this dataset, Amazon S3 or the Glue Data Catalog.
	Source *string `type:"string" enum:"Source"`

	// Metadata tags associated with this dataset.
	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 DescribeDatasetOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetCreateDate sets the CreateDate field's value.
func (s *DescribeDatasetOutput) SetCreateDate(v time.Time) *DescribeDatasetOutput {
	s.CreateDate = &v
	return s
}

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

// SetFormat sets the Format field's value.
func (s *DescribeDatasetOutput) SetFormat(v string) *DescribeDatasetOutput {
	s.Format = &v
	return s
}

// SetFormatOptions sets the FormatOptions field's value.
func (s *DescribeDatasetOutput) SetFormatOptions(v *FormatOptions) *DescribeDatasetOutput {
	s.FormatOptions = v
	return s
}

// SetInput sets the Input field's value.
func (s *DescribeDatasetOutput) SetInput(v *Input) *DescribeDatasetOutput {
	s.Input = v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *DescribeDatasetOutput) SetLastModifiedBy(v string) *DescribeDatasetOutput {
	s.LastModifiedBy = &v
	return s
}

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

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

// SetPathOptions sets the PathOptions field's value.
func (s *DescribeDatasetOutput) SetPathOptions(v *PathOptions) *DescribeDatasetOutput {
	s.PathOptions = v
	return s
}

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

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

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

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

	// The name of the job to be described.
	//
	// 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 DescribeJobInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// The date and time that the job was created.
	CreateDate *time.Time `type:"timestamp"`

	// The identifier (user name) of the user associated with the creation of the
	// job.
	CreatedBy *string `type:"string"`

	// One or more artifacts that represent the Glue Data Catalog output from running
	// the job.
	DataCatalogOutputs []*DataCatalogOutput_ `min:"1" type:"list"`

	// Represents a list of JDBC database output objects which defines the output
	// destination for a DataBrew recipe job to write into.
	DatabaseOutputs []*DatabaseOutput_ `min:"1" type:"list"`

	// The dataset that the job acts upon.
	DatasetName *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of an encryption key that is used to protect
	// the job.
	EncryptionKeyArn *string `min:"20" type:"string"`

	// The encryption mode for the job, which can be one of the following:
	//
	//    * SSE-KMS - Server-side encryption with keys managed by KMS.
	//
	//    * SSE-S3 - Server-side encryption with keys managed by Amazon S3.
	EncryptionMode *string `type:"string" enum:"EncryptionMode"`

	// Sample configuration for profile jobs only. Determines the number of rows
	// on which the profile job will be executed.
	JobSample *JobSample `type:"structure"`

	// The identifier (user name) of the user who last modified the job.
	LastModifiedBy *string `type:"string"`

	// The date and time that the job was last modified.
	LastModifiedDate *time.Time `type:"timestamp"`

	// Indicates whether Amazon CloudWatch logging is enabled for this job.
	LogSubscription *string `type:"string" enum:"LogSubscription"`

	// The maximum number of compute nodes that DataBrew can consume when the job
	// processes data.
	MaxCapacity *int64 `type:"integer"`

	// The maximum number of times to retry the job after a job run fails.
	MaxRetries *int64 `type:"integer"`

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

	// One or more artifacts that represent the output from running the job.
	Outputs []*Output `min:"1" type:"list"`

	// Configuration for profile jobs. Used to select columns, do evaluations, and
	// override default parameters of evaluations. When configuration is null, the
	// profile job will run with default settings.
	ProfileConfiguration *ProfileConfiguration `type:"structure"`

	// The DataBrew project associated with this job.
	ProjectName *string `min:"1" type:"string"`

	// Represents the name and version of a DataBrew recipe.
	RecipeReference *RecipeReference `type:"structure"`

	// The Amazon Resource Name (ARN) of the job.
	ResourceArn *string `min:"20" type:"string"`

	// The ARN of the Identity and Access Management (IAM) role to be assumed when
	// DataBrew runs the job.
	RoleArn *string `min:"20" type:"string"`

	// Metadata tags associated with this job.
	Tags map[string]*string `min:"1" type:"map"`

	// The job's timeout in minutes. A job that attempts to run longer than this
	// timeout period ends with a status of TIMEOUT.
	Timeout *int64 `type:"integer"`

	// The job type, which must be one of the following:
	//
	//    * PROFILE - The job analyzes the dataset to determine its size, data types,
	//    data distribution, and more.
	//
	//    * RECIPE - The job applies one or more transformations to a dataset.
	Type *string `type:"string" enum:"JobType"`

	// List of validation configurations that are applied to the profile job.
	ValidationConfigurations []*ValidationConfiguration `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 DescribeJobOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetCreateDate sets the CreateDate field's value.
func (s *DescribeJobOutput) SetCreateDate(v time.Time) *DescribeJobOutput {
	s.CreateDate = &v
	return s
}

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

// SetDataCatalogOutputs sets the DataCatalogOutputs field's value.
func (s *DescribeJobOutput) SetDataCatalogOutputs(v []*DataCatalogOutput_) *DescribeJobOutput {
	s.DataCatalogOutputs = v
	return s
}

// SetDatabaseOutputs sets the DatabaseOutputs field's value.
func (s *DescribeJobOutput) SetDatabaseOutputs(v []*DatabaseOutput_) *DescribeJobOutput {
	s.DatabaseOutputs = v
	return s
}

// SetDatasetName sets the DatasetName field's value.
func (s *DescribeJobOutput) SetDatasetName(v string) *DescribeJobOutput {
	s.DatasetName = &v
	return s
}

// SetEncryptionKeyArn sets the EncryptionKeyArn field's value.
func (s *DescribeJobOutput) SetEncryptionKeyArn(v string) *DescribeJobOutput {
	s.EncryptionKeyArn = &v
	return s
}

// SetEncryptionMode sets the EncryptionMode field's value.
func (s *DescribeJobOutput) SetEncryptionMode(v string) *DescribeJobOutput {
	s.EncryptionMode = &v
	return s
}

// SetJobSample sets the JobSample field's value.
func (s *DescribeJobOutput) SetJobSample(v *JobSample) *DescribeJobOutput {
	s.JobSample = v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *DescribeJobOutput) SetLastModifiedBy(v string) *DescribeJobOutput {
	s.LastModifiedBy = &v
	return s
}

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

// SetLogSubscription sets the LogSubscription field's value.
func (s *DescribeJobOutput) SetLogSubscription(v string) *DescribeJobOutput {
	s.LogSubscription = &v
	return s
}

// SetMaxCapacity sets the MaxCapacity field's value.
func (s *DescribeJobOutput) SetMaxCapacity(v int64) *DescribeJobOutput {
	s.MaxCapacity = &v
	return s
}

// SetMaxRetries sets the MaxRetries field's value.
func (s *DescribeJobOutput) SetMaxRetries(v int64) *DescribeJobOutput {
	s.MaxRetries = &v
	return s
}

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

// SetOutputs sets the Outputs field's value.
func (s *DescribeJobOutput) SetOutputs(v []*Output) *DescribeJobOutput {
	s.Outputs = v
	return s
}

// SetProfileConfiguration sets the ProfileConfiguration field's value.
func (s *DescribeJobOutput) SetProfileConfiguration(v *ProfileConfiguration) *DescribeJobOutput {
	s.ProfileConfiguration = v
	return s
}

// SetProjectName sets the ProjectName field's value.
func (s *DescribeJobOutput) SetProjectName(v string) *DescribeJobOutput {
	s.ProjectName = &v
	return s
}

// SetRecipeReference sets the RecipeReference field's value.
func (s *DescribeJobOutput) SetRecipeReference(v *RecipeReference) *DescribeJobOutput {
	s.RecipeReference = v
	return s
}

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

// SetRoleArn sets the RoleArn field's value.
func (s *DescribeJobOutput) SetRoleArn(v string) *DescribeJobOutput {
	s.RoleArn = &v
	return s
}

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

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

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

// SetValidationConfigurations sets the ValidationConfigurations field's value.
func (s *DescribeJobOutput) SetValidationConfigurations(v []*ValidationConfiguration) *DescribeJobOutput {
	s.ValidationConfigurations = v
	return s
}

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

	// The name of the job being processed during this run.
	//
	// Name is a required field
	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`

	// The unique identifier of the job run.
	//
	// RunId is a required field
	RunId *string `location:"uri" locationName:"runId" 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 DescribeJobRunInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetRunId sets the RunId field's value.
func (s *DescribeJobRunInput) SetRunId(v string) *DescribeJobRunInput {
	s.RunId = &v
	return s
}

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

	// The number of times that DataBrew has attempted to run the job.
	Attempt *int64 `type:"integer"`

	// The date and time when the job completed processing.
	CompletedOn *time.Time `type:"timestamp"`

	// One or more artifacts that represent the Glue Data Catalog output from running
	// the job.
	DataCatalogOutputs []*DataCatalogOutput_ `min:"1" type:"list"`

	// Represents a list of JDBC database output objects which defines the output
	// destination for a DataBrew recipe job to write into.
	DatabaseOutputs []*DatabaseOutput_ `min:"1" type:"list"`

	// The name of the dataset for the job to process.
	DatasetName *string `min:"1" type:"string"`

	// A message indicating an error (if any) that was encountered when the job
	// ran.
	ErrorMessage *string `type:"string"`

	// The amount of time, in seconds, during which the job run consumed resources.
	ExecutionTime *int64 `type:"integer"`

	// The name of the job being processed during this run.
	//
	// JobName is a required field
	JobName *string `min:"1" type:"string" required:"true"`

	// Sample configuration for profile jobs only. Determines the number of rows
	// on which the profile job will be executed. If a JobSample value is not provided,
	// the default value will be used. The default value is CUSTOM_ROWS for the
	// mode parameter and 20000 for the size parameter.
	JobSample *JobSample `type:"structure"`

	// The name of an Amazon CloudWatch log group, where the job writes diagnostic
	// messages when it runs.
	LogGroupName *string `min:"1" type:"string"`

	// The current status of Amazon CloudWatch logging for the job run.
	LogSubscription *string `type:"string" enum:"LogSubscription"`

	// One or more output artifacts from a job run.
	Outputs []*Output `min:"1" type:"list"`

	// Configuration for profile jobs. Used to select columns, do evaluations, and
	// override default parameters of evaluations. When configuration is null, the
	// profile job will run with default settings.
	ProfileConfiguration *ProfileConfiguration `type:"structure"`

	// Represents the name and version of a DataBrew recipe.
	RecipeReference *RecipeReference `type:"structure"`

	// The unique identifier of the job run.
	RunId *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of the user who started the job run.
	StartedBy *string `type:"string"`

	// The date and time when the job run began.
	StartedOn *time.Time `type:"timestamp"`

	// The current state of the job run entity itself.
	State *string `type:"string" enum:"JobRunState"`

	// List of validation configurations that are applied to the profile job.
	ValidationConfigurations []*ValidationConfiguration `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 DescribeJobRunOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetAttempt sets the Attempt field's value.
func (s *DescribeJobRunOutput) SetAttempt(v int64) *DescribeJobRunOutput {
	s.Attempt = &v
	return s
}

// SetCompletedOn sets the CompletedOn field's value.
func (s *DescribeJobRunOutput) SetCompletedOn(v time.Time) *DescribeJobRunOutput {
	s.CompletedOn = &v
	return s
}

// SetDataCatalogOutputs sets the DataCatalogOutputs field's value.
func (s *DescribeJobRunOutput) SetDataCatalogOutputs(v []*DataCatalogOutput_) *DescribeJobRunOutput {
	s.DataCatalogOutputs = v
	return s
}

// SetDatabaseOutputs sets the DatabaseOutputs field's value.
func (s *DescribeJobRunOutput) SetDatabaseOutputs(v []*DatabaseOutput_) *DescribeJobRunOutput {
	s.DatabaseOutputs = v
	return s
}

// SetDatasetName sets the DatasetName field's value.
func (s *DescribeJobRunOutput) SetDatasetName(v string) *DescribeJobRunOutput {
	s.DatasetName = &v
	return s
}

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

// SetExecutionTime sets the ExecutionTime field's value.
func (s *DescribeJobRunOutput) SetExecutionTime(v int64) *DescribeJobRunOutput {
	s.ExecutionTime = &v
	return s
}

// SetJobName sets the JobName field's value.
func (s *DescribeJobRunOutput) SetJobName(v string) *DescribeJobRunOutput {
	s.JobName = &v
	return s
}

// SetJobSample sets the JobSample field's value.
func (s *DescribeJobRunOutput) SetJobSample(v *JobSample) *DescribeJobRunOutput {
	s.JobSample = v
	return s
}

// SetLogGroupName sets the LogGroupName field's value.
func (s *DescribeJobRunOutput) SetLogGroupName(v string) *DescribeJobRunOutput {
	s.LogGroupName = &v
	return s
}

// SetLogSubscription sets the LogSubscription field's value.
func (s *DescribeJobRunOutput) SetLogSubscription(v string) *DescribeJobRunOutput {
	s.LogSubscription = &v
	return s
}

// SetOutputs sets the Outputs field's value.
func (s *DescribeJobRunOutput) SetOutputs(v []*Output) *DescribeJobRunOutput {
	s.Outputs = v
	return s
}

// SetProfileConfiguration sets the ProfileConfiguration field's value.
func (s *DescribeJobRunOutput) SetProfileConfiguration(v *ProfileConfiguration) *DescribeJobRunOutput {
	s.ProfileConfiguration = v
	return s
}

// SetRecipeReference sets the RecipeReference field's value.
func (s *DescribeJobRunOutput) SetRecipeReference(v *RecipeReference) *DescribeJobRunOutput {
	s.RecipeReference = v
	return s
}

// SetRunId sets the RunId field's value.
func (s *DescribeJobRunOutput) SetRunId(v string) *DescribeJobRunOutput {
	s.RunId = &v
	return s
}

// SetStartedBy sets the StartedBy field's value.
func (s *DescribeJobRunOutput) SetStartedBy(v string) *DescribeJobRunOutput {
	s.StartedBy = &v
	return s
}

// SetStartedOn sets the StartedOn field's value.
func (s *DescribeJobRunOutput) SetStartedOn(v time.Time) *DescribeJobRunOutput {
	s.StartedOn = &v
	return s
}

// SetState sets the State field's value.
func (s *DescribeJobRunOutput) SetState(v string) *DescribeJobRunOutput {
	s.State = &v
	return s
}

// SetValidationConfigurations sets the ValidationConfigurations field's value.
func (s *DescribeJobRunOutput) SetValidationConfigurations(v []*ValidationConfiguration) *DescribeJobRunOutput {
	s.ValidationConfigurations = v
	return s
}

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

	// The name of the project to be described.
	//
	// 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 DescribeProjectInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// The date and time that the project was created.
	CreateDate *time.Time `type:"timestamp"`

	// The identifier (user name) of the user who created the project.
	CreatedBy *string `type:"string"`

	// The dataset associated with the project.
	DatasetName *string `min:"1" type:"string"`

	// The identifier (user name) of the user who last modified the project.
	LastModifiedBy *string `type:"string"`

	// The date and time that the project was last modified.
	LastModifiedDate *time.Time `type:"timestamp"`

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

	// The date and time when the project was opened.
	OpenDate *time.Time `type:"timestamp"`

	// The identifier (user name) of the user that opened the project for use.
	OpenedBy *string `type:"string"`

	// The recipe associated with this job.
	RecipeName *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of the project.
	ResourceArn *string `min:"20" type:"string"`

	// The ARN of the Identity and Access Management (IAM) role to be assumed when
	// DataBrew runs the job.
	RoleArn *string `min:"20" type:"string"`

	// Represents the sample size and sampling type for DataBrew to use for interactive
	// data analysis.
	Sample *Sample `type:"structure"`

	// Describes the current state of the session:
	//
	//    * PROVISIONING - allocating resources for the session.
	//
	//    * INITIALIZING - getting the session ready for first use.
	//
	//    * ASSIGNED - the session is ready for use.
	SessionStatus *string `type:"string" enum:"SessionStatus"`

	// Metadata tags associated with this project.
	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 DescribeProjectOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetCreateDate sets the CreateDate field's value.
func (s *DescribeProjectOutput) SetCreateDate(v time.Time) *DescribeProjectOutput {
	s.CreateDate = &v
	return s
}

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

// SetDatasetName sets the DatasetName field's value.
func (s *DescribeProjectOutput) SetDatasetName(v string) *DescribeProjectOutput {
	s.DatasetName = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *DescribeProjectOutput) SetLastModifiedBy(v string) *DescribeProjectOutput {
	s.LastModifiedBy = &v
	return s
}

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

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

// SetOpenDate sets the OpenDate field's value.
func (s *DescribeProjectOutput) SetOpenDate(v time.Time) *DescribeProjectOutput {
	s.OpenDate = &v
	return s
}

// SetOpenedBy sets the OpenedBy field's value.
func (s *DescribeProjectOutput) SetOpenedBy(v string) *DescribeProjectOutput {
	s.OpenedBy = &v
	return s
}

// SetRecipeName sets the RecipeName field's value.
func (s *DescribeProjectOutput) SetRecipeName(v string) *DescribeProjectOutput {
	s.RecipeName = &v
	return s
}

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

// SetRoleArn sets the RoleArn field's value.
func (s *DescribeProjectOutput) SetRoleArn(v string) *DescribeProjectOutput {
	s.RoleArn = &v
	return s
}

// SetSample sets the Sample field's value.
func (s *DescribeProjectOutput) SetSample(v *Sample) *DescribeProjectOutput {
	s.Sample = v
	return s
}

// SetSessionStatus sets the SessionStatus field's value.
func (s *DescribeProjectOutput) SetSessionStatus(v string) *DescribeProjectOutput {
	s.SessionStatus = &v
	return s
}

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

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

	// The name of the recipe to be described.
	//
	// Name is a required field
	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`

	// The recipe version identifier. If this parameter isn't specified, then the
	// latest published version is returned.
	RecipeVersion *string `location:"querystring" locationName:"recipeVersion" 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 DescribeRecipeInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetRecipeVersion sets the RecipeVersion field's value.
func (s *DescribeRecipeInput) SetRecipeVersion(v string) *DescribeRecipeInput {
	s.RecipeVersion = &v
	return s
}

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

	// The date and time that the recipe was created.
	CreateDate *time.Time `type:"timestamp"`

	// The identifier (user name) of the user who created the recipe.
	CreatedBy *string `type:"string"`

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

	// The identifier (user name) of the user who last modified the recipe.
	LastModifiedBy *string `type:"string"`

	// The date and time that the recipe was last modified.
	LastModifiedDate *time.Time `type:"timestamp"`

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

	// The name of the project associated with this recipe.
	ProjectName *string `min:"1" type:"string"`

	// The identifier (user name) of the user who last published the recipe.
	PublishedBy *string `type:"string"`

	// The date and time when the recipe was last published.
	PublishedDate *time.Time `type:"timestamp"`

	// The recipe version identifier.
	RecipeVersion *string `min:"1" type:"string"`

	// The ARN of the recipe.
	ResourceArn *string `min:"20" type:"string"`

	// One or more steps to be performed by the recipe. Each step consists of an
	// action, and the conditions under which the action should succeed.
	Steps []*RecipeStep `type:"list"`

	// Metadata tags associated with this project.
	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 DescribeRecipeOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetCreateDate sets the CreateDate field's value.
func (s *DescribeRecipeOutput) SetCreateDate(v time.Time) *DescribeRecipeOutput {
	s.CreateDate = &v
	return s
}

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

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

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *DescribeRecipeOutput) SetLastModifiedBy(v string) *DescribeRecipeOutput {
	s.LastModifiedBy = &v
	return s
}

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

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

// SetProjectName sets the ProjectName field's value.
func (s *DescribeRecipeOutput) SetProjectName(v string) *DescribeRecipeOutput {
	s.ProjectName = &v
	return s
}

// SetPublishedBy sets the PublishedBy field's value.
func (s *DescribeRecipeOutput) SetPublishedBy(v string) *DescribeRecipeOutput {
	s.PublishedBy = &v
	return s
}

// SetPublishedDate sets the PublishedDate field's value.
func (s *DescribeRecipeOutput) SetPublishedDate(v time.Time) *DescribeRecipeOutput {
	s.PublishedDate = &v
	return s
}

// SetRecipeVersion sets the RecipeVersion field's value.
func (s *DescribeRecipeOutput) SetRecipeVersion(v string) *DescribeRecipeOutput {
	s.RecipeVersion = &v
	return s
}

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

// SetSteps sets the Steps field's value.
func (s *DescribeRecipeOutput) SetSteps(v []*RecipeStep) *DescribeRecipeOutput {
	s.Steps = v
	return s
}

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

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

	// The name of the ruleset to be described.
	//
	// 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 DescribeRulesetInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// The date and time that the ruleset was created.
	CreateDate *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the user who created the ruleset.
	CreatedBy *string `type:"string"`

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

	// The Amazon Resource Name (ARN) of the user who last modified the ruleset.
	LastModifiedBy *string `type:"string"`

	// The modification date and time of the ruleset.
	LastModifiedDate *time.Time `type:"timestamp"`

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

	// The Amazon Resource Name (ARN) for the ruleset.
	ResourceArn *string `min:"20" type:"string"`

	// A list of rules that are defined with the ruleset. A rule includes one or
	// more checks to be validated on a DataBrew dataset.
	Rules []*Rule `min:"1" type:"list"`

	// Metadata tags that have been applied to the ruleset.
	Tags map[string]*string `min:"1" type:"map"`

	// The Amazon Resource Name (ARN) of a resource (dataset) that the ruleset is
	// associated with.
	TargetArn *string `min:"20" 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 DescribeRulesetOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetCreateDate sets the CreateDate field's value.
func (s *DescribeRulesetOutput) SetCreateDate(v time.Time) *DescribeRulesetOutput {
	s.CreateDate = &v
	return s
}

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

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

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *DescribeRulesetOutput) SetLastModifiedBy(v string) *DescribeRulesetOutput {
	s.LastModifiedBy = &v
	return s
}

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

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

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

// SetRules sets the Rules field's value.
func (s *DescribeRulesetOutput) SetRules(v []*Rule) *DescribeRulesetOutput {
	s.Rules = v
	return s
}

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

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

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

	// The name of the schedule to be described.
	//
	// 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 DescribeScheduleInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// The date and time that the schedule was created.
	CreateDate *time.Time `type:"timestamp"`

	// The identifier (user name) of the user who created the schedule.
	CreatedBy *string `type:"string"`

	// The date or dates and time or times when the jobs are to be run for the schedule.
	// For more information, see Cron expressions (https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html)
	// in the Glue DataBrew Developer Guide.
	CronExpression *string `min:"1" type:"string"`

	// The name or names of one or more jobs to be run by using the schedule.
	JobNames []*string `type:"list"`

	// The identifier (user name) of the user who last modified the schedule.
	LastModifiedBy *string `type:"string"`

	// The date and time that the schedule was last modified.
	LastModifiedDate *time.Time `type:"timestamp"`

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

	// The Amazon Resource Name (ARN) of the schedule.
	ResourceArn *string `min:"20" type:"string"`

	// Metadata tags associated with this schedule.
	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 DescribeScheduleOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetCreateDate sets the CreateDate field's value.
func (s *DescribeScheduleOutput) SetCreateDate(v time.Time) *DescribeScheduleOutput {
	s.CreateDate = &v
	return s
}

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

// SetCronExpression sets the CronExpression field's value.
func (s *DescribeScheduleOutput) SetCronExpression(v string) *DescribeScheduleOutput {
	s.CronExpression = &v
	return s
}

// SetJobNames sets the JobNames field's value.
func (s *DescribeScheduleOutput) SetJobNames(v []*string) *DescribeScheduleOutput {
	s.JobNames = v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *DescribeScheduleOutput) SetLastModifiedBy(v string) *DescribeScheduleOutput {
	s.LastModifiedBy = &v
	return s
}

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

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

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

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

// Configuration of entity detection for a profile job. When undefined, entity
// detection is disabled.
type EntityDetectorConfiguration struct {
	_ struct{} `type:"structure"`

	// Configuration of statistics that are allowed to be run on columns that contain
	// detected entities. When undefined, no statistics will be computed on columns
	// that contain detected entities.
	AllowedStatistics []*AllowedStatistics `min:"1" type:"list"`

	// Entity types to detect. Can be any of the following:
	//
	//    * USA_SSN
	//
	//    * EMAIL
	//
	//    * USA_ITIN
	//
	//    * USA_PASSPORT_NUMBER
	//
	//    * PHONE_NUMBER
	//
	//    * USA_DRIVING_LICENSE
	//
	//    * BANK_ACCOUNT
	//
	//    * CREDIT_CARD
	//
	//    * IP_ADDRESS
	//
	//    * MAC_ADDRESS
	//
	//    * USA_DEA_NUMBER
	//
	//    * USA_HCPCS_CODE
	//
	//    * USA_NATIONAL_PROVIDER_IDENTIFIER
	//
	//    * USA_NATIONAL_DRUG_CODE
	//
	//    * USA_HEALTH_INSURANCE_CLAIM_NUMBER
	//
	//    * USA_MEDICARE_BENEFICIARY_IDENTIFIER
	//
	//    * USA_CPT_CODE
	//
	//    * PERSON_NAME
	//
	//    * DATE
	//
	// The Entity type group USA_ALL is also supported, and includes all of the
	// above entity types except PERSON_NAME and DATE.
	//
	// EntityTypes is a required field
	EntityTypes []*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 EntityDetectorConfiguration) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetAllowedStatistics sets the AllowedStatistics field's value.
func (s *EntityDetectorConfiguration) SetAllowedStatistics(v []*AllowedStatistics) *EntityDetectorConfiguration {
	s.AllowedStatistics = v
	return s
}

// SetEntityTypes sets the EntityTypes field's value.
func (s *EntityDetectorConfiguration) SetEntityTypes(v []*string) *EntityDetectorConfiguration {
	s.EntityTypes = v
	return s
}

// Represents a set of options that define how DataBrew will interpret a Microsoft
// Excel file when creating a dataset from that file.
type ExcelOptions struct {
	_ struct{} `type:"structure"`

	// A variable that specifies whether the first row in the file is parsed as
	// the header. If this value is false, column names are auto-generated.
	HeaderRow *bool `type:"boolean"`

	// One or more sheet numbers in the Excel file that will be included in the
	// dataset.
	SheetIndexes []*int64 `min:"1" type:"list"`

	// One or more named sheets in the Excel file that will be included in the dataset.
	SheetNames []*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 ExcelOptions) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetHeaderRow sets the HeaderRow field's value.
func (s *ExcelOptions) SetHeaderRow(v bool) *ExcelOptions {
	s.HeaderRow = &v
	return s
}

// SetSheetIndexes sets the SheetIndexes field's value.
func (s *ExcelOptions) SetSheetIndexes(v []*int64) *ExcelOptions {
	s.SheetIndexes = v
	return s
}

// SetSheetNames sets the SheetNames field's value.
func (s *ExcelOptions) SetSheetNames(v []*string) *ExcelOptions {
	s.SheetNames = v
	return s
}

// Represents a limit imposed on number of Amazon S3 files that should be selected
// for a dataset from a connected Amazon S3 path.
type FilesLimit struct {
	_ struct{} `type:"structure"`

	// The number of Amazon S3 files to select.
	//
	// MaxFiles is a required field
	MaxFiles *int64 `min:"1" type:"integer" required:"true"`

	// A criteria to use for Amazon S3 files sorting before their selection. By
	// default uses DESCENDING order, i.e. most recent files are selected first.
	// Another possible value is ASCENDING.
	Order *string `type:"string" enum:"Order"`

	// A criteria to use for Amazon S3 files sorting before their selection. By
	// default uses LAST_MODIFIED_DATE as a sorting criteria. Currently it's the
	// only allowed value.
	OrderedBy *string `type:"string" enum:"OrderedBy"`
}

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

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

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

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

// SetMaxFiles sets the MaxFiles field's value.
func (s *FilesLimit) SetMaxFiles(v int64) *FilesLimit {
	s.MaxFiles = &v
	return s
}

// SetOrder sets the Order field's value.
func (s *FilesLimit) SetOrder(v string) *FilesLimit {
	s.Order = &v
	return s
}

// SetOrderedBy sets the OrderedBy field's value.
func (s *FilesLimit) SetOrderedBy(v string) *FilesLimit {
	s.OrderedBy = &v
	return s
}

// Represents a structure for defining parameter conditions. Supported conditions
// are described here: Supported conditions for dynamic datasets (https://docs.aws.amazon.com/databrew/latest/dg/datasets.multiple-files.html#conditions.for.dynamic.datasets)
// in the Glue DataBrew Developer Guide.
type FilterExpression struct {
	_ struct{} `type:"structure"`

	// The expression which includes condition names followed by substitution variables,
	// possibly grouped and combined with other conditions. For example, "(starts_with
	// :prefix1 or starts_with :prefix2) and (ends_with :suffix1 or ends_with :suffix2)".
	// Substitution variables should start with ':' symbol.
	//
	// Expression is a required field
	Expression *string `min:"4" type:"string" required:"true"`

	// The map of substitution variable names to their values used in this filter
	// expression.
	//
	// ValuesMap is a required field
	ValuesMap map[string]*string `type:"map" required:"true"`
}

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

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

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

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

// SetExpression sets the Expression field's value.
func (s *FilterExpression) SetExpression(v string) *FilterExpression {
	s.Expression = &v
	return s
}

// SetValuesMap sets the ValuesMap field's value.
func (s *FilterExpression) SetValuesMap(v map[string]*string) *FilterExpression {
	s.ValuesMap = v
	return s
}

// Represents a set of options that define the structure of either comma-separated
// value (CSV), Excel, or JSON input.
type FormatOptions struct {
	_ struct{} `type:"structure"`

	// Options that define how CSV input is to be interpreted by DataBrew.
	Csv *CsvOptions `type:"structure"`

	// Options that define how Excel input is to be interpreted by DataBrew.
	Excel *ExcelOptions `type:"structure"`

	// Options that define how JSON input is to be interpreted by DataBrew.
	Json *JsonOptions `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 FormatOptions) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetCsv sets the Csv field's value.
func (s *FormatOptions) SetCsv(v *CsvOptions) *FormatOptions {
	s.Csv = v
	return s
}

// SetExcel sets the Excel field's value.
func (s *FormatOptions) SetExcel(v *ExcelOptions) *FormatOptions {
	s.Excel = v
	return s
}

// SetJson sets the Json field's value.
func (s *FormatOptions) SetJson(v *JsonOptions) *FormatOptions {
	s.Json = v
	return s
}

// Represents information on how DataBrew can find data, in either the Glue
// Data Catalog or Amazon S3.
type Input struct {
	_ struct{} `type:"structure"`

	// The Glue Data Catalog parameters for the data.
	DataCatalogInputDefinition *DataCatalogInputDefinition `type:"structure"`

	// Connection information for dataset input files stored in a database.
	DatabaseInputDefinition *DatabaseInputDefinition `type:"structure"`

	// Contains additional resource information needed for specific datasets.
	Metadata *Metadata `type:"structure"`

	// The Amazon S3 location where the data is stored.
	S3InputDefinition *S3Location `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 Input) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDataCatalogInputDefinition sets the DataCatalogInputDefinition field's value.
func (s *Input) SetDataCatalogInputDefinition(v *DataCatalogInputDefinition) *Input {
	s.DataCatalogInputDefinition = v
	return s
}

// SetDatabaseInputDefinition sets the DatabaseInputDefinition field's value.
func (s *Input) SetDatabaseInputDefinition(v *DatabaseInputDefinition) *Input {
	s.DatabaseInputDefinition = v
	return s
}

// SetMetadata sets the Metadata field's value.
func (s *Input) SetMetadata(v *Metadata) *Input {
	s.Metadata = v
	return s
}

// SetS3InputDefinition sets the S3InputDefinition field's value.
func (s *Input) SetS3InputDefinition(v *S3Location) *Input {
	s.S3InputDefinition = v
	return s
}

// An internal service failure occurred.
type InternalServerException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

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

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

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

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

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

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

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

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

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

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

// Represents all of the attributes of a DataBrew job.
type Job struct {
	_ struct{} `type:"structure"`

	// The ID of the Amazon Web Services account that owns the job.
	AccountId *string `type:"string"`

	// The date and time that the job was created.
	CreateDate *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the user who created the job.
	CreatedBy *string `type:"string"`

	// One or more artifacts that represent the Glue Data Catalog output from running
	// the job.
	DataCatalogOutputs []*DataCatalogOutput_ `min:"1" type:"list"`

	// Represents a list of JDBC database output objects which defines the output
	// destination for a DataBrew recipe job to write into.
	DatabaseOutputs []*DatabaseOutput_ `min:"1" type:"list"`

	// A dataset that the job is to process.
	DatasetName *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of an encryption key that is used to protect
	// the job output. For more information, see Encrypting data written by DataBrew
	// jobs (https://docs.aws.amazon.com/databrew/latest/dg/encryption-security-configuration.html)
	EncryptionKeyArn *string `min:"20" type:"string"`

	// The encryption mode for the job, which can be one of the following:
	//
	//    * SSE-KMS - Server-side encryption with keys managed by KMS.
	//
	//    * SSE-S3 - Server-side encryption with keys managed by Amazon S3.
	EncryptionMode *string `type:"string" enum:"EncryptionMode"`

	// A sample configuration for profile jobs only, which determines the number
	// of rows on which the profile job is run. If a JobSample value isn't provided,
	// the default value is used. The default value is CUSTOM_ROWS for the mode
	// parameter and 20,000 for the size parameter.
	JobSample *JobSample `type:"structure"`

	// The Amazon Resource Name (ARN) of the user who last modified the job.
	LastModifiedBy *string `type:"string"`

	// The modification date and time of the job.
	LastModifiedDate *time.Time `type:"timestamp"`

	// The current status of Amazon CloudWatch logging for the job.
	LogSubscription *string `type:"string" enum:"LogSubscription"`

	// The maximum number of nodes that can be consumed when the job processes data.
	MaxCapacity *int64 `type:"integer"`

	// The maximum number of times to retry the job after a job run fails.
	MaxRetries *int64 `type:"integer"`

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

	// One or more artifacts that represent output from running the job.
	Outputs []*Output `min:"1" type:"list"`

	// The name of the project that the job is associated with.
	ProjectName *string `min:"1" type:"string"`

	// A set of steps that the job runs.
	RecipeReference *RecipeReference `type:"structure"`

	// The unique Amazon Resource Name (ARN) for the job.
	ResourceArn *string `min:"20" type:"string"`

	// The Amazon Resource Name (ARN) of the role to be assumed for this job.
	RoleArn *string `min:"20" type:"string"`

	// Metadata tags that have been applied to the job.
	Tags map[string]*string `min:"1" type:"map"`

	// The job's timeout in minutes. A job that attempts to run longer than this
	// timeout period ends with a status of TIMEOUT.
	Timeout *int64 `type:"integer"`

	// The job type of the job, which must be one of the following:
	//
	//    * PROFILE - A job to analyze a dataset, to determine its size, data types,
	//    data distribution, and more.
	//
	//    * RECIPE - A job to apply one or more transformations to a dataset.
	Type *string `type:"string" enum:"JobType"`

	// List of validation configurations that are applied to the profile job.
	ValidationConfigurations []*ValidationConfiguration `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 Job) String() string {
	return awsutil.Prettify(s)
}

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

// SetAccountId sets the AccountId field's value.
func (s *Job) SetAccountId(v string) *Job {
	s.AccountId = &v
	return s
}

// SetCreateDate sets the CreateDate field's value.
func (s *Job) SetCreateDate(v time.Time) *Job {
	s.CreateDate = &v
	return s
}

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

// SetDataCatalogOutputs sets the DataCatalogOutputs field's value.
func (s *Job) SetDataCatalogOutputs(v []*DataCatalogOutput_) *Job {
	s.DataCatalogOutputs = v
	return s
}

// SetDatabaseOutputs sets the DatabaseOutputs field's value.
func (s *Job) SetDatabaseOutputs(v []*DatabaseOutput_) *Job {
	s.DatabaseOutputs = v
	return s
}

// SetDatasetName sets the DatasetName field's value.
func (s *Job) SetDatasetName(v string) *Job {
	s.DatasetName = &v
	return s
}

// SetEncryptionKeyArn sets the EncryptionKeyArn field's value.
func (s *Job) SetEncryptionKeyArn(v string) *Job {
	s.EncryptionKeyArn = &v
	return s
}

// SetEncryptionMode sets the EncryptionMode field's value.
func (s *Job) SetEncryptionMode(v string) *Job {
	s.EncryptionMode = &v
	return s
}

// SetJobSample sets the JobSample field's value.
func (s *Job) SetJobSample(v *JobSample) *Job {
	s.JobSample = v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *Job) SetLastModifiedBy(v string) *Job {
	s.LastModifiedBy = &v
	return s
}

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

// SetLogSubscription sets the LogSubscription field's value.
func (s *Job) SetLogSubscription(v string) *Job {
	s.LogSubscription = &v
	return s
}

// SetMaxCapacity sets the MaxCapacity field's value.
func (s *Job) SetMaxCapacity(v int64) *Job {
	s.MaxCapacity = &v
	return s
}

// SetMaxRetries sets the MaxRetries field's value.
func (s *Job) SetMaxRetries(v int64) *Job {
	s.MaxRetries = &v
	return s
}

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

// SetOutputs sets the Outputs field's value.
func (s *Job) SetOutputs(v []*Output) *Job {
	s.Outputs = v
	return s
}

// SetProjectName sets the ProjectName field's value.
func (s *Job) SetProjectName(v string) *Job {
	s.ProjectName = &v
	return s
}

// SetRecipeReference sets the RecipeReference field's value.
func (s *Job) SetRecipeReference(v *RecipeReference) *Job {
	s.RecipeReference = v
	return s
}

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

// SetRoleArn sets the RoleArn field's value.
func (s *Job) SetRoleArn(v string) *Job {
	s.RoleArn = &v
	return s
}

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

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

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

// SetValidationConfigurations sets the ValidationConfigurations field's value.
func (s *Job) SetValidationConfigurations(v []*ValidationConfiguration) *Job {
	s.ValidationConfigurations = v
	return s
}

// Represents one run of a DataBrew job.
type JobRun struct {
	_ struct{} `type:"structure"`

	// The number of times that DataBrew has attempted to run the job.
	Attempt *int64 `type:"integer"`

	// The date and time when the job completed processing.
	CompletedOn *time.Time `type:"timestamp"`

	// One or more artifacts that represent the Glue Data Catalog output from running
	// the job.
	DataCatalogOutputs []*DataCatalogOutput_ `min:"1" type:"list"`

	// Represents a list of JDBC database output objects which defines the output
	// destination for a DataBrew recipe job to write into.
	DatabaseOutputs []*DatabaseOutput_ `min:"1" type:"list"`

	// The name of the dataset for the job to process.
	DatasetName *string `min:"1" type:"string"`

	// A message indicating an error (if any) that was encountered when the job
	// ran.
	ErrorMessage *string `type:"string"`

	// The amount of time, in seconds, during which a job run consumed resources.
	ExecutionTime *int64 `type:"integer"`

	// The name of the job being processed during this run.
	JobName *string `min:"1" type:"string"`

	// A sample configuration for profile jobs only, which determines the number
	// of rows on which the profile job is run. If a JobSample value isn't provided,
	// the default is used. The default value is CUSTOM_ROWS for the mode parameter
	// and 20,000 for the size parameter.
	JobSample *JobSample `type:"structure"`

	// The name of an Amazon CloudWatch log group, where the job writes diagnostic
	// messages when it runs.
	LogGroupName *string `min:"1" type:"string"`

	// The current status of Amazon CloudWatch logging for the job run.
	LogSubscription *string `type:"string" enum:"LogSubscription"`

	// One or more output artifacts from a job run.
	Outputs []*Output `min:"1" type:"list"`

	// The set of steps processed by the job.
	RecipeReference *RecipeReference `type:"structure"`

	// The unique identifier of the job run.
	RunId *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of the user who initiated the job run.
	StartedBy *string `type:"string"`

	// The date and time when the job run began.
	StartedOn *time.Time `type:"timestamp"`

	// The current state of the job run entity itself.
	State *string `type:"string" enum:"JobRunState"`

	// List of validation configurations that are applied to the profile job run.
	ValidationConfigurations []*ValidationConfiguration `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 JobRun) String() string {
	return awsutil.Prettify(s)
}

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

// SetAttempt sets the Attempt field's value.
func (s *JobRun) SetAttempt(v int64) *JobRun {
	s.Attempt = &v
	return s
}

// SetCompletedOn sets the CompletedOn field's value.
func (s *JobRun) SetCompletedOn(v time.Time) *JobRun {
	s.CompletedOn = &v
	return s
}

// SetDataCatalogOutputs sets the DataCatalogOutputs field's value.
func (s *JobRun) SetDataCatalogOutputs(v []*DataCatalogOutput_) *JobRun {
	s.DataCatalogOutputs = v
	return s
}

// SetDatabaseOutputs sets the DatabaseOutputs field's value.
func (s *JobRun) SetDatabaseOutputs(v []*DatabaseOutput_) *JobRun {
	s.DatabaseOutputs = v
	return s
}

// SetDatasetName sets the DatasetName field's value.
func (s *JobRun) SetDatasetName(v string) *JobRun {
	s.DatasetName = &v
	return s
}

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

// SetExecutionTime sets the ExecutionTime field's value.
func (s *JobRun) SetExecutionTime(v int64) *JobRun {
	s.ExecutionTime = &v
	return s
}

// SetJobName sets the JobName field's value.
func (s *JobRun) SetJobName(v string) *JobRun {
	s.JobName = &v
	return s
}

// SetJobSample sets the JobSample field's value.
func (s *JobRun) SetJobSample(v *JobSample) *JobRun {
	s.JobSample = v
	return s
}

// SetLogGroupName sets the LogGroupName field's value.
func (s *JobRun) SetLogGroupName(v string) *JobRun {
	s.LogGroupName = &v
	return s
}

// SetLogSubscription sets the LogSubscription field's value.
func (s *JobRun) SetLogSubscription(v string) *JobRun {
	s.LogSubscription = &v
	return s
}

// SetOutputs sets the Outputs field's value.
func (s *JobRun) SetOutputs(v []*Output) *JobRun {
	s.Outputs = v
	return s
}

// SetRecipeReference sets the RecipeReference field's value.
func (s *JobRun) SetRecipeReference(v *RecipeReference) *JobRun {
	s.RecipeReference = v
	return s
}

// SetRunId sets the RunId field's value.
func (s *JobRun) SetRunId(v string) *JobRun {
	s.RunId = &v
	return s
}

// SetStartedBy sets the StartedBy field's value.
func (s *JobRun) SetStartedBy(v string) *JobRun {
	s.StartedBy = &v
	return s
}

// SetStartedOn sets the StartedOn field's value.
func (s *JobRun) SetStartedOn(v time.Time) *JobRun {
	s.StartedOn = &v
	return s
}

// SetState sets the State field's value.
func (s *JobRun) SetState(v string) *JobRun {
	s.State = &v
	return s
}

// SetValidationConfigurations sets the ValidationConfigurations field's value.
func (s *JobRun) SetValidationConfigurations(v []*ValidationConfiguration) *JobRun {
	s.ValidationConfigurations = v
	return s
}

// A sample configuration for profile jobs only, which determines the number
// of rows on which the profile job is run. If a JobSample value isn't provided,
// the default is used. The default value is CUSTOM_ROWS for the mode parameter
// and 20,000 for the size parameter.
type JobSample struct {
	_ struct{} `type:"structure"`

	// A value that determines whether the profile job is run on the entire dataset
	// or a specified number of rows. This value must be one of the following:
	//
	//    * FULL_DATASET - The profile job is run on the entire dataset.
	//
	//    * CUSTOM_ROWS - The profile job is run on the number of rows specified
	//    in the Size parameter.
	Mode *string `type:"string" enum:"SampleMode"`

	// The Size parameter is only required when the mode is CUSTOM_ROWS. The profile
	// job is run on the specified number of rows. The maximum value for size is
	// Long.MAX_VALUE.
	//
	// Long.MAX_VALUE = 9223372036854775807
	Size *int64 `type:"long"`
}

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

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

// SetMode sets the Mode field's value.
func (s *JobSample) SetMode(v string) *JobSample {
	s.Mode = &v
	return s
}

// SetSize sets the Size field's value.
func (s *JobSample) SetSize(v int64) *JobSample {
	s.Size = &v
	return s
}

// Represents the JSON-specific options that define how input is to be interpreted
// by Glue DataBrew.
type JsonOptions struct {
	_ struct{} `type:"structure"`

	// A value that specifies whether JSON input contains embedded new line characters.
	MultiLine *bool `type:"boolean"`
}

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

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

// SetMultiLine sets the MultiLine field's value.
func (s *JsonOptions) SetMultiLine(v bool) *JsonOptions {
	s.MultiLine = &v
	return s
}

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

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

	// The token returned by a previous call 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 ListDatasetsInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

	// A list of datasets that are defined.
	//
	// Datasets is a required field
	Datasets []*Dataset `type:"list" required:"true"`

	// A token that you can use in a subsequent call to retrieve 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 ListDatasetsOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetDatasets sets the Datasets field's value.
func (s *ListDatasetsOutput) SetDatasets(v []*Dataset) *ListDatasetsOutput {
	s.Datasets = v
	return s
}

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

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

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

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

	// The token returned by a previous call 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 ListJobRunsInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

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

	// A list of job runs that have occurred for the specified job.
	//
	// JobRuns is a required field
	JobRuns []*JobRun `type:"list" required:"true"`

	// A token that you can use in a subsequent call to retrieve 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 ListJobRunsOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetJobRuns sets the JobRuns field's value.
func (s *ListJobRunsOutput) SetJobRuns(v []*JobRun) *ListJobRunsOutput {
	s.JobRuns = v
	return s
}

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

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

	// The name of a dataset. Using this parameter indicates to return only those
	// jobs that act on the specified dataset.
	DatasetName *string `location:"querystring" locationName:"datasetName" min:"1" type:"string"`

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

	// A token generated by DataBrew that specifies where to continue pagination
	// if a previous request was truncated. To get the next set of pages, pass in
	// the NextToken value from the response object of the previous page call.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// The name of a project. Using this parameter indicates to return only those
	// jobs that are associated with the specified project.
	ProjectName *string `location:"querystring" locationName:"projectName" 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 ListJobsInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetDatasetName sets the DatasetName field's value.
func (s *ListJobsInput) SetDatasetName(v string) *ListJobsInput {
	s.DatasetName = &v
	return s
}

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

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

// SetProjectName sets the ProjectName field's value.
func (s *ListJobsInput) SetProjectName(v string) *ListJobsInput {
	s.ProjectName = &v
	return s
}

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

	// A list of jobs that are defined.
	//
	// Jobs is a required field
	Jobs []*Job `type:"list" required:"true"`

	// A token that you can use in a subsequent call to retrieve 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 ListJobsOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetJobs sets the Jobs field's value.
func (s *ListJobsOutput) SetJobs(v []*Job) *ListJobsOutput {
	s.Jobs = v
	return s
}

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

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

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

	// The token returned by a previous call 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 ListProjectsInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

	// A token that you can use in a subsequent call to retrieve the next set of
	// results.
	NextToken *string `min:"1" type:"string"`

	// A list of projects that are defined .
	//
	// Projects is a required field
	Projects []*Project `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 ListProjectsOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetProjects sets the Projects field's value.
func (s *ListProjectsOutput) SetProjects(v []*Project) *ListProjectsOutput {
	s.Projects = v
	return s
}

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

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

	// The name of the recipe for which to return version information.
	//
	// Name is a required field
	Name *string `location:"querystring" locationName:"name" min:"1" type:"string" required:"true"`

	// The token returned by a previous call 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 ListRecipeVersionsInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

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

	// A token that you can use in a subsequent call to retrieve the next set of
	// results.
	NextToken *string `min:"1" type:"string"`

	// A list of versions for the specified recipe.
	//
	// Recipes is a required field
	Recipes []*Recipe `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 ListRecipeVersionsOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetRecipes sets the Recipes field's value.
func (s *ListRecipeVersionsOutput) SetRecipes(v []*Recipe) *ListRecipeVersionsOutput {
	s.Recipes = v
	return s
}

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

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

	// The token returned by a previous call to retrieve the next set of results.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// Return only those recipes with a version identifier of LATEST_WORKING or
	// LATEST_PUBLISHED. If RecipeVersion is omitted, ListRecipes returns all of
	// the LATEST_PUBLISHED recipe versions.
	//
	// Valid values: LATEST_WORKING | LATEST_PUBLISHED
	RecipeVersion *string `location:"querystring" locationName:"recipeVersion" 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 ListRecipesInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

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

// SetRecipeVersion sets the RecipeVersion field's value.
func (s *ListRecipesInput) SetRecipeVersion(v string) *ListRecipesInput {
	s.RecipeVersion = &v
	return s
}

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

	// A token that you can use in a subsequent call to retrieve the next set of
	// results.
	NextToken *string `min:"1" type:"string"`

	// A list of recipes that are defined.
	//
	// Recipes is a required field
	Recipes []*Recipe `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 ListRecipesOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetRecipes sets the Recipes field's value.
func (s *ListRecipesOutput) SetRecipes(v []*Recipe) *ListRecipesOutput {
	s.Recipes = v
	return s
}

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

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

	// A token generated by DataBrew that specifies where to continue pagination
	// if a previous request was truncated. To get the next set of pages, pass in
	// the NextToken value from the response object of the previous page call.
	NextToken *string `location:"querystring" locationName:"nextToken" min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of a resource (dataset). Using this parameter
	// indicates to return only those rulesets that are associated with the specified
	// resource.
	TargetArn *string `location:"querystring" locationName:"targetArn" min:"20" 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 ListRulesetsInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

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

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

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

	// A token that you can use in a subsequent call to retrieve the next set of
	// results.
	NextToken *string `min:"1" type:"string"`

	// A list of RulesetItem. RulesetItem contains meta data of a ruleset.
	//
	// Rulesets is a required field
	Rulesets []*RulesetItem `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 ListRulesetsOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetRulesets sets the Rulesets field's value.
func (s *ListRulesetsOutput) SetRulesets(v []*RulesetItem) *ListRulesetsOutput {
	s.Rulesets = v
	return s
}

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

	// The name of the job that these schedules apply to.
	JobName *string `location:"querystring" locationName:"jobName" min:"1" type:"string"`

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

	// The token returned by a previous call 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 ListSchedulesInput) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetJobName sets the JobName field's value.
func (s *ListSchedulesInput) SetJobName(v string) *ListSchedulesInput {
	s.JobName = &v
	return s
}

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

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

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

	// A token that you can use in a subsequent call to retrieve the next set of
	// results.
	NextToken *string `min:"1" type:"string"`

	// A list of schedules that are defined.
	//
	// Schedules is a required field
	Schedules []*Schedule `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 ListSchedulesOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetSchedules sets the Schedules field's value.
func (s *ListSchedulesOutput) SetSchedules(v []*Schedule) *ListSchedulesOutput {
	s.Schedules = v
	return s
}

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

	// The Amazon Resource Name (ARN) string that uniquely identifies the DataBrew
	// resource.
	//
	// ResourceArn is a required field
	ResourceArn *string `location:"uri" locationName:"ResourceArn" min:"20" 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) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20))
	}

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

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

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

	// A list of tags associated with the DataBrew resource.
	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 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
}

// Contains additional resource information needed for specific datasets.
type Metadata struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) associated with the dataset. Currently, DataBrew
	// only supports ARNs from Amazon AppFlow.
	SourceArn *string `min:"20" 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 Metadata) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// Represents options that specify how and where in Amazon S3 DataBrew writes
// the output generated by recipe jobs or profile jobs.
type Output struct {
	_ struct{} `type:"structure"`

	// The compression algorithm used to compress the output text of the job.
	CompressionFormat *string `type:"string" enum:"CompressionFormat"`

	// The data format of the output of the job.
	Format *string `type:"string" enum:"OutputFormat"`

	// Represents options that define how DataBrew formats job output files.
	FormatOptions *OutputFormatOptions `type:"structure"`

	// The location in Amazon S3 where the job writes its output.
	//
	// Location is a required field
	Location *S3Location `type:"structure" required:"true"`

	// Maximum number of files to be generated by the job and written to the output
	// folder. For output partitioned by column(s), the MaxOutputFiles value is
	// the maximum number of files per partition.
	MaxOutputFiles *int64 `min:"1" type:"integer"`

	// A value that, if true, means that any data in the location specified for
	// output is overwritten with new output.
	Overwrite *bool `type:"boolean"`

	// The names of one or more partition columns for the output of the job.
	PartitionColumns []*string `type:"list"`
}

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

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

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

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

// SetCompressionFormat sets the CompressionFormat field's value.
func (s *Output) SetCompressionFormat(v string) *Output {
	s.CompressionFormat = &v
	return s
}

// SetFormat sets the Format field's value.
func (s *Output) SetFormat(v string) *Output {
	s.Format = &v
	return s
}

// SetFormatOptions sets the FormatOptions field's value.
func (s *Output) SetFormatOptions(v *OutputFormatOptions) *Output {
	s.FormatOptions = v
	return s
}

// SetLocation sets the Location field's value.
func (s *Output) SetLocation(v *S3Location) *Output {
	s.Location = v
	return s
}

// SetMaxOutputFiles sets the MaxOutputFiles field's value.
func (s *Output) SetMaxOutputFiles(v int64) *Output {
	s.MaxOutputFiles = &v
	return s
}

// SetOverwrite sets the Overwrite field's value.
func (s *Output) SetOverwrite(v bool) *Output {
	s.Overwrite = &v
	return s
}

// SetPartitionColumns sets the PartitionColumns field's value.
func (s *Output) SetPartitionColumns(v []*string) *Output {
	s.PartitionColumns = v
	return s
}

// Represents a set of options that define the structure of comma-separated
// (CSV) job output.
type OutputFormatOptions struct {
	_ struct{} `type:"structure"`

	// Represents a set of options that define the structure of comma-separated
	// value (CSV) job output.
	Csv *CsvOutputOptions `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 OutputFormatOptions) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetCsv sets the Csv field's value.
func (s *OutputFormatOptions) SetCsv(v *CsvOutputOptions) *OutputFormatOptions {
	s.Csv = v
	return s
}

// Represents a set of options that define how DataBrew selects files for a
// given Amazon S3 path in a dataset.
type PathOptions struct {
	_ struct{} `type:"structure"`

	// If provided, this structure imposes a limit on a number of files that should
	// be selected.
	FilesLimit *FilesLimit `type:"structure"`

	// If provided, this structure defines a date range for matching Amazon S3 objects
	// based on their LastModifiedDate attribute in Amazon S3.
	LastModifiedDateCondition *FilterExpression `type:"structure"`

	// A structure that maps names of parameters used in the Amazon S3 path of a
	// dataset to their definitions.
	Parameters map[string]*DatasetParameter `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 PathOptions) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetFilesLimit sets the FilesLimit field's value.
func (s *PathOptions) SetFilesLimit(v *FilesLimit) *PathOptions {
	s.FilesLimit = v
	return s
}

// SetLastModifiedDateCondition sets the LastModifiedDateCondition field's value.
func (s *PathOptions) SetLastModifiedDateCondition(v *FilterExpression) *PathOptions {
	s.LastModifiedDateCondition = v
	return s
}

// SetParameters sets the Parameters field's value.
func (s *PathOptions) SetParameters(v map[string]*DatasetParameter) *PathOptions {
	s.Parameters = v
	return s
}

// Configuration for profile jobs. Configuration can be used to select columns,
// do evaluations, and override default parameters of evaluations. When configuration
// is undefined, the profile job will apply default settings to all supported
// columns.
type ProfileConfiguration struct {
	_ struct{} `type:"structure"`

	// List of configurations for column evaluations. ColumnStatisticsConfigurations
	// are used to select evaluations and override parameters of evaluations for
	// particular columns. When ColumnStatisticsConfigurations is undefined, the
	// profile job will profile all supported columns and run all supported evaluations.
	ColumnStatisticsConfigurations []*ColumnStatisticsConfiguration `min:"1" type:"list"`

	// Configuration for inter-column evaluations. Configuration can be used to
	// select evaluations and override parameters of evaluations. When configuration
	// is undefined, the profile job will run all supported inter-column evaluations.
	DatasetStatisticsConfiguration *StatisticsConfiguration `type:"structure"`

	// Configuration of entity detection for a profile job. When undefined, entity
	// detection is disabled.
	EntityDetectorConfiguration *EntityDetectorConfiguration `type:"structure"`

	// List of column selectors. ProfileColumns can be used to select columns from
	// the dataset. When ProfileColumns is undefined, the profile job will profile
	// all supported columns.
	ProfileColumns []*ColumnSelector `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 ProfileConfiguration) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetColumnStatisticsConfigurations sets the ColumnStatisticsConfigurations field's value.
func (s *ProfileConfiguration) SetColumnStatisticsConfigurations(v []*ColumnStatisticsConfiguration) *ProfileConfiguration {
	s.ColumnStatisticsConfigurations = v
	return s
}

// SetDatasetStatisticsConfiguration sets the DatasetStatisticsConfiguration field's value.
func (s *ProfileConfiguration) SetDatasetStatisticsConfiguration(v *StatisticsConfiguration) *ProfileConfiguration {
	s.DatasetStatisticsConfiguration = v
	return s
}

// SetEntityDetectorConfiguration sets the EntityDetectorConfiguration field's value.
func (s *ProfileConfiguration) SetEntityDetectorConfiguration(v *EntityDetectorConfiguration) *ProfileConfiguration {
	s.EntityDetectorConfiguration = v
	return s
}

// SetProfileColumns sets the ProfileColumns field's value.
func (s *ProfileConfiguration) SetProfileColumns(v []*ColumnSelector) *ProfileConfiguration {
	s.ProfileColumns = v
	return s
}

// Represents all of the attributes of a DataBrew project.
type Project struct {
	_ struct{} `type:"structure"`

	// The ID of the Amazon Web Services account that owns the project.
	AccountId *string `type:"string"`

	// The date and time that the project was created.
	CreateDate *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the user who crated the project.
	CreatedBy *string `type:"string"`

	// The dataset that the project is to act upon.
	DatasetName *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of the user who last modified the project.
	LastModifiedBy *string `type:"string"`

	// The last modification date and time for the project.
	LastModifiedDate *time.Time `type:"timestamp"`

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

	// The date and time when the project was opened.
	OpenDate *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the user that opened the project for use.
	OpenedBy *string `type:"string"`

	// The name of a recipe that will be developed during a project session.
	//
	// RecipeName is a required field
	RecipeName *string `min:"1" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) for the project.
	ResourceArn *string `min:"20" type:"string"`

	// The Amazon Resource Name (ARN) of the role that will be assumed for this
	// project.
	RoleArn *string `min:"20" type:"string"`

	// The sample size and sampling type to apply to the data. If this parameter
	// isn't specified, then the sample consists of the first 500 rows from the
	// dataset.
	Sample *Sample `type:"structure"`

	// Metadata tags that have been applied to the project.
	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 Project) String() string {
	return awsutil.Prettify(s)
}

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

// SetAccountId sets the AccountId field's value.
func (s *Project) SetAccountId(v string) *Project {
	s.AccountId = &v
	return s
}

// SetCreateDate sets the CreateDate field's value.
func (s *Project) SetCreateDate(v time.Time) *Project {
	s.CreateDate = &v
	return s
}

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

// SetDatasetName sets the DatasetName field's value.
func (s *Project) SetDatasetName(v string) *Project {
	s.DatasetName = &v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *Project) SetLastModifiedBy(v string) *Project {
	s.LastModifiedBy = &v
	return s
}

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

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

// SetOpenDate sets the OpenDate field's value.
func (s *Project) SetOpenDate(v time.Time) *Project {
	s.OpenDate = &v
	return s
}

// SetOpenedBy sets the OpenedBy field's value.
func (s *Project) SetOpenedBy(v string) *Project {
	s.OpenedBy = &v
	return s
}

// SetRecipeName sets the RecipeName field's value.
func (s *Project) SetRecipeName(v string) *Project {
	s.RecipeName = &v
	return s
}

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

// SetRoleArn sets the RoleArn field's value.
func (s *Project) SetRoleArn(v string) *Project {
	s.RoleArn = &v
	return s
}

// SetSample sets the Sample field's value.
func (s *Project) SetSample(v *Sample) *Project {
	s.Sample = v
	return s
}

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

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

	// A description of the recipe to be published, for this version of the recipe.
	Description *string `type:"string"`

	// The name of the recipe to be published.
	//
	// 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 PublishRecipeInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

	// The name of the recipe that you published.
	//
	// Name is a required field
	Name *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 PublishRecipeOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

// Represents one or more actions to be performed on a DataBrew dataset.
type Recipe struct {
	_ struct{} `type:"structure"`

	// The date and time that the recipe was created.
	CreateDate *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the user who created the recipe.
	CreatedBy *string `type:"string"`

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

	// The Amazon Resource Name (ARN) of the user who last modified the recipe.
	LastModifiedBy *string `type:"string"`

	// The last modification date and time of the recipe.
	LastModifiedDate *time.Time `type:"timestamp"`

	// The unique name for the recipe.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// The name of the project that the recipe is associated with.
	ProjectName *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) of the user who published the recipe.
	PublishedBy *string `type:"string"`

	// The date and time when the recipe was published.
	PublishedDate *time.Time `type:"timestamp"`

	// The identifier for the version for the recipe. Must be one of the following:
	//
	//    * Numeric version (X.Y) - X and Y stand for major and minor version numbers.
	//    The maximum length of each is 6 digits, and neither can be negative values.
	//    Both X and Y are required, and "0.0" isn't a valid version.
	//
	//    * LATEST_WORKING - the most recent valid version being developed in a
	//    DataBrew project.
	//
	//    * LATEST_PUBLISHED - the most recent published version.
	RecipeVersion *string `min:"1" type:"string"`

	// The Amazon Resource Name (ARN) for the recipe.
	ResourceArn *string `min:"20" type:"string"`

	// A list of steps that are defined by the recipe.
	Steps []*RecipeStep `type:"list"`

	// Metadata tags that have been applied to the recipe.
	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 Recipe) String() string {
	return awsutil.Prettify(s)
}

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

// SetCreateDate sets the CreateDate field's value.
func (s *Recipe) SetCreateDate(v time.Time) *Recipe {
	s.CreateDate = &v
	return s
}

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

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

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *Recipe) SetLastModifiedBy(v string) *Recipe {
	s.LastModifiedBy = &v
	return s
}

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

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

// SetProjectName sets the ProjectName field's value.
func (s *Recipe) SetProjectName(v string) *Recipe {
	s.ProjectName = &v
	return s
}

// SetPublishedBy sets the PublishedBy field's value.
func (s *Recipe) SetPublishedBy(v string) *Recipe {
	s.PublishedBy = &v
	return s
}

// SetPublishedDate sets the PublishedDate field's value.
func (s *Recipe) SetPublishedDate(v time.Time) *Recipe {
	s.PublishedDate = &v
	return s
}

// SetRecipeVersion sets the RecipeVersion field's value.
func (s *Recipe) SetRecipeVersion(v string) *Recipe {
	s.RecipeVersion = &v
	return s
}

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

// SetSteps sets the Steps field's value.
func (s *Recipe) SetSteps(v []*RecipeStep) *Recipe {
	s.Steps = v
	return s
}

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

// Represents a transformation and associated parameters that are used to apply
// a change to a DataBrew dataset. For more information, see Recipe actions
// reference (https://docs.aws.amazon.com/databrew/latest/dg/recipe-actions-reference.html).
type RecipeAction struct {
	_ struct{} `type:"structure"`

	// The name of a valid DataBrew transformation to be performed on the data.
	//
	// Operation is a required field
	Operation *string `min:"1" type:"string" required:"true"`

	// Contextual parameters for the transformation.
	Parameters map[string]*string `type:"map"`
}

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

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

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

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

// SetOperation sets the Operation field's value.
func (s *RecipeAction) SetOperation(v string) *RecipeAction {
	s.Operation = &v
	return s
}

// SetParameters sets the Parameters field's value.
func (s *RecipeAction) SetParameters(v map[string]*string) *RecipeAction {
	s.Parameters = v
	return s
}

// Represents the name and version of a DataBrew recipe.
type RecipeReference struct {
	_ struct{} `type:"structure"`

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

	// The identifier for the version for the recipe.
	RecipeVersion *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 RecipeReference) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetRecipeVersion sets the RecipeVersion field's value.
func (s *RecipeReference) SetRecipeVersion(v string) *RecipeReference {
	s.RecipeVersion = &v
	return s
}

// Represents a single step from a DataBrew recipe to be performed.
type RecipeStep struct {
	_ struct{} `type:"structure"`

	// The particular action to be performed in the recipe step.
	//
	// Action is a required field
	Action *RecipeAction `type:"structure" required:"true"`

	// One or more conditions that must be met for the recipe step to succeed.
	//
	// All of the conditions in the array must be met. In other words, all of the
	// conditions must be combined using a logical AND operation.
	ConditionExpressions []*ConditionExpression `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 RecipeStep) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetAction sets the Action field's value.
func (s *RecipeStep) SetAction(v *RecipeAction) *RecipeStep {
	s.Action = v
	return s
}

// SetConditionExpressions sets the ConditionExpressions field's value.
func (s *RecipeStep) SetConditionExpressions(v []*ConditionExpression) *RecipeStep {
	s.ConditionExpressions = v
	return s
}

// Represents any errors encountered when attempting to delete multiple recipe
// versions.
type RecipeVersionErrorDetail struct {
	_ struct{} `type:"structure"`

	// The HTTP status code for the error.
	ErrorCode *string `type:"string"`

	// The text of the error message.
	ErrorMessage *string `type:"string"`

	// The identifier for the recipe version associated with this error.
	RecipeVersion *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 RecipeVersionErrorDetail) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetRecipeVersion sets the RecipeVersion field's value.
func (s *RecipeVersionErrorDetail) SetRecipeVersion(v string) *RecipeVersionErrorDetail {
	s.RecipeVersion = &v
	return s
}

// One or more resources can't be found.
type ResourceNotFoundException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

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

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

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

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

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

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

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

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

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

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

// Represents a single data quality requirement that should be validated in
// the scope of this dataset.
type Rule struct {
	_ struct{} `type:"structure"`

	// The expression which includes column references, condition names followed
	// by variable references, possibly grouped and combined with other conditions.
	// For example, (:col1 starts_with :prefix1 or :col1 starts_with :prefix2) and
	// (:col1 ends_with :suffix1 or :col1 ends_with :suffix2). Column and value
	// references are substitution variables that should start with the ':' symbol.
	// Depending on the context, substitution variables' values can be either an
	// actual value or a column name. These values are defined in the SubstitutionMap.
	// If a CheckExpression starts with a column reference, then ColumnSelectors
	// in the rule should be null. If ColumnSelectors has been defined, then there
	// should be no column reference in the left side of a condition, for example,
	// is_between :val1 and :val2.
	//
	// For more information, see Available checks (https://docs.aws.amazon.com/databrew/latest/dg/profile.data-quality-available-checks.html)
	//
	// CheckExpression is a required field
	CheckExpression *string `min:"4" type:"string" required:"true"`

	// List of column selectors. Selectors can be used to select columns using a
	// name or regular expression from the dataset. Rule will be applied to selected
	// columns.
	ColumnSelectors []*ColumnSelector `min:"1" type:"list"`

	// A value that specifies whether the rule is disabled. Once a rule is disabled,
	// a profile job will not validate it during a job run. Default value is false.
	Disabled *bool `type:"boolean"`

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

	// The map of substitution variable names to their values used in a check expression.
	// Variable names should start with a ':' (colon). Variable values can either
	// be actual values or column names. To differentiate between the two, column
	// names should be enclosed in backticks, for example, ":col1": "`Column A`".
	SubstitutionMap map[string]*string `type:"map"`

	// The threshold used with a non-aggregate check expression. Non-aggregate check
	// expressions will be applied to each row in a specific column, and the threshold
	// will be used to determine whether the validation succeeds.
	Threshold *Threshold `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 Rule) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetColumnSelectors sets the ColumnSelectors field's value.
func (s *Rule) SetColumnSelectors(v []*ColumnSelector) *Rule {
	s.ColumnSelectors = v
	return s
}

// SetDisabled sets the Disabled field's value.
func (s *Rule) SetDisabled(v bool) *Rule {
	s.Disabled = &v
	return s
}

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

// SetSubstitutionMap sets the SubstitutionMap field's value.
func (s *Rule) SetSubstitutionMap(v map[string]*string) *Rule {
	s.SubstitutionMap = v
	return s
}

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

// Contains metadata about the ruleset.
type RulesetItem struct {
	_ struct{} `type:"structure"`

	// The ID of the Amazon Web Services account that owns the ruleset.
	AccountId *string `type:"string"`

	// The date and time that the ruleset was created.
	CreateDate *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the user who created the ruleset.
	CreatedBy *string `type:"string"`

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

	// The Amazon Resource Name (ARN) of the user who last modified the ruleset.
	LastModifiedBy *string `type:"string"`

	// The modification date and time of the ruleset.
	LastModifiedDate *time.Time `type:"timestamp"`

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

	// The Amazon Resource Name (ARN) for the ruleset.
	ResourceArn *string `min:"20" type:"string"`

	// The number of rules that are defined in the ruleset.
	RuleCount *int64 `type:"integer"`

	// Metadata tags that have been applied to the ruleset.
	Tags map[string]*string `min:"1" type:"map"`

	// The Amazon Resource Name (ARN) of a resource (dataset) that the ruleset is
	// associated with.
	//
	// TargetArn is a required field
	TargetArn *string `min:"20" 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 RulesetItem) String() string {
	return awsutil.Prettify(s)
}

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

// SetAccountId sets the AccountId field's value.
func (s *RulesetItem) SetAccountId(v string) *RulesetItem {
	s.AccountId = &v
	return s
}

// SetCreateDate sets the CreateDate field's value.
func (s *RulesetItem) SetCreateDate(v time.Time) *RulesetItem {
	s.CreateDate = &v
	return s
}

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

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

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *RulesetItem) SetLastModifiedBy(v string) *RulesetItem {
	s.LastModifiedBy = &v
	return s
}

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

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

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

// SetRuleCount sets the RuleCount field's value.
func (s *RulesetItem) SetRuleCount(v int64) *RulesetItem {
	s.RuleCount = &v
	return s
}

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

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

// Represents an Amazon S3 location (bucket name, bucket owner, and object key)
// where DataBrew can read input data, or write output from a job.
type S3Location struct {
	_ struct{} `type:"structure"`

	// The Amazon S3 bucket name.
	//
	// Bucket is a required field
	Bucket *string `min:"3" type:"string" required:"true"`

	// The Amazon Web Services account ID of the bucket owner.
	BucketOwner *string `min:"12" type:"string"`

	// The unique name of the object in the bucket.
	Key *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 S3Location) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetBucket sets the Bucket field's value.
func (s *S3Location) SetBucket(v string) *S3Location {
	s.Bucket = &v
	return s
}

// SetBucketOwner sets the BucketOwner field's value.
func (s *S3Location) SetBucketOwner(v string) *S3Location {
	s.BucketOwner = &v
	return s
}

// SetKey sets the Key field's value.
func (s *S3Location) SetKey(v string) *S3Location {
	s.Key = &v
	return s
}

// Represents options that specify how and where DataBrew writes the Amazon
// S3 output generated by recipe jobs.
type S3TableOutputOptions struct {
	_ struct{} `type:"structure"`

	// Represents an Amazon S3 location (bucket name and object key) where DataBrew
	// can write output from a job.
	//
	// Location is a required field
	Location *S3Location `type:"structure" required:"true"`
}

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

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

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

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

// SetLocation sets the Location field's value.
func (s *S3TableOutputOptions) SetLocation(v *S3Location) *S3TableOutputOptions {
	s.Location = v
	return s
}

// Represents the sample size and sampling type for DataBrew to use for interactive
// data analysis.
type Sample struct {
	_ struct{} `type:"structure"`

	// The number of rows in the sample.
	Size *int64 `min:"1" type:"integer"`

	// The way in which DataBrew obtains rows from a dataset.
	//
	// Type is a required field
	Type *string `type:"string" required:"true" enum:"SampleType"`
}

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

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

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

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

// SetSize sets the Size field's value.
func (s *Sample) SetSize(v int64) *Sample {
	s.Size = &v
	return s
}

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

// Represents one or more dates and times when a job is to run.
type Schedule struct {
	_ struct{} `type:"structure"`

	// The ID of the Amazon Web Services account that owns the schedule.
	AccountId *string `type:"string"`

	// The date and time that the schedule was created.
	CreateDate *time.Time `type:"timestamp"`

	// The Amazon Resource Name (ARN) of the user who created the schedule.
	CreatedBy *string `type:"string"`

	// The dates and times when the job is to run. For more information, see Cron
	// expressions (https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html)
	// in the Glue DataBrew Developer Guide.
	CronExpression *string `min:"1" type:"string"`

	// A list of jobs to be run, according to the schedule.
	JobNames []*string `type:"list"`

	// The Amazon Resource Name (ARN) of the user who last modified the schedule.
	LastModifiedBy *string `type:"string"`

	// The date and time when the schedule was last modified.
	LastModifiedDate *time.Time `type:"timestamp"`

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

	// The Amazon Resource Name (ARN) of the schedule.
	ResourceArn *string `min:"20" type:"string"`

	// Metadata tags that have been applied to the schedule.
	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 Schedule) String() string {
	return awsutil.Prettify(s)
}

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

// SetAccountId sets the AccountId field's value.
func (s *Schedule) SetAccountId(v string) *Schedule {
	s.AccountId = &v
	return s
}

// SetCreateDate sets the CreateDate field's value.
func (s *Schedule) SetCreateDate(v time.Time) *Schedule {
	s.CreateDate = &v
	return s
}

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

// SetCronExpression sets the CronExpression field's value.
func (s *Schedule) SetCronExpression(v string) *Schedule {
	s.CronExpression = &v
	return s
}

// SetJobNames sets the JobNames field's value.
func (s *Schedule) SetJobNames(v []*string) *Schedule {
	s.JobNames = v
	return s
}

// SetLastModifiedBy sets the LastModifiedBy field's value.
func (s *Schedule) SetLastModifiedBy(v string) *Schedule {
	s.LastModifiedBy = &v
	return s
}

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

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

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

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

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

	// A unique identifier for an interactive session that's currently open and
	// ready for work. The action will be performed on this session.
	//
	// ClientSessionId is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by SendProjectSessionActionInput's
	// String and GoString methods.
	ClientSessionId *string `min:"1" type:"string" sensitive:"true"`

	// The name of the project to apply the action to.
	//
	// Name is a required field
	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`

	// If true, the result of the recipe step will be returned, but not applied.
	Preview *bool `type:"boolean"`

	// Represents a single step from a DataBrew recipe to be performed.
	RecipeStep *RecipeStep `type:"structure"`

	// The index from which to preview a step. This index is used to preview the
	// result of steps that have already been applied, so that the resulting view
	// frame is from earlier in the view frame stack.
	StepIndex *int64 `type:"integer"`

	// Represents the data being transformed during an action.
	ViewFrame *ViewFrame `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 SendProjectSessionActionInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetClientSessionId sets the ClientSessionId field's value.
func (s *SendProjectSessionActionInput) SetClientSessionId(v string) *SendProjectSessionActionInput {
	s.ClientSessionId = &v
	return s
}

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

// SetPreview sets the Preview field's value.
func (s *SendProjectSessionActionInput) SetPreview(v bool) *SendProjectSessionActionInput {
	s.Preview = &v
	return s
}

// SetRecipeStep sets the RecipeStep field's value.
func (s *SendProjectSessionActionInput) SetRecipeStep(v *RecipeStep) *SendProjectSessionActionInput {
	s.RecipeStep = v
	return s
}

// SetStepIndex sets the StepIndex field's value.
func (s *SendProjectSessionActionInput) SetStepIndex(v int64) *SendProjectSessionActionInput {
	s.StepIndex = &v
	return s
}

// SetViewFrame sets the ViewFrame field's value.
func (s *SendProjectSessionActionInput) SetViewFrame(v *ViewFrame) *SendProjectSessionActionInput {
	s.ViewFrame = v
	return s
}

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

	// A unique identifier for the action that was performed.
	ActionId *int64 `type:"integer"`

	// The name of the project that was affected by the action.
	//
	// Name is a required field
	Name *string `min:"1" type:"string" required:"true"`

	// A message indicating the result of performing the action.
	Result *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 SendProjectSessionActionOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetActionId sets the ActionId field's value.
func (s *SendProjectSessionActionOutput) SetActionId(v int64) *SendProjectSessionActionOutput {
	s.ActionId = &v
	return s
}

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

// SetResult sets the Result field's value.
func (s *SendProjectSessionActionOutput) SetResult(v string) *SendProjectSessionActionOutput {
	s.Result = &v
	return s
}

// A service quota is exceeded.
type ServiceQuotaExceededException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

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

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

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

func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error {
	return &ServiceQuotaExceededException{
		RespMetadata: v,
	}
}

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

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

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

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

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

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

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

	// The name of the job to be run.
	//
	// 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 StartJobRunInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// A system-generated identifier for this particular job run.
	//
	// RunId is a required field
	RunId *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 StartJobRunOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetRunId sets the RunId field's value.
func (s *StartJobRunOutput) SetRunId(v string) *StartJobRunOutput {
	s.RunId = &v
	return s
}

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

	// A value that, if true, enables you to take control of a session, even if
	// a different client is currently accessing the project.
	AssumeControl *bool `type:"boolean"`

	// The name of the project to act upon.
	//
	// 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 StartProjectSessionInput) String() string {
	return awsutil.Prettify(s)
}

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

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

// SetAssumeControl sets the AssumeControl field's value.
func (s *StartProjectSessionInput) SetAssumeControl(v bool) *StartProjectSessionInput {
	s.AssumeControl = &v
	return s
}

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

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

	// A system-generated identifier for the session.
	//
	// ClientSessionId is a sensitive parameter and its value will be
	// replaced with "sensitive" in string returned by StartProjectSessionOutput's
	// String and GoString methods.
	ClientSessionId *string `min:"1" type:"string" sensitive:"true"`

	// The name of the project to be acted upon.
	//
	// Name is a required field
	Name *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 StartProjectSessionOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetClientSessionId sets the ClientSessionId field's value.
func (s *StartProjectSessionOutput) SetClientSessionId(v string) *StartProjectSessionOutput {
	s.ClientSessionId = &v
	return s
}

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

// Override of a particular evaluation for a profile job.
type StatisticOverride struct {
	_ struct{} `type:"structure"`

	// A map that includes overrides of an evaluation’s parameters.
	//
	// Parameters is a required field
	Parameters map[string]*string `type:"map" required:"true"`

	// The name of an evaluation
	//
	// Statistic is a required field
	Statistic *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 StatisticOverride) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetParameters sets the Parameters field's value.
func (s *StatisticOverride) SetParameters(v map[string]*string) *StatisticOverride {
	s.Parameters = v
	return s
}

// SetStatistic sets the Statistic field's value.
func (s *StatisticOverride) SetStatistic(v string) *StatisticOverride {
	s.Statistic = &v
	return s
}

// Configuration of evaluations for a profile job. This configuration can be
// used to select evaluations and override the parameters of selected evaluations.
type StatisticsConfiguration struct {
	_ struct{} `type:"structure"`

	// List of included evaluations. When the list is undefined, all supported evaluations
	// will be included.
	IncludedStatistics []*string `min:"1" type:"list"`

	// List of overrides for evaluations.
	Overrides []*StatisticOverride `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 StatisticsConfiguration) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetIncludedStatistics sets the IncludedStatistics field's value.
func (s *StatisticsConfiguration) SetIncludedStatistics(v []*string) *StatisticsConfiguration {
	s.IncludedStatistics = v
	return s
}

// SetOverrides sets the Overrides field's value.
func (s *StatisticsConfiguration) SetOverrides(v []*StatisticOverride) *StatisticsConfiguration {
	s.Overrides = v
	return s
}

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

	// The name of the job to be stopped.
	//
	// Name is a required field
	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`

	// The ID of the job run to be stopped.
	//
	// RunId is a required field
	RunId *string `location:"uri" locationName:"runId" 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 StopJobRunInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetRunId sets the RunId field's value.
func (s *StopJobRunInput) SetRunId(v string) *StopJobRunInput {
	s.RunId = &v
	return s
}

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

	// The ID of the job run that you stopped.
	//
	// RunId is a required field
	RunId *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 StopJobRunOutput) String() string {
	return awsutil.Prettify(s)
}

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

// SetRunId sets the RunId field's value.
func (s *StopJobRunOutput) SetRunId(v string) *StopJobRunOutput {
	s.RunId = &v
	return s
}

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

	// The DataBrew resource to which tags should be added. The value for this parameter
	// is an Amazon Resource Name (ARN). For DataBrew, you can tag a dataset, a
	// job, a project, or a recipe.
	//
	// ResourceArn is a required field
	ResourceArn *string `location:"uri" locationName:"ResourceArn" min:"20" type:"string" required:"true"`

	// One or more tags to be assigned to the resource.
	//
	// Tags is a required field
	Tags map[string]*string `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) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20))
	}
	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 threshold used with a non-aggregate check expression. The non-aggregate
// check expression will be applied to each row in a specific column. Then the
// threshold will be used to determine whether the validation succeeds.
type Threshold struct {
	_ struct{} `type:"structure"`

	// The type of a threshold. Used for comparison of an actual count of rows that
	// satisfy the rule to the threshold value.
	Type *string `type:"string" enum:"ThresholdType"`

	// Unit of threshold value. Can be either a COUNT or PERCENTAGE of the full
	// sample size used for validation.
	Unit *string `type:"string" enum:"ThresholdUnit"`

	// The value of a threshold.
	//
	// Value is a required field
	Value *float64 `type:"double" 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 Threshold) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetUnit sets the Unit field's value.
func (s *Threshold) SetUnit(v string) *Threshold {
	s.Unit = &v
	return s
}

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

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

	// A DataBrew resource from which you want to remove a tag or tags. The value
	// for this parameter is an Amazon Resource Name (ARN).
	//
	// ResourceArn is a required field
	ResourceArn *string `location:"uri" locationName:"ResourceArn" min:"20" type:"string" required:"true"`

	// The tag keys (names) of one or more tags to be removed.
	//
	// 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) < 20 {
		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20))
	}
	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 UpdateDatasetInput struct {
	_ struct{} `type:"structure"`

	// The file format of a dataset that is created from an Amazon S3 file or folder.
	Format *string `type:"string" enum:"InputFormat"`

	// Represents a set of options that define the structure of either comma-separated
	// value (CSV), Excel, or JSON input.
	FormatOptions *FormatOptions `type:"structure"`

	// Represents information on how DataBrew can find data, in either the Glue
	// Data Catalog or Amazon S3.
	//
	// Input is a required field
	Input *Input `type:"structure" required:"true"`

	// The name of the dataset to be updated.
	//
	// Name is a required field
	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`

	// A set of options that defines how DataBrew interprets an Amazon S3 path of
	// the dataset.
	PathOptions *PathOptions `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 UpdateDatasetInput) String() string {
	return awsutil.Prettify(s)
}

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

// Validate inspects the fields of the type to determine if they are valid.
func (s *UpdateDatasetInput) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "UpdateDatasetInput"}
	if s.Input == nil {
		invalidParams.Add(request.NewErrParamRequired("Input"))
	}
	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.FormatOptions != nil {
		if err := s.FormatOptions.Validate(); err != nil {
			invalidParams.AddNested("FormatOptions", err.(request.ErrInvalidParams))
		}
	}
	if s.Input != nil {
		if err := s.Input.Validate(); err != nil {
			invalidParams.AddNested("Input", err.(request.ErrInvalidParams))
		}
	}
	if s.PathOptions != nil {
		if err := s.PathOptions.Validate(); err != nil {
			invalidParams.AddNested("PathOptions", err.(request.ErrInvalidParams))
		}
	}

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

// SetFormat sets the Format field's value.
func (s *UpdateDatasetInput) SetFormat(v string) *UpdateDatasetInput {
	s.Format = &v
	return s
}

// SetFormatOptions sets the FormatOptions field's value.
func (s *UpdateDatasetInput) SetFormatOptions(v *FormatOptions) *UpdateDatasetInput {
	s.FormatOptions = v
	return s
}

// SetInput sets the Input field's value.
func (s *UpdateDatasetInput) SetInput(v *Input) *UpdateDatasetInput {
	s.Input = v
	return s
}

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

// SetPathOptions sets the PathOptions field's value.
func (s *UpdateDatasetInput) SetPathOptions(v *PathOptions) *UpdateDatasetInput {
	s.PathOptions = v
	return s
}

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

	// The name of the dataset that you updated.
	//
	// Name is a required field
	Name *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 UpdateDatasetOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// Configuration for profile jobs. Used to select columns, do evaluations, and
	// override default parameters of evaluations. When configuration is null, the
	// profile job will run with default settings.
	Configuration *ProfileConfiguration `type:"structure"`

	// The Amazon Resource Name (ARN) of an encryption key that is used to protect
	// the job.
	EncryptionKeyArn *string `min:"20" type:"string"`

	// The encryption mode for the job, which can be one of the following:
	//
	//    * SSE-KMS - Server-side encryption with keys managed by KMS.
	//
	//    * SSE-S3 - Server-side encryption with keys managed by Amazon S3.
	EncryptionMode *string `type:"string" enum:"EncryptionMode"`

	// Sample configuration for Profile Jobs only. Determines the number of rows
	// on which the Profile job will be executed. If a JobSample value is not provided
	// for profile jobs, the default value will be used. The default value is CUSTOM_ROWS
	// for the mode parameter and 20000 for the size parameter.
	JobSample *JobSample `type:"structure"`

	// Enables or disables Amazon CloudWatch logging for the job. If logging is
	// enabled, CloudWatch writes one log stream for each job run.
	LogSubscription *string `type:"string" enum:"LogSubscription"`

	// The maximum number of compute nodes that DataBrew can use when the job processes
	// data.
	MaxCapacity *int64 `type:"integer"`

	// The maximum number of times to retry the job after a job run fails.
	MaxRetries *int64 `type:"integer"`

	// The name of the job to be updated.
	//
	// Name is a required field
	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`

	// Represents an Amazon S3 location (bucket name, bucket owner, and object key)
	// where DataBrew can read input data, or write output from a job.
	//
	// OutputLocation is a required field
	OutputLocation *S3Location `type:"structure" required:"true"`

	// The Amazon Resource Name (ARN) of the Identity and Access Management (IAM)
	// role to be assumed when DataBrew runs the job.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// The job's timeout in minutes. A job that attempts to run longer than this
	// timeout period ends with a status of TIMEOUT.
	Timeout *int64 `type:"integer"`

	// List of validation configurations that are applied to the profile job.
	ValidationConfigurations []*ValidationConfiguration `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 UpdateProfileJobInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetConfiguration sets the Configuration field's value.
func (s *UpdateProfileJobInput) SetConfiguration(v *ProfileConfiguration) *UpdateProfileJobInput {
	s.Configuration = v
	return s
}

// SetEncryptionKeyArn sets the EncryptionKeyArn field's value.
func (s *UpdateProfileJobInput) SetEncryptionKeyArn(v string) *UpdateProfileJobInput {
	s.EncryptionKeyArn = &v
	return s
}

// SetEncryptionMode sets the EncryptionMode field's value.
func (s *UpdateProfileJobInput) SetEncryptionMode(v string) *UpdateProfileJobInput {
	s.EncryptionMode = &v
	return s
}

// SetJobSample sets the JobSample field's value.
func (s *UpdateProfileJobInput) SetJobSample(v *JobSample) *UpdateProfileJobInput {
	s.JobSample = v
	return s
}

// SetLogSubscription sets the LogSubscription field's value.
func (s *UpdateProfileJobInput) SetLogSubscription(v string) *UpdateProfileJobInput {
	s.LogSubscription = &v
	return s
}

// SetMaxCapacity sets the MaxCapacity field's value.
func (s *UpdateProfileJobInput) SetMaxCapacity(v int64) *UpdateProfileJobInput {
	s.MaxCapacity = &v
	return s
}

// SetMaxRetries sets the MaxRetries field's value.
func (s *UpdateProfileJobInput) SetMaxRetries(v int64) *UpdateProfileJobInput {
	s.MaxRetries = &v
	return s
}

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

// SetOutputLocation sets the OutputLocation field's value.
func (s *UpdateProfileJobInput) SetOutputLocation(v *S3Location) *UpdateProfileJobInput {
	s.OutputLocation = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *UpdateProfileJobInput) SetRoleArn(v string) *UpdateProfileJobInput {
	s.RoleArn = &v
	return s
}

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

// SetValidationConfigurations sets the ValidationConfigurations field's value.
func (s *UpdateProfileJobInput) SetValidationConfigurations(v []*ValidationConfiguration) *UpdateProfileJobInput {
	s.ValidationConfigurations = v
	return s
}

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

	// The name of the job that was updated.
	//
	// Name is a required field
	Name *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 UpdateProfileJobOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// The name of the project to be updated.
	//
	// Name is a required field
	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`

	// The Amazon Resource Name (ARN) of the IAM role to be assumed for this request.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// Represents the sample size and sampling type for DataBrew to use for interactive
	// data analysis.
	Sample *Sample `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 UpdateProjectInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

// SetRoleArn sets the RoleArn field's value.
func (s *UpdateProjectInput) SetRoleArn(v string) *UpdateProjectInput {
	s.RoleArn = &v
	return s
}

// SetSample sets the Sample field's value.
func (s *UpdateProjectInput) SetSample(v *Sample) *UpdateProjectInput {
	s.Sample = v
	return s
}

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

	// The date and time that the project was last modified.
	LastModifiedDate *time.Time `type:"timestamp"`

	// The name of the project that you updated.
	//
	// Name is a required field
	Name *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 UpdateProjectOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

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

	// The name of the recipe to be updated.
	//
	// Name is a required field
	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`

	// One or more steps to be performed by the recipe. Each step consists of an
	// action, and the conditions under which the action should succeed.
	Steps []*RecipeStep `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 UpdateRecipeInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

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

// SetSteps sets the Steps field's value.
func (s *UpdateRecipeInput) SetSteps(v []*RecipeStep) *UpdateRecipeInput {
	s.Steps = v
	return s
}

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

	// One or more artifacts that represent the Glue Data Catalog output from running
	// the job.
	DataCatalogOutputs []*DataCatalogOutput_ `min:"1" type:"list"`

	// Represents a list of JDBC database output objects which defines the output
	// destination for a DataBrew recipe job to write into.
	DatabaseOutputs []*DatabaseOutput_ `min:"1" type:"list"`

	// The Amazon Resource Name (ARN) of an encryption key that is used to protect
	// the job.
	EncryptionKeyArn *string `min:"20" type:"string"`

	// The encryption mode for the job, which can be one of the following:
	//
	//    * SSE-KMS - Server-side encryption with keys managed by KMS.
	//
	//    * SSE-S3 - Server-side encryption with keys managed by Amazon S3.
	EncryptionMode *string `type:"string" enum:"EncryptionMode"`

	// Enables or disables Amazon CloudWatch logging for the job. If logging is
	// enabled, CloudWatch writes one log stream for each job run.
	LogSubscription *string `type:"string" enum:"LogSubscription"`

	// The maximum number of nodes that DataBrew can consume when the job processes
	// data.
	MaxCapacity *int64 `type:"integer"`

	// The maximum number of times to retry the job after a job run fails.
	MaxRetries *int64 `type:"integer"`

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

	// One or more artifacts that represent the output from running the job.
	Outputs []*Output `min:"1" type:"list"`

	// The Amazon Resource Name (ARN) of the Identity and Access Management (IAM)
	// role to be assumed when DataBrew runs the job.
	//
	// RoleArn is a required field
	RoleArn *string `min:"20" type:"string" required:"true"`

	// The job's timeout in minutes. A job that attempts to run longer than this
	// timeout period ends with a status of TIMEOUT.
	Timeout *int64 `type:"integer"`
}

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

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

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

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

// SetDataCatalogOutputs sets the DataCatalogOutputs field's value.
func (s *UpdateRecipeJobInput) SetDataCatalogOutputs(v []*DataCatalogOutput_) *UpdateRecipeJobInput {
	s.DataCatalogOutputs = v
	return s
}

// SetDatabaseOutputs sets the DatabaseOutputs field's value.
func (s *UpdateRecipeJobInput) SetDatabaseOutputs(v []*DatabaseOutput_) *UpdateRecipeJobInput {
	s.DatabaseOutputs = v
	return s
}

// SetEncryptionKeyArn sets the EncryptionKeyArn field's value.
func (s *UpdateRecipeJobInput) SetEncryptionKeyArn(v string) *UpdateRecipeJobInput {
	s.EncryptionKeyArn = &v
	return s
}

// SetEncryptionMode sets the EncryptionMode field's value.
func (s *UpdateRecipeJobInput) SetEncryptionMode(v string) *UpdateRecipeJobInput {
	s.EncryptionMode = &v
	return s
}

// SetLogSubscription sets the LogSubscription field's value.
func (s *UpdateRecipeJobInput) SetLogSubscription(v string) *UpdateRecipeJobInput {
	s.LogSubscription = &v
	return s
}

// SetMaxCapacity sets the MaxCapacity field's value.
func (s *UpdateRecipeJobInput) SetMaxCapacity(v int64) *UpdateRecipeJobInput {
	s.MaxCapacity = &v
	return s
}

// SetMaxRetries sets the MaxRetries field's value.
func (s *UpdateRecipeJobInput) SetMaxRetries(v int64) *UpdateRecipeJobInput {
	s.MaxRetries = &v
	return s
}

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

// SetOutputs sets the Outputs field's value.
func (s *UpdateRecipeJobInput) SetOutputs(v []*Output) *UpdateRecipeJobInput {
	s.Outputs = v
	return s
}

// SetRoleArn sets the RoleArn field's value.
func (s *UpdateRecipeJobInput) SetRoleArn(v string) *UpdateRecipeJobInput {
	s.RoleArn = &v
	return s
}

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

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

	// The name of the job that you updated.
	//
	// Name is a required field
	Name *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 UpdateRecipeJobOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// The name of the recipe that was updated.
	//
	// Name is a required field
	Name *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 UpdateRecipeOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

	// The name of the ruleset to be updated.
	//
	// Name is a required field
	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`

	// A list of rules that are defined with the ruleset. A rule includes one or
	// more checks to be validated on a DataBrew dataset.
	//
	// Rules is a required field
	Rules []*Rule `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 UpdateRulesetInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

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

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

// SetRules sets the Rules field's value.
func (s *UpdateRulesetInput) SetRules(v []*Rule) *UpdateRulesetInput {
	s.Rules = v
	return s
}

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

	// The name of the updated ruleset.
	//
	// Name is a required field
	Name *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 UpdateRulesetOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

	// The date or dates and time or times when the jobs are to be run. For more
	// information, see Cron expressions (https://docs.aws.amazon.com/databrew/latest/dg/jobs.cron.html)
	// in the Glue DataBrew Developer Guide.
	//
	// CronExpression is a required field
	CronExpression *string `min:"1" type:"string" required:"true"`

	// The name or names of one or more jobs to be run for this schedule.
	JobNames []*string `type:"list"`

	// The name of the schedule to update.
	//
	// 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 UpdateScheduleInput) String() string {
	return awsutil.Prettify(s)
}

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

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

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

// SetCronExpression sets the CronExpression field's value.
func (s *UpdateScheduleInput) SetCronExpression(v string) *UpdateScheduleInput {
	s.CronExpression = &v
	return s
}

// SetJobNames sets the JobNames field's value.
func (s *UpdateScheduleInput) SetJobNames(v []*string) *UpdateScheduleInput {
	s.JobNames = v
	return s
}

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

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

	// The name of the schedule that was updated.
	//
	// Name is a required field
	Name *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 UpdateScheduleOutput) String() string {
	return awsutil.Prettify(s)
}

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

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

// Configuration for data quality validation. Used to select the Rulesets and
// Validation Mode to be used in the profile job. When ValidationConfiguration
// is null, the profile job will run without data quality validation.
type ValidationConfiguration struct {
	_ struct{} `type:"structure"`

	// The Amazon Resource Name (ARN) for the ruleset to be validated in the profile
	// job. The TargetArn of the selected ruleset should be the same as the Amazon
	// Resource Name (ARN) of the dataset that is associated with the profile job.
	//
	// RulesetArn is a required field
	RulesetArn *string `min:"20" type:"string" required:"true"`

	// Mode of data quality validation. Default mode is “CHECK_ALL” which verifies
	// all rules defined in the selected ruleset.
	ValidationMode *string `type:"string" enum:"ValidationMode"`
}

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

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

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

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

// SetRulesetArn sets the RulesetArn field's value.
func (s *ValidationConfiguration) SetRulesetArn(v string) *ValidationConfiguration {
	s.RulesetArn = &v
	return s
}

// SetValidationMode sets the ValidationMode field's value.
func (s *ValidationConfiguration) SetValidationMode(v string) *ValidationConfiguration {
	s.ValidationMode = &v
	return s
}

// The input parameters for this request failed validation.
type ValidationException struct {
	_            struct{}                  `type:"structure"`
	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`

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

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

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

func newErrorValidationException(v protocol.ResponseMetadata) error {
	return &ValidationException{
		RespMetadata: v,
	}
}

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

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

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

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

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

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

// Represents the data being transformed during an action.
type ViewFrame struct {
	_ struct{} `type:"structure"`

	// Controls if analytics computation is enabled or disabled. Enabled by default.
	Analytics *string `type:"string" enum:"AnalyticsMode"`

	// The number of columns to include in the view frame, beginning with the StartColumnIndex
	// value and ignoring any columns in the HiddenColumns list.
	ColumnRange *int64 `type:"integer"`

	// A list of columns to hide in the view frame.
	HiddenColumns []*string `type:"list"`

	// The number of rows to include in the view frame, beginning with the StartRowIndex
	// value.
	RowRange *int64 `type:"integer"`

	// The starting index for the range of columns to return in the view frame.
	//
	// StartColumnIndex is a required field
	StartColumnIndex *int64 `type:"integer" required:"true"`

	// The starting index for the range of rows to return in the view frame.
	StartRowIndex *int64 `type:"integer"`
}

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

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

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

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

// SetAnalytics sets the Analytics field's value.
func (s *ViewFrame) SetAnalytics(v string) *ViewFrame {
	s.Analytics = &v
	return s
}

// SetColumnRange sets the ColumnRange field's value.
func (s *ViewFrame) SetColumnRange(v int64) *ViewFrame {
	s.ColumnRange = &v
	return s
}

// SetHiddenColumns sets the HiddenColumns field's value.
func (s *ViewFrame) SetHiddenColumns(v []*string) *ViewFrame {
	s.HiddenColumns = v
	return s
}

// SetRowRange sets the RowRange field's value.
func (s *ViewFrame) SetRowRange(v int64) *ViewFrame {
	s.RowRange = &v
	return s
}

// SetStartColumnIndex sets the StartColumnIndex field's value.
func (s *ViewFrame) SetStartColumnIndex(v int64) *ViewFrame {
	s.StartColumnIndex = &v
	return s
}

// SetStartRowIndex sets the StartRowIndex field's value.
func (s *ViewFrame) SetStartRowIndex(v int64) *ViewFrame {
	s.StartRowIndex = &v
	return s
}

const (
	// AnalyticsModeEnable is a AnalyticsMode enum value
	AnalyticsModeEnable = "ENABLE"

	// AnalyticsModeDisable is a AnalyticsMode enum value
	AnalyticsModeDisable = "DISABLE"
)

// AnalyticsMode_Values returns all elements of the AnalyticsMode enum
func AnalyticsMode_Values() []string {
	return []string{
		AnalyticsModeEnable,
		AnalyticsModeDisable,
	}
}

const (
	// CompressionFormatGzip is a CompressionFormat enum value
	CompressionFormatGzip = "GZIP"

	// CompressionFormatLz4 is a CompressionFormat enum value
	CompressionFormatLz4 = "LZ4"

	// CompressionFormatSnappy is a CompressionFormat enum value
	CompressionFormatSnappy = "SNAPPY"

	// CompressionFormatBzip2 is a CompressionFormat enum value
	CompressionFormatBzip2 = "BZIP2"

	// CompressionFormatDeflate is a CompressionFormat enum value
	CompressionFormatDeflate = "DEFLATE"

	// CompressionFormatLzo is a CompressionFormat enum value
	CompressionFormatLzo = "LZO"

	// CompressionFormatBrotli is a CompressionFormat enum value
	CompressionFormatBrotli = "BROTLI"

	// CompressionFormatZstd is a CompressionFormat enum value
	CompressionFormatZstd = "ZSTD"

	// CompressionFormatZlib is a CompressionFormat enum value
	CompressionFormatZlib = "ZLIB"
)

// CompressionFormat_Values returns all elements of the CompressionFormat enum
func CompressionFormat_Values() []string {
	return []string{
		CompressionFormatGzip,
		CompressionFormatLz4,
		CompressionFormatSnappy,
		CompressionFormatBzip2,
		CompressionFormatDeflate,
		CompressionFormatLzo,
		CompressionFormatBrotli,
		CompressionFormatZstd,
		CompressionFormatZlib,
	}
}

const (
	// DatabaseOutputModeNewTable is a DatabaseOutputMode enum value
	DatabaseOutputModeNewTable = "NEW_TABLE"
)

// DatabaseOutputMode_Values returns all elements of the DatabaseOutputMode enum
func DatabaseOutputMode_Values() []string {
	return []string{
		DatabaseOutputModeNewTable,
	}
}

const (
	// EncryptionModeSseKms is a EncryptionMode enum value
	EncryptionModeSseKms = "SSE-KMS"

	// EncryptionModeSseS3 is a EncryptionMode enum value
	EncryptionModeSseS3 = "SSE-S3"
)

// EncryptionMode_Values returns all elements of the EncryptionMode enum
func EncryptionMode_Values() []string {
	return []string{
		EncryptionModeSseKms,
		EncryptionModeSseS3,
	}
}

const (
	// InputFormatCsv is a InputFormat enum value
	InputFormatCsv = "CSV"

	// InputFormatJson is a InputFormat enum value
	InputFormatJson = "JSON"

	// InputFormatParquet is a InputFormat enum value
	InputFormatParquet = "PARQUET"

	// InputFormatExcel is a InputFormat enum value
	InputFormatExcel = "EXCEL"

	// InputFormatOrc is a InputFormat enum value
	InputFormatOrc = "ORC"
)

// InputFormat_Values returns all elements of the InputFormat enum
func InputFormat_Values() []string {
	return []string{
		InputFormatCsv,
		InputFormatJson,
		InputFormatParquet,
		InputFormatExcel,
		InputFormatOrc,
	}
}

const (
	// JobRunStateStarting is a JobRunState enum value
	JobRunStateStarting = "STARTING"

	// JobRunStateRunning is a JobRunState enum value
	JobRunStateRunning = "RUNNING"

	// JobRunStateStopping is a JobRunState enum value
	JobRunStateStopping = "STOPPING"

	// JobRunStateStopped is a JobRunState enum value
	JobRunStateStopped = "STOPPED"

	// JobRunStateSucceeded is a JobRunState enum value
	JobRunStateSucceeded = "SUCCEEDED"

	// JobRunStateFailed is a JobRunState enum value
	JobRunStateFailed = "FAILED"

	// JobRunStateTimeout is a JobRunState enum value
	JobRunStateTimeout = "TIMEOUT"
)

// JobRunState_Values returns all elements of the JobRunState enum
func JobRunState_Values() []string {
	return []string{
		JobRunStateStarting,
		JobRunStateRunning,
		JobRunStateStopping,
		JobRunStateStopped,
		JobRunStateSucceeded,
		JobRunStateFailed,
		JobRunStateTimeout,
	}
}

const (
	// JobTypeProfile is a JobType enum value
	JobTypeProfile = "PROFILE"

	// JobTypeRecipe is a JobType enum value
	JobTypeRecipe = "RECIPE"
)

// JobType_Values returns all elements of the JobType enum
func JobType_Values() []string {
	return []string{
		JobTypeProfile,
		JobTypeRecipe,
	}
}

const (
	// LogSubscriptionEnable is a LogSubscription enum value
	LogSubscriptionEnable = "ENABLE"

	// LogSubscriptionDisable is a LogSubscription enum value
	LogSubscriptionDisable = "DISABLE"
)

// LogSubscription_Values returns all elements of the LogSubscription enum
func LogSubscription_Values() []string {
	return []string{
		LogSubscriptionEnable,
		LogSubscriptionDisable,
	}
}

const (
	// OrderDescending is a Order enum value
	OrderDescending = "DESCENDING"

	// OrderAscending is a Order enum value
	OrderAscending = "ASCENDING"
)

// Order_Values returns all elements of the Order enum
func Order_Values() []string {
	return []string{
		OrderDescending,
		OrderAscending,
	}
}

const (
	// OrderedByLastModifiedDate is a OrderedBy enum value
	OrderedByLastModifiedDate = "LAST_MODIFIED_DATE"
)

// OrderedBy_Values returns all elements of the OrderedBy enum
func OrderedBy_Values() []string {
	return []string{
		OrderedByLastModifiedDate,
	}
}

const (
	// OutputFormatCsv is a OutputFormat enum value
	OutputFormatCsv = "CSV"

	// OutputFormatJson is a OutputFormat enum value
	OutputFormatJson = "JSON"

	// OutputFormatParquet is a OutputFormat enum value
	OutputFormatParquet = "PARQUET"

	// OutputFormatGlueparquet is a OutputFormat enum value
	OutputFormatGlueparquet = "GLUEPARQUET"

	// OutputFormatAvro is a OutputFormat enum value
	OutputFormatAvro = "AVRO"

	// OutputFormatOrc is a OutputFormat enum value
	OutputFormatOrc = "ORC"

	// OutputFormatXml is a OutputFormat enum value
	OutputFormatXml = "XML"

	// OutputFormatTableauhyper is a OutputFormat enum value
	OutputFormatTableauhyper = "TABLEAUHYPER"
)

// OutputFormat_Values returns all elements of the OutputFormat enum
func OutputFormat_Values() []string {
	return []string{
		OutputFormatCsv,
		OutputFormatJson,
		OutputFormatParquet,
		OutputFormatGlueparquet,
		OutputFormatAvro,
		OutputFormatOrc,
		OutputFormatXml,
		OutputFormatTableauhyper,
	}
}

const (
	// ParameterTypeDatetime is a ParameterType enum value
	ParameterTypeDatetime = "Datetime"

	// ParameterTypeNumber is a ParameterType enum value
	ParameterTypeNumber = "Number"

	// ParameterTypeString is a ParameterType enum value
	ParameterTypeString = "String"
)

// ParameterType_Values returns all elements of the ParameterType enum
func ParameterType_Values() []string {
	return []string{
		ParameterTypeDatetime,
		ParameterTypeNumber,
		ParameterTypeString,
	}
}

const (
	// SampleModeFullDataset is a SampleMode enum value
	SampleModeFullDataset = "FULL_DATASET"

	// SampleModeCustomRows is a SampleMode enum value
	SampleModeCustomRows = "CUSTOM_ROWS"
)

// SampleMode_Values returns all elements of the SampleMode enum
func SampleMode_Values() []string {
	return []string{
		SampleModeFullDataset,
		SampleModeCustomRows,
	}
}

const (
	// SampleTypeFirstN is a SampleType enum value
	SampleTypeFirstN = "FIRST_N"

	// SampleTypeLastN is a SampleType enum value
	SampleTypeLastN = "LAST_N"

	// SampleTypeRandom is a SampleType enum value
	SampleTypeRandom = "RANDOM"
)

// SampleType_Values returns all elements of the SampleType enum
func SampleType_Values() []string {
	return []string{
		SampleTypeFirstN,
		SampleTypeLastN,
		SampleTypeRandom,
	}
}

const (
	// SessionStatusAssigned is a SessionStatus enum value
	SessionStatusAssigned = "ASSIGNED"

	// SessionStatusFailed is a SessionStatus enum value
	SessionStatusFailed = "FAILED"

	// SessionStatusInitializing is a SessionStatus enum value
	SessionStatusInitializing = "INITIALIZING"

	// SessionStatusProvisioning is a SessionStatus enum value
	SessionStatusProvisioning = "PROVISIONING"

	// SessionStatusReady is a SessionStatus enum value
	SessionStatusReady = "READY"

	// SessionStatusRecycling is a SessionStatus enum value
	SessionStatusRecycling = "RECYCLING"

	// SessionStatusRotating is a SessionStatus enum value
	SessionStatusRotating = "ROTATING"

	// SessionStatusTerminated is a SessionStatus enum value
	SessionStatusTerminated = "TERMINATED"

	// SessionStatusTerminating is a SessionStatus enum value
	SessionStatusTerminating = "TERMINATING"

	// SessionStatusUpdating is a SessionStatus enum value
	SessionStatusUpdating = "UPDATING"
)

// SessionStatus_Values returns all elements of the SessionStatus enum
func SessionStatus_Values() []string {
	return []string{
		SessionStatusAssigned,
		SessionStatusFailed,
		SessionStatusInitializing,
		SessionStatusProvisioning,
		SessionStatusReady,
		SessionStatusRecycling,
		SessionStatusRotating,
		SessionStatusTerminated,
		SessionStatusTerminating,
		SessionStatusUpdating,
	}
}

const (
	// SourceS3 is a Source enum value
	SourceS3 = "S3"

	// SourceDataCatalog is a Source enum value
	SourceDataCatalog = "DATA-CATALOG"

	// SourceDatabase is a Source enum value
	SourceDatabase = "DATABASE"
)

// Source_Values returns all elements of the Source enum
func Source_Values() []string {
	return []string{
		SourceS3,
		SourceDataCatalog,
		SourceDatabase,
	}
}

const (
	// ThresholdTypeGreaterThanOrEqual is a ThresholdType enum value
	ThresholdTypeGreaterThanOrEqual = "GREATER_THAN_OR_EQUAL"

	// ThresholdTypeLessThanOrEqual is a ThresholdType enum value
	ThresholdTypeLessThanOrEqual = "LESS_THAN_OR_EQUAL"

	// ThresholdTypeGreaterThan is a ThresholdType enum value
	ThresholdTypeGreaterThan = "GREATER_THAN"

	// ThresholdTypeLessThan is a ThresholdType enum value
	ThresholdTypeLessThan = "LESS_THAN"
)

// ThresholdType_Values returns all elements of the ThresholdType enum
func ThresholdType_Values() []string {
	return []string{
		ThresholdTypeGreaterThanOrEqual,
		ThresholdTypeLessThanOrEqual,
		ThresholdTypeGreaterThan,
		ThresholdTypeLessThan,
	}
}

const (
	// ThresholdUnitCount is a ThresholdUnit enum value
	ThresholdUnitCount = "COUNT"

	// ThresholdUnitPercentage is a ThresholdUnit enum value
	ThresholdUnitPercentage = "PERCENTAGE"
)

// ThresholdUnit_Values returns all elements of the ThresholdUnit enum
func ThresholdUnit_Values() []string {
	return []string{
		ThresholdUnitCount,
		ThresholdUnitPercentage,
	}
}

const (
	// ValidationModeCheckAll is a ValidationMode enum value
	ValidationModeCheckAll = "CHECK_ALL"
)

// ValidationMode_Values returns all elements of the ValidationMode enum
func ValidationMode_Values() []string {
	return []string{
		ValidationModeCheckAll,
	}
}
© 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