From 8743edc4c98daf55080d4df15dda143c58341af9 Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Sat, 27 Jan 2018 03:53:29 -0500 Subject: [PATCH 001/156] deps: Bump AWS provider to support cn-northwest-1 state --- .../aws/aws-sdk-go/aws/endpoints/defaults.go | 15 +- .../github.com/aws/aws-sdk-go/aws/version.go | 2 +- .../service/applicationautoscaling/api.go | 149 +- .../service/applicationautoscaling/doc.go | 8 +- .../service/applicationautoscaling/errors.go | 18 +- .../aws/aws-sdk-go/service/ec2/api.go | 60 +- .../aws/aws-sdk-go/service/ec2/doc.go | 5 +- .../aws/aws-sdk-go/service/elb/api.go | 3 + .../aws/aws-sdk-go/service/elb/doc.go | 31 +- .../aws/aws-sdk-go/service/elb/errors.go | 6 + .../aws/aws-sdk-go/service/elbv2/api.go | 53 +- .../aws/aws-sdk-go/service/elbv2/errors.go | 4 +- .../aws/aws-sdk-go/service/gamelift/api.go | 19092 ++++++++++++++++ .../aws/aws-sdk-go/service/gamelift/doc.go | 304 + .../aws/aws-sdk-go/service/gamelift/errors.go | 102 + .../aws-sdk-go/service/gamelift/service.go | 95 + .../aws/aws-sdk-go/service/glue/api.go | 1044 +- .../aws/aws-sdk-go/service/lambda/api.go | 271 +- .../aws/aws-sdk-go/service/lambda/errors.go | 9 - .../aws/aws-sdk-go/service/rds/api.go | 317 +- .../aws/aws-sdk-go/service/ssm/api.go | 7 +- .../aws/aws-sdk-go/service/ssm/errors.go | 7 +- .../terraform-provider-aws/CHANGELOG.md | 18 +- .../terraform-provider-aws/aws/config.go | 7 + ...a_source_aws_cloudtrail_service_account.go | 1 + .../data_source_aws_elb_service_account.go | 1 + ...ata_source_aws_redshift_service_account.go | 1 + .../terraform-provider-aws/aws/provider.go | 2 + ..._aws_cloudwatch_log_subscription_filter.go | 8 + .../aws/resource_aws_dynamodb_global_table.go | 321 + .../aws/resource_aws_dynamodb_table.go | 107 +- .../aws/resource_aws_emr_cluster.go | 14 + .../aws/resource_aws_gamelift_build.go | 187 + .../aws/resource_aws_lambda_function.go | 4 + .../aws/resource_aws_rds_cluster.go | 19 +- .../aws/resource_aws_route53_record.go | 11 +- .../aws/resource_aws_sqs_queue.go | 18 +- .../terraform-provider-aws/aws/validators.go | 54 +- vendor/vendor.json | 772 +- 39 files changed, 22116 insertions(+), 1031 deletions(-) create mode 100644 vendor/github.com/aws/aws-sdk-go/service/gamelift/api.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/gamelift/doc.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/gamelift/errors.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/gamelift/service.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_global_table.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_gamelift_build.go diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go index 56f08e386..5470a8c08 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go @@ -740,6 +740,7 @@ var awsPartition = partition{ "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, + "eu-west-3": endpoint{}, "sa-east-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, @@ -1043,10 +1044,13 @@ var awsPartition = partition{ Endpoints: endpoints{ "ap-northeast-1": endpoint{}, + "ap-southeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, "us-east-1": endpoint{}, "us-east-2": endpoint{}, + "us-west-1": endpoint{}, "us-west-2": endpoint{}, }, }, @@ -1093,10 +1097,11 @@ var awsPartition = partition{ "glue": service{ Endpoints: endpoints{ - "eu-west-1": endpoint{}, - "us-east-1": endpoint{}, - "us-east-2": endpoint{}, - "us-west-2": endpoint{}, + "ap-northeast-1": endpoint{}, + "eu-west-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-2": endpoint{}, }, }, "greengrass": service{ @@ -1489,6 +1494,7 @@ var awsPartition = partition{ Endpoints: endpoints{ "eu-west-1": endpoint{}, "us-east-1": endpoint{}, + "us-east-2": endpoint{}, "us-west-2": endpoint{}, }, }, @@ -1636,6 +1642,7 @@ var awsPartition = partition{ "ap-northeast-2": endpoint{}, "ap-south-1": endpoint{}, "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-3": endpoint{}, diff --git a/vendor/github.com/aws/aws-sdk-go/aws/version.go b/vendor/github.com/aws/aws-sdk-go/aws/version.go index d220989d3..73ac333a7 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/version.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.12.59" +const SDKVersion = "1.12.67" diff --git a/vendor/github.com/aws/aws-sdk-go/service/applicationautoscaling/api.go b/vendor/github.com/aws/aws-sdk-go/service/applicationautoscaling/api.go index 6f45c454b..d775e55aa 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/applicationautoscaling/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/applicationautoscaling/api.go @@ -76,12 +76,11 @@ func (c *ApplicationAutoScaling) DeleteScalingPolicyRequest(input *DeleteScaling // for the API request. // // * ErrCodeObjectNotFoundException "ObjectNotFoundException" -// The specified object could not be found. For any Put or Register API operation, -// which depends on the existence of a scalable target, this exception is thrown -// if the scalable target with the specified service namespace, resource ID, -// and scalable dimension does not exist. For any Delete or Deregister API operation, -// this exception is thrown if the resource that is to be deleted or deregistered -// cannot be found. +// The specified object could not be found. For any operation that depends on +// the existence of a scalable target, this exception is thrown if the scalable +// target with the specified service namespace, resource ID, and scalable dimension +// does not exist. For any operation that deletes or deregisters a resource, +// this exception is thrown if the resource cannot be found. // // * ErrCodeConcurrentUpdateException "ConcurrentUpdateException" // Concurrent updates caused an exception, for example, if you request an update @@ -171,12 +170,11 @@ func (c *ApplicationAutoScaling) DeleteScheduledActionRequest(input *DeleteSched // for the API request. // // * ErrCodeObjectNotFoundException "ObjectNotFoundException" -// The specified object could not be found. For any Put or Register API operation, -// which depends on the existence of a scalable target, this exception is thrown -// if the scalable target with the specified service namespace, resource ID, -// and scalable dimension does not exist. For any Delete or Deregister API operation, -// this exception is thrown if the resource that is to be deleted or deregistered -// cannot be found. +// The specified object could not be found. For any operation that depends on +// the existence of a scalable target, this exception is thrown if the scalable +// target with the specified service namespace, resource ID, and scalable dimension +// does not exist. For any operation that deletes or deregisters a resource, +// this exception is thrown if the resource cannot be found. // // * ErrCodeConcurrentUpdateException "ConcurrentUpdateException" // Concurrent updates caused an exception, for example, if you request an update @@ -271,12 +269,11 @@ func (c *ApplicationAutoScaling) DeregisterScalableTargetRequest(input *Deregist // for the API request. // // * ErrCodeObjectNotFoundException "ObjectNotFoundException" -// The specified object could not be found. For any Put or Register API operation, -// which depends on the existence of a scalable target, this exception is thrown -// if the scalable target with the specified service namespace, resource ID, -// and scalable dimension does not exist. For any Delete or Deregister API operation, -// this exception is thrown if the resource that is to be deleted or deregistered -// cannot be found. +// The specified object could not be found. For any operation that depends on +// the existence of a scalable target, this exception is thrown if the scalable +// target with the specified service namespace, resource ID, and scalable dimension +// does not exist. For any operation that deletes or deregisters a resource, +// this exception is thrown if the resource cannot be found. // // * ErrCodeConcurrentUpdateException "ConcurrentUpdateException" // Concurrent updates caused an exception, for example, if you request an update @@ -357,8 +354,7 @@ func (c *ApplicationAutoScaling) DescribeScalableTargetsRequest(input *DescribeS // DescribeScalableTargets API operation for Application Auto Scaling. // -// Provides descriptive information about the scalable targets in the specified -// namespace. +// Gets information about the scalable targets in the specified namespace. // // You can filter the results using the ResourceIds and ScalableDimension parameters. // @@ -690,7 +686,7 @@ func (c *ApplicationAutoScaling) DescribeScalingPoliciesRequest(input *DescribeS // with a scaling policy due to a client error, for example, if the role ARN // specified for a scalable target does not have permission to call the CloudWatch // DescribeAlarms (http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html) -// API operation on behalf of your account. +// on your behalf. // // * ErrCodeInvalidNextTokenException "InvalidNextTokenException" // The next token supplied was invalid. @@ -918,8 +914,8 @@ func (c *ApplicationAutoScaling) PutScalingPolicyRequest(input *PutScalingPolicy // // Each scalable target is identified by a service namespace, resource ID, and // scalable dimension. A scaling policy applies to the scalable target identified -// by those three attributes. You cannot create a scaling policy without first -// registering a scalable target using RegisterScalableTarget. +// by those three attributes. You cannot create a scaling policy until you register +// the scalable target using RegisterScalableTarget. // // To update a policy, specify its policy name and the parameters that you want // to change. Any parameters that you don't specify are not changed by this @@ -941,17 +937,15 @@ func (c *ApplicationAutoScaling) PutScalingPolicyRequest(input *PutScalingPolicy // for the API request. // // * ErrCodeLimitExceededException "LimitExceededException" -// Your account exceeded a limit. This exception is thrown when a per-account -// resource limit is exceeded. For more information, see Application Auto Scaling -// Limits (http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_as-app). +// A per-account resource limit is exceeded. For more information, see Application +// Auto Scaling Limits (http://docs.aws.amazon.com/ApplicationAutoScaling/latest/userguide/application-auto-scaling-limits.html). // // * ErrCodeObjectNotFoundException "ObjectNotFoundException" -// The specified object could not be found. For any Put or Register API operation, -// which depends on the existence of a scalable target, this exception is thrown -// if the scalable target with the specified service namespace, resource ID, -// and scalable dimension does not exist. For any Delete or Deregister API operation, -// this exception is thrown if the resource that is to be deleted or deregistered -// cannot be found. +// The specified object could not be found. For any operation that depends on +// the existence of a scalable target, this exception is thrown if the scalable +// target with the specified service namespace, resource ID, and scalable dimension +// does not exist. For any operation that deletes or deregisters a resource, +// this exception is thrown if the resource cannot be found. // // * ErrCodeConcurrentUpdateException "ConcurrentUpdateException" // Concurrent updates caused an exception, for example, if you request an update @@ -963,7 +957,7 @@ func (c *ApplicationAutoScaling) PutScalingPolicyRequest(input *PutScalingPolicy // with a scaling policy due to a client error, for example, if the role ARN // specified for a scalable target does not have permission to call the CloudWatch // DescribeAlarms (http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html) -// API operation on behalf of your account. +// on your behalf. // // * ErrCodeInternalServiceException "InternalServiceException" // The service encountered an internal error. @@ -1039,8 +1033,8 @@ func (c *ApplicationAutoScaling) PutScheduledActionRequest(input *PutScheduledAc // // Each scalable target is identified by a service namespace, resource ID, and // scalable dimension. A scheduled action applies to the scalable target identified -// by those three attributes. You cannot create a scheduled action without first -// registering a scalable target using RegisterScalableTarget. +// by those three attributes. You cannot create a scheduled action until you +// register the scalable target using RegisterScalableTarget. // // To update an action, specify its name and the parameters that you want to // change. If you don't specify start and end times, the old values are deleted. @@ -1063,17 +1057,15 @@ func (c *ApplicationAutoScaling) PutScheduledActionRequest(input *PutScheduledAc // for the API request. // // * ErrCodeLimitExceededException "LimitExceededException" -// Your account exceeded a limit. This exception is thrown when a per-account -// resource limit is exceeded. For more information, see Application Auto Scaling -// Limits (http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_as-app). +// A per-account resource limit is exceeded. For more information, see Application +// Auto Scaling Limits (http://docs.aws.amazon.com/ApplicationAutoScaling/latest/userguide/application-auto-scaling-limits.html). // // * ErrCodeObjectNotFoundException "ObjectNotFoundException" -// The specified object could not be found. For any Put or Register API operation, -// which depends on the existence of a scalable target, this exception is thrown -// if the scalable target with the specified service namespace, resource ID, -// and scalable dimension does not exist. For any Delete or Deregister API operation, -// this exception is thrown if the resource that is to be deleted or deregistered -// cannot be found. +// The specified object could not be found. For any operation that depends on +// the existence of a scalable target, this exception is thrown if the scalable +// target with the specified service namespace, resource ID, and scalable dimension +// does not exist. For any operation that deletes or deregisters a resource, +// this exception is thrown if the resource cannot be found. // // * ErrCodeConcurrentUpdateException "ConcurrentUpdateException" // Concurrent updates caused an exception, for example, if you request an update @@ -1151,12 +1143,12 @@ func (c *ApplicationAutoScaling) RegisterScalableTargetRequest(input *RegisterSc // Registers or updates a scalable target. A scalable target is a resource that // Application Auto Scaling can scale out or scale in. After you have registered // a scalable target, you can use this operation to update the minimum and maximum -// values for your scalable dimension. +// values for its scalable dimension. // // After you register a scalable target, you can create and apply scaling policies // using PutScalingPolicy. You can view the scaling policies for a service namespace -// using DescribeScalableTargets. If you are no longer using a scalable target, -// you can deregister it using DeregisterScalableTarget. +// using DescribeScalableTargets. If you no longer need a scalable target, you +// can deregister it using DeregisterScalableTarget. // // 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 @@ -1171,9 +1163,8 @@ func (c *ApplicationAutoScaling) RegisterScalableTargetRequest(input *RegisterSc // for the API request. // // * ErrCodeLimitExceededException "LimitExceededException" -// Your account exceeded a limit. This exception is thrown when a per-account -// resource limit is exceeded. For more information, see Application Auto Scaling -// Limits (http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_as-app). +// A per-account resource limit is exceeded. For more information, see Application +// Auto Scaling Limits (http://docs.aws.amazon.com/ApplicationAutoScaling/latest/userguide/application-auto-scaling-limits.html). // // * ErrCodeConcurrentUpdateException "ConcurrentUpdateException" // Concurrent updates caused an exception, for example, if you request an update @@ -1779,8 +1770,8 @@ func (s DeregisterScalableTargetOutput) GoString() string { type DescribeScalableTargetsInput struct { _ struct{} `type:"structure"` - // The maximum number of scalable target results. This value can be between - // 1 and 50. The default value is 50. + // The maximum number of scalable targets. This value can be between 1 and 50. + // The default value is 50. // // If this parameter is used, the operation returns up to MaxResults results // at a time, along with a NextToken value. To get the next set of results, @@ -1917,7 +1908,7 @@ type DescribeScalableTargetsOutput struct { // there are no more results to return. NextToken *string `type:"string"` - // The list of scalable targets that matches the request parameters. + // The scalable targets that match the request parameters. ScalableTargets []*ScalableTarget `type:"list"` } @@ -1947,8 +1938,8 @@ func (s *DescribeScalableTargetsOutput) SetScalableTargets(v []*ScalableTarget) type DescribeScalingActivitiesInput struct { _ struct{} `type:"structure"` - // The maximum number of scalable target results. This value can be between - // 1 and 50. The default value is 50. + // The maximum number of scalable targets. This value can be between 1 and 50. + // The default value is 50. // // If this parameter is used, the operation returns up to MaxResults results // at a time, along with a NextToken value. To get the next set of results, @@ -2118,8 +2109,8 @@ func (s *DescribeScalingActivitiesOutput) SetScalingActivities(v []*ScalingActiv type DescribeScalingPoliciesInput struct { _ struct{} `type:"structure"` - // The maximum number of scalable target results. This value can be between - // 1 and 50. The default value is 50. + // The maximum number of scalable targets. This value can be between 1 and 50. + // The default value is 50. // // If this parameter is used, the operation returns up to MaxResults results // at a time, along with a NextToken value. To get the next set of results, @@ -2534,14 +2525,14 @@ type PredefinedMetricSpecification struct { _ struct{} `type:"structure"` // The metric type. The ALBRequestCountPerTarget metric type applies only to - // Spot fleet requests. + // Spot fleet requests and ECS services. // // PredefinedMetricType is a required field PredefinedMetricType *string `type:"string" required:"true" enum:"MetricType"` // Identifies the resource associated with the metric type. You can't specify // a resource label unless the metric type is ALBRequestCountPerTarget and there - // is a target group attached to the Spot fleet request. + // is a target group attached to the Spot fleet request or ECS service. // // The format is app///targetgroup//, // where: @@ -2601,11 +2592,11 @@ type PutScalingPolicyInput struct { // PolicyName is a required field PolicyName *string `min:"1" type:"string" required:"true"` - // The policy type. If you are creating a new policy, this parameter is required. - // If you are updating a policy, this parameter is not required. + // The policy type. This parameter is required if you are creating a policy. // - // For DynamoDB, only TargetTrackingScaling is supported. For any other service, - // only StepScaling is supported. + // For DynamoDB, only TargetTrackingScaling is supported. For Amazon ECS, Spot + // Fleet, and Amazon RDS, both StepScaling and TargetTrackingScaling are supported. + // For any other service, only StepScaling is supported. PolicyType *string `type:"string" enum:"PolicyType"` // The identifier of the resource associated with the scaling policy. This string @@ -2682,8 +2673,8 @@ type PutScalingPolicyInput struct { // A target tracking policy. // - // This parameter is required if you are creating a new policy and the policy - // type is TargetTrackingScaling. + // This parameter is required if you are creating a policy and the policy type + // is TargetTrackingScaling. TargetTrackingScalingPolicyConfiguration *TargetTrackingScalingPolicyConfiguration `type:"structure"` } @@ -2846,7 +2837,8 @@ type PutScheduledActionInput struct { // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` - // The scalable dimension. This string consists of the service namespace, resource + // The scalable dimension. This parameter is required if you are creating a + // scheduled action. This string consists of the service namespace, resource // type, and scaling property. // // * ecs:service:DesiredCount - The desired task count of an ECS service. @@ -3021,13 +3013,11 @@ type RegisterScalableTargetInput struct { _ struct{} `type:"structure"` // The maximum value to scale to in response to a scale out event. This parameter - // is required if you are registering a scalable target and optional if you - // are updating one. + // is required if you are registering a scalable target. MaxCapacity *int64 `type:"integer"` // The minimum value to scale to in response to a scale in event. This parameter - // is required if you are registering a scalable target and optional if you - // are updating one. + // is required if you are registering a scalable target. MinCapacity *int64 `type:"integer"` // The identifier of the resource associated with the scalable target. This @@ -3057,16 +3047,13 @@ type RegisterScalableTargetInput struct { // ResourceId is a required field ResourceId *string `min:"1" type:"string" required:"true"` - // The ARN of an IAM role that allows Application Auto Scaling to modify the - // scalable target on your behalf. - // - // With Amazon RDS resources, permissions are granted using a service-linked - // role. For more information, see Service-Linked Roles for Application Auto - // Scaling (http://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/application-autoscaling-service-linked-roles.html). + // Application Auto Scaling creates a service-linked role that grants it permissions + // to modify the scalable target on your behalf. For more information, see Service-Linked + // Roles for Application Auto Scaling (http://docs.aws.amazon.com/ApplicationAutoScaling/latest/APIReference/application-autoscaling-service-linked-roles.html). // // For resources that are not supported using a service-linked role, this parameter - // is required when you register a scalable target and optional when you update - // one. + // is required and must specify the ARN of an IAM role that allows Application + // Auto Scaling to modify the scalable target on your behalf. RoleARN *string `min:"1" type:"string"` // The scalable dimension associated with the scalable target. This string consists @@ -4293,6 +4280,12 @@ const ( // MetricTypeEc2spotFleetRequestAverageNetworkOut is a MetricType enum value MetricTypeEc2spotFleetRequestAverageNetworkOut = "EC2SpotFleetRequestAverageNetworkOut" + + // MetricTypeEcsserviceAverageCpuutilization is a MetricType enum value + MetricTypeEcsserviceAverageCpuutilization = "ECSServiceAverageCPUUtilization" + + // MetricTypeEcsserviceAverageMemoryUtilization is a MetricType enum value + MetricTypeEcsserviceAverageMemoryUtilization = "ECSServiceAverageMemoryUtilization" ) const ( diff --git a/vendor/github.com/aws/aws-sdk-go/service/applicationautoscaling/doc.go b/vendor/github.com/aws/aws-sdk-go/service/applicationautoscaling/doc.go index 2b16a63fb..7e8c1a102 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/applicationautoscaling/doc.go +++ b/vendor/github.com/aws/aws-sdk-go/service/applicationautoscaling/doc.go @@ -11,13 +11,15 @@ // // * Scale your resources in response to CloudWatch alarms // +// * Schedule one-time or recurring scaling actions +// // * View the history of your scaling events // // Application Auto Scaling can scale the following AWS resources: // // * Amazon ECS services. For more information, see Service Auto Scaling // (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html) -// in the Amazon EC2 Container Service Developer Guide. +// in the Amazon Elastic Container Service Developer Guide. // // * Amazon EC2 Spot fleets. For more information, see Automatic Scaling // for Spot Fleet (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/fleet-auto-scaling.html) @@ -36,8 +38,8 @@ // Automatically with DynamoDB Auto Scaling (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/AutoScaling.html) // in the Amazon DynamoDB Developer Guide. // -// * Amazon Aurora Replicas. For more information, see Using Application -// Auto Scaling with an Amazon Aurora DB Cluster (http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Integrating.AutoScaling.html). +// * Amazon Aurora Replicas. For more information, see Using Amazon Aurora +// Auto Scaling with Aurora Replicas (http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Integrating.AutoScaling.html). // // For a list of supported regions, see AWS Regions and Endpoints: Application // Auto Scaling (http://docs.aws.amazon.com/general/latest/gr/rande.html#as-app_region) diff --git a/vendor/github.com/aws/aws-sdk-go/service/applicationautoscaling/errors.go b/vendor/github.com/aws/aws-sdk-go/service/applicationautoscaling/errors.go index 62badcc4e..bf1476bd7 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/applicationautoscaling/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/applicationautoscaling/errors.go @@ -19,7 +19,7 @@ const ( // with a scaling policy due to a client error, for example, if the role ARN // specified for a scalable target does not have permission to call the CloudWatch // DescribeAlarms (http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DescribeAlarms.html) - // API operation on behalf of your account. + // on your behalf. ErrCodeFailedResourceAccessException = "FailedResourceAccessException" // ErrCodeInternalServiceException for service response error code @@ -37,20 +37,18 @@ const ( // ErrCodeLimitExceededException for service response error code // "LimitExceededException". // - // Your account exceeded a limit. This exception is thrown when a per-account - // resource limit is exceeded. For more information, see Application Auto Scaling - // Limits (http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_as-app). + // A per-account resource limit is exceeded. For more information, see Application + // Auto Scaling Limits (http://docs.aws.amazon.com/ApplicationAutoScaling/latest/userguide/application-auto-scaling-limits.html). ErrCodeLimitExceededException = "LimitExceededException" // ErrCodeObjectNotFoundException for service response error code // "ObjectNotFoundException". // - // The specified object could not be found. For any Put or Register API operation, - // which depends on the existence of a scalable target, this exception is thrown - // if the scalable target with the specified service namespace, resource ID, - // and scalable dimension does not exist. For any Delete or Deregister API operation, - // this exception is thrown if the resource that is to be deleted or deregistered - // cannot be found. + // The specified object could not be found. For any operation that depends on + // the existence of a scalable target, this exception is thrown if the scalable + // target with the specified service namespace, resource ID, and scalable dimension + // does not exist. For any operation that deletes or deregisters a resource, + // this exception is thrown if the resource cannot be found. ErrCodeObjectNotFoundException = "ObjectNotFoundException" // ErrCodeValidationException for service response error code diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go b/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go index 4598ccd82..1743b3449 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go @@ -5428,6 +5428,10 @@ func (c *EC2) CreateVpcPeeringConnectionRequest(input *CreateVpcPeeringConnectio // the requester VPC. The requester VPC and accepter VPC cannot have overlapping // CIDR blocks. // +// Limitations and rules apply to a VPC peering connection. For more information, +// see the limitations (http://docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/vpc-peering-basics.html#vpc-peering-limitations) +// section in the VPC Peering Guide. +// // The owner of the accepter VPC must accept the peering request to activate // the peering connection. The VPC peering connection request expires after // 7 days, after which it cannot be accepted or rejected. @@ -18933,9 +18937,9 @@ func (c *EC2) ModifyVpcEndpointServicePermissionsRequest(input *ModifyVpcEndpoin // ModifyVpcEndpointServicePermissions API operation for Amazon Elastic Compute Cloud. // -// Modifies the permissions for your VPC endpoint service. You can add or remove -// permissions for service consumers (IAM users, IAM roles, and AWS accounts) -// to discover your endpoint service. +// Modifies the permissions for your VPC endpoint service (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/endpoint-service.html). +// You can add or remove permissions for service consumers (IAM users, IAM roles, +// and AWS accounts) to connect to your endpoint service. // // 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 @@ -29784,7 +29788,7 @@ type CreateVpcEndpointInput struct { SecurityGroupIds []*string `locationName:"SecurityGroupId" locationNameList:"item" type:"list"` // The service name. To get a list of available services, use the DescribeVpcEndpointServices - // request. + // request, or get the name from the service provider. // // ServiceName is a required field ServiceName *string `type:"string" required:"true"` @@ -33150,6 +33154,18 @@ type DescribeAddressesInput struct { // the Elastic IP address. // // * public-ip - The Elastic IP address. + // + // * tag:key=value - The key/value combination of a tag assigned to the resource. + // Specify the key of the tag in the filter name and the value of the tag + // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose + // for the filter name and X for the filter value. + // + // * tag-key - The key of a tag assigned to the resource. This filter is + // independent of the tag-value filter. For example, if you use both the + // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources + // assigned both the tag key Purpose (regardless of what the tag's value + // is), and the tag value X (regardless of the tag's key). If you want to + // list only resources where Purpose is X, see the tag:key=value filter. Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` // [EC2-Classic] One or more Elastic IP addresses. @@ -36657,6 +36673,18 @@ type DescribeLaunchTemplatesInput struct { // * create-time - The time the launch template was created. // // * launch-template-name - The name of the launch template. + // + // * tag:key=value - The key/value combination of a tag assigned to the resource. + // Specify the key of the tag in the filter name and the value of the tag + // in the filter value. For example, for the tag Purpose=X, specify tag:Purpose + // for the filter name and X for the filter value. + // + // * tag-key - The key of a tag assigned to the resource. This filter is + // independent of the tag-value filter. For example, if you use both the + // filter "tag-key=Purpose" and the filter "tag-value=X", you get any resources + // assigned both the tag key Purpose (regardless of what the tag's value + // is), and the tag value X (regardless of the tag's key). If you want to + // list only resources where Purpose is X, see the tag:key=value filter. Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` // One or more launch template IDs. @@ -40335,9 +40363,10 @@ type DescribeTagsInput struct { // * resource-id - The resource ID. // // * resource-type - The resource type (customer-gateway | dhcp-options | - // image | instance | internet-gateway | network-acl | network-interface - // | reserved-instances | route-table | security-group | snapshot | spot-instances-request - // | subnet | volume | vpc | vpn-connection | vpn-gateway). + // elastic-ip | fpga-image | image | instance | internet-gateway | launch-template + // | natgateway | network-acl | network-interface | reserved-instances | + // route-table | security-group | snapshot | spot-instances-request | subnet + // | volume | vpc | vpc-peering-connection | vpn-connection | vpn-gateway). // // * value - The tag value. Filters []*Filter `locationName:"Filter" locationNameList:"Filter" type:"list"` @@ -49533,7 +49562,8 @@ func (s *InternetGateway) SetTags(v []*Tag) *InternetGateway { type InternetGatewayAttachment struct { _ struct{} `type:"structure"` - // The current state of the attachment. + // The current state of the attachment. For an Internet gateway, the state is + // available when attached to a VPC; otherwise, this value is not returned. State *string `locationName:"state" type:"string" enum:"AttachmentStatus"` // The ID of the VPC. @@ -60763,7 +60793,9 @@ type RunInstancesInput struct { // The IAM instance profile. IamInstanceProfile *IamInstanceProfileSpecification `locationName:"iamInstanceProfile" type:"structure"` - // The ID of the AMI, which you can get by calling DescribeImages. + // The ID of the AMI, which you can get by calling DescribeImages. An AMI is + // required to launch an instance and must be specified here or in a launch + // template. ImageId *string `type:"string"` // Indicates whether an instance stops or terminates when you initiate shutdown @@ -66149,13 +66181,19 @@ type UserIdGroupPair struct { // The name of the security group. In a request, use this parameter for a security // group in EC2-Classic or a default VPC only. For a security group in a nondefault // VPC, use the security group ID. + // + // For a referenced security group in another VPC, this value is not returned + // if the referenced security group is deleted. GroupName *string `locationName:"groupName" type:"string"` // The status of a VPC peering connection, if applicable. PeeringStatus *string `locationName:"peeringStatus" type:"string"` - // The ID of an AWS account. For a referenced security group in another VPC, - // the account ID of the referenced security group is returned. + // The ID of an AWS account. + // + // For a referenced security group in another VPC, the account ID of the referenced + // security group is returned in the response. If the referenced security group + // is deleted, this value is not returned. // // [EC2-Classic] Required when adding or removing rules that reference a security // group in another AWS account. diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/doc.go b/vendor/github.com/aws/aws-sdk-go/service/ec2/doc.go index 1ba51125e..432a54df4 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ec2/doc.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/doc.go @@ -4,9 +4,8 @@ // requests to Amazon Elastic Compute Cloud. // // Amazon Elastic Compute Cloud (Amazon EC2) provides resizable computing capacity -// in the Amazon Web Services (AWS) cloud. Using Amazon EC2 eliminates your -// need to invest in hardware up front, so you can develop and deploy applications -// faster. +// in the AWS Cloud. Using Amazon EC2 eliminates your need to invest in hardware +// up front, so you can develop and deploy applications faster. // // See https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15 for more information on this service. // diff --git a/vendor/github.com/aws/aws-sdk-go/service/elb/api.go b/vendor/github.com/aws/aws-sdk-go/service/elb/api.go index 49be25788..521a88d8a 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/elb/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/elb/api.go @@ -682,6 +682,9 @@ func (c *ELB) CreateLoadBalancerRequest(input *CreateLoadBalancerInput) (req *re // * ErrCodeUnsupportedProtocolException "UnsupportedProtocol" // The specified protocol or signature version is not supported. // +// * ErrCodeOperationNotPermittedException "OperationNotPermitted" +// This operation is not allowed. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateLoadBalancer func (c *ELB) CreateLoadBalancer(input *CreateLoadBalancerInput) (*CreateLoadBalancerOutput, error) { req, out := c.CreateLoadBalancerRequest(input) diff --git a/vendor/github.com/aws/aws-sdk-go/service/elb/doc.go b/vendor/github.com/aws/aws-sdk-go/service/elb/doc.go index 53c2a067a..0b93ed474 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/elb/doc.go +++ b/vendor/github.com/aws/aws-sdk-go/service/elb/doc.go @@ -3,27 +3,22 @@ // Package elb provides the client and types for making API // requests to Elastic Load Balancing. // -// A load balancer distributes incoming traffic across your EC2 instances. This -// enables you to increase the availability of your application. The load balancer -// also monitors the health of its registered instances and ensures that it -// routes traffic only to healthy instances. You configure your load balancer -// to accept incoming traffic by specifying one or more listeners, which are -// configured with a protocol and port number for connections from clients to -// the load balancer and a protocol and port number for connections from the -// load balancer to the instances. +// A load balancer can distribute incoming traffic across your EC2 instances. +// This enables you to increase the availability of your application. The load +// balancer also monitors the health of its registered instances and ensures +// that it routes traffic only to healthy instances. You configure your load +// balancer to accept incoming traffic by specifying one or more listeners, +// which are configured with a protocol and port number for connections from +// clients to the load balancer and a protocol and port number for connections +// from the load balancer to the instances. // -// Elastic Load Balancing supports two types of load balancers: Classic Load -// Balancers and Application Load Balancers (new). A Classic Load Balancer makes -// routing and load balancing decisions either at the transport layer (TCP/SSL) -// or the application layer (HTTP/HTTPS), and supports either EC2-Classic or -// a VPC. An Application Load Balancer makes routing and load balancing decisions -// at the application layer (HTTP/HTTPS), supports path-based routing, and can -// route requests to one or more ports on each EC2 instance or container instance -// in your virtual private cloud (VPC). For more information, see the Elastic -// Load Balancing User Guide (http://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html). +// Elastic Load Balancing supports three types of load balancers: Application +// Load Balancers, Network Load Balancers, and Classic Load Balancers. You can +// select a load balancer based on your application needs. For more information, +// see the Elastic Load Balancing User Guide (http://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/). // // This reference covers the 2012-06-01 API, which supports Classic Load Balancers. -// The 2015-12-01 API supports Application Load Balancers. +// The 2015-12-01 API supports Application Load Balancers and Network Load Balancers. // // To get started, create a load balancer with one or more listeners using CreateLoadBalancer. // Register your instances with the load balancer using RegisterInstancesWithLoadBalancer. diff --git a/vendor/github.com/aws/aws-sdk-go/service/elb/errors.go b/vendor/github.com/aws/aws-sdk-go/service/elb/errors.go index 77ffb20ec..fbf2140d8 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/elb/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/elb/errors.go @@ -91,6 +91,12 @@ const ( // The specified load balancer attribute does not exist. ErrCodeLoadBalancerAttributeNotFoundException = "LoadBalancerAttributeNotFound" + // ErrCodeOperationNotPermittedException for service response error code + // "OperationNotPermitted". + // + // This operation is not allowed. + ErrCodeOperationNotPermittedException = "OperationNotPermitted" + // ErrCodePolicyNotFoundException for service response error code // "PolicyNotFound". // diff --git a/vendor/github.com/aws/aws-sdk-go/service/elbv2/api.go b/vendor/github.com/aws/aws-sdk-go/service/elbv2/api.go index 59c283c4b..6e79ddf97 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/elbv2/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/elbv2/api.go @@ -245,14 +245,12 @@ func (c *ELBV2) CreateListenerRequest(input *CreateListenerInput) (req *request. // Creates a listener for the specified Application Load Balancer or Network // Load Balancer. // +// You can create up to 10 listeners per load balancer. +// // To update a listener, use ModifyListener. When you are finished with a listener, // you can delete it using DeleteListener. If you are finished with both the // listener and the load balancer, you can delete them both using DeleteLoadBalancer. // -// This operation is idempotent, which means that it completes at most one time. -// If you attempt to create multiple listeners with the same settings, each -// call succeeds. -// // For more information, see Listeners for Your Application Load Balancers (http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html) // in the Application Load Balancers Guide and Listeners for Your Network Load // Balancers (http://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-listeners.html) @@ -382,15 +380,13 @@ func (c *ELBV2) CreateLoadBalancerRequest(input *CreateLoadBalancerInput) (req * // your current load balancers, see DescribeLoadBalancers. When you are finished // with a load balancer, you can delete it using DeleteLoadBalancer. // -// For limit information, see Limits for Your Application Load Balancer (http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html) +// You can create up to 20 load balancers per region per account. You can request +// an increase for the number of load balancers for your account. For more information, +// see Limits for Your Application Load Balancer (http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html) // in the Application Load Balancers Guide and Limits for Your Network Load // Balancer (http://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-limits.html) // in the Network Load Balancers Guide. // -// This operation is idempotent, which means that it completes at most one time. -// If you attempt to create multiple load balancers with the same settings, -// each call succeeds. -// // For more information, see Application Load Balancers (http://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html) // in the Application Load Balancers Guide and Network Load Balancers (http://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html) // in the Network Load Balancers Guide. @@ -439,6 +435,9 @@ func (c *ELBV2) CreateLoadBalancerRequest(input *CreateLoadBalancerInput) (req * // * ErrCodeAvailabilityZoneNotSupportedException "AvailabilityZoneNotSupported" // The specified Availability Zone is not supported. // +// * ErrCodeOperationNotPermittedException "OperationNotPermitted" +// This operation is not allowed. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateLoadBalancer func (c *ELBV2) CreateLoadBalancer(input *CreateLoadBalancerInput) (*CreateLoadBalancerOutput, error) { req, out := c.CreateLoadBalancerRequest(input) @@ -634,10 +633,6 @@ func (c *ELBV2) CreateTargetGroupRequest(input *CreateTargetGroupInput) (req *re // // To delete a target group, use DeleteTargetGroup. // -// This operation is idempotent, which means that it completes at most one time. -// If you attempt to create multiple target groups with the same settings, each -// call succeeds. -// // For more information, see Target Groups for Your Application Load Balancers // (http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html) // in the Application Load Balancers Guide or Target Groups for Your Network @@ -1083,8 +1078,8 @@ func (c *ELBV2) DeregisterTargetsRequest(input *DeregisterTargetsInput) (req *re // The specified target group does not exist. // // * ErrCodeInvalidTargetException "InvalidTarget" -// The specified target does not exist, is not in the same VPC as the target -// group, or has an unsupported instance type. +// The specified target does not exist or is not in the same VPC as the target +// group. // // See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DeregisterTargets func (c *ELBV2) DeregisterTargets(input *DeregisterTargetsInput) (*DeregisterTargetsOutput, error) { @@ -2158,8 +2153,8 @@ func (c *ELBV2) DescribeTargetHealthRequest(input *DescribeTargetHealthInput) (r // // Returned Error Codes: // * ErrCodeInvalidTargetException "InvalidTarget" -// The specified target does not exist, is not in the same VPC as the target -// group, or has an unsupported instance type. +// The specified target does not exist or is not in the same VPC as the target +// group. // // * ErrCodeTargetGroupNotFoundException "TargetGroupNotFound" // The specified target group does not exist. @@ -2743,8 +2738,8 @@ func (c *ELBV2) RegisterTargetsRequest(input *RegisterTargetsInput) (req *reques // You've reached the limit on the number of targets. // // * ErrCodeInvalidTargetException "InvalidTarget" -// The specified target does not exist, is not in the same VPC as the target -// group, or has an unsupported instance type. +// The specified target does not exist or is not in the same VPC as the target +// group. // // * ErrCodeTooManyRegistrationsForTargetIdException "TooManyRegistrationsForTargetId" // You've reached the limit on the number of times a target can be registered @@ -3821,11 +3816,10 @@ type CreateLoadBalancerInput struct { // one subnet per Availability Zone. You must specify either subnets or subnet // mappings. // - // [Application Load Balancers] You must specify subnets from at least two Availability - // Zones. You cannot specify Elastic IP addresses for your subnets. + // [Network Load Balancers] You can specify one Elastic IP address per subnet. // - // [Network Load Balancers] You can specify subnets from one or more Availability - // Zones. You can specify one Elastic IP address per subnet. + // [Application Load Balancers] You cannot specify Elastic IP addresses for + // your subnets. SubnetMappings []*SubnetMapping `type:"list"` // The IDs of the subnets to attach to the load balancer. You can specify only @@ -3834,9 +3828,6 @@ type CreateLoadBalancerInput struct { // // [Application Load Balancers] You must specify subnets from at least two Availability // Zones. - // - // [Network Load Balancers] You can specify subnets from one or more Availability - // Zones. Subnets []*string `type:"list"` // One or more tags to assign to the load balancer. @@ -5606,10 +5597,6 @@ type Limit struct { // * target-groups // // * targets-per-application-load-balancer - // - // * targets-per-availability-zone-per-network-load-balancer - // - // * targets-per-network-load-balancer Name *string `type:"string"` } @@ -7183,7 +7170,8 @@ type SetSubnetsInput struct { // Zones. You can specify only one subnet per Availability Zone. You must specify // either subnets or subnet mappings. // - // You cannot specify Elastic IP addresses for your subnets. + // The load balancer is allocated one static IP address per subnet. You cannot + // specify your own Elastic IP addresses. SubnetMappings []*SubnetMapping `type:"list"` // The IDs of the subnets. You must specify subnets from at least two Availability @@ -7667,9 +7655,6 @@ type TargetGroupAttribute struct { // from draining to unused. The range is 0-3600 seconds. The default value // is 300 seconds. // - // * proxy_protocol_v2.enabled - [Network Load Balancers] Indicates whether - // Proxy Protocol version 2 is enabled. - // // * stickiness.enabled - [Application Load Balancers] Indicates whether // sticky sessions are enabled. The value is true or false. // diff --git a/vendor/github.com/aws/aws-sdk-go/service/elbv2/errors.go b/vendor/github.com/aws/aws-sdk-go/service/elbv2/errors.go index 88edc02e9..4571d645d 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/elbv2/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/elbv2/errors.go @@ -86,8 +86,8 @@ const ( // ErrCodeInvalidTargetException for service response error code // "InvalidTarget". // - // The specified target does not exist, is not in the same VPC as the target - // group, or has an unsupported instance type. + // The specified target does not exist or is not in the same VPC as the target + // group. ErrCodeInvalidTargetException = "InvalidTarget" // ErrCodeListenerNotFoundException for service response error code diff --git a/vendor/github.com/aws/aws-sdk-go/service/gamelift/api.go b/vendor/github.com/aws/aws-sdk-go/service/gamelift/api.go new file mode 100644 index 000000000..7aa602357 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/gamelift/api.go @@ -0,0 +1,19092 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package gamelift + +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/jsonrpc" +) + +const opAcceptMatch = "AcceptMatch" + +// AcceptMatchRequest generates a "aws/request.Request" representing the +// client's request for the AcceptMatch operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 AcceptMatch for more information on using the AcceptMatch +// 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 AcceptMatchRequest method. +// req, resp := client.AcceptMatchRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/AcceptMatch +func (c *GameLift) AcceptMatchRequest(input *AcceptMatchInput) (req *request.Request, output *AcceptMatchOutput) { + op := &request.Operation{ + Name: opAcceptMatch, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &AcceptMatchInput{} + } + + output = &AcceptMatchOutput{} + req = c.newRequest(op, input, output) + return +} + +// AcceptMatch API operation for Amazon GameLift. +// +// Registers a player's acceptance or rejection of a proposed FlexMatch match. +// A matchmaking configuration may require player acceptance; if so, then matches +// built with that configuration cannot be completed unless all players accept +// the proposed match within a specified time limit. +// +// When FlexMatch builds a match, all the matchmaking tickets involved in the +// proposed match are placed into status REQUIRES_ACCEPTANCE. This is a trigger +// for your game to get acceptance from all players in the ticket. Acceptances +// are only valid for tickets when they are in this status; all other acceptances +// result in an error. +// +// To register acceptance, specify the ticket ID, a response, and one or more +// players. Once all players have registered acceptance, the matchmaking tickets +// advance to status PLACING, where a new game session is created for the match. +// +// If any player rejects the match, or if acceptances are not received before +// a specified timeout, the proposed match is dropped. The matchmaking tickets +// are then handled in one of two ways: For tickets where all players accepted +// the match, the ticket status is returned to SEARCHING to find a new match. +// For tickets where one or more players failed to accept the match, the ticket +// status is set to FAILED, and processing is terminated. A new matchmaking +// request for these players can be submitted as needed. +// +// Matchmaking-related operations include: +// +// * StartMatchmaking +// +// * DescribeMatchmaking +// +// * StopMatchmaking +// +// * AcceptMatch +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation AcceptMatch for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeUnsupportedRegionException "UnsupportedRegionException" +// The requested operation is not supported in the region specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/AcceptMatch +func (c *GameLift) AcceptMatch(input *AcceptMatchInput) (*AcceptMatchOutput, error) { + req, out := c.AcceptMatchRequest(input) + return out, req.Send() +} + +// AcceptMatchWithContext is the same as AcceptMatch with the addition of +// the ability to pass a context and additional request options. +// +// See AcceptMatch 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 *GameLift) AcceptMatchWithContext(ctx aws.Context, input *AcceptMatchInput, opts ...request.Option) (*AcceptMatchOutput, error) { + req, out := c.AcceptMatchRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateAlias = "CreateAlias" + +// CreateAliasRequest generates a "aws/request.Request" representing the +// client's request for the CreateAlias operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreateAlias for more information on using the CreateAlias +// 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 CreateAliasRequest method. +// req, resp := client.CreateAliasRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateAlias +func (c *GameLift) CreateAliasRequest(input *CreateAliasInput) (req *request.Request, output *CreateAliasOutput) { + op := &request.Operation{ + Name: opCreateAlias, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateAliasInput{} + } + + output = &CreateAliasOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateAlias API operation for Amazon GameLift. +// +// Creates an alias for a fleet. In most situations, you can use an alias ID +// in place of a fleet ID. By using a fleet alias instead of a specific fleet +// ID, you can switch gameplay and players to a new fleet without changing your +// game client or other game components. For example, for games in production, +// using an alias allows you to seamlessly redirect your player base to a new +// game server update. +// +// Amazon GameLift supports two types of routing strategies for aliases: simple +// and terminal. A simple alias points to an active fleet. A terminal alias +// is used to display messaging or link to a URL instead of routing players +// to an active fleet. For example, you might use a terminal alias when a game +// version is no longer supported and you want to direct players to an upgrade +// site. +// +// To create a fleet alias, specify an alias name, routing strategy, and optional +// description. Each simple alias can point to only one fleet, but a fleet can +// have multiple aliases. If successful, a new alias record is returned, including +// an alias ID, which you can reference when creating a game session. You can +// reassign an alias to another fleet by calling UpdateAlias. +// +// Alias-related operations include: +// +// * CreateAlias +// +// * ListAliases +// +// * DescribeAlias +// +// * UpdateAlias +// +// * DeleteAlias +// +// * ResolveAlias +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation CreateAlias for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeConflictException "ConflictException" +// The requested operation would cause a conflict with the current state of +// a service resource associated with the request. Resolve the conflict before +// retrying this request. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// The requested operation would cause the resource to exceed the allowed service +// limit. Resolve the issue before retrying. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateAlias +func (c *GameLift) CreateAlias(input *CreateAliasInput) (*CreateAliasOutput, error) { + req, out := c.CreateAliasRequest(input) + return out, req.Send() +} + +// CreateAliasWithContext is the same as CreateAlias with the addition of +// the ability to pass a context and additional request options. +// +// See CreateAlias 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 *GameLift) CreateAliasWithContext(ctx aws.Context, input *CreateAliasInput, opts ...request.Option) (*CreateAliasOutput, error) { + req, out := c.CreateAliasRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateBuild = "CreateBuild" + +// CreateBuildRequest generates a "aws/request.Request" representing the +// client's request for the CreateBuild operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreateBuild for more information on using the CreateBuild +// 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 CreateBuildRequest method. +// req, resp := client.CreateBuildRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateBuild +func (c *GameLift) CreateBuildRequest(input *CreateBuildInput) (req *request.Request, output *CreateBuildOutput) { + op := &request.Operation{ + Name: opCreateBuild, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateBuildInput{} + } + + output = &CreateBuildOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateBuild API operation for Amazon GameLift. +// +// Creates a new Amazon GameLift build from a set of game server binary files +// stored in an Amazon Simple Storage Service (Amazon S3) location. To use this +// API call, create a .zip file containing all of the files for the build and +// store it in an Amazon S3 bucket under your AWS account. For help on packaging +// your build files and creating a build, see Uploading Your Game to Amazon +// GameLift (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-intro.html). +// +// Use this API action ONLY if you are storing your game build files in an Amazon +// S3 bucket. To create a build using files stored locally, use the CLI command +// upload-build (http://docs.aws.amazon.com/cli/latest/reference/gamelift/upload-build.html), +// which uploads the build files from a file location you specify. +// +// To create a new build using CreateBuild, identify the storage location and +// operating system of your game build. You also have the option of specifying +// a build name and version. If successful, this action creates a new build +// record with an unique build ID and in INITIALIZED status. Use the API call +// DescribeBuild to check the status of your build. A build must be in READY +// status before it can be used to create fleets to host your game. +// +// Build-related operations include: +// +// * CreateBuild +// +// * ListBuilds +// +// * DescribeBuild +// +// * UpdateBuild +// +// * DeleteBuild +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation CreateBuild for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeConflictException "ConflictException" +// The requested operation would cause a conflict with the current state of +// a service resource associated with the request. Resolve the conflict before +// retrying this request. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateBuild +func (c *GameLift) CreateBuild(input *CreateBuildInput) (*CreateBuildOutput, error) { + req, out := c.CreateBuildRequest(input) + return out, req.Send() +} + +// CreateBuildWithContext is the same as CreateBuild with the addition of +// the ability to pass a context and additional request options. +// +// See CreateBuild 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 *GameLift) CreateBuildWithContext(ctx aws.Context, input *CreateBuildInput, opts ...request.Option) (*CreateBuildOutput, error) { + req, out := c.CreateBuildRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateFleet = "CreateFleet" + +// CreateFleetRequest generates a "aws/request.Request" representing the +// client's request for the CreateFleet operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreateFleet for more information on using the CreateFleet +// 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 CreateFleetRequest method. +// req, resp := client.CreateFleetRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateFleet +func (c *GameLift) CreateFleetRequest(input *CreateFleetInput) (req *request.Request, output *CreateFleetOutput) { + op := &request.Operation{ + Name: opCreateFleet, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateFleetInput{} + } + + output = &CreateFleetOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateFleet API operation for Amazon GameLift. +// +// Creates a new fleet to run your game servers. A fleet is a set of Amazon +// Elastic Compute Cloud (Amazon EC2) instances, each of which can run multiple +// server processes to host game sessions. You configure a fleet to create instances +// with certain hardware specifications (see Amazon EC2 Instance Types (http://aws.amazon.com/ec2/instance-types/) +// for more information), and deploy a specified game build to each instance. +// A newly created fleet passes through several statuses; once it reaches the +// ACTIVE status, it can begin hosting game sessions. +// +// To create a new fleet, you must specify the following: (1) fleet name, (2) +// build ID of an uploaded game build, (3) an EC2 instance type, and (4) a run-time +// configuration that describes which server processes to run on each instance +// in the fleet. (Although the run-time configuration is not a required parameter, +// the fleet cannot be successfully activated without it.) +// +// You can also configure the new fleet with the following settings: +// +// * Fleet description +// +// * Access permissions for inbound traffic +// +// * Fleet-wide game session protection +// +// * Resource creation limit +// +// If you use Amazon CloudWatch for metrics, you can add the new fleet to a +// metric group. This allows you to view aggregated metrics for a set of fleets. +// Once you specify a metric group, the new fleet's metrics are included in +// the metric group's data. +// +// You have the option of creating a VPC peering connection with the new fleet. +// For more information, see VPC Peering with Amazon GameLift Fleets (http://docs.aws.amazon.com/gamelift/latest/developerguide/vpc-peering.html). +// +// If the CreateFleet call is successful, Amazon GameLift performs the following +// tasks: +// +// * Creates a fleet record and sets the status to NEW (followed by other +// statuses as the fleet is activated). +// +// * Sets the fleet's target capacity to 1 (desired instances), which causes +// Amazon GameLift to start one new EC2 instance. +// +// * Starts launching server processes on the instance. If the fleet is configured +// to run multiple server processes per instance, Amazon GameLift staggers +// each launch by a few seconds. +// +// * Begins writing events to the fleet event log, which can be accessed +// in the Amazon GameLift console. +// +// * Sets the fleet's status to ACTIVE as soon as one server process in the +// fleet is ready to host a game session. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation CreateFleet for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeConflictException "ConflictException" +// The requested operation would cause a conflict with the current state of +// a service resource associated with the request. Resolve the conflict before +// retrying this request. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// The requested operation would cause the resource to exceed the allowed service +// limit. Resolve the issue before retrying. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateFleet +func (c *GameLift) CreateFleet(input *CreateFleetInput) (*CreateFleetOutput, error) { + req, out := c.CreateFleetRequest(input) + return out, req.Send() +} + +// CreateFleetWithContext is the same as CreateFleet with the addition of +// the ability to pass a context and additional request options. +// +// See CreateFleet 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 *GameLift) CreateFleetWithContext(ctx aws.Context, input *CreateFleetInput, opts ...request.Option) (*CreateFleetOutput, error) { + req, out := c.CreateFleetRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateGameSession = "CreateGameSession" + +// CreateGameSessionRequest generates a "aws/request.Request" representing the +// client's request for the CreateGameSession operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreateGameSession for more information on using the CreateGameSession +// 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 CreateGameSessionRequest method. +// req, resp := client.CreateGameSessionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateGameSession +func (c *GameLift) CreateGameSessionRequest(input *CreateGameSessionInput) (req *request.Request, output *CreateGameSessionOutput) { + op := &request.Operation{ + Name: opCreateGameSession, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateGameSessionInput{} + } + + output = &CreateGameSessionOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateGameSession API operation for Amazon GameLift. +// +// Creates a multiplayer game session for players. This action creates a game +// session record and assigns an available server process in the specified fleet +// to host the game session. A fleet must have an ACTIVE status before a game +// session can be created in it. +// +// To create a game session, specify either fleet ID or alias ID and indicate +// a maximum number of players to allow in the game session. You can also provide +// a name and game-specific properties for this game session. If successful, +// a GameSession object is returned containing the game session properties and +// other settings you specified. +// +// Idempotency tokens. You can add a token that uniquely identifies game session +// requests. This is useful for ensuring that game session requests are idempotent. +// Multiple requests with the same idempotency token are processed only once; +// subsequent requests return the original result. All response values are the +// same with the exception of game session status, which may change. +// +// Resource creation limits. If you are creating a game session on a fleet with +// a resource creation limit policy in force, then you must specify a creator +// ID. Without this ID, Amazon GameLift has no way to evaluate the policy for +// this new game session request. +// +// Player acceptance policy. By default, newly created game sessions are open +// to new players. You can restrict new player access by using UpdateGameSession +// to change the game session's player session creation policy. +// +// Game session logs. Logs are retained for all active game sessions for 14 +// days. To access the logs, call GetGameSessionLogUrl to download the log files. +// +// Available in Amazon GameLift Local. +// +// Game-session-related operations include: +// +// * CreateGameSession +// +// * DescribeGameSessions +// +// * DescribeGameSessionDetails +// +// * SearchGameSessions +// +// * UpdateGameSession +// +// * GetGameSessionLogUrl +// +// * Game session placements +// +// StartGameSessionPlacement +// +// DescribeGameSessionPlacement +// +// StopGameSessionPlacement +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation CreateGameSession for usage and error information. +// +// Returned Error Codes: +// * ErrCodeConflictException "ConflictException" +// The requested operation would cause a conflict with the current state of +// a service resource associated with the request. Resolve the conflict before +// retrying this request. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidFleetStatusException "InvalidFleetStatusException" +// The requested operation would cause a conflict with the current state of +// a resource associated with the request and/or the fleet. Resolve the conflict +// before retrying. +// +// * ErrCodeTerminalRoutingStrategyException "TerminalRoutingStrategyException" +// The service is unable to resolve the routing for a particular alias because +// it has a terminal RoutingStrategy associated with it. The message returned +// in this exception is the message defined in the routing strategy itself. +// Such requests should only be retried if the routing strategy for the specified +// alias is modified. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeFleetCapacityExceededException "FleetCapacityExceededException" +// The specified fleet has no available instances to fulfill a CreateGameSession +// request. Clients can retry such requests immediately or after a waiting period. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// The requested operation would cause the resource to exceed the allowed service +// limit. Resolve the issue before retrying. +// +// * ErrCodeIdempotentParameterMismatchException "IdempotentParameterMismatchException" +// A game session with this custom ID string already exists in this fleet. Resolve +// this conflict before retrying this request. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateGameSession +func (c *GameLift) CreateGameSession(input *CreateGameSessionInput) (*CreateGameSessionOutput, error) { + req, out := c.CreateGameSessionRequest(input) + return out, req.Send() +} + +// CreateGameSessionWithContext is the same as CreateGameSession with the addition of +// the ability to pass a context and additional request options. +// +// See CreateGameSession 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 *GameLift) CreateGameSessionWithContext(ctx aws.Context, input *CreateGameSessionInput, opts ...request.Option) (*CreateGameSessionOutput, error) { + req, out := c.CreateGameSessionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateGameSessionQueue = "CreateGameSessionQueue" + +// CreateGameSessionQueueRequest generates a "aws/request.Request" representing the +// client's request for the CreateGameSessionQueue operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreateGameSessionQueue for more information on using the CreateGameSessionQueue +// 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 CreateGameSessionQueueRequest method. +// req, resp := client.CreateGameSessionQueueRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateGameSessionQueue +func (c *GameLift) CreateGameSessionQueueRequest(input *CreateGameSessionQueueInput) (req *request.Request, output *CreateGameSessionQueueOutput) { + op := &request.Operation{ + Name: opCreateGameSessionQueue, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateGameSessionQueueInput{} + } + + output = &CreateGameSessionQueueOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateGameSessionQueue API operation for Amazon GameLift. +// +// Establishes a new queue for processing requests to place new game sessions. +// A queue identifies where new game sessions can be hosted -- by specifying +// a list of destinations (fleets or aliases) -- and how long requests can wait +// in the queue before timing out. You can set up a queue to try to place game +// sessions on fleets in multiple regions. To add placement requests to a queue, +// call StartGameSessionPlacement and reference the queue name. +// +// Destination order. When processing a request for a game session, Amazon GameLift +// tries each destination in order until it finds one with available resources +// to host the new game session. A queue's default order is determined by how +// destinations are listed. The default order is overridden when a game session +// placement request provides player latency information. Player latency information +// enables Amazon GameLift to prioritize destinations where players report the +// lowest average latency, as a result placing the new game session where the +// majority of players will have the best possible gameplay experience. +// +// Player latency policies. For placement requests containing player latency +// information, use player latency policies to protect individual players from +// very high latencies. With a latency cap, even when a destination can deliver +// a low latency for most players, the game is not placed where any individual +// player is reporting latency higher than a policy's maximum. A queue can have +// multiple latency policies, which are enforced consecutively starting with +// the policy with the lowest latency cap. Use multiple policies to gradually +// relax latency controls; for example, you might set a policy with a low latency +// cap for the first 60 seconds, a second policy with a higher cap for the next +// 60 seconds, etc. +// +// To create a new queue, provide a name, timeout value, a list of destinations +// and, if desired, a set of latency policies. If successful, a new queue object +// is returned. +// +// Queue-related operations include: +// +// * CreateGameSessionQueue +// +// * DescribeGameSessionQueues +// +// * UpdateGameSessionQueue +// +// * DeleteGameSessionQueue +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation CreateGameSessionQueue for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// The requested operation would cause the resource to exceed the allowed service +// limit. Resolve the issue before retrying. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateGameSessionQueue +func (c *GameLift) CreateGameSessionQueue(input *CreateGameSessionQueueInput) (*CreateGameSessionQueueOutput, error) { + req, out := c.CreateGameSessionQueueRequest(input) + return out, req.Send() +} + +// CreateGameSessionQueueWithContext is the same as CreateGameSessionQueue with the addition of +// the ability to pass a context and additional request options. +// +// See CreateGameSessionQueue 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 *GameLift) CreateGameSessionQueueWithContext(ctx aws.Context, input *CreateGameSessionQueueInput, opts ...request.Option) (*CreateGameSessionQueueOutput, error) { + req, out := c.CreateGameSessionQueueRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateMatchmakingConfiguration = "CreateMatchmakingConfiguration" + +// CreateMatchmakingConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the CreateMatchmakingConfiguration operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreateMatchmakingConfiguration for more information on using the CreateMatchmakingConfiguration +// 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 CreateMatchmakingConfigurationRequest method. +// req, resp := client.CreateMatchmakingConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateMatchmakingConfiguration +func (c *GameLift) CreateMatchmakingConfigurationRequest(input *CreateMatchmakingConfigurationInput) (req *request.Request, output *CreateMatchmakingConfigurationOutput) { + op := &request.Operation{ + Name: opCreateMatchmakingConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateMatchmakingConfigurationInput{} + } + + output = &CreateMatchmakingConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateMatchmakingConfiguration API operation for Amazon GameLift. +// +// Defines a new matchmaking configuration for use with FlexMatch. A matchmaking +// configuration sets out guidelines for matching players and getting the matches +// into games. You can set up multiple matchmaking configurations to handle +// the scenarios needed for your game. Each matchmaking request (StartMatchmaking) +// specifies a configuration for the match and provides player attributes to +// support the configuration being used. +// +// To create a matchmaking configuration, at a minimum you must specify the +// following: configuration name; a rule set that governs how to evaluate players +// and find acceptable matches; a game session queue to use when placing a new +// game session for the match; and the maximum time allowed for a matchmaking +// attempt. +// +// Player acceptance -- In each configuration, you have the option to require +// that all players accept participation in a proposed match. To enable this +// feature, set AcceptanceRequired to true and specify a time limit for player +// acceptance. Players have the option to accept or reject a proposed match, +// and a match does not move ahead to game session placement unless all matched +// players accept. +// +// Matchmaking status notification -- There are two ways to track the progress +// of matchmaking tickets: (1) polling ticket status with DescribeMatchmaking; +// or (2) receiving notifications with Amazon Simple Notification Service (SNS). +// To use notifications, you first need to set up an SNS topic to receive the +// notifications, and provide the topic ARN in the matchmaking configuration +// (see Setting up Notifications for Matchmaking (http://docs.aws.amazon.com/gamelift/latest/developerguide/match-notification.html)). +// Since notifications promise only "best effort" delivery, we recommend calling +// DescribeMatchmaking if no notifications are received within 30 seconds. +// +// Operations related to match configurations and rule sets include: +// +// * CreateMatchmakingConfiguration +// +// * DescribeMatchmakingConfigurations +// +// * UpdateMatchmakingConfiguration +// +// * DeleteMatchmakingConfiguration +// +// * CreateMatchmakingRuleSet +// +// * DescribeMatchmakingRuleSets +// +// * ValidateMatchmakingRuleSet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation CreateMatchmakingConfiguration for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// The requested operation would cause the resource to exceed the allowed service +// limit. Resolve the issue before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeUnsupportedRegionException "UnsupportedRegionException" +// The requested operation is not supported in the region specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateMatchmakingConfiguration +func (c *GameLift) CreateMatchmakingConfiguration(input *CreateMatchmakingConfigurationInput) (*CreateMatchmakingConfigurationOutput, error) { + req, out := c.CreateMatchmakingConfigurationRequest(input) + return out, req.Send() +} + +// CreateMatchmakingConfigurationWithContext is the same as CreateMatchmakingConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See CreateMatchmakingConfiguration 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 *GameLift) CreateMatchmakingConfigurationWithContext(ctx aws.Context, input *CreateMatchmakingConfigurationInput, opts ...request.Option) (*CreateMatchmakingConfigurationOutput, error) { + req, out := c.CreateMatchmakingConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateMatchmakingRuleSet = "CreateMatchmakingRuleSet" + +// CreateMatchmakingRuleSetRequest generates a "aws/request.Request" representing the +// client's request for the CreateMatchmakingRuleSet operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreateMatchmakingRuleSet for more information on using the CreateMatchmakingRuleSet +// 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 CreateMatchmakingRuleSetRequest method. +// req, resp := client.CreateMatchmakingRuleSetRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateMatchmakingRuleSet +func (c *GameLift) CreateMatchmakingRuleSetRequest(input *CreateMatchmakingRuleSetInput) (req *request.Request, output *CreateMatchmakingRuleSetOutput) { + op := &request.Operation{ + Name: opCreateMatchmakingRuleSet, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateMatchmakingRuleSetInput{} + } + + output = &CreateMatchmakingRuleSetOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateMatchmakingRuleSet API operation for Amazon GameLift. +// +// Creates a new rule set for FlexMatch matchmaking. A rule set describes the +// type of match to create, such as the number and size of teams, and sets the +// parameters for acceptable player matches, such as minimum skill level or +// character type. Rule sets are used in matchmaking configurations, which define +// how matchmaking requests are handled. Each MatchmakingConfiguration uses +// one rule set; you can set up multiple rule sets to handle the scenarios that +// suit your game (such as for different game modes), and create a separate +// matchmaking configuration for each rule set. See additional information on +// rule set content in the MatchmakingRuleSet structure. For help creating rule +// sets, including useful examples, see the topic Adding FlexMatch to Your +// Game (http://docs.aws.amazon.com/gamelift/latest/developerguide/match-intro.html). +// +// Once created, matchmaking rule sets cannot be changed or deleted, so we recommend +// checking the rule set syntax using ValidateMatchmakingRuleSetbefore creating +// the rule set. +// +// To create a matchmaking rule set, provide the set of rules and a unique name. +// Rule sets must be defined in the same region as the matchmaking configuration +// they will be used with. Rule sets cannot be edited or deleted. If you need +// to change a rule set, create a new one with the necessary edits and then +// update matchmaking configurations to use the new rule set. +// +// Operations related to match configurations and rule sets include: +// +// * CreateMatchmakingConfiguration +// +// * DescribeMatchmakingConfigurations +// +// * UpdateMatchmakingConfiguration +// +// * DeleteMatchmakingConfiguration +// +// * CreateMatchmakingRuleSet +// +// * DescribeMatchmakingRuleSets +// +// * ValidateMatchmakingRuleSet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation CreateMatchmakingRuleSet for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeUnsupportedRegionException "UnsupportedRegionException" +// The requested operation is not supported in the region specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateMatchmakingRuleSet +func (c *GameLift) CreateMatchmakingRuleSet(input *CreateMatchmakingRuleSetInput) (*CreateMatchmakingRuleSetOutput, error) { + req, out := c.CreateMatchmakingRuleSetRequest(input) + return out, req.Send() +} + +// CreateMatchmakingRuleSetWithContext is the same as CreateMatchmakingRuleSet with the addition of +// the ability to pass a context and additional request options. +// +// See CreateMatchmakingRuleSet 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 *GameLift) CreateMatchmakingRuleSetWithContext(ctx aws.Context, input *CreateMatchmakingRuleSetInput, opts ...request.Option) (*CreateMatchmakingRuleSetOutput, error) { + req, out := c.CreateMatchmakingRuleSetRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreatePlayerSession = "CreatePlayerSession" + +// CreatePlayerSessionRequest generates a "aws/request.Request" representing the +// client's request for the CreatePlayerSession operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreatePlayerSession for more information on using the CreatePlayerSession +// 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 CreatePlayerSessionRequest method. +// req, resp := client.CreatePlayerSessionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreatePlayerSession +func (c *GameLift) CreatePlayerSessionRequest(input *CreatePlayerSessionInput) (req *request.Request, output *CreatePlayerSessionOutput) { + op := &request.Operation{ + Name: opCreatePlayerSession, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreatePlayerSessionInput{} + } + + output = &CreatePlayerSessionOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreatePlayerSession API operation for Amazon GameLift. +// +// Adds a player to a game session and creates a player session record. Before +// a player can be added, a game session must have an ACTIVE status, have a +// creation policy of ALLOW_ALL, and have an open player slot. To add a group +// of players to a game session, use CreatePlayerSessions. +// +// To create a player session, specify a game session ID, player ID, and optionally +// a string of player data. If successful, the player is added to the game session +// and a new PlayerSession object is returned. Player sessions cannot be updated. +// +// Available in Amazon GameLift Local. +// +// Player-session-related operations include: +// +// * CreatePlayerSession +// +// * CreatePlayerSessions +// +// * DescribePlayerSessions +// +// * Game session placements +// +// StartGameSessionPlacement +// +// DescribeGameSessionPlacement +// +// StopGameSessionPlacement +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation CreatePlayerSession for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidGameSessionStatusException "InvalidGameSessionStatusException" +// The requested operation would cause a conflict with the current state of +// a resource associated with the request and/or the game instance. Resolve +// the conflict before retrying. +// +// * ErrCodeGameSessionFullException "GameSessionFullException" +// The game instance is currently full and cannot allow the requested player(s) +// to join. Clients can retry such requests immediately or after a waiting period. +// +// * ErrCodeTerminalRoutingStrategyException "TerminalRoutingStrategyException" +// The service is unable to resolve the routing for a particular alias because +// it has a terminal RoutingStrategy associated with it. The message returned +// in this exception is the message defined in the routing strategy itself. +// Such requests should only be retried if the routing strategy for the specified +// alias is modified. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreatePlayerSession +func (c *GameLift) CreatePlayerSession(input *CreatePlayerSessionInput) (*CreatePlayerSessionOutput, error) { + req, out := c.CreatePlayerSessionRequest(input) + return out, req.Send() +} + +// CreatePlayerSessionWithContext is the same as CreatePlayerSession with the addition of +// the ability to pass a context and additional request options. +// +// See CreatePlayerSession 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 *GameLift) CreatePlayerSessionWithContext(ctx aws.Context, input *CreatePlayerSessionInput, opts ...request.Option) (*CreatePlayerSessionOutput, error) { + req, out := c.CreatePlayerSessionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreatePlayerSessions = "CreatePlayerSessions" + +// CreatePlayerSessionsRequest generates a "aws/request.Request" representing the +// client's request for the CreatePlayerSessions operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreatePlayerSessions for more information on using the CreatePlayerSessions +// 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 CreatePlayerSessionsRequest method. +// req, resp := client.CreatePlayerSessionsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreatePlayerSessions +func (c *GameLift) CreatePlayerSessionsRequest(input *CreatePlayerSessionsInput) (req *request.Request, output *CreatePlayerSessionsOutput) { + op := &request.Operation{ + Name: opCreatePlayerSessions, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreatePlayerSessionsInput{} + } + + output = &CreatePlayerSessionsOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreatePlayerSessions API operation for Amazon GameLift. +// +// Adds a group of players to a game session. This action is useful with a team +// matching feature. Before players can be added, a game session must have an +// ACTIVE status, have a creation policy of ALLOW_ALL, and have an open player +// slot. To add a single player to a game session, use CreatePlayerSession. +// +// To create player sessions, specify a game session ID, a list of player IDs, +// and optionally a set of player data strings. If successful, the players are +// added to the game session and a set of new PlayerSession objects is returned. +// Player sessions cannot be updated. +// +// Available in Amazon GameLift Local. +// +// Player-session-related operations include: +// +// * CreatePlayerSession +// +// * CreatePlayerSessions +// +// * DescribePlayerSessions +// +// * Game session placements +// +// StartGameSessionPlacement +// +// DescribeGameSessionPlacement +// +// StopGameSessionPlacement +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation CreatePlayerSessions for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidGameSessionStatusException "InvalidGameSessionStatusException" +// The requested operation would cause a conflict with the current state of +// a resource associated with the request and/or the game instance. Resolve +// the conflict before retrying. +// +// * ErrCodeGameSessionFullException "GameSessionFullException" +// The game instance is currently full and cannot allow the requested player(s) +// to join. Clients can retry such requests immediately or after a waiting period. +// +// * ErrCodeTerminalRoutingStrategyException "TerminalRoutingStrategyException" +// The service is unable to resolve the routing for a particular alias because +// it has a terminal RoutingStrategy associated with it. The message returned +// in this exception is the message defined in the routing strategy itself. +// Such requests should only be retried if the routing strategy for the specified +// alias is modified. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreatePlayerSessions +func (c *GameLift) CreatePlayerSessions(input *CreatePlayerSessionsInput) (*CreatePlayerSessionsOutput, error) { + req, out := c.CreatePlayerSessionsRequest(input) + return out, req.Send() +} + +// CreatePlayerSessionsWithContext is the same as CreatePlayerSessions with the addition of +// the ability to pass a context and additional request options. +// +// See CreatePlayerSessions 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 *GameLift) CreatePlayerSessionsWithContext(ctx aws.Context, input *CreatePlayerSessionsInput, opts ...request.Option) (*CreatePlayerSessionsOutput, error) { + req, out := c.CreatePlayerSessionsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateVpcPeeringAuthorization = "CreateVpcPeeringAuthorization" + +// CreateVpcPeeringAuthorizationRequest generates a "aws/request.Request" representing the +// client's request for the CreateVpcPeeringAuthorization operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreateVpcPeeringAuthorization for more information on using the CreateVpcPeeringAuthorization +// 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 CreateVpcPeeringAuthorizationRequest method. +// req, resp := client.CreateVpcPeeringAuthorizationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateVpcPeeringAuthorization +func (c *GameLift) CreateVpcPeeringAuthorizationRequest(input *CreateVpcPeeringAuthorizationInput) (req *request.Request, output *CreateVpcPeeringAuthorizationOutput) { + op := &request.Operation{ + Name: opCreateVpcPeeringAuthorization, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateVpcPeeringAuthorizationInput{} + } + + output = &CreateVpcPeeringAuthorizationOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateVpcPeeringAuthorization API operation for Amazon GameLift. +// +// Requests authorization to create or delete a peer connection between the +// VPC for your Amazon GameLift fleet and a virtual private cloud (VPC) in your +// AWS account. VPC peering enables the game servers on your fleet to communicate +// directly with other AWS resources. Once you've received authorization, call +// CreateVpcPeeringConnection to establish the peering connection. For more +// information, see VPC Peering with Amazon GameLift Fleets (http://docs.aws.amazon.com/gamelift/latest/developerguide/vpc-peering.html). +// +// You can peer with VPCs that are owned by any AWS account you have access +// to, including the account that you use to manage your Amazon GameLift fleets. +// You cannot peer with VPCs that are in different regions. +// +// To request authorization to create a connection, call this operation from +// the AWS account with the VPC that you want to peer to your Amazon GameLift +// fleet. For example, to enable your game servers to retrieve data from a DynamoDB +// table, use the account that manages that DynamoDB resource. Identify the +// following values: (1) The ID of the VPC that you want to peer with, and (2) +// the ID of the AWS account that you use to manage Amazon GameLift. If successful, +// VPC peering is authorized for the specified VPC. +// +// To request authorization to delete a connection, call this operation from +// the AWS account with the VPC that is peered with your Amazon GameLift fleet. +// Identify the following values: (1) VPC ID that you want to delete the peering +// connection for, and (2) ID of the AWS account that you use to manage Amazon +// GameLift. +// +// The authorization remains valid for 24 hours unless it is canceled by a call +// to DeleteVpcPeeringAuthorization. You must create or delete the peering connection +// while the authorization is valid. +// +// VPC peering connection operations include: +// +// * CreateVpcPeeringAuthorization +// +// * DescribeVpcPeeringAuthorizations +// +// * DeleteVpcPeeringAuthorization +// +// * CreateVpcPeeringConnection +// +// * DescribeVpcPeeringConnections +// +// * DeleteVpcPeeringConnection +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation CreateVpcPeeringAuthorization for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateVpcPeeringAuthorization +func (c *GameLift) CreateVpcPeeringAuthorization(input *CreateVpcPeeringAuthorizationInput) (*CreateVpcPeeringAuthorizationOutput, error) { + req, out := c.CreateVpcPeeringAuthorizationRequest(input) + return out, req.Send() +} + +// CreateVpcPeeringAuthorizationWithContext is the same as CreateVpcPeeringAuthorization with the addition of +// the ability to pass a context and additional request options. +// +// See CreateVpcPeeringAuthorization 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 *GameLift) CreateVpcPeeringAuthorizationWithContext(ctx aws.Context, input *CreateVpcPeeringAuthorizationInput, opts ...request.Option) (*CreateVpcPeeringAuthorizationOutput, error) { + req, out := c.CreateVpcPeeringAuthorizationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateVpcPeeringConnection = "CreateVpcPeeringConnection" + +// CreateVpcPeeringConnectionRequest generates a "aws/request.Request" representing the +// client's request for the CreateVpcPeeringConnection operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreateVpcPeeringConnection for more information on using the CreateVpcPeeringConnection +// 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 CreateVpcPeeringConnectionRequest method. +// req, resp := client.CreateVpcPeeringConnectionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateVpcPeeringConnection +func (c *GameLift) CreateVpcPeeringConnectionRequest(input *CreateVpcPeeringConnectionInput) (req *request.Request, output *CreateVpcPeeringConnectionOutput) { + op := &request.Operation{ + Name: opCreateVpcPeeringConnection, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateVpcPeeringConnectionInput{} + } + + output = &CreateVpcPeeringConnectionOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateVpcPeeringConnection API operation for Amazon GameLift. +// +// Establishes a VPC peering connection between a virtual private cloud (VPC) +// in an AWS account with the VPC for your Amazon GameLift fleet. VPC peering +// enables the game servers on your fleet to communicate directly with other +// AWS resources. You can peer with VPCs in any AWS account that you have access +// to, including the account that you use to manage your Amazon GameLift fleets. +// You cannot peer with VPCs that are in different regions. For more information, +// see VPC Peering with Amazon GameLift Fleets (http://docs.aws.amazon.com/gamelift/latest/developerguide/vpc-peering.html). +// +// Before calling this operation to establish the peering connection, you first +// need to call CreateVpcPeeringAuthorization and identify the VPC you want +// to peer with. Once the authorization for the specified VPC is issued, you +// have 24 hours to establish the connection. These two operations handle all +// tasks necessary to peer the two VPCs, including acceptance, updating routing +// tables, etc. +// +// To establish the connection, call this operation from the AWS account that +// is used to manage the Amazon GameLift fleets. Identify the following values: +// (1) The ID of the fleet you want to be enable a VPC peering connection for; +// (2) The AWS account with the VPC that you want to peer with; and (3) The +// ID of the VPC you want to peer with. This operation is asynchronous. If successful, +// a VpcPeeringConnection request is created. You can use continuous polling +// to track the request's status using DescribeVpcPeeringConnections, or by +// monitoring fleet events for success or failure using DescribeFleetEvents. +// +// VPC peering connection operations include: +// +// * CreateVpcPeeringAuthorization +// +// * DescribeVpcPeeringAuthorizations +// +// * DeleteVpcPeeringAuthorization +// +// * CreateVpcPeeringConnection +// +// * DescribeVpcPeeringConnections +// +// * DeleteVpcPeeringConnection +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation CreateVpcPeeringConnection for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateVpcPeeringConnection +func (c *GameLift) CreateVpcPeeringConnection(input *CreateVpcPeeringConnectionInput) (*CreateVpcPeeringConnectionOutput, error) { + req, out := c.CreateVpcPeeringConnectionRequest(input) + return out, req.Send() +} + +// CreateVpcPeeringConnectionWithContext is the same as CreateVpcPeeringConnection with the addition of +// the ability to pass a context and additional request options. +// +// See CreateVpcPeeringConnection 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 *GameLift) CreateVpcPeeringConnectionWithContext(ctx aws.Context, input *CreateVpcPeeringConnectionInput, opts ...request.Option) (*CreateVpcPeeringConnectionOutput, error) { + req, out := c.CreateVpcPeeringConnectionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteAlias = "DeleteAlias" + +// DeleteAliasRequest generates a "aws/request.Request" representing the +// client's request for the DeleteAlias operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DeleteAlias for more information on using the DeleteAlias +// 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 DeleteAliasRequest method. +// req, resp := client.DeleteAliasRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteAlias +func (c *GameLift) DeleteAliasRequest(input *DeleteAliasInput) (req *request.Request, output *DeleteAliasOutput) { + op := &request.Operation{ + Name: opDeleteAlias, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteAliasInput{} + } + + output = &DeleteAliasOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteAlias API operation for Amazon GameLift. +// +// Deletes an alias. This action removes all record of the alias. Game clients +// attempting to access a server process using the deleted alias receive an +// error. To delete an alias, specify the alias ID to be deleted. +// +// Alias-related operations include: +// +// * CreateAlias +// +// * ListAliases +// +// * DescribeAlias +// +// * UpdateAlias +// +// * DeleteAlias +// +// * ResolveAlias +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DeleteAlias for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteAlias +func (c *GameLift) DeleteAlias(input *DeleteAliasInput) (*DeleteAliasOutput, error) { + req, out := c.DeleteAliasRequest(input) + return out, req.Send() +} + +// DeleteAliasWithContext is the same as DeleteAlias with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteAlias 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 *GameLift) DeleteAliasWithContext(ctx aws.Context, input *DeleteAliasInput, opts ...request.Option) (*DeleteAliasOutput, error) { + req, out := c.DeleteAliasRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteBuild = "DeleteBuild" + +// DeleteBuildRequest generates a "aws/request.Request" representing the +// client's request for the DeleteBuild operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DeleteBuild for more information on using the DeleteBuild +// 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 DeleteBuildRequest method. +// req, resp := client.DeleteBuildRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteBuild +func (c *GameLift) DeleteBuildRequest(input *DeleteBuildInput) (req *request.Request, output *DeleteBuildOutput) { + op := &request.Operation{ + Name: opDeleteBuild, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteBuildInput{} + } + + output = &DeleteBuildOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteBuild API operation for Amazon GameLift. +// +// Deletes a build. This action permanently deletes the build record and any +// uploaded build files. +// +// To delete a build, specify its ID. Deleting a build does not affect the status +// of any active fleets using the build, but you can no longer create new fleets +// with the deleted build. +// +// Build-related operations include: +// +// * CreateBuild +// +// * ListBuilds +// +// * DescribeBuild +// +// * UpdateBuild +// +// * DeleteBuild +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DeleteBuild for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteBuild +func (c *GameLift) DeleteBuild(input *DeleteBuildInput) (*DeleteBuildOutput, error) { + req, out := c.DeleteBuildRequest(input) + return out, req.Send() +} + +// DeleteBuildWithContext is the same as DeleteBuild with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteBuild 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 *GameLift) DeleteBuildWithContext(ctx aws.Context, input *DeleteBuildInput, opts ...request.Option) (*DeleteBuildOutput, error) { + req, out := c.DeleteBuildRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteFleet = "DeleteFleet" + +// DeleteFleetRequest generates a "aws/request.Request" representing the +// client's request for the DeleteFleet operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DeleteFleet for more information on using the DeleteFleet +// 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 DeleteFleetRequest method. +// req, resp := client.DeleteFleetRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteFleet +func (c *GameLift) DeleteFleetRequest(input *DeleteFleetInput) (req *request.Request, output *DeleteFleetOutput) { + op := &request.Operation{ + Name: opDeleteFleet, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteFleetInput{} + } + + output = &DeleteFleetOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteFleet API operation for Amazon GameLift. +// +// Deletes everything related to a fleet. Before deleting a fleet, you must +// set the fleet's desired capacity to zero. See UpdateFleetCapacity. +// +// This action removes the fleet's resources and the fleet record. Once a fleet +// is deleted, you can no longer use that fleet. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DeleteFleet for usage and error information. +// +// Returned Error Codes: +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeInvalidFleetStatusException "InvalidFleetStatusException" +// The requested operation would cause a conflict with the current state of +// a resource associated with the request and/or the fleet. Resolve the conflict +// before retrying. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteFleet +func (c *GameLift) DeleteFleet(input *DeleteFleetInput) (*DeleteFleetOutput, error) { + req, out := c.DeleteFleetRequest(input) + return out, req.Send() +} + +// DeleteFleetWithContext is the same as DeleteFleet with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteFleet 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 *GameLift) DeleteFleetWithContext(ctx aws.Context, input *DeleteFleetInput, opts ...request.Option) (*DeleteFleetOutput, error) { + req, out := c.DeleteFleetRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteGameSessionQueue = "DeleteGameSessionQueue" + +// DeleteGameSessionQueueRequest generates a "aws/request.Request" representing the +// client's request for the DeleteGameSessionQueue operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DeleteGameSessionQueue for more information on using the DeleteGameSessionQueue +// 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 DeleteGameSessionQueueRequest method. +// req, resp := client.DeleteGameSessionQueueRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteGameSessionQueue +func (c *GameLift) DeleteGameSessionQueueRequest(input *DeleteGameSessionQueueInput) (req *request.Request, output *DeleteGameSessionQueueOutput) { + op := &request.Operation{ + Name: opDeleteGameSessionQueue, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteGameSessionQueueInput{} + } + + output = &DeleteGameSessionQueueOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteGameSessionQueue API operation for Amazon GameLift. +// +// Deletes a game session queue. This action means that any StartGameSessionPlacement +// requests that reference this queue will fail. To delete a queue, specify +// the queue name. +// +// Queue-related operations include: +// +// * CreateGameSessionQueue +// +// * DescribeGameSessionQueues +// +// * UpdateGameSessionQueue +// +// * DeleteGameSessionQueue +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DeleteGameSessionQueue for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteGameSessionQueue +func (c *GameLift) DeleteGameSessionQueue(input *DeleteGameSessionQueueInput) (*DeleteGameSessionQueueOutput, error) { + req, out := c.DeleteGameSessionQueueRequest(input) + return out, req.Send() +} + +// DeleteGameSessionQueueWithContext is the same as DeleteGameSessionQueue with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteGameSessionQueue 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 *GameLift) DeleteGameSessionQueueWithContext(ctx aws.Context, input *DeleteGameSessionQueueInput, opts ...request.Option) (*DeleteGameSessionQueueOutput, error) { + req, out := c.DeleteGameSessionQueueRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteMatchmakingConfiguration = "DeleteMatchmakingConfiguration" + +// DeleteMatchmakingConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the DeleteMatchmakingConfiguration operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DeleteMatchmakingConfiguration for more information on using the DeleteMatchmakingConfiguration +// 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 DeleteMatchmakingConfigurationRequest method. +// req, resp := client.DeleteMatchmakingConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteMatchmakingConfiguration +func (c *GameLift) DeleteMatchmakingConfigurationRequest(input *DeleteMatchmakingConfigurationInput) (req *request.Request, output *DeleteMatchmakingConfigurationOutput) { + op := &request.Operation{ + Name: opDeleteMatchmakingConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteMatchmakingConfigurationInput{} + } + + output = &DeleteMatchmakingConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteMatchmakingConfiguration API operation for Amazon GameLift. +// +// Permanently removes a FlexMatch matchmaking configuration. To delete, specify +// the configuration name. A matchmaking configuration cannot be deleted if +// it is being used in any active matchmaking tickets. +// +// Operations related to match configurations and rule sets include: +// +// * CreateMatchmakingConfiguration +// +// * DescribeMatchmakingConfigurations +// +// * UpdateMatchmakingConfiguration +// +// * DeleteMatchmakingConfiguration +// +// * CreateMatchmakingRuleSet +// +// * DescribeMatchmakingRuleSets +// +// * ValidateMatchmakingRuleSet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DeleteMatchmakingConfiguration for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeUnsupportedRegionException "UnsupportedRegionException" +// The requested operation is not supported in the region specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteMatchmakingConfiguration +func (c *GameLift) DeleteMatchmakingConfiguration(input *DeleteMatchmakingConfigurationInput) (*DeleteMatchmakingConfigurationOutput, error) { + req, out := c.DeleteMatchmakingConfigurationRequest(input) + return out, req.Send() +} + +// DeleteMatchmakingConfigurationWithContext is the same as DeleteMatchmakingConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteMatchmakingConfiguration 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 *GameLift) DeleteMatchmakingConfigurationWithContext(ctx aws.Context, input *DeleteMatchmakingConfigurationInput, opts ...request.Option) (*DeleteMatchmakingConfigurationOutput, error) { + req, out := c.DeleteMatchmakingConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteScalingPolicy = "DeleteScalingPolicy" + +// DeleteScalingPolicyRequest generates a "aws/request.Request" representing the +// client's request for the DeleteScalingPolicy operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DeleteScalingPolicy for more information on using the DeleteScalingPolicy +// 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 DeleteScalingPolicyRequest method. +// req, resp := client.DeleteScalingPolicyRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteScalingPolicy +func (c *GameLift) DeleteScalingPolicyRequest(input *DeleteScalingPolicyInput) (req *request.Request, output *DeleteScalingPolicyOutput) { + op := &request.Operation{ + Name: opDeleteScalingPolicy, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteScalingPolicyInput{} + } + + output = &DeleteScalingPolicyOutput{} + req = c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(jsonrpc.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + return +} + +// DeleteScalingPolicy API operation for Amazon GameLift. +// +// Deletes a fleet scaling policy. This action means that the policy is no longer +// in force and removes all record of it. To delete a scaling policy, specify +// both the scaling policy name and the fleet ID it is associated with. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DeleteScalingPolicy for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteScalingPolicy +func (c *GameLift) DeleteScalingPolicy(input *DeleteScalingPolicyInput) (*DeleteScalingPolicyOutput, error) { + req, out := c.DeleteScalingPolicyRequest(input) + return out, req.Send() +} + +// DeleteScalingPolicyWithContext is the same as DeleteScalingPolicy with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteScalingPolicy 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 *GameLift) DeleteScalingPolicyWithContext(ctx aws.Context, input *DeleteScalingPolicyInput, opts ...request.Option) (*DeleteScalingPolicyOutput, error) { + req, out := c.DeleteScalingPolicyRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteVpcPeeringAuthorization = "DeleteVpcPeeringAuthorization" + +// DeleteVpcPeeringAuthorizationRequest generates a "aws/request.Request" representing the +// client's request for the DeleteVpcPeeringAuthorization operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DeleteVpcPeeringAuthorization for more information on using the DeleteVpcPeeringAuthorization +// 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 DeleteVpcPeeringAuthorizationRequest method. +// req, resp := client.DeleteVpcPeeringAuthorizationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteVpcPeeringAuthorization +func (c *GameLift) DeleteVpcPeeringAuthorizationRequest(input *DeleteVpcPeeringAuthorizationInput) (req *request.Request, output *DeleteVpcPeeringAuthorizationOutput) { + op := &request.Operation{ + Name: opDeleteVpcPeeringAuthorization, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteVpcPeeringAuthorizationInput{} + } + + output = &DeleteVpcPeeringAuthorizationOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteVpcPeeringAuthorization API operation for Amazon GameLift. +// +// Cancels a pending VPC peering authorization for the specified VPC. If the +// authorization has already been used to create a peering connection, call +// DeleteVpcPeeringConnection to remove the connection. +// +// VPC peering connection operations include: +// +// * CreateVpcPeeringAuthorization +// +// * DescribeVpcPeeringAuthorizations +// +// * DeleteVpcPeeringAuthorization +// +// * CreateVpcPeeringConnection +// +// * DescribeVpcPeeringConnections +// +// * DeleteVpcPeeringConnection +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DeleteVpcPeeringAuthorization for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteVpcPeeringAuthorization +func (c *GameLift) DeleteVpcPeeringAuthorization(input *DeleteVpcPeeringAuthorizationInput) (*DeleteVpcPeeringAuthorizationOutput, error) { + req, out := c.DeleteVpcPeeringAuthorizationRequest(input) + return out, req.Send() +} + +// DeleteVpcPeeringAuthorizationWithContext is the same as DeleteVpcPeeringAuthorization with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteVpcPeeringAuthorization 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 *GameLift) DeleteVpcPeeringAuthorizationWithContext(ctx aws.Context, input *DeleteVpcPeeringAuthorizationInput, opts ...request.Option) (*DeleteVpcPeeringAuthorizationOutput, error) { + req, out := c.DeleteVpcPeeringAuthorizationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteVpcPeeringConnection = "DeleteVpcPeeringConnection" + +// DeleteVpcPeeringConnectionRequest generates a "aws/request.Request" representing the +// client's request for the DeleteVpcPeeringConnection operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DeleteVpcPeeringConnection for more information on using the DeleteVpcPeeringConnection +// 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 DeleteVpcPeeringConnectionRequest method. +// req, resp := client.DeleteVpcPeeringConnectionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteVpcPeeringConnection +func (c *GameLift) DeleteVpcPeeringConnectionRequest(input *DeleteVpcPeeringConnectionInput) (req *request.Request, output *DeleteVpcPeeringConnectionOutput) { + op := &request.Operation{ + Name: opDeleteVpcPeeringConnection, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteVpcPeeringConnectionInput{} + } + + output = &DeleteVpcPeeringConnectionOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteVpcPeeringConnection API operation for Amazon GameLift. +// +// Removes a VPC peering connection. To delete the connection, you must have +// a valid authorization for the VPC peering connection that you want to delete. +// You can check for an authorization by calling DescribeVpcPeeringAuthorizations +// or request a new one using CreateVpcPeeringAuthorization. +// +// Once a valid authorization exists, call this operation from the AWS account +// that is used to manage the Amazon GameLift fleets. Identify the connection +// to delete by the connection ID and fleet ID. If successful, the connection +// is removed. +// +// VPC peering connection operations include: +// +// * CreateVpcPeeringAuthorization +// +// * DescribeVpcPeeringAuthorizations +// +// * DeleteVpcPeeringAuthorization +// +// * CreateVpcPeeringConnection +// +// * DescribeVpcPeeringConnections +// +// * DeleteVpcPeeringConnection +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DeleteVpcPeeringConnection for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteVpcPeeringConnection +func (c *GameLift) DeleteVpcPeeringConnection(input *DeleteVpcPeeringConnectionInput) (*DeleteVpcPeeringConnectionOutput, error) { + req, out := c.DeleteVpcPeeringConnectionRequest(input) + return out, req.Send() +} + +// DeleteVpcPeeringConnectionWithContext is the same as DeleteVpcPeeringConnection with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteVpcPeeringConnection 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 *GameLift) DeleteVpcPeeringConnectionWithContext(ctx aws.Context, input *DeleteVpcPeeringConnectionInput, opts ...request.Option) (*DeleteVpcPeeringConnectionOutput, error) { + req, out := c.DeleteVpcPeeringConnectionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeAlias = "DescribeAlias" + +// DescribeAliasRequest generates a "aws/request.Request" representing the +// client's request for the DescribeAlias operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeAlias for more information on using the DescribeAlias +// 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 DescribeAliasRequest method. +// req, resp := client.DescribeAliasRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeAlias +func (c *GameLift) DescribeAliasRequest(input *DescribeAliasInput) (req *request.Request, output *DescribeAliasOutput) { + op := &request.Operation{ + Name: opDescribeAlias, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeAliasInput{} + } + + output = &DescribeAliasOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeAlias API operation for Amazon GameLift. +// +// Retrieves properties for an alias. This operation returns all alias metadata +// and settings. To get an alias's target fleet ID only, use ResolveAlias. +// +// To get alias properties, specify the alias ID. If successful, the requested +// alias record is returned. +// +// Alias-related operations include: +// +// * CreateAlias +// +// * ListAliases +// +// * DescribeAlias +// +// * UpdateAlias +// +// * DeleteAlias +// +// * ResolveAlias +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribeAlias for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeAlias +func (c *GameLift) DescribeAlias(input *DescribeAliasInput) (*DescribeAliasOutput, error) { + req, out := c.DescribeAliasRequest(input) + return out, req.Send() +} + +// DescribeAliasWithContext is the same as DescribeAlias with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeAlias 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 *GameLift) DescribeAliasWithContext(ctx aws.Context, input *DescribeAliasInput, opts ...request.Option) (*DescribeAliasOutput, error) { + req, out := c.DescribeAliasRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeBuild = "DescribeBuild" + +// DescribeBuildRequest generates a "aws/request.Request" representing the +// client's request for the DescribeBuild operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeBuild for more information on using the DescribeBuild +// 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 DescribeBuildRequest method. +// req, resp := client.DescribeBuildRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeBuild +func (c *GameLift) DescribeBuildRequest(input *DescribeBuildInput) (req *request.Request, output *DescribeBuildOutput) { + op := &request.Operation{ + Name: opDescribeBuild, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeBuildInput{} + } + + output = &DescribeBuildOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeBuild API operation for Amazon GameLift. +// +// Retrieves properties for a build. To get a build record, specify a build +// ID. If successful, an object containing the build properties is returned. +// +// Build-related operations include: +// +// * CreateBuild +// +// * ListBuilds +// +// * DescribeBuild +// +// * UpdateBuild +// +// * DeleteBuild +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribeBuild for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeBuild +func (c *GameLift) DescribeBuild(input *DescribeBuildInput) (*DescribeBuildOutput, error) { + req, out := c.DescribeBuildRequest(input) + return out, req.Send() +} + +// DescribeBuildWithContext is the same as DescribeBuild with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeBuild 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 *GameLift) DescribeBuildWithContext(ctx aws.Context, input *DescribeBuildInput, opts ...request.Option) (*DescribeBuildOutput, error) { + req, out := c.DescribeBuildRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeEC2InstanceLimits = "DescribeEC2InstanceLimits" + +// DescribeEC2InstanceLimitsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeEC2InstanceLimits operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeEC2InstanceLimits for more information on using the DescribeEC2InstanceLimits +// 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 DescribeEC2InstanceLimitsRequest method. +// req, resp := client.DescribeEC2InstanceLimitsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeEC2InstanceLimits +func (c *GameLift) DescribeEC2InstanceLimitsRequest(input *DescribeEC2InstanceLimitsInput) (req *request.Request, output *DescribeEC2InstanceLimitsOutput) { + op := &request.Operation{ + Name: opDescribeEC2InstanceLimits, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeEC2InstanceLimitsInput{} + } + + output = &DescribeEC2InstanceLimitsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeEC2InstanceLimits API operation for Amazon GameLift. +// +// Retrieves the following information for the specified EC2 instance type: +// +// * maximum number of instances allowed per AWS account (service limit) +// +// * current usage level for the AWS account +// +// Service limits vary depending on region. Available regions for Amazon GameLift +// can be found in the AWS Management Console for Amazon GameLift (see the drop-down +// list in the upper right corner). +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribeEC2InstanceLimits for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeEC2InstanceLimits +func (c *GameLift) DescribeEC2InstanceLimits(input *DescribeEC2InstanceLimitsInput) (*DescribeEC2InstanceLimitsOutput, error) { + req, out := c.DescribeEC2InstanceLimitsRequest(input) + return out, req.Send() +} + +// DescribeEC2InstanceLimitsWithContext is the same as DescribeEC2InstanceLimits with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeEC2InstanceLimits 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 *GameLift) DescribeEC2InstanceLimitsWithContext(ctx aws.Context, input *DescribeEC2InstanceLimitsInput, opts ...request.Option) (*DescribeEC2InstanceLimitsOutput, error) { + req, out := c.DescribeEC2InstanceLimitsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeFleetAttributes = "DescribeFleetAttributes" + +// DescribeFleetAttributesRequest generates a "aws/request.Request" representing the +// client's request for the DescribeFleetAttributes operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeFleetAttributes for more information on using the DescribeFleetAttributes +// 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 DescribeFleetAttributesRequest method. +// req, resp := client.DescribeFleetAttributesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetAttributes +func (c *GameLift) DescribeFleetAttributesRequest(input *DescribeFleetAttributesInput) (req *request.Request, output *DescribeFleetAttributesOutput) { + op := &request.Operation{ + Name: opDescribeFleetAttributes, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeFleetAttributesInput{} + } + + output = &DescribeFleetAttributesOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeFleetAttributes API operation for Amazon GameLift. +// +// Retrieves fleet properties, including metadata, status, and configuration, +// for one or more fleets. You can request attributes for all fleets, or specify +// a list of one or more fleet IDs. When requesting multiple fleets, use the +// pagination parameters to retrieve results as a set of sequential pages. If +// successful, a FleetAttributes object is returned for each requested fleet +// ID. When specifying a list of fleet IDs, attribute objects are returned only +// for fleets that currently exist. +// +// Some API actions may limit the number of fleet IDs allowed in one request. +// If a request exceeds this limit, the request fails and the error message +// includes the maximum allowed. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribeFleetAttributes for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetAttributes +func (c *GameLift) DescribeFleetAttributes(input *DescribeFleetAttributesInput) (*DescribeFleetAttributesOutput, error) { + req, out := c.DescribeFleetAttributesRequest(input) + return out, req.Send() +} + +// DescribeFleetAttributesWithContext is the same as DescribeFleetAttributes with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeFleetAttributes 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 *GameLift) DescribeFleetAttributesWithContext(ctx aws.Context, input *DescribeFleetAttributesInput, opts ...request.Option) (*DescribeFleetAttributesOutput, error) { + req, out := c.DescribeFleetAttributesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeFleetCapacity = "DescribeFleetCapacity" + +// DescribeFleetCapacityRequest generates a "aws/request.Request" representing the +// client's request for the DescribeFleetCapacity operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeFleetCapacity for more information on using the DescribeFleetCapacity +// 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 DescribeFleetCapacityRequest method. +// req, resp := client.DescribeFleetCapacityRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetCapacity +func (c *GameLift) DescribeFleetCapacityRequest(input *DescribeFleetCapacityInput) (req *request.Request, output *DescribeFleetCapacityOutput) { + op := &request.Operation{ + Name: opDescribeFleetCapacity, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeFleetCapacityInput{} + } + + output = &DescribeFleetCapacityOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeFleetCapacity API operation for Amazon GameLift. +// +// Retrieves the current status of fleet capacity for one or more fleets. This +// information includes the number of instances that have been requested for +// the fleet and the number currently active. You can request capacity for all +// fleets, or specify a list of one or more fleet IDs. When requesting multiple +// fleets, use the pagination parameters to retrieve results as a set of sequential +// pages. If successful, a FleetCapacity object is returned for each requested +// fleet ID. When specifying a list of fleet IDs, attribute objects are returned +// only for fleets that currently exist. +// +// Some API actions may limit the number of fleet IDs allowed in one request. +// If a request exceeds this limit, the request fails and the error message +// includes the maximum allowed. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribeFleetCapacity for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetCapacity +func (c *GameLift) DescribeFleetCapacity(input *DescribeFleetCapacityInput) (*DescribeFleetCapacityOutput, error) { + req, out := c.DescribeFleetCapacityRequest(input) + return out, req.Send() +} + +// DescribeFleetCapacityWithContext is the same as DescribeFleetCapacity with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeFleetCapacity 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 *GameLift) DescribeFleetCapacityWithContext(ctx aws.Context, input *DescribeFleetCapacityInput, opts ...request.Option) (*DescribeFleetCapacityOutput, error) { + req, out := c.DescribeFleetCapacityRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeFleetEvents = "DescribeFleetEvents" + +// DescribeFleetEventsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeFleetEvents operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeFleetEvents for more information on using the DescribeFleetEvents +// 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 DescribeFleetEventsRequest method. +// req, resp := client.DescribeFleetEventsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetEvents +func (c *GameLift) DescribeFleetEventsRequest(input *DescribeFleetEventsInput) (req *request.Request, output *DescribeFleetEventsOutput) { + op := &request.Operation{ + Name: opDescribeFleetEvents, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeFleetEventsInput{} + } + + output = &DescribeFleetEventsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeFleetEvents API operation for Amazon GameLift. +// +// Retrieves entries from the specified fleet's event log. You can specify a +// time range to limit the result set. Use the pagination parameters to retrieve +// results as a set of sequential pages. If successful, a collection of event +// log entries matching the request are returned. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribeFleetEvents for usage and error information. +// +// Returned Error Codes: +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetEvents +func (c *GameLift) DescribeFleetEvents(input *DescribeFleetEventsInput) (*DescribeFleetEventsOutput, error) { + req, out := c.DescribeFleetEventsRequest(input) + return out, req.Send() +} + +// DescribeFleetEventsWithContext is the same as DescribeFleetEvents with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeFleetEvents 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 *GameLift) DescribeFleetEventsWithContext(ctx aws.Context, input *DescribeFleetEventsInput, opts ...request.Option) (*DescribeFleetEventsOutput, error) { + req, out := c.DescribeFleetEventsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeFleetPortSettings = "DescribeFleetPortSettings" + +// DescribeFleetPortSettingsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeFleetPortSettings operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeFleetPortSettings for more information on using the DescribeFleetPortSettings +// 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 DescribeFleetPortSettingsRequest method. +// req, resp := client.DescribeFleetPortSettingsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetPortSettings +func (c *GameLift) DescribeFleetPortSettingsRequest(input *DescribeFleetPortSettingsInput) (req *request.Request, output *DescribeFleetPortSettingsOutput) { + op := &request.Operation{ + Name: opDescribeFleetPortSettings, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeFleetPortSettingsInput{} + } + + output = &DescribeFleetPortSettingsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeFleetPortSettings API operation for Amazon GameLift. +// +// Retrieves the inbound connection permissions for a fleet. Connection permissions +// include a range of IP addresses and port settings that incoming traffic can +// use to access server processes in the fleet. To get a fleet's inbound connection +// permissions, specify a fleet ID. If successful, a collection of IpPermission +// objects is returned for the requested fleet ID. If the requested fleet has +// been deleted, the result set is empty. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribeFleetPortSettings for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetPortSettings +func (c *GameLift) DescribeFleetPortSettings(input *DescribeFleetPortSettingsInput) (*DescribeFleetPortSettingsOutput, error) { + req, out := c.DescribeFleetPortSettingsRequest(input) + return out, req.Send() +} + +// DescribeFleetPortSettingsWithContext is the same as DescribeFleetPortSettings with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeFleetPortSettings 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 *GameLift) DescribeFleetPortSettingsWithContext(ctx aws.Context, input *DescribeFleetPortSettingsInput, opts ...request.Option) (*DescribeFleetPortSettingsOutput, error) { + req, out := c.DescribeFleetPortSettingsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeFleetUtilization = "DescribeFleetUtilization" + +// DescribeFleetUtilizationRequest generates a "aws/request.Request" representing the +// client's request for the DescribeFleetUtilization operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeFleetUtilization for more information on using the DescribeFleetUtilization +// 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 DescribeFleetUtilizationRequest method. +// req, resp := client.DescribeFleetUtilizationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetUtilization +func (c *GameLift) DescribeFleetUtilizationRequest(input *DescribeFleetUtilizationInput) (req *request.Request, output *DescribeFleetUtilizationOutput) { + op := &request.Operation{ + Name: opDescribeFleetUtilization, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeFleetUtilizationInput{} + } + + output = &DescribeFleetUtilizationOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeFleetUtilization API operation for Amazon GameLift. +// +// Retrieves utilization statistics for one or more fleets. You can request +// utilization data for all fleets, or specify a list of one or more fleet IDs. +// When requesting multiple fleets, use the pagination parameters to retrieve +// results as a set of sequential pages. If successful, a FleetUtilization object +// is returned for each requested fleet ID. When specifying a list of fleet +// IDs, utilization objects are returned only for fleets that currently exist. +// +// Some API actions may limit the number of fleet IDs allowed in one request. +// If a request exceeds this limit, the request fails and the error message +// includes the maximum allowed. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribeFleetUtilization for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetUtilization +func (c *GameLift) DescribeFleetUtilization(input *DescribeFleetUtilizationInput) (*DescribeFleetUtilizationOutput, error) { + req, out := c.DescribeFleetUtilizationRequest(input) + return out, req.Send() +} + +// DescribeFleetUtilizationWithContext is the same as DescribeFleetUtilization with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeFleetUtilization 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 *GameLift) DescribeFleetUtilizationWithContext(ctx aws.Context, input *DescribeFleetUtilizationInput, opts ...request.Option) (*DescribeFleetUtilizationOutput, error) { + req, out := c.DescribeFleetUtilizationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeGameSessionDetails = "DescribeGameSessionDetails" + +// DescribeGameSessionDetailsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeGameSessionDetails operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeGameSessionDetails for more information on using the DescribeGameSessionDetails +// 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 DescribeGameSessionDetailsRequest method. +// req, resp := client.DescribeGameSessionDetailsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionDetails +func (c *GameLift) DescribeGameSessionDetailsRequest(input *DescribeGameSessionDetailsInput) (req *request.Request, output *DescribeGameSessionDetailsOutput) { + op := &request.Operation{ + Name: opDescribeGameSessionDetails, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeGameSessionDetailsInput{} + } + + output = &DescribeGameSessionDetailsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeGameSessionDetails API operation for Amazon GameLift. +// +// Retrieves properties, including the protection policy in force, for one or +// more game sessions. This action can be used in several ways: (1) provide +// a GameSessionId or GameSessionArn to request details for a specific game +// session; (2) provide either a FleetId or an AliasId to request properties +// for all game sessions running on a fleet. +// +// To get game session record(s), specify just one of the following: game session +// ID, fleet ID, or alias ID. You can filter this request by game session status. +// Use the pagination parameters to retrieve results as a set of sequential +// pages. If successful, a GameSessionDetail object is returned for each session +// matching the request. +// +// Game-session-related operations include: +// +// * CreateGameSession +// +// * DescribeGameSessions +// +// * DescribeGameSessionDetails +// +// * SearchGameSessions +// +// * UpdateGameSession +// +// * GetGameSessionLogUrl +// +// * Game session placements +// +// StartGameSessionPlacement +// +// DescribeGameSessionPlacement +// +// StopGameSessionPlacement +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribeGameSessionDetails for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeTerminalRoutingStrategyException "TerminalRoutingStrategyException" +// The service is unable to resolve the routing for a particular alias because +// it has a terminal RoutingStrategy associated with it. The message returned +// in this exception is the message defined in the routing strategy itself. +// Such requests should only be retried if the routing strategy for the specified +// alias is modified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionDetails +func (c *GameLift) DescribeGameSessionDetails(input *DescribeGameSessionDetailsInput) (*DescribeGameSessionDetailsOutput, error) { + req, out := c.DescribeGameSessionDetailsRequest(input) + return out, req.Send() +} + +// DescribeGameSessionDetailsWithContext is the same as DescribeGameSessionDetails with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeGameSessionDetails 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 *GameLift) DescribeGameSessionDetailsWithContext(ctx aws.Context, input *DescribeGameSessionDetailsInput, opts ...request.Option) (*DescribeGameSessionDetailsOutput, error) { + req, out := c.DescribeGameSessionDetailsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeGameSessionPlacement = "DescribeGameSessionPlacement" + +// DescribeGameSessionPlacementRequest generates a "aws/request.Request" representing the +// client's request for the DescribeGameSessionPlacement operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeGameSessionPlacement for more information on using the DescribeGameSessionPlacement +// 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 DescribeGameSessionPlacementRequest method. +// req, resp := client.DescribeGameSessionPlacementRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionPlacement +func (c *GameLift) DescribeGameSessionPlacementRequest(input *DescribeGameSessionPlacementInput) (req *request.Request, output *DescribeGameSessionPlacementOutput) { + op := &request.Operation{ + Name: opDescribeGameSessionPlacement, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeGameSessionPlacementInput{} + } + + output = &DescribeGameSessionPlacementOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeGameSessionPlacement API operation for Amazon GameLift. +// +// Retrieves properties and current status of a game session placement request. +// To get game session placement details, specify the placement ID. If successful, +// a GameSessionPlacement object is returned. +// +// Game-session-related operations include: +// +// * CreateGameSession +// +// * DescribeGameSessions +// +// * DescribeGameSessionDetails +// +// * SearchGameSessions +// +// * UpdateGameSession +// +// * GetGameSessionLogUrl +// +// * Game session placements +// +// StartGameSessionPlacement +// +// DescribeGameSessionPlacement +// +// StopGameSessionPlacement +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribeGameSessionPlacement for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionPlacement +func (c *GameLift) DescribeGameSessionPlacement(input *DescribeGameSessionPlacementInput) (*DescribeGameSessionPlacementOutput, error) { + req, out := c.DescribeGameSessionPlacementRequest(input) + return out, req.Send() +} + +// DescribeGameSessionPlacementWithContext is the same as DescribeGameSessionPlacement with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeGameSessionPlacement 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 *GameLift) DescribeGameSessionPlacementWithContext(ctx aws.Context, input *DescribeGameSessionPlacementInput, opts ...request.Option) (*DescribeGameSessionPlacementOutput, error) { + req, out := c.DescribeGameSessionPlacementRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeGameSessionQueues = "DescribeGameSessionQueues" + +// DescribeGameSessionQueuesRequest generates a "aws/request.Request" representing the +// client's request for the DescribeGameSessionQueues operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeGameSessionQueues for more information on using the DescribeGameSessionQueues +// 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 DescribeGameSessionQueuesRequest method. +// req, resp := client.DescribeGameSessionQueuesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionQueues +func (c *GameLift) DescribeGameSessionQueuesRequest(input *DescribeGameSessionQueuesInput) (req *request.Request, output *DescribeGameSessionQueuesOutput) { + op := &request.Operation{ + Name: opDescribeGameSessionQueues, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeGameSessionQueuesInput{} + } + + output = &DescribeGameSessionQueuesOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeGameSessionQueues API operation for Amazon GameLift. +// +// Retrieves the properties for one or more game session queues. When requesting +// multiple queues, use the pagination parameters to retrieve results as a set +// of sequential pages. If successful, a GameSessionQueue object is returned +// for each requested queue. When specifying a list of queues, objects are returned +// only for queues that currently exist in the region. +// +// Queue-related operations include: +// +// * CreateGameSessionQueue +// +// * DescribeGameSessionQueues +// +// * UpdateGameSessionQueue +// +// * DeleteGameSessionQueue +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribeGameSessionQueues for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionQueues +func (c *GameLift) DescribeGameSessionQueues(input *DescribeGameSessionQueuesInput) (*DescribeGameSessionQueuesOutput, error) { + req, out := c.DescribeGameSessionQueuesRequest(input) + return out, req.Send() +} + +// DescribeGameSessionQueuesWithContext is the same as DescribeGameSessionQueues with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeGameSessionQueues 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 *GameLift) DescribeGameSessionQueuesWithContext(ctx aws.Context, input *DescribeGameSessionQueuesInput, opts ...request.Option) (*DescribeGameSessionQueuesOutput, error) { + req, out := c.DescribeGameSessionQueuesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeGameSessions = "DescribeGameSessions" + +// DescribeGameSessionsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeGameSessions operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeGameSessions for more information on using the DescribeGameSessions +// 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 DescribeGameSessionsRequest method. +// req, resp := client.DescribeGameSessionsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessions +func (c *GameLift) DescribeGameSessionsRequest(input *DescribeGameSessionsInput) (req *request.Request, output *DescribeGameSessionsOutput) { + op := &request.Operation{ + Name: opDescribeGameSessions, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeGameSessionsInput{} + } + + output = &DescribeGameSessionsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeGameSessions API operation for Amazon GameLift. +// +// Retrieves a set of one or more game sessions. Request a specific game session +// or request all game sessions on a fleet. Alternatively, use SearchGameSessions +// to request a set of active game sessions that are filtered by certain criteria. +// To retrieve protection policy settings for game sessions, use DescribeGameSessionDetails. +// +// To get game sessions, specify one of the following: game session ID, fleet +// ID, or alias ID. You can filter this request by game session status. Use +// the pagination parameters to retrieve results as a set of sequential pages. +// If successful, a GameSession object is returned for each game session matching +// the request. +// +// Available in Amazon GameLift Local. +// +// Game-session-related operations include: +// +// * CreateGameSession +// +// * DescribeGameSessions +// +// * DescribeGameSessionDetails +// +// * SearchGameSessions +// +// * UpdateGameSession +// +// * GetGameSessionLogUrl +// +// * Game session placements +// +// StartGameSessionPlacement +// +// DescribeGameSessionPlacement +// +// StopGameSessionPlacement +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribeGameSessions for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeTerminalRoutingStrategyException "TerminalRoutingStrategyException" +// The service is unable to resolve the routing for a particular alias because +// it has a terminal RoutingStrategy associated with it. The message returned +// in this exception is the message defined in the routing strategy itself. +// Such requests should only be retried if the routing strategy for the specified +// alias is modified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessions +func (c *GameLift) DescribeGameSessions(input *DescribeGameSessionsInput) (*DescribeGameSessionsOutput, error) { + req, out := c.DescribeGameSessionsRequest(input) + return out, req.Send() +} + +// DescribeGameSessionsWithContext is the same as DescribeGameSessions with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeGameSessions 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 *GameLift) DescribeGameSessionsWithContext(ctx aws.Context, input *DescribeGameSessionsInput, opts ...request.Option) (*DescribeGameSessionsOutput, error) { + req, out := c.DescribeGameSessionsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeInstances = "DescribeInstances" + +// DescribeInstancesRequest generates a "aws/request.Request" representing the +// client's request for the DescribeInstances operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeInstances for more information on using the DescribeInstances +// 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 DescribeInstancesRequest method. +// req, resp := client.DescribeInstancesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeInstances +func (c *GameLift) DescribeInstancesRequest(input *DescribeInstancesInput) (req *request.Request, output *DescribeInstancesOutput) { + op := &request.Operation{ + Name: opDescribeInstances, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeInstancesInput{} + } + + output = &DescribeInstancesOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeInstances API operation for Amazon GameLift. +// +// Retrieves information about a fleet's instances, including instance IDs. +// Use this action to get details on all instances in the fleet or get details +// on one specific instance. +// +// To get a specific instance, specify fleet ID and instance ID. To get all +// instances in a fleet, specify a fleet ID only. Use the pagination parameters +// to retrieve results as a set of sequential pages. If successful, an Instance +// object is returned for each result. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribeInstances for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeInstances +func (c *GameLift) DescribeInstances(input *DescribeInstancesInput) (*DescribeInstancesOutput, error) { + req, out := c.DescribeInstancesRequest(input) + return out, req.Send() +} + +// DescribeInstancesWithContext is the same as DescribeInstances with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeInstances 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 *GameLift) DescribeInstancesWithContext(ctx aws.Context, input *DescribeInstancesInput, opts ...request.Option) (*DescribeInstancesOutput, error) { + req, out := c.DescribeInstancesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeMatchmaking = "DescribeMatchmaking" + +// DescribeMatchmakingRequest generates a "aws/request.Request" representing the +// client's request for the DescribeMatchmaking operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeMatchmaking for more information on using the DescribeMatchmaking +// 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 DescribeMatchmakingRequest method. +// req, resp := client.DescribeMatchmakingRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeMatchmaking +func (c *GameLift) DescribeMatchmakingRequest(input *DescribeMatchmakingInput) (req *request.Request, output *DescribeMatchmakingOutput) { + op := &request.Operation{ + Name: opDescribeMatchmaking, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeMatchmakingInput{} + } + + output = &DescribeMatchmakingOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeMatchmaking API operation for Amazon GameLift. +// +// Retrieves a set of one or more matchmaking tickets. Use this operation to +// retrieve ticket information, including status and--once a successful match +// is made--acquire connection information for the resulting new game session. +// +// You can use this operation to track the progress of matchmaking requests +// (through polling) as an alternative to using event notifications. See more +// details on tracking matchmaking requests through polling or notifications +// in StartMatchmaking. +// +// You can request data for a one or a list of ticket IDs. If the request is +// successful, a ticket object is returned for each requested ID. When specifying +// a list of ticket IDs, objects are returned only for tickets that currently +// exist. +// +// Matchmaking-related operations include: +// +// * StartMatchmaking +// +// * DescribeMatchmaking +// +// * StopMatchmaking +// +// * AcceptMatch +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribeMatchmaking for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeUnsupportedRegionException "UnsupportedRegionException" +// The requested operation is not supported in the region specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeMatchmaking +func (c *GameLift) DescribeMatchmaking(input *DescribeMatchmakingInput) (*DescribeMatchmakingOutput, error) { + req, out := c.DescribeMatchmakingRequest(input) + return out, req.Send() +} + +// DescribeMatchmakingWithContext is the same as DescribeMatchmaking with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeMatchmaking 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 *GameLift) DescribeMatchmakingWithContext(ctx aws.Context, input *DescribeMatchmakingInput, opts ...request.Option) (*DescribeMatchmakingOutput, error) { + req, out := c.DescribeMatchmakingRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeMatchmakingConfigurations = "DescribeMatchmakingConfigurations" + +// DescribeMatchmakingConfigurationsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeMatchmakingConfigurations operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeMatchmakingConfigurations for more information on using the DescribeMatchmakingConfigurations +// 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 DescribeMatchmakingConfigurationsRequest method. +// req, resp := client.DescribeMatchmakingConfigurationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeMatchmakingConfigurations +func (c *GameLift) DescribeMatchmakingConfigurationsRequest(input *DescribeMatchmakingConfigurationsInput) (req *request.Request, output *DescribeMatchmakingConfigurationsOutput) { + op := &request.Operation{ + Name: opDescribeMatchmakingConfigurations, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeMatchmakingConfigurationsInput{} + } + + output = &DescribeMatchmakingConfigurationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeMatchmakingConfigurations API operation for Amazon GameLift. +// +// Retrieves the details of FlexMatch matchmaking configurations. with this +// operation, you have the following options: (1) retrieve all existing configurations, +// (2) provide the names of one or more configurations to retrieve, or (3) retrieve +// all configurations that use a specified rule set name. When requesting multiple +// items, use the pagination parameters to retrieve results as a set of sequential +// pages. If successful, a configuration is returned for each requested name. +// When specifying a list of names, only configurations that currently exist +// are returned. +// +// Operations related to match configurations and rule sets include: +// +// * CreateMatchmakingConfiguration +// +// * DescribeMatchmakingConfigurations +// +// * UpdateMatchmakingConfiguration +// +// * DeleteMatchmakingConfiguration +// +// * CreateMatchmakingRuleSet +// +// * DescribeMatchmakingRuleSets +// +// * ValidateMatchmakingRuleSet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribeMatchmakingConfigurations for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeUnsupportedRegionException "UnsupportedRegionException" +// The requested operation is not supported in the region specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeMatchmakingConfigurations +func (c *GameLift) DescribeMatchmakingConfigurations(input *DescribeMatchmakingConfigurationsInput) (*DescribeMatchmakingConfigurationsOutput, error) { + req, out := c.DescribeMatchmakingConfigurationsRequest(input) + return out, req.Send() +} + +// DescribeMatchmakingConfigurationsWithContext is the same as DescribeMatchmakingConfigurations with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeMatchmakingConfigurations 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 *GameLift) DescribeMatchmakingConfigurationsWithContext(ctx aws.Context, input *DescribeMatchmakingConfigurationsInput, opts ...request.Option) (*DescribeMatchmakingConfigurationsOutput, error) { + req, out := c.DescribeMatchmakingConfigurationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeMatchmakingRuleSets = "DescribeMatchmakingRuleSets" + +// DescribeMatchmakingRuleSetsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeMatchmakingRuleSets operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeMatchmakingRuleSets for more information on using the DescribeMatchmakingRuleSets +// 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 DescribeMatchmakingRuleSetsRequest method. +// req, resp := client.DescribeMatchmakingRuleSetsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeMatchmakingRuleSets +func (c *GameLift) DescribeMatchmakingRuleSetsRequest(input *DescribeMatchmakingRuleSetsInput) (req *request.Request, output *DescribeMatchmakingRuleSetsOutput) { + op := &request.Operation{ + Name: opDescribeMatchmakingRuleSets, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeMatchmakingRuleSetsInput{} + } + + output = &DescribeMatchmakingRuleSetsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeMatchmakingRuleSets API operation for Amazon GameLift. +// +// Retrieves the details for FlexMatch matchmaking rule sets. You can request +// all existing rule sets for the region, or provide a list of one or more rule +// set names. When requesting multiple items, use the pagination parameters +// to retrieve results as a set of sequential pages. If successful, a rule set +// is returned for each requested name. +// +// Operations related to match configurations and rule sets include: +// +// * CreateMatchmakingConfiguration +// +// * DescribeMatchmakingConfigurations +// +// * UpdateMatchmakingConfiguration +// +// * DeleteMatchmakingConfiguration +// +// * CreateMatchmakingRuleSet +// +// * DescribeMatchmakingRuleSets +// +// * ValidateMatchmakingRuleSet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribeMatchmakingRuleSets for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeUnsupportedRegionException "UnsupportedRegionException" +// The requested operation is not supported in the region specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeMatchmakingRuleSets +func (c *GameLift) DescribeMatchmakingRuleSets(input *DescribeMatchmakingRuleSetsInput) (*DescribeMatchmakingRuleSetsOutput, error) { + req, out := c.DescribeMatchmakingRuleSetsRequest(input) + return out, req.Send() +} + +// DescribeMatchmakingRuleSetsWithContext is the same as DescribeMatchmakingRuleSets with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeMatchmakingRuleSets 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 *GameLift) DescribeMatchmakingRuleSetsWithContext(ctx aws.Context, input *DescribeMatchmakingRuleSetsInput, opts ...request.Option) (*DescribeMatchmakingRuleSetsOutput, error) { + req, out := c.DescribeMatchmakingRuleSetsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribePlayerSessions = "DescribePlayerSessions" + +// DescribePlayerSessionsRequest generates a "aws/request.Request" representing the +// client's request for the DescribePlayerSessions operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribePlayerSessions for more information on using the DescribePlayerSessions +// 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 DescribePlayerSessionsRequest method. +// req, resp := client.DescribePlayerSessionsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribePlayerSessions +func (c *GameLift) DescribePlayerSessionsRequest(input *DescribePlayerSessionsInput) (req *request.Request, output *DescribePlayerSessionsOutput) { + op := &request.Operation{ + Name: opDescribePlayerSessions, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribePlayerSessionsInput{} + } + + output = &DescribePlayerSessionsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribePlayerSessions API operation for Amazon GameLift. +// +// Retrieves properties for one or more player sessions. This action can be +// used in several ways: (1) provide a PlayerSessionId to request properties +// for a specific player session; (2) provide a GameSessionId to request properties +// for all player sessions in the specified game session; (3) provide a PlayerId +// to request properties for all player sessions of a specified player. +// +// To get game session record(s), specify only one of the following: a player +// session ID, a game session ID, or a player ID. You can filter this request +// by player session status. Use the pagination parameters to retrieve results +// as a set of sequential pages. If successful, a PlayerSession object is returned +// for each session matching the request. +// +// Available in Amazon GameLift Local. +// +// Player-session-related operations include: +// +// * CreatePlayerSession +// +// * CreatePlayerSessions +// +// * DescribePlayerSessions +// +// * Game session placements +// +// StartGameSessionPlacement +// +// DescribeGameSessionPlacement +// +// StopGameSessionPlacement +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribePlayerSessions for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribePlayerSessions +func (c *GameLift) DescribePlayerSessions(input *DescribePlayerSessionsInput) (*DescribePlayerSessionsOutput, error) { + req, out := c.DescribePlayerSessionsRequest(input) + return out, req.Send() +} + +// DescribePlayerSessionsWithContext is the same as DescribePlayerSessions with the addition of +// the ability to pass a context and additional request options. +// +// See DescribePlayerSessions 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 *GameLift) DescribePlayerSessionsWithContext(ctx aws.Context, input *DescribePlayerSessionsInput, opts ...request.Option) (*DescribePlayerSessionsOutput, error) { + req, out := c.DescribePlayerSessionsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeRuntimeConfiguration = "DescribeRuntimeConfiguration" + +// DescribeRuntimeConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the DescribeRuntimeConfiguration operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeRuntimeConfiguration for more information on using the DescribeRuntimeConfiguration +// 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 DescribeRuntimeConfigurationRequest method. +// req, resp := client.DescribeRuntimeConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeRuntimeConfiguration +func (c *GameLift) DescribeRuntimeConfigurationRequest(input *DescribeRuntimeConfigurationInput) (req *request.Request, output *DescribeRuntimeConfigurationOutput) { + op := &request.Operation{ + Name: opDescribeRuntimeConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeRuntimeConfigurationInput{} + } + + output = &DescribeRuntimeConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeRuntimeConfiguration API operation for Amazon GameLift. +// +// Retrieves the current run-time configuration for the specified fleet. The +// run-time configuration tells Amazon GameLift how to launch server processes +// on instances in the fleet. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribeRuntimeConfiguration for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeRuntimeConfiguration +func (c *GameLift) DescribeRuntimeConfiguration(input *DescribeRuntimeConfigurationInput) (*DescribeRuntimeConfigurationOutput, error) { + req, out := c.DescribeRuntimeConfigurationRequest(input) + return out, req.Send() +} + +// DescribeRuntimeConfigurationWithContext is the same as DescribeRuntimeConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeRuntimeConfiguration 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 *GameLift) DescribeRuntimeConfigurationWithContext(ctx aws.Context, input *DescribeRuntimeConfigurationInput, opts ...request.Option) (*DescribeRuntimeConfigurationOutput, error) { + req, out := c.DescribeRuntimeConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeScalingPolicies = "DescribeScalingPolicies" + +// DescribeScalingPoliciesRequest generates a "aws/request.Request" representing the +// client's request for the DescribeScalingPolicies operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeScalingPolicies for more information on using the DescribeScalingPolicies +// 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 DescribeScalingPoliciesRequest method. +// req, resp := client.DescribeScalingPoliciesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeScalingPolicies +func (c *GameLift) DescribeScalingPoliciesRequest(input *DescribeScalingPoliciesInput) (req *request.Request, output *DescribeScalingPoliciesOutput) { + op := &request.Operation{ + Name: opDescribeScalingPolicies, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeScalingPoliciesInput{} + } + + output = &DescribeScalingPoliciesOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeScalingPolicies API operation for Amazon GameLift. +// +// Retrieves all scaling policies applied to a fleet. +// +// To get a fleet's scaling policies, specify the fleet ID. You can filter this +// request by policy status, such as to retrieve only active scaling policies. +// Use the pagination parameters to retrieve results as a set of sequential +// pages. If successful, set of ScalingPolicy objects is returned for the fleet. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribeScalingPolicies for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeScalingPolicies +func (c *GameLift) DescribeScalingPolicies(input *DescribeScalingPoliciesInput) (*DescribeScalingPoliciesOutput, error) { + req, out := c.DescribeScalingPoliciesRequest(input) + return out, req.Send() +} + +// DescribeScalingPoliciesWithContext is the same as DescribeScalingPolicies with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeScalingPolicies 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 *GameLift) DescribeScalingPoliciesWithContext(ctx aws.Context, input *DescribeScalingPoliciesInput, opts ...request.Option) (*DescribeScalingPoliciesOutput, error) { + req, out := c.DescribeScalingPoliciesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeVpcPeeringAuthorizations = "DescribeVpcPeeringAuthorizations" + +// DescribeVpcPeeringAuthorizationsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeVpcPeeringAuthorizations operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeVpcPeeringAuthorizations for more information on using the DescribeVpcPeeringAuthorizations +// 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 DescribeVpcPeeringAuthorizationsRequest method. +// req, resp := client.DescribeVpcPeeringAuthorizationsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeVpcPeeringAuthorizations +func (c *GameLift) DescribeVpcPeeringAuthorizationsRequest(input *DescribeVpcPeeringAuthorizationsInput) (req *request.Request, output *DescribeVpcPeeringAuthorizationsOutput) { + op := &request.Operation{ + Name: opDescribeVpcPeeringAuthorizations, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeVpcPeeringAuthorizationsInput{} + } + + output = &DescribeVpcPeeringAuthorizationsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeVpcPeeringAuthorizations API operation for Amazon GameLift. +// +// Retrieves valid VPC peering authorizations that are pending for the AWS account. +// This operation returns all VPC peering authorizations and requests for peering. +// This includes those initiated and received by this account. +// +// VPC peering connection operations include: +// +// * CreateVpcPeeringAuthorization +// +// * DescribeVpcPeeringAuthorizations +// +// * DeleteVpcPeeringAuthorization +// +// * CreateVpcPeeringConnection +// +// * DescribeVpcPeeringConnections +// +// * DeleteVpcPeeringConnection +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribeVpcPeeringAuthorizations for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeVpcPeeringAuthorizations +func (c *GameLift) DescribeVpcPeeringAuthorizations(input *DescribeVpcPeeringAuthorizationsInput) (*DescribeVpcPeeringAuthorizationsOutput, error) { + req, out := c.DescribeVpcPeeringAuthorizationsRequest(input) + return out, req.Send() +} + +// DescribeVpcPeeringAuthorizationsWithContext is the same as DescribeVpcPeeringAuthorizations with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeVpcPeeringAuthorizations 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 *GameLift) DescribeVpcPeeringAuthorizationsWithContext(ctx aws.Context, input *DescribeVpcPeeringAuthorizationsInput, opts ...request.Option) (*DescribeVpcPeeringAuthorizationsOutput, error) { + req, out := c.DescribeVpcPeeringAuthorizationsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeVpcPeeringConnections = "DescribeVpcPeeringConnections" + +// DescribeVpcPeeringConnectionsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeVpcPeeringConnections operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeVpcPeeringConnections for more information on using the DescribeVpcPeeringConnections +// 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 DescribeVpcPeeringConnectionsRequest method. +// req, resp := client.DescribeVpcPeeringConnectionsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeVpcPeeringConnections +func (c *GameLift) DescribeVpcPeeringConnectionsRequest(input *DescribeVpcPeeringConnectionsInput) (req *request.Request, output *DescribeVpcPeeringConnectionsOutput) { + op := &request.Operation{ + Name: opDescribeVpcPeeringConnections, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeVpcPeeringConnectionsInput{} + } + + output = &DescribeVpcPeeringConnectionsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeVpcPeeringConnections API operation for Amazon GameLift. +// +// Retrieves information on VPC peering connections. Use this operation to get +// peering information for all fleets or for one specific fleet ID. +// +// To retrieve connection information, call this operation from the AWS account +// that is used to manage the Amazon GameLift fleets. Specify a fleet ID or +// leave the parameter empty to retrieve all connection records. If successful, +// the retrieved information includes both active and pending connections. Active +// connections identify the IpV4 CIDR block that the VPC uses to connect. +// +// VPC peering connection operations include: +// +// * CreateVpcPeeringAuthorization +// +// * DescribeVpcPeeringAuthorizations +// +// * DeleteVpcPeeringAuthorization +// +// * CreateVpcPeeringConnection +// +// * DescribeVpcPeeringConnections +// +// * DeleteVpcPeeringConnection +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation DescribeVpcPeeringConnections for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeVpcPeeringConnections +func (c *GameLift) DescribeVpcPeeringConnections(input *DescribeVpcPeeringConnectionsInput) (*DescribeVpcPeeringConnectionsOutput, error) { + req, out := c.DescribeVpcPeeringConnectionsRequest(input) + return out, req.Send() +} + +// DescribeVpcPeeringConnectionsWithContext is the same as DescribeVpcPeeringConnections with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeVpcPeeringConnections 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 *GameLift) DescribeVpcPeeringConnectionsWithContext(ctx aws.Context, input *DescribeVpcPeeringConnectionsInput, opts ...request.Option) (*DescribeVpcPeeringConnectionsOutput, error) { + req, out := c.DescribeVpcPeeringConnectionsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetGameSessionLogUrl = "GetGameSessionLogUrl" + +// GetGameSessionLogUrlRequest generates a "aws/request.Request" representing the +// client's request for the GetGameSessionLogUrl operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 GetGameSessionLogUrl for more information on using the GetGameSessionLogUrl +// 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 GetGameSessionLogUrlRequest method. +// req, resp := client.GetGameSessionLogUrlRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GetGameSessionLogUrl +func (c *GameLift) GetGameSessionLogUrlRequest(input *GetGameSessionLogUrlInput) (req *request.Request, output *GetGameSessionLogUrlOutput) { + op := &request.Operation{ + Name: opGetGameSessionLogUrl, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetGameSessionLogUrlInput{} + } + + output = &GetGameSessionLogUrlOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetGameSessionLogUrl API operation for Amazon GameLift. +// +// Retrieves the location of stored game session logs for a specified game session. +// When a game session is terminated, Amazon GameLift automatically stores the +// logs in Amazon S3 and retains them for 14 days. Use this URL to download +// the logs. +// +// See the AWS Service Limits (http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_gamelift) +// page for maximum log file sizes. Log files that exceed this limit are not +// saved. +// +// Game-session-related operations include: +// +// * CreateGameSession +// +// * DescribeGameSessions +// +// * DescribeGameSessionDetails +// +// * SearchGameSessions +// +// * UpdateGameSession +// +// * GetGameSessionLogUrl +// +// * Game session placements +// +// StartGameSessionPlacement +// +// DescribeGameSessionPlacement +// +// StopGameSessionPlacement +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation GetGameSessionLogUrl for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GetGameSessionLogUrl +func (c *GameLift) GetGameSessionLogUrl(input *GetGameSessionLogUrlInput) (*GetGameSessionLogUrlOutput, error) { + req, out := c.GetGameSessionLogUrlRequest(input) + return out, req.Send() +} + +// GetGameSessionLogUrlWithContext is the same as GetGameSessionLogUrl with the addition of +// the ability to pass a context and additional request options. +// +// See GetGameSessionLogUrl 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 *GameLift) GetGameSessionLogUrlWithContext(ctx aws.Context, input *GetGameSessionLogUrlInput, opts ...request.Option) (*GetGameSessionLogUrlOutput, error) { + req, out := c.GetGameSessionLogUrlRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetInstanceAccess = "GetInstanceAccess" + +// GetInstanceAccessRequest generates a "aws/request.Request" representing the +// client's request for the GetInstanceAccess operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 GetInstanceAccess for more information on using the GetInstanceAccess +// 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 GetInstanceAccessRequest method. +// req, resp := client.GetInstanceAccessRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GetInstanceAccess +func (c *GameLift) GetInstanceAccessRequest(input *GetInstanceAccessInput) (req *request.Request, output *GetInstanceAccessOutput) { + op := &request.Operation{ + Name: opGetInstanceAccess, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetInstanceAccessInput{} + } + + output = &GetInstanceAccessOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetInstanceAccess API operation for Amazon GameLift. +// +// Requests remote access to a fleet instance. Remote access is useful for debugging, +// gathering benchmarking data, or watching activity in real time. +// +// Access requires credentials that match the operating system of the instance. +// For a Windows instance, Amazon GameLift returns a user name and password +// as strings for use with a Windows Remote Desktop client. For a Linux instance, +// Amazon GameLift returns a user name and RSA private key, also as strings, +// for use with an SSH client. The private key must be saved in the proper format +// to a .pem file before using. If you're making this request using the AWS +// CLI, saving the secret can be handled as part of the GetInstanceAccess request. +// (See the example later in this topic). For more information on remote access, +// see Remotely Accessing an Instance (http://docs.aws.amazon.com/gamelift/latest/developerguide/fleets-remote-access.html). +// +// To request access to a specific instance, specify the IDs of the instance +// and the fleet it belongs to. If successful, an InstanceAccess object is returned +// containing the instance's IP address and a set of credentials. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation GetInstanceAccess for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GetInstanceAccess +func (c *GameLift) GetInstanceAccess(input *GetInstanceAccessInput) (*GetInstanceAccessOutput, error) { + req, out := c.GetInstanceAccessRequest(input) + return out, req.Send() +} + +// GetInstanceAccessWithContext is the same as GetInstanceAccess with the addition of +// the ability to pass a context and additional request options. +// +// See GetInstanceAccess 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 *GameLift) GetInstanceAccessWithContext(ctx aws.Context, input *GetInstanceAccessInput, opts ...request.Option) (*GetInstanceAccessOutput, error) { + req, out := c.GetInstanceAccessRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListAliases = "ListAliases" + +// ListAliasesRequest generates a "aws/request.Request" representing the +// client's request for the ListAliases operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 ListAliases for more information on using the ListAliases +// 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 ListAliasesRequest method. +// req, resp := client.ListAliasesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ListAliases +func (c *GameLift) ListAliasesRequest(input *ListAliasesInput) (req *request.Request, output *ListAliasesOutput) { + op := &request.Operation{ + Name: opListAliases, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListAliasesInput{} + } + + output = &ListAliasesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListAliases API operation for Amazon GameLift. +// +// Retrieves all aliases for this AWS account. You can filter the result set +// by alias name and/or routing strategy type. Use the pagination parameters +// to retrieve results in sequential pages. +// +// Returned aliases are not listed in any particular order. +// +// Alias-related operations include: +// +// * CreateAlias +// +// * ListAliases +// +// * DescribeAlias +// +// * UpdateAlias +// +// * DeleteAlias +// +// * ResolveAlias +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation ListAliases for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ListAliases +func (c *GameLift) ListAliases(input *ListAliasesInput) (*ListAliasesOutput, error) { + req, out := c.ListAliasesRequest(input) + return out, req.Send() +} + +// ListAliasesWithContext is the same as ListAliases with the addition of +// the ability to pass a context and additional request options. +// +// See ListAliases 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 *GameLift) ListAliasesWithContext(ctx aws.Context, input *ListAliasesInput, opts ...request.Option) (*ListAliasesOutput, error) { + req, out := c.ListAliasesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListBuilds = "ListBuilds" + +// ListBuildsRequest generates a "aws/request.Request" representing the +// client's request for the ListBuilds operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 ListBuilds for more information on using the ListBuilds +// 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 ListBuildsRequest method. +// req, resp := client.ListBuildsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ListBuilds +func (c *GameLift) ListBuildsRequest(input *ListBuildsInput) (req *request.Request, output *ListBuildsOutput) { + op := &request.Operation{ + Name: opListBuilds, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListBuildsInput{} + } + + output = &ListBuildsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListBuilds API operation for Amazon GameLift. +// +// Retrieves build records for all builds associated with the AWS account in +// use. You can limit results to builds that are in a specific status by using +// the Status parameter. Use the pagination parameters to retrieve results in +// a set of sequential pages. +// +// Build records are not listed in any particular order. +// +// Build-related operations include: +// +// * CreateBuild +// +// * ListBuilds +// +// * DescribeBuild +// +// * UpdateBuild +// +// * DeleteBuild +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation ListBuilds for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ListBuilds +func (c *GameLift) ListBuilds(input *ListBuildsInput) (*ListBuildsOutput, error) { + req, out := c.ListBuildsRequest(input) + return out, req.Send() +} + +// ListBuildsWithContext is the same as ListBuilds with the addition of +// the ability to pass a context and additional request options. +// +// See ListBuilds 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 *GameLift) ListBuildsWithContext(ctx aws.Context, input *ListBuildsInput, opts ...request.Option) (*ListBuildsOutput, error) { + req, out := c.ListBuildsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListFleets = "ListFleets" + +// ListFleetsRequest generates a "aws/request.Request" representing the +// client's request for the ListFleets operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 ListFleets for more information on using the ListFleets +// 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 ListFleetsRequest method. +// req, resp := client.ListFleetsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ListFleets +func (c *GameLift) ListFleetsRequest(input *ListFleetsInput) (req *request.Request, output *ListFleetsOutput) { + op := &request.Operation{ + Name: opListFleets, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListFleetsInput{} + } + + output = &ListFleetsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListFleets API operation for Amazon GameLift. +// +// Retrieves a collection of fleet records for this AWS account. You can filter +// the result set by build ID. Use the pagination parameters to retrieve results +// in sequential pages. +// +// Fleet records are not listed in any particular order. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation ListFleets for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ListFleets +func (c *GameLift) ListFleets(input *ListFleetsInput) (*ListFleetsOutput, error) { + req, out := c.ListFleetsRequest(input) + return out, req.Send() +} + +// ListFleetsWithContext is the same as ListFleets with the addition of +// the ability to pass a context and additional request options. +// +// See ListFleets 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 *GameLift) ListFleetsWithContext(ctx aws.Context, input *ListFleetsInput, opts ...request.Option) (*ListFleetsOutput, error) { + req, out := c.ListFleetsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opPutScalingPolicy = "PutScalingPolicy" + +// PutScalingPolicyRequest generates a "aws/request.Request" representing the +// client's request for the PutScalingPolicy operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 PutScalingPolicy for more information on using the PutScalingPolicy +// 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 PutScalingPolicyRequest method. +// req, resp := client.PutScalingPolicyRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/PutScalingPolicy +func (c *GameLift) PutScalingPolicyRequest(input *PutScalingPolicyInput) (req *request.Request, output *PutScalingPolicyOutput) { + op := &request.Operation{ + Name: opPutScalingPolicy, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &PutScalingPolicyInput{} + } + + output = &PutScalingPolicyOutput{} + req = c.newRequest(op, input, output) + return +} + +// PutScalingPolicy API operation for Amazon GameLift. +// +// Creates or updates a scaling policy for a fleet. An active scaling policy +// prompts Amazon GameLift to track a certain metric for a fleet and automatically +// change the fleet's capacity in specific circumstances. Each scaling policy +// contains one rule statement. Fleets can have multiple scaling policies in +// force simultaneously. +// +// A scaling policy rule statement has the following structure: +// +// If [MetricName] is [ComparisonOperator][Threshold] for [EvaluationPeriods] +// minutes, then [ScalingAdjustmentType] to/by [ScalingAdjustment]. +// +// For example, this policy: "If the number of idle instances exceeds 20 for +// more than 15 minutes, then reduce the fleet capacity by 10 instances" could +// be implemented as the following rule statement: +// +// If [IdleInstances] is [GreaterThanOrEqualToThreshold] [20] for [15] minutes, +// then [ChangeInCapacity] by [-10]. +// +// To create or update a scaling policy, specify a unique combination of name +// and fleet ID, and set the rule values. All parameters for this action are +// required. If successful, the policy name is returned. Scaling policies cannot +// be suspended or made inactive. To stop enforcing a scaling policy, call DeleteScalingPolicy. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation PutScalingPolicy for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/PutScalingPolicy +func (c *GameLift) PutScalingPolicy(input *PutScalingPolicyInput) (*PutScalingPolicyOutput, error) { + req, out := c.PutScalingPolicyRequest(input) + return out, req.Send() +} + +// PutScalingPolicyWithContext is the same as PutScalingPolicy with the addition of +// the ability to pass a context and additional request options. +// +// See PutScalingPolicy 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 *GameLift) PutScalingPolicyWithContext(ctx aws.Context, input *PutScalingPolicyInput, opts ...request.Option) (*PutScalingPolicyOutput, error) { + req, out := c.PutScalingPolicyRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opRequestUploadCredentials = "RequestUploadCredentials" + +// RequestUploadCredentialsRequest generates a "aws/request.Request" representing the +// client's request for the RequestUploadCredentials operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 RequestUploadCredentials for more information on using the RequestUploadCredentials +// 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 RequestUploadCredentialsRequest method. +// req, resp := client.RequestUploadCredentialsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/RequestUploadCredentials +func (c *GameLift) RequestUploadCredentialsRequest(input *RequestUploadCredentialsInput) (req *request.Request, output *RequestUploadCredentialsOutput) { + op := &request.Operation{ + Name: opRequestUploadCredentials, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &RequestUploadCredentialsInput{} + } + + output = &RequestUploadCredentialsOutput{} + req = c.newRequest(op, input, output) + return +} + +// RequestUploadCredentials API operation for Amazon GameLift. +// +// This API call is not currently in use. Retrieves a fresh set of upload credentials +// and the assigned Amazon S3 storage location for a specific build. Valid credentials +// are required to upload your game build files to Amazon S3. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation RequestUploadCredentials for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/RequestUploadCredentials +func (c *GameLift) RequestUploadCredentials(input *RequestUploadCredentialsInput) (*RequestUploadCredentialsOutput, error) { + req, out := c.RequestUploadCredentialsRequest(input) + return out, req.Send() +} + +// RequestUploadCredentialsWithContext is the same as RequestUploadCredentials with the addition of +// the ability to pass a context and additional request options. +// +// See RequestUploadCredentials 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 *GameLift) RequestUploadCredentialsWithContext(ctx aws.Context, input *RequestUploadCredentialsInput, opts ...request.Option) (*RequestUploadCredentialsOutput, error) { + req, out := c.RequestUploadCredentialsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opResolveAlias = "ResolveAlias" + +// ResolveAliasRequest generates a "aws/request.Request" representing the +// client's request for the ResolveAlias operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 ResolveAlias for more information on using the ResolveAlias +// 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 ResolveAliasRequest method. +// req, resp := client.ResolveAliasRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ResolveAlias +func (c *GameLift) ResolveAliasRequest(input *ResolveAliasInput) (req *request.Request, output *ResolveAliasOutput) { + op := &request.Operation{ + Name: opResolveAlias, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ResolveAliasInput{} + } + + output = &ResolveAliasOutput{} + req = c.newRequest(op, input, output) + return +} + +// ResolveAlias API operation for Amazon GameLift. +// +// Retrieves the fleet ID that a specified alias is currently pointing to. +// +// Alias-related operations include: +// +// * CreateAlias +// +// * ListAliases +// +// * DescribeAlias +// +// * UpdateAlias +// +// * DeleteAlias +// +// * ResolveAlias +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation ResolveAlias for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeTerminalRoutingStrategyException "TerminalRoutingStrategyException" +// The service is unable to resolve the routing for a particular alias because +// it has a terminal RoutingStrategy associated with it. The message returned +// in this exception is the message defined in the routing strategy itself. +// Such requests should only be retried if the routing strategy for the specified +// alias is modified. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ResolveAlias +func (c *GameLift) ResolveAlias(input *ResolveAliasInput) (*ResolveAliasOutput, error) { + req, out := c.ResolveAliasRequest(input) + return out, req.Send() +} + +// ResolveAliasWithContext is the same as ResolveAlias with the addition of +// the ability to pass a context and additional request options. +// +// See ResolveAlias 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 *GameLift) ResolveAliasWithContext(ctx aws.Context, input *ResolveAliasInput, opts ...request.Option) (*ResolveAliasOutput, error) { + req, out := c.ResolveAliasRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opSearchGameSessions = "SearchGameSessions" + +// SearchGameSessionsRequest generates a "aws/request.Request" representing the +// client's request for the SearchGameSessions operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 SearchGameSessions for more information on using the SearchGameSessions +// 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 SearchGameSessionsRequest method. +// req, resp := client.SearchGameSessionsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/SearchGameSessions +func (c *GameLift) SearchGameSessionsRequest(input *SearchGameSessionsInput) (req *request.Request, output *SearchGameSessionsOutput) { + op := &request.Operation{ + Name: opSearchGameSessions, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &SearchGameSessionsInput{} + } + + output = &SearchGameSessionsOutput{} + req = c.newRequest(op, input, output) + return +} + +// SearchGameSessions API operation for Amazon GameLift. +// +// Retrieves a set of game sessions that match a set of search criteria and +// sorts them in a specified order. A game session search is limited to a single +// fleet. Search results include only game sessions that are in ACTIVE status. +// If you need to retrieve game sessions with a status other than active, use +// DescribeGameSessions. If you need to retrieve the protection policy for each +// game session, use DescribeGameSessionDetails. +// +// You can search or sort by the following game session attributes: +// +// * gameSessionId -- Unique identifier for the game session. You can use +// either a GameSessionId or GameSessionArn value. +// +// * gameSessionName -- Name assigned to a game session. This value is set +// when requesting a new game session with CreateGameSession or updating +// with UpdateGameSession. Game session names do not need to be unique to +// a game session. +// +// * creationTimeMillis -- Value indicating when a game session was created. +// It is expressed in Unix time as milliseconds. +// +// * playerSessionCount -- Number of players currently connected to a game +// session. This value changes rapidly as players join the session or drop +// out. +// +// * maximumSessions -- Maximum number of player sessions allowed for a game +// session. This value is set when requesting a new game session with CreateGameSession +// or updating with UpdateGameSession. +// +// * hasAvailablePlayerSessions -- Boolean value indicating whether a game +// session has reached its maximum number of players. When searching with +// this attribute, the search value must be true or false. It is highly recommended +// that all search requests include this filter attribute to optimize search +// performance and return only sessions that players can join. +// +// To search or sort, specify either a fleet ID or an alias ID, and provide +// a search filter expression, a sort expression, or both. Use the pagination +// parameters to retrieve results as a set of sequential pages. If successful, +// a collection of GameSession objects matching the request is returned. +// +// Returned values for playerSessionCount and hasAvailablePlayerSessions change +// quickly as players join sessions and others drop out. Results should be considered +// a snapshot in time. Be sure to refresh search results often, and handle sessions +// that fill up before a player can join. +// +// Game-session-related operations include: +// +// * CreateGameSession +// +// * DescribeGameSessions +// +// * DescribeGameSessionDetails +// +// * SearchGameSessions +// +// * UpdateGameSession +// +// * GetGameSessionLogUrl +// +// * Game session placements +// +// StartGameSessionPlacement +// +// DescribeGameSessionPlacement +// +// StopGameSessionPlacement +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation SearchGameSessions for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeTerminalRoutingStrategyException "TerminalRoutingStrategyException" +// The service is unable to resolve the routing for a particular alias because +// it has a terminal RoutingStrategy associated with it. The message returned +// in this exception is the message defined in the routing strategy itself. +// Such requests should only be retried if the routing strategy for the specified +// alias is modified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/SearchGameSessions +func (c *GameLift) SearchGameSessions(input *SearchGameSessionsInput) (*SearchGameSessionsOutput, error) { + req, out := c.SearchGameSessionsRequest(input) + return out, req.Send() +} + +// SearchGameSessionsWithContext is the same as SearchGameSessions with the addition of +// the ability to pass a context and additional request options. +// +// See SearchGameSessions 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 *GameLift) SearchGameSessionsWithContext(ctx aws.Context, input *SearchGameSessionsInput, opts ...request.Option) (*SearchGameSessionsOutput, error) { + req, out := c.SearchGameSessionsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opStartGameSessionPlacement = "StartGameSessionPlacement" + +// StartGameSessionPlacementRequest generates a "aws/request.Request" representing the +// client's request for the StartGameSessionPlacement operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 StartGameSessionPlacement for more information on using the StartGameSessionPlacement +// 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 StartGameSessionPlacementRequest method. +// req, resp := client.StartGameSessionPlacementRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StartGameSessionPlacement +func (c *GameLift) StartGameSessionPlacementRequest(input *StartGameSessionPlacementInput) (req *request.Request, output *StartGameSessionPlacementOutput) { + op := &request.Operation{ + Name: opStartGameSessionPlacement, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &StartGameSessionPlacementInput{} + } + + output = &StartGameSessionPlacementOutput{} + req = c.newRequest(op, input, output) + return +} + +// StartGameSessionPlacement API operation for Amazon GameLift. +// +// Places a request for a new game session in a queue (see CreateGameSessionQueue). +// When processing a placement request, Amazon GameLift searches for available +// resources on the queue's destinations, scanning each until it finds resources +// or the placement request times out. +// +// A game session placement request can also request player sessions. When a +// new game session is successfully created, Amazon GameLift creates a player +// session for each player included in the request. +// +// When placing a game session, by default Amazon GameLift tries each fleet +// in the order they are listed in the queue configuration. Ideally, a queue's +// destinations are listed in preference order. +// +// Alternatively, when requesting a game session with players, you can also +// provide latency data for each player in relevant regions. Latency data indicates +// the performance lag a player experiences when connected to a fleet in the +// region. Amazon GameLift uses latency data to reorder the list of destinations +// to place the game session in a region with minimal lag. If latency data is +// provided for multiple players, Amazon GameLift calculates each region's average +// lag for all players and reorders to get the best game play across all players. +// +// To place a new game session request, specify the following: +// +// * The queue name and a set of game session properties and settings +// +// * A unique ID (such as a UUID) for the placement. You use this ID to track +// the status of the placement request +// +// * (Optional) A set of IDs and player data for each player you want to +// join to the new game session +// +// * Latency data for all players (if you want to optimize game play for +// the players) +// +// If successful, a new game session placement is created. +// +// To track the status of a placement request, call DescribeGameSessionPlacement +// and check the request's status. If the status is FULFILLED, a new game session +// has been created and a game session ARN and region are referenced. If the +// placement request times out, you can resubmit the request or retry it with +// a different queue. +// +// Game-session-related operations include: +// +// * CreateGameSession +// +// * DescribeGameSessions +// +// * DescribeGameSessionDetails +// +// * SearchGameSessions +// +// * UpdateGameSession +// +// * GetGameSessionLogUrl +// +// * Game session placements +// +// StartGameSessionPlacement +// +// DescribeGameSessionPlacement +// +// StopGameSessionPlacement +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation StartGameSessionPlacement for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StartGameSessionPlacement +func (c *GameLift) StartGameSessionPlacement(input *StartGameSessionPlacementInput) (*StartGameSessionPlacementOutput, error) { + req, out := c.StartGameSessionPlacementRequest(input) + return out, req.Send() +} + +// StartGameSessionPlacementWithContext is the same as StartGameSessionPlacement with the addition of +// the ability to pass a context and additional request options. +// +// See StartGameSessionPlacement 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 *GameLift) StartGameSessionPlacementWithContext(ctx aws.Context, input *StartGameSessionPlacementInput, opts ...request.Option) (*StartGameSessionPlacementOutput, error) { + req, out := c.StartGameSessionPlacementRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opStartMatchmaking = "StartMatchmaking" + +// StartMatchmakingRequest generates a "aws/request.Request" representing the +// client's request for the StartMatchmaking operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 StartMatchmaking for more information on using the StartMatchmaking +// 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 StartMatchmakingRequest method. +// req, resp := client.StartMatchmakingRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StartMatchmaking +func (c *GameLift) StartMatchmakingRequest(input *StartMatchmakingInput) (req *request.Request, output *StartMatchmakingOutput) { + op := &request.Operation{ + Name: opStartMatchmaking, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &StartMatchmakingInput{} + } + + output = &StartMatchmakingOutput{} + req = c.newRequest(op, input, output) + return +} + +// StartMatchmaking API operation for Amazon GameLift. +// +// Uses FlexMatch to create a game match for a group of players based on custom +// matchmaking rules, and starts a new game for the matched players. Each matchmaking +// request specifies the type of match to build (team configuration, rules for +// an acceptable match, etc.). The request also specifies the players to find +// a match for and where to host the new game session for optimal performance. +// A matchmaking request might start with a single player or a group of players +// who want to play together. FlexMatch finds additional players as needed to +// fill the match. Match type, rules, and the queue used to place a new game +// session are defined in a MatchmakingConfiguration. For complete information +// on setting up and using FlexMatch, see the topic Adding FlexMatch to Your +// Game (http://docs.aws.amazon.com/gamelift/latest/developerguide/match-intro.html). +// +// To start matchmaking, provide a unique ticket ID, specify a matchmaking configuration, +// and include the players to be matched. You must also include a set of player +// attributes relevant for the matchmaking configuration. If successful, a matchmaking +// ticket is returned with status set to QUEUED. Track the status of the ticket +// to respond as needed and acquire game session connection information for +// successfully completed matches. +// +// Tracking ticket status -- A couple of options are available for tracking +// the status of matchmaking requests: +// +// * Polling -- Call DescribeMatchmaking. This operation returns the full +// ticket object, including current status and (for completed tickets) game +// session connection info. We recommend polling no more than once every +// 10 seconds. +// +// * Notifications -- Get event notifications for changes in ticket status +// using Amazon Simple Notification Service (SNS). Notifications are easy +// to set up (see CreateMatchmakingConfiguration) and typically deliver match +// status changes faster and more efficiently than polling. We recommend +// that you use polling to back up to notifications (since delivery is not +// guaranteed) and call DescribeMatchmaking only when notifications are not +// received within 30 seconds. +// +// Processing a matchmaking request -- FlexMatch handles a matchmaking request +// as follows: +// +// Your client code submits a StartMatchmaking request for one or more players +// and tracks the status of the request ticket. +// +// FlexMatch uses this ticket and others in process to build an acceptable match. +// When a potential match is identified, all tickets in the proposed match are +// advanced to the next status. +// +// If the match requires player acceptance (set in the matchmaking configuration), +// the tickets move into status REQUIRES_ACCEPTANCE. This status triggers your +// client code to solicit acceptance from all players in every ticket involved +// in the match, and then call AcceptMatch for each player. If any player rejects +// or fails to accept the match before a specified timeout, the proposed match +// is dropped (see AcceptMatch for more details). +// +// Once a match is proposed and accepted, the matchmaking tickets move into +// status PLACING. FlexMatch locates resources for a new game session using +// the game session queue (set in the matchmaking configuration) and creates +// the game session based on the match data. +// +// When the match is successfully placed, the matchmaking tickets move into +// COMPLETED status. Connection information (including game session endpoint +// and player session) is added to the matchmaking tickets. Matched players +// can use the connection information to join the game. +// +// Matchmaking-related operations include: +// +// * StartMatchmaking +// +// * DescribeMatchmaking +// +// * StopMatchmaking +// +// * AcceptMatch +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation StartMatchmaking for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeUnsupportedRegionException "UnsupportedRegionException" +// The requested operation is not supported in the region specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StartMatchmaking +func (c *GameLift) StartMatchmaking(input *StartMatchmakingInput) (*StartMatchmakingOutput, error) { + req, out := c.StartMatchmakingRequest(input) + return out, req.Send() +} + +// StartMatchmakingWithContext is the same as StartMatchmaking with the addition of +// the ability to pass a context and additional request options. +// +// See StartMatchmaking 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 *GameLift) StartMatchmakingWithContext(ctx aws.Context, input *StartMatchmakingInput, opts ...request.Option) (*StartMatchmakingOutput, error) { + req, out := c.StartMatchmakingRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opStopGameSessionPlacement = "StopGameSessionPlacement" + +// StopGameSessionPlacementRequest generates a "aws/request.Request" representing the +// client's request for the StopGameSessionPlacement operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 StopGameSessionPlacement for more information on using the StopGameSessionPlacement +// 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 StopGameSessionPlacementRequest method. +// req, resp := client.StopGameSessionPlacementRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StopGameSessionPlacement +func (c *GameLift) StopGameSessionPlacementRequest(input *StopGameSessionPlacementInput) (req *request.Request, output *StopGameSessionPlacementOutput) { + op := &request.Operation{ + Name: opStopGameSessionPlacement, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &StopGameSessionPlacementInput{} + } + + output = &StopGameSessionPlacementOutput{} + req = c.newRequest(op, input, output) + return +} + +// StopGameSessionPlacement API operation for Amazon GameLift. +// +// Cancels a game session placement that is in PENDING status. To stop a placement, +// provide the placement ID values. If successful, the placement is moved to +// CANCELLED status. +// +// Game-session-related operations include: +// +// * CreateGameSession +// +// * DescribeGameSessions +// +// * DescribeGameSessionDetails +// +// * SearchGameSessions +// +// * UpdateGameSession +// +// * GetGameSessionLogUrl +// +// * Game session placements +// +// StartGameSessionPlacement +// +// DescribeGameSessionPlacement +// +// StopGameSessionPlacement +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation StopGameSessionPlacement for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StopGameSessionPlacement +func (c *GameLift) StopGameSessionPlacement(input *StopGameSessionPlacementInput) (*StopGameSessionPlacementOutput, error) { + req, out := c.StopGameSessionPlacementRequest(input) + return out, req.Send() +} + +// StopGameSessionPlacementWithContext is the same as StopGameSessionPlacement with the addition of +// the ability to pass a context and additional request options. +// +// See StopGameSessionPlacement 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 *GameLift) StopGameSessionPlacementWithContext(ctx aws.Context, input *StopGameSessionPlacementInput, opts ...request.Option) (*StopGameSessionPlacementOutput, error) { + req, out := c.StopGameSessionPlacementRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opStopMatchmaking = "StopMatchmaking" + +// StopMatchmakingRequest generates a "aws/request.Request" representing the +// client's request for the StopMatchmaking operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 StopMatchmaking for more information on using the StopMatchmaking +// 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 StopMatchmakingRequest method. +// req, resp := client.StopMatchmakingRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StopMatchmaking +func (c *GameLift) StopMatchmakingRequest(input *StopMatchmakingInput) (req *request.Request, output *StopMatchmakingOutput) { + op := &request.Operation{ + Name: opStopMatchmaking, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &StopMatchmakingInput{} + } + + output = &StopMatchmakingOutput{} + req = c.newRequest(op, input, output) + return +} + +// StopMatchmaking API operation for Amazon GameLift. +// +// Cancels a matchmaking ticket that is currently being processed. To stop the +// matchmaking operation, specify the ticket ID. If successful, work on the +// ticket is stopped, and the ticket status is changed to CANCELLED. +// +// Matchmaking-related operations include: +// +// * StartMatchmaking +// +// * DescribeMatchmaking +// +// * StopMatchmaking +// +// * AcceptMatch +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation StopMatchmaking for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeUnsupportedRegionException "UnsupportedRegionException" +// The requested operation is not supported in the region specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StopMatchmaking +func (c *GameLift) StopMatchmaking(input *StopMatchmakingInput) (*StopMatchmakingOutput, error) { + req, out := c.StopMatchmakingRequest(input) + return out, req.Send() +} + +// StopMatchmakingWithContext is the same as StopMatchmaking with the addition of +// the ability to pass a context and additional request options. +// +// See StopMatchmaking 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 *GameLift) StopMatchmakingWithContext(ctx aws.Context, input *StopMatchmakingInput, opts ...request.Option) (*StopMatchmakingOutput, error) { + req, out := c.StopMatchmakingRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateAlias = "UpdateAlias" + +// UpdateAliasRequest generates a "aws/request.Request" representing the +// client's request for the UpdateAlias operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 UpdateAlias for more information on using the UpdateAlias +// 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 UpdateAliasRequest method. +// req, resp := client.UpdateAliasRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateAlias +func (c *GameLift) UpdateAliasRequest(input *UpdateAliasInput) (req *request.Request, output *UpdateAliasOutput) { + op := &request.Operation{ + Name: opUpdateAlias, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateAliasInput{} + } + + output = &UpdateAliasOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateAlias API operation for Amazon GameLift. +// +// Updates properties for an alias. To update properties, specify the alias +// ID to be updated and provide the information to be changed. To reassign an +// alias to another fleet, provide an updated routing strategy. If successful, +// the updated alias record is returned. +// +// Alias-related operations include: +// +// * CreateAlias +// +// * ListAliases +// +// * DescribeAlias +// +// * UpdateAlias +// +// * DeleteAlias +// +// * ResolveAlias +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation UpdateAlias for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateAlias +func (c *GameLift) UpdateAlias(input *UpdateAliasInput) (*UpdateAliasOutput, error) { + req, out := c.UpdateAliasRequest(input) + return out, req.Send() +} + +// UpdateAliasWithContext is the same as UpdateAlias with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateAlias 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 *GameLift) UpdateAliasWithContext(ctx aws.Context, input *UpdateAliasInput, opts ...request.Option) (*UpdateAliasOutput, error) { + req, out := c.UpdateAliasRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateBuild = "UpdateBuild" + +// UpdateBuildRequest generates a "aws/request.Request" representing the +// client's request for the UpdateBuild operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 UpdateBuild for more information on using the UpdateBuild +// 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 UpdateBuildRequest method. +// req, resp := client.UpdateBuildRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateBuild +func (c *GameLift) UpdateBuildRequest(input *UpdateBuildInput) (req *request.Request, output *UpdateBuildOutput) { + op := &request.Operation{ + Name: opUpdateBuild, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateBuildInput{} + } + + output = &UpdateBuildOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateBuild API operation for Amazon GameLift. +// +// Updates metadata in a build record, including the build name and version. +// To update the metadata, specify the build ID to update and provide the new +// values. If successful, a build object containing the updated metadata is +// returned. +// +// Build-related operations include: +// +// * CreateBuild +// +// * ListBuilds +// +// * DescribeBuild +// +// * UpdateBuild +// +// * DeleteBuild +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation UpdateBuild for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateBuild +func (c *GameLift) UpdateBuild(input *UpdateBuildInput) (*UpdateBuildOutput, error) { + req, out := c.UpdateBuildRequest(input) + return out, req.Send() +} + +// UpdateBuildWithContext is the same as UpdateBuild with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateBuild 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 *GameLift) UpdateBuildWithContext(ctx aws.Context, input *UpdateBuildInput, opts ...request.Option) (*UpdateBuildOutput, error) { + req, out := c.UpdateBuildRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateFleetAttributes = "UpdateFleetAttributes" + +// UpdateFleetAttributesRequest generates a "aws/request.Request" representing the +// client's request for the UpdateFleetAttributes operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 UpdateFleetAttributes for more information on using the UpdateFleetAttributes +// 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 UpdateFleetAttributesRequest method. +// req, resp := client.UpdateFleetAttributesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateFleetAttributes +func (c *GameLift) UpdateFleetAttributesRequest(input *UpdateFleetAttributesInput) (req *request.Request, output *UpdateFleetAttributesOutput) { + op := &request.Operation{ + Name: opUpdateFleetAttributes, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateFleetAttributesInput{} + } + + output = &UpdateFleetAttributesOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateFleetAttributes API operation for Amazon GameLift. +// +// Updates fleet properties, including name and description, for a fleet. To +// update metadata, specify the fleet ID and the property values that you want +// to change. If successful, the fleet ID for the updated fleet is returned. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation UpdateFleetAttributes for usage and error information. +// +// Returned Error Codes: +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeConflictException "ConflictException" +// The requested operation would cause a conflict with the current state of +// a service resource associated with the request. Resolve the conflict before +// retrying this request. +// +// * ErrCodeInvalidFleetStatusException "InvalidFleetStatusException" +// The requested operation would cause a conflict with the current state of +// a resource associated with the request and/or the fleet. Resolve the conflict +// before retrying. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// The requested operation would cause the resource to exceed the allowed service +// limit. Resolve the issue before retrying. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateFleetAttributes +func (c *GameLift) UpdateFleetAttributes(input *UpdateFleetAttributesInput) (*UpdateFleetAttributesOutput, error) { + req, out := c.UpdateFleetAttributesRequest(input) + return out, req.Send() +} + +// UpdateFleetAttributesWithContext is the same as UpdateFleetAttributes with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateFleetAttributes 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 *GameLift) UpdateFleetAttributesWithContext(ctx aws.Context, input *UpdateFleetAttributesInput, opts ...request.Option) (*UpdateFleetAttributesOutput, error) { + req, out := c.UpdateFleetAttributesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateFleetCapacity = "UpdateFleetCapacity" + +// UpdateFleetCapacityRequest generates a "aws/request.Request" representing the +// client's request for the UpdateFleetCapacity operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 UpdateFleetCapacity for more information on using the UpdateFleetCapacity +// 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 UpdateFleetCapacityRequest method. +// req, resp := client.UpdateFleetCapacityRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateFleetCapacity +func (c *GameLift) UpdateFleetCapacityRequest(input *UpdateFleetCapacityInput) (req *request.Request, output *UpdateFleetCapacityOutput) { + op := &request.Operation{ + Name: opUpdateFleetCapacity, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateFleetCapacityInput{} + } + + output = &UpdateFleetCapacityOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateFleetCapacity API operation for Amazon GameLift. +// +// Updates capacity settings for a fleet. Use this action to specify the number +// of EC2 instances (hosts) that you want this fleet to contain. Before calling +// this action, you may want to call DescribeEC2InstanceLimits to get the maximum +// capacity based on the fleet's EC2 instance type. +// +// If you're using autoscaling (see PutScalingPolicy), you may want to specify +// a minimum and/or maximum capacity. If you don't provide these, autoscaling +// can set capacity anywhere between zero and the service limits (http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_gamelift). +// +// To update fleet capacity, specify the fleet ID and the number of instances +// you want the fleet to host. If successful, Amazon GameLift starts or terminates +// instances so that the fleet's active instance count matches the desired instance +// count. You can view a fleet's current capacity information by calling DescribeFleetCapacity. +// If the desired instance count is higher than the instance type's limit, the +// "Limit Exceeded" exception occurs. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation UpdateFleetCapacity for usage and error information. +// +// Returned Error Codes: +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeConflictException "ConflictException" +// The requested operation would cause a conflict with the current state of +// a service resource associated with the request. Resolve the conflict before +// retrying this request. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// The requested operation would cause the resource to exceed the allowed service +// limit. Resolve the issue before retrying. +// +// * ErrCodeInvalidFleetStatusException "InvalidFleetStatusException" +// The requested operation would cause a conflict with the current state of +// a resource associated with the request and/or the fleet. Resolve the conflict +// before retrying. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateFleetCapacity +func (c *GameLift) UpdateFleetCapacity(input *UpdateFleetCapacityInput) (*UpdateFleetCapacityOutput, error) { + req, out := c.UpdateFleetCapacityRequest(input) + return out, req.Send() +} + +// UpdateFleetCapacityWithContext is the same as UpdateFleetCapacity with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateFleetCapacity 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 *GameLift) UpdateFleetCapacityWithContext(ctx aws.Context, input *UpdateFleetCapacityInput, opts ...request.Option) (*UpdateFleetCapacityOutput, error) { + req, out := c.UpdateFleetCapacityRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateFleetPortSettings = "UpdateFleetPortSettings" + +// UpdateFleetPortSettingsRequest generates a "aws/request.Request" representing the +// client's request for the UpdateFleetPortSettings operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 UpdateFleetPortSettings for more information on using the UpdateFleetPortSettings +// 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 UpdateFleetPortSettingsRequest method. +// req, resp := client.UpdateFleetPortSettingsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateFleetPortSettings +func (c *GameLift) UpdateFleetPortSettingsRequest(input *UpdateFleetPortSettingsInput) (req *request.Request, output *UpdateFleetPortSettingsOutput) { + op := &request.Operation{ + Name: opUpdateFleetPortSettings, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateFleetPortSettingsInput{} + } + + output = &UpdateFleetPortSettingsOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateFleetPortSettings API operation for Amazon GameLift. +// +// Updates port settings for a fleet. To update settings, specify the fleet +// ID to be updated and list the permissions you want to update. List the permissions +// you want to add in InboundPermissionAuthorizations, and permissions you want +// to remove in InboundPermissionRevocations. Permissions to be removed must +// match existing fleet permissions. If successful, the fleet ID for the updated +// fleet is returned. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation UpdateFleetPortSettings for usage and error information. +// +// Returned Error Codes: +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeConflictException "ConflictException" +// The requested operation would cause a conflict with the current state of +// a service resource associated with the request. Resolve the conflict before +// retrying this request. +// +// * ErrCodeInvalidFleetStatusException "InvalidFleetStatusException" +// The requested operation would cause a conflict with the current state of +// a resource associated with the request and/or the fleet. Resolve the conflict +// before retrying. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// The requested operation would cause the resource to exceed the allowed service +// limit. Resolve the issue before retrying. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateFleetPortSettings +func (c *GameLift) UpdateFleetPortSettings(input *UpdateFleetPortSettingsInput) (*UpdateFleetPortSettingsOutput, error) { + req, out := c.UpdateFleetPortSettingsRequest(input) + return out, req.Send() +} + +// UpdateFleetPortSettingsWithContext is the same as UpdateFleetPortSettings with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateFleetPortSettings 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 *GameLift) UpdateFleetPortSettingsWithContext(ctx aws.Context, input *UpdateFleetPortSettingsInput, opts ...request.Option) (*UpdateFleetPortSettingsOutput, error) { + req, out := c.UpdateFleetPortSettingsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateGameSession = "UpdateGameSession" + +// UpdateGameSessionRequest generates a "aws/request.Request" representing the +// client's request for the UpdateGameSession operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 UpdateGameSession for more information on using the UpdateGameSession +// 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 UpdateGameSessionRequest method. +// req, resp := client.UpdateGameSessionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateGameSession +func (c *GameLift) UpdateGameSessionRequest(input *UpdateGameSessionInput) (req *request.Request, output *UpdateGameSessionOutput) { + op := &request.Operation{ + Name: opUpdateGameSession, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateGameSessionInput{} + } + + output = &UpdateGameSessionOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateGameSession API operation for Amazon GameLift. +// +// Updates game session properties. This includes the session name, maximum +// player count, protection policy, which controls whether or not an active +// game session can be terminated during a scale-down event, and the player +// session creation policy, which controls whether or not new players can join +// the session. To update a game session, specify the game session ID and the +// values you want to change. If successful, an updated GameSession object is +// returned. +// +// Game-session-related operations include: +// +// * CreateGameSession +// +// * DescribeGameSessions +// +// * DescribeGameSessionDetails +// +// * SearchGameSessions +// +// * UpdateGameSession +// +// * GetGameSessionLogUrl +// +// * Game session placements +// +// StartGameSessionPlacement +// +// DescribeGameSessionPlacement +// +// StopGameSessionPlacement +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation UpdateGameSession for usage and error information. +// +// Returned Error Codes: +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeConflictException "ConflictException" +// The requested operation would cause a conflict with the current state of +// a service resource associated with the request. Resolve the conflict before +// retrying this request. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeInvalidGameSessionStatusException "InvalidGameSessionStatusException" +// The requested operation would cause a conflict with the current state of +// a resource associated with the request and/or the game instance. Resolve +// the conflict before retrying. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateGameSession +func (c *GameLift) UpdateGameSession(input *UpdateGameSessionInput) (*UpdateGameSessionOutput, error) { + req, out := c.UpdateGameSessionRequest(input) + return out, req.Send() +} + +// UpdateGameSessionWithContext is the same as UpdateGameSession with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateGameSession 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 *GameLift) UpdateGameSessionWithContext(ctx aws.Context, input *UpdateGameSessionInput, opts ...request.Option) (*UpdateGameSessionOutput, error) { + req, out := c.UpdateGameSessionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateGameSessionQueue = "UpdateGameSessionQueue" + +// UpdateGameSessionQueueRequest generates a "aws/request.Request" representing the +// client's request for the UpdateGameSessionQueue operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 UpdateGameSessionQueue for more information on using the UpdateGameSessionQueue +// 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 UpdateGameSessionQueueRequest method. +// req, resp := client.UpdateGameSessionQueueRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateGameSessionQueue +func (c *GameLift) UpdateGameSessionQueueRequest(input *UpdateGameSessionQueueInput) (req *request.Request, output *UpdateGameSessionQueueOutput) { + op := &request.Operation{ + Name: opUpdateGameSessionQueue, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateGameSessionQueueInput{} + } + + output = &UpdateGameSessionQueueOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateGameSessionQueue API operation for Amazon GameLift. +// +// Updates settings for a game session queue, which determines how new game +// session requests in the queue are processed. To update settings, specify +// the queue name to be updated and provide the new settings. When updating +// destinations, provide a complete list of destinations. +// +// Queue-related operations include: +// +// * CreateGameSessionQueue +// +// * DescribeGameSessionQueues +// +// * UpdateGameSessionQueue +// +// * DeleteGameSessionQueue +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation UpdateGameSessionQueue for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateGameSessionQueue +func (c *GameLift) UpdateGameSessionQueue(input *UpdateGameSessionQueueInput) (*UpdateGameSessionQueueOutput, error) { + req, out := c.UpdateGameSessionQueueRequest(input) + return out, req.Send() +} + +// UpdateGameSessionQueueWithContext is the same as UpdateGameSessionQueue with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateGameSessionQueue 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 *GameLift) UpdateGameSessionQueueWithContext(ctx aws.Context, input *UpdateGameSessionQueueInput, opts ...request.Option) (*UpdateGameSessionQueueOutput, error) { + req, out := c.UpdateGameSessionQueueRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateMatchmakingConfiguration = "UpdateMatchmakingConfiguration" + +// UpdateMatchmakingConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the UpdateMatchmakingConfiguration operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 UpdateMatchmakingConfiguration for more information on using the UpdateMatchmakingConfiguration +// 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 UpdateMatchmakingConfigurationRequest method. +// req, resp := client.UpdateMatchmakingConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateMatchmakingConfiguration +func (c *GameLift) UpdateMatchmakingConfigurationRequest(input *UpdateMatchmakingConfigurationInput) (req *request.Request, output *UpdateMatchmakingConfigurationOutput) { + op := &request.Operation{ + Name: opUpdateMatchmakingConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateMatchmakingConfigurationInput{} + } + + output = &UpdateMatchmakingConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateMatchmakingConfiguration API operation for Amazon GameLift. +// +// Updates settings for a FlexMatch matchmaking configuration. To update settings, +// specify the configuration name to be updated and provide the new settings. +// +// Operations related to match configurations and rule sets include: +// +// * CreateMatchmakingConfiguration +// +// * DescribeMatchmakingConfigurations +// +// * UpdateMatchmakingConfiguration +// +// * DeleteMatchmakingConfiguration +// +// * CreateMatchmakingRuleSet +// +// * DescribeMatchmakingRuleSets +// +// * ValidateMatchmakingRuleSet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation UpdateMatchmakingConfiguration for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeUnsupportedRegionException "UnsupportedRegionException" +// The requested operation is not supported in the region specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateMatchmakingConfiguration +func (c *GameLift) UpdateMatchmakingConfiguration(input *UpdateMatchmakingConfigurationInput) (*UpdateMatchmakingConfigurationOutput, error) { + req, out := c.UpdateMatchmakingConfigurationRequest(input) + return out, req.Send() +} + +// UpdateMatchmakingConfigurationWithContext is the same as UpdateMatchmakingConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateMatchmakingConfiguration 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 *GameLift) UpdateMatchmakingConfigurationWithContext(ctx aws.Context, input *UpdateMatchmakingConfigurationInput, opts ...request.Option) (*UpdateMatchmakingConfigurationOutput, error) { + req, out := c.UpdateMatchmakingConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateRuntimeConfiguration = "UpdateRuntimeConfiguration" + +// UpdateRuntimeConfigurationRequest generates a "aws/request.Request" representing the +// client's request for the UpdateRuntimeConfiguration operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 UpdateRuntimeConfiguration for more information on using the UpdateRuntimeConfiguration +// 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 UpdateRuntimeConfigurationRequest method. +// req, resp := client.UpdateRuntimeConfigurationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateRuntimeConfiguration +func (c *GameLift) UpdateRuntimeConfigurationRequest(input *UpdateRuntimeConfigurationInput) (req *request.Request, output *UpdateRuntimeConfigurationOutput) { + op := &request.Operation{ + Name: opUpdateRuntimeConfiguration, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateRuntimeConfigurationInput{} + } + + output = &UpdateRuntimeConfigurationOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateRuntimeConfiguration API operation for Amazon GameLift. +// +// Updates the current run-time configuration for the specified fleet, which +// tells Amazon GameLift how to launch server processes on instances in the +// fleet. You can update a fleet's run-time configuration at any time after +// the fleet is created; it does not need to be in an ACTIVE status. +// +// To update run-time configuration, specify the fleet ID and provide a RuntimeConfiguration +// object with the updated collection of server process configurations. +// +// Each instance in a Amazon GameLift fleet checks regularly for an updated +// run-time configuration and changes how it launches server processes to comply +// with the latest version. Existing server processes are not affected by the +// update; they continue to run until they end, while Amazon GameLift simply +// adds new server processes to fit the current run-time configuration. As a +// result, the run-time configuration changes are applied gradually as existing +// processes shut down and new processes are launched in Amazon GameLift's normal +// process recycling activity. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation UpdateRuntimeConfiguration for usage and error information. +// +// Returned Error Codes: +// * ErrCodeUnauthorizedException "UnauthorizedException" +// The client failed authentication. Clients should not retry such requests. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeInvalidFleetStatusException "InvalidFleetStatusException" +// The requested operation would cause a conflict with the current state of +// a resource associated with the request and/or the fleet. Resolve the conflict +// before retrying. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateRuntimeConfiguration +func (c *GameLift) UpdateRuntimeConfiguration(input *UpdateRuntimeConfigurationInput) (*UpdateRuntimeConfigurationOutput, error) { + req, out := c.UpdateRuntimeConfigurationRequest(input) + return out, req.Send() +} + +// UpdateRuntimeConfigurationWithContext is the same as UpdateRuntimeConfiguration with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateRuntimeConfiguration 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 *GameLift) UpdateRuntimeConfigurationWithContext(ctx aws.Context, input *UpdateRuntimeConfigurationInput, opts ...request.Option) (*UpdateRuntimeConfigurationOutput, error) { + req, out := c.UpdateRuntimeConfigurationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opValidateMatchmakingRuleSet = "ValidateMatchmakingRuleSet" + +// ValidateMatchmakingRuleSetRequest generates a "aws/request.Request" representing the +// client's request for the ValidateMatchmakingRuleSet operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 ValidateMatchmakingRuleSet for more information on using the ValidateMatchmakingRuleSet +// 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 ValidateMatchmakingRuleSetRequest method. +// req, resp := client.ValidateMatchmakingRuleSetRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ValidateMatchmakingRuleSet +func (c *GameLift) ValidateMatchmakingRuleSetRequest(input *ValidateMatchmakingRuleSetInput) (req *request.Request, output *ValidateMatchmakingRuleSetOutput) { + op := &request.Operation{ + Name: opValidateMatchmakingRuleSet, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ValidateMatchmakingRuleSetInput{} + } + + output = &ValidateMatchmakingRuleSetOutput{} + req = c.newRequest(op, input, output) + return +} + +// ValidateMatchmakingRuleSet API operation for Amazon GameLift. +// +// Validates the syntax of a matchmaking rule or rule set. This operation checks +// that the rule set uses syntactically correct JSON and that it conforms to +// allowed property expressions. To validate syntax, provide a rule set string. +// +// Operations related to match configurations and rule sets include: +// +// * CreateMatchmakingConfiguration +// +// * DescribeMatchmakingConfigurations +// +// * UpdateMatchmakingConfiguration +// +// * DeleteMatchmakingConfiguration +// +// * CreateMatchmakingRuleSet +// +// * DescribeMatchmakingRuleSets +// +// * ValidateMatchmakingRuleSet +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation ValidateMatchmakingRuleSet for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeUnsupportedRegionException "UnsupportedRegionException" +// The requested operation is not supported in the region specified. +// +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ValidateMatchmakingRuleSet +func (c *GameLift) ValidateMatchmakingRuleSet(input *ValidateMatchmakingRuleSetInput) (*ValidateMatchmakingRuleSetOutput, error) { + req, out := c.ValidateMatchmakingRuleSetRequest(input) + return out, req.Send() +} + +// ValidateMatchmakingRuleSetWithContext is the same as ValidateMatchmakingRuleSet with the addition of +// the ability to pass a context and additional request options. +// +// See ValidateMatchmakingRuleSet 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 *GameLift) ValidateMatchmakingRuleSetWithContext(ctx aws.Context, input *ValidateMatchmakingRuleSetInput, opts ...request.Option) (*ValidateMatchmakingRuleSetOutput, error) { + req, out := c.ValidateMatchmakingRuleSetRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/AcceptMatchInput +type AcceptMatchInput struct { + _ struct{} `type:"structure"` + + // Player response to the proposed match. + // + // AcceptanceType is a required field + AcceptanceType *string `type:"string" required:"true" enum:"AcceptanceType"` + + // Unique identifier for a player delivering the response. This parameter can + // include one or multiple player IDs. + // + // PlayerIds is a required field + PlayerIds []*string `type:"list" required:"true"` + + // Unique identifier for a matchmaking ticket. The ticket must be in status + // REQUIRES_ACCEPTANCE; otherwise this request will fail. + // + // TicketId is a required field + TicketId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s AcceptMatchInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AcceptMatchInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AcceptMatchInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AcceptMatchInput"} + if s.AcceptanceType == nil { + invalidParams.Add(request.NewErrParamRequired("AcceptanceType")) + } + if s.PlayerIds == nil { + invalidParams.Add(request.NewErrParamRequired("PlayerIds")) + } + if s.TicketId == nil { + invalidParams.Add(request.NewErrParamRequired("TicketId")) + } + if s.TicketId != nil && len(*s.TicketId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TicketId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAcceptanceType sets the AcceptanceType field's value. +func (s *AcceptMatchInput) SetAcceptanceType(v string) *AcceptMatchInput { + s.AcceptanceType = &v + return s +} + +// SetPlayerIds sets the PlayerIds field's value. +func (s *AcceptMatchInput) SetPlayerIds(v []*string) *AcceptMatchInput { + s.PlayerIds = v + return s +} + +// SetTicketId sets the TicketId field's value. +func (s *AcceptMatchInput) SetTicketId(v string) *AcceptMatchInput { + s.TicketId = &v + return s +} + +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/AcceptMatchOutput +type AcceptMatchOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s AcceptMatchOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AcceptMatchOutput) GoString() string { + return s.String() +} + +// Properties describing a fleet alias. +// +// Alias-related operations include: +// +// * CreateAlias +// +// * ListAliases +// +// * DescribeAlias +// +// * UpdateAlias +// +// * DeleteAlias +// +// * ResolveAlias +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/Alias +type Alias struct { + _ struct{} `type:"structure"` + + // Unique identifier for an alias; alias ARNs are unique across all regions. + AliasArn *string `min:"1" type:"string"` + + // Unique identifier for an alias; alias IDs are unique within a region. + AliasId *string `type:"string"` + + // Time stamp indicating when this data object was created. Format is a number + // expressed in Unix time as milliseconds (for example "1469498468.057"). + CreationTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // Human-readable description of an alias. + Description *string `type:"string"` + + // Time stamp indicating when this data object was last modified. Format is + // a number expressed in Unix time as milliseconds (for example "1469498468.057"). + LastUpdatedTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // Descriptive label that is associated with an alias. Alias names do not need + // to be unique. + Name *string `min:"1" type:"string"` + + // Alias configuration for the alias, including routing type and settings. + RoutingStrategy *RoutingStrategy `type:"structure"` +} + +// String returns the string representation +func (s Alias) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Alias) GoString() string { + return s.String() +} + +// SetAliasArn sets the AliasArn field's value. +func (s *Alias) SetAliasArn(v string) *Alias { + s.AliasArn = &v + return s +} + +// SetAliasId sets the AliasId field's value. +func (s *Alias) SetAliasId(v string) *Alias { + s.AliasId = &v + return s +} + +// SetCreationTime sets the CreationTime field's value. +func (s *Alias) SetCreationTime(v time.Time) *Alias { + s.CreationTime = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *Alias) SetDescription(v string) *Alias { + s.Description = &v + return s +} + +// SetLastUpdatedTime sets the LastUpdatedTime field's value. +func (s *Alias) SetLastUpdatedTime(v time.Time) *Alias { + s.LastUpdatedTime = &v + return s +} + +// SetName sets the Name field's value. +func (s *Alias) SetName(v string) *Alias { + s.Name = &v + return s +} + +// SetRoutingStrategy sets the RoutingStrategy field's value. +func (s *Alias) SetRoutingStrategy(v *RoutingStrategy) *Alias { + s.RoutingStrategy = v + return s +} + +// Values for use in Player attribute type:value pairs. This object lets you +// specify an attribute value using any of the valid data types: string, number, +// string array or data map. Each AttributeValue object can use only one of +// the available properties. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/AttributeValue +type AttributeValue struct { + _ struct{} `type:"structure"` + + // For number values, expressed as double. + N *float64 `type:"double"` + + // For single string values. Maximum string length is 100 characters. + S *string `min:"1" type:"string"` + + // For a map of up to 10 type:value pairs. Maximum length for each string value + // is 100 characters. + SDM map[string]*float64 `type:"map"` + + // For a list of up to 10 strings. Maximum length for each string is 100 characters. + // Duplicate values are not recognized; all occurrences of the repeated value + // after the first of a repeated value are ignored. + SL []*string `type:"list"` +} + +// String returns the string representation +func (s AttributeValue) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AttributeValue) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AttributeValue) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "AttributeValue"} + if s.S != nil && len(*s.S) < 1 { + invalidParams.Add(request.NewErrParamMinLen("S", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetN sets the N field's value. +func (s *AttributeValue) SetN(v float64) *AttributeValue { + s.N = &v + return s +} + +// SetS sets the S field's value. +func (s *AttributeValue) SetS(v string) *AttributeValue { + s.S = &v + return s +} + +// SetSDM sets the SDM field's value. +func (s *AttributeValue) SetSDM(v map[string]*float64) *AttributeValue { + s.SDM = v + return s +} + +// SetSL sets the SL field's value. +func (s *AttributeValue) SetSL(v []*string) *AttributeValue { + s.SL = v + return s +} + +// Temporary access credentials used for uploading game build files to Amazon +// GameLift. They are valid for a limited time. If they expire before you upload +// your game build, get a new set by calling RequestUploadCredentials. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/AwsCredentials +type AwsCredentials struct { + _ struct{} `type:"structure"` + + // Temporary key allowing access to the Amazon GameLift S3 account. + AccessKeyId *string `min:"1" type:"string"` + + // Temporary secret key allowing access to the Amazon GameLift S3 account. + SecretAccessKey *string `min:"1" type:"string"` + + // Token used to associate a specific build ID with the files uploaded using + // these credentials. + SessionToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s AwsCredentials) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AwsCredentials) GoString() string { + return s.String() +} + +// SetAccessKeyId sets the AccessKeyId field's value. +func (s *AwsCredentials) SetAccessKeyId(v string) *AwsCredentials { + s.AccessKeyId = &v + return s +} + +// SetSecretAccessKey sets the SecretAccessKey field's value. +func (s *AwsCredentials) SetSecretAccessKey(v string) *AwsCredentials { + s.SecretAccessKey = &v + return s +} + +// SetSessionToken sets the SessionToken field's value. +func (s *AwsCredentials) SetSessionToken(v string) *AwsCredentials { + s.SessionToken = &v + return s +} + +// Properties describing a game build. +// +// Build-related operations include: +// +// * CreateBuild +// +// * ListBuilds +// +// * DescribeBuild +// +// * UpdateBuild +// +// * DeleteBuild +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/Build +type Build struct { + _ struct{} `type:"structure"` + + // Unique identifier for a build. + BuildId *string `type:"string"` + + // Time stamp indicating when this data object was created. Format is a number + // expressed in Unix time as milliseconds (for example "1469498468.057"). + CreationTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // Descriptive label that is associated with a build. Build names do not need + // to be unique. It can be set using CreateBuild or UpdateBuild. + Name *string `type:"string"` + + // Operating system that the game server binaries are built to run on. This + // value determines the type of fleet resources that you can use for this build. + OperatingSystem *string `type:"string" enum:"OperatingSystem"` + + // File size of the uploaded game build, expressed in bytes. When the build + // status is INITIALIZED, this value is 0. + SizeOnDisk *int64 `min:"1" type:"long"` + + // Current status of the build. + // + // Possible build statuses include the following: + // + // * INITIALIZED -- A new build has been defined, but no files have been + // uploaded. You cannot create fleets for builds that are in this status. + // When a build is successfully created, the build status is set to this + // value. + // + // * READY -- The game build has been successfully uploaded. You can now + // create new fleets for this build. + // + // * FAILED -- The game build upload failed. You cannot create new fleets + // for this build. + Status *string `type:"string" enum:"BuildStatus"` + + // Version that is associated with this build. Version strings do not need to + // be unique. This value can be set using CreateBuild or UpdateBuild. + Version *string `type:"string"` +} + +// String returns the string representation +func (s Build) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Build) GoString() string { + return s.String() +} + +// SetBuildId sets the BuildId field's value. +func (s *Build) SetBuildId(v string) *Build { + s.BuildId = &v + return s +} + +// SetCreationTime sets the CreationTime field's value. +func (s *Build) SetCreationTime(v time.Time) *Build { + s.CreationTime = &v + return s +} + +// SetName sets the Name field's value. +func (s *Build) SetName(v string) *Build { + s.Name = &v + return s +} + +// SetOperatingSystem sets the OperatingSystem field's value. +func (s *Build) SetOperatingSystem(v string) *Build { + s.OperatingSystem = &v + return s +} + +// SetSizeOnDisk sets the SizeOnDisk field's value. +func (s *Build) SetSizeOnDisk(v int64) *Build { + s.SizeOnDisk = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *Build) SetStatus(v string) *Build { + s.Status = &v + return s +} + +// SetVersion sets the Version field's value. +func (s *Build) SetVersion(v string) *Build { + s.Version = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateAliasInput +type CreateAliasInput struct { + _ struct{} `type:"structure"` + + // Human-readable description of an alias. + Description *string `min:"1" type:"string"` + + // Descriptive label that is associated with an alias. Alias names do not need + // to be unique. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Object that specifies the fleet and routing type to use for the alias. + // + // RoutingStrategy is a required field + RoutingStrategy *RoutingStrategy `type:"structure" required:"true"` +} + +// String returns the string representation +func (s CreateAliasInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateAliasInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateAliasInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateAliasInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + if s.RoutingStrategy == nil { + invalidParams.Add(request.NewErrParamRequired("RoutingStrategy")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDescription sets the Description field's value. +func (s *CreateAliasInput) SetDescription(v string) *CreateAliasInput { + s.Description = &v + return s +} + +// SetName sets the Name field's value. +func (s *CreateAliasInput) SetName(v string) *CreateAliasInput { + s.Name = &v + return s +} + +// SetRoutingStrategy sets the RoutingStrategy field's value. +func (s *CreateAliasInput) SetRoutingStrategy(v *RoutingStrategy) *CreateAliasInput { + s.RoutingStrategy = v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateAliasOutput +type CreateAliasOutput struct { + _ struct{} `type:"structure"` + + // Object that describes the newly created alias record. + Alias *Alias `type:"structure"` +} + +// String returns the string representation +func (s CreateAliasOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateAliasOutput) GoString() string { + return s.String() +} + +// SetAlias sets the Alias field's value. +func (s *CreateAliasOutput) SetAlias(v *Alias) *CreateAliasOutput { + s.Alias = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateBuildInput +type CreateBuildInput struct { + _ struct{} `type:"structure"` + + // Descriptive label that is associated with a build. Build names do not need + // to be unique. You can use UpdateBuild to change this value later. + Name *string `min:"1" type:"string"` + + // Operating system that the game server binaries are built to run on. This + // value determines the type of fleet resources that you can use for this build. + // If your game build contains multiple executables, they all must run on the + // same operating system. + OperatingSystem *string `type:"string" enum:"OperatingSystem"` + + // Amazon S3 location of the game build files to be uploaded. The S3 bucket + // must be owned by the same AWS account that you're using to manage Amazon + // GameLift. It also must in the same region that you want to create a new build + // in. Before calling CreateBuild with this location, you must allow Amazon + // GameLift to access your Amazon S3 bucket (see Create a Build with Files in + // Amazon S3 (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-cli-uploading.html#gamelift-build-cli-uploading-create-build)). + StorageLocation *S3Location `type:"structure"` + + // Version that is associated with this build. Version strings do not need to + // be unique. You can use UpdateBuild to change this value later. + Version *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s CreateBuildInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateBuildInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateBuildInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateBuildInput"} + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + if s.Version != nil && len(*s.Version) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Version", 1)) + } + if s.StorageLocation != nil { + if err := s.StorageLocation.Validate(); err != nil { + invalidParams.AddNested("StorageLocation", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetName sets the Name field's value. +func (s *CreateBuildInput) SetName(v string) *CreateBuildInput { + s.Name = &v + return s +} + +// SetOperatingSystem sets the OperatingSystem field's value. +func (s *CreateBuildInput) SetOperatingSystem(v string) *CreateBuildInput { + s.OperatingSystem = &v + return s +} + +// SetStorageLocation sets the StorageLocation field's value. +func (s *CreateBuildInput) SetStorageLocation(v *S3Location) *CreateBuildInput { + s.StorageLocation = v + return s +} + +// SetVersion sets the Version field's value. +func (s *CreateBuildInput) SetVersion(v string) *CreateBuildInput { + s.Version = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateBuildOutput +type CreateBuildOutput struct { + _ struct{} `type:"structure"` + + // The newly created build record, including a unique build ID and status. + Build *Build `type:"structure"` + + // Amazon S3 location specified in the request. + StorageLocation *S3Location `type:"structure"` + + // This element is not currently in use. + UploadCredentials *AwsCredentials `type:"structure"` +} + +// String returns the string representation +func (s CreateBuildOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateBuildOutput) GoString() string { + return s.String() +} + +// SetBuild sets the Build field's value. +func (s *CreateBuildOutput) SetBuild(v *Build) *CreateBuildOutput { + s.Build = v + return s +} + +// SetStorageLocation sets the StorageLocation field's value. +func (s *CreateBuildOutput) SetStorageLocation(v *S3Location) *CreateBuildOutput { + s.StorageLocation = v + return s +} + +// SetUploadCredentials sets the UploadCredentials field's value. +func (s *CreateBuildOutput) SetUploadCredentials(v *AwsCredentials) *CreateBuildOutput { + s.UploadCredentials = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateFleetInput +type CreateFleetInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a build to be deployed on the new fleet. The build + // must have been successfully uploaded to Amazon GameLift and be in a READY + // status. This fleet setting cannot be changed once the fleet is created. + // + // BuildId is a required field + BuildId *string `type:"string" required:"true"` + + // Human-readable description of a fleet. + Description *string `min:"1" type:"string"` + + // Range of IP addresses and port settings that permit inbound traffic to access + // server processes running on the fleet. If no inbound permissions are set, + // including both IP address range and port range, the server processes in the + // fleet cannot accept connections. You can specify one or more sets of permissions + // for a fleet. + EC2InboundPermissions []*IpPermission `type:"list"` + + // Name of an EC2 instance type that is supported in Amazon GameLift. A fleet + // instance type determines the computing resources of each instance in the + // fleet, including CPU, memory, storage, and networking capacity. Amazon GameLift + // supports the following EC2 instance types. See Amazon EC2 Instance Types + // (http://aws.amazon.com/ec2/instance-types/) for detailed descriptions. + // + // EC2InstanceType is a required field + EC2InstanceType *string `type:"string" required:"true" enum:"EC2InstanceType"` + + // This parameter is no longer used. Instead, to specify where Amazon GameLift + // should store log files once a server process shuts down, use the Amazon GameLift + // server API ProcessReady() and specify one or more directory paths in logParameters. + // See more information in the Server API Reference (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api-ref.html#gamelift-sdk-server-api-ref-dataypes-process). + LogPaths []*string `type:"list"` + + // Names of metric groups to add this fleet to. Use an existing metric group + // name to add this fleet to the group. Or use a new name to create a new metric + // group. A fleet can only be included in one metric group at a time. + MetricGroups []*string `type:"list"` + + // Descriptive label that is associated with a fleet. Fleet names do not need + // to be unique. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Game session protection policy to apply to all instances in this fleet. If + // this parameter is not set, instances in this fleet default to no protection. + // You can change a fleet's protection policy using UpdateFleetAttributes, but + // this change will only affect sessions created after the policy change. You + // can also set protection for individual instances using UpdateGameSession. + // + // * NoProtection -- The game session can be terminated during a scale-down + // event. + // + // * FullProtection -- If the game session is in an ACTIVE status, it cannot + // be terminated during a scale-down event. + NewGameSessionProtectionPolicy *string `type:"string" enum:"ProtectionPolicy"` + + // Unique identifier for the AWS account with the VPC that you want to peer + // your Amazon GameLift fleet with. You can find your Account ID in the AWS + // Management Console under account settings. + PeerVpcAwsAccountId *string `min:"1" type:"string"` + + // Unique identifier for a VPC with resources to be accessed by your Amazon + // GameLift fleet. The VPC must be in the same region where your fleet is deployed. + // To get VPC information, including IDs, use the Virtual Private Cloud service + // tools, including the VPC Dashboard in the AWS Management Console. + PeerVpcId *string `min:"1" type:"string"` + + // Policy that limits the number of game sessions an individual player can create + // over a span of time for this fleet. + ResourceCreationLimitPolicy *ResourceCreationLimitPolicy `type:"structure"` + + // Instructions for launching server processes on each instance in the fleet. + // The run-time configuration for a fleet has a collection of server process + // configurations, one for each type of server process to run on an instance. + // A server process configuration specifies the location of the server executable, + // launch parameters, and the number of concurrent processes with that configuration + // to maintain on each instance. A CreateFleet request must include a run-time + // configuration with at least one server process configuration; otherwise the + // request fails with an invalid request exception. (This parameter replaces + // the parameters ServerLaunchPath and ServerLaunchParameters; requests that + // contain values for these parameters instead of a run-time configuration will + // continue to work.) + RuntimeConfiguration *RuntimeConfiguration `type:"structure"` + + // This parameter is no longer used. Instead, specify server launch parameters + // in the RuntimeConfiguration parameter. (Requests that specify a server launch + // path and launch parameters instead of a run-time configuration will continue + // to work.) + ServerLaunchParameters *string `min:"1" type:"string"` + + // This parameter is no longer used. Instead, specify a server launch path using + // the RuntimeConfiguration parameter. (Requests that specify a server launch + // path and launch parameters instead of a run-time configuration will continue + // to work.) + ServerLaunchPath *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s CreateFleetInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateFleetInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateFleetInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateFleetInput"} + if s.BuildId == nil { + invalidParams.Add(request.NewErrParamRequired("BuildId")) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.EC2InstanceType == nil { + invalidParams.Add(request.NewErrParamRequired("EC2InstanceType")) + } + 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.PeerVpcAwsAccountId != nil && len(*s.PeerVpcAwsAccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PeerVpcAwsAccountId", 1)) + } + if s.PeerVpcId != nil && len(*s.PeerVpcId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PeerVpcId", 1)) + } + if s.ServerLaunchParameters != nil && len(*s.ServerLaunchParameters) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ServerLaunchParameters", 1)) + } + if s.ServerLaunchPath != nil && len(*s.ServerLaunchPath) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ServerLaunchPath", 1)) + } + if s.EC2InboundPermissions != nil { + for i, v := range s.EC2InboundPermissions { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "EC2InboundPermissions", i), err.(request.ErrInvalidParams)) + } + } + } + if s.RuntimeConfiguration != nil { + if err := s.RuntimeConfiguration.Validate(); err != nil { + invalidParams.AddNested("RuntimeConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBuildId sets the BuildId field's value. +func (s *CreateFleetInput) SetBuildId(v string) *CreateFleetInput { + s.BuildId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CreateFleetInput) SetDescription(v string) *CreateFleetInput { + s.Description = &v + return s +} + +// SetEC2InboundPermissions sets the EC2InboundPermissions field's value. +func (s *CreateFleetInput) SetEC2InboundPermissions(v []*IpPermission) *CreateFleetInput { + s.EC2InboundPermissions = v + return s +} + +// SetEC2InstanceType sets the EC2InstanceType field's value. +func (s *CreateFleetInput) SetEC2InstanceType(v string) *CreateFleetInput { + s.EC2InstanceType = &v + return s +} + +// SetLogPaths sets the LogPaths field's value. +func (s *CreateFleetInput) SetLogPaths(v []*string) *CreateFleetInput { + s.LogPaths = v + return s +} + +// SetMetricGroups sets the MetricGroups field's value. +func (s *CreateFleetInput) SetMetricGroups(v []*string) *CreateFleetInput { + s.MetricGroups = v + return s +} + +// SetName sets the Name field's value. +func (s *CreateFleetInput) SetName(v string) *CreateFleetInput { + s.Name = &v + return s +} + +// SetNewGameSessionProtectionPolicy sets the NewGameSessionProtectionPolicy field's value. +func (s *CreateFleetInput) SetNewGameSessionProtectionPolicy(v string) *CreateFleetInput { + s.NewGameSessionProtectionPolicy = &v + return s +} + +// SetPeerVpcAwsAccountId sets the PeerVpcAwsAccountId field's value. +func (s *CreateFleetInput) SetPeerVpcAwsAccountId(v string) *CreateFleetInput { + s.PeerVpcAwsAccountId = &v + return s +} + +// SetPeerVpcId sets the PeerVpcId field's value. +func (s *CreateFleetInput) SetPeerVpcId(v string) *CreateFleetInput { + s.PeerVpcId = &v + return s +} + +// SetResourceCreationLimitPolicy sets the ResourceCreationLimitPolicy field's value. +func (s *CreateFleetInput) SetResourceCreationLimitPolicy(v *ResourceCreationLimitPolicy) *CreateFleetInput { + s.ResourceCreationLimitPolicy = v + return s +} + +// SetRuntimeConfiguration sets the RuntimeConfiguration field's value. +func (s *CreateFleetInput) SetRuntimeConfiguration(v *RuntimeConfiguration) *CreateFleetInput { + s.RuntimeConfiguration = v + return s +} + +// SetServerLaunchParameters sets the ServerLaunchParameters field's value. +func (s *CreateFleetInput) SetServerLaunchParameters(v string) *CreateFleetInput { + s.ServerLaunchParameters = &v + return s +} + +// SetServerLaunchPath sets the ServerLaunchPath field's value. +func (s *CreateFleetInput) SetServerLaunchPath(v string) *CreateFleetInput { + s.ServerLaunchPath = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateFleetOutput +type CreateFleetOutput struct { + _ struct{} `type:"structure"` + + // Properties for the newly created fleet. + FleetAttributes *FleetAttributes `type:"structure"` +} + +// String returns the string representation +func (s CreateFleetOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateFleetOutput) GoString() string { + return s.String() +} + +// SetFleetAttributes sets the FleetAttributes field's value. +func (s *CreateFleetOutput) SetFleetAttributes(v *FleetAttributes) *CreateFleetOutput { + s.FleetAttributes = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateGameSessionInput +type CreateGameSessionInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for an alias associated with the fleet to create a game + // session in. Each request must reference either a fleet ID or alias ID, but + // not both. + AliasId *string `type:"string"` + + // Unique identifier for a player or entity creating the game session. This + // ID is used to enforce a resource protection policy (if one exists) that limits + // the number of concurrent active game sessions one player can have. + CreatorId *string `min:"1" type:"string"` + + // Unique identifier for a fleet to create a game session in. Each request must + // reference either a fleet ID or alias ID, but not both. + FleetId *string `type:"string"` + + // Set of developer-defined properties for a game session, formatted as a set + // of type:value pairs. These properties are included in the GameSession object, + // which is passed to the game server with a request to start a new game session + // (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + GameProperties []*GameProperty `type:"list"` + + // Set of developer-defined game session properties, formatted as a single string + // value. This data is included in the GameSession object, which is passed to + // the game server with a request to start a new game session (see Start a Game + // Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + GameSessionData *string `min:"1" type:"string"` + + // This parameter is no longer preferred. Please use IdempotencyToken instead. + // Custom string that uniquely identifies a request for a new game session. + // Maximum token length is 48 characters. If provided, this string is included + // in the new game session's ID. (A game session ARN has the following format: + // arn:aws:gamelift:::gamesession//.) + GameSessionId *string `min:"1" type:"string"` + + // Custom string that uniquely identifies a request for a new game session. + // Maximum token length is 48 characters. If provided, this string is included + // in the new game session's ID. (A game session ARN has the following format: + // arn:aws:gamelift:::gamesession//.) Idempotency tokens remain in use for 30 days after a game session + // has ended; game session objects are retained for this time period and then + // deleted. + IdempotencyToken *string `min:"1" type:"string"` + + // Maximum number of players that can be connected simultaneously to the game + // session. + // + // MaximumPlayerSessionCount is a required field + MaximumPlayerSessionCount *int64 `type:"integer" required:"true"` + + // Descriptive label that is associated with a game session. Session names do + // not need to be unique. + Name *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s CreateGameSessionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateGameSessionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateGameSessionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateGameSessionInput"} + if s.CreatorId != nil && len(*s.CreatorId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("CreatorId", 1)) + } + if s.GameSessionData != nil && len(*s.GameSessionData) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GameSessionData", 1)) + } + if s.GameSessionId != nil && len(*s.GameSessionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GameSessionId", 1)) + } + if s.IdempotencyToken != nil && len(*s.IdempotencyToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("IdempotencyToken", 1)) + } + if s.MaximumPlayerSessionCount == nil { + invalidParams.Add(request.NewErrParamRequired("MaximumPlayerSessionCount")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + if s.GameProperties != nil { + for i, v := range s.GameProperties { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "GameProperties", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAliasId sets the AliasId field's value. +func (s *CreateGameSessionInput) SetAliasId(v string) *CreateGameSessionInput { + s.AliasId = &v + return s +} + +// SetCreatorId sets the CreatorId field's value. +func (s *CreateGameSessionInput) SetCreatorId(v string) *CreateGameSessionInput { + s.CreatorId = &v + return s +} + +// SetFleetId sets the FleetId field's value. +func (s *CreateGameSessionInput) SetFleetId(v string) *CreateGameSessionInput { + s.FleetId = &v + return s +} + +// SetGameProperties sets the GameProperties field's value. +func (s *CreateGameSessionInput) SetGameProperties(v []*GameProperty) *CreateGameSessionInput { + s.GameProperties = v + return s +} + +// SetGameSessionData sets the GameSessionData field's value. +func (s *CreateGameSessionInput) SetGameSessionData(v string) *CreateGameSessionInput { + s.GameSessionData = &v + return s +} + +// SetGameSessionId sets the GameSessionId field's value. +func (s *CreateGameSessionInput) SetGameSessionId(v string) *CreateGameSessionInput { + s.GameSessionId = &v + return s +} + +// SetIdempotencyToken sets the IdempotencyToken field's value. +func (s *CreateGameSessionInput) SetIdempotencyToken(v string) *CreateGameSessionInput { + s.IdempotencyToken = &v + return s +} + +// SetMaximumPlayerSessionCount sets the MaximumPlayerSessionCount field's value. +func (s *CreateGameSessionInput) SetMaximumPlayerSessionCount(v int64) *CreateGameSessionInput { + s.MaximumPlayerSessionCount = &v + return s +} + +// SetName sets the Name field's value. +func (s *CreateGameSessionInput) SetName(v string) *CreateGameSessionInput { + s.Name = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateGameSessionOutput +type CreateGameSessionOutput struct { + _ struct{} `type:"structure"` + + // Object that describes the newly created game session record. + GameSession *GameSession `type:"structure"` +} + +// String returns the string representation +func (s CreateGameSessionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateGameSessionOutput) GoString() string { + return s.String() +} + +// SetGameSession sets the GameSession field's value. +func (s *CreateGameSessionOutput) SetGameSession(v *GameSession) *CreateGameSessionOutput { + s.GameSession = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateGameSessionQueueInput +type CreateGameSessionQueueInput struct { + _ struct{} `type:"structure"` + + // List of fleets that can be used to fulfill game session placement requests + // in the queue. Fleets are identified by either a fleet ARN or a fleet alias + // ARN. Destinations are listed in default preference order. + Destinations []*GameSessionQueueDestination `type:"list"` + + // Descriptive label that is associated with game session queue. Queue names + // must be unique within each region. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Collection of latency policies to apply when processing game sessions placement + // requests with player latency information. Multiple policies are evaluated + // in order of the maximum latency value, starting with the lowest latency values. + // With just one policy, it is enforced at the start of the game session placement + // for the duration period. With multiple policies, each policy is enforced + // consecutively for its duration period. For example, a queue might enforce + // a 60-second policy followed by a 120-second policy, and then no policy for + // the remainder of the placement. A player latency policy must set a value + // for MaximumIndividualPlayerLatencyMilliseconds; if none is set, this API + // requests will fail. + PlayerLatencyPolicies []*PlayerLatencyPolicy `type:"list"` + + // Maximum time, in seconds, that a new game session placement request remains + // in the queue. When a request exceeds this time, the game session placement + // changes to a TIMED_OUT status. + TimeoutInSeconds *int64 `type:"integer"` +} + +// String returns the string representation +func (s CreateGameSessionQueueInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateGameSessionQueueInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateGameSessionQueueInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateGameSessionQueueInput"} + 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.Destinations != nil { + for i, v := range s.Destinations { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Destinations", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDestinations sets the Destinations field's value. +func (s *CreateGameSessionQueueInput) SetDestinations(v []*GameSessionQueueDestination) *CreateGameSessionQueueInput { + s.Destinations = v + return s +} + +// SetName sets the Name field's value. +func (s *CreateGameSessionQueueInput) SetName(v string) *CreateGameSessionQueueInput { + s.Name = &v + return s +} + +// SetPlayerLatencyPolicies sets the PlayerLatencyPolicies field's value. +func (s *CreateGameSessionQueueInput) SetPlayerLatencyPolicies(v []*PlayerLatencyPolicy) *CreateGameSessionQueueInput { + s.PlayerLatencyPolicies = v + return s +} + +// SetTimeoutInSeconds sets the TimeoutInSeconds field's value. +func (s *CreateGameSessionQueueInput) SetTimeoutInSeconds(v int64) *CreateGameSessionQueueInput { + s.TimeoutInSeconds = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateGameSessionQueueOutput +type CreateGameSessionQueueOutput struct { + _ struct{} `type:"structure"` + + // Object that describes the newly created game session queue. + GameSessionQueue *GameSessionQueue `type:"structure"` +} + +// String returns the string representation +func (s CreateGameSessionQueueOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateGameSessionQueueOutput) GoString() string { + return s.String() +} + +// SetGameSessionQueue sets the GameSessionQueue field's value. +func (s *CreateGameSessionQueueOutput) SetGameSessionQueue(v *GameSessionQueue) *CreateGameSessionQueueOutput { + s.GameSessionQueue = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateMatchmakingConfigurationInput +type CreateMatchmakingConfigurationInput struct { + _ struct{} `type:"structure"` + + // Flag that determines whether or not a match that was created with this configuration + // must be accepted by the matched players. To require acceptance, set to TRUE. + // + // AcceptanceRequired is a required field + AcceptanceRequired *bool `type:"boolean" required:"true"` + + // Length of time (in seconds) to wait for players to accept a proposed match. + // If any player rejects the match or fails to accept before the timeout, the + // ticket continues to look for an acceptable match. + AcceptanceTimeoutSeconds *int64 `min:"1" type:"integer"` + + // Number of player slots in a match to keep open for future players. For example, + // if the configuration's rule set specifies a match for a single 12-person + // team, and the additional player count is set to 2, only 10 players are selected + // for the match. + AdditionalPlayerCount *int64 `type:"integer"` + + // Information to attached to all events related to the matchmaking configuration. + CustomEventData *string `type:"string"` + + // Meaningful description of the matchmaking configuration. + Description *string `min:"1" type:"string"` + + // Set of developer-defined properties for a game session, formatted as a set + // of type:value pairs. These properties are included in the GameSession object, + // which is passed to the game server with a request to start a new game session + // (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // This information is added to the new GameSession object that is created for + // a successful match. + GameProperties []*GameProperty `type:"list"` + + // Set of developer-defined game session properties, formatted as a single string + // value. This data is included in the GameSession object, which is passed to + // the game server with a request to start a new game session (see Start a Game + // Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // This information is added to the new GameSession object that is created for + // a successful match. + GameSessionData *string `min:"1" type:"string"` + + // Amazon Resource Name (ARN (http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)) + // that is assigned to a game session queue and uniquely identifies it. Format + // is arn:aws:gamelift:::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912. + // These queues are used when placing game sessions for matches that are created + // with this matchmaking configuration. Queues can be located in any region. + // + // GameSessionQueueArns is a required field + GameSessionQueueArns []*string `type:"list" required:"true"` + + // Unique identifier for a matchmaking configuration. This name is used to identify + // the configuration associated with a matchmaking request or ticket. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // SNS topic ARN that is set up to receive matchmaking notifications. + NotificationTarget *string `type:"string"` + + // Maximum duration, in seconds, that a matchmaking ticket can remain in process + // before timing out. Requests that time out can be resubmitted as needed. + // + // RequestTimeoutSeconds is a required field + RequestTimeoutSeconds *int64 `min:"1" type:"integer" required:"true"` + + // Unique identifier for a matchmaking rule set to use with this configuration. + // A matchmaking configuration can only use rule sets that are defined in the + // same region. + // + // RuleSetName is a required field + RuleSetName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateMatchmakingConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateMatchmakingConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateMatchmakingConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateMatchmakingConfigurationInput"} + if s.AcceptanceRequired == nil { + invalidParams.Add(request.NewErrParamRequired("AcceptanceRequired")) + } + if s.AcceptanceTimeoutSeconds != nil && *s.AcceptanceTimeoutSeconds < 1 { + invalidParams.Add(request.NewErrParamMinValue("AcceptanceTimeoutSeconds", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.GameSessionData != nil && len(*s.GameSessionData) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GameSessionData", 1)) + } + if s.GameSessionQueueArns == nil { + invalidParams.Add(request.NewErrParamRequired("GameSessionQueueArns")) + } + 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.RequestTimeoutSeconds == nil { + invalidParams.Add(request.NewErrParamRequired("RequestTimeoutSeconds")) + } + if s.RequestTimeoutSeconds != nil && *s.RequestTimeoutSeconds < 1 { + invalidParams.Add(request.NewErrParamMinValue("RequestTimeoutSeconds", 1)) + } + if s.RuleSetName == nil { + invalidParams.Add(request.NewErrParamRequired("RuleSetName")) + } + if s.RuleSetName != nil && len(*s.RuleSetName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RuleSetName", 1)) + } + if s.GameProperties != nil { + for i, v := range s.GameProperties { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "GameProperties", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAcceptanceRequired sets the AcceptanceRequired field's value. +func (s *CreateMatchmakingConfigurationInput) SetAcceptanceRequired(v bool) *CreateMatchmakingConfigurationInput { + s.AcceptanceRequired = &v + return s +} + +// SetAcceptanceTimeoutSeconds sets the AcceptanceTimeoutSeconds field's value. +func (s *CreateMatchmakingConfigurationInput) SetAcceptanceTimeoutSeconds(v int64) *CreateMatchmakingConfigurationInput { + s.AcceptanceTimeoutSeconds = &v + return s +} + +// SetAdditionalPlayerCount sets the AdditionalPlayerCount field's value. +func (s *CreateMatchmakingConfigurationInput) SetAdditionalPlayerCount(v int64) *CreateMatchmakingConfigurationInput { + s.AdditionalPlayerCount = &v + return s +} + +// SetCustomEventData sets the CustomEventData field's value. +func (s *CreateMatchmakingConfigurationInput) SetCustomEventData(v string) *CreateMatchmakingConfigurationInput { + s.CustomEventData = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CreateMatchmakingConfigurationInput) SetDescription(v string) *CreateMatchmakingConfigurationInput { + s.Description = &v + return s +} + +// SetGameProperties sets the GameProperties field's value. +func (s *CreateMatchmakingConfigurationInput) SetGameProperties(v []*GameProperty) *CreateMatchmakingConfigurationInput { + s.GameProperties = v + return s +} + +// SetGameSessionData sets the GameSessionData field's value. +func (s *CreateMatchmakingConfigurationInput) SetGameSessionData(v string) *CreateMatchmakingConfigurationInput { + s.GameSessionData = &v + return s +} + +// SetGameSessionQueueArns sets the GameSessionQueueArns field's value. +func (s *CreateMatchmakingConfigurationInput) SetGameSessionQueueArns(v []*string) *CreateMatchmakingConfigurationInput { + s.GameSessionQueueArns = v + return s +} + +// SetName sets the Name field's value. +func (s *CreateMatchmakingConfigurationInput) SetName(v string) *CreateMatchmakingConfigurationInput { + s.Name = &v + return s +} + +// SetNotificationTarget sets the NotificationTarget field's value. +func (s *CreateMatchmakingConfigurationInput) SetNotificationTarget(v string) *CreateMatchmakingConfigurationInput { + s.NotificationTarget = &v + return s +} + +// SetRequestTimeoutSeconds sets the RequestTimeoutSeconds field's value. +func (s *CreateMatchmakingConfigurationInput) SetRequestTimeoutSeconds(v int64) *CreateMatchmakingConfigurationInput { + s.RequestTimeoutSeconds = &v + return s +} + +// SetRuleSetName sets the RuleSetName field's value. +func (s *CreateMatchmakingConfigurationInput) SetRuleSetName(v string) *CreateMatchmakingConfigurationInput { + s.RuleSetName = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateMatchmakingConfigurationOutput +type CreateMatchmakingConfigurationOutput struct { + _ struct{} `type:"structure"` + + // Object that describes the newly created matchmaking configuration. + Configuration *MatchmakingConfiguration `type:"structure"` +} + +// String returns the string representation +func (s CreateMatchmakingConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateMatchmakingConfigurationOutput) GoString() string { + return s.String() +} + +// SetConfiguration sets the Configuration field's value. +func (s *CreateMatchmakingConfigurationOutput) SetConfiguration(v *MatchmakingConfiguration) *CreateMatchmakingConfigurationOutput { + s.Configuration = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateMatchmakingRuleSetInput +type CreateMatchmakingRuleSetInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a matchmaking rule set. This name is used to identify + // the rule set associated with a matchmaking configuration. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Collection of matchmaking rules, formatted as a JSON string. (Note that comments + // are not allowed in JSON, but most elements support a description field.) + // + // RuleSetBody is a required field + RuleSetBody *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateMatchmakingRuleSetInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateMatchmakingRuleSetInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateMatchmakingRuleSetInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateMatchmakingRuleSetInput"} + 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.RuleSetBody == nil { + invalidParams.Add(request.NewErrParamRequired("RuleSetBody")) + } + if s.RuleSetBody != nil && len(*s.RuleSetBody) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RuleSetBody", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetName sets the Name field's value. +func (s *CreateMatchmakingRuleSetInput) SetName(v string) *CreateMatchmakingRuleSetInput { + s.Name = &v + return s +} + +// SetRuleSetBody sets the RuleSetBody field's value. +func (s *CreateMatchmakingRuleSetInput) SetRuleSetBody(v string) *CreateMatchmakingRuleSetInput { + s.RuleSetBody = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateMatchmakingRuleSetOutput +type CreateMatchmakingRuleSetOutput struct { + _ struct{} `type:"structure"` + + // Object that describes the newly created matchmaking rule set. + // + // RuleSet is a required field + RuleSet *MatchmakingRuleSet `type:"structure" required:"true"` +} + +// String returns the string representation +func (s CreateMatchmakingRuleSetOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateMatchmakingRuleSetOutput) GoString() string { + return s.String() +} + +// SetRuleSet sets the RuleSet field's value. +func (s *CreateMatchmakingRuleSetOutput) SetRuleSet(v *MatchmakingRuleSet) *CreateMatchmakingRuleSetOutput { + s.RuleSet = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreatePlayerSessionInput +type CreatePlayerSessionInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for the game session to add a player to. + // + // GameSessionId is a required field + GameSessionId *string `min:"1" type:"string" required:"true"` + + // Developer-defined information related to a player. Amazon GameLift does not + // use this data, so it can be formatted as needed for use in the game. + PlayerData *string `min:"1" type:"string"` + + // Unique identifier for a player. Player IDs are developer-defined. + // + // PlayerId is a required field + PlayerId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreatePlayerSessionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreatePlayerSessionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreatePlayerSessionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreatePlayerSessionInput"} + if s.GameSessionId == nil { + invalidParams.Add(request.NewErrParamRequired("GameSessionId")) + } + if s.GameSessionId != nil && len(*s.GameSessionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GameSessionId", 1)) + } + if s.PlayerData != nil && len(*s.PlayerData) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PlayerData", 1)) + } + if s.PlayerId == nil { + invalidParams.Add(request.NewErrParamRequired("PlayerId")) + } + if s.PlayerId != nil && len(*s.PlayerId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PlayerId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetGameSessionId sets the GameSessionId field's value. +func (s *CreatePlayerSessionInput) SetGameSessionId(v string) *CreatePlayerSessionInput { + s.GameSessionId = &v + return s +} + +// SetPlayerData sets the PlayerData field's value. +func (s *CreatePlayerSessionInput) SetPlayerData(v string) *CreatePlayerSessionInput { + s.PlayerData = &v + return s +} + +// SetPlayerId sets the PlayerId field's value. +func (s *CreatePlayerSessionInput) SetPlayerId(v string) *CreatePlayerSessionInput { + s.PlayerId = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreatePlayerSessionOutput +type CreatePlayerSessionOutput struct { + _ struct{} `type:"structure"` + + // Object that describes the newly created player session record. + PlayerSession *PlayerSession `type:"structure"` +} + +// String returns the string representation +func (s CreatePlayerSessionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreatePlayerSessionOutput) GoString() string { + return s.String() +} + +// SetPlayerSession sets the PlayerSession field's value. +func (s *CreatePlayerSessionOutput) SetPlayerSession(v *PlayerSession) *CreatePlayerSessionOutput { + s.PlayerSession = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreatePlayerSessionsInput +type CreatePlayerSessionsInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for the game session to add players to. + // + // GameSessionId is a required field + GameSessionId *string `min:"1" type:"string" required:"true"` + + // Map of string pairs, each specifying a player ID and a set of developer-defined + // information related to the player. Amazon GameLift does not use this data, + // so it can be formatted as needed for use in the game. Player data strings + // for player IDs not included in the PlayerIds parameter are ignored. + PlayerDataMap map[string]*string `type:"map"` + + // List of unique identifiers for the players to be added. + // + // PlayerIds is a required field + PlayerIds []*string `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s CreatePlayerSessionsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreatePlayerSessionsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreatePlayerSessionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreatePlayerSessionsInput"} + if s.GameSessionId == nil { + invalidParams.Add(request.NewErrParamRequired("GameSessionId")) + } + if s.GameSessionId != nil && len(*s.GameSessionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GameSessionId", 1)) + } + if s.PlayerIds == nil { + invalidParams.Add(request.NewErrParamRequired("PlayerIds")) + } + if s.PlayerIds != nil && len(s.PlayerIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PlayerIds", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetGameSessionId sets the GameSessionId field's value. +func (s *CreatePlayerSessionsInput) SetGameSessionId(v string) *CreatePlayerSessionsInput { + s.GameSessionId = &v + return s +} + +// SetPlayerDataMap sets the PlayerDataMap field's value. +func (s *CreatePlayerSessionsInput) SetPlayerDataMap(v map[string]*string) *CreatePlayerSessionsInput { + s.PlayerDataMap = v + return s +} + +// SetPlayerIds sets the PlayerIds field's value. +func (s *CreatePlayerSessionsInput) SetPlayerIds(v []*string) *CreatePlayerSessionsInput { + s.PlayerIds = v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreatePlayerSessionsOutput +type CreatePlayerSessionsOutput struct { + _ struct{} `type:"structure"` + + // Collection of player session objects created for the added players. + PlayerSessions []*PlayerSession `type:"list"` +} + +// String returns the string representation +func (s CreatePlayerSessionsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreatePlayerSessionsOutput) GoString() string { + return s.String() +} + +// SetPlayerSessions sets the PlayerSessions field's value. +func (s *CreatePlayerSessionsOutput) SetPlayerSessions(v []*PlayerSession) *CreatePlayerSessionsOutput { + s.PlayerSessions = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateVpcPeeringAuthorizationInput +type CreateVpcPeeringAuthorizationInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for the AWS account that you use to manage your Amazon + // GameLift fleet. You can find your Account ID in the AWS Management Console + // under account settings. + // + // GameLiftAwsAccountId is a required field + GameLiftAwsAccountId *string `min:"1" type:"string" required:"true"` + + // Unique identifier for a VPC with resources to be accessed by your Amazon + // GameLift fleet. The VPC must be in the same region where your fleet is deployed. + // To get VPC information, including IDs, use the Virtual Private Cloud service + // tools, including the VPC Dashboard in the AWS Management Console. + // + // PeerVpcId is a required field + PeerVpcId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateVpcPeeringAuthorizationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateVpcPeeringAuthorizationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateVpcPeeringAuthorizationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateVpcPeeringAuthorizationInput"} + if s.GameLiftAwsAccountId == nil { + invalidParams.Add(request.NewErrParamRequired("GameLiftAwsAccountId")) + } + if s.GameLiftAwsAccountId != nil && len(*s.GameLiftAwsAccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GameLiftAwsAccountId", 1)) + } + if s.PeerVpcId == nil { + invalidParams.Add(request.NewErrParamRequired("PeerVpcId")) + } + if s.PeerVpcId != nil && len(*s.PeerVpcId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PeerVpcId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetGameLiftAwsAccountId sets the GameLiftAwsAccountId field's value. +func (s *CreateVpcPeeringAuthorizationInput) SetGameLiftAwsAccountId(v string) *CreateVpcPeeringAuthorizationInput { + s.GameLiftAwsAccountId = &v + return s +} + +// SetPeerVpcId sets the PeerVpcId field's value. +func (s *CreateVpcPeeringAuthorizationInput) SetPeerVpcId(v string) *CreateVpcPeeringAuthorizationInput { + s.PeerVpcId = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateVpcPeeringAuthorizationOutput +type CreateVpcPeeringAuthorizationOutput struct { + _ struct{} `type:"structure"` + + // Details on the requested VPC peering authorization, including expiration. + VpcPeeringAuthorization *VpcPeeringAuthorization `type:"structure"` +} + +// String returns the string representation +func (s CreateVpcPeeringAuthorizationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateVpcPeeringAuthorizationOutput) GoString() string { + return s.String() +} + +// SetVpcPeeringAuthorization sets the VpcPeeringAuthorization field's value. +func (s *CreateVpcPeeringAuthorizationOutput) SetVpcPeeringAuthorization(v *VpcPeeringAuthorization) *CreateVpcPeeringAuthorizationOutput { + s.VpcPeeringAuthorization = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateVpcPeeringConnectionInput +type CreateVpcPeeringConnectionInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet. This tells Amazon GameLift which GameLift + // VPC to peer with. + // + // FleetId is a required field + FleetId *string `type:"string" required:"true"` + + // Unique identifier for the AWS account with the VPC that you want to peer + // your Amazon GameLift fleet with. You can find your Account ID in the AWS + // Management Console under account settings. + // + // PeerVpcAwsAccountId is a required field + PeerVpcAwsAccountId *string `min:"1" type:"string" required:"true"` + + // Unique identifier for a VPC with resources to be accessed by your Amazon + // GameLift fleet. The VPC must be in the same region where your fleet is deployed. + // To get VPC information, including IDs, use the Virtual Private Cloud service + // tools, including the VPC Dashboard in the AWS Management Console. + // + // PeerVpcId is a required field + PeerVpcId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateVpcPeeringConnectionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateVpcPeeringConnectionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateVpcPeeringConnectionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateVpcPeeringConnectionInput"} + if s.FleetId == nil { + invalidParams.Add(request.NewErrParamRequired("FleetId")) + } + if s.PeerVpcAwsAccountId == nil { + invalidParams.Add(request.NewErrParamRequired("PeerVpcAwsAccountId")) + } + if s.PeerVpcAwsAccountId != nil && len(*s.PeerVpcAwsAccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PeerVpcAwsAccountId", 1)) + } + if s.PeerVpcId == nil { + invalidParams.Add(request.NewErrParamRequired("PeerVpcId")) + } + if s.PeerVpcId != nil && len(*s.PeerVpcId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PeerVpcId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFleetId sets the FleetId field's value. +func (s *CreateVpcPeeringConnectionInput) SetFleetId(v string) *CreateVpcPeeringConnectionInput { + s.FleetId = &v + return s +} + +// SetPeerVpcAwsAccountId sets the PeerVpcAwsAccountId field's value. +func (s *CreateVpcPeeringConnectionInput) SetPeerVpcAwsAccountId(v string) *CreateVpcPeeringConnectionInput { + s.PeerVpcAwsAccountId = &v + return s +} + +// SetPeerVpcId sets the PeerVpcId field's value. +func (s *CreateVpcPeeringConnectionInput) SetPeerVpcId(v string) *CreateVpcPeeringConnectionInput { + s.PeerVpcId = &v + return s +} + +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateVpcPeeringConnectionOutput +type CreateVpcPeeringConnectionOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s CreateVpcPeeringConnectionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateVpcPeeringConnectionOutput) GoString() string { + return s.String() +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteAliasInput +type DeleteAliasInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet alias. Specify the alias you want to delete. + // + // AliasId is a required field + AliasId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteAliasInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteAliasInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteAliasInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteAliasInput"} + if s.AliasId == nil { + invalidParams.Add(request.NewErrParamRequired("AliasId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAliasId sets the AliasId field's value. +func (s *DeleteAliasInput) SetAliasId(v string) *DeleteAliasInput { + s.AliasId = &v + return s +} + +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteAliasOutput +type DeleteAliasOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteAliasOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteAliasOutput) GoString() string { + return s.String() +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteBuildInput +type DeleteBuildInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a build to delete. + // + // BuildId is a required field + BuildId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteBuildInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBuildInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteBuildInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteBuildInput"} + if s.BuildId == nil { + invalidParams.Add(request.NewErrParamRequired("BuildId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBuildId sets the BuildId field's value. +func (s *DeleteBuildInput) SetBuildId(v string) *DeleteBuildInput { + s.BuildId = &v + return s +} + +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteBuildOutput +type DeleteBuildOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteBuildOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteBuildOutput) GoString() string { + return s.String() +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteFleetInput +type DeleteFleetInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet to be deleted. + // + // FleetId is a required field + FleetId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteFleetInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteFleetInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteFleetInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteFleetInput"} + if s.FleetId == nil { + invalidParams.Add(request.NewErrParamRequired("FleetId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFleetId sets the FleetId field's value. +func (s *DeleteFleetInput) SetFleetId(v string) *DeleteFleetInput { + s.FleetId = &v + return s +} + +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteFleetOutput +type DeleteFleetOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteFleetOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteFleetOutput) GoString() string { + return s.String() +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteGameSessionQueueInput +type DeleteGameSessionQueueInput struct { + _ struct{} `type:"structure"` + + // Descriptive label that is associated with game session queue. Queue names + // must be unique within each region. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteGameSessionQueueInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteGameSessionQueueInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteGameSessionQueueInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteGameSessionQueueInput"} + 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 *DeleteGameSessionQueueInput) SetName(v string) *DeleteGameSessionQueueInput { + s.Name = &v + return s +} + +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteGameSessionQueueOutput +type DeleteGameSessionQueueOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteGameSessionQueueOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteGameSessionQueueOutput) GoString() string { + return s.String() +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteMatchmakingConfigurationInput +type DeleteMatchmakingConfigurationInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a matchmaking configuration + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteMatchmakingConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteMatchmakingConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteMatchmakingConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteMatchmakingConfigurationInput"} + 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 *DeleteMatchmakingConfigurationInput) SetName(v string) *DeleteMatchmakingConfigurationInput { + s.Name = &v + return s +} + +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteMatchmakingConfigurationOutput +type DeleteMatchmakingConfigurationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteMatchmakingConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteMatchmakingConfigurationOutput) GoString() string { + return s.String() +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteScalingPolicyInput +type DeleteScalingPolicyInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet to be deleted. + // + // FleetId is a required field + FleetId *string `type:"string" required:"true"` + + // Descriptive label that is associated with a scaling policy. Policy names + // do not need to be unique. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteScalingPolicyInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteScalingPolicyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteScalingPolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteScalingPolicyInput"} + if s.FleetId == nil { + invalidParams.Add(request.NewErrParamRequired("FleetId")) + } + 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 +} + +// SetFleetId sets the FleetId field's value. +func (s *DeleteScalingPolicyInput) SetFleetId(v string) *DeleteScalingPolicyInput { + s.FleetId = &v + return s +} + +// SetName sets the Name field's value. +func (s *DeleteScalingPolicyInput) SetName(v string) *DeleteScalingPolicyInput { + s.Name = &v + return s +} + +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteScalingPolicyOutput +type DeleteScalingPolicyOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteScalingPolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteScalingPolicyOutput) GoString() string { + return s.String() +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteVpcPeeringAuthorizationInput +type DeleteVpcPeeringAuthorizationInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for the AWS account that you use to manage your Amazon + // GameLift fleet. You can find your Account ID in the AWS Management Console + // under account settings. + // + // GameLiftAwsAccountId is a required field + GameLiftAwsAccountId *string `min:"1" type:"string" required:"true"` + + // Unique identifier for a VPC with resources to be accessed by your Amazon + // GameLift fleet. The VPC must be in the same region where your fleet is deployed. + // To get VPC information, including IDs, use the Virtual Private Cloud service + // tools, including the VPC Dashboard in the AWS Management Console. + // + // PeerVpcId is a required field + PeerVpcId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteVpcPeeringAuthorizationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteVpcPeeringAuthorizationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteVpcPeeringAuthorizationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteVpcPeeringAuthorizationInput"} + if s.GameLiftAwsAccountId == nil { + invalidParams.Add(request.NewErrParamRequired("GameLiftAwsAccountId")) + } + if s.GameLiftAwsAccountId != nil && len(*s.GameLiftAwsAccountId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GameLiftAwsAccountId", 1)) + } + if s.PeerVpcId == nil { + invalidParams.Add(request.NewErrParamRequired("PeerVpcId")) + } + if s.PeerVpcId != nil && len(*s.PeerVpcId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PeerVpcId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetGameLiftAwsAccountId sets the GameLiftAwsAccountId field's value. +func (s *DeleteVpcPeeringAuthorizationInput) SetGameLiftAwsAccountId(v string) *DeleteVpcPeeringAuthorizationInput { + s.GameLiftAwsAccountId = &v + return s +} + +// SetPeerVpcId sets the PeerVpcId field's value. +func (s *DeleteVpcPeeringAuthorizationInput) SetPeerVpcId(v string) *DeleteVpcPeeringAuthorizationInput { + s.PeerVpcId = &v + return s +} + +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteVpcPeeringAuthorizationOutput +type DeleteVpcPeeringAuthorizationOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteVpcPeeringAuthorizationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteVpcPeeringAuthorizationOutput) GoString() string { + return s.String() +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteVpcPeeringConnectionInput +type DeleteVpcPeeringConnectionInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet. This value must match the fleet ID referenced + // in the VPC peering connection record. + // + // FleetId is a required field + FleetId *string `type:"string" required:"true"` + + // Unique identifier for a VPC peering connection. This value is included in + // the VpcPeeringConnection object, which can be retrieved by calling DescribeVpcPeeringConnections. + // + // VpcPeeringConnectionId is a required field + VpcPeeringConnectionId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteVpcPeeringConnectionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteVpcPeeringConnectionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteVpcPeeringConnectionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteVpcPeeringConnectionInput"} + if s.FleetId == nil { + invalidParams.Add(request.NewErrParamRequired("FleetId")) + } + if s.VpcPeeringConnectionId == nil { + invalidParams.Add(request.NewErrParamRequired("VpcPeeringConnectionId")) + } + if s.VpcPeeringConnectionId != nil && len(*s.VpcPeeringConnectionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("VpcPeeringConnectionId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFleetId sets the FleetId field's value. +func (s *DeleteVpcPeeringConnectionInput) SetFleetId(v string) *DeleteVpcPeeringConnectionInput { + s.FleetId = &v + return s +} + +// SetVpcPeeringConnectionId sets the VpcPeeringConnectionId field's value. +func (s *DeleteVpcPeeringConnectionInput) SetVpcPeeringConnectionId(v string) *DeleteVpcPeeringConnectionInput { + s.VpcPeeringConnectionId = &v + return s +} + +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteVpcPeeringConnectionOutput +type DeleteVpcPeeringConnectionOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteVpcPeeringConnectionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteVpcPeeringConnectionOutput) GoString() string { + return s.String() +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeAliasInput +type DescribeAliasInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet alias. Specify the alias you want to retrieve. + // + // AliasId is a required field + AliasId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeAliasInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeAliasInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeAliasInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeAliasInput"} + if s.AliasId == nil { + invalidParams.Add(request.NewErrParamRequired("AliasId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAliasId sets the AliasId field's value. +func (s *DescribeAliasInput) SetAliasId(v string) *DescribeAliasInput { + s.AliasId = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeAliasOutput +type DescribeAliasOutput struct { + _ struct{} `type:"structure"` + + // Object that contains the requested alias. + Alias *Alias `type:"structure"` +} + +// String returns the string representation +func (s DescribeAliasOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeAliasOutput) GoString() string { + return s.String() +} + +// SetAlias sets the Alias field's value. +func (s *DescribeAliasOutput) SetAlias(v *Alias) *DescribeAliasOutput { + s.Alias = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeBuildInput +type DescribeBuildInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a build to retrieve properties for. + // + // BuildId is a required field + BuildId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeBuildInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeBuildInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeBuildInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeBuildInput"} + if s.BuildId == nil { + invalidParams.Add(request.NewErrParamRequired("BuildId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBuildId sets the BuildId field's value. +func (s *DescribeBuildInput) SetBuildId(v string) *DescribeBuildInput { + s.BuildId = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeBuildOutput +type DescribeBuildOutput struct { + _ struct{} `type:"structure"` + + // Set of properties describing the requested build. + Build *Build `type:"structure"` +} + +// String returns the string representation +func (s DescribeBuildOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeBuildOutput) GoString() string { + return s.String() +} + +// SetBuild sets the Build field's value. +func (s *DescribeBuildOutput) SetBuild(v *Build) *DescribeBuildOutput { + s.Build = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeEC2InstanceLimitsInput +type DescribeEC2InstanceLimitsInput struct { + _ struct{} `type:"structure"` + + // Name of an EC2 instance type that is supported in Amazon GameLift. A fleet + // instance type determines the computing resources of each instance in the + // fleet, including CPU, memory, storage, and networking capacity. Amazon GameLift + // supports the following EC2 instance types. See Amazon EC2 Instance Types + // (http://aws.amazon.com/ec2/instance-types/) for detailed descriptions. Leave + // this parameter blank to retrieve limits for all types. + EC2InstanceType *string `type:"string" enum:"EC2InstanceType"` +} + +// String returns the string representation +func (s DescribeEC2InstanceLimitsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeEC2InstanceLimitsInput) GoString() string { + return s.String() +} + +// SetEC2InstanceType sets the EC2InstanceType field's value. +func (s *DescribeEC2InstanceLimitsInput) SetEC2InstanceType(v string) *DescribeEC2InstanceLimitsInput { + s.EC2InstanceType = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeEC2InstanceLimitsOutput +type DescribeEC2InstanceLimitsOutput struct { + _ struct{} `type:"structure"` + + // Object that contains the maximum number of instances for the specified instance + // type. + EC2InstanceLimits []*EC2InstanceLimit `type:"list"` +} + +// String returns the string representation +func (s DescribeEC2InstanceLimitsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeEC2InstanceLimitsOutput) GoString() string { + return s.String() +} + +// SetEC2InstanceLimits sets the EC2InstanceLimits field's value. +func (s *DescribeEC2InstanceLimitsOutput) SetEC2InstanceLimits(v []*EC2InstanceLimit) *DescribeEC2InstanceLimitsOutput { + s.EC2InstanceLimits = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetAttributesInput +type DescribeFleetAttributesInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet(s) to retrieve attributes for. To request attributes + // for all fleets, leave this parameter empty. + FleetIds []*string `min:"1" type:"list"` + + // Maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. This parameter is ignored when + // the request specifies one or a list of fleet IDs. + Limit *int64 `min:"1" type:"integer"` + + // Token that indicates the start of the next sequential page of results. Use + // the token that is returned with a previous call to this action. To start + // at the beginning of the result set, do not specify a value. This parameter + // is ignored when the request specifies one or a list of fleet IDs. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeFleetAttributesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeFleetAttributesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeFleetAttributesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeFleetAttributesInput"} + if s.FleetIds != nil && len(s.FleetIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FleetIds", 1)) + } + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFleetIds sets the FleetIds field's value. +func (s *DescribeFleetAttributesInput) SetFleetIds(v []*string) *DescribeFleetAttributesInput { + s.FleetIds = v + return s +} + +// SetLimit sets the Limit field's value. +func (s *DescribeFleetAttributesInput) SetLimit(v int64) *DescribeFleetAttributesInput { + s.Limit = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeFleetAttributesInput) SetNextToken(v string) *DescribeFleetAttributesInput { + s.NextToken = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetAttributesOutput +type DescribeFleetAttributesOutput struct { + _ struct{} `type:"structure"` + + // Collection of objects containing attribute metadata for each requested fleet + // ID. + FleetAttributes []*FleetAttributes `type:"list"` + + // Token that indicates where to resume retrieving results on the next call + // to this action. If no token is returned, these results represent the end + // of the list. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeFleetAttributesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeFleetAttributesOutput) GoString() string { + return s.String() +} + +// SetFleetAttributes sets the FleetAttributes field's value. +func (s *DescribeFleetAttributesOutput) SetFleetAttributes(v []*FleetAttributes) *DescribeFleetAttributesOutput { + s.FleetAttributes = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeFleetAttributesOutput) SetNextToken(v string) *DescribeFleetAttributesOutput { + s.NextToken = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetCapacityInput +type DescribeFleetCapacityInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet(s) to retrieve capacity information for. To + // request capacity information for all fleets, leave this parameter empty. + FleetIds []*string `min:"1" type:"list"` + + // Maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. This parameter is ignored when + // the request specifies one or a list of fleet IDs. + Limit *int64 `min:"1" type:"integer"` + + // Token that indicates the start of the next sequential page of results. Use + // the token that is returned with a previous call to this action. To start + // at the beginning of the result set, do not specify a value. This parameter + // is ignored when the request specifies one or a list of fleet IDs. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeFleetCapacityInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeFleetCapacityInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeFleetCapacityInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeFleetCapacityInput"} + if s.FleetIds != nil && len(s.FleetIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FleetIds", 1)) + } + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFleetIds sets the FleetIds field's value. +func (s *DescribeFleetCapacityInput) SetFleetIds(v []*string) *DescribeFleetCapacityInput { + s.FleetIds = v + return s +} + +// SetLimit sets the Limit field's value. +func (s *DescribeFleetCapacityInput) SetLimit(v int64) *DescribeFleetCapacityInput { + s.Limit = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeFleetCapacityInput) SetNextToken(v string) *DescribeFleetCapacityInput { + s.NextToken = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetCapacityOutput +type DescribeFleetCapacityOutput struct { + _ struct{} `type:"structure"` + + // Collection of objects containing capacity information for each requested + // fleet ID. Leave this parameter empty to retrieve capacity information for + // all fleets. + FleetCapacity []*FleetCapacity `type:"list"` + + // Token that indicates where to resume retrieving results on the next call + // to this action. If no token is returned, these results represent the end + // of the list. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeFleetCapacityOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeFleetCapacityOutput) GoString() string { + return s.String() +} + +// SetFleetCapacity sets the FleetCapacity field's value. +func (s *DescribeFleetCapacityOutput) SetFleetCapacity(v []*FleetCapacity) *DescribeFleetCapacityOutput { + s.FleetCapacity = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeFleetCapacityOutput) SetNextToken(v string) *DescribeFleetCapacityOutput { + s.NextToken = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetEventsInput +type DescribeFleetEventsInput struct { + _ struct{} `type:"structure"` + + // Most recent date to retrieve event logs for. If no end time is specified, + // this call returns entries from the specified start time up to the present. + // Format is a number expressed in Unix time as milliseconds (ex: "1469498468.057"). + EndTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // Unique identifier for a fleet to get event logs for. + // + // FleetId is a required field + FleetId *string `type:"string" required:"true"` + + // Maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. + Limit *int64 `min:"1" type:"integer"` + + // Token that indicates the start of the next sequential page of results. Use + // the token that is returned with a previous call to this action. To start + // at the beginning of the result set, do not specify a value. + NextToken *string `min:"1" type:"string"` + + // Earliest date to retrieve event logs for. If no start time is specified, + // this call returns entries starting from when the fleet was created to the + // specified end time. Format is a number expressed in Unix time as milliseconds + // (ex: "1469498468.057"). + StartTime *time.Time `type:"timestamp" timestampFormat:"unix"` +} + +// String returns the string representation +func (s DescribeFleetEventsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeFleetEventsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeFleetEventsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeFleetEventsInput"} + if s.FleetId == nil { + invalidParams.Add(request.NewErrParamRequired("FleetId")) + } + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEndTime sets the EndTime field's value. +func (s *DescribeFleetEventsInput) SetEndTime(v time.Time) *DescribeFleetEventsInput { + s.EndTime = &v + return s +} + +// SetFleetId sets the FleetId field's value. +func (s *DescribeFleetEventsInput) SetFleetId(v string) *DescribeFleetEventsInput { + s.FleetId = &v + return s +} + +// SetLimit sets the Limit field's value. +func (s *DescribeFleetEventsInput) SetLimit(v int64) *DescribeFleetEventsInput { + s.Limit = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeFleetEventsInput) SetNextToken(v string) *DescribeFleetEventsInput { + s.NextToken = &v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *DescribeFleetEventsInput) SetStartTime(v time.Time) *DescribeFleetEventsInput { + s.StartTime = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetEventsOutput +type DescribeFleetEventsOutput struct { + _ struct{} `type:"structure"` + + // Collection of objects containing event log entries for the specified fleet. + Events []*Event `type:"list"` + + // Token that indicates where to resume retrieving results on the next call + // to this action. If no token is returned, these results represent the end + // of the list. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeFleetEventsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeFleetEventsOutput) GoString() string { + return s.String() +} + +// SetEvents sets the Events field's value. +func (s *DescribeFleetEventsOutput) SetEvents(v []*Event) *DescribeFleetEventsOutput { + s.Events = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeFleetEventsOutput) SetNextToken(v string) *DescribeFleetEventsOutput { + s.NextToken = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetPortSettingsInput +type DescribeFleetPortSettingsInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet to retrieve port settings for. + // + // FleetId is a required field + FleetId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeFleetPortSettingsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeFleetPortSettingsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeFleetPortSettingsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeFleetPortSettingsInput"} + if s.FleetId == nil { + invalidParams.Add(request.NewErrParamRequired("FleetId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFleetId sets the FleetId field's value. +func (s *DescribeFleetPortSettingsInput) SetFleetId(v string) *DescribeFleetPortSettingsInput { + s.FleetId = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetPortSettingsOutput +type DescribeFleetPortSettingsOutput struct { + _ struct{} `type:"structure"` + + // Object that contains port settings for the requested fleet ID. + InboundPermissions []*IpPermission `type:"list"` +} + +// String returns the string representation +func (s DescribeFleetPortSettingsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeFleetPortSettingsOutput) GoString() string { + return s.String() +} + +// SetInboundPermissions sets the InboundPermissions field's value. +func (s *DescribeFleetPortSettingsOutput) SetInboundPermissions(v []*IpPermission) *DescribeFleetPortSettingsOutput { + s.InboundPermissions = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetUtilizationInput +type DescribeFleetUtilizationInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet(s) to retrieve utilization data for. To request + // utilization data for all fleets, leave this parameter empty. + FleetIds []*string `min:"1" type:"list"` + + // Maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. This parameter is ignored when + // the request specifies one or a list of fleet IDs. + Limit *int64 `min:"1" type:"integer"` + + // Token that indicates the start of the next sequential page of results. Use + // the token that is returned with a previous call to this action. To start + // at the beginning of the result set, do not specify a value. This parameter + // is ignored when the request specifies one or a list of fleet IDs. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeFleetUtilizationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeFleetUtilizationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeFleetUtilizationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeFleetUtilizationInput"} + if s.FleetIds != nil && len(s.FleetIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FleetIds", 1)) + } + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFleetIds sets the FleetIds field's value. +func (s *DescribeFleetUtilizationInput) SetFleetIds(v []*string) *DescribeFleetUtilizationInput { + s.FleetIds = v + return s +} + +// SetLimit sets the Limit field's value. +func (s *DescribeFleetUtilizationInput) SetLimit(v int64) *DescribeFleetUtilizationInput { + s.Limit = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeFleetUtilizationInput) SetNextToken(v string) *DescribeFleetUtilizationInput { + s.NextToken = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetUtilizationOutput +type DescribeFleetUtilizationOutput struct { + _ struct{} `type:"structure"` + + // Collection of objects containing utilization information for each requested + // fleet ID. + FleetUtilization []*FleetUtilization `type:"list"` + + // Token that indicates where to resume retrieving results on the next call + // to this action. If no token is returned, these results represent the end + // of the list. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeFleetUtilizationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeFleetUtilizationOutput) GoString() string { + return s.String() +} + +// SetFleetUtilization sets the FleetUtilization field's value. +func (s *DescribeFleetUtilizationOutput) SetFleetUtilization(v []*FleetUtilization) *DescribeFleetUtilizationOutput { + s.FleetUtilization = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeFleetUtilizationOutput) SetNextToken(v string) *DescribeFleetUtilizationOutput { + s.NextToken = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionDetailsInput +type DescribeGameSessionDetailsInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for an alias associated with the fleet to retrieve all + // game sessions for. + AliasId *string `type:"string"` + + // Unique identifier for a fleet to retrieve all game sessions active on the + // fleet. + FleetId *string `type:"string"` + + // Unique identifier for the game session to retrieve. + GameSessionId *string `min:"1" type:"string"` + + // Maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. + Limit *int64 `min:"1" type:"integer"` + + // Token that indicates the start of the next sequential page of results. Use + // the token that is returned with a previous call to this action. To start + // at the beginning of the result set, do not specify a value. + NextToken *string `min:"1" type:"string"` + + // Game session status to filter results on. Possible game session statuses + // include ACTIVE, TERMINATED, ACTIVATING and TERMINATING (the last two are + // transitory). + StatusFilter *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeGameSessionDetailsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeGameSessionDetailsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeGameSessionDetailsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeGameSessionDetailsInput"} + if s.GameSessionId != nil && len(*s.GameSessionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GameSessionId", 1)) + } + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.StatusFilter != nil && len(*s.StatusFilter) < 1 { + invalidParams.Add(request.NewErrParamMinLen("StatusFilter", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAliasId sets the AliasId field's value. +func (s *DescribeGameSessionDetailsInput) SetAliasId(v string) *DescribeGameSessionDetailsInput { + s.AliasId = &v + return s +} + +// SetFleetId sets the FleetId field's value. +func (s *DescribeGameSessionDetailsInput) SetFleetId(v string) *DescribeGameSessionDetailsInput { + s.FleetId = &v + return s +} + +// SetGameSessionId sets the GameSessionId field's value. +func (s *DescribeGameSessionDetailsInput) SetGameSessionId(v string) *DescribeGameSessionDetailsInput { + s.GameSessionId = &v + return s +} + +// SetLimit sets the Limit field's value. +func (s *DescribeGameSessionDetailsInput) SetLimit(v int64) *DescribeGameSessionDetailsInput { + s.Limit = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeGameSessionDetailsInput) SetNextToken(v string) *DescribeGameSessionDetailsInput { + s.NextToken = &v + return s +} + +// SetStatusFilter sets the StatusFilter field's value. +func (s *DescribeGameSessionDetailsInput) SetStatusFilter(v string) *DescribeGameSessionDetailsInput { + s.StatusFilter = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionDetailsOutput +type DescribeGameSessionDetailsOutput struct { + _ struct{} `type:"structure"` + + // Collection of objects containing game session properties and the protection + // policy currently in force for each session matching the request. + GameSessionDetails []*GameSessionDetail `type:"list"` + + // Token that indicates where to resume retrieving results on the next call + // to this action. If no token is returned, these results represent the end + // of the list. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeGameSessionDetailsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeGameSessionDetailsOutput) GoString() string { + return s.String() +} + +// SetGameSessionDetails sets the GameSessionDetails field's value. +func (s *DescribeGameSessionDetailsOutput) SetGameSessionDetails(v []*GameSessionDetail) *DescribeGameSessionDetailsOutput { + s.GameSessionDetails = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeGameSessionDetailsOutput) SetNextToken(v string) *DescribeGameSessionDetailsOutput { + s.NextToken = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionPlacementInput +type DescribeGameSessionPlacementInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a game session placement to retrieve. + // + // PlacementId is a required field + PlacementId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeGameSessionPlacementInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeGameSessionPlacementInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeGameSessionPlacementInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeGameSessionPlacementInput"} + if s.PlacementId == nil { + invalidParams.Add(request.NewErrParamRequired("PlacementId")) + } + if s.PlacementId != nil && len(*s.PlacementId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PlacementId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetPlacementId sets the PlacementId field's value. +func (s *DescribeGameSessionPlacementInput) SetPlacementId(v string) *DescribeGameSessionPlacementInput { + s.PlacementId = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionPlacementOutput +type DescribeGameSessionPlacementOutput struct { + _ struct{} `type:"structure"` + + // Object that describes the requested game session placement. + GameSessionPlacement *GameSessionPlacement `type:"structure"` +} + +// String returns the string representation +func (s DescribeGameSessionPlacementOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeGameSessionPlacementOutput) GoString() string { + return s.String() +} + +// SetGameSessionPlacement sets the GameSessionPlacement field's value. +func (s *DescribeGameSessionPlacementOutput) SetGameSessionPlacement(v *GameSessionPlacement) *DescribeGameSessionPlacementOutput { + s.GameSessionPlacement = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionQueuesInput +type DescribeGameSessionQueuesInput struct { + _ struct{} `type:"structure"` + + // Maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. + Limit *int64 `min:"1" type:"integer"` + + // List of queue names to retrieve information for. To request settings for + // all queues, leave this parameter empty. + Names []*string `type:"list"` + + // Token that indicates the start of the next sequential page of results. Use + // the token that is returned with a previous call to this action. To start + // at the beginning of the result set, do not specify a value. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeGameSessionQueuesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeGameSessionQueuesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeGameSessionQueuesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeGameSessionQueuesInput"} + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLimit sets the Limit field's value. +func (s *DescribeGameSessionQueuesInput) SetLimit(v int64) *DescribeGameSessionQueuesInput { + s.Limit = &v + return s +} + +// SetNames sets the Names field's value. +func (s *DescribeGameSessionQueuesInput) SetNames(v []*string) *DescribeGameSessionQueuesInput { + s.Names = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeGameSessionQueuesInput) SetNextToken(v string) *DescribeGameSessionQueuesInput { + s.NextToken = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionQueuesOutput +type DescribeGameSessionQueuesOutput struct { + _ struct{} `type:"structure"` + + // Collection of objects that describes the requested game session queues. + GameSessionQueues []*GameSessionQueue `type:"list"` + + // Token that indicates where to resume retrieving results on the next call + // to this action. If no token is returned, these results represent the end + // of the list. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeGameSessionQueuesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeGameSessionQueuesOutput) GoString() string { + return s.String() +} + +// SetGameSessionQueues sets the GameSessionQueues field's value. +func (s *DescribeGameSessionQueuesOutput) SetGameSessionQueues(v []*GameSessionQueue) *DescribeGameSessionQueuesOutput { + s.GameSessionQueues = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeGameSessionQueuesOutput) SetNextToken(v string) *DescribeGameSessionQueuesOutput { + s.NextToken = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionsInput +type DescribeGameSessionsInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for an alias associated with the fleet to retrieve all + // game sessions for. + AliasId *string `type:"string"` + + // Unique identifier for a fleet to retrieve all game sessions for. + FleetId *string `type:"string"` + + // Unique identifier for the game session to retrieve. You can use either a + // GameSessionId or GameSessionArn value. + GameSessionId *string `min:"1" type:"string"` + + // Maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. + Limit *int64 `min:"1" type:"integer"` + + // Token that indicates the start of the next sequential page of results. Use + // the token that is returned with a previous call to this action. To start + // at the beginning of the result set, do not specify a value. + NextToken *string `min:"1" type:"string"` + + // Game session status to filter results on. Possible game session statuses + // include ACTIVE, TERMINATED, ACTIVATING, and TERMINATING (the last two are + // transitory). + StatusFilter *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeGameSessionsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeGameSessionsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeGameSessionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeGameSessionsInput"} + if s.GameSessionId != nil && len(*s.GameSessionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GameSessionId", 1)) + } + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.StatusFilter != nil && len(*s.StatusFilter) < 1 { + invalidParams.Add(request.NewErrParamMinLen("StatusFilter", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAliasId sets the AliasId field's value. +func (s *DescribeGameSessionsInput) SetAliasId(v string) *DescribeGameSessionsInput { + s.AliasId = &v + return s +} + +// SetFleetId sets the FleetId field's value. +func (s *DescribeGameSessionsInput) SetFleetId(v string) *DescribeGameSessionsInput { + s.FleetId = &v + return s +} + +// SetGameSessionId sets the GameSessionId field's value. +func (s *DescribeGameSessionsInput) SetGameSessionId(v string) *DescribeGameSessionsInput { + s.GameSessionId = &v + return s +} + +// SetLimit sets the Limit field's value. +func (s *DescribeGameSessionsInput) SetLimit(v int64) *DescribeGameSessionsInput { + s.Limit = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeGameSessionsInput) SetNextToken(v string) *DescribeGameSessionsInput { + s.NextToken = &v + return s +} + +// SetStatusFilter sets the StatusFilter field's value. +func (s *DescribeGameSessionsInput) SetStatusFilter(v string) *DescribeGameSessionsInput { + s.StatusFilter = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionsOutput +type DescribeGameSessionsOutput struct { + _ struct{} `type:"structure"` + + // Collection of objects containing game session properties for each session + // matching the request. + GameSessions []*GameSession `type:"list"` + + // Token that indicates where to resume retrieving results on the next call + // to this action. If no token is returned, these results represent the end + // of the list. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeGameSessionsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeGameSessionsOutput) GoString() string { + return s.String() +} + +// SetGameSessions sets the GameSessions field's value. +func (s *DescribeGameSessionsOutput) SetGameSessions(v []*GameSession) *DescribeGameSessionsOutput { + s.GameSessions = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeGameSessionsOutput) SetNextToken(v string) *DescribeGameSessionsOutput { + s.NextToken = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeInstancesInput +type DescribeInstancesInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet to retrieve instance information for. + // + // FleetId is a required field + FleetId *string `type:"string" required:"true"` + + // Unique identifier for an instance to retrieve. Specify an instance ID or + // leave blank to retrieve all instances in the fleet. + InstanceId *string `type:"string"` + + // Maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. + Limit *int64 `min:"1" type:"integer"` + + // Token that indicates the start of the next sequential page of results. Use + // the token that is returned with a previous call to this action. To start + // at the beginning of the result set, do not specify a value. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeInstancesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeInstancesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeInstancesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeInstancesInput"} + if s.FleetId == nil { + invalidParams.Add(request.NewErrParamRequired("FleetId")) + } + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFleetId sets the FleetId field's value. +func (s *DescribeInstancesInput) SetFleetId(v string) *DescribeInstancesInput { + s.FleetId = &v + return s +} + +// SetInstanceId sets the InstanceId field's value. +func (s *DescribeInstancesInput) SetInstanceId(v string) *DescribeInstancesInput { + s.InstanceId = &v + return s +} + +// SetLimit sets the Limit field's value. +func (s *DescribeInstancesInput) SetLimit(v int64) *DescribeInstancesInput { + s.Limit = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeInstancesInput) SetNextToken(v string) *DescribeInstancesInput { + s.NextToken = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeInstancesOutput +type DescribeInstancesOutput struct { + _ struct{} `type:"structure"` + + // Collection of objects containing properties for each instance returned. + Instances []*Instance `type:"list"` + + // Token that indicates where to resume retrieving results on the next call + // to this action. If no token is returned, these results represent the end + // of the list. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeInstancesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeInstancesOutput) GoString() string { + return s.String() +} + +// SetInstances sets the Instances field's value. +func (s *DescribeInstancesOutput) SetInstances(v []*Instance) *DescribeInstancesOutput { + s.Instances = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeInstancesOutput) SetNextToken(v string) *DescribeInstancesOutput { + s.NextToken = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeMatchmakingConfigurationsInput +type DescribeMatchmakingConfigurationsInput struct { + _ struct{} `type:"structure"` + + // Maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. This parameter is limited to 10. + Limit *int64 `min:"1" type:"integer"` + + // Unique identifier for a matchmaking configuration(s) to retrieve. To request + // all existing configurations, leave this parameter empty. + Names []*string `type:"list"` + + // Token that indicates the start of the next sequential page of results. Use + // the token that is returned with a previous call to this action. To start + // at the beginning of the result set, do not specify a value. + NextToken *string `min:"1" type:"string"` + + // Unique identifier for a matchmaking rule set. Use this parameter to retrieve + // all matchmaking configurations that use this rule set. + RuleSetName *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeMatchmakingConfigurationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeMatchmakingConfigurationsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeMatchmakingConfigurationsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeMatchmakingConfigurationsInput"} + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.RuleSetName != nil && len(*s.RuleSetName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RuleSetName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLimit sets the Limit field's value. +func (s *DescribeMatchmakingConfigurationsInput) SetLimit(v int64) *DescribeMatchmakingConfigurationsInput { + s.Limit = &v + return s +} + +// SetNames sets the Names field's value. +func (s *DescribeMatchmakingConfigurationsInput) SetNames(v []*string) *DescribeMatchmakingConfigurationsInput { + s.Names = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeMatchmakingConfigurationsInput) SetNextToken(v string) *DescribeMatchmakingConfigurationsInput { + s.NextToken = &v + return s +} + +// SetRuleSetName sets the RuleSetName field's value. +func (s *DescribeMatchmakingConfigurationsInput) SetRuleSetName(v string) *DescribeMatchmakingConfigurationsInput { + s.RuleSetName = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeMatchmakingConfigurationsOutput +type DescribeMatchmakingConfigurationsOutput struct { + _ struct{} `type:"structure"` + + // Collection of requested matchmaking configuration objects. + Configurations []*MatchmakingConfiguration `type:"list"` + + // Token that indicates where to resume retrieving results on the next call + // to this action. If no token is returned, these results represent the end + // of the list. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeMatchmakingConfigurationsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeMatchmakingConfigurationsOutput) GoString() string { + return s.String() +} + +// SetConfigurations sets the Configurations field's value. +func (s *DescribeMatchmakingConfigurationsOutput) SetConfigurations(v []*MatchmakingConfiguration) *DescribeMatchmakingConfigurationsOutput { + s.Configurations = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeMatchmakingConfigurationsOutput) SetNextToken(v string) *DescribeMatchmakingConfigurationsOutput { + s.NextToken = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeMatchmakingInput +type DescribeMatchmakingInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a matchmaking ticket. To request all existing tickets, + // leave this parameter empty. + // + // TicketIds is a required field + TicketIds []*string `type:"list" required:"true"` +} + +// String returns the string representation +func (s DescribeMatchmakingInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeMatchmakingInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeMatchmakingInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeMatchmakingInput"} + if s.TicketIds == nil { + invalidParams.Add(request.NewErrParamRequired("TicketIds")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetTicketIds sets the TicketIds field's value. +func (s *DescribeMatchmakingInput) SetTicketIds(v []*string) *DescribeMatchmakingInput { + s.TicketIds = v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeMatchmakingOutput +type DescribeMatchmakingOutput struct { + _ struct{} `type:"structure"` + + // Collection of existing matchmaking ticket objects matching the request. + TicketList []*MatchmakingTicket `type:"list"` +} + +// String returns the string representation +func (s DescribeMatchmakingOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeMatchmakingOutput) GoString() string { + return s.String() +} + +// SetTicketList sets the TicketList field's value. +func (s *DescribeMatchmakingOutput) SetTicketList(v []*MatchmakingTicket) *DescribeMatchmakingOutput { + s.TicketList = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeMatchmakingRuleSetsInput +type DescribeMatchmakingRuleSetsInput struct { + _ struct{} `type:"structure"` + + // Maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. + Limit *int64 `min:"1" type:"integer"` + + // Unique identifier for a matchmaking rule set. This name is used to identify + // the rule set associated with a matchmaking configuration. + Names []*string `min:"1" type:"list"` + + // Token that indicates the start of the next sequential page of results. Use + // the token that is returned with a previous call to this action. To start + // at the beginning of the result set, do not specify a value. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribeMatchmakingRuleSetsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeMatchmakingRuleSetsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeMatchmakingRuleSetsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeMatchmakingRuleSetsInput"} + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) + } + if s.Names != nil && len(s.Names) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Names", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLimit sets the Limit field's value. +func (s *DescribeMatchmakingRuleSetsInput) SetLimit(v int64) *DescribeMatchmakingRuleSetsInput { + s.Limit = &v + return s +} + +// SetNames sets the Names field's value. +func (s *DescribeMatchmakingRuleSetsInput) SetNames(v []*string) *DescribeMatchmakingRuleSetsInput { + s.Names = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeMatchmakingRuleSetsInput) SetNextToken(v string) *DescribeMatchmakingRuleSetsInput { + s.NextToken = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeMatchmakingRuleSetsOutput +type DescribeMatchmakingRuleSetsOutput struct { + _ struct{} `type:"structure"` + + // Token that indicates where to resume retrieving results on the next call + // to this action. If no token is returned, these results represent the end + // of the list. + NextToken *string `min:"1" type:"string"` + + // Collection of requested matchmaking rule set objects. + // + // RuleSets is a required field + RuleSets []*MatchmakingRuleSet `type:"list" required:"true"` +} + +// String returns the string representation +func (s DescribeMatchmakingRuleSetsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeMatchmakingRuleSetsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeMatchmakingRuleSetsOutput) SetNextToken(v string) *DescribeMatchmakingRuleSetsOutput { + s.NextToken = &v + return s +} + +// SetRuleSets sets the RuleSets field's value. +func (s *DescribeMatchmakingRuleSetsOutput) SetRuleSets(v []*MatchmakingRuleSet) *DescribeMatchmakingRuleSetsOutput { + s.RuleSets = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribePlayerSessionsInput +type DescribePlayerSessionsInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for the game session to retrieve player sessions for. + GameSessionId *string `min:"1" type:"string"` + + // Maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. If a player session ID is specified, + // this parameter is ignored. + Limit *int64 `min:"1" type:"integer"` + + // Token that indicates the start of the next sequential page of results. Use + // the token that is returned with a previous call to this action. To start + // at the beginning of the result set, do not specify a value. If a player session + // ID is specified, this parameter is ignored. + NextToken *string `min:"1" type:"string"` + + // Unique identifier for a player to retrieve player sessions for. + PlayerId *string `min:"1" type:"string"` + + // Unique identifier for a player session to retrieve. + PlayerSessionId *string `type:"string"` + + // Player session status to filter results on. + // + // Possible player session statuses include the following: + // + // * RESERVED -- The player session request has been received, but the player + // has not yet connected to the server process and/or been validated. + // + // * ACTIVE -- The player has been validated by the server process and is + // currently connected. + // + // * COMPLETED -- The player connection has been dropped. + // + // * TIMEDOUT -- A player session request was received, but the player did + // not connect and/or was not validated within the timeout limit (60 seconds). + PlayerSessionStatusFilter *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DescribePlayerSessionsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribePlayerSessionsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribePlayerSessionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribePlayerSessionsInput"} + if s.GameSessionId != nil && len(*s.GameSessionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GameSessionId", 1)) + } + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.PlayerId != nil && len(*s.PlayerId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PlayerId", 1)) + } + if s.PlayerSessionStatusFilter != nil && len(*s.PlayerSessionStatusFilter) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PlayerSessionStatusFilter", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetGameSessionId sets the GameSessionId field's value. +func (s *DescribePlayerSessionsInput) SetGameSessionId(v string) *DescribePlayerSessionsInput { + s.GameSessionId = &v + return s +} + +// SetLimit sets the Limit field's value. +func (s *DescribePlayerSessionsInput) SetLimit(v int64) *DescribePlayerSessionsInput { + s.Limit = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribePlayerSessionsInput) SetNextToken(v string) *DescribePlayerSessionsInput { + s.NextToken = &v + return s +} + +// SetPlayerId sets the PlayerId field's value. +func (s *DescribePlayerSessionsInput) SetPlayerId(v string) *DescribePlayerSessionsInput { + s.PlayerId = &v + return s +} + +// SetPlayerSessionId sets the PlayerSessionId field's value. +func (s *DescribePlayerSessionsInput) SetPlayerSessionId(v string) *DescribePlayerSessionsInput { + s.PlayerSessionId = &v + return s +} + +// SetPlayerSessionStatusFilter sets the PlayerSessionStatusFilter field's value. +func (s *DescribePlayerSessionsInput) SetPlayerSessionStatusFilter(v string) *DescribePlayerSessionsInput { + s.PlayerSessionStatusFilter = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribePlayerSessionsOutput +type DescribePlayerSessionsOutput struct { + _ struct{} `type:"structure"` + + // Token that indicates where to resume retrieving results on the next call + // to this action. If no token is returned, these results represent the end + // of the list. + NextToken *string `min:"1" type:"string"` + + // Collection of objects containing properties for each player session that + // matches the request. + PlayerSessions []*PlayerSession `type:"list"` +} + +// String returns the string representation +func (s DescribePlayerSessionsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribePlayerSessionsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribePlayerSessionsOutput) SetNextToken(v string) *DescribePlayerSessionsOutput { + s.NextToken = &v + return s +} + +// SetPlayerSessions sets the PlayerSessions field's value. +func (s *DescribePlayerSessionsOutput) SetPlayerSessions(v []*PlayerSession) *DescribePlayerSessionsOutput { + s.PlayerSessions = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeRuntimeConfigurationInput +type DescribeRuntimeConfigurationInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet to get the run-time configuration for. + // + // FleetId is a required field + FleetId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeRuntimeConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeRuntimeConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeRuntimeConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeRuntimeConfigurationInput"} + if s.FleetId == nil { + invalidParams.Add(request.NewErrParamRequired("FleetId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFleetId sets the FleetId field's value. +func (s *DescribeRuntimeConfigurationInput) SetFleetId(v string) *DescribeRuntimeConfigurationInput { + s.FleetId = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeRuntimeConfigurationOutput +type DescribeRuntimeConfigurationOutput struct { + _ struct{} `type:"structure"` + + // Instructions describing how server processes should be launched and maintained + // on each instance in the fleet. + RuntimeConfiguration *RuntimeConfiguration `type:"structure"` +} + +// String returns the string representation +func (s DescribeRuntimeConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeRuntimeConfigurationOutput) GoString() string { + return s.String() +} + +// SetRuntimeConfiguration sets the RuntimeConfiguration field's value. +func (s *DescribeRuntimeConfigurationOutput) SetRuntimeConfiguration(v *RuntimeConfiguration) *DescribeRuntimeConfigurationOutput { + s.RuntimeConfiguration = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeScalingPoliciesInput +type DescribeScalingPoliciesInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet to retrieve scaling policies for. + // + // FleetId is a required field + FleetId *string `type:"string" required:"true"` + + // Maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. + Limit *int64 `min:"1" type:"integer"` + + // Token that indicates the start of the next sequential page of results. Use + // the token that is returned with a previous call to this action. To start + // at the beginning of the result set, do not specify a value. + NextToken *string `min:"1" type:"string"` + + // Scaling policy status to filter results on. A scaling policy is only in force + // when in an ACTIVE status. + // + // * ACTIVE -- The scaling policy is currently in force. + // + // * UPDATEREQUESTED -- A request to update the scaling policy has been received. + // + // * UPDATING -- A change is being made to the scaling policy. + // + // * DELETEREQUESTED -- A request to delete the scaling policy has been received. + // + // * DELETING -- The scaling policy is being deleted. + // + // * DELETED -- The scaling policy has been deleted. + // + // * ERROR -- An error occurred in creating the policy. It should be removed + // and recreated. + StatusFilter *string `type:"string" enum:"ScalingStatusType"` +} + +// String returns the string representation +func (s DescribeScalingPoliciesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeScalingPoliciesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeScalingPoliciesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeScalingPoliciesInput"} + if s.FleetId == nil { + invalidParams.Add(request.NewErrParamRequired("FleetId")) + } + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFleetId sets the FleetId field's value. +func (s *DescribeScalingPoliciesInput) SetFleetId(v string) *DescribeScalingPoliciesInput { + s.FleetId = &v + return s +} + +// SetLimit sets the Limit field's value. +func (s *DescribeScalingPoliciesInput) SetLimit(v int64) *DescribeScalingPoliciesInput { + s.Limit = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeScalingPoliciesInput) SetNextToken(v string) *DescribeScalingPoliciesInput { + s.NextToken = &v + return s +} + +// SetStatusFilter sets the StatusFilter field's value. +func (s *DescribeScalingPoliciesInput) SetStatusFilter(v string) *DescribeScalingPoliciesInput { + s.StatusFilter = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeScalingPoliciesOutput +type DescribeScalingPoliciesOutput struct { + _ struct{} `type:"structure"` + + // Token that indicates where to resume retrieving results on the next call + // to this action. If no token is returned, these results represent the end + // of the list. + NextToken *string `min:"1" type:"string"` + + // Collection of objects containing the scaling policies matching the request. + ScalingPolicies []*ScalingPolicy `type:"list"` +} + +// String returns the string representation +func (s DescribeScalingPoliciesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeScalingPoliciesOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeScalingPoliciesOutput) SetNextToken(v string) *DescribeScalingPoliciesOutput { + s.NextToken = &v + return s +} + +// SetScalingPolicies sets the ScalingPolicies field's value. +func (s *DescribeScalingPoliciesOutput) SetScalingPolicies(v []*ScalingPolicy) *DescribeScalingPoliciesOutput { + s.ScalingPolicies = v + return s +} + +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeVpcPeeringAuthorizationsInput +type DescribeVpcPeeringAuthorizationsInput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DescribeVpcPeeringAuthorizationsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeVpcPeeringAuthorizationsInput) GoString() string { + return s.String() +} + +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeVpcPeeringAuthorizationsOutput +type DescribeVpcPeeringAuthorizationsOutput struct { + _ struct{} `type:"structure"` + + // Collection of objects that describe all valid VPC peering operations for + // the current AWS account. + VpcPeeringAuthorizations []*VpcPeeringAuthorization `type:"list"` +} + +// String returns the string representation +func (s DescribeVpcPeeringAuthorizationsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeVpcPeeringAuthorizationsOutput) GoString() string { + return s.String() +} + +// SetVpcPeeringAuthorizations sets the VpcPeeringAuthorizations field's value. +func (s *DescribeVpcPeeringAuthorizationsOutput) SetVpcPeeringAuthorizations(v []*VpcPeeringAuthorization) *DescribeVpcPeeringAuthorizationsOutput { + s.VpcPeeringAuthorizations = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeVpcPeeringConnectionsInput +type DescribeVpcPeeringConnectionsInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet. + FleetId *string `type:"string"` +} + +// String returns the string representation +func (s DescribeVpcPeeringConnectionsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeVpcPeeringConnectionsInput) GoString() string { + return s.String() +} + +// SetFleetId sets the FleetId field's value. +func (s *DescribeVpcPeeringConnectionsInput) SetFleetId(v string) *DescribeVpcPeeringConnectionsInput { + s.FleetId = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeVpcPeeringConnectionsOutput +type DescribeVpcPeeringConnectionsOutput struct { + _ struct{} `type:"structure"` + + // Collection of VPC peering connection records that match the request. + VpcPeeringConnections []*VpcPeeringConnection `type:"list"` +} + +// String returns the string representation +func (s DescribeVpcPeeringConnectionsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeVpcPeeringConnectionsOutput) GoString() string { + return s.String() +} + +// SetVpcPeeringConnections sets the VpcPeeringConnections field's value. +func (s *DescribeVpcPeeringConnectionsOutput) SetVpcPeeringConnections(v []*VpcPeeringConnection) *DescribeVpcPeeringConnectionsOutput { + s.VpcPeeringConnections = v + return s +} + +// Player information for use when creating player sessions using a game session +// placement request with StartGameSessionPlacement. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DesiredPlayerSession +type DesiredPlayerSession struct { + _ struct{} `type:"structure"` + + // Developer-defined information related to a player. Amazon GameLift does not + // use this data, so it can be formatted as needed for use in the game. + PlayerData *string `min:"1" type:"string"` + + // Unique identifier for a player to associate with the player session. + PlayerId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s DesiredPlayerSession) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DesiredPlayerSession) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DesiredPlayerSession) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DesiredPlayerSession"} + if s.PlayerData != nil && len(*s.PlayerData) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PlayerData", 1)) + } + if s.PlayerId != nil && len(*s.PlayerId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PlayerId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetPlayerData sets the PlayerData field's value. +func (s *DesiredPlayerSession) SetPlayerData(v string) *DesiredPlayerSession { + s.PlayerData = &v + return s +} + +// SetPlayerId sets the PlayerId field's value. +func (s *DesiredPlayerSession) SetPlayerId(v string) *DesiredPlayerSession { + s.PlayerId = &v + return s +} + +// Current status of fleet capacity. The number of active instances should match +// or be in the process of matching the number of desired instances. Pending +// and terminating counts are non-zero only if fleet capacity is adjusting to +// an UpdateFleetCapacity request, or if access to resources is temporarily +// affected. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/EC2InstanceCounts +type EC2InstanceCounts struct { + _ struct{} `type:"structure"` + + // Actual number of active instances in the fleet. + ACTIVE *int64 `type:"integer"` + + // Ideal number of active instances in the fleet. + DESIRED *int64 `type:"integer"` + + // Number of active instances in the fleet that are not currently hosting a + // game session. + IDLE *int64 `type:"integer"` + + // Maximum value allowed for the fleet's instance count. + MAXIMUM *int64 `type:"integer"` + + // Minimum value allowed for the fleet's instance count. + MINIMUM *int64 `type:"integer"` + + // Number of instances in the fleet that are starting but not yet active. + PENDING *int64 `type:"integer"` + + // Number of instances in the fleet that are no longer active but haven't yet + // been terminated. + TERMINATING *int64 `type:"integer"` +} + +// String returns the string representation +func (s EC2InstanceCounts) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s EC2InstanceCounts) GoString() string { + return s.String() +} + +// SetACTIVE sets the ACTIVE field's value. +func (s *EC2InstanceCounts) SetACTIVE(v int64) *EC2InstanceCounts { + s.ACTIVE = &v + return s +} + +// SetDESIRED sets the DESIRED field's value. +func (s *EC2InstanceCounts) SetDESIRED(v int64) *EC2InstanceCounts { + s.DESIRED = &v + return s +} + +// SetIDLE sets the IDLE field's value. +func (s *EC2InstanceCounts) SetIDLE(v int64) *EC2InstanceCounts { + s.IDLE = &v + return s +} + +// SetMAXIMUM sets the MAXIMUM field's value. +func (s *EC2InstanceCounts) SetMAXIMUM(v int64) *EC2InstanceCounts { + s.MAXIMUM = &v + return s +} + +// SetMINIMUM sets the MINIMUM field's value. +func (s *EC2InstanceCounts) SetMINIMUM(v int64) *EC2InstanceCounts { + s.MINIMUM = &v + return s +} + +// SetPENDING sets the PENDING field's value. +func (s *EC2InstanceCounts) SetPENDING(v int64) *EC2InstanceCounts { + s.PENDING = &v + return s +} + +// SetTERMINATING sets the TERMINATING field's value. +func (s *EC2InstanceCounts) SetTERMINATING(v int64) *EC2InstanceCounts { + s.TERMINATING = &v + return s +} + +// Maximum number of instances allowed based on the Amazon Elastic Compute Cloud +// (Amazon EC2) instance type. Instance limits can be retrieved by calling DescribeEC2InstanceLimits. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/EC2InstanceLimit +type EC2InstanceLimit struct { + _ struct{} `type:"structure"` + + // Number of instances of the specified type that are currently in use by this + // AWS account. + CurrentInstances *int64 `type:"integer"` + + // Name of an EC2 instance type that is supported in Amazon GameLift. A fleet + // instance type determines the computing resources of each instance in the + // fleet, including CPU, memory, storage, and networking capacity. Amazon GameLift + // supports the following EC2 instance types. See Amazon EC2 Instance Types + // (http://aws.amazon.com/ec2/instance-types/) for detailed descriptions. + EC2InstanceType *string `type:"string" enum:"EC2InstanceType"` + + // Number of instances allowed. + InstanceLimit *int64 `type:"integer"` +} + +// String returns the string representation +func (s EC2InstanceLimit) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s EC2InstanceLimit) GoString() string { + return s.String() +} + +// SetCurrentInstances sets the CurrentInstances field's value. +func (s *EC2InstanceLimit) SetCurrentInstances(v int64) *EC2InstanceLimit { + s.CurrentInstances = &v + return s +} + +// SetEC2InstanceType sets the EC2InstanceType field's value. +func (s *EC2InstanceLimit) SetEC2InstanceType(v string) *EC2InstanceLimit { + s.EC2InstanceType = &v + return s +} + +// SetInstanceLimit sets the InstanceLimit field's value. +func (s *EC2InstanceLimit) SetInstanceLimit(v int64) *EC2InstanceLimit { + s.InstanceLimit = &v + return s +} + +// Log entry describing an event that involves Amazon GameLift resources (such +// as a fleet). In addition to tracking activity, event codes and messages can +// provide additional information for troubleshooting and debugging problems. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/Event +type Event struct { + _ struct{} `type:"structure"` + + // Type of event being logged. The following events are currently in use: + // + // General events: + // + // * GENERIC_EVENT -- An unspecified event has occurred. + // + // Fleet creation events: + // + // * FLEET_CREATED -- A fleet record was successfully created with a status + // of NEW. Event messaging includes the fleet ID. + // + // * FLEET_STATE_DOWNLOADING -- Fleet status changed from NEW to DOWNLOADING. + // The compressed build has started downloading to a fleet instance for installation. + // + // * FLEET_BINARY_DOWNLOAD_FAILED -- The build failed to download to the + // fleet instance. + // + // * FLEET_CREATION_EXTRACTING_BUILD – The game server build was successfully + // downloaded to an instance, and the build files are now being extracted + // from the uploaded build and saved to an instance. Failure at this stage + // prevents a fleet from moving to ACTIVE status. Logs for this stage display + // a list of the files that are extracted and saved on the instance. Access + // the logs by using the URL in PreSignedLogUrl. + // + // * FLEET_CREATION_RUNNING_INSTALLER – The game server build files were + // successfully extracted, and the Amazon GameLift is now running the build's + // install script (if one is included). Failure in this stage prevents a + // fleet from moving to ACTIVE status. Logs for this stage list the installation + // steps and whether or not the install completed successfully. Access the + // logs by using the URL in PreSignedLogUrl. + // + // * FLEET_CREATION_VALIDATING_RUNTIME_CONFIG -- The build process was successful, + // and the Amazon GameLift is now verifying that the game server launch paths, + // which are specified in the fleet's run-time configuration, exist. If any + // listed launch path exists, Amazon GameLift tries to launch a game server + // process and waits for the process to report ready. Failures in this stage + // prevent a fleet from moving to ACTIVE status. Logs for this stage list + // the launch paths in the run-time configuration and indicate whether each + // is found. Access the logs by using the URL in PreSignedLogUrl. + // + // * FLEET_STATE_VALIDATING -- Fleet status changed from DOWNLOADING to VALIDATING. + // + // * FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND -- Validation of the run-time + // configuration failed because the executable specified in a launch path + // does not exist on the instance. + // + // * FLEET_STATE_BUILDING -- Fleet status changed from VALIDATING to BUILDING. + // + // * FLEET_VALIDATION_EXECUTABLE_RUNTIME_FAILURE -- Validation of the run-time + // configuration failed because the executable specified in a launch path + // failed to run on the fleet instance. + // + // * FLEET_STATE_ACTIVATING -- Fleet status changed from BUILDING to ACTIVATING. + // + // + // * FLEET_ACTIVATION_FAILED - The fleet failed to successfully complete + // one of the steps in the fleet activation process. This event code indicates + // that the game build was successfully downloaded to a fleet instance, built, + // and validated, but was not able to start a server process. A possible + // reason for failure is that the game server is not reporting "process ready" + // to the Amazon GameLift service. + // + // * FLEET_STATE_ACTIVE -- The fleet's status changed from ACTIVATING to + // ACTIVE. The fleet is now ready to host game sessions. + // + // VPC peering events: + // + // * FLEET_VPC_PEERING_SUCCEEDED -- A VPC peering connection has been established + // between the VPC for an Amazon GameLift fleet and a VPC in your AWS account. + // + // * FLEET_VPC_PEERING_FAILED -- A requested VPC peering connection has failed. + // Event details and status information (see DescribeVpcPeeringConnections) + // provide additional detail. A common reason for peering failure is that + // the two VPCs have overlapping CIDR blocks of IPv4 addresses. To resolve + // this, change the CIDR block for the VPC in your AWS account. For more + // information on VPC peering failures, see http://docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/invalid-peering-configurations.html + // (http://docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/invalid-peering-configurations.html) + // + // * FLEET_VPC_PEERING_DELETED -- A VPC peering connection has been successfully + // deleted. + // + // Other fleet events: + // + // * FLEET_SCALING_EVENT -- A change was made to the fleet's capacity settings + // (desired instances, minimum/maximum scaling limits). Event messaging includes + // the new capacity settings. + // + // * FLEET_NEW_GAME_SESSION_PROTECTION_POLICY_UPDATED -- A change was made + // to the fleet's game session protection policy setting. Event messaging + // includes both the old and new policy setting. + // + // * FLEET_DELETED -- A request to delete a fleet was initiated. + EventCode *string `type:"string" enum:"EventCode"` + + // Unique identifier for a fleet event. + EventId *string `min:"1" type:"string"` + + // Time stamp indicating when this event occurred. Format is a number expressed + // in Unix time as milliseconds (for example "1469498468.057"). + EventTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // Additional information related to the event. + Message *string `min:"1" type:"string"` + + // Location of stored logs with additional detail that is related to the event. + // This is useful for debugging issues. The URL is valid for 15 minutes. You + // can also access fleet creation logs through the Amazon GameLift console. + PreSignedLogUrl *string `min:"1" type:"string"` + + // Unique identifier for an event resource, such as a fleet ID. + ResourceId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s Event) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Event) GoString() string { + return s.String() +} + +// SetEventCode sets the EventCode field's value. +func (s *Event) SetEventCode(v string) *Event { + s.EventCode = &v + return s +} + +// SetEventId sets the EventId field's value. +func (s *Event) SetEventId(v string) *Event { + s.EventId = &v + return s +} + +// SetEventTime sets the EventTime field's value. +func (s *Event) SetEventTime(v time.Time) *Event { + s.EventTime = &v + return s +} + +// SetMessage sets the Message field's value. +func (s *Event) SetMessage(v string) *Event { + s.Message = &v + return s +} + +// SetPreSignedLogUrl sets the PreSignedLogUrl field's value. +func (s *Event) SetPreSignedLogUrl(v string) *Event { + s.PreSignedLogUrl = &v + return s +} + +// SetResourceId sets the ResourceId field's value. +func (s *Event) SetResourceId(v string) *Event { + s.ResourceId = &v + return s +} + +// General properties describing a fleet. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/FleetAttributes +type FleetAttributes struct { + _ struct{} `type:"structure"` + + // Unique identifier for a build. + BuildId *string `type:"string"` + + // Time stamp indicating when this data object was created. Format is a number + // expressed in Unix time as milliseconds (for example "1469498468.057"). + CreationTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // Human-readable description of the fleet. + Description *string `min:"1" type:"string"` + + // Identifier for a fleet that is unique across all regions. + FleetArn *string `min:"1" type:"string"` + + // Unique identifier for a fleet. + FleetId *string `type:"string"` + + // Location of default log files. When a server process is shut down, Amazon + // GameLift captures and stores any log files in this location. These logs are + // in addition to game session logs; see more on game session logs in the Amazon + // GameLift Developer Guide (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-api-server-code). + // If no default log path for a fleet is specified, Amazon GameLift automatically + // uploads logs that are stored on each instance at C:\game\logs (for Windows) + // or /local/game/logs (for Linux). Use the Amazon GameLift console to access + // stored logs. + LogPaths []*string `type:"list"` + + // Names of metric groups that this fleet is included in. In Amazon CloudWatch, + // you can view metrics for an individual fleet or aggregated metrics for fleets + // that are in a fleet metric group. A fleet can be included in only one metric + // group at a time. + MetricGroups []*string `type:"list"` + + // Descriptive label that is associated with a fleet. Fleet names do not need + // to be unique. + Name *string `min:"1" type:"string"` + + // Type of game session protection to set for all new instances started in the + // fleet. + // + // * NoProtection -- The game session can be terminated during a scale-down + // event. + // + // * FullProtection -- If the game session is in an ACTIVE status, it cannot + // be terminated during a scale-down event. + NewGameSessionProtectionPolicy *string `type:"string" enum:"ProtectionPolicy"` + + // Operating system of the fleet's computing resources. A fleet's operating + // system depends on the OS specified for the build that is deployed on this + // fleet. + OperatingSystem *string `type:"string" enum:"OperatingSystem"` + + // Fleet policy to limit the number of game sessions an individual player can + // create over a span of time. + ResourceCreationLimitPolicy *ResourceCreationLimitPolicy `type:"structure"` + + // Game server launch parameters specified for fleets created before 2016-08-04 + // (or AWS SDK v. 0.12.16). Server launch parameters for fleets created after + // this date are specified in the fleet's RuntimeConfiguration. + ServerLaunchParameters *string `min:"1" type:"string"` + + // Path to a game server executable in the fleet's build, specified for fleets + // created before 2016-08-04 (or AWS SDK v. 0.12.16). Server launch paths for + // fleets created after this date are specified in the fleet's RuntimeConfiguration. + ServerLaunchPath *string `min:"1" type:"string"` + + // Current status of the fleet. + // + // Possible fleet statuses include the following: + // + // * NEW -- A new fleet has been defined and desired instances is set to + // 1. + // + // * DOWNLOADING/VALIDATING/BUILDING/ACTIVATING -- Amazon GameLift is setting + // up the new fleet, creating new instances with the game build and starting + // server processes. + // + // * ACTIVE -- Hosts can now accept game sessions. + // + // * ERROR -- An error occurred when downloading, validating, building, or + // activating the fleet. + // + // * DELETING -- Hosts are responding to a delete fleet request. + // + // * TERMINATED -- The fleet no longer exists. + Status *string `type:"string" enum:"FleetStatus"` + + // Time stamp indicating when this data object was terminated. Format is a number + // expressed in Unix time as milliseconds (for example "1469498468.057"). + TerminationTime *time.Time `type:"timestamp" timestampFormat:"unix"` +} + +// String returns the string representation +func (s FleetAttributes) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s FleetAttributes) GoString() string { + return s.String() +} + +// SetBuildId sets the BuildId field's value. +func (s *FleetAttributes) SetBuildId(v string) *FleetAttributes { + s.BuildId = &v + return s +} + +// SetCreationTime sets the CreationTime field's value. +func (s *FleetAttributes) SetCreationTime(v time.Time) *FleetAttributes { + s.CreationTime = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *FleetAttributes) SetDescription(v string) *FleetAttributes { + s.Description = &v + return s +} + +// SetFleetArn sets the FleetArn field's value. +func (s *FleetAttributes) SetFleetArn(v string) *FleetAttributes { + s.FleetArn = &v + return s +} + +// SetFleetId sets the FleetId field's value. +func (s *FleetAttributes) SetFleetId(v string) *FleetAttributes { + s.FleetId = &v + return s +} + +// SetLogPaths sets the LogPaths field's value. +func (s *FleetAttributes) SetLogPaths(v []*string) *FleetAttributes { + s.LogPaths = v + return s +} + +// SetMetricGroups sets the MetricGroups field's value. +func (s *FleetAttributes) SetMetricGroups(v []*string) *FleetAttributes { + s.MetricGroups = v + return s +} + +// SetName sets the Name field's value. +func (s *FleetAttributes) SetName(v string) *FleetAttributes { + s.Name = &v + return s +} + +// SetNewGameSessionProtectionPolicy sets the NewGameSessionProtectionPolicy field's value. +func (s *FleetAttributes) SetNewGameSessionProtectionPolicy(v string) *FleetAttributes { + s.NewGameSessionProtectionPolicy = &v + return s +} + +// SetOperatingSystem sets the OperatingSystem field's value. +func (s *FleetAttributes) SetOperatingSystem(v string) *FleetAttributes { + s.OperatingSystem = &v + return s +} + +// SetResourceCreationLimitPolicy sets the ResourceCreationLimitPolicy field's value. +func (s *FleetAttributes) SetResourceCreationLimitPolicy(v *ResourceCreationLimitPolicy) *FleetAttributes { + s.ResourceCreationLimitPolicy = v + return s +} + +// SetServerLaunchParameters sets the ServerLaunchParameters field's value. +func (s *FleetAttributes) SetServerLaunchParameters(v string) *FleetAttributes { + s.ServerLaunchParameters = &v + return s +} + +// SetServerLaunchPath sets the ServerLaunchPath field's value. +func (s *FleetAttributes) SetServerLaunchPath(v string) *FleetAttributes { + s.ServerLaunchPath = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *FleetAttributes) SetStatus(v string) *FleetAttributes { + s.Status = &v + return s +} + +// SetTerminationTime sets the TerminationTime field's value. +func (s *FleetAttributes) SetTerminationTime(v time.Time) *FleetAttributes { + s.TerminationTime = &v + return s +} + +// Information about the fleet's capacity. Fleet capacity is measured in EC2 +// instances. By default, new fleets have a capacity of one instance, but can +// be updated as needed. The maximum number of instances for a fleet is determined +// by the fleet's instance type. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/FleetCapacity +type FleetCapacity struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet. + FleetId *string `type:"string"` + + // Current status of fleet capacity. + InstanceCounts *EC2InstanceCounts `type:"structure"` + + // Name of an EC2 instance type that is supported in Amazon GameLift. A fleet + // instance type determines the computing resources of each instance in the + // fleet, including CPU, memory, storage, and networking capacity. Amazon GameLift + // supports the following EC2 instance types. See Amazon EC2 Instance Types + // (http://aws.amazon.com/ec2/instance-types/) for detailed descriptions. + InstanceType *string `type:"string" enum:"EC2InstanceType"` +} + +// String returns the string representation +func (s FleetCapacity) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s FleetCapacity) GoString() string { + return s.String() +} + +// SetFleetId sets the FleetId field's value. +func (s *FleetCapacity) SetFleetId(v string) *FleetCapacity { + s.FleetId = &v + return s +} + +// SetInstanceCounts sets the InstanceCounts field's value. +func (s *FleetCapacity) SetInstanceCounts(v *EC2InstanceCounts) *FleetCapacity { + s.InstanceCounts = v + return s +} + +// SetInstanceType sets the InstanceType field's value. +func (s *FleetCapacity) SetInstanceType(v string) *FleetCapacity { + s.InstanceType = &v + return s +} + +// Current status of fleet utilization, including the number of game and player +// sessions being hosted. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/FleetUtilization +type FleetUtilization struct { + _ struct{} `type:"structure"` + + // Number of active game sessions currently being hosted on all instances in + // the fleet. + ActiveGameSessionCount *int64 `type:"integer"` + + // Number of server processes in an ACTIVE status currently running across all + // instances in the fleet + ActiveServerProcessCount *int64 `type:"integer"` + + // Number of active player sessions currently being hosted on all instances + // in the fleet. + CurrentPlayerSessionCount *int64 `type:"integer"` + + // Unique identifier for a fleet. + FleetId *string `type:"string"` + + // Maximum players allowed across all game sessions currently being hosted on + // all instances in the fleet. + MaximumPlayerSessionCount *int64 `type:"integer"` +} + +// String returns the string representation +func (s FleetUtilization) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s FleetUtilization) GoString() string { + return s.String() +} + +// SetActiveGameSessionCount sets the ActiveGameSessionCount field's value. +func (s *FleetUtilization) SetActiveGameSessionCount(v int64) *FleetUtilization { + s.ActiveGameSessionCount = &v + return s +} + +// SetActiveServerProcessCount sets the ActiveServerProcessCount field's value. +func (s *FleetUtilization) SetActiveServerProcessCount(v int64) *FleetUtilization { + s.ActiveServerProcessCount = &v + return s +} + +// SetCurrentPlayerSessionCount sets the CurrentPlayerSessionCount field's value. +func (s *FleetUtilization) SetCurrentPlayerSessionCount(v int64) *FleetUtilization { + s.CurrentPlayerSessionCount = &v + return s +} + +// SetFleetId sets the FleetId field's value. +func (s *FleetUtilization) SetFleetId(v string) *FleetUtilization { + s.FleetId = &v + return s +} + +// SetMaximumPlayerSessionCount sets the MaximumPlayerSessionCount field's value. +func (s *FleetUtilization) SetMaximumPlayerSessionCount(v int64) *FleetUtilization { + s.MaximumPlayerSessionCount = &v + return s +} + +// Set of key-value pairs that contain information about a game session. When +// included in a game session request, these properties communicate details +// to be used when setting up the new game session, such as to specify a game +// mode, level, or map. Game properties are passed to the game server process +// when initiating a new game session; the server process uses the properties +// as appropriate. For more information, see the Amazon GameLift Developer +// Guide (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-client-api.html#gamelift-sdk-client-api-create). +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GameProperty +type GameProperty struct { + _ struct{} `type:"structure"` + + // Game property identifier. + // + // Key is a required field + Key *string `type:"string" required:"true"` + + // Game property value. + // + // Value is a required field + Value *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s GameProperty) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GameProperty) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GameProperty) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GameProperty"} + if s.Key == nil { + invalidParams.Add(request.NewErrParamRequired("Key")) + } + if s.Value == nil { + invalidParams.Add(request.NewErrParamRequired("Value")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetKey sets the Key field's value. +func (s *GameProperty) SetKey(v string) *GameProperty { + s.Key = &v + return s +} + +// SetValue sets the Value field's value. +func (s *GameProperty) SetValue(v string) *GameProperty { + s.Value = &v + return s +} + +// Properties describing a game session. +// +// A game session in ACTIVE status can host players. When a game session ends, +// its status is set to TERMINATED. +// +// Once the session ends, the game session object is retained for 30 days. This +// means you can reuse idempotency token values after this time. Game session +// logs are retained for 14 days. +// +// Game-session-related operations include: +// +// * CreateGameSession +// +// * DescribeGameSessions +// +// * DescribeGameSessionDetails +// +// * SearchGameSessions +// +// * UpdateGameSession +// +// * GetGameSessionLogUrl +// +// * Game session placements +// +// StartGameSessionPlacement +// +// DescribeGameSessionPlacement +// +// StopGameSessionPlacement +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GameSession +type GameSession struct { + _ struct{} `type:"structure"` + + // Time stamp indicating when this data object was created. Format is a number + // expressed in Unix time as milliseconds (for example "1469498468.057"). + CreationTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // Unique identifier for a player. This ID is used to enforce a resource protection + // policy (if one exists), that limits the number of game sessions a player + // can create. + CreatorId *string `min:"1" type:"string"` + + // Number of players currently in the game session. + CurrentPlayerSessionCount *int64 `type:"integer"` + + // Unique identifier for a fleet that the game session is running on. + FleetId *string `type:"string"` + + // Set of developer-defined properties for a game session, formatted as a set + // of type:value pairs. These properties are included in the GameSession object, + // which is passed to the game server with a request to start a new game session + // (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + GameProperties []*GameProperty `type:"list"` + + // Set of developer-defined game session properties, formatted as a single string + // value. This data is included in the GameSession object, which is passed to + // the game server with a request to start a new game session (see Start a Game + // Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + GameSessionData *string `min:"1" type:"string"` + + // Unique identifier for the game session. A game session ARN has the following + // format: arn:aws:gamelift:::gamesession//. + GameSessionId *string `min:"1" type:"string"` + + // IP address of the game session. To connect to a Amazon GameLift game server, + // an app needs both the IP address and port number. + IpAddress *string `type:"string"` + + // Maximum number of players that can be connected simultaneously to the game + // session. + MaximumPlayerSessionCount *int64 `type:"integer"` + + // Descriptive label that is associated with a game session. Session names do + // not need to be unique. + Name *string `min:"1" type:"string"` + + // Indicates whether or not the game session is accepting new players. + PlayerSessionCreationPolicy *string `type:"string" enum:"PlayerSessionCreationPolicy"` + + // Port number for the game session. To connect to a Amazon GameLift game server, + // an app needs both the IP address and port number. + Port *int64 `min:"1" type:"integer"` + + // Current status of the game session. A game session must have an ACTIVE status + // to have player sessions. + Status *string `type:"string" enum:"GameSessionStatus"` + + // Time stamp indicating when this data object was terminated. Format is a number + // expressed in Unix time as milliseconds (for example "1469498468.057"). + TerminationTime *time.Time `type:"timestamp" timestampFormat:"unix"` +} + +// String returns the string representation +func (s GameSession) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GameSession) GoString() string { + return s.String() +} + +// SetCreationTime sets the CreationTime field's value. +func (s *GameSession) SetCreationTime(v time.Time) *GameSession { + s.CreationTime = &v + return s +} + +// SetCreatorId sets the CreatorId field's value. +func (s *GameSession) SetCreatorId(v string) *GameSession { + s.CreatorId = &v + return s +} + +// SetCurrentPlayerSessionCount sets the CurrentPlayerSessionCount field's value. +func (s *GameSession) SetCurrentPlayerSessionCount(v int64) *GameSession { + s.CurrentPlayerSessionCount = &v + return s +} + +// SetFleetId sets the FleetId field's value. +func (s *GameSession) SetFleetId(v string) *GameSession { + s.FleetId = &v + return s +} + +// SetGameProperties sets the GameProperties field's value. +func (s *GameSession) SetGameProperties(v []*GameProperty) *GameSession { + s.GameProperties = v + return s +} + +// SetGameSessionData sets the GameSessionData field's value. +func (s *GameSession) SetGameSessionData(v string) *GameSession { + s.GameSessionData = &v + return s +} + +// SetGameSessionId sets the GameSessionId field's value. +func (s *GameSession) SetGameSessionId(v string) *GameSession { + s.GameSessionId = &v + return s +} + +// SetIpAddress sets the IpAddress field's value. +func (s *GameSession) SetIpAddress(v string) *GameSession { + s.IpAddress = &v + return s +} + +// SetMaximumPlayerSessionCount sets the MaximumPlayerSessionCount field's value. +func (s *GameSession) SetMaximumPlayerSessionCount(v int64) *GameSession { + s.MaximumPlayerSessionCount = &v + return s +} + +// SetName sets the Name field's value. +func (s *GameSession) SetName(v string) *GameSession { + s.Name = &v + return s +} + +// SetPlayerSessionCreationPolicy sets the PlayerSessionCreationPolicy field's value. +func (s *GameSession) SetPlayerSessionCreationPolicy(v string) *GameSession { + s.PlayerSessionCreationPolicy = &v + return s +} + +// SetPort sets the Port field's value. +func (s *GameSession) SetPort(v int64) *GameSession { + s.Port = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *GameSession) SetStatus(v string) *GameSession { + s.Status = &v + return s +} + +// SetTerminationTime sets the TerminationTime field's value. +func (s *GameSession) SetTerminationTime(v time.Time) *GameSession { + s.TerminationTime = &v + return s +} + +// Connection information for the new game session that is created with matchmaking. +// (with StartMatchmaking). Once a match is set, the FlexMatch engine places +// the match and creates a new game session for it. This information, including +// the game session endpoint and player sessions for each player in the original +// matchmaking request, is added to the MatchmakingTicket, which can be retrieved +// by calling DescribeMatchmaking. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GameSessionConnectionInfo +type GameSessionConnectionInfo struct { + _ struct{} `type:"structure"` + + // Amazon Resource Name (ARN (http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)) + // that is assigned to a game session and uniquely identifies it. + GameSessionArn *string `min:"1" type:"string"` + + // IP address of the game session. To connect to a Amazon GameLift game server, + // an app needs both the IP address and port number. + IpAddress *string `type:"string"` + + // Collection of player session IDs, one for each player ID that was included + // in the original matchmaking request. + MatchedPlayerSessions []*MatchedPlayerSession `type:"list"` + + // Port number for the game session. To connect to a Amazon GameLift game server, + // an app needs both the IP address and port number. + Port *int64 `min:"1" type:"integer"` +} + +// String returns the string representation +func (s GameSessionConnectionInfo) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GameSessionConnectionInfo) GoString() string { + return s.String() +} + +// SetGameSessionArn sets the GameSessionArn field's value. +func (s *GameSessionConnectionInfo) SetGameSessionArn(v string) *GameSessionConnectionInfo { + s.GameSessionArn = &v + return s +} + +// SetIpAddress sets the IpAddress field's value. +func (s *GameSessionConnectionInfo) SetIpAddress(v string) *GameSessionConnectionInfo { + s.IpAddress = &v + return s +} + +// SetMatchedPlayerSessions sets the MatchedPlayerSessions field's value. +func (s *GameSessionConnectionInfo) SetMatchedPlayerSessions(v []*MatchedPlayerSession) *GameSessionConnectionInfo { + s.MatchedPlayerSessions = v + return s +} + +// SetPort sets the Port field's value. +func (s *GameSessionConnectionInfo) SetPort(v int64) *GameSessionConnectionInfo { + s.Port = &v + return s +} + +// A game session's properties plus the protection policy currently in force. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GameSessionDetail +type GameSessionDetail struct { + _ struct{} `type:"structure"` + + // Object that describes a game session. + GameSession *GameSession `type:"structure"` + + // Current status of protection for the game session. + // + // * NoProtection -- The game session can be terminated during a scale-down + // event. + // + // * FullProtection -- If the game session is in an ACTIVE status, it cannot + // be terminated during a scale-down event. + ProtectionPolicy *string `type:"string" enum:"ProtectionPolicy"` +} + +// String returns the string representation +func (s GameSessionDetail) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GameSessionDetail) GoString() string { + return s.String() +} + +// SetGameSession sets the GameSession field's value. +func (s *GameSessionDetail) SetGameSession(v *GameSession) *GameSessionDetail { + s.GameSession = v + return s +} + +// SetProtectionPolicy sets the ProtectionPolicy field's value. +func (s *GameSessionDetail) SetProtectionPolicy(v string) *GameSessionDetail { + s.ProtectionPolicy = &v + return s +} + +// Object that describes a StartGameSessionPlacement request. This object includes +// the full details of the original request plus the current status and start/end +// time stamps. +// +// Game session placement-related operations include: +// +// * StartGameSessionPlacement +// +// * DescribeGameSessionPlacement +// +// * StopGameSessionPlacement +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GameSessionPlacement +type GameSessionPlacement struct { + _ struct{} `type:"structure"` + + // Time stamp indicating when this request was completed, canceled, or timed + // out. + EndTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // Set of developer-defined properties for a game session, formatted as a set + // of type:value pairs. These properties are included in the GameSession object, + // which is passed to the game server with a request to start a new game session + // (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + GameProperties []*GameProperty `type:"list"` + + // Identifier for the game session created by this placement request. This value + // is set once the new game session is placed (placement status is FULFILLED). + // This identifier is unique across all regions. You can use this value as a + // GameSessionId value as needed. + GameSessionArn *string `min:"1" type:"string"` + + // Set of developer-defined game session properties, formatted as a single string + // value. This data is included in the GameSession object, which is passed to + // the game server with a request to start a new game session (see Start a Game + // Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + GameSessionData *string `min:"1" type:"string"` + + // Unique identifier for the game session. This value is set once the new game + // session is placed (placement status is FULFILLED). + GameSessionId *string `min:"1" type:"string"` + + // Descriptive label that is associated with a game session. Session names do + // not need to be unique. + GameSessionName *string `min:"1" type:"string"` + + // Descriptive label that is associated with game session queue. Queue names + // must be unique within each region. + GameSessionQueueName *string `min:"1" type:"string"` + + // Name of the region where the game session created by this placement request + // is running. This value is set once the new game session is placed (placement + // status is FULFILLED). + GameSessionRegion *string `min:"1" type:"string"` + + // IP address of the game session. To connect to a Amazon GameLift game server, + // an app needs both the IP address and port number. This value is set once + // the new game session is placed (placement status is FULFILLED). + IpAddress *string `type:"string"` + + // Maximum number of players that can be connected simultaneously to the game + // session. + MaximumPlayerSessionCount *int64 `type:"integer"` + + // Collection of information on player sessions created in response to the game + // session placement request. These player sessions are created only once a + // new game session is successfully placed (placement status is FULFILLED). + // This information includes the player ID (as provided in the placement request) + // and the corresponding player session ID. Retrieve full player sessions by + // calling DescribePlayerSessions with the player session ID. + PlacedPlayerSessions []*PlacedPlayerSession `type:"list"` + + // Unique identifier for a game session placement. + PlacementId *string `min:"1" type:"string"` + + // Set of values, expressed in milliseconds, indicating the amount of latency + // that a player experiences when connected to AWS regions. + PlayerLatencies []*PlayerLatency `type:"list"` + + // Port number for the game session. To connect to a Amazon GameLift game server, + // an app needs both the IP address and port number. This value is set once + // the new game session is placed (placement status is FULFILLED). + Port *int64 `min:"1" type:"integer"` + + // Time stamp indicating when this request was placed in the queue. Format is + // a number expressed in Unix time as milliseconds (for example "1469498468.057"). + StartTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // Current status of the game session placement request. + // + // * PENDING -- The placement request is currently in the queue waiting to + // be processed. + // + // * FULFILLED -- A new game session and player sessions (if requested) have + // been successfully created. Values for GameSessionArn and GameSessionRegion + // are available. + // + // * CANCELLED -- The placement request was canceled with a call to StopGameSessionPlacement. + // + // * TIMED_OUT -- A new game session was not successfully created before + // the time limit expired. You can resubmit the placement request as needed. + Status *string `type:"string" enum:"GameSessionPlacementState"` +} + +// String returns the string representation +func (s GameSessionPlacement) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GameSessionPlacement) GoString() string { + return s.String() +} + +// SetEndTime sets the EndTime field's value. +func (s *GameSessionPlacement) SetEndTime(v time.Time) *GameSessionPlacement { + s.EndTime = &v + return s +} + +// SetGameProperties sets the GameProperties field's value. +func (s *GameSessionPlacement) SetGameProperties(v []*GameProperty) *GameSessionPlacement { + s.GameProperties = v + return s +} + +// SetGameSessionArn sets the GameSessionArn field's value. +func (s *GameSessionPlacement) SetGameSessionArn(v string) *GameSessionPlacement { + s.GameSessionArn = &v + return s +} + +// SetGameSessionData sets the GameSessionData field's value. +func (s *GameSessionPlacement) SetGameSessionData(v string) *GameSessionPlacement { + s.GameSessionData = &v + return s +} + +// SetGameSessionId sets the GameSessionId field's value. +func (s *GameSessionPlacement) SetGameSessionId(v string) *GameSessionPlacement { + s.GameSessionId = &v + return s +} + +// SetGameSessionName sets the GameSessionName field's value. +func (s *GameSessionPlacement) SetGameSessionName(v string) *GameSessionPlacement { + s.GameSessionName = &v + return s +} + +// SetGameSessionQueueName sets the GameSessionQueueName field's value. +func (s *GameSessionPlacement) SetGameSessionQueueName(v string) *GameSessionPlacement { + s.GameSessionQueueName = &v + return s +} + +// SetGameSessionRegion sets the GameSessionRegion field's value. +func (s *GameSessionPlacement) SetGameSessionRegion(v string) *GameSessionPlacement { + s.GameSessionRegion = &v + return s +} + +// SetIpAddress sets the IpAddress field's value. +func (s *GameSessionPlacement) SetIpAddress(v string) *GameSessionPlacement { + s.IpAddress = &v + return s +} + +// SetMaximumPlayerSessionCount sets the MaximumPlayerSessionCount field's value. +func (s *GameSessionPlacement) SetMaximumPlayerSessionCount(v int64) *GameSessionPlacement { + s.MaximumPlayerSessionCount = &v + return s +} + +// SetPlacedPlayerSessions sets the PlacedPlayerSessions field's value. +func (s *GameSessionPlacement) SetPlacedPlayerSessions(v []*PlacedPlayerSession) *GameSessionPlacement { + s.PlacedPlayerSessions = v + return s +} + +// SetPlacementId sets the PlacementId field's value. +func (s *GameSessionPlacement) SetPlacementId(v string) *GameSessionPlacement { + s.PlacementId = &v + return s +} + +// SetPlayerLatencies sets the PlayerLatencies field's value. +func (s *GameSessionPlacement) SetPlayerLatencies(v []*PlayerLatency) *GameSessionPlacement { + s.PlayerLatencies = v + return s +} + +// SetPort sets the Port field's value. +func (s *GameSessionPlacement) SetPort(v int64) *GameSessionPlacement { + s.Port = &v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *GameSessionPlacement) SetStartTime(v time.Time) *GameSessionPlacement { + s.StartTime = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *GameSessionPlacement) SetStatus(v string) *GameSessionPlacement { + s.Status = &v + return s +} + +// Configuration of a queue that is used to process game session placement requests. +// The queue configuration identifies several game features: +// +// * The destinations where a new game session can potentially be hosted. +// Amazon GameLift tries these destinations in an order based on either the +// queue's default order or player latency information, if provided in a +// placement request. With latency information, Amazon GameLift can place +// game sessions where the majority of players are reporting the lowest possible +// latency. +// +// * The length of time that placement requests can wait in the queue before +// timing out. +// +// * A set of optional latency policies that protect individual players from +// high latencies, preventing game sessions from being placed where any individual +// player is reporting latency higher than a policy's maximum. +// +// Queue-related operations include: +// +// * CreateGameSessionQueue +// +// * DescribeGameSessionQueues +// +// * UpdateGameSessionQueue +// +// * DeleteGameSessionQueue +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GameSessionQueue +type GameSessionQueue struct { + _ struct{} `type:"structure"` + + // List of fleets that can be used to fulfill game session placement requests + // in the queue. Fleets are identified by either a fleet ARN or a fleet alias + // ARN. Destinations are listed in default preference order. + Destinations []*GameSessionQueueDestination `type:"list"` + + // Amazon Resource Name (ARN (http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)) + // that is assigned to a game session queue and uniquely identifies it. Format + // is arn:aws:gamelift:::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912. + GameSessionQueueArn *string `min:"1" type:"string"` + + // Descriptive label that is associated with game session queue. Queue names + // must be unique within each region. + Name *string `min:"1" type:"string"` + + // Collection of latency policies to apply when processing game sessions placement + // requests with player latency information. Multiple policies are evaluated + // in order of the maximum latency value, starting with the lowest latency values. + // With just one policy, it is enforced at the start of the game session placement + // for the duration period. With multiple policies, each policy is enforced + // consecutively for its duration period. For example, a queue might enforce + // a 60-second policy followed by a 120-second policy, and then no policy for + // the remainder of the placement. + PlayerLatencyPolicies []*PlayerLatencyPolicy `type:"list"` + + // Maximum time, in seconds, that a new game session placement request remains + // in the queue. When a request exceeds this time, the game session placement + // changes to a TIMED_OUT status. + TimeoutInSeconds *int64 `type:"integer"` +} + +// String returns the string representation +func (s GameSessionQueue) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GameSessionQueue) GoString() string { + return s.String() +} + +// SetDestinations sets the Destinations field's value. +func (s *GameSessionQueue) SetDestinations(v []*GameSessionQueueDestination) *GameSessionQueue { + s.Destinations = v + return s +} + +// SetGameSessionQueueArn sets the GameSessionQueueArn field's value. +func (s *GameSessionQueue) SetGameSessionQueueArn(v string) *GameSessionQueue { + s.GameSessionQueueArn = &v + return s +} + +// SetName sets the Name field's value. +func (s *GameSessionQueue) SetName(v string) *GameSessionQueue { + s.Name = &v + return s +} + +// SetPlayerLatencyPolicies sets the PlayerLatencyPolicies field's value. +func (s *GameSessionQueue) SetPlayerLatencyPolicies(v []*PlayerLatencyPolicy) *GameSessionQueue { + s.PlayerLatencyPolicies = v + return s +} + +// SetTimeoutInSeconds sets the TimeoutInSeconds field's value. +func (s *GameSessionQueue) SetTimeoutInSeconds(v int64) *GameSessionQueue { + s.TimeoutInSeconds = &v + return s +} + +// Fleet designated in a game session queue. Requests for new game sessions +// in the queue are fulfilled by starting a new game session on any destination +// configured for a queue. +// +// Queue-related operations include: +// +// * CreateGameSessionQueue +// +// * DescribeGameSessionQueues +// +// * UpdateGameSessionQueue +// +// * DeleteGameSessionQueue +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GameSessionQueueDestination +type GameSessionQueueDestination struct { + _ struct{} `type:"structure"` + + // Amazon Resource Name (ARN) assigned to fleet or fleet alias. ARNs, which + // include a fleet ID or alias ID and a region name, provide a unique identifier + // across all regions. + DestinationArn *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s GameSessionQueueDestination) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GameSessionQueueDestination) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GameSessionQueueDestination) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GameSessionQueueDestination"} + if s.DestinationArn != nil && len(*s.DestinationArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("DestinationArn", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDestinationArn sets the DestinationArn field's value. +func (s *GameSessionQueueDestination) SetDestinationArn(v string) *GameSessionQueueDestination { + s.DestinationArn = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GetGameSessionLogUrlInput +type GetGameSessionLogUrlInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for the game session to get logs for. + // + // GameSessionId is a required field + GameSessionId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetGameSessionLogUrlInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetGameSessionLogUrlInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetGameSessionLogUrlInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetGameSessionLogUrlInput"} + if s.GameSessionId == nil { + invalidParams.Add(request.NewErrParamRequired("GameSessionId")) + } + if s.GameSessionId != nil && len(*s.GameSessionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GameSessionId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetGameSessionId sets the GameSessionId field's value. +func (s *GetGameSessionLogUrlInput) SetGameSessionId(v string) *GetGameSessionLogUrlInput { + s.GameSessionId = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GetGameSessionLogUrlOutput +type GetGameSessionLogUrlOutput struct { + _ struct{} `type:"structure"` + + // Location of the requested game session logs, available for download. + PreSignedUrl *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s GetGameSessionLogUrlOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetGameSessionLogUrlOutput) GoString() string { + return s.String() +} + +// SetPreSignedUrl sets the PreSignedUrl field's value. +func (s *GetGameSessionLogUrlOutput) SetPreSignedUrl(v string) *GetGameSessionLogUrlOutput { + s.PreSignedUrl = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GetInstanceAccessInput +type GetInstanceAccessInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet that contains the instance you want access + // to. The fleet can be in any of the following statuses: ACTIVATING, ACTIVE, + // or ERROR. Fleets with an ERROR status may be accessible for a short time + // before they are deleted. + // + // FleetId is a required field + FleetId *string `type:"string" required:"true"` + + // Unique identifier for an instance you want to get access to. You can access + // an instance in any status. + // + // InstanceId is a required field + InstanceId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s GetInstanceAccessInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetInstanceAccessInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetInstanceAccessInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetInstanceAccessInput"} + if s.FleetId == nil { + invalidParams.Add(request.NewErrParamRequired("FleetId")) + } + if s.InstanceId == nil { + invalidParams.Add(request.NewErrParamRequired("InstanceId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFleetId sets the FleetId field's value. +func (s *GetInstanceAccessInput) SetFleetId(v string) *GetInstanceAccessInput { + s.FleetId = &v + return s +} + +// SetInstanceId sets the InstanceId field's value. +func (s *GetInstanceAccessInput) SetInstanceId(v string) *GetInstanceAccessInput { + s.InstanceId = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GetInstanceAccessOutput +type GetInstanceAccessOutput struct { + _ struct{} `type:"structure"` + + // Object that contains connection information for a fleet instance, including + // IP address and access credentials. + InstanceAccess *InstanceAccess `type:"structure"` +} + +// String returns the string representation +func (s GetInstanceAccessOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetInstanceAccessOutput) GoString() string { + return s.String() +} + +// SetInstanceAccess sets the InstanceAccess field's value. +func (s *GetInstanceAccessOutput) SetInstanceAccess(v *InstanceAccess) *GetInstanceAccessOutput { + s.InstanceAccess = v + return s +} + +// Properties that describe an instance of a virtual computing resource that +// hosts one or more game servers. A fleet may contain zero or more instances. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/Instance +type Instance struct { + _ struct{} `type:"structure"` + + // Time stamp indicating when this data object was created. Format is a number + // expressed in Unix time as milliseconds (for example "1469498468.057"). + CreationTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // Unique identifier for a fleet that the instance is in. + FleetId *string `type:"string"` + + // Unique identifier for an instance. + InstanceId *string `type:"string"` + + // IP address assigned to the instance. + IpAddress *string `type:"string"` + + // Operating system that is running on this instance. + OperatingSystem *string `type:"string" enum:"OperatingSystem"` + + // Current status of the instance. Possible statuses include the following: + // + // * PENDING -- The instance is in the process of being created and launching + // server processes as defined in the fleet's run-time configuration. + // + // * ACTIVE -- The instance has been successfully created and at least one + // server process has successfully launched and reported back to Amazon GameLift + // that it is ready to host a game session. The instance is now considered + // ready to host game sessions. + // + // * TERMINATING -- The instance is in the process of shutting down. This + // may happen to reduce capacity during a scaling down event or to recycle + // resources in the event of a problem. + Status *string `type:"string" enum:"InstanceStatus"` + + // EC2 instance type that defines the computing resources of this instance. + Type *string `type:"string" enum:"EC2InstanceType"` +} + +// String returns the string representation +func (s Instance) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Instance) GoString() string { + return s.String() +} + +// SetCreationTime sets the CreationTime field's value. +func (s *Instance) SetCreationTime(v time.Time) *Instance { + s.CreationTime = &v + return s +} + +// SetFleetId sets the FleetId field's value. +func (s *Instance) SetFleetId(v string) *Instance { + s.FleetId = &v + return s +} + +// SetInstanceId sets the InstanceId field's value. +func (s *Instance) SetInstanceId(v string) *Instance { + s.InstanceId = &v + return s +} + +// SetIpAddress sets the IpAddress field's value. +func (s *Instance) SetIpAddress(v string) *Instance { + s.IpAddress = &v + return s +} + +// SetOperatingSystem sets the OperatingSystem field's value. +func (s *Instance) SetOperatingSystem(v string) *Instance { + s.OperatingSystem = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *Instance) SetStatus(v string) *Instance { + s.Status = &v + return s +} + +// SetType sets the Type field's value. +func (s *Instance) SetType(v string) *Instance { + s.Type = &v + return s +} + +// Information required to remotely connect to a fleet instance. Access is requested +// by calling GetInstanceAccess. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/InstanceAccess +type InstanceAccess struct { + _ struct{} `type:"structure"` + + // Credentials required to access the instance. + Credentials *InstanceCredentials `type:"structure"` + + // Unique identifier for a fleet containing the instance being accessed. + FleetId *string `type:"string"` + + // Unique identifier for an instance being accessed. + InstanceId *string `type:"string"` + + // IP address assigned to the instance. + IpAddress *string `type:"string"` + + // Operating system that is running on the instance. + OperatingSystem *string `type:"string" enum:"OperatingSystem"` +} + +// String returns the string representation +func (s InstanceAccess) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s InstanceAccess) GoString() string { + return s.String() +} + +// SetCredentials sets the Credentials field's value. +func (s *InstanceAccess) SetCredentials(v *InstanceCredentials) *InstanceAccess { + s.Credentials = v + return s +} + +// SetFleetId sets the FleetId field's value. +func (s *InstanceAccess) SetFleetId(v string) *InstanceAccess { + s.FleetId = &v + return s +} + +// SetInstanceId sets the InstanceId field's value. +func (s *InstanceAccess) SetInstanceId(v string) *InstanceAccess { + s.InstanceId = &v + return s +} + +// SetIpAddress sets the IpAddress field's value. +func (s *InstanceAccess) SetIpAddress(v string) *InstanceAccess { + s.IpAddress = &v + return s +} + +// SetOperatingSystem sets the OperatingSystem field's value. +func (s *InstanceAccess) SetOperatingSystem(v string) *InstanceAccess { + s.OperatingSystem = &v + return s +} + +// Set of credentials required to remotely access a fleet instance. Access credentials +// are requested by calling GetInstanceAccess and returned in an InstanceAccess +// object. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/InstanceCredentials +type InstanceCredentials struct { + _ struct{} `type:"structure"` + + // Secret string. For Windows instances, the secret is a password for use with + // Windows Remote Desktop. For Linux instances, it is a private key (which must + // be saved as a .pem file) for use with SSH. + Secret *string `min:"1" type:"string"` + + // User login string. + UserName *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s InstanceCredentials) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s InstanceCredentials) GoString() string { + return s.String() +} + +// SetSecret sets the Secret field's value. +func (s *InstanceCredentials) SetSecret(v string) *InstanceCredentials { + s.Secret = &v + return s +} + +// SetUserName sets the UserName field's value. +func (s *InstanceCredentials) SetUserName(v string) *InstanceCredentials { + s.UserName = &v + return s +} + +// A range of IP addresses and port settings that allow inbound traffic to connect +// to server processes on Amazon GameLift. Each game session hosted on a fleet +// is assigned a unique combination of IP address and port number, which must +// fall into the fleet's allowed ranges. This combination is included in the +// GameSession object. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/IpPermission +type IpPermission struct { + _ struct{} `type:"structure"` + + // Starting value for a range of allowed port numbers. + // + // FromPort is a required field + FromPort *int64 `min:"1" type:"integer" required:"true"` + + // Range of allowed IP addresses. This value must be expressed in CIDR notation. + // Example: "000.000.000.000/[subnet mask]" or optionally the shortened version + // "0.0.0.0/[subnet mask]". + // + // IpRange is a required field + IpRange *string `type:"string" required:"true"` + + // Network communication protocol used by the fleet. + // + // Protocol is a required field + Protocol *string `type:"string" required:"true" enum:"IpProtocol"` + + // Ending value for a range of allowed port numbers. Port numbers are end-inclusive. + // This value must be higher than FromPort. + // + // ToPort is a required field + ToPort *int64 `min:"1" type:"integer" required:"true"` +} + +// String returns the string representation +func (s IpPermission) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s IpPermission) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *IpPermission) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "IpPermission"} + if s.FromPort == nil { + invalidParams.Add(request.NewErrParamRequired("FromPort")) + } + if s.FromPort != nil && *s.FromPort < 1 { + invalidParams.Add(request.NewErrParamMinValue("FromPort", 1)) + } + if s.IpRange == nil { + invalidParams.Add(request.NewErrParamRequired("IpRange")) + } + if s.Protocol == nil { + invalidParams.Add(request.NewErrParamRequired("Protocol")) + } + if s.ToPort == nil { + invalidParams.Add(request.NewErrParamRequired("ToPort")) + } + if s.ToPort != nil && *s.ToPort < 1 { + invalidParams.Add(request.NewErrParamMinValue("ToPort", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFromPort sets the FromPort field's value. +func (s *IpPermission) SetFromPort(v int64) *IpPermission { + s.FromPort = &v + return s +} + +// SetIpRange sets the IpRange field's value. +func (s *IpPermission) SetIpRange(v string) *IpPermission { + s.IpRange = &v + return s +} + +// SetProtocol sets the Protocol field's value. +func (s *IpPermission) SetProtocol(v string) *IpPermission { + s.Protocol = &v + return s +} + +// SetToPort sets the ToPort field's value. +func (s *IpPermission) SetToPort(v int64) *IpPermission { + s.ToPort = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ListAliasesInput +type ListAliasesInput struct { + _ struct{} `type:"structure"` + + // Maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. + Limit *int64 `min:"1" type:"integer"` + + // Descriptive label that is associated with an alias. Alias names do not need + // to be unique. + Name *string `min:"1" type:"string"` + + // Token that indicates the start of the next sequential page of results. Use + // the token that is returned with a previous call to this action. To start + // at the beginning of the result set, do not specify a value. + NextToken *string `min:"1" type:"string"` + + // Type of routing to filter results on. Use this parameter to retrieve only + // aliases of a certain type. To retrieve all aliases, leave this parameter + // empty. + // + // Possible routing types include the following: + // + // * SIMPLE -- The alias resolves to one specific fleet. Use this type when + // routing to active fleets. + // + // * TERMINAL -- The alias does not resolve to a fleet but instead can be + // used to display a message to the user. A terminal alias throws a TerminalRoutingStrategyException + // with the RoutingStrategy message embedded. + RoutingStrategyType *string `type:"string" enum:"RoutingStrategyType"` +} + +// String returns the string representation +func (s ListAliasesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListAliasesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListAliasesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListAliasesInput"} + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLimit sets the Limit field's value. +func (s *ListAliasesInput) SetLimit(v int64) *ListAliasesInput { + s.Limit = &v + return s +} + +// SetName sets the Name field's value. +func (s *ListAliasesInput) SetName(v string) *ListAliasesInput { + s.Name = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAliasesInput) SetNextToken(v string) *ListAliasesInput { + s.NextToken = &v + return s +} + +// SetRoutingStrategyType sets the RoutingStrategyType field's value. +func (s *ListAliasesInput) SetRoutingStrategyType(v string) *ListAliasesInput { + s.RoutingStrategyType = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ListAliasesOutput +type ListAliasesOutput struct { + _ struct{} `type:"structure"` + + // Collection of alias records that match the list request. + Aliases []*Alias `type:"list"` + + // Token that indicates where to resume retrieving results on the next call + // to this action. If no token is returned, these results represent the end + // of the list. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListAliasesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListAliasesOutput) GoString() string { + return s.String() +} + +// SetAliases sets the Aliases field's value. +func (s *ListAliasesOutput) SetAliases(v []*Alias) *ListAliasesOutput { + s.Aliases = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListAliasesOutput) SetNextToken(v string) *ListAliasesOutput { + s.NextToken = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ListBuildsInput +type ListBuildsInput struct { + _ struct{} `type:"structure"` + + // Maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. + Limit *int64 `min:"1" type:"integer"` + + // Token that indicates the start of the next sequential page of results. Use + // the token that is returned with a previous call to this action. To start + // at the beginning of the result set, do not specify a value. + NextToken *string `min:"1" type:"string"` + + // Build status to filter results by. To retrieve all builds, leave this parameter + // empty. + // + // Possible build statuses include the following: + // + // * INITIALIZED -- A new build has been defined, but no files have been + // uploaded. You cannot create fleets for builds that are in this status. + // When a build is successfully created, the build status is set to this + // value. + // + // * READY -- The game build has been successfully uploaded. You can now + // create new fleets for this build. + // + // * FAILED -- The game build upload failed. You cannot create new fleets + // for this build. + Status *string `type:"string" enum:"BuildStatus"` +} + +// String returns the string representation +func (s ListBuildsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListBuildsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListBuildsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListBuildsInput"} + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLimit sets the Limit field's value. +func (s *ListBuildsInput) SetLimit(v int64) *ListBuildsInput { + s.Limit = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListBuildsInput) SetNextToken(v string) *ListBuildsInput { + s.NextToken = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *ListBuildsInput) SetStatus(v string) *ListBuildsInput { + s.Status = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ListBuildsOutput +type ListBuildsOutput struct { + _ struct{} `type:"structure"` + + // Collection of build records that match the request. + Builds []*Build `type:"list"` + + // Token that indicates where to resume retrieving results on the next call + // to this action. If no token is returned, these results represent the end + // of the list. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListBuildsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListBuildsOutput) GoString() string { + return s.String() +} + +// SetBuilds sets the Builds field's value. +func (s *ListBuildsOutput) SetBuilds(v []*Build) *ListBuildsOutput { + s.Builds = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListBuildsOutput) SetNextToken(v string) *ListBuildsOutput { + s.NextToken = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ListFleetsInput +type ListFleetsInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a build to return fleets for. Use this parameter to + // return only fleets using the specified build. To retrieve all fleets, leave + // this parameter empty. + BuildId *string `type:"string"` + + // Maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. + Limit *int64 `min:"1" type:"integer"` + + // Token that indicates the start of the next sequential page of results. Use + // the token that is returned with a previous call to this action. To start + // at the beginning of the result set, do not specify a value. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListFleetsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListFleetsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListFleetsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListFleetsInput"} + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBuildId sets the BuildId field's value. +func (s *ListFleetsInput) SetBuildId(v string) *ListFleetsInput { + s.BuildId = &v + return s +} + +// SetLimit sets the Limit field's value. +func (s *ListFleetsInput) SetLimit(v int64) *ListFleetsInput { + s.Limit = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListFleetsInput) SetNextToken(v string) *ListFleetsInput { + s.NextToken = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ListFleetsOutput +type ListFleetsOutput struct { + _ struct{} `type:"structure"` + + // Set of fleet IDs matching the list request. You can retrieve additional information + // about all returned fleets by passing this result set to a call to DescribeFleetAttributes, + // DescribeFleetCapacity, or DescribeFleetUtilization. + FleetIds []*string `min:"1" type:"list"` + + // Token that indicates where to resume retrieving results on the next call + // to this action. If no token is returned, these results represent the end + // of the list. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListFleetsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListFleetsOutput) GoString() string { + return s.String() +} + +// SetFleetIds sets the FleetIds field's value. +func (s *ListFleetsOutput) SetFleetIds(v []*string) *ListFleetsOutput { + s.FleetIds = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListFleetsOutput) SetNextToken(v string) *ListFleetsOutput { + s.NextToken = &v + return s +} + +// Represents a new player session that is created as a result of a successful +// FlexMatch match. A successful match automatically creates new player sessions +// for every player ID in the original matchmaking request. +// +// When players connect to the match's game session, they must include both +// player ID and player session ID in order to claim their assigned player slot. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/MatchedPlayerSession +type MatchedPlayerSession struct { + _ struct{} `type:"structure"` + + // Unique identifier for a player + PlayerId *string `min:"1" type:"string"` + + // Unique identifier for a player session + PlayerSessionId *string `type:"string"` +} + +// String returns the string representation +func (s MatchedPlayerSession) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s MatchedPlayerSession) GoString() string { + return s.String() +} + +// SetPlayerId sets the PlayerId field's value. +func (s *MatchedPlayerSession) SetPlayerId(v string) *MatchedPlayerSession { + s.PlayerId = &v + return s +} + +// SetPlayerSessionId sets the PlayerSessionId field's value. +func (s *MatchedPlayerSession) SetPlayerSessionId(v string) *MatchedPlayerSession { + s.PlayerSessionId = &v + return s +} + +// Guidelines for use with FlexMatch to match players into games. All matchmaking +// requests must specify a matchmaking configuration. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/MatchmakingConfiguration +type MatchmakingConfiguration struct { + _ struct{} `type:"structure"` + + // Flag that determines whether or not a match that was created with this configuration + // must be accepted by the matched players. To require acceptance, set to TRUE. + AcceptanceRequired *bool `type:"boolean"` + + // Length of time (in seconds) to wait for players to accept a proposed match. + // If any player rejects the match or fails to accept before the timeout, the + // ticket continues to look for an acceptable match. + AcceptanceTimeoutSeconds *int64 `min:"1" type:"integer"` + + // Number of player slots in a match to keep open for future players. For example, + // if the configuration's rule set specifies a match for a single 12-person + // team, and the additional player count is set to 2, only 10 players are selected + // for the match. + AdditionalPlayerCount *int64 `type:"integer"` + + // Time stamp indicating when this data object was created. Format is a number + // expressed in Unix time as milliseconds (for example "1469498468.057"). + CreationTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // Information to attached to all events related to the matchmaking configuration. + CustomEventData *string `type:"string"` + + // Descriptive label that is associated with matchmaking configuration. + Description *string `min:"1" type:"string"` + + // Set of developer-defined properties for a game session, formatted as a set + // of type:value pairs. These properties are included in the GameSession object, + // which is passed to the game server with a request to start a new game session + // (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // This information is added to the new GameSession object that is created for + // a successful match. + GameProperties []*GameProperty `type:"list"` + + // Set of developer-defined game session properties, formatted as a single string + // value. This data is included in the GameSession object, which is passed to + // the game server with a request to start a new game session (see Start a Game + // Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // This information is added to the new GameSession object that is created for + // a successful match. + GameSessionData *string `min:"1" type:"string"` + + // Amazon Resource Name (ARN (http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)) + // that is assigned to a game session queue and uniquely identifies it. Format + // is arn:aws:gamelift:::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912. + // These queues are used when placing game sessions for matches that are created + // with this matchmaking configuration. Queues can be located in any region. + GameSessionQueueArns []*string `type:"list"` + + // Unique identifier for a matchmaking configuration. This name is used to identify + // the configuration associated with a matchmaking request or ticket. + Name *string `min:"1" type:"string"` + + // SNS topic ARN that is set up to receive matchmaking notifications. + NotificationTarget *string `type:"string"` + + // Maximum duration, in seconds, that a matchmaking ticket can remain in process + // before timing out. Requests that time out can be resubmitted as needed. + RequestTimeoutSeconds *int64 `min:"1" type:"integer"` + + // Unique identifier for a matchmaking rule set to use with this configuration. + // A matchmaking configuration can only use rule sets that are defined in the + // same region. + RuleSetName *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s MatchmakingConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s MatchmakingConfiguration) GoString() string { + return s.String() +} + +// SetAcceptanceRequired sets the AcceptanceRequired field's value. +func (s *MatchmakingConfiguration) SetAcceptanceRequired(v bool) *MatchmakingConfiguration { + s.AcceptanceRequired = &v + return s +} + +// SetAcceptanceTimeoutSeconds sets the AcceptanceTimeoutSeconds field's value. +func (s *MatchmakingConfiguration) SetAcceptanceTimeoutSeconds(v int64) *MatchmakingConfiguration { + s.AcceptanceTimeoutSeconds = &v + return s +} + +// SetAdditionalPlayerCount sets the AdditionalPlayerCount field's value. +func (s *MatchmakingConfiguration) SetAdditionalPlayerCount(v int64) *MatchmakingConfiguration { + s.AdditionalPlayerCount = &v + return s +} + +// SetCreationTime sets the CreationTime field's value. +func (s *MatchmakingConfiguration) SetCreationTime(v time.Time) *MatchmakingConfiguration { + s.CreationTime = &v + return s +} + +// SetCustomEventData sets the CustomEventData field's value. +func (s *MatchmakingConfiguration) SetCustomEventData(v string) *MatchmakingConfiguration { + s.CustomEventData = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *MatchmakingConfiguration) SetDescription(v string) *MatchmakingConfiguration { + s.Description = &v + return s +} + +// SetGameProperties sets the GameProperties field's value. +func (s *MatchmakingConfiguration) SetGameProperties(v []*GameProperty) *MatchmakingConfiguration { + s.GameProperties = v + return s +} + +// SetGameSessionData sets the GameSessionData field's value. +func (s *MatchmakingConfiguration) SetGameSessionData(v string) *MatchmakingConfiguration { + s.GameSessionData = &v + return s +} + +// SetGameSessionQueueArns sets the GameSessionQueueArns field's value. +func (s *MatchmakingConfiguration) SetGameSessionQueueArns(v []*string) *MatchmakingConfiguration { + s.GameSessionQueueArns = v + return s +} + +// SetName sets the Name field's value. +func (s *MatchmakingConfiguration) SetName(v string) *MatchmakingConfiguration { + s.Name = &v + return s +} + +// SetNotificationTarget sets the NotificationTarget field's value. +func (s *MatchmakingConfiguration) SetNotificationTarget(v string) *MatchmakingConfiguration { + s.NotificationTarget = &v + return s +} + +// SetRequestTimeoutSeconds sets the RequestTimeoutSeconds field's value. +func (s *MatchmakingConfiguration) SetRequestTimeoutSeconds(v int64) *MatchmakingConfiguration { + s.RequestTimeoutSeconds = &v + return s +} + +// SetRuleSetName sets the RuleSetName field's value. +func (s *MatchmakingConfiguration) SetRuleSetName(v string) *MatchmakingConfiguration { + s.RuleSetName = &v + return s +} + +// Set of rule statements, used with FlexMatch, that determine how to build +// a certain kind of player match. Each rule set describes a type of group to +// be created and defines the parameters for acceptable player matches. Rule +// sets are used in MatchmakingConfiguration objects. +// +// A rule set may define the following elements for a match. For detailed information +// and examples showing how to construct a rule set, see Create Matchmaking +// Rules for Your Game (http://docs.aws.amazon.com/gamelift/latest/developerguide/match-rules.html). +// +// * Teams -- Required. A rule set must define one or multiple teams for +// the match and set minimum and maximum team sizes. For example, a rule +// set might describe a 4x4 match that requires all eight slots to be filled. +// +// +// * Player attributes -- Optional. These attributes specify a set of player +// characteristics to evaluate when looking for a match. Matchmaking requests +// that use a rule set with player attributes must provide the corresponding +// attribute values. For example, an attribute might specify a player's skill +// or level. +// +// * Rules -- Optional. Rules define how to evaluate potential players for +// a match based on player attributes. A rule might specify minimum requirements +// for individual players--such as each player must meet a certain skill +// level, or may describe an entire group--such as all teams must be evenly +// matched or have at least one player in a certain role. +// +// * Expansions -- Optional. Expansions allow you to relax the rules after +// a period of time if no acceptable matches are found. This feature lets +// you balance getting players into games in a reasonable amount of time +// instead of making them wait indefinitely for the best possible match. +// For example, you might use an expansion to increase the maximum skill +// variance between players after 30 seconds. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/MatchmakingRuleSet +type MatchmakingRuleSet struct { + _ struct{} `type:"structure"` + + // Time stamp indicating when this data object was created. Format is a number + // expressed in Unix time as milliseconds (for example "1469498468.057"). + CreationTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // Collection of matchmaking rules, formatted as a JSON string. (Note that comments14 + // are not allowed in JSON, but most elements support a description field.) + // + // RuleSetBody is a required field + RuleSetBody *string `min:"1" type:"string" required:"true"` + + // Unique identifier for a matchmaking rule set + RuleSetName *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s MatchmakingRuleSet) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s MatchmakingRuleSet) GoString() string { + return s.String() +} + +// SetCreationTime sets the CreationTime field's value. +func (s *MatchmakingRuleSet) SetCreationTime(v time.Time) *MatchmakingRuleSet { + s.CreationTime = &v + return s +} + +// SetRuleSetBody sets the RuleSetBody field's value. +func (s *MatchmakingRuleSet) SetRuleSetBody(v string) *MatchmakingRuleSet { + s.RuleSetBody = &v + return s +} + +// SetRuleSetName sets the RuleSetName field's value. +func (s *MatchmakingRuleSet) SetRuleSetName(v string) *MatchmakingRuleSet { + s.RuleSetName = &v + return s +} + +// Ticket generated to track the progress of a matchmaking request. Each ticket +// is uniquely identified by a ticket ID, supplied by the requester, when creating +// a matchmaking request with StartMatchmaking. Tickets can be retrieved by +// calling DescribeMatchmaking with the ticket ID. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/MatchmakingTicket +type MatchmakingTicket struct { + _ struct{} `type:"structure"` + + // Name of the MatchmakingConfiguration that is used with this ticket. Matchmaking + // configurations determine how players are grouped into a match and how a new + // game session is created for the match. + ConfigurationName *string `min:"1" type:"string"` + + // Time stamp indicating when the matchmaking request stopped being processed + // due to successful completion, timeout, or cancellation. Format is a number + // expressed in Unix time as milliseconds (for example "1469498468.057"). + EndTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // Average amount of time (in seconds) that players are currently waiting for + // a match. If there is not enough recent data, this property may be empty. + EstimatedWaitTime *int64 `type:"integer"` + + // Identifier and connection information of the game session created for the + // match. This information is added to the ticket only after the matchmaking + // request has been successfully completed. + GameSessionConnectionInfo *GameSessionConnectionInfo `type:"structure"` + + // A set of Player objects, each representing a player to find matches for. + // Players are identified by a unique player ID and may include latency data + // for use during matchmaking. If the ticket is in status COMPLETED, the Player + // objects include the team the players were assigned to in the resulting match. + Players []*Player `type:"list"` + + // Time stamp indicating when this matchmaking request was received. Format + // is a number expressed in Unix time as milliseconds (for example "1469498468.057"). + StartTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // Current status of the matchmaking request. + // + // * QUEUED -- The matchmaking request has been received and is currently + // waiting to be processed. + // + // * SEARCHING -- The matchmaking request is currently being processed. + // + // * REQUIRES_ACCEPTANCE -- A match has been proposed and the players must + // accept the match (see AcceptMatch). This status is used only with requests + // that use a matchmaking configuration with a player acceptance requirement. + // + // * PLACING -- The FlexMatch engine has matched players and is in the process + // of placing a new game session for the match. + // + // * COMPLETED -- Players have been matched and a game session is ready to + // host the players. A ticket in this state contains the necessary connection + // information for players. + // + // * FAILED -- The matchmaking request was not completed. Tickets with players + // who fail to accept a proposed match are placed in FAILED status; new matchmaking + // requests can be submitted for these players. + // + // * CANCELLED -- The matchmaking request was canceled with a call to StopMatchmaking. + // + // * TIMED_OUT -- The matchmaking request was not completed within the duration + // specified in the matchmaking configuration. Matchmaking requests that + // time out can be resubmitted. + Status *string `type:"string" enum:"MatchmakingConfigurationStatus"` + + // Additional information about the current status. + StatusMessage *string `type:"string"` + + // Code to explain the current status. For example, a status reason may indicate + // when a ticket has returned to SEARCHING status after a proposed match fails + // to receive player acceptances. + StatusReason *string `type:"string"` + + // Unique identifier for a matchmaking ticket. + TicketId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s MatchmakingTicket) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s MatchmakingTicket) GoString() string { + return s.String() +} + +// SetConfigurationName sets the ConfigurationName field's value. +func (s *MatchmakingTicket) SetConfigurationName(v string) *MatchmakingTicket { + s.ConfigurationName = &v + return s +} + +// SetEndTime sets the EndTime field's value. +func (s *MatchmakingTicket) SetEndTime(v time.Time) *MatchmakingTicket { + s.EndTime = &v + return s +} + +// SetEstimatedWaitTime sets the EstimatedWaitTime field's value. +func (s *MatchmakingTicket) SetEstimatedWaitTime(v int64) *MatchmakingTicket { + s.EstimatedWaitTime = &v + return s +} + +// SetGameSessionConnectionInfo sets the GameSessionConnectionInfo field's value. +func (s *MatchmakingTicket) SetGameSessionConnectionInfo(v *GameSessionConnectionInfo) *MatchmakingTicket { + s.GameSessionConnectionInfo = v + return s +} + +// SetPlayers sets the Players field's value. +func (s *MatchmakingTicket) SetPlayers(v []*Player) *MatchmakingTicket { + s.Players = v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *MatchmakingTicket) SetStartTime(v time.Time) *MatchmakingTicket { + s.StartTime = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *MatchmakingTicket) SetStatus(v string) *MatchmakingTicket { + s.Status = &v + return s +} + +// SetStatusMessage sets the StatusMessage field's value. +func (s *MatchmakingTicket) SetStatusMessage(v string) *MatchmakingTicket { + s.StatusMessage = &v + return s +} + +// SetStatusReason sets the StatusReason field's value. +func (s *MatchmakingTicket) SetStatusReason(v string) *MatchmakingTicket { + s.StatusReason = &v + return s +} + +// SetTicketId sets the TicketId field's value. +func (s *MatchmakingTicket) SetTicketId(v string) *MatchmakingTicket { + s.TicketId = &v + return s +} + +// Information about a player session that was created as part of a StartGameSessionPlacement +// request. This object contains only the player ID and player session ID. To +// retrieve full details on a player session, call DescribePlayerSessions with +// the player session ID. +// +// Player-session-related operations include: +// +// * CreatePlayerSession +// +// * CreatePlayerSessions +// +// * DescribePlayerSessions +// +// * Game session placements +// +// StartGameSessionPlacement +// +// DescribeGameSessionPlacement +// +// StopGameSessionPlacement +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/PlacedPlayerSession +type PlacedPlayerSession struct { + _ struct{} `type:"structure"` + + // Unique identifier for a player that is associated with this player session. + PlayerId *string `min:"1" type:"string"` + + // Unique identifier for a player session. + PlayerSessionId *string `type:"string"` +} + +// String returns the string representation +func (s PlacedPlayerSession) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PlacedPlayerSession) GoString() string { + return s.String() +} + +// SetPlayerId sets the PlayerId field's value. +func (s *PlacedPlayerSession) SetPlayerId(v string) *PlacedPlayerSession { + s.PlayerId = &v + return s +} + +// SetPlayerSessionId sets the PlayerSessionId field's value. +func (s *PlacedPlayerSession) SetPlayerSessionId(v string) *PlacedPlayerSession { + s.PlayerSessionId = &v + return s +} + +// Represents a player in matchmaking. When starting a matchmaking request, +// a player has a player ID, attributes, and may have latency data. Team information +// is added after a match has been successfully completed. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/Player +type Player struct { + _ struct{} `type:"structure"` + + // Set of values, expressed in milliseconds, indicating the amount of latency + // that a player experiences when connected to AWS regions. If this property + // is present, FlexMatch considers placing the match only in regions for which + // latency is reported. + // + // If a matchmaker has a rule that evaluates player latency, players must report + // latency in order to be matched. If no latency is reported in this scenario, + // FlexMatch assumes that no regions are available to the player and the ticket + // is not matchable. + LatencyInMs map[string]*int64 `type:"map"` + + // Collection of name:value pairs containing player information for use in matchmaking. + // Player attribute names need to match playerAttributes names in the rule set + // being used. Example: "PlayerAttributes": {"skill": {"N": "23"}, "gameMode": + // {"S": "deathmatch"}}. + PlayerAttributes map[string]*AttributeValue `type:"map"` + + // Unique identifier for a player + PlayerId *string `min:"1" type:"string"` + + // Name of the team that the player is assigned to in a match. Team names are + // defined in a matchmaking rule set. + Team *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s Player) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Player) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *Player) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "Player"} + if s.PlayerId != nil && len(*s.PlayerId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PlayerId", 1)) + } + if s.Team != nil && len(*s.Team) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Team", 1)) + } + if s.PlayerAttributes != nil { + for i, v := range s.PlayerAttributes { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PlayerAttributes", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLatencyInMs sets the LatencyInMs field's value. +func (s *Player) SetLatencyInMs(v map[string]*int64) *Player { + s.LatencyInMs = v + return s +} + +// SetPlayerAttributes sets the PlayerAttributes field's value. +func (s *Player) SetPlayerAttributes(v map[string]*AttributeValue) *Player { + s.PlayerAttributes = v + return s +} + +// SetPlayerId sets the PlayerId field's value. +func (s *Player) SetPlayerId(v string) *Player { + s.PlayerId = &v + return s +} + +// SetTeam sets the Team field's value. +func (s *Player) SetTeam(v string) *Player { + s.Team = &v + return s +} + +// Regional latency information for a player, used when requesting a new game +// session with StartGameSessionPlacement. This value indicates the amount of +// time lag that exists when the player is connected to a fleet in the specified +// region. The relative difference between a player's latency values for multiple +// regions are used to determine which fleets are best suited to place a new +// game session for the player. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/PlayerLatency +type PlayerLatency struct { + _ struct{} `type:"structure"` + + // Amount of time that represents the time lag experienced by the player when + // connected to the specified region. + LatencyInMilliseconds *float64 `type:"float"` + + // Unique identifier for a player associated with the latency data. + PlayerId *string `min:"1" type:"string"` + + // Name of the region that is associated with the latency value. + RegionIdentifier *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s PlayerLatency) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PlayerLatency) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PlayerLatency) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PlayerLatency"} + if s.PlayerId != nil && len(*s.PlayerId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PlayerId", 1)) + } + if s.RegionIdentifier != nil && len(*s.RegionIdentifier) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RegionIdentifier", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLatencyInMilliseconds sets the LatencyInMilliseconds field's value. +func (s *PlayerLatency) SetLatencyInMilliseconds(v float64) *PlayerLatency { + s.LatencyInMilliseconds = &v + return s +} + +// SetPlayerId sets the PlayerId field's value. +func (s *PlayerLatency) SetPlayerId(v string) *PlayerLatency { + s.PlayerId = &v + return s +} + +// SetRegionIdentifier sets the RegionIdentifier field's value. +func (s *PlayerLatency) SetRegionIdentifier(v string) *PlayerLatency { + s.RegionIdentifier = &v + return s +} + +// Queue setting that determines the highest latency allowed for individual +// players when placing a game session. When a latency policy is in force, a +// game session cannot be placed at any destination in a region where a player +// is reporting latency higher than the cap. Latency policies are only enforced +// when the placement request contains player latency information. +// +// Queue-related operations include: +// +// * CreateGameSessionQueue +// +// * DescribeGameSessionQueues +// +// * UpdateGameSessionQueue +// +// * DeleteGameSessionQueue +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/PlayerLatencyPolicy +type PlayerLatencyPolicy struct { + _ struct{} `type:"structure"` + + // The maximum latency value that is allowed for any player, in milliseconds. + // All policies must have a value set for this property. + MaximumIndividualPlayerLatencyMilliseconds *int64 `type:"integer"` + + // The length of time, in seconds, that the policy is enforced while placing + // a new game session. A null value for this property means that the policy + // is enforced until the queue times out. + PolicyDurationSeconds *int64 `type:"integer"` +} + +// String returns the string representation +func (s PlayerLatencyPolicy) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PlayerLatencyPolicy) GoString() string { + return s.String() +} + +// SetMaximumIndividualPlayerLatencyMilliseconds sets the MaximumIndividualPlayerLatencyMilliseconds field's value. +func (s *PlayerLatencyPolicy) SetMaximumIndividualPlayerLatencyMilliseconds(v int64) *PlayerLatencyPolicy { + s.MaximumIndividualPlayerLatencyMilliseconds = &v + return s +} + +// SetPolicyDurationSeconds sets the PolicyDurationSeconds field's value. +func (s *PlayerLatencyPolicy) SetPolicyDurationSeconds(v int64) *PlayerLatencyPolicy { + s.PolicyDurationSeconds = &v + return s +} + +// Properties describing a player session. Player session objects are created +// either by creating a player session for a specific game session, or as part +// of a game session placement. A player session represents either a player +// reservation for a game session (status RESERVED) or actual player activity +// in a game session (status ACTIVE). A player session object (including player +// data) is automatically passed to a game session when the player connects +// to the game session and is validated. +// +// When a player disconnects, the player session status changes to COMPLETED. +// Once the session ends, the player session object is retained for 30 days +// and then removed. +// +// Player-session-related operations include: +// +// * CreatePlayerSession +// +// * CreatePlayerSessions +// +// * DescribePlayerSessions +// +// * Game session placements +// +// StartGameSessionPlacement +// +// DescribeGameSessionPlacement +// +// StopGameSessionPlacement +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/PlayerSession +type PlayerSession struct { + _ struct{} `type:"structure"` + + // Time stamp indicating when this data object was created. Format is a number + // expressed in Unix time as milliseconds (for example "1469498468.057"). + CreationTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // Unique identifier for a fleet that the player's game session is running on. + FleetId *string `type:"string"` + + // Unique identifier for the game session that the player session is connected + // to. + GameSessionId *string `min:"1" type:"string"` + + // IP address of the game session. To connect to a Amazon GameLift game server, + // an app needs both the IP address and port number. + IpAddress *string `type:"string"` + + // Developer-defined information related to a player. Amazon GameLift does not + // use this data, so it can be formatted as needed for use in the game. + PlayerData *string `min:"1" type:"string"` + + // Unique identifier for a player that is associated with this player session. + PlayerId *string `min:"1" type:"string"` + + // Unique identifier for a player session. + PlayerSessionId *string `type:"string"` + + // Port number for the game session. To connect to a Amazon GameLift server + // process, an app needs both the IP address and port number. + Port *int64 `min:"1" type:"integer"` + + // Current status of the player session. + // + // Possible player session statuses include the following: + // + // * RESERVED -- The player session request has been received, but the player + // has not yet connected to the server process and/or been validated. + // + // * ACTIVE -- The player has been validated by the server process and is + // currently connected. + // + // * COMPLETED -- The player connection has been dropped. + // + // * TIMEDOUT -- A player session request was received, but the player did + // not connect and/or was not validated within the timeout limit (60 seconds). + Status *string `type:"string" enum:"PlayerSessionStatus"` + + // Time stamp indicating when this data object was terminated. Format is a number + // expressed in Unix time as milliseconds (for example "1469498468.057"). + TerminationTime *time.Time `type:"timestamp" timestampFormat:"unix"` +} + +// String returns the string representation +func (s PlayerSession) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PlayerSession) GoString() string { + return s.String() +} + +// SetCreationTime sets the CreationTime field's value. +func (s *PlayerSession) SetCreationTime(v time.Time) *PlayerSession { + s.CreationTime = &v + return s +} + +// SetFleetId sets the FleetId field's value. +func (s *PlayerSession) SetFleetId(v string) *PlayerSession { + s.FleetId = &v + return s +} + +// SetGameSessionId sets the GameSessionId field's value. +func (s *PlayerSession) SetGameSessionId(v string) *PlayerSession { + s.GameSessionId = &v + return s +} + +// SetIpAddress sets the IpAddress field's value. +func (s *PlayerSession) SetIpAddress(v string) *PlayerSession { + s.IpAddress = &v + return s +} + +// SetPlayerData sets the PlayerData field's value. +func (s *PlayerSession) SetPlayerData(v string) *PlayerSession { + s.PlayerData = &v + return s +} + +// SetPlayerId sets the PlayerId field's value. +func (s *PlayerSession) SetPlayerId(v string) *PlayerSession { + s.PlayerId = &v + return s +} + +// SetPlayerSessionId sets the PlayerSessionId field's value. +func (s *PlayerSession) SetPlayerSessionId(v string) *PlayerSession { + s.PlayerSessionId = &v + return s +} + +// SetPort sets the Port field's value. +func (s *PlayerSession) SetPort(v int64) *PlayerSession { + s.Port = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *PlayerSession) SetStatus(v string) *PlayerSession { + s.Status = &v + return s +} + +// SetTerminationTime sets the TerminationTime field's value. +func (s *PlayerSession) SetTerminationTime(v time.Time) *PlayerSession { + s.TerminationTime = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/PutScalingPolicyInput +type PutScalingPolicyInput struct { + _ struct{} `type:"structure"` + + // Comparison operator to use when measuring the metric against the threshold + // value. + // + // ComparisonOperator is a required field + ComparisonOperator *string `type:"string" required:"true" enum:"ComparisonOperatorType"` + + // Length of time (in minutes) the metric must be at or beyond the threshold + // before a scaling event is triggered. + // + // EvaluationPeriods is a required field + EvaluationPeriods *int64 `min:"1" type:"integer" required:"true"` + + // Unique identifier for a fleet to apply this policy to. + // + // FleetId is a required field + FleetId *string `type:"string" required:"true"` + + // Name of the Amazon GameLift-defined metric that is used to trigger an adjustment. + // + // * ActivatingGameSessions -- number of game sessions in the process of + // being created (game session status = ACTIVATING). + // + // * ActiveGameSessions -- number of game sessions currently running (game + // session status = ACTIVE). + // + // * CurrentPlayerSessions -- number of active or reserved player sessions + // (player session status = ACTIVE or RESERVED). + // + // * AvailablePlayerSessions -- number of player session slots currently + // available in active game sessions across the fleet, calculated by subtracting + // a game session's current player session count from its maximum player + // session count. This number includes game sessions that are not currently + // accepting players (game session PlayerSessionCreationPolicy = DENY_ALL). + // + // * ActiveInstances -- number of instances currently running a game session. + // + // * IdleInstances -- number of instances not currently running a game session. + // + // MetricName is a required field + MetricName *string `type:"string" required:"true" enum:"MetricName"` + + // Descriptive label that is associated with a scaling policy. Policy names + // do not need to be unique. A fleet can have only one scaling policy with the + // same name. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Amount of adjustment to make, based on the scaling adjustment type. + // + // ScalingAdjustment is a required field + ScalingAdjustment *int64 `type:"integer" required:"true"` + + // Type of adjustment to make to a fleet's instance count (see FleetCapacity): + // + // * ChangeInCapacity -- add (or subtract) the scaling adjustment value from + // the current instance count. Positive values scale up while negative values + // scale down. + // + // * ExactCapacity -- set the instance count to the scaling adjustment value. + // + // * PercentChangeInCapacity -- increase or reduce the current instance count + // by the scaling adjustment, read as a percentage. Positive values scale + // up while negative values scale down; for example, a value of "-10" scales + // the fleet down by 10%. + // + // ScalingAdjustmentType is a required field + ScalingAdjustmentType *string `type:"string" required:"true" enum:"ScalingAdjustmentType"` + + // Metric value used to trigger a scaling event. + // + // Threshold is a required field + Threshold *float64 `type:"double" required:"true"` +} + +// String returns the string representation +func (s PutScalingPolicyInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutScalingPolicyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutScalingPolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutScalingPolicyInput"} + if s.ComparisonOperator == nil { + invalidParams.Add(request.NewErrParamRequired("ComparisonOperator")) + } + if s.EvaluationPeriods == nil { + invalidParams.Add(request.NewErrParamRequired("EvaluationPeriods")) + } + if s.EvaluationPeriods != nil && *s.EvaluationPeriods < 1 { + invalidParams.Add(request.NewErrParamMinValue("EvaluationPeriods", 1)) + } + if s.FleetId == nil { + invalidParams.Add(request.NewErrParamRequired("FleetId")) + } + if s.MetricName == nil { + invalidParams.Add(request.NewErrParamRequired("MetricName")) + } + 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.ScalingAdjustment == nil { + invalidParams.Add(request.NewErrParamRequired("ScalingAdjustment")) + } + if s.ScalingAdjustmentType == nil { + invalidParams.Add(request.NewErrParamRequired("ScalingAdjustmentType")) + } + if s.Threshold == nil { + invalidParams.Add(request.NewErrParamRequired("Threshold")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetComparisonOperator sets the ComparisonOperator field's value. +func (s *PutScalingPolicyInput) SetComparisonOperator(v string) *PutScalingPolicyInput { + s.ComparisonOperator = &v + return s +} + +// SetEvaluationPeriods sets the EvaluationPeriods field's value. +func (s *PutScalingPolicyInput) SetEvaluationPeriods(v int64) *PutScalingPolicyInput { + s.EvaluationPeriods = &v + return s +} + +// SetFleetId sets the FleetId field's value. +func (s *PutScalingPolicyInput) SetFleetId(v string) *PutScalingPolicyInput { + s.FleetId = &v + return s +} + +// SetMetricName sets the MetricName field's value. +func (s *PutScalingPolicyInput) SetMetricName(v string) *PutScalingPolicyInput { + s.MetricName = &v + return s +} + +// SetName sets the Name field's value. +func (s *PutScalingPolicyInput) SetName(v string) *PutScalingPolicyInput { + s.Name = &v + return s +} + +// SetScalingAdjustment sets the ScalingAdjustment field's value. +func (s *PutScalingPolicyInput) SetScalingAdjustment(v int64) *PutScalingPolicyInput { + s.ScalingAdjustment = &v + return s +} + +// SetScalingAdjustmentType sets the ScalingAdjustmentType field's value. +func (s *PutScalingPolicyInput) SetScalingAdjustmentType(v string) *PutScalingPolicyInput { + s.ScalingAdjustmentType = &v + return s +} + +// SetThreshold sets the Threshold field's value. +func (s *PutScalingPolicyInput) SetThreshold(v float64) *PutScalingPolicyInput { + s.Threshold = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/PutScalingPolicyOutput +type PutScalingPolicyOutput struct { + _ struct{} `type:"structure"` + + // Descriptive label that is associated with a scaling policy. Policy names + // do not need to be unique. + Name *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s PutScalingPolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutScalingPolicyOutput) GoString() string { + return s.String() +} + +// SetName sets the Name field's value. +func (s *PutScalingPolicyOutput) SetName(v string) *PutScalingPolicyOutput { + s.Name = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/RequestUploadCredentialsInput +type RequestUploadCredentialsInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a build to get credentials for. + // + // BuildId is a required field + BuildId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s RequestUploadCredentialsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RequestUploadCredentialsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RequestUploadCredentialsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RequestUploadCredentialsInput"} + if s.BuildId == nil { + invalidParams.Add(request.NewErrParamRequired("BuildId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBuildId sets the BuildId field's value. +func (s *RequestUploadCredentialsInput) SetBuildId(v string) *RequestUploadCredentialsInput { + s.BuildId = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/RequestUploadCredentialsOutput +type RequestUploadCredentialsOutput struct { + _ struct{} `type:"structure"` + + // Amazon S3 path and key, identifying where the game build files are stored. + StorageLocation *S3Location `type:"structure"` + + // AWS credentials required when uploading a game build to the storage location. + // These credentials have a limited lifespan and are valid only for the build + // they were issued for. + UploadCredentials *AwsCredentials `type:"structure"` +} + +// String returns the string representation +func (s RequestUploadCredentialsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RequestUploadCredentialsOutput) GoString() string { + return s.String() +} + +// SetStorageLocation sets the StorageLocation field's value. +func (s *RequestUploadCredentialsOutput) SetStorageLocation(v *S3Location) *RequestUploadCredentialsOutput { + s.StorageLocation = v + return s +} + +// SetUploadCredentials sets the UploadCredentials field's value. +func (s *RequestUploadCredentialsOutput) SetUploadCredentials(v *AwsCredentials) *RequestUploadCredentialsOutput { + s.UploadCredentials = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ResolveAliasInput +type ResolveAliasInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for the alias you want to resolve. + // + // AliasId is a required field + AliasId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s ResolveAliasInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResolveAliasInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ResolveAliasInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ResolveAliasInput"} + if s.AliasId == nil { + invalidParams.Add(request.NewErrParamRequired("AliasId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAliasId sets the AliasId field's value. +func (s *ResolveAliasInput) SetAliasId(v string) *ResolveAliasInput { + s.AliasId = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ResolveAliasOutput +type ResolveAliasOutput struct { + _ struct{} `type:"structure"` + + // Fleet identifier that is associated with the requested alias. + FleetId *string `type:"string"` +} + +// String returns the string representation +func (s ResolveAliasOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResolveAliasOutput) GoString() string { + return s.String() +} + +// SetFleetId sets the FleetId field's value. +func (s *ResolveAliasOutput) SetFleetId(v string) *ResolveAliasOutput { + s.FleetId = &v + return s +} + +// Policy that limits the number of game sessions a player can create on the +// same fleet. This optional policy gives game owners control over how players +// can consume available game server resources. A resource creation policy makes +// the following statement: "An individual player can create a maximum number +// of new game sessions within a specified time period". +// +// The policy is evaluated when a player tries to create a new game session. +// For example, with a policy of 10 new game sessions and a time period of 60 +// minutes, on receiving a CreateGameSession request, Amazon GameLift checks +// that the player (identified by CreatorId) has created fewer than 10 game +// sessions in the past 60 minutes. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ResourceCreationLimitPolicy +type ResourceCreationLimitPolicy struct { + _ struct{} `type:"structure"` + + // Maximum number of game sessions that an individual can create during the + // policy period. + NewGameSessionsPerCreator *int64 `type:"integer"` + + // Time span used in evaluating the resource creation limit policy. + PolicyPeriodInMinutes *int64 `type:"integer"` +} + +// String returns the string representation +func (s ResourceCreationLimitPolicy) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResourceCreationLimitPolicy) GoString() string { + return s.String() +} + +// SetNewGameSessionsPerCreator sets the NewGameSessionsPerCreator field's value. +func (s *ResourceCreationLimitPolicy) SetNewGameSessionsPerCreator(v int64) *ResourceCreationLimitPolicy { + s.NewGameSessionsPerCreator = &v + return s +} + +// SetPolicyPeriodInMinutes sets the PolicyPeriodInMinutes field's value. +func (s *ResourceCreationLimitPolicy) SetPolicyPeriodInMinutes(v int64) *ResourceCreationLimitPolicy { + s.PolicyPeriodInMinutes = &v + return s +} + +// Routing configuration for a fleet alias. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/RoutingStrategy +type RoutingStrategy struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet that the alias points to. + FleetId *string `type:"string"` + + // Message text to be used with a terminal routing strategy. + Message *string `type:"string"` + + // Type of routing strategy. + // + // Possible routing types include the following: + // + // * SIMPLE -- The alias resolves to one specific fleet. Use this type when + // routing to active fleets. + // + // * TERMINAL -- The alias does not resolve to a fleet but instead can be + // used to display a message to the user. A terminal alias throws a TerminalRoutingStrategyException + // with the RoutingStrategy message embedded. + Type *string `type:"string" enum:"RoutingStrategyType"` +} + +// String returns the string representation +func (s RoutingStrategy) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RoutingStrategy) GoString() string { + return s.String() +} + +// SetFleetId sets the FleetId field's value. +func (s *RoutingStrategy) SetFleetId(v string) *RoutingStrategy { + s.FleetId = &v + return s +} + +// SetMessage sets the Message field's value. +func (s *RoutingStrategy) SetMessage(v string) *RoutingStrategy { + s.Message = &v + return s +} + +// SetType sets the Type field's value. +func (s *RoutingStrategy) SetType(v string) *RoutingStrategy { + s.Type = &v + return s +} + +// A collection of server process configurations that describe what processes +// to run on each instance in a fleet. All fleets must have a run-time configuration. +// Each instance in the fleet launches the server processes specified in the +// run-time configuration and launches new ones as existing processes end. Each +// instance regularly checks for an updated run-time configuration and follows +// the new instructions. +// +// The run-time configuration enables the instances in a fleet to run multiple +// processes simultaneously. Potential scenarios are as follows: (1) Run multiple +// processes of a single game server executable to maximize usage of your hosting +// resources. (2) Run one or more processes of different build executables, +// such as your game server executable and a related program, or two or more +// different versions of a game server. (3) Run multiple processes of a single +// game server but with different launch parameters, for example to run one +// process on each instance in debug mode. +// +// A Amazon GameLift instance is limited to 50 processes running simultaneously. +// A run-time configuration must specify fewer than this limit. To calculate +// the total number of processes specified in a run-time configuration, add +// the values of the ConcurrentExecutions parameter for each ServerProcess object +// in the run-time configuration. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/RuntimeConfiguration +type RuntimeConfiguration struct { + _ struct{} `type:"structure"` + + // Maximum amount of time (in seconds) that a game session can remain in status + // ACTIVATING. If the game session is not active before the timeout, activation + // is terminated and the game session status is changed to TERMINATED. + GameSessionActivationTimeoutSeconds *int64 `min:"1" type:"integer"` + + // Maximum number of game sessions with status ACTIVATING to allow on an instance + // simultaneously. This setting limits the amount of instance resources that + // can be used for new game activations at any one time. + MaxConcurrentGameSessionActivations *int64 `min:"1" type:"integer"` + + // Collection of server process configurations that describe which server processes + // to run on each instance in a fleet. + ServerProcesses []*ServerProcess `min:"1" type:"list"` +} + +// String returns the string representation +func (s RuntimeConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RuntimeConfiguration) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RuntimeConfiguration) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RuntimeConfiguration"} + if s.GameSessionActivationTimeoutSeconds != nil && *s.GameSessionActivationTimeoutSeconds < 1 { + invalidParams.Add(request.NewErrParamMinValue("GameSessionActivationTimeoutSeconds", 1)) + } + if s.MaxConcurrentGameSessionActivations != nil && *s.MaxConcurrentGameSessionActivations < 1 { + invalidParams.Add(request.NewErrParamMinValue("MaxConcurrentGameSessionActivations", 1)) + } + if s.ServerProcesses != nil && len(s.ServerProcesses) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ServerProcesses", 1)) + } + if s.ServerProcesses != nil { + for i, v := range s.ServerProcesses { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ServerProcesses", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetGameSessionActivationTimeoutSeconds sets the GameSessionActivationTimeoutSeconds field's value. +func (s *RuntimeConfiguration) SetGameSessionActivationTimeoutSeconds(v int64) *RuntimeConfiguration { + s.GameSessionActivationTimeoutSeconds = &v + return s +} + +// SetMaxConcurrentGameSessionActivations sets the MaxConcurrentGameSessionActivations field's value. +func (s *RuntimeConfiguration) SetMaxConcurrentGameSessionActivations(v int64) *RuntimeConfiguration { + s.MaxConcurrentGameSessionActivations = &v + return s +} + +// SetServerProcesses sets the ServerProcesses field's value. +func (s *RuntimeConfiguration) SetServerProcesses(v []*ServerProcess) *RuntimeConfiguration { + s.ServerProcesses = v + return s +} + +// Location in Amazon Simple Storage Service (Amazon S3) where build files can +// be stored for access by Amazon GameLift. This location is specified in a +// CreateBuild request. For more details, see the Create a Build with Files +// in Amazon S3 (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-cli-uploading.html#gamelift-build-cli-uploading-create-build). +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/S3Location +type S3Location struct { + _ struct{} `type:"structure"` + + // Amazon S3 bucket identifier. This is the name of your S3 bucket. + Bucket *string `min:"1" type:"string"` + + // Name of the zip file containing your build files. + Key *string `min:"1" type:"string"` + + // Amazon Resource Name (ARN (http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)) + // for the access role that allows Amazon GameLift to access your S3 bucket. + RoleArn *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s S3Location) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +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 && len(*s.Bucket) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Bucket", 1)) + } + if s.Key != nil && len(*s.Key) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Key", 1)) + } + if s.RoleArn != nil && len(*s.RoleArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RoleArn", 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 +} + +// SetKey sets the Key field's value. +func (s *S3Location) SetKey(v string) *S3Location { + s.Key = &v + return s +} + +// SetRoleArn sets the RoleArn field's value. +func (s *S3Location) SetRoleArn(v string) *S3Location { + s.RoleArn = &v + return s +} + +// Rule that controls how a fleet is scaled. Scaling policies are uniquely identified +// by the combination of name and fleet ID. +// +// Fleet-related operations include: +// +// * CreateFleet +// +// * ListFleets +// +// * Describe fleets: +// +// DescribeFleetAttributes +// +// DescribeFleetPortSettings +// +// DescribeFleetUtilization +// +// DescribeRuntimeConfiguration +// +// DescribeFleetEvents +// +// * Update fleets: +// +// UpdateFleetAttributes +// +// UpdateFleetCapacity +// +// UpdateFleetPortSettings +// +// UpdateRuntimeConfiguration +// +// * Manage fleet capacity: +// +// DescribeFleetCapacity +// +// UpdateFleetCapacity +// +// PutScalingPolicy (automatic scaling) +// +// DescribeScalingPolicies (automatic scaling) +// +// DeleteScalingPolicy (automatic scaling) +// +// DescribeEC2InstanceLimits +// +// * DeleteFleet +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ScalingPolicy +type ScalingPolicy struct { + _ struct{} `type:"structure"` + + // Comparison operator to use when measuring a metric against the threshold + // value. + ComparisonOperator *string `type:"string" enum:"ComparisonOperatorType"` + + // Length of time (in minutes) the metric must be at or beyond the threshold + // before a scaling event is triggered. + EvaluationPeriods *int64 `min:"1" type:"integer"` + + // Unique identifier for a fleet that is associated with this scaling policy. + FleetId *string `type:"string"` + + // Name of the Amazon GameLift-defined metric that is used to trigger an adjustment. + // + // * ActivatingGameSessions -- number of game sessions in the process of + // being created (game session status = ACTIVATING). + // + // * ActiveGameSessions -- number of game sessions currently running (game + // session status = ACTIVE). + // + // * CurrentPlayerSessions -- number of active or reserved player sessions + // (player session status = ACTIVE or RESERVED). + // + // * AvailablePlayerSessions -- number of player session slots currently + // available in active game sessions across the fleet, calculated by subtracting + // a game session's current player session count from its maximum player + // session count. This number does include game sessions that are not currently + // accepting players (game session PlayerSessionCreationPolicy = DENY_ALL). + // + // * ActiveInstances -- number of instances currently running a game session. + // + // * IdleInstances -- number of instances not currently running a game session. + MetricName *string `type:"string" enum:"MetricName"` + + // Descriptive label that is associated with a scaling policy. Policy names + // do not need to be unique. + Name *string `min:"1" type:"string"` + + // Amount of adjustment to make, based on the scaling adjustment type. + ScalingAdjustment *int64 `type:"integer"` + + // Type of adjustment to make to a fleet's instance count (see FleetCapacity): + // + // * ChangeInCapacity -- add (or subtract) the scaling adjustment value from + // the current instance count. Positive values scale up while negative values + // scale down. + // + // * ExactCapacity -- set the instance count to the scaling adjustment value. + // + // * PercentChangeInCapacity -- increase or reduce the current instance count + // by the scaling adjustment, read as a percentage. Positive values scale + // up while negative values scale down. + ScalingAdjustmentType *string `type:"string" enum:"ScalingAdjustmentType"` + + // Current status of the scaling policy. The scaling policy is only in force + // when in an ACTIVE status. + // + // * ACTIVE -- The scaling policy is currently in force. + // + // * UPDATE_REQUESTED -- A request to update the scaling policy has been + // received. + // + // * UPDATING -- A change is being made to the scaling policy. + // + // * DELETE_REQUESTED -- A request to delete the scaling policy has been + // received. + // + // * DELETING -- The scaling policy is being deleted. + // + // * DELETED -- The scaling policy has been deleted. + // + // * ERROR -- An error occurred in creating the policy. It should be removed + // and recreated. + Status *string `type:"string" enum:"ScalingStatusType"` + + // Metric value used to trigger a scaling event. + Threshold *float64 `type:"double"` +} + +// String returns the string representation +func (s ScalingPolicy) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ScalingPolicy) GoString() string { + return s.String() +} + +// SetComparisonOperator sets the ComparisonOperator field's value. +func (s *ScalingPolicy) SetComparisonOperator(v string) *ScalingPolicy { + s.ComparisonOperator = &v + return s +} + +// SetEvaluationPeriods sets the EvaluationPeriods field's value. +func (s *ScalingPolicy) SetEvaluationPeriods(v int64) *ScalingPolicy { + s.EvaluationPeriods = &v + return s +} + +// SetFleetId sets the FleetId field's value. +func (s *ScalingPolicy) SetFleetId(v string) *ScalingPolicy { + s.FleetId = &v + return s +} + +// SetMetricName sets the MetricName field's value. +func (s *ScalingPolicy) SetMetricName(v string) *ScalingPolicy { + s.MetricName = &v + return s +} + +// SetName sets the Name field's value. +func (s *ScalingPolicy) SetName(v string) *ScalingPolicy { + s.Name = &v + return s +} + +// SetScalingAdjustment sets the ScalingAdjustment field's value. +func (s *ScalingPolicy) SetScalingAdjustment(v int64) *ScalingPolicy { + s.ScalingAdjustment = &v + return s +} + +// SetScalingAdjustmentType sets the ScalingAdjustmentType field's value. +func (s *ScalingPolicy) SetScalingAdjustmentType(v string) *ScalingPolicy { + s.ScalingAdjustmentType = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *ScalingPolicy) SetStatus(v string) *ScalingPolicy { + s.Status = &v + return s +} + +// SetThreshold sets the Threshold field's value. +func (s *ScalingPolicy) SetThreshold(v float64) *ScalingPolicy { + s.Threshold = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/SearchGameSessionsInput +type SearchGameSessionsInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for an alias associated with the fleet to search for active + // game sessions. Each request must reference either a fleet ID or alias ID, + // but not both. + AliasId *string `type:"string"` + + // String containing the search criteria for the session search. If no filter + // expression is included, the request returns results for all game sessions + // in the fleet that are in ACTIVE status. + // + // A filter expression can contain one or multiple conditions. Each condition + // consists of the following: + // + // * Operand -- Name of a game session attribute. Valid values are gameSessionName, + // gameSessionId, creationTimeMillis, playerSessionCount, maximumSessions, + // hasAvailablePlayerSessions. + // + // * Comparator -- Valid comparators are: =, <>, <, >, <=, >=. + // + // * Value -- Value to be searched for. Values can be numbers, boolean values + // (true/false) or strings. String values are case sensitive, enclosed in + // single quotes. Special characters must be escaped. Boolean and string + // values can only be used with the comparators = and <>. For example, the + // following filter expression searches on gameSessionName: "FilterExpression": + // "gameSessionName = 'Matt\\'s Awesome Game 1'". + // + // To chain multiple conditions in a single expression, use the logical keywords + // AND, OR, and NOT and parentheses as needed. For example: x AND y AND NOT + // z, NOT (x OR y). + // + // Session search evaluates conditions from left to right using the following + // precedence rules: + // + // =, <>, <, >, <=, >= + // + // Parentheses + // + // NOT + // + // AND + // + // OR + // + // For example, this filter expression retrieves game sessions hosting at least + // ten players that have an open player slot: "maximumSessions>=10 AND hasAvailablePlayerSessions=true". + FilterExpression *string `min:"1" type:"string"` + + // Unique identifier for a fleet to search for active game sessions. Each request + // must reference either a fleet ID or alias ID, but not both. + FleetId *string `type:"string"` + + // Maximum number of results to return. Use this parameter with NextToken to + // get results as a set of sequential pages. The maximum number of results returned + // is 20, even if this value is not set or is set higher than 20. + Limit *int64 `min:"1" type:"integer"` + + // Token that indicates the start of the next sequential page of results. Use + // the token that is returned with a previous call to this action. To start + // at the beginning of the result set, do not specify a value. + NextToken *string `min:"1" type:"string"` + + // Instructions on how to sort the search results. If no sort expression is + // included, the request returns results in random order. A sort expression + // consists of the following elements: + // + // * Operand -- Name of a game session attribute. Valid values are gameSessionName, + // gameSessionId, creationTimeMillis, playerSessionCount, maximumSessions, + // hasAvailablePlayerSessions. + // + // * Order -- Valid sort orders are ASC (ascending) and DESC (descending). + // + // For example, this sort expression returns the oldest active sessions first: + // "SortExpression": "creationTimeMillis ASC". Results with a null value for + // the sort operand are returned at the end of the list. + SortExpression *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s SearchGameSessionsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SearchGameSessionsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SearchGameSessionsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "SearchGameSessionsInput"} + if s.FilterExpression != nil && len(*s.FilterExpression) < 1 { + invalidParams.Add(request.NewErrParamMinLen("FilterExpression", 1)) + } + if s.Limit != nil && *s.Limit < 1 { + invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) + } + if s.NextToken != nil && len(*s.NextToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("NextToken", 1)) + } + if s.SortExpression != nil && len(*s.SortExpression) < 1 { + invalidParams.Add(request.NewErrParamMinLen("SortExpression", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAliasId sets the AliasId field's value. +func (s *SearchGameSessionsInput) SetAliasId(v string) *SearchGameSessionsInput { + s.AliasId = &v + return s +} + +// SetFilterExpression sets the FilterExpression field's value. +func (s *SearchGameSessionsInput) SetFilterExpression(v string) *SearchGameSessionsInput { + s.FilterExpression = &v + return s +} + +// SetFleetId sets the FleetId field's value. +func (s *SearchGameSessionsInput) SetFleetId(v string) *SearchGameSessionsInput { + s.FleetId = &v + return s +} + +// SetLimit sets the Limit field's value. +func (s *SearchGameSessionsInput) SetLimit(v int64) *SearchGameSessionsInput { + s.Limit = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *SearchGameSessionsInput) SetNextToken(v string) *SearchGameSessionsInput { + s.NextToken = &v + return s +} + +// SetSortExpression sets the SortExpression field's value. +func (s *SearchGameSessionsInput) SetSortExpression(v string) *SearchGameSessionsInput { + s.SortExpression = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/SearchGameSessionsOutput +type SearchGameSessionsOutput struct { + _ struct{} `type:"structure"` + + // Collection of objects containing game session properties for each session + // matching the request. + GameSessions []*GameSession `type:"list"` + + // Token that indicates where to resume retrieving results on the next call + // to this action. If no token is returned, these results represent the end + // of the list. + NextToken *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s SearchGameSessionsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SearchGameSessionsOutput) GoString() string { + return s.String() +} + +// SetGameSessions sets the GameSessions field's value. +func (s *SearchGameSessionsOutput) SetGameSessions(v []*GameSession) *SearchGameSessionsOutput { + s.GameSessions = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *SearchGameSessionsOutput) SetNextToken(v string) *SearchGameSessionsOutput { + s.NextToken = &v + return s +} + +// A set of instructions for launching server processes on each instance in +// a fleet. Each instruction set identifies the location of the server executable, +// optional launch parameters, and the number of server processes with this +// configuration to maintain concurrently on the instance. Server process configurations +// make up a fleet's RuntimeConfiguration. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ServerProcess +type ServerProcess struct { + _ struct{} `type:"structure"` + + // Number of server processes using this configuration to run concurrently on + // an instance. + // + // ConcurrentExecutions is a required field + ConcurrentExecutions *int64 `min:"1" type:"integer" required:"true"` + + // Location of the server executable in a game build. All game builds are installed + // on instances at the root : for Windows instances C:\game, and for Linux instances + // /local/game. A Windows game build with an executable file located at MyGame\latest\server.exe + // must have a launch path of "C:\game\MyGame\latest\server.exe". A Linux game + // build with an executable file located at MyGame/latest/server.exe must have + // a launch path of "/local/game/MyGame/latest/server.exe". + // + // LaunchPath is a required field + LaunchPath *string `min:"1" type:"string" required:"true"` + + // Optional list of parameters to pass to the server executable on launch. + Parameters *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ServerProcess) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ServerProcess) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ServerProcess) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ServerProcess"} + if s.ConcurrentExecutions == nil { + invalidParams.Add(request.NewErrParamRequired("ConcurrentExecutions")) + } + if s.ConcurrentExecutions != nil && *s.ConcurrentExecutions < 1 { + invalidParams.Add(request.NewErrParamMinValue("ConcurrentExecutions", 1)) + } + if s.LaunchPath == nil { + invalidParams.Add(request.NewErrParamRequired("LaunchPath")) + } + if s.LaunchPath != nil && len(*s.LaunchPath) < 1 { + invalidParams.Add(request.NewErrParamMinLen("LaunchPath", 1)) + } + if s.Parameters != nil && len(*s.Parameters) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Parameters", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetConcurrentExecutions sets the ConcurrentExecutions field's value. +func (s *ServerProcess) SetConcurrentExecutions(v int64) *ServerProcess { + s.ConcurrentExecutions = &v + return s +} + +// SetLaunchPath sets the LaunchPath field's value. +func (s *ServerProcess) SetLaunchPath(v string) *ServerProcess { + s.LaunchPath = &v + return s +} + +// SetParameters sets the Parameters field's value. +func (s *ServerProcess) SetParameters(v string) *ServerProcess { + s.Parameters = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StartGameSessionPlacementInput +type StartGameSessionPlacementInput struct { + _ struct{} `type:"structure"` + + // Set of information on each player to create a player session for. + DesiredPlayerSessions []*DesiredPlayerSession `type:"list"` + + // Set of developer-defined properties for a game session, formatted as a set + // of type:value pairs. These properties are included in the GameSession object, + // which is passed to the game server with a request to start a new game session + // (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + GameProperties []*GameProperty `type:"list"` + + // Set of developer-defined game session properties, formatted as a single string + // value. This data is included in the GameSession object, which is passed to + // the game server with a request to start a new game session (see Start a Game + // Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + GameSessionData *string `min:"1" type:"string"` + + // Descriptive label that is associated with a game session. Session names do + // not need to be unique. + GameSessionName *string `min:"1" type:"string"` + + // Name of the queue to use to place the new game session. + // + // GameSessionQueueName is a required field + GameSessionQueueName *string `min:"1" type:"string" required:"true"` + + // Maximum number of players that can be connected simultaneously to the game + // session. + // + // MaximumPlayerSessionCount is a required field + MaximumPlayerSessionCount *int64 `type:"integer" required:"true"` + + // Unique identifier to assign to the new game session placement. This value + // is developer-defined. The value must be unique across all regions and cannot + // be reused unless you are resubmitting a canceled or timed-out placement request. + // + // PlacementId is a required field + PlacementId *string `min:"1" type:"string" required:"true"` + + // Set of values, expressed in milliseconds, indicating the amount of latency + // that a player experiences when connected to AWS regions. This information + // is used to try to place the new game session where it can offer the best + // possible gameplay experience for the players. + PlayerLatencies []*PlayerLatency `type:"list"` +} + +// String returns the string representation +func (s StartGameSessionPlacementInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StartGameSessionPlacementInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartGameSessionPlacementInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StartGameSessionPlacementInput"} + if s.GameSessionData != nil && len(*s.GameSessionData) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GameSessionData", 1)) + } + if s.GameSessionName != nil && len(*s.GameSessionName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GameSessionName", 1)) + } + if s.GameSessionQueueName == nil { + invalidParams.Add(request.NewErrParamRequired("GameSessionQueueName")) + } + if s.GameSessionQueueName != nil && len(*s.GameSessionQueueName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GameSessionQueueName", 1)) + } + if s.MaximumPlayerSessionCount == nil { + invalidParams.Add(request.NewErrParamRequired("MaximumPlayerSessionCount")) + } + if s.PlacementId == nil { + invalidParams.Add(request.NewErrParamRequired("PlacementId")) + } + if s.PlacementId != nil && len(*s.PlacementId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PlacementId", 1)) + } + if s.DesiredPlayerSessions != nil { + for i, v := range s.DesiredPlayerSessions { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DesiredPlayerSessions", i), err.(request.ErrInvalidParams)) + } + } + } + if s.GameProperties != nil { + for i, v := range s.GameProperties { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "GameProperties", i), err.(request.ErrInvalidParams)) + } + } + } + if s.PlayerLatencies != nil { + for i, v := range s.PlayerLatencies { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PlayerLatencies", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDesiredPlayerSessions sets the DesiredPlayerSessions field's value. +func (s *StartGameSessionPlacementInput) SetDesiredPlayerSessions(v []*DesiredPlayerSession) *StartGameSessionPlacementInput { + s.DesiredPlayerSessions = v + return s +} + +// SetGameProperties sets the GameProperties field's value. +func (s *StartGameSessionPlacementInput) SetGameProperties(v []*GameProperty) *StartGameSessionPlacementInput { + s.GameProperties = v + return s +} + +// SetGameSessionData sets the GameSessionData field's value. +func (s *StartGameSessionPlacementInput) SetGameSessionData(v string) *StartGameSessionPlacementInput { + s.GameSessionData = &v + return s +} + +// SetGameSessionName sets the GameSessionName field's value. +func (s *StartGameSessionPlacementInput) SetGameSessionName(v string) *StartGameSessionPlacementInput { + s.GameSessionName = &v + return s +} + +// SetGameSessionQueueName sets the GameSessionQueueName field's value. +func (s *StartGameSessionPlacementInput) SetGameSessionQueueName(v string) *StartGameSessionPlacementInput { + s.GameSessionQueueName = &v + return s +} + +// SetMaximumPlayerSessionCount sets the MaximumPlayerSessionCount field's value. +func (s *StartGameSessionPlacementInput) SetMaximumPlayerSessionCount(v int64) *StartGameSessionPlacementInput { + s.MaximumPlayerSessionCount = &v + return s +} + +// SetPlacementId sets the PlacementId field's value. +func (s *StartGameSessionPlacementInput) SetPlacementId(v string) *StartGameSessionPlacementInput { + s.PlacementId = &v + return s +} + +// SetPlayerLatencies sets the PlayerLatencies field's value. +func (s *StartGameSessionPlacementInput) SetPlayerLatencies(v []*PlayerLatency) *StartGameSessionPlacementInput { + s.PlayerLatencies = v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StartGameSessionPlacementOutput +type StartGameSessionPlacementOutput struct { + _ struct{} `type:"structure"` + + // Object that describes the newly created game session placement. This object + // includes all the information provided in the request, as well as start/end + // time stamps and placement status. + GameSessionPlacement *GameSessionPlacement `type:"structure"` +} + +// String returns the string representation +func (s StartGameSessionPlacementOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StartGameSessionPlacementOutput) GoString() string { + return s.String() +} + +// SetGameSessionPlacement sets the GameSessionPlacement field's value. +func (s *StartGameSessionPlacementOutput) SetGameSessionPlacement(v *GameSessionPlacement) *StartGameSessionPlacementOutput { + s.GameSessionPlacement = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StartMatchmakingInput +type StartMatchmakingInput struct { + _ struct{} `type:"structure"` + + // Name of the matchmaking configuration to use for this request. Matchmaking + // configurations must exist in the same region as this request. + // + // ConfigurationName is a required field + ConfigurationName *string `min:"1" type:"string" required:"true"` + + // Information on each player to be matched. This information must include a + // player ID, and may contain player attributes and latency data to be used + // in the matchmaking process. After a successful match, Player objects contain + // the name of the team the player is assigned to. + // + // Players is a required field + Players []*Player `type:"list" required:"true"` + + // Unique identifier for a matchmaking ticket. Use this identifier to track + // the matchmaking ticket status and retrieve match results. + TicketId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s StartMatchmakingInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StartMatchmakingInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartMatchmakingInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StartMatchmakingInput"} + if s.ConfigurationName == nil { + invalidParams.Add(request.NewErrParamRequired("ConfigurationName")) + } + if s.ConfigurationName != nil && len(*s.ConfigurationName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ConfigurationName", 1)) + } + if s.Players == nil { + invalidParams.Add(request.NewErrParamRequired("Players")) + } + if s.TicketId != nil && len(*s.TicketId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TicketId", 1)) + } + if s.Players != nil { + for i, v := range s.Players { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Players", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetConfigurationName sets the ConfigurationName field's value. +func (s *StartMatchmakingInput) SetConfigurationName(v string) *StartMatchmakingInput { + s.ConfigurationName = &v + return s +} + +// SetPlayers sets the Players field's value. +func (s *StartMatchmakingInput) SetPlayers(v []*Player) *StartMatchmakingInput { + s.Players = v + return s +} + +// SetTicketId sets the TicketId field's value. +func (s *StartMatchmakingInput) SetTicketId(v string) *StartMatchmakingInput { + s.TicketId = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StartMatchmakingOutput +type StartMatchmakingOutput struct { + _ struct{} `type:"structure"` + + // Ticket representing the matchmaking request. This object include the information + // included in the request, ticket status, and match results as generated during + // the matchmaking process. + MatchmakingTicket *MatchmakingTicket `type:"structure"` +} + +// String returns the string representation +func (s StartMatchmakingOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StartMatchmakingOutput) GoString() string { + return s.String() +} + +// SetMatchmakingTicket sets the MatchmakingTicket field's value. +func (s *StartMatchmakingOutput) SetMatchmakingTicket(v *MatchmakingTicket) *StartMatchmakingOutput { + s.MatchmakingTicket = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StopGameSessionPlacementInput +type StopGameSessionPlacementInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a game session placement to cancel. + // + // PlacementId is a required field + PlacementId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s StopGameSessionPlacementInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StopGameSessionPlacementInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StopGameSessionPlacementInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StopGameSessionPlacementInput"} + if s.PlacementId == nil { + invalidParams.Add(request.NewErrParamRequired("PlacementId")) + } + if s.PlacementId != nil && len(*s.PlacementId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PlacementId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetPlacementId sets the PlacementId field's value. +func (s *StopGameSessionPlacementInput) SetPlacementId(v string) *StopGameSessionPlacementInput { + s.PlacementId = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StopGameSessionPlacementOutput +type StopGameSessionPlacementOutput struct { + _ struct{} `type:"structure"` + + // Object that describes the canceled game session placement, with CANCELLED + // status and an end time stamp. + GameSessionPlacement *GameSessionPlacement `type:"structure"` +} + +// String returns the string representation +func (s StopGameSessionPlacementOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StopGameSessionPlacementOutput) GoString() string { + return s.String() +} + +// SetGameSessionPlacement sets the GameSessionPlacement field's value. +func (s *StopGameSessionPlacementOutput) SetGameSessionPlacement(v *GameSessionPlacement) *StopGameSessionPlacementOutput { + s.GameSessionPlacement = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StopMatchmakingInput +type StopMatchmakingInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a matchmaking ticket. + // + // TicketId is a required field + TicketId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s StopMatchmakingInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StopMatchmakingInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StopMatchmakingInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StopMatchmakingInput"} + if s.TicketId == nil { + invalidParams.Add(request.NewErrParamRequired("TicketId")) + } + if s.TicketId != nil && len(*s.TicketId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TicketId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetTicketId sets the TicketId field's value. +func (s *StopMatchmakingInput) SetTicketId(v string) *StopMatchmakingInput { + s.TicketId = &v + return s +} + +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StopMatchmakingOutput +type StopMatchmakingOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s StopMatchmakingOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StopMatchmakingOutput) GoString() string { + return s.String() +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateAliasInput +type UpdateAliasInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet alias. Specify the alias you want to update. + // + // AliasId is a required field + AliasId *string `type:"string" required:"true"` + + // Human-readable description of an alias. + Description *string `min:"1" type:"string"` + + // Descriptive label that is associated with an alias. Alias names do not need + // to be unique. + Name *string `min:"1" type:"string"` + + // Object that specifies the fleet and routing type to use for the alias. + RoutingStrategy *RoutingStrategy `type:"structure"` +} + +// String returns the string representation +func (s UpdateAliasInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateAliasInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateAliasInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateAliasInput"} + if s.AliasId == nil { + invalidParams.Add(request.NewErrParamRequired("AliasId")) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAliasId sets the AliasId field's value. +func (s *UpdateAliasInput) SetAliasId(v string) *UpdateAliasInput { + s.AliasId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *UpdateAliasInput) SetDescription(v string) *UpdateAliasInput { + s.Description = &v + return s +} + +// SetName sets the Name field's value. +func (s *UpdateAliasInput) SetName(v string) *UpdateAliasInput { + s.Name = &v + return s +} + +// SetRoutingStrategy sets the RoutingStrategy field's value. +func (s *UpdateAliasInput) SetRoutingStrategy(v *RoutingStrategy) *UpdateAliasInput { + s.RoutingStrategy = v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateAliasOutput +type UpdateAliasOutput struct { + _ struct{} `type:"structure"` + + // Object that contains the updated alias configuration. + Alias *Alias `type:"structure"` +} + +// String returns the string representation +func (s UpdateAliasOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateAliasOutput) GoString() string { + return s.String() +} + +// SetAlias sets the Alias field's value. +func (s *UpdateAliasOutput) SetAlias(v *Alias) *UpdateAliasOutput { + s.Alias = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateBuildInput +type UpdateBuildInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a build to update. + // + // BuildId is a required field + BuildId *string `type:"string" required:"true"` + + // Descriptive label that is associated with a build. Build names do not need + // to be unique. + Name *string `min:"1" type:"string"` + + // Version that is associated with this build. Version strings do not need to + // be unique. + Version *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s UpdateBuildInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateBuildInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateBuildInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateBuildInput"} + if s.BuildId == nil { + invalidParams.Add(request.NewErrParamRequired("BuildId")) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + if s.Version != nil && len(*s.Version) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Version", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetBuildId sets the BuildId field's value. +func (s *UpdateBuildInput) SetBuildId(v string) *UpdateBuildInput { + s.BuildId = &v + return s +} + +// SetName sets the Name field's value. +func (s *UpdateBuildInput) SetName(v string) *UpdateBuildInput { + s.Name = &v + return s +} + +// SetVersion sets the Version field's value. +func (s *UpdateBuildInput) SetVersion(v string) *UpdateBuildInput { + s.Version = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateBuildOutput +type UpdateBuildOutput struct { + _ struct{} `type:"structure"` + + // Object that contains the updated build record. + Build *Build `type:"structure"` +} + +// String returns the string representation +func (s UpdateBuildOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateBuildOutput) GoString() string { + return s.String() +} + +// SetBuild sets the Build field's value. +func (s *UpdateBuildOutput) SetBuild(v *Build) *UpdateBuildOutput { + s.Build = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateFleetAttributesInput +type UpdateFleetAttributesInput struct { + _ struct{} `type:"structure"` + + // Human-readable description of a fleet. + Description *string `min:"1" type:"string"` + + // Unique identifier for a fleet to update attribute metadata for. + // + // FleetId is a required field + FleetId *string `type:"string" required:"true"` + + // Names of metric groups to include this fleet in. Amazon CloudWatch uses a + // fleet metric group is to aggregate metrics from multiple fleets. Use an existing + // metric group name to add this fleet to the group. Or use a new name to create + // a new metric group. A fleet can only be included in one metric group at a + // time. + MetricGroups []*string `type:"list"` + + // Descriptive label that is associated with a fleet. Fleet names do not need + // to be unique. + Name *string `min:"1" type:"string"` + + // Game session protection policy to apply to all new instances created in this + // fleet. Instances that already exist are not affected. You can set protection + // for individual instances using UpdateGameSession. + // + // * NoProtection -- The game session can be terminated during a scale-down + // event. + // + // * FullProtection -- If the game session is in an ACTIVE status, it cannot + // be terminated during a scale-down event. + NewGameSessionProtectionPolicy *string `type:"string" enum:"ProtectionPolicy"` + + // Policy that limits the number of game sessions an individual player can create + // over a span of time. + ResourceCreationLimitPolicy *ResourceCreationLimitPolicy `type:"structure"` +} + +// String returns the string representation +func (s UpdateFleetAttributesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateFleetAttributesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateFleetAttributesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateFleetAttributesInput"} + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.FleetId == nil { + invalidParams.Add(request.NewErrParamRequired("FleetId")) + } + 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 *UpdateFleetAttributesInput) SetDescription(v string) *UpdateFleetAttributesInput { + s.Description = &v + return s +} + +// SetFleetId sets the FleetId field's value. +func (s *UpdateFleetAttributesInput) SetFleetId(v string) *UpdateFleetAttributesInput { + s.FleetId = &v + return s +} + +// SetMetricGroups sets the MetricGroups field's value. +func (s *UpdateFleetAttributesInput) SetMetricGroups(v []*string) *UpdateFleetAttributesInput { + s.MetricGroups = v + return s +} + +// SetName sets the Name field's value. +func (s *UpdateFleetAttributesInput) SetName(v string) *UpdateFleetAttributesInput { + s.Name = &v + return s +} + +// SetNewGameSessionProtectionPolicy sets the NewGameSessionProtectionPolicy field's value. +func (s *UpdateFleetAttributesInput) SetNewGameSessionProtectionPolicy(v string) *UpdateFleetAttributesInput { + s.NewGameSessionProtectionPolicy = &v + return s +} + +// SetResourceCreationLimitPolicy sets the ResourceCreationLimitPolicy field's value. +func (s *UpdateFleetAttributesInput) SetResourceCreationLimitPolicy(v *ResourceCreationLimitPolicy) *UpdateFleetAttributesInput { + s.ResourceCreationLimitPolicy = v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateFleetAttributesOutput +type UpdateFleetAttributesOutput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet that was updated. + FleetId *string `type:"string"` +} + +// String returns the string representation +func (s UpdateFleetAttributesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateFleetAttributesOutput) GoString() string { + return s.String() +} + +// SetFleetId sets the FleetId field's value. +func (s *UpdateFleetAttributesOutput) SetFleetId(v string) *UpdateFleetAttributesOutput { + s.FleetId = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateFleetCapacityInput +type UpdateFleetCapacityInput struct { + _ struct{} `type:"structure"` + + // Number of EC2 instances you want this fleet to host. + DesiredInstances *int64 `type:"integer"` + + // Unique identifier for a fleet to update capacity for. + // + // FleetId is a required field + FleetId *string `type:"string" required:"true"` + + // Maximum value allowed for the fleet's instance count. Default if not set + // is 1. + MaxSize *int64 `type:"integer"` + + // Minimum value allowed for the fleet's instance count. Default if not set + // is 0. + MinSize *int64 `type:"integer"` +} + +// String returns the string representation +func (s UpdateFleetCapacityInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateFleetCapacityInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateFleetCapacityInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateFleetCapacityInput"} + if s.FleetId == nil { + invalidParams.Add(request.NewErrParamRequired("FleetId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDesiredInstances sets the DesiredInstances field's value. +func (s *UpdateFleetCapacityInput) SetDesiredInstances(v int64) *UpdateFleetCapacityInput { + s.DesiredInstances = &v + return s +} + +// SetFleetId sets the FleetId field's value. +func (s *UpdateFleetCapacityInput) SetFleetId(v string) *UpdateFleetCapacityInput { + s.FleetId = &v + return s +} + +// SetMaxSize sets the MaxSize field's value. +func (s *UpdateFleetCapacityInput) SetMaxSize(v int64) *UpdateFleetCapacityInput { + s.MaxSize = &v + return s +} + +// SetMinSize sets the MinSize field's value. +func (s *UpdateFleetCapacityInput) SetMinSize(v int64) *UpdateFleetCapacityInput { + s.MinSize = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateFleetCapacityOutput +type UpdateFleetCapacityOutput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet that was updated. + FleetId *string `type:"string"` +} + +// String returns the string representation +func (s UpdateFleetCapacityOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateFleetCapacityOutput) GoString() string { + return s.String() +} + +// SetFleetId sets the FleetId field's value. +func (s *UpdateFleetCapacityOutput) SetFleetId(v string) *UpdateFleetCapacityOutput { + s.FleetId = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateFleetPortSettingsInput +type UpdateFleetPortSettingsInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet to update port settings for. + // + // FleetId is a required field + FleetId *string `type:"string" required:"true"` + + // Collection of port settings to be added to the fleet record. + InboundPermissionAuthorizations []*IpPermission `type:"list"` + + // Collection of port settings to be removed from the fleet record. + InboundPermissionRevocations []*IpPermission `type:"list"` +} + +// String returns the string representation +func (s UpdateFleetPortSettingsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateFleetPortSettingsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateFleetPortSettingsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateFleetPortSettingsInput"} + if s.FleetId == nil { + invalidParams.Add(request.NewErrParamRequired("FleetId")) + } + if s.InboundPermissionAuthorizations != nil { + for i, v := range s.InboundPermissionAuthorizations { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InboundPermissionAuthorizations", i), err.(request.ErrInvalidParams)) + } + } + } + if s.InboundPermissionRevocations != nil { + for i, v := range s.InboundPermissionRevocations { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InboundPermissionRevocations", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFleetId sets the FleetId field's value. +func (s *UpdateFleetPortSettingsInput) SetFleetId(v string) *UpdateFleetPortSettingsInput { + s.FleetId = &v + return s +} + +// SetInboundPermissionAuthorizations sets the InboundPermissionAuthorizations field's value. +func (s *UpdateFleetPortSettingsInput) SetInboundPermissionAuthorizations(v []*IpPermission) *UpdateFleetPortSettingsInput { + s.InboundPermissionAuthorizations = v + return s +} + +// SetInboundPermissionRevocations sets the InboundPermissionRevocations field's value. +func (s *UpdateFleetPortSettingsInput) SetInboundPermissionRevocations(v []*IpPermission) *UpdateFleetPortSettingsInput { + s.InboundPermissionRevocations = v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateFleetPortSettingsOutput +type UpdateFleetPortSettingsOutput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet that was updated. + FleetId *string `type:"string"` +} + +// String returns the string representation +func (s UpdateFleetPortSettingsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateFleetPortSettingsOutput) GoString() string { + return s.String() +} + +// SetFleetId sets the FleetId field's value. +func (s *UpdateFleetPortSettingsOutput) SetFleetId(v string) *UpdateFleetPortSettingsOutput { + s.FleetId = &v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateGameSessionInput +type UpdateGameSessionInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for the game session to update. + // + // GameSessionId is a required field + GameSessionId *string `min:"1" type:"string" required:"true"` + + // Maximum number of players that can be connected simultaneously to the game + // session. + MaximumPlayerSessionCount *int64 `type:"integer"` + + // Descriptive label that is associated with a game session. Session names do + // not need to be unique. + Name *string `min:"1" type:"string"` + + // Policy determining whether or not the game session accepts new players. + PlayerSessionCreationPolicy *string `type:"string" enum:"PlayerSessionCreationPolicy"` + + // Game session protection policy to apply to this game session only. + // + // * NoProtection -- The game session can be terminated during a scale-down + // event. + // + // * FullProtection -- If the game session is in an ACTIVE status, it cannot + // be terminated during a scale-down event. + ProtectionPolicy *string `type:"string" enum:"ProtectionPolicy"` +} + +// String returns the string representation +func (s UpdateGameSessionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateGameSessionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateGameSessionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateGameSessionInput"} + if s.GameSessionId == nil { + invalidParams.Add(request.NewErrParamRequired("GameSessionId")) + } + if s.GameSessionId != nil && len(*s.GameSessionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GameSessionId", 1)) + } + if s.Name != nil && len(*s.Name) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Name", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetGameSessionId sets the GameSessionId field's value. +func (s *UpdateGameSessionInput) SetGameSessionId(v string) *UpdateGameSessionInput { + s.GameSessionId = &v + return s +} + +// SetMaximumPlayerSessionCount sets the MaximumPlayerSessionCount field's value. +func (s *UpdateGameSessionInput) SetMaximumPlayerSessionCount(v int64) *UpdateGameSessionInput { + s.MaximumPlayerSessionCount = &v + return s +} + +// SetName sets the Name field's value. +func (s *UpdateGameSessionInput) SetName(v string) *UpdateGameSessionInput { + s.Name = &v + return s +} + +// SetPlayerSessionCreationPolicy sets the PlayerSessionCreationPolicy field's value. +func (s *UpdateGameSessionInput) SetPlayerSessionCreationPolicy(v string) *UpdateGameSessionInput { + s.PlayerSessionCreationPolicy = &v + return s +} + +// SetProtectionPolicy sets the ProtectionPolicy field's value. +func (s *UpdateGameSessionInput) SetProtectionPolicy(v string) *UpdateGameSessionInput { + s.ProtectionPolicy = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateGameSessionOutput +type UpdateGameSessionOutput struct { + _ struct{} `type:"structure"` + + // Object that contains the updated game session metadata. + GameSession *GameSession `type:"structure"` +} + +// String returns the string representation +func (s UpdateGameSessionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateGameSessionOutput) GoString() string { + return s.String() +} + +// SetGameSession sets the GameSession field's value. +func (s *UpdateGameSessionOutput) SetGameSession(v *GameSession) *UpdateGameSessionOutput { + s.GameSession = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateGameSessionQueueInput +type UpdateGameSessionQueueInput struct { + _ struct{} `type:"structure"` + + // List of fleets that can be used to fulfill game session placement requests + // in the queue. Fleets are identified by either a fleet ARN or a fleet alias + // ARN. Destinations are listed in default preference order. When updating this + // list, provide a complete list of destinations. + Destinations []*GameSessionQueueDestination `type:"list"` + + // Descriptive label that is associated with game session queue. Queue names + // must be unique within each region. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // Collection of latency policies to apply when processing game sessions placement + // requests with player latency information. Multiple policies are evaluated + // in order of the maximum latency value, starting with the lowest latency values. + // With just one policy, it is enforced at the start of the game session placement + // for the duration period. With multiple policies, each policy is enforced + // consecutively for its duration period. For example, a queue might enforce + // a 60-second policy followed by a 120-second policy, and then no policy for + // the remainder of the placement. When updating policies, provide a complete + // collection of policies. + PlayerLatencyPolicies []*PlayerLatencyPolicy `type:"list"` + + // Maximum time, in seconds, that a new game session placement request remains + // in the queue. When a request exceeds this time, the game session placement + // changes to a TIMED_OUT status. + TimeoutInSeconds *int64 `type:"integer"` +} + +// String returns the string representation +func (s UpdateGameSessionQueueInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateGameSessionQueueInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateGameSessionQueueInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateGameSessionQueueInput"} + 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.Destinations != nil { + for i, v := range s.Destinations { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Destinations", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDestinations sets the Destinations field's value. +func (s *UpdateGameSessionQueueInput) SetDestinations(v []*GameSessionQueueDestination) *UpdateGameSessionQueueInput { + s.Destinations = v + return s +} + +// SetName sets the Name field's value. +func (s *UpdateGameSessionQueueInput) SetName(v string) *UpdateGameSessionQueueInput { + s.Name = &v + return s +} + +// SetPlayerLatencyPolicies sets the PlayerLatencyPolicies field's value. +func (s *UpdateGameSessionQueueInput) SetPlayerLatencyPolicies(v []*PlayerLatencyPolicy) *UpdateGameSessionQueueInput { + s.PlayerLatencyPolicies = v + return s +} + +// SetTimeoutInSeconds sets the TimeoutInSeconds field's value. +func (s *UpdateGameSessionQueueInput) SetTimeoutInSeconds(v int64) *UpdateGameSessionQueueInput { + s.TimeoutInSeconds = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateGameSessionQueueOutput +type UpdateGameSessionQueueOutput struct { + _ struct{} `type:"structure"` + + // Object that describes the newly updated game session queue. + GameSessionQueue *GameSessionQueue `type:"structure"` +} + +// String returns the string representation +func (s UpdateGameSessionQueueOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateGameSessionQueueOutput) GoString() string { + return s.String() +} + +// SetGameSessionQueue sets the GameSessionQueue field's value. +func (s *UpdateGameSessionQueueOutput) SetGameSessionQueue(v *GameSessionQueue) *UpdateGameSessionQueueOutput { + s.GameSessionQueue = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateMatchmakingConfigurationInput +type UpdateMatchmakingConfigurationInput struct { + _ struct{} `type:"structure"` + + // Flag that determines whether or not a match that was created with this configuration + // must be accepted by the matched players. To require acceptance, set to TRUE. + AcceptanceRequired *bool `type:"boolean"` + + // Length of time (in seconds) to wait for players to accept a proposed match. + // If any player rejects the match or fails to accept before the timeout, the + // ticket continues to look for an acceptable match. + AcceptanceTimeoutSeconds *int64 `min:"1" type:"integer"` + + // Number of player slots in a match to keep open for future players. For example, + // if the configuration's rule set specifies a match for a single 12-person + // team, and the additional player count is set to 2, only 10 players are selected + // for the match. + AdditionalPlayerCount *int64 `type:"integer"` + + // Information to attached to all events related to the matchmaking configuration. + CustomEventData *string `type:"string"` + + // Descriptive label that is associated with matchmaking configuration. + Description *string `min:"1" type:"string"` + + // Set of developer-defined properties for a game session, formatted as a set + // of type:value pairs. These properties are included in the GameSession object, + // which is passed to the game server with a request to start a new game session + // (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // This information is added to the new GameSession object that is created for + // a successful match. + GameProperties []*GameProperty `type:"list"` + + // Set of developer-defined game session properties, formatted as a single string + // value. This data is included in the GameSession object, which is passed to + // the game server with a request to start a new game session (see Start a Game + // Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // This information is added to the new GameSession object that is created for + // a successful match. + GameSessionData *string `min:"1" type:"string"` + + // Amazon Resource Name (ARN (http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)) + // that is assigned to a game session queue and uniquely identifies it. Format + // is arn:aws:gamelift:::fleet/fleet-a1234567-b8c9-0d1e-2fa3-b45c6d7e8912. + // These queues are used when placing game sessions for matches that are created + // with this matchmaking configuration. Queues can be located in any region. + GameSessionQueueArns []*string `type:"list"` + + // Unique identifier for a matchmaking configuration to update. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // SNS topic ARN that is set up to receive matchmaking notifications. See Setting + // up Notifications for Matchmaking (http://docs.aws.amazon.com/gamelift/latest/developerguide/match-notification.html) + // for more information. + NotificationTarget *string `type:"string"` + + // Maximum duration, in seconds, that a matchmaking ticket can remain in process + // before timing out. Requests that time out can be resubmitted as needed. + RequestTimeoutSeconds *int64 `min:"1" type:"integer"` + + // Unique identifier for a matchmaking rule set to use with this configuration. + // A matchmaking configuration can only use rule sets that are defined in the + // same region. + RuleSetName *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s UpdateMatchmakingConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateMatchmakingConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateMatchmakingConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateMatchmakingConfigurationInput"} + if s.AcceptanceTimeoutSeconds != nil && *s.AcceptanceTimeoutSeconds < 1 { + invalidParams.Add(request.NewErrParamMinValue("AcceptanceTimeoutSeconds", 1)) + } + if s.Description != nil && len(*s.Description) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Description", 1)) + } + if s.GameSessionData != nil && len(*s.GameSessionData) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GameSessionData", 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.RequestTimeoutSeconds != nil && *s.RequestTimeoutSeconds < 1 { + invalidParams.Add(request.NewErrParamMinValue("RequestTimeoutSeconds", 1)) + } + if s.RuleSetName != nil && len(*s.RuleSetName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RuleSetName", 1)) + } + if s.GameProperties != nil { + for i, v := range s.GameProperties { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "GameProperties", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAcceptanceRequired sets the AcceptanceRequired field's value. +func (s *UpdateMatchmakingConfigurationInput) SetAcceptanceRequired(v bool) *UpdateMatchmakingConfigurationInput { + s.AcceptanceRequired = &v + return s +} + +// SetAcceptanceTimeoutSeconds sets the AcceptanceTimeoutSeconds field's value. +func (s *UpdateMatchmakingConfigurationInput) SetAcceptanceTimeoutSeconds(v int64) *UpdateMatchmakingConfigurationInput { + s.AcceptanceTimeoutSeconds = &v + return s +} + +// SetAdditionalPlayerCount sets the AdditionalPlayerCount field's value. +func (s *UpdateMatchmakingConfigurationInput) SetAdditionalPlayerCount(v int64) *UpdateMatchmakingConfigurationInput { + s.AdditionalPlayerCount = &v + return s +} + +// SetCustomEventData sets the CustomEventData field's value. +func (s *UpdateMatchmakingConfigurationInput) SetCustomEventData(v string) *UpdateMatchmakingConfigurationInput { + s.CustomEventData = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *UpdateMatchmakingConfigurationInput) SetDescription(v string) *UpdateMatchmakingConfigurationInput { + s.Description = &v + return s +} + +// SetGameProperties sets the GameProperties field's value. +func (s *UpdateMatchmakingConfigurationInput) SetGameProperties(v []*GameProperty) *UpdateMatchmakingConfigurationInput { + s.GameProperties = v + return s +} + +// SetGameSessionData sets the GameSessionData field's value. +func (s *UpdateMatchmakingConfigurationInput) SetGameSessionData(v string) *UpdateMatchmakingConfigurationInput { + s.GameSessionData = &v + return s +} + +// SetGameSessionQueueArns sets the GameSessionQueueArns field's value. +func (s *UpdateMatchmakingConfigurationInput) SetGameSessionQueueArns(v []*string) *UpdateMatchmakingConfigurationInput { + s.GameSessionQueueArns = v + return s +} + +// SetName sets the Name field's value. +func (s *UpdateMatchmakingConfigurationInput) SetName(v string) *UpdateMatchmakingConfigurationInput { + s.Name = &v + return s +} + +// SetNotificationTarget sets the NotificationTarget field's value. +func (s *UpdateMatchmakingConfigurationInput) SetNotificationTarget(v string) *UpdateMatchmakingConfigurationInput { + s.NotificationTarget = &v + return s +} + +// SetRequestTimeoutSeconds sets the RequestTimeoutSeconds field's value. +func (s *UpdateMatchmakingConfigurationInput) SetRequestTimeoutSeconds(v int64) *UpdateMatchmakingConfigurationInput { + s.RequestTimeoutSeconds = &v + return s +} + +// SetRuleSetName sets the RuleSetName field's value. +func (s *UpdateMatchmakingConfigurationInput) SetRuleSetName(v string) *UpdateMatchmakingConfigurationInput { + s.RuleSetName = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateMatchmakingConfigurationOutput +type UpdateMatchmakingConfigurationOutput struct { + _ struct{} `type:"structure"` + + // Object that describes the updated matchmaking configuration. + Configuration *MatchmakingConfiguration `type:"structure"` +} + +// String returns the string representation +func (s UpdateMatchmakingConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateMatchmakingConfigurationOutput) GoString() string { + return s.String() +} + +// SetConfiguration sets the Configuration field's value. +func (s *UpdateMatchmakingConfigurationOutput) SetConfiguration(v *MatchmakingConfiguration) *UpdateMatchmakingConfigurationOutput { + s.Configuration = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateRuntimeConfigurationInput +type UpdateRuntimeConfigurationInput struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet to update run-time configuration for. + // + // FleetId is a required field + FleetId *string `type:"string" required:"true"` + + // Instructions for launching server processes on each instance in the fleet. + // The run-time configuration for a fleet has a collection of server process + // configurations, one for each type of server process to run on an instance. + // A server process configuration specifies the location of the server executable, + // launch parameters, and the number of concurrent processes with that configuration + // to maintain on each instance. + // + // RuntimeConfiguration is a required field + RuntimeConfiguration *RuntimeConfiguration `type:"structure" required:"true"` +} + +// String returns the string representation +func (s UpdateRuntimeConfigurationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateRuntimeConfigurationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateRuntimeConfigurationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateRuntimeConfigurationInput"} + if s.FleetId == nil { + invalidParams.Add(request.NewErrParamRequired("FleetId")) + } + if s.RuntimeConfiguration == nil { + invalidParams.Add(request.NewErrParamRequired("RuntimeConfiguration")) + } + if s.RuntimeConfiguration != nil { + if err := s.RuntimeConfiguration.Validate(); err != nil { + invalidParams.AddNested("RuntimeConfiguration", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetFleetId sets the FleetId field's value. +func (s *UpdateRuntimeConfigurationInput) SetFleetId(v string) *UpdateRuntimeConfigurationInput { + s.FleetId = &v + return s +} + +// SetRuntimeConfiguration sets the RuntimeConfiguration field's value. +func (s *UpdateRuntimeConfigurationInput) SetRuntimeConfiguration(v *RuntimeConfiguration) *UpdateRuntimeConfigurationInput { + s.RuntimeConfiguration = v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateRuntimeConfigurationOutput +type UpdateRuntimeConfigurationOutput struct { + _ struct{} `type:"structure"` + + // The run-time configuration currently in force. If the update was successful, + // this object matches the one in the request. + RuntimeConfiguration *RuntimeConfiguration `type:"structure"` +} + +// String returns the string representation +func (s UpdateRuntimeConfigurationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateRuntimeConfigurationOutput) GoString() string { + return s.String() +} + +// SetRuntimeConfiguration sets the RuntimeConfiguration field's value. +func (s *UpdateRuntimeConfigurationOutput) SetRuntimeConfiguration(v *RuntimeConfiguration) *UpdateRuntimeConfigurationOutput { + s.RuntimeConfiguration = v + return s +} + +// Represents the input for a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ValidateMatchmakingRuleSetInput +type ValidateMatchmakingRuleSetInput struct { + _ struct{} `type:"structure"` + + // Collection of matchmaking rules to validate, formatted as a JSON string. + // + // RuleSetBody is a required field + RuleSetBody *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ValidateMatchmakingRuleSetInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ValidateMatchmakingRuleSetInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ValidateMatchmakingRuleSetInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ValidateMatchmakingRuleSetInput"} + if s.RuleSetBody == nil { + invalidParams.Add(request.NewErrParamRequired("RuleSetBody")) + } + if s.RuleSetBody != nil && len(*s.RuleSetBody) < 1 { + invalidParams.Add(request.NewErrParamMinLen("RuleSetBody", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetRuleSetBody sets the RuleSetBody field's value. +func (s *ValidateMatchmakingRuleSetInput) SetRuleSetBody(v string) *ValidateMatchmakingRuleSetInput { + s.RuleSetBody = &v + return s +} + +// Represents the returned data in response to a request action. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ValidateMatchmakingRuleSetOutput +type ValidateMatchmakingRuleSetOutput struct { + _ struct{} `type:"structure"` + + // Response indicating whether or not the rule set is valid. + Valid *bool `type:"boolean"` +} + +// String returns the string representation +func (s ValidateMatchmakingRuleSetOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ValidateMatchmakingRuleSetOutput) GoString() string { + return s.String() +} + +// SetValid sets the Valid field's value. +func (s *ValidateMatchmakingRuleSetOutput) SetValid(v bool) *ValidateMatchmakingRuleSetOutput { + s.Valid = &v + return s +} + +// Represents an authorization for a VPC peering connection between the VPC +// for an Amazon GameLift fleet and another VPC on an account you have access +// to. This authorization must exist and be valid for the peering connection +// to be established. Authorizations are valid for 24 hours after they are issued. +// +// VPC peering connection operations include: +// +// * CreateVpcPeeringAuthorization +// +// * DescribeVpcPeeringAuthorizations +// +// * DeleteVpcPeeringAuthorization +// +// * CreateVpcPeeringConnection +// +// * DescribeVpcPeeringConnections +// +// * DeleteVpcPeeringConnection +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/VpcPeeringAuthorization +type VpcPeeringAuthorization struct { + _ struct{} `type:"structure"` + + // Time stamp indicating when this authorization was issued. Format is a number + // expressed in Unix time as milliseconds (for example "1469498468.057"). + CreationTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // Time stamp indicating when this authorization expires (24 hours after issuance). + // Format is a number expressed in Unix time as milliseconds (for example "1469498468.057"). + ExpirationTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // Unique identifier for the AWS account that you use to manage your Amazon + // GameLift fleet. You can find your Account ID in the AWS Management Console + // under account settings. + GameLiftAwsAccountId *string `min:"1" type:"string"` + + PeerVpcAwsAccountId *string `min:"1" type:"string"` + + // Unique identifier for a VPC with resources to be accessed by your Amazon + // GameLift fleet. The VPC must be in the same region where your fleet is deployed. + // To get VPC information, including IDs, use the Virtual Private Cloud service + // tools, including the VPC Dashboard in the AWS Management Console. + PeerVpcId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s VpcPeeringAuthorization) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s VpcPeeringAuthorization) GoString() string { + return s.String() +} + +// SetCreationTime sets the CreationTime field's value. +func (s *VpcPeeringAuthorization) SetCreationTime(v time.Time) *VpcPeeringAuthorization { + s.CreationTime = &v + return s +} + +// SetExpirationTime sets the ExpirationTime field's value. +func (s *VpcPeeringAuthorization) SetExpirationTime(v time.Time) *VpcPeeringAuthorization { + s.ExpirationTime = &v + return s +} + +// SetGameLiftAwsAccountId sets the GameLiftAwsAccountId field's value. +func (s *VpcPeeringAuthorization) SetGameLiftAwsAccountId(v string) *VpcPeeringAuthorization { + s.GameLiftAwsAccountId = &v + return s +} + +// SetPeerVpcAwsAccountId sets the PeerVpcAwsAccountId field's value. +func (s *VpcPeeringAuthorization) SetPeerVpcAwsAccountId(v string) *VpcPeeringAuthorization { + s.PeerVpcAwsAccountId = &v + return s +} + +// SetPeerVpcId sets the PeerVpcId field's value. +func (s *VpcPeeringAuthorization) SetPeerVpcId(v string) *VpcPeeringAuthorization { + s.PeerVpcId = &v + return s +} + +// Represents a peering connection between a VPC on one of your AWS accounts +// and the VPC for your Amazon GameLift fleets. This record may be for an active +// peering connection or a pending connection that has not yet been established. +// +// VPC peering connection operations include: +// +// * CreateVpcPeeringAuthorization +// +// * DescribeVpcPeeringAuthorizations +// +// * DeleteVpcPeeringAuthorization +// +// * CreateVpcPeeringConnection +// +// * DescribeVpcPeeringConnections +// +// * DeleteVpcPeeringConnection +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/VpcPeeringConnection +type VpcPeeringConnection struct { + _ struct{} `type:"structure"` + + // Unique identifier for a fleet. This ID determines the ID of the Amazon GameLift + // VPC for your fleet. + FleetId *string `type:"string"` + + // Unique identifier for the VPC that contains the Amazon GameLift fleet for + // this connection. This VPC is managed by Amazon GameLift and does not appear + // in your AWS account. + GameLiftVpcId *string `min:"1" type:"string"` + + // CIDR block of IPv4 addresses assigned to the VPC peering connection for the + // GameLift VPC. The peered VPC also has an IPv4 CIDR block associated with + // it; these blocks cannot overlap or the peering connection cannot be created. + IpV4CidrBlock *string `min:"1" type:"string"` + + // Unique identifier for a VPC with resources to be accessed by your Amazon + // GameLift fleet. The VPC must be in the same region where your fleet is deployed. + // To get VPC information, including IDs, use the Virtual Private Cloud service + // tools, including the VPC Dashboard in the AWS Management Console. + PeerVpcId *string `min:"1" type:"string"` + + // Object that contains status information about the connection. Status indicates + // if a connection is pending, successful, or failed. + Status *VpcPeeringConnectionStatus `type:"structure"` + + // Unique identifier that is automatically assigned to the connection record. + // This ID is referenced in VPC peering connection events, and is used when + // deleting a connection with DeleteVpcPeeringConnection. + VpcPeeringConnectionId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s VpcPeeringConnection) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s VpcPeeringConnection) GoString() string { + return s.String() +} + +// SetFleetId sets the FleetId field's value. +func (s *VpcPeeringConnection) SetFleetId(v string) *VpcPeeringConnection { + s.FleetId = &v + return s +} + +// SetGameLiftVpcId sets the GameLiftVpcId field's value. +func (s *VpcPeeringConnection) SetGameLiftVpcId(v string) *VpcPeeringConnection { + s.GameLiftVpcId = &v + return s +} + +// SetIpV4CidrBlock sets the IpV4CidrBlock field's value. +func (s *VpcPeeringConnection) SetIpV4CidrBlock(v string) *VpcPeeringConnection { + s.IpV4CidrBlock = &v + return s +} + +// SetPeerVpcId sets the PeerVpcId field's value. +func (s *VpcPeeringConnection) SetPeerVpcId(v string) *VpcPeeringConnection { + s.PeerVpcId = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *VpcPeeringConnection) SetStatus(v *VpcPeeringConnectionStatus) *VpcPeeringConnection { + s.Status = v + return s +} + +// SetVpcPeeringConnectionId sets the VpcPeeringConnectionId field's value. +func (s *VpcPeeringConnection) SetVpcPeeringConnectionId(v string) *VpcPeeringConnection { + s.VpcPeeringConnectionId = &v + return s +} + +// Represents status information for a VPC peering connection. Status is associated +// with a VpcPeeringConnection object. Status codes and messages are provided +// from EC2 (). (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_VpcPeeringConnectionStateReason.html) +// Connection status information is also communicated as a fleet Event. +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/VpcPeeringConnectionStatus +type VpcPeeringConnectionStatus struct { + _ struct{} `type:"structure"` + + // Code indicating the status of a VPC peering connection. + Code *string `min:"1" type:"string"` + + // Additional messaging associated with the connection status. + Message *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s VpcPeeringConnectionStatus) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s VpcPeeringConnectionStatus) GoString() string { + return s.String() +} + +// SetCode sets the Code field's value. +func (s *VpcPeeringConnectionStatus) SetCode(v string) *VpcPeeringConnectionStatus { + s.Code = &v + return s +} + +// SetMessage sets the Message field's value. +func (s *VpcPeeringConnectionStatus) SetMessage(v string) *VpcPeeringConnectionStatus { + s.Message = &v + return s +} + +const ( + // AcceptanceTypeAccept is a AcceptanceType enum value + AcceptanceTypeAccept = "ACCEPT" + + // AcceptanceTypeReject is a AcceptanceType enum value + AcceptanceTypeReject = "REJECT" +) + +const ( + // BuildStatusInitialized is a BuildStatus enum value + BuildStatusInitialized = "INITIALIZED" + + // BuildStatusReady is a BuildStatus enum value + BuildStatusReady = "READY" + + // BuildStatusFailed is a BuildStatus enum value + BuildStatusFailed = "FAILED" +) + +const ( + // ComparisonOperatorTypeGreaterThanOrEqualToThreshold is a ComparisonOperatorType enum value + ComparisonOperatorTypeGreaterThanOrEqualToThreshold = "GreaterThanOrEqualToThreshold" + + // ComparisonOperatorTypeGreaterThanThreshold is a ComparisonOperatorType enum value + ComparisonOperatorTypeGreaterThanThreshold = "GreaterThanThreshold" + + // ComparisonOperatorTypeLessThanThreshold is a ComparisonOperatorType enum value + ComparisonOperatorTypeLessThanThreshold = "LessThanThreshold" + + // ComparisonOperatorTypeLessThanOrEqualToThreshold is a ComparisonOperatorType enum value + ComparisonOperatorTypeLessThanOrEqualToThreshold = "LessThanOrEqualToThreshold" +) + +const ( + // EC2InstanceTypeT2Micro is a EC2InstanceType enum value + EC2InstanceTypeT2Micro = "t2.micro" + + // EC2InstanceTypeT2Small is a EC2InstanceType enum value + EC2InstanceTypeT2Small = "t2.small" + + // EC2InstanceTypeT2Medium is a EC2InstanceType enum value + EC2InstanceTypeT2Medium = "t2.medium" + + // EC2InstanceTypeT2Large is a EC2InstanceType enum value + EC2InstanceTypeT2Large = "t2.large" + + // EC2InstanceTypeC3Large is a EC2InstanceType enum value + EC2InstanceTypeC3Large = "c3.large" + + // EC2InstanceTypeC3Xlarge is a EC2InstanceType enum value + EC2InstanceTypeC3Xlarge = "c3.xlarge" + + // EC2InstanceTypeC32xlarge is a EC2InstanceType enum value + EC2InstanceTypeC32xlarge = "c3.2xlarge" + + // EC2InstanceTypeC34xlarge is a EC2InstanceType enum value + EC2InstanceTypeC34xlarge = "c3.4xlarge" + + // EC2InstanceTypeC38xlarge is a EC2InstanceType enum value + EC2InstanceTypeC38xlarge = "c3.8xlarge" + + // EC2InstanceTypeC4Large is a EC2InstanceType enum value + EC2InstanceTypeC4Large = "c4.large" + + // EC2InstanceTypeC4Xlarge is a EC2InstanceType enum value + EC2InstanceTypeC4Xlarge = "c4.xlarge" + + // EC2InstanceTypeC42xlarge is a EC2InstanceType enum value + EC2InstanceTypeC42xlarge = "c4.2xlarge" + + // EC2InstanceTypeC44xlarge is a EC2InstanceType enum value + EC2InstanceTypeC44xlarge = "c4.4xlarge" + + // EC2InstanceTypeC48xlarge is a EC2InstanceType enum value + EC2InstanceTypeC48xlarge = "c4.8xlarge" + + // EC2InstanceTypeR3Large is a EC2InstanceType enum value + EC2InstanceTypeR3Large = "r3.large" + + // EC2InstanceTypeR3Xlarge is a EC2InstanceType enum value + EC2InstanceTypeR3Xlarge = "r3.xlarge" + + // EC2InstanceTypeR32xlarge is a EC2InstanceType enum value + EC2InstanceTypeR32xlarge = "r3.2xlarge" + + // EC2InstanceTypeR34xlarge is a EC2InstanceType enum value + EC2InstanceTypeR34xlarge = "r3.4xlarge" + + // EC2InstanceTypeR38xlarge is a EC2InstanceType enum value + EC2InstanceTypeR38xlarge = "r3.8xlarge" + + // EC2InstanceTypeR4Large is a EC2InstanceType enum value + EC2InstanceTypeR4Large = "r4.large" + + // EC2InstanceTypeR4Xlarge is a EC2InstanceType enum value + EC2InstanceTypeR4Xlarge = "r4.xlarge" + + // EC2InstanceTypeR42xlarge is a EC2InstanceType enum value + EC2InstanceTypeR42xlarge = "r4.2xlarge" + + // EC2InstanceTypeR44xlarge is a EC2InstanceType enum value + EC2InstanceTypeR44xlarge = "r4.4xlarge" + + // EC2InstanceTypeR48xlarge is a EC2InstanceType enum value + EC2InstanceTypeR48xlarge = "r4.8xlarge" + + // EC2InstanceTypeR416xlarge is a EC2InstanceType enum value + EC2InstanceTypeR416xlarge = "r4.16xlarge" + + // EC2InstanceTypeM3Medium is a EC2InstanceType enum value + EC2InstanceTypeM3Medium = "m3.medium" + + // EC2InstanceTypeM3Large is a EC2InstanceType enum value + EC2InstanceTypeM3Large = "m3.large" + + // EC2InstanceTypeM3Xlarge is a EC2InstanceType enum value + EC2InstanceTypeM3Xlarge = "m3.xlarge" + + // EC2InstanceTypeM32xlarge is a EC2InstanceType enum value + EC2InstanceTypeM32xlarge = "m3.2xlarge" + + // EC2InstanceTypeM4Large is a EC2InstanceType enum value + EC2InstanceTypeM4Large = "m4.large" + + // EC2InstanceTypeM4Xlarge is a EC2InstanceType enum value + EC2InstanceTypeM4Xlarge = "m4.xlarge" + + // EC2InstanceTypeM42xlarge is a EC2InstanceType enum value + EC2InstanceTypeM42xlarge = "m4.2xlarge" + + // EC2InstanceTypeM44xlarge is a EC2InstanceType enum value + EC2InstanceTypeM44xlarge = "m4.4xlarge" + + // EC2InstanceTypeM410xlarge is a EC2InstanceType enum value + EC2InstanceTypeM410xlarge = "m4.10xlarge" +) + +const ( + // EventCodeGenericEvent is a EventCode enum value + EventCodeGenericEvent = "GENERIC_EVENT" + + // EventCodeFleetCreated is a EventCode enum value + EventCodeFleetCreated = "FLEET_CREATED" + + // EventCodeFleetDeleted is a EventCode enum value + EventCodeFleetDeleted = "FLEET_DELETED" + + // EventCodeFleetScalingEvent is a EventCode enum value + EventCodeFleetScalingEvent = "FLEET_SCALING_EVENT" + + // EventCodeFleetStateDownloading is a EventCode enum value + EventCodeFleetStateDownloading = "FLEET_STATE_DOWNLOADING" + + // EventCodeFleetStateValidating is a EventCode enum value + EventCodeFleetStateValidating = "FLEET_STATE_VALIDATING" + + // EventCodeFleetStateBuilding is a EventCode enum value + EventCodeFleetStateBuilding = "FLEET_STATE_BUILDING" + + // EventCodeFleetStateActivating is a EventCode enum value + EventCodeFleetStateActivating = "FLEET_STATE_ACTIVATING" + + // EventCodeFleetStateActive is a EventCode enum value + EventCodeFleetStateActive = "FLEET_STATE_ACTIVE" + + // EventCodeFleetStateError is a EventCode enum value + EventCodeFleetStateError = "FLEET_STATE_ERROR" + + // EventCodeFleetInitializationFailed is a EventCode enum value + EventCodeFleetInitializationFailed = "FLEET_INITIALIZATION_FAILED" + + // EventCodeFleetBinaryDownloadFailed is a EventCode enum value + EventCodeFleetBinaryDownloadFailed = "FLEET_BINARY_DOWNLOAD_FAILED" + + // EventCodeFleetValidationLaunchPathNotFound is a EventCode enum value + EventCodeFleetValidationLaunchPathNotFound = "FLEET_VALIDATION_LAUNCH_PATH_NOT_FOUND" + + // EventCodeFleetValidationExecutableRuntimeFailure is a EventCode enum value + EventCodeFleetValidationExecutableRuntimeFailure = "FLEET_VALIDATION_EXECUTABLE_RUNTIME_FAILURE" + + // EventCodeFleetValidationTimedOut is a EventCode enum value + EventCodeFleetValidationTimedOut = "FLEET_VALIDATION_TIMED_OUT" + + // EventCodeFleetActivationFailed is a EventCode enum value + EventCodeFleetActivationFailed = "FLEET_ACTIVATION_FAILED" + + // EventCodeFleetActivationFailedNoInstances is a EventCode enum value + EventCodeFleetActivationFailedNoInstances = "FLEET_ACTIVATION_FAILED_NO_INSTANCES" + + // EventCodeFleetNewGameSessionProtectionPolicyUpdated is a EventCode enum value + EventCodeFleetNewGameSessionProtectionPolicyUpdated = "FLEET_NEW_GAME_SESSION_PROTECTION_POLICY_UPDATED" + + // EventCodeServerProcessInvalidPath is a EventCode enum value + EventCodeServerProcessInvalidPath = "SERVER_PROCESS_INVALID_PATH" + + // EventCodeServerProcessSdkInitializationTimeout is a EventCode enum value + EventCodeServerProcessSdkInitializationTimeout = "SERVER_PROCESS_SDK_INITIALIZATION_TIMEOUT" + + // EventCodeServerProcessProcessReadyTimeout is a EventCode enum value + EventCodeServerProcessProcessReadyTimeout = "SERVER_PROCESS_PROCESS_READY_TIMEOUT" + + // EventCodeServerProcessCrashed is a EventCode enum value + EventCodeServerProcessCrashed = "SERVER_PROCESS_CRASHED" + + // EventCodeServerProcessTerminatedUnhealthy is a EventCode enum value + EventCodeServerProcessTerminatedUnhealthy = "SERVER_PROCESS_TERMINATED_UNHEALTHY" + + // EventCodeServerProcessForceTerminated is a EventCode enum value + EventCodeServerProcessForceTerminated = "SERVER_PROCESS_FORCE_TERMINATED" + + // EventCodeServerProcessProcessExitTimeout is a EventCode enum value + EventCodeServerProcessProcessExitTimeout = "SERVER_PROCESS_PROCESS_EXIT_TIMEOUT" + + // EventCodeGameSessionActivationTimeout is a EventCode enum value + EventCodeGameSessionActivationTimeout = "GAME_SESSION_ACTIVATION_TIMEOUT" + + // EventCodeFleetCreationExtractingBuild is a EventCode enum value + EventCodeFleetCreationExtractingBuild = "FLEET_CREATION_EXTRACTING_BUILD" + + // EventCodeFleetCreationRunningInstaller is a EventCode enum value + EventCodeFleetCreationRunningInstaller = "FLEET_CREATION_RUNNING_INSTALLER" + + // EventCodeFleetCreationValidatingRuntimeConfig is a EventCode enum value + EventCodeFleetCreationValidatingRuntimeConfig = "FLEET_CREATION_VALIDATING_RUNTIME_CONFIG" + + // EventCodeFleetVpcPeeringSucceeded is a EventCode enum value + EventCodeFleetVpcPeeringSucceeded = "FLEET_VPC_PEERING_SUCCEEDED" + + // EventCodeFleetVpcPeeringFailed is a EventCode enum value + EventCodeFleetVpcPeeringFailed = "FLEET_VPC_PEERING_FAILED" + + // EventCodeFleetVpcPeeringDeleted is a EventCode enum value + EventCodeFleetVpcPeeringDeleted = "FLEET_VPC_PEERING_DELETED" +) + +const ( + // FleetStatusNew is a FleetStatus enum value + FleetStatusNew = "NEW" + + // FleetStatusDownloading is a FleetStatus enum value + FleetStatusDownloading = "DOWNLOADING" + + // FleetStatusValidating is a FleetStatus enum value + FleetStatusValidating = "VALIDATING" + + // FleetStatusBuilding is a FleetStatus enum value + FleetStatusBuilding = "BUILDING" + + // FleetStatusActivating is a FleetStatus enum value + FleetStatusActivating = "ACTIVATING" + + // FleetStatusActive is a FleetStatus enum value + FleetStatusActive = "ACTIVE" + + // FleetStatusDeleting is a FleetStatus enum value + FleetStatusDeleting = "DELETING" + + // FleetStatusError is a FleetStatus enum value + FleetStatusError = "ERROR" + + // FleetStatusTerminated is a FleetStatus enum value + FleetStatusTerminated = "TERMINATED" +) + +const ( + // GameSessionPlacementStatePending is a GameSessionPlacementState enum value + GameSessionPlacementStatePending = "PENDING" + + // GameSessionPlacementStateFulfilled is a GameSessionPlacementState enum value + GameSessionPlacementStateFulfilled = "FULFILLED" + + // GameSessionPlacementStateCancelled is a GameSessionPlacementState enum value + GameSessionPlacementStateCancelled = "CANCELLED" + + // GameSessionPlacementStateTimedOut is a GameSessionPlacementState enum value + GameSessionPlacementStateTimedOut = "TIMED_OUT" +) + +const ( + // GameSessionStatusActive is a GameSessionStatus enum value + GameSessionStatusActive = "ACTIVE" + + // GameSessionStatusActivating is a GameSessionStatus enum value + GameSessionStatusActivating = "ACTIVATING" + + // GameSessionStatusTerminated is a GameSessionStatus enum value + GameSessionStatusTerminated = "TERMINATED" + + // GameSessionStatusTerminating is a GameSessionStatus enum value + GameSessionStatusTerminating = "TERMINATING" + + // GameSessionStatusError is a GameSessionStatus enum value + GameSessionStatusError = "ERROR" +) + +const ( + // InstanceStatusPending is a InstanceStatus enum value + InstanceStatusPending = "PENDING" + + // InstanceStatusActive is a InstanceStatus enum value + InstanceStatusActive = "ACTIVE" + + // InstanceStatusTerminating is a InstanceStatus enum value + InstanceStatusTerminating = "TERMINATING" +) + +const ( + // IpProtocolTcp is a IpProtocol enum value + IpProtocolTcp = "TCP" + + // IpProtocolUdp is a IpProtocol enum value + IpProtocolUdp = "UDP" +) + +const ( + // MatchmakingConfigurationStatusCancelled is a MatchmakingConfigurationStatus enum value + MatchmakingConfigurationStatusCancelled = "CANCELLED" + + // MatchmakingConfigurationStatusCompleted is a MatchmakingConfigurationStatus enum value + MatchmakingConfigurationStatusCompleted = "COMPLETED" + + // MatchmakingConfigurationStatusFailed is a MatchmakingConfigurationStatus enum value + MatchmakingConfigurationStatusFailed = "FAILED" + + // MatchmakingConfigurationStatusPlacing is a MatchmakingConfigurationStatus enum value + MatchmakingConfigurationStatusPlacing = "PLACING" + + // MatchmakingConfigurationStatusQueued is a MatchmakingConfigurationStatus enum value + MatchmakingConfigurationStatusQueued = "QUEUED" + + // MatchmakingConfigurationStatusRequiresAcceptance is a MatchmakingConfigurationStatus enum value + MatchmakingConfigurationStatusRequiresAcceptance = "REQUIRES_ACCEPTANCE" + + // MatchmakingConfigurationStatusSearching is a MatchmakingConfigurationStatus enum value + MatchmakingConfigurationStatusSearching = "SEARCHING" + + // MatchmakingConfigurationStatusTimedOut is a MatchmakingConfigurationStatus enum value + MatchmakingConfigurationStatusTimedOut = "TIMED_OUT" +) + +const ( + // MetricNameActivatingGameSessions is a MetricName enum value + MetricNameActivatingGameSessions = "ActivatingGameSessions" + + // MetricNameActiveGameSessions is a MetricName enum value + MetricNameActiveGameSessions = "ActiveGameSessions" + + // MetricNameActiveInstances is a MetricName enum value + MetricNameActiveInstances = "ActiveInstances" + + // MetricNameAvailableGameSessions is a MetricName enum value + MetricNameAvailableGameSessions = "AvailableGameSessions" + + // MetricNameAvailablePlayerSessions is a MetricName enum value + MetricNameAvailablePlayerSessions = "AvailablePlayerSessions" + + // MetricNameCurrentPlayerSessions is a MetricName enum value + MetricNameCurrentPlayerSessions = "CurrentPlayerSessions" + + // MetricNameIdleInstances is a MetricName enum value + MetricNameIdleInstances = "IdleInstances" + + // MetricNamePercentAvailableGameSessions is a MetricName enum value + MetricNamePercentAvailableGameSessions = "PercentAvailableGameSessions" + + // MetricNamePercentIdleInstances is a MetricName enum value + MetricNamePercentIdleInstances = "PercentIdleInstances" + + // MetricNameQueueDepth is a MetricName enum value + MetricNameQueueDepth = "QueueDepth" + + // MetricNameWaitTime is a MetricName enum value + MetricNameWaitTime = "WaitTime" +) + +const ( + // OperatingSystemWindows2012 is a OperatingSystem enum value + OperatingSystemWindows2012 = "WINDOWS_2012" + + // OperatingSystemAmazonLinux is a OperatingSystem enum value + OperatingSystemAmazonLinux = "AMAZON_LINUX" +) + +const ( + // PlayerSessionCreationPolicyAcceptAll is a PlayerSessionCreationPolicy enum value + PlayerSessionCreationPolicyAcceptAll = "ACCEPT_ALL" + + // PlayerSessionCreationPolicyDenyAll is a PlayerSessionCreationPolicy enum value + PlayerSessionCreationPolicyDenyAll = "DENY_ALL" +) + +const ( + // PlayerSessionStatusReserved is a PlayerSessionStatus enum value + PlayerSessionStatusReserved = "RESERVED" + + // PlayerSessionStatusActive is a PlayerSessionStatus enum value + PlayerSessionStatusActive = "ACTIVE" + + // PlayerSessionStatusCompleted is a PlayerSessionStatus enum value + PlayerSessionStatusCompleted = "COMPLETED" + + // PlayerSessionStatusTimedout is a PlayerSessionStatus enum value + PlayerSessionStatusTimedout = "TIMEDOUT" +) + +const ( + // ProtectionPolicyNoProtection is a ProtectionPolicy enum value + ProtectionPolicyNoProtection = "NoProtection" + + // ProtectionPolicyFullProtection is a ProtectionPolicy enum value + ProtectionPolicyFullProtection = "FullProtection" +) + +const ( + // RoutingStrategyTypeSimple is a RoutingStrategyType enum value + RoutingStrategyTypeSimple = "SIMPLE" + + // RoutingStrategyTypeTerminal is a RoutingStrategyType enum value + RoutingStrategyTypeTerminal = "TERMINAL" +) + +const ( + // ScalingAdjustmentTypeChangeInCapacity is a ScalingAdjustmentType enum value + ScalingAdjustmentTypeChangeInCapacity = "ChangeInCapacity" + + // ScalingAdjustmentTypeExactCapacity is a ScalingAdjustmentType enum value + ScalingAdjustmentTypeExactCapacity = "ExactCapacity" + + // ScalingAdjustmentTypePercentChangeInCapacity is a ScalingAdjustmentType enum value + ScalingAdjustmentTypePercentChangeInCapacity = "PercentChangeInCapacity" +) + +const ( + // ScalingStatusTypeActive is a ScalingStatusType enum value + ScalingStatusTypeActive = "ACTIVE" + + // ScalingStatusTypeUpdateRequested is a ScalingStatusType enum value + ScalingStatusTypeUpdateRequested = "UPDATE_REQUESTED" + + // ScalingStatusTypeUpdating is a ScalingStatusType enum value + ScalingStatusTypeUpdating = "UPDATING" + + // ScalingStatusTypeDeleteRequested is a ScalingStatusType enum value + ScalingStatusTypeDeleteRequested = "DELETE_REQUESTED" + + // ScalingStatusTypeDeleting is a ScalingStatusType enum value + ScalingStatusTypeDeleting = "DELETING" + + // ScalingStatusTypeDeleted is a ScalingStatusType enum value + ScalingStatusTypeDeleted = "DELETED" + + // ScalingStatusTypeError is a ScalingStatusType enum value + ScalingStatusTypeError = "ERROR" +) diff --git a/vendor/github.com/aws/aws-sdk-go/service/gamelift/doc.go b/vendor/github.com/aws/aws-sdk-go/service/gamelift/doc.go new file mode 100644 index 000000000..d73c39d65 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/gamelift/doc.go @@ -0,0 +1,304 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package gamelift provides the client and types for making API +// requests to Amazon GameLift. +// +// Amazon GameLift is a managed service for developers who need a scalable, +// dedicated server solution for their multiplayer games. Amazon GameLift provides +// tools for the following tasks: (1) acquire computing resources and deploy +// game servers, (2) scale game server capacity to meet player demand, (3) host +// game sessions and manage player access, and (4) track in-depth metrics on +// player usage and server performance. +// +// The Amazon GameLift service API includes two important function sets: +// +// * Manage game sessions and player access -- Retrieve information on available +// game sessions; create new game sessions; send player requests to join +// a game session. +// +// * Configure and manage game server resources -- Manage builds, fleets, +// queues, and aliases; set autoscaling policies; retrieve logs and metrics. +// +// This reference guide describes the low-level service API for Amazon GameLift. +// You can use the API functionality with these tools: +// +// * The Amazon Web Services software development kit (AWS SDK (http://aws.amazon.com/tools/#sdk)) +// is available in multiple languages (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-supported.html#gamelift-supported-clients) +// including C++ and C#. Use the SDK to access the API programmatically from +// an application, such as a game client. +// +// * The AWS command-line interface (http://aws.amazon.com/cli/) (CLI) tool +// is primarily useful for handling administrative actions, such as setting +// up and managing Amazon GameLift settings and resources. You can use the +// AWS CLI to manage all of your AWS services. +// +// * The AWS Management Console (https://console.aws.amazon.com/gamelift/home) +// for Amazon GameLift provides a web interface to manage your Amazon GameLift +// settings and resources. The console includes a dashboard for tracking +// key resources, including builds and fleets, and displays usage and performance +// metrics for your games as customizable graphs. +// +// * Amazon GameLift Local is a tool for testing your game's integration +// with Amazon GameLift before deploying it on the service. This tools supports +// a subset of key API actions, which can be called from either the AWS CLI +// or programmatically. See Testing an Integration (http://docs.aws.amazon.com/gamelift/latest/developerguide/integration-testing-local.html). +// +// MORE RESOURCES +// +// * Amazon GameLift Developer Guide (http://docs.aws.amazon.com/gamelift/latest/developerguide/) +// -- Learn more about Amazon GameLift features and how to use them. +// +// * Lumberyard and Amazon GameLift Tutorials (https://gamedev.amazon.com/forums/tutorials) +// -- Get started fast with walkthroughs and sample projects. +// +// * GameDev Blog (http://aws.amazon.com/blogs/gamedev/) -- Stay up to date +// with new features and techniques. +// +// * GameDev Forums (https://gamedev.amazon.com/forums/spaces/123/gamelift-discussion.html) +// -- Connect with the GameDev community. +// +// * Amazon GameLift Document History (http://docs.aws.amazon.com/gamelift/latest/developerguide/doc-history.html) +// -- See changes to the Amazon GameLift service, SDKs, and documentation, +// as well as links to release notes. +// +// API SUMMARY +// +// This list offers a functional overview of the Amazon GameLift service API. +// +// Managing Games and Players +// +// Use these actions to start new game sessions, find existing game sessions, +// track game session status and other information, and enable player access +// to game sessions. +// +// * Discover existing game sessions +// +// SearchGameSessions -- Retrieve all available game sessions or search for +// game sessions that match a set of criteria. +// +// * Start new game sessions +// +// Start new games with Queues to find the best available hosting resources +// across multiple regions, minimize player latency, and balance game session +// activity for efficiency and cost effectiveness. +// +// StartGameSessionPlacement -- Request a new game session placement and add +// one or more players to it. +// +// DescribeGameSessionPlacement -- Get details on a placement request, including +// status. +// +// StopGameSessionPlacement -- Cancel a placement request. +// +// CreateGameSession -- Start a new game session on a specific fleet. Available +// in Amazon GameLift Local. +// +// * Start new game sessions with FlexMatch matchmaking +// +// StartMatchmaking -- Request matchmaking for one players or a group who want +// to play together. +// +// DescribeMatchmaking -- Get details on a matchmaking request, including status. +// +// AcceptMatch -- Register that a player accepts a proposed match, for matches +// that require player acceptance. +// +// StopMatchmaking -- Cancel a matchmaking request. +// +// * Manage game session data +// +// DescribeGameSessions -- Retrieve metadata for one or more game sessions, +// including length of time active and current player count. Available in +// Amazon GameLift Local. +// +// DescribeGameSessionDetails -- Retrieve metadata and the game session protection +// setting for one or more game sessions. +// +// UpdateGameSession -- Change game session settings, such as maximum player +// count and join policy. +// +// GetGameSessionLogUrl -- Get the location of saved logs for a game session. +// +// * Manage player sessions +// +// CreatePlayerSession -- Send a request for a player to join a game session. +// Available in Amazon GameLift Local. +// +// CreatePlayerSessions -- Send a request for multiple players to join a game +// session. Available in Amazon GameLift Local. +// +// DescribePlayerSessions -- Get details on player activity, including status, +// playing time, and player data. Available in Amazon GameLift Local. +// +// Setting Up and Managing Game Servers +// +// When setting up Amazon GameLift resources for your game, you first create +// a game build (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-intro.html) +// and upload it to Amazon GameLift. You can then use these actions to configure +// and manage a fleet of resources to run your game servers, scale capacity +// to meet player demand, access performance and utilization metrics, and more. +// +// * Manage game builds +// +// CreateBuild -- Create a new build using files stored in an Amazon S3 bucket. +// (Update uploading permissions with RequestUploadCredentials.) To create +// a build and upload files from a local path, use the AWS CLI command upload-build. +// +// ListBuilds -- Get a list of all builds uploaded to a Amazon GameLift region. +// +// DescribeBuild -- Retrieve information associated with a build. +// +// UpdateBuild -- Change build metadata, including build name and version. +// +// DeleteBuild -- Remove a build from Amazon GameLift. +// +// * Manage fleets +// +// CreateFleet -- Configure and activate a new fleet to run a build's game servers. +// +// ListFleets -- Get a list of all fleet IDs in a Amazon GameLift region (all +// statuses). +// +// DeleteFleet -- Terminate a fleet that is no longer running game servers or +// hosting players. +// +// View / update fleet configurations. +// +// DescribeFleetAttributes / UpdateFleetAttributes -- View or change a fleet's +// metadata and settings for game session protection and resource creation +// limits. +// +// DescribeFleetPortSettings / UpdateFleetPortSettings -- View or change the +// inbound permissions (IP address and port setting ranges) allowed for a +// fleet. +// +// DescribeRuntimeConfiguration / UpdateRuntimeConfiguration -- View or change +// what server processes (and how many) to run on each instance in a fleet. +// +// * Control fleet capacity +// +// DescribeEC2InstanceLimits -- Retrieve maximum number of instances allowed +// for the current AWS account and the current usage level. +// +// DescribeFleetCapacity / UpdateFleetCapacity -- Retrieve the capacity settings +// and the current number of instances in a fleet; adjust fleet capacity +// settings to scale up or down. +// +// Autoscale -- Manage autoscaling rules and apply them to a fleet. +// +// PutScalingPolicy -- Create a new autoscaling policy, or update an existing +// one. +// +// DescribeScalingPolicies -- Retrieve an existing autoscaling policy. +// +// DeleteScalingPolicy -- Delete an autoscaling policy and stop it from affecting +// a fleet's capacity. +// +// * Manage VPC peering connections for fleets +// +// CreateVpcPeeringAuthorization -- Authorize a peering connection to one of +// your VPCs. +// +// DescribeVpcPeeringAuthorizations -- Retrieve valid peering connection authorizations. +// +// +// DeleteVpcPeeringAuthorization -- Delete a peering connection authorization. +// +// CreateVpcPeeringConnection -- Establish a peering connection between the +// VPC for a Amazon GameLift fleet and one of your VPCs. +// +// DescribeVpcPeeringConnections -- Retrieve information on active or pending +// VPC peering connections with a Amazon GameLift fleet. +// +// DeleteVpcPeeringConnection -- Delete a VPC peering connection with a Amazon +// GameLift fleet. +// +// * Access fleet activity statistics +// +// DescribeFleetUtilization -- Get current data on the number of server processes, +// game sessions, and players currently active on a fleet. +// +// DescribeFleetEvents -- Get a fleet's logged events for a specified time span. +// +// DescribeGameSessions -- Retrieve metadata associated with one or more game +// sessions, including length of time active and current player count. +// +// * Remotely access an instance +// +// DescribeInstances -- Get information on each instance in a fleet, including +// instance ID, IP address, and status. +// +// GetInstanceAccess -- Request access credentials needed to remotely connect +// to a specified instance in a fleet. +// +// * Manage fleet aliases +// +// CreateAlias -- Define a new alias and optionally assign it to a fleet. +// +// ListAliases -- Get all fleet aliases defined in a Amazon GameLift region. +// +// DescribeAlias -- Retrieve information on an existing alias. +// +// UpdateAlias -- Change settings for a alias, such as redirecting it from one +// fleet to another. +// +// DeleteAlias -- Remove an alias from the region. +// +// ResolveAlias -- Get the fleet ID that a specified alias points to. +// +// * Manage game session queues +// +// CreateGameSessionQueue -- Create a queue for processing requests for new +// game sessions. +// +// DescribeGameSessionQueues -- Retrieve game session queues defined in a Amazon +// GameLift region. +// +// UpdateGameSessionQueue -- Change the configuration of a game session queue. +// +// DeleteGameSessionQueue -- Remove a game session queue from the region. +// +// * Manage FlexMatch resources +// +// CreateMatchmakingConfiguration -- Create a matchmaking configuration with +// instructions for building a player group and placing in a new game session. +// +// +// DescribeMatchmakingConfigurations -- Retrieve matchmaking configurations +// defined a Amazon GameLift region. +// +// UpdateMatchmakingConfiguration -- Change settings for matchmaking configuration. +// queue. +// +// DeleteMatchmakingConfiguration -- Remove a matchmaking configuration from +// the region. +// +// CreateMatchmakingRuleSet -- Create a set of rules to use when searching for +// player matches. +// +// DescribeMatchmakingRuleSets -- Retrieve matchmaking rule sets defined in +// a Amazon GameLift region. +// +// ValidateMatchmakingRuleSet -- Verify syntax for a set of matchmaking rules. +// +// See https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01 for more information on this service. +// +// See gamelift package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/gamelift/ +// +// Using the Client +// +// To contact Amazon GameLift with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Amazon GameLift client GameLift for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/gamelift/#New +package gamelift diff --git a/vendor/github.com/aws/aws-sdk-go/service/gamelift/errors.go b/vendor/github.com/aws/aws-sdk-go/service/gamelift/errors.go new file mode 100644 index 000000000..d04e78d0d --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/gamelift/errors.go @@ -0,0 +1,102 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package gamelift + +const ( + + // ErrCodeConflictException for service response error code + // "ConflictException". + // + // The requested operation would cause a conflict with the current state of + // a service resource associated with the request. Resolve the conflict before + // retrying this request. + ErrCodeConflictException = "ConflictException" + + // ErrCodeFleetCapacityExceededException for service response error code + // "FleetCapacityExceededException". + // + // The specified fleet has no available instances to fulfill a CreateGameSession + // request. Clients can retry such requests immediately or after a waiting period. + ErrCodeFleetCapacityExceededException = "FleetCapacityExceededException" + + // ErrCodeGameSessionFullException for service response error code + // "GameSessionFullException". + // + // The game instance is currently full and cannot allow the requested player(s) + // to join. Clients can retry such requests immediately or after a waiting period. + ErrCodeGameSessionFullException = "GameSessionFullException" + + // ErrCodeIdempotentParameterMismatchException for service response error code + // "IdempotentParameterMismatchException". + // + // A game session with this custom ID string already exists in this fleet. Resolve + // this conflict before retrying this request. + ErrCodeIdempotentParameterMismatchException = "IdempotentParameterMismatchException" + + // ErrCodeInternalServiceException for service response error code + // "InternalServiceException". + // + // The service encountered an unrecoverable internal failure while processing + // the request. Clients can retry such requests immediately or after a waiting + // period. + ErrCodeInternalServiceException = "InternalServiceException" + + // ErrCodeInvalidFleetStatusException for service response error code + // "InvalidFleetStatusException". + // + // The requested operation would cause a conflict with the current state of + // a resource associated with the request and/or the fleet. Resolve the conflict + // before retrying. + ErrCodeInvalidFleetStatusException = "InvalidFleetStatusException" + + // ErrCodeInvalidGameSessionStatusException for service response error code + // "InvalidGameSessionStatusException". + // + // The requested operation would cause a conflict with the current state of + // a resource associated with the request and/or the game instance. Resolve + // the conflict before retrying. + ErrCodeInvalidGameSessionStatusException = "InvalidGameSessionStatusException" + + // ErrCodeInvalidRequestException for service response error code + // "InvalidRequestException". + // + // One or more parameter values in the request are invalid. Correct the invalid + // parameter values before retrying. + ErrCodeInvalidRequestException = "InvalidRequestException" + + // ErrCodeLimitExceededException for service response error code + // "LimitExceededException". + // + // The requested operation would cause the resource to exceed the allowed service + // limit. Resolve the issue before retrying. + ErrCodeLimitExceededException = "LimitExceededException" + + // ErrCodeNotFoundException for service response error code + // "NotFoundException". + // + // A service resource associated with the request could not be found. Clients + // should not retry such requests. + ErrCodeNotFoundException = "NotFoundException" + + // ErrCodeTerminalRoutingStrategyException for service response error code + // "TerminalRoutingStrategyException". + // + // The service is unable to resolve the routing for a particular alias because + // it has a terminal RoutingStrategy associated with it. The message returned + // in this exception is the message defined in the routing strategy itself. + // Such requests should only be retried if the routing strategy for the specified + // alias is modified. + ErrCodeTerminalRoutingStrategyException = "TerminalRoutingStrategyException" + + // ErrCodeUnauthorizedException for service response error code + // "UnauthorizedException". + // + // The client failed authentication. Clients should not retry such requests. + ErrCodeUnauthorizedException = "UnauthorizedException" + + // ErrCodeUnsupportedRegionException for service response error code + // "UnsupportedRegionException". + // + // The requested operation is not supported in the region specified. + ErrCodeUnsupportedRegionException = "UnsupportedRegionException" +) diff --git a/vendor/github.com/aws/aws-sdk-go/service/gamelift/service.go b/vendor/github.com/aws/aws-sdk-go/service/gamelift/service.go new file mode 100644 index 000000000..b79ac2047 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/gamelift/service.go @@ -0,0 +1,95 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package gamelift + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol/jsonrpc" +) + +// GameLift provides the API operation methods for making requests to +// Amazon GameLift. See this package's package overview docs +// for details on the service. +// +// GameLift methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type GameLift struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "gamelift" // Service endpoint prefix API calls made to. + EndpointsID = ServiceName // Service ID for Regions and Endpoints metadata. +) + +// New creates a new instance of the GameLift client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// // Create a GameLift client from just a session. +// svc := gamelift.New(mySession) +// +// // Create a GameLift client with additional configuration +// svc := gamelift.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *GameLift { + c := p.ClientConfig(EndpointsID, cfgs...) + return newClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion, c.SigningName) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion, signingName string) *GameLift { + svc := &GameLift{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + SigningName: signingName, + SigningRegion: signingRegion, + Endpoint: endpoint, + APIVersion: "2015-10-01", + JSONVersion: "1.1", + TargetPrefix: "GameLift", + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a GameLift operation and runs any +// custom request initialization. +func (c *GameLift) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/glue/api.go b/vendor/github.com/aws/aws-sdk-go/service/glue/api.go index 8caea4d59..96398b1f2 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/glue/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/glue/api.go @@ -363,6 +363,94 @@ func (c *Glue) BatchDeleteTableWithContext(ctx aws.Context, input *BatchDeleteTa return out, req.Send() } +const opBatchDeleteTableVersion = "BatchDeleteTableVersion" + +// BatchDeleteTableVersionRequest generates a "aws/request.Request" representing the +// client's request for the BatchDeleteTableVersion operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 BatchDeleteTableVersion for more information on using the BatchDeleteTableVersion +// 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 BatchDeleteTableVersionRequest method. +// req, resp := client.BatchDeleteTableVersionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchDeleteTableVersion +func (c *Glue) BatchDeleteTableVersionRequest(input *BatchDeleteTableVersionInput) (req *request.Request, output *BatchDeleteTableVersionOutput) { + op := &request.Operation{ + Name: opBatchDeleteTableVersion, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &BatchDeleteTableVersionInput{} + } + + output = &BatchDeleteTableVersionOutput{} + req = c.newRequest(op, input, output) + return +} + +// BatchDeleteTableVersion API operation for AWS Glue. +// +// Deletes a specified batch of versions of a table. +// +// 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's +// API operation BatchDeleteTableVersion for usage and error information. +// +// Returned Error Codes: +// * ErrCodeEntityNotFoundException "EntityNotFoundException" +// A specified entity does not exist +// +// * ErrCodeInvalidInputException "InvalidInputException" +// The input provided was not valid. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// An internal service error occurred. +// +// * ErrCodeOperationTimeoutException "OperationTimeoutException" +// The operation timed out. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchDeleteTableVersion +func (c *Glue) BatchDeleteTableVersion(input *BatchDeleteTableVersionInput) (*BatchDeleteTableVersionOutput, error) { + req, out := c.BatchDeleteTableVersionRequest(input) + return out, req.Send() +} + +// BatchDeleteTableVersionWithContext is the same as BatchDeleteTableVersion with the addition of +// the ability to pass a context and additional request options. +// +// See BatchDeleteTableVersion 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 *Glue) BatchDeleteTableVersionWithContext(ctx aws.Context, input *BatchDeleteTableVersionInput, opts ...request.Option) (*BatchDeleteTableVersionOutput, error) { + req, out := c.BatchDeleteTableVersionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opBatchGetPartition = "BatchGetPartition" // BatchGetPartitionRequest generates a "aws/request.Request" representing the @@ -495,7 +583,7 @@ func (c *Glue) BatchStopJobRunRequest(input *BatchStopJobRunInput) (req *request // BatchStopJobRun API operation for AWS Glue. // -// Stops a batch of job runs for a given job. +// Stops one or more job runs for a specified 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 @@ -685,6 +773,9 @@ func (c *Glue) CreateConnectionRequest(input *CreateConnectionInput) (req *reque // * ErrCodeOperationTimeoutException "OperationTimeoutException" // The operation timed out. // +// * ErrCodeResourceNumberLimitExceededException "ResourceNumberLimitExceededException" +// A resource numerical limit was exceeded. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateConnection func (c *Glue) CreateConnection(input *CreateConnectionInput) (*CreateConnectionOutput, error) { req, out := c.CreateConnectionRequest(input) @@ -1060,6 +1151,9 @@ func (c *Glue) CreateJobRequest(input *CreateJobInput) (req *request.Request, ou // * ErrCodeResourceNumberLimitExceededException "ResourceNumberLimitExceededException" // A resource numerical limit was exceeded. // +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Two processes are trying to modify a resource simultaneously. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateJob func (c *Glue) CreateJob(input *CreateJobInput) (*CreateJobOutput, error) { req, out := c.CreateJobRequest(input) @@ -1220,7 +1314,7 @@ func (c *Glue) CreateScriptRequest(input *CreateScriptInput) (req *request.Reque // CreateScript API operation for AWS Glue. // -// Transforms a directed acyclic graph (DAG) into a Python script. +// Transforms a directed acyclic graph (DAG) into code. // // 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 @@ -1415,6 +1509,9 @@ func (c *Glue) CreateTriggerRequest(input *CreateTriggerInput) (req *request.Req // * ErrCodeInvalidInputException "InvalidInputException" // The input provided was not valid. // +// * ErrCodeIdempotentParameterMismatchException "IdempotentParameterMismatchException" +// The same unique identifier was associated with two different records. +// // * ErrCodeInternalServiceException "InternalServiceException" // An internal service error occurred. // @@ -1424,6 +1521,9 @@ func (c *Glue) CreateTriggerRequest(input *CreateTriggerInput) (req *request.Req // * ErrCodeResourceNumberLimitExceededException "ResourceNumberLimitExceededException" // A resource numerical limit was exceeded. // +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Two processes are trying to modify a resource simultaneously. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateTrigger func (c *Glue) CreateTrigger(input *CreateTriggerInput) (*CreateTriggerOutput, error) { req, out := c.CreateTriggerRequest(input) @@ -1515,6 +1615,9 @@ func (c *Glue) CreateUserDefinedFunctionRequest(input *CreateUserDefinedFunction // * ErrCodeOperationTimeoutException "OperationTimeoutException" // The operation timed out. // +// * ErrCodeResourceNumberLimitExceededException "ResourceNumberLimitExceededException" +// A resource numerical limit was exceeded. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateUserDefinedFunction func (c *Glue) CreateUserDefinedFunction(input *CreateUserDefinedFunctionInput) (*CreateUserDefinedFunctionOutput, error) { req, out := c.CreateUserDefinedFunctionRequest(input) @@ -2010,7 +2113,7 @@ func (c *Glue) DeleteJobRequest(input *DeleteJobInput) (req *request.Request, ou // DeleteJob API operation for AWS Glue. // -// Deletes a specified job. +// Deletes a specified job. If the job is not found, no exception is thrown. // // 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 @@ -2227,6 +2330,94 @@ func (c *Glue) DeleteTableWithContext(ctx aws.Context, input *DeleteTableInput, return out, req.Send() } +const opDeleteTableVersion = "DeleteTableVersion" + +// DeleteTableVersionRequest generates a "aws/request.Request" representing the +// client's request for the DeleteTableVersion operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DeleteTableVersion for more information on using the DeleteTableVersion +// 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 DeleteTableVersionRequest method. +// req, resp := client.DeleteTableVersionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteTableVersion +func (c *Glue) DeleteTableVersionRequest(input *DeleteTableVersionInput) (req *request.Request, output *DeleteTableVersionOutput) { + op := &request.Operation{ + Name: opDeleteTableVersion, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteTableVersionInput{} + } + + output = &DeleteTableVersionOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteTableVersion API operation for AWS Glue. +// +// Deletes a specified version of a table. +// +// 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's +// API operation DeleteTableVersion for usage and error information. +// +// Returned Error Codes: +// * ErrCodeEntityNotFoundException "EntityNotFoundException" +// A specified entity does not exist +// +// * ErrCodeInvalidInputException "InvalidInputException" +// The input provided was not valid. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// An internal service error occurred. +// +// * ErrCodeOperationTimeoutException "OperationTimeoutException" +// The operation timed out. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteTableVersion +func (c *Glue) DeleteTableVersion(input *DeleteTableVersionInput) (*DeleteTableVersionOutput, error) { + req, out := c.DeleteTableVersionRequest(input) + return out, req.Send() +} + +// DeleteTableVersionWithContext is the same as DeleteTableVersion with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteTableVersion 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 *Glue) DeleteTableVersionWithContext(ctx aws.Context, input *DeleteTableVersionInput, opts ...request.Option) (*DeleteTableVersionOutput, error) { + req, out := c.DeleteTableVersionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteTrigger = "DeleteTrigger" // DeleteTriggerRequest generates a "aws/request.Request" representing the @@ -2271,7 +2462,8 @@ func (c *Glue) DeleteTriggerRequest(input *DeleteTriggerInput) (req *request.Req // DeleteTrigger API operation for AWS Glue. // -// Deletes a specified trigger. +// Deletes a specified trigger. If the trigger is not found, no exception is +// thrown. // // 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 @@ -2290,6 +2482,9 @@ func (c *Glue) DeleteTriggerRequest(input *DeleteTriggerInput) (req *request.Req // * ErrCodeOperationTimeoutException "OperationTimeoutException" // The operation timed out. // +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Two processes are trying to modify a resource simultaneously. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteTrigger func (c *Glue) DeleteTrigger(input *DeleteTriggerInput) (*DeleteTriggerOutput, error) { req, out := c.DeleteTriggerRequest(input) @@ -4645,7 +4840,7 @@ func (c *Glue) GetPlanRequest(input *GetPlanInput) (req *request.Request, output // GetPlan API operation for AWS Glue. // -// Gets a Python script to perform a specified mapping. +// Gets code to perform a specified mapping. // // 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 @@ -4774,6 +4969,94 @@ func (c *Glue) GetTableWithContext(ctx aws.Context, input *GetTableInput, opts . return out, req.Send() } +const opGetTableVersion = "GetTableVersion" + +// GetTableVersionRequest generates a "aws/request.Request" representing the +// client's request for the GetTableVersion operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 GetTableVersion for more information on using the GetTableVersion +// 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 GetTableVersionRequest method. +// req, resp := client.GetTableVersionRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTableVersion +func (c *Glue) GetTableVersionRequest(input *GetTableVersionInput) (req *request.Request, output *GetTableVersionOutput) { + op := &request.Operation{ + Name: opGetTableVersion, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetTableVersionInput{} + } + + output = &GetTableVersionOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetTableVersion API operation for AWS Glue. +// +// Retrieves a specified version of a table. +// +// 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's +// API operation GetTableVersion for usage and error information. +// +// Returned Error Codes: +// * ErrCodeEntityNotFoundException "EntityNotFoundException" +// A specified entity does not exist +// +// * ErrCodeInvalidInputException "InvalidInputException" +// The input provided was not valid. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// An internal service error occurred. +// +// * ErrCodeOperationTimeoutException "OperationTimeoutException" +// The operation timed out. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTableVersion +func (c *Glue) GetTableVersion(input *GetTableVersionInput) (*GetTableVersionOutput, error) { + req, out := c.GetTableVersionRequest(input) + return out, req.Send() +} + +// GetTableVersionWithContext is the same as GetTableVersion with the addition of +// the ability to pass a context and additional request options. +// +// See GetTableVersion 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 *Glue) GetTableVersionWithContext(ctx aws.Context, input *GetTableVersionInput, opts ...request.Option) (*GetTableVersionOutput, error) { + req, out := c.GetTableVersionRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetTableVersions = "GetTableVersions" // GetTableVersionsRequest generates a "aws/request.Request" representing the @@ -6013,7 +6296,8 @@ func (c *Glue) StartTriggerRequest(input *StartTriggerInput) (req *request.Reque // StartTrigger API operation for AWS Glue. // -// Starts an existing trigger. +// Starts an existing trigger. See Triggering Jobs (http://docs.aws.amazon.com/glue/latest/dg/trigger-job.html) +// for information about how different types of trigger are started. // // 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 @@ -6306,6 +6590,9 @@ func (c *Glue) StopTriggerRequest(input *StopTriggerInput) (req *request.Request // * ErrCodeOperationTimeoutException "OperationTimeoutException" // The operation timed out. // +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Two processes are trying to modify a resource simultaneously. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StopTrigger func (c *Glue) StopTrigger(input *StopTriggerInput) (*StopTriggerOutput, error) { req, out := c.StopTriggerRequest(input) @@ -6929,6 +7216,9 @@ func (c *Glue) UpdateJobRequest(input *UpdateJobInput) (req *request.Request, ou // * ErrCodeOperationTimeoutException "OperationTimeoutException" // The operation timed out. // +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Two processes are trying to modify a resource simultaneously. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateJob func (c *Glue) UpdateJob(input *UpdateJobInput) (*UpdateJobOutput, error) { req, out := c.UpdateJobRequest(input) @@ -7108,6 +7398,9 @@ func (c *Glue) UpdateTableRequest(input *UpdateTableInput) (req *request.Request // * ErrCodeConcurrentModificationException "ConcurrentModificationException" // Two processes are trying to modify a resource simultaneously. // +// * ErrCodeResourceNumberLimitExceededException "ResourceNumberLimitExceededException" +// A resource numerical limit was exceeded. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateTable func (c *Glue) UpdateTable(input *UpdateTableInput) (*UpdateTableOutput, error) { req, out := c.UpdateTableRequest(input) @@ -7196,6 +7489,9 @@ func (c *Glue) UpdateTriggerRequest(input *UpdateTriggerInput) (req *request.Req // * ErrCodeOperationTimeoutException "OperationTimeoutException" // The operation timed out. // +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Two processes are trying to modify a resource simultaneously. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateTrigger func (c *Glue) UpdateTrigger(input *UpdateTriggerInput) (*UpdateTriggerOutput, error) { req, out := c.UpdateTriggerRequest(input) @@ -7312,6 +7608,17 @@ type Action struct { _ struct{} `type:"structure"` // Arguments to be passed to the job. + // + // You can specify arguments here that your own job-execution script consumes, + // as well as arguments that AWS Glue itself consumes. + // + // For information about how to specify and consume your own Job arguments, + // see the Calling AWS Glue APIs in Python (http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) + // topic in the developer guide. + // + // For information about the key-value pairs that AWS Glue consumes to set up + // your job, see the Special Parameters Used by AWS Glue (http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-glue-arguments.html) + // topic in the developer guide. Arguments map[string]*string `type:"map"` // The name of a job to be executed. @@ -7687,7 +7994,8 @@ type BatchDeleteTableInput struct { // the AWS account ID is used by default. CatalogId *string `min:"1" type:"string"` - // The name of the catalog database where the tables to delete reside. + // The name of the catalog database where the tables to delete reside. For Hive + // compatibility, this name is entirely lowercase. // // DatabaseName is a required field DatabaseName *string `min:"1" type:"string" required:"true"` @@ -7772,6 +8080,117 @@ func (s *BatchDeleteTableOutput) SetErrors(v []*TableError) *BatchDeleteTableOut return s } +// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchDeleteTableVersionRequest +type BatchDeleteTableVersionInput struct { + _ struct{} `type:"structure"` + + // The ID of the Data Catalog where the tables reside. If none is supplied, + // the AWS account ID is used by default. + CatalogId *string `min:"1" type:"string"` + + // The database in the catalog in which the table resides. For Hive compatibility, + // this name is entirely lowercase. + // + // DatabaseName is a required field + DatabaseName *string `min:"1" type:"string" required:"true"` + + // The name of the table. For Hive compatibility, this name is entirely lowercase. + // + // TableName is a required field + TableName *string `min:"1" type:"string" required:"true"` + + // A list of the IDs of versions to be deleted. + // + // VersionIds is a required field + VersionIds []*string `type:"list" required:"true"` +} + +// String returns the string representation +func (s BatchDeleteTableVersionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s BatchDeleteTableVersionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *BatchDeleteTableVersionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "BatchDeleteTableVersionInput"} + 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.VersionIds == nil { + invalidParams.Add(request.NewErrParamRequired("VersionIds")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCatalogId sets the CatalogId field's value. +func (s *BatchDeleteTableVersionInput) SetCatalogId(v string) *BatchDeleteTableVersionInput { + s.CatalogId = &v + return s +} + +// SetDatabaseName sets the DatabaseName field's value. +func (s *BatchDeleteTableVersionInput) SetDatabaseName(v string) *BatchDeleteTableVersionInput { + s.DatabaseName = &v + return s +} + +// SetTableName sets the TableName field's value. +func (s *BatchDeleteTableVersionInput) SetTableName(v string) *BatchDeleteTableVersionInput { + s.TableName = &v + return s +} + +// SetVersionIds sets the VersionIds field's value. +func (s *BatchDeleteTableVersionInput) SetVersionIds(v []*string) *BatchDeleteTableVersionInput { + s.VersionIds = v + return s +} + +// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchDeleteTableVersionResponse +type BatchDeleteTableVersionOutput struct { + _ struct{} `type:"structure"` + + // A list of errors encountered while trying to delete the specified table versions. + Errors []*TableVersionError `type:"list"` +} + +// String returns the string representation +func (s BatchDeleteTableVersionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s BatchDeleteTableVersionOutput) GoString() string { + return s.String() +} + +// SetErrors sets the Errors field's value. +func (s *BatchDeleteTableVersionOutput) SetErrors(v []*TableVersionError) *BatchDeleteTableVersionOutput { + s.Errors = v + return s +} + // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchGetPartitionRequest type BatchGetPartitionInput struct { _ struct{} `type:"structure"` @@ -7902,19 +8321,18 @@ func (s *BatchGetPartitionOutput) SetUnprocessedKeys(v []*PartitionValueList) *B return s } -// Details about the job run and the error that occurred while trying to submit -// it for stopping. +// Records an error that occurred when attempting to stop a specified JobRun. // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchStopJobRunError type BatchStopJobRunError struct { _ struct{} `type:"structure"` - // The details of the error that occurred. + // Specifies details about the error that was encountered. ErrorDetail *ErrorDetail `type:"structure"` - // The name of the job. + // The name of the Job in question. JobName *string `min:"1" type:"string"` - // The job run Id. + // The JobRunId of the JobRun in question. JobRunId *string `min:"1" type:"string"` } @@ -7950,12 +8368,12 @@ func (s *BatchStopJobRunError) SetJobRunId(v string) *BatchStopJobRunError { type BatchStopJobRunInput struct { _ struct{} `type:"structure"` - // The name of the job whose job runs are to be stopped. + // The name of the Job in question. // // JobName is a required field JobName *string `min:"1" type:"string" required:"true"` - // A list of job run Ids of the given job to be stopped. + // A list of the JobRunIds that should be stopped for that Job. // // JobRunIds is a required field JobRunIds []*string `min:"1" type:"list" required:"true"` @@ -8009,11 +8427,11 @@ func (s *BatchStopJobRunInput) SetJobRunIds(v []*string) *BatchStopJobRunInput { type BatchStopJobRunOutput struct { _ struct{} `type:"structure"` - // A list containing the job run Ids and details of the error that occurred - // for each job run while submitting to stop. + // A list of the errors that were encountered in tryng to stop JobRuns, including + // the JobRunId for which each error was encountered and details about the error. Errors []*BatchStopJobRunError `type:"list"` - // A list of job runs which are successfully submitted for stopping. + // A list of the JobRuns that were successfully submitted for stopping. SuccessfulSubmissions []*BatchStopJobRunSuccessfulSubmission `type:"list"` } @@ -8039,15 +8457,15 @@ func (s *BatchStopJobRunOutput) SetSuccessfulSubmissions(v []*BatchStopJobRunSuc return s } -// Details about the job run which is submitted successfully for stopping. +// Records a successful request to stop a specified JobRun. // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchStopJobRunSuccessfulSubmission type BatchStopJobRunSuccessfulSubmission struct { _ struct{} `type:"structure"` - // The name of the job. + // The Name of the Job in question. JobName *string `min:"1" type:"string"` - // The job run Id. + // The JobRunId of the JobRun in question. JobRunId *string `min:"1" type:"string"` } @@ -8505,13 +8923,15 @@ func (s *Column) SetType(v string) *Column { type Condition struct { _ struct{} `type:"structure"` - // The name of the job in question. + // The name of the Job to whose JobRuns this condition applies and on which + // this trigger waits. JobName *string `min:"1" type:"string"` // A logical operator. LogicalOperator *string `type:"string" enum:"LogicalOperator"` - // The condition state. + // The condition state. Currently, the values supported are SUCCEEDED, STOPPED + // and FAILED. State *string `type:"string" enum:"JobRunState"` } @@ -8661,11 +9081,15 @@ type ConnectionInput struct { _ struct{} `type:"structure"` // A list of key-value pairs used as parameters for this connection. - ConnectionProperties map[string]*string `type:"map"` + // + // ConnectionProperties is a required field + ConnectionProperties map[string]*string `type:"map" required:"true"` // The type of the connection. Currently, only JDBC is supported; SFTP is not // supported. - ConnectionType *string `type:"string" enum:"ConnectionType"` + // + // ConnectionType is a required field + ConnectionType *string `type:"string" required:"true" enum:"ConnectionType"` // Description of the connection. Description *string `type:"string"` @@ -8674,7 +9098,9 @@ type ConnectionInput struct { MatchCriteria []*string `type:"list"` // The name of the connection. - Name *string `min:"1" type:"string"` + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` // A map of physical connection requirements, such as VPC and SecurityGroup, // needed for making this connection successfully. @@ -8694,6 +9120,15 @@ func (s ConnectionInput) GoString() string { // Validate inspects the fields of the type to determine if they are valid. func (s *ConnectionInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "ConnectionInput"} + if s.ConnectionProperties == nil { + invalidParams.Add(request.NewErrParamRequired("ConnectionProperties")) + } + if s.ConnectionType == nil { + invalidParams.Add(request.NewErrParamRequired("ConnectionType")) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } if s.Name != nil && len(*s.Name) < 1 { invalidParams.Add(request.NewErrParamMinLen("Name", 1)) } @@ -8787,6 +9222,9 @@ type Crawler struct { // input format, output format, serde information, and schema from their parent // table, rather than detect this information separately for each partition. // Use the following JSON string to specify that behavior: + // + // Example: '{ "Version": 1.0, "CrawlerOutput": { "Partitions": { "AddOrUpdateBehavior": + // "InheritFromTable" } } }' Configuration *string `type:"string"` // If the crawler is running, contains the total time elapsed since the last @@ -9219,6 +9657,10 @@ type CreateCrawlerInput struct { // You can use this field to force partitions to inherit metadata such as classification, // input format, output format, serde information, and schema from their parent // table, rather than detect this information separately for each partition. + // Use the following JSON string to specify that behavior: + // + // Example: '{ "Version": 1.0, "CrawlerOutput": { "Partitions": { "AddOrUpdateBehavior": + // "InheritFromTable" } } }' Configuration *string `type:"string"` // The AWS Glue database where results are written, such as: arn:aws:daylight:us-east-1::database/sometable/*. @@ -9790,7 +10232,11 @@ func (s *CreateGrokClassifierRequest) SetName(v string) *CreateGrokClassifierReq type CreateJobInput struct { _ struct{} `type:"structure"` - // The number of capacity units allocated to this job. + // The number of AWS Glue data processing units (DPUs) to allocate to this Job. + // From 2 to 100 DPUs can be allocated; the default is 10. A DPU is a relative + // measure of processing power that consists of 4 vCPUs of compute capacity + // and 16 GB of memory. For more information, see the AWS Glue pricing page + // (https://aws.amazon.com/glue/pricing/). AllocatedCapacity *int64 `type:"integer"` // The JobCommand that executes this job. @@ -9801,7 +10247,18 @@ type CreateJobInput struct { // The connections used for this job. Connections *ConnectionsList `type:"structure"` - // The default parameters for this job. + // The default arguments for this job. + // + // You can specify arguments here that your own job-execution script consumes, + // as well as arguments that AWS Glue itself consumes. + // + // For information about how to specify and consume your own Job arguments, + // see the Calling AWS Glue APIs in Python (http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) + // topic in the developer guide. + // + // For information about the key-value pairs that AWS Glue consumes to set up + // your job, see the Special Parameters Used by AWS Glue (http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-glue-arguments.html) + // topic in the developer guide. DefaultArguments map[string]*string `type:"map"` // Description of the job. @@ -9817,12 +10274,12 @@ type CreateJobInput struct { // The maximum number of times to retry this job if it fails. MaxRetries *int64 `type:"integer"` - // The name you assign to this job. + // The name you assign to this job. It must be unique in your account. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` - // The role associated with this job. + // The name of the IAM role associated with this job. // // Role is a required field Role *string `type:"string" required:"true"` @@ -9924,7 +10381,7 @@ func (s *CreateJobInput) SetRole(v string) *CreateJobInput { type CreateJobOutput struct { _ struct{} `type:"structure"` - // The unique name of the new job that has been created. + // The unique name that was provided. Name *string `min:"1" type:"string"` } @@ -10059,6 +10516,9 @@ type CreateScriptInput struct { // A list of the nodes in the DAG. DagNodes []*CodeGenNode `type:"list"` + + // The programming language of the resulting code from the DAG. + Language *string `type:"string" enum:"Language"` } // String returns the string representation @@ -10113,12 +10573,21 @@ func (s *CreateScriptInput) SetDagNodes(v []*CodeGenNode) *CreateScriptInput { return s } +// SetLanguage sets the Language field's value. +func (s *CreateScriptInput) SetLanguage(v string) *CreateScriptInput { + s.Language = &v + return s +} + // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateScriptResponse type CreateScriptOutput struct { _ struct{} `type:"structure"` // The Python script generated from the DAG. PythonScript *string `type:"string"` + + // The Scala code generated from the DAG. + ScalaCode *string `type:"string"` } // String returns the string representation @@ -10137,6 +10606,12 @@ func (s *CreateScriptOutput) SetPythonScript(v string) *CreateScriptOutput { return s } +// SetScalaCode sets the ScalaCode field's value. +func (s *CreateScriptOutput) SetScalaCode(v string) *CreateScriptOutput { + s.ScalaCode = &v + return s +} + // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateTableRequest type CreateTableInput struct { _ struct{} `type:"structure"` @@ -10145,7 +10620,8 @@ type CreateTableInput struct { // the AWS account ID is used by default. CatalogId *string `min:"1" type:"string"` - // The catalog database in which to create the new table. + // The catalog database in which to create the new table. For Hive compatibility, + // this name is entirely lowercase. // // DatabaseName is a required field DatabaseName *string `min:"1" type:"string" required:"true"` @@ -10238,18 +10714,22 @@ type CreateTriggerInput struct { // A description of the new trigger. Description *string `type:"string"` - // The name to assign to the new trigger. + // The name of the trigger. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` // A predicate to specify when the new trigger should fire. + // + // This field is required when the trigger type is CONDITIONAL. Predicate *Predicate `type:"structure"` // A cron expression used to specify the schedule (see Time-Based Schedules // for Jobs and Crawlers (http://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html). // For example, to run something every day at 12:15 UTC, you would specify: // cron(15 12 * * ? *). + // + // This field is required when the trigger type is SCHEDULED. Schedule *string `type:"string"` // The type of the new trigger. @@ -10345,7 +10825,7 @@ func (s *CreateTriggerInput) SetType(v string) *CreateTriggerInput { type CreateTriggerOutput struct { _ struct{} `type:"structure"` - // The name assigned to the new trigger. + // The name of the trigger. Name *string `min:"1" type:"string"` } @@ -10470,8 +10950,10 @@ type CreateXMLClassifierRequest struct { Name *string `min:"1" type:"string" required:"true"` // The XML tag designating the element that contains each record in an XML document - // being parsed. Note that this cannot be an empty element. It must contain - // child elements representing fields in the record. + // being parsed. Note that this cannot identify a self-closing element (closed + // by />). An empty row element that contains only attributes can be parsed + // as long as it ends with a closing tag (for example, + // is okay, but is not). RowTag *string `type:"string"` } @@ -10537,7 +11019,8 @@ type Database struct { // The location of the database (for example, an HDFS path). LocationUri *string `min:"1" type:"string"` - // Name of the database. + // Name of the database. For Hive compatibility, this is folded to lowercase + // when it is stored. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` @@ -10586,7 +11069,7 @@ func (s *Database) SetParameters(v map[string]*string) *Database { return s } -// The structure used to create or updata a database. +// The structure used to create or update a database. // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DatabaseInput type DatabaseInput struct { _ struct{} `type:"structure"` @@ -10597,7 +11080,8 @@ type DatabaseInput struct { // The location of the database (for example, an HDFS path). LocationUri *string `min:"1" type:"string"` - // Name of the database. + // Name of the database. For Hive compatibility, this is folded to lowercase + // when it is stored. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` @@ -10851,7 +11335,8 @@ type DeleteDatabaseInput struct { // the AWS account ID is used by default. CatalogId *string `min:"1" type:"string"` - // The name of the Database to delete. + // The name of the Database to delete. For Hive compatibility, this must be + // all lowercase. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` @@ -11142,12 +11627,14 @@ type DeleteTableInput struct { // the AWS account ID is used by default. CatalogId *string `min:"1" type:"string"` - // The name of the catalog database in which the table resides. + // The name of the catalog database in which the table resides. For Hive compatibility, + // this name is entirely lowercase. // // DatabaseName is a required field DatabaseName *string `min:"1" type:"string" required:"true"` - // The name of the table to be deleted. + // The name of the table to be deleted. For Hive compatibility, this name is + // entirely lowercase. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` @@ -11221,6 +11708,111 @@ func (s DeleteTableOutput) GoString() string { return s.String() } +// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteTableVersionRequest +type DeleteTableVersionInput struct { + _ struct{} `type:"structure"` + + // The ID of the Data Catalog where the tables reside. If none is supplied, + // the AWS account ID is used by default. + CatalogId *string `min:"1" type:"string"` + + // The database in the catalog in which the table resides. For Hive compatibility, + // this name is entirely lowercase. + // + // DatabaseName is a required field + DatabaseName *string `min:"1" type:"string" required:"true"` + + // The name of the table. For Hive compatibility, this name is entirely lowercase. + // + // TableName is a required field + TableName *string `min:"1" type:"string" required:"true"` + + // The ID of the table version to be deleted. + // + // VersionId is a required field + VersionId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteTableVersionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteTableVersionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteTableVersionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteTableVersionInput"} + 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.VersionId == nil { + invalidParams.Add(request.NewErrParamRequired("VersionId")) + } + if s.VersionId != nil && len(*s.VersionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("VersionId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCatalogId sets the CatalogId field's value. +func (s *DeleteTableVersionInput) SetCatalogId(v string) *DeleteTableVersionInput { + s.CatalogId = &v + return s +} + +// SetDatabaseName sets the DatabaseName field's value. +func (s *DeleteTableVersionInput) SetDatabaseName(v string) *DeleteTableVersionInput { + s.DatabaseName = &v + return s +} + +// SetTableName sets the TableName field's value. +func (s *DeleteTableVersionInput) SetTableName(v string) *DeleteTableVersionInput { + s.TableName = &v + return s +} + +// SetVersionId sets the VersionId field's value. +func (s *DeleteTableVersionInput) SetVersionId(v string) *DeleteTableVersionInput { + s.VersionId = &v + return s +} + +// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteTableVersionResponse +type DeleteTableVersionOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteTableVersionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteTableVersionOutput) GoString() string { + return s.String() +} + // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteTriggerRequest type DeleteTriggerInput struct { _ struct{} `type:"structure"` @@ -11645,7 +12237,9 @@ func (s *ErrorDetail) SetErrorMessage(v string) *ErrorDetail { type ExecutionProperty struct { _ struct{} `type:"structure"` - // The maximum number of concurrent runs allowed for a job. + // The maximum number of concurrent runs allowed for a job. The default is 1. + // An error is returned when this threshold is reached. The maximum value you + // can specify is controlled by a service limit. MaxConcurrentRuns *int64 `type:"integer"` } @@ -12332,7 +12926,8 @@ type GetDatabaseInput struct { // the AWS account ID is used by default. CatalogId *string `min:"1" type:"string"` - // The name of the database to retrieve. + // The name of the database to retrieve. For Hive compatibility, this should + // be all lowercase. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` @@ -12772,7 +13367,7 @@ type GetJobRunInput struct { // JobName is a required field JobName *string `min:"1" type:"string" required:"true"` - // A list of the predecessor runs to return as well. + // True if a list of predecessor runs should be returned. PredecessorsIncluded *bool `type:"boolean"` // The ID of the job run. @@ -13397,6 +13992,9 @@ func (s *GetPartitionsOutput) SetPartitions(v []*Partition) *GetPartitionsOutput type GetPlanInput struct { _ struct{} `type:"structure"` + // The programming language of the code to perform the mapping. + Language *string `type:"string" enum:"Language"` + // Parameters for the mapping. Location *Location `type:"structure"` @@ -13460,6 +14058,12 @@ func (s *GetPlanInput) Validate() error { return nil } +// SetLanguage sets the Language field's value. +func (s *GetPlanInput) SetLanguage(v string) *GetPlanInput { + s.Language = &v + return s +} + // SetLocation sets the Location field's value. func (s *GetPlanInput) SetLocation(v *Location) *GetPlanInput { s.Location = v @@ -13490,6 +14094,9 @@ type GetPlanOutput struct { // A Python script to perform the mapping. PythonScript *string `type:"string"` + + // Scala code to perform the mapping. + ScalaCode *string `type:"string"` } // String returns the string representation @@ -13508,6 +14115,12 @@ func (s *GetPlanOutput) SetPythonScript(v string) *GetPlanOutput { return s } +// SetScalaCode sets the ScalaCode field's value. +func (s *GetPlanOutput) SetScalaCode(v string) *GetPlanOutput { + s.ScalaCode = &v + return s +} + // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTableRequest type GetTableInput struct { _ struct{} `type:"structure"` @@ -13516,12 +14129,14 @@ type GetTableInput struct { // the AWS account ID is used by default. CatalogId *string `min:"1" type:"string"` - // The name of the database in the catalog in which the table resides. + // The name of the database in the catalog in which the table resides. For Hive + // compatibility, this name is entirely lowercase. // // DatabaseName is a required field DatabaseName *string `min:"1" type:"string" required:"true"` - // The name of the table for which to retrieve the definition. + // The name of the table for which to retrieve the definition. For Hive compatibility, + // this name is entirely lowercase. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` @@ -13604,6 +14219,115 @@ func (s *GetTableOutput) SetTable(v *Table) *GetTableOutput { return s } +// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTableVersionRequest +type GetTableVersionInput struct { + _ struct{} `type:"structure"` + + // The ID of the Data Catalog where the tables reside. If none is supplied, + // the AWS account ID is used by default. + CatalogId *string `min:"1" type:"string"` + + // The database in the catalog in which the table resides. For Hive compatibility, + // this name is entirely lowercase. + // + // DatabaseName is a required field + DatabaseName *string `min:"1" type:"string" required:"true"` + + // The name of the table. For Hive compatibility, this name is entirely lowercase. + // + // TableName is a required field + TableName *string `min:"1" type:"string" required:"true"` + + // The ID value of the table version to be retrieved. + VersionId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s GetTableVersionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetTableVersionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetTableVersionInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetTableVersionInput"} + 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.VersionId != nil && len(*s.VersionId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("VersionId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetCatalogId sets the CatalogId field's value. +func (s *GetTableVersionInput) SetCatalogId(v string) *GetTableVersionInput { + s.CatalogId = &v + return s +} + +// SetDatabaseName sets the DatabaseName field's value. +func (s *GetTableVersionInput) SetDatabaseName(v string) *GetTableVersionInput { + s.DatabaseName = &v + return s +} + +// SetTableName sets the TableName field's value. +func (s *GetTableVersionInput) SetTableName(v string) *GetTableVersionInput { + s.TableName = &v + return s +} + +// SetVersionId sets the VersionId field's value. +func (s *GetTableVersionInput) SetVersionId(v string) *GetTableVersionInput { + s.VersionId = &v + return s +} + +// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTableVersionResponse +type GetTableVersionOutput struct { + _ struct{} `type:"structure"` + + // The requested table version. + TableVersion *TableVersion `type:"structure"` +} + +// String returns the string representation +func (s GetTableVersionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetTableVersionOutput) GoString() string { + return s.String() +} + +// SetTableVersion sets the TableVersion field's value. +func (s *GetTableVersionOutput) SetTableVersion(v *TableVersion) *GetTableVersionOutput { + s.TableVersion = v + return s +} + // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTableVersionsRequest type GetTableVersionsInput struct { _ struct{} `type:"structure"` @@ -13612,7 +14336,8 @@ type GetTableVersionsInput struct { // the AWS account ID is used by default. CatalogId *string `min:"1" type:"string"` - // The database in the catalog in which the table resides. + // The database in the catalog in which the table resides. For Hive compatibility, + // this name is entirely lowercase. // // DatabaseName is a required field DatabaseName *string `min:"1" type:"string" required:"true"` @@ -13623,7 +14348,7 @@ type GetTableVersionsInput struct { // A continuation token, if this is not the first call. NextToken *string `type:"string"` - // The name of the table. + // The name of the table. For Hive compatibility, this name is entirely lowercase. // // TableName is a required field TableName *string `min:"1" type:"string" required:"true"` @@ -13739,7 +14464,8 @@ type GetTablesInput struct { // the AWS account ID is used by default. CatalogId *string `min:"1" type:"string"` - // The database in the catalog whose tables to list. + // The database in the catalog whose tables to list. For Hive compatibility, + // this name is entirely lowercase. // // DatabaseName is a required field DatabaseName *string `min:"1" type:"string" required:"true"` @@ -13920,7 +14646,9 @@ func (s *GetTriggerOutput) SetTrigger(v *Trigger) *GetTriggerOutput { type GetTriggersInput struct { _ struct{} `type:"structure"` - // The name of the job for which to retrieve triggers. + // The name of the job for which to retrieve triggers. The trigger that can + // start this job will be returned, and if there is no such trigger, all triggers + // will be returned. DependentJobName *string `min:"1" type:"string"` // The maximum size of the response. @@ -14416,12 +15144,16 @@ func (s *JdbcTarget) SetPath(v string) *JdbcTarget { return s } -// Specifies a job in the Data Catalog. +// Specifies a job. // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/Job type Job struct { _ struct{} `type:"structure"` - // The number of capacity units allocated to this job. + // The number of AWS Glue data processing units (DPUs) allocated to this Job. + // From 2 to 100 DPUs can be allocated; the default is 10. A DPU is a relative + // measure of processing power that consists of 4 vCPUs of compute capacity + // and 16 GB of memory. For more information, see the AWS Glue pricing page + // (https://aws.amazon.com/glue/pricing/). AllocatedCapacity *int64 `type:"integer"` // The JobCommand that executes this job. @@ -14433,7 +15165,18 @@ type Job struct { // The time and date that this job specification was created. CreatedOn *time.Time `type:"timestamp" timestampFormat:"unix"` - // The default parameters for this job. + // The default arguments for this job, specified as name-value pairs. + // + // You can specify arguments here that your own job-execution script consumes, + // as well as arguments that AWS Glue itself consumes. + // + // For information about how to specify and consume your own Job arguments, + // see the Calling AWS Glue APIs in Python (http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) + // topic in the developer guide. + // + // For information about the key-value pairs that AWS Glue consumes to set up + // your job, see the Special Parameters Used by AWS Glue (http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-glue-arguments.html) + // topic in the developer guide. DefaultArguments map[string]*string `type:"map"` // Description of this job. @@ -14455,7 +15198,7 @@ type Job struct { // The name you assign to this job. Name *string `min:"1" type:"string"` - // The role associated with this job. + // The name of the IAM role associated with this job. Role *string `type:"string"` } @@ -14607,10 +15350,10 @@ func (s *JobBookmarkEntry) SetVersion(v int64) *JobBookmarkEntry { type JobCommand struct { _ struct{} `type:"structure"` - // The name of this job command. + // The name of the job command: this must be glueetl. Name *string `type:"string"` - // Specifies the location of a script that executes a job. + // Specifies the S3 path to a script that executes a job (required). ScriptLocation *string `type:"string"` } @@ -14641,13 +15384,29 @@ func (s *JobCommand) SetScriptLocation(v string) *JobCommand { type JobRun struct { _ struct{} `type:"structure"` - // The amount of infrastructure capacity allocated to this job run. + // The number of AWS Glue data processing units (DPUs) allocated to this JobRun. + // From 2 to 100 DPUs can be allocated; the default is 10. A DPU is a relative + // measure of processing power that consists of 4 vCPUs of compute capacity + // and 16 GB of memory. For more information, see the AWS Glue pricing page + // (https://aws.amazon.com/glue/pricing/). AllocatedCapacity *int64 `type:"integer"` - // The job arguments associated with this run. + // The job arguments associated with this run. These override equivalent default + // arguments set for the job. + // + // You can specify arguments here that your own job-execution script consumes, + // as well as arguments that AWS Glue itself consumes. + // + // For information about how to specify and consume your own job arguments, + // see the Calling AWS Glue APIs in Python (http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) + // topic in the developer guide. + // + // For information about the key-value pairs that AWS Glue consumes to set up + // your job, see the Special Parameters Used by AWS Glue (http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-glue-arguments.html) + // topic in the developer guide. Arguments map[string]*string `type:"map"` - // The number or the attempt to run this job. + // The number of the attempt to run this job. Attempt *int64 `type:"integer"` // The date and time this job run completed. @@ -14671,13 +15430,14 @@ type JobRun struct { // A list of predecessors to this job run. PredecessorRuns []*Predecessor `type:"list"` - // The ID of the previous run of this job. + // The ID of the previous run of this job. For example, the JobRunId specified + // in the StartJobRun action. PreviousRunId *string `min:"1" type:"string"` // The date and time at which this job run was started. StartedOn *time.Time `type:"timestamp" timestampFormat:"unix"` - // The name of the trigger for this job run. + // The name of the trigger that started this job run. TriggerName *string `min:"1" type:"string"` } @@ -14769,21 +15529,37 @@ func (s *JobRun) SetTriggerName(v string) *JobRun { return s } -// Specifies information used to update an existing job. +// Specifies information used to update an existing job. Note that the previous +// job definition will be completely overwritten by this information. // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/JobUpdate type JobUpdate struct { _ struct{} `type:"structure"` - // The number of capacity units allocated to this job. + // The number of AWS Glue data processing units (DPUs) to allocate to this Job. + // From 2 to 100 DPUs can be allocated; the default is 10. A DPU is a relative + // measure of processing power that consists of 4 vCPUs of compute capacity + // and 16 GB of memory. For more information, see the AWS Glue pricing page + // (https://aws.amazon.com/glue/pricing/). AllocatedCapacity *int64 `type:"integer"` - // The JobCommand that executes this job. + // The JobCommand that executes this job (required). Command *JobCommand `type:"structure"` // The connections used for this job. Connections *ConnectionsList `type:"structure"` - // The default parameters for this job. + // The default arguments for this job. + // + // You can specify arguments here that your own job-execution script consumes, + // as well as arguments that AWS Glue itself consumes. + // + // For information about how to specify and consume your own Job arguments, + // see the Calling AWS Glue APIs in Python (http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) + // topic in the developer guide. + // + // For information about the key-value pairs that AWS Glue consumes to set up + // your job, see the Special Parameters Used by AWS Glue (http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-glue-arguments.html) + // topic in the developer guide. DefaultArguments map[string]*string `type:"map"` // Description of the job. @@ -14799,7 +15575,7 @@ type JobUpdate struct { // The maximum number of times to retry this job if it fails. MaxRetries *int64 `type:"integer"` - // The role associated with this job. + // The name of the IAM role associated with this job (required). Role *string `type:"string"` } @@ -15372,7 +16148,7 @@ func (s *PartitionValueList) SetValues(v []*string) *PartitionValueList { type PhysicalConnectionRequirements struct { _ struct{} `type:"structure"` - // The connection's availability zone. + // The connection's availability zone. This field is deprecated and has no effect. AvailabilityZone *string `min:"1" type:"string"` // The security group ID list used by the connection. @@ -15426,7 +16202,8 @@ func (s *PhysicalConnectionRequirements) SetSubnetId(v string) *PhysicalConnecti return s } -// A job run that preceded this one. +// A job run that was used in the predicate of a conditional trigger that triggered +// this job run. // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/Predecessor type Predecessor struct { _ struct{} `type:"structure"` @@ -15434,7 +16211,7 @@ type Predecessor struct { // The name of the predecessor job. JobName *string `min:"1" type:"string"` - // The job-run ID of the precessor job run. + // The job-run ID of the predecessor job run. RunId *string `min:"1" type:"string"` } @@ -16012,10 +16789,26 @@ func (s StartCrawlerScheduleOutput) GoString() string { type StartJobRunInput struct { _ struct{} `type:"structure"` - // The infrastructure capacity to allocate to this job. + // The number of AWS Glue data processing units (DPUs) to allocate to this JobRun. + // From 2 to 100 DPUs can be allocated; the default is 10. A DPU is a relative + // measure of processing power that consists of 4 vCPUs of compute capacity + // and 16 GB of memory. For more information, see the AWS Glue pricing page + // (https://aws.amazon.com/glue/pricing/). AllocatedCapacity *int64 `type:"integer"` - // Specific arguments for this job run. + // The job arguments specifically for this run. They override the equivalent + // default arguments set for the job itself. + // + // You can specify arguments here that your own job-execution script consumes, + // as well as arguments that AWS Glue itself consumes. + // + // For information about how to specify and consume your own Job arguments, + // see the Calling AWS Glue APIs in Python (http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-calling.html) + // topic in the developer guide. + // + // For information about the key-value pairs that AWS Glue consumes to set up + // your job, see the Special Parameters Used by AWS Glue (http://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-python-glue-arguments.html) + // topic in the developer guide. Arguments map[string]*string `type:"map"` // The name of the job to start. @@ -16023,7 +16816,7 @@ type StartJobRunInput struct { // JobName is a required field JobName *string `min:"1" type:"string" required:"true"` - // The ID of the job run to start. + // The ID of a previous JobRun to retry. JobRunId *string `min:"1" type:"string"` } @@ -16526,7 +17319,8 @@ type Table struct { // Person or entity who created the table. CreatedBy *string `min:"1" type:"string"` - // Name of the metadata database where the table metadata resides. + // Name of the metadata database where the table metadata resides. For Hive + // compatibility, this must be all lowercase. DatabaseName *string `min:"1" type:"string"` // Description of the table. @@ -16539,7 +17333,7 @@ type Table struct { // Last time column statistics were computed for this table. LastAnalyzedTime *time.Time `type:"timestamp" timestampFormat:"unix"` - // Name of the table. + // Name of the table. For Hive compatibility, this must be entirely lowercase. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` @@ -16688,7 +17482,7 @@ type TableError struct { // Detail about the error. ErrorDetail *ErrorDetail `type:"structure"` - // Name of the table. + // Name of the table. For Hive compatibility, this must be entirely lowercase. TableName *string `min:"1" type:"string"` } @@ -16728,7 +17522,8 @@ type TableInput struct { // Last time column statistics were computed for this table. LastAnalyzedTime *time.Time `type:"timestamp" timestampFormat:"unix"` - // Name of the table. + // Name of the table. For Hive compatibility, this is folded to lowercase when + // it is stored. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` @@ -16910,6 +17705,49 @@ func (s *TableVersion) SetVersionId(v string) *TableVersion { return s } +// An error record for table-version operations. +// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/TableVersionError +type TableVersionError struct { + _ struct{} `type:"structure"` + + // Detail about the error. + ErrorDetail *ErrorDetail `type:"structure"` + + // The name of the table in question. + TableName *string `min:"1" type:"string"` + + // The ID value of the version in question. + VersionId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s TableVersionError) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s TableVersionError) GoString() string { + return s.String() +} + +// SetErrorDetail sets the ErrorDetail field's value. +func (s *TableVersionError) SetErrorDetail(v *ErrorDetail) *TableVersionError { + s.ErrorDetail = v + return s +} + +// SetTableName sets the TableName field's value. +func (s *TableVersionError) SetTableName(v string) *TableVersionError { + s.TableName = &v + return s +} + +// SetVersionId sets the VersionId field's value. +func (s *TableVersionError) SetVersionId(v string) *TableVersionError { + s.VersionId = &v + return s +} + // Information about a specific trigger. // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/Trigger type Trigger struct { @@ -16921,13 +17759,13 @@ type Trigger struct { // A description of this trigger. Description *string `type:"string"` - // The trigger ID. + // Reserved for future use. Id *string `min:"1" type:"string"` // Name of the trigger. Name *string `min:"1" type:"string"` - // The predicate of this trigger. + // The predicate of this trigger, which defines when it will fire. Predicate *Predicate `type:"structure"` // A cron expression used to specify the schedule (see Time-Based Schedules @@ -17001,7 +17839,8 @@ func (s *Trigger) SetType(v string) *Trigger { return s } -// A structure used to provide information used to updata a trigger. +// A structure used to provide information used to update a trigger. This object +// will update the the previous trigger definition by overwriting it completely. // See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/TriggerUpdate type TriggerUpdate struct { _ struct{} `type:"structure"` @@ -17012,13 +17851,13 @@ type TriggerUpdate struct { // A description of this trigger. Description *string `type:"string"` - // The name of the trigger. + // Reserved for future use. Name *string `min:"1" type:"string"` // The predicate of this trigger, which defines when it will fire. Predicate *Predicate `type:"structure"` - // An updated cron expression used to specify the schedule (see Time-Based Schedules + // A cron expression used to specify the schedule (see Time-Based Schedules // for Jobs and Crawlers (http://docs.aws.amazon.com/glue/latest/dg/monitor-data-warehouse-schedule.html). // For example, to run something every day at 12:15 UTC, you would specify: // cron(15 12 * * ? *). @@ -17266,6 +18105,9 @@ type UpdateCrawlerInput struct { // input format, output format, serde information, and schema from their parent // table, rather than detect this information separately for each partition. // Use the following JSON string to specify that behavior: + // + // Example:  '{ "Version": 1.0, "CrawlerOutput": { "Partitions": { "AddOrUpdateBehavior": + // "InheritFromTable" } } }' Configuration *string `type:"string"` // The AWS Glue database where results are stored, such as: arn:aws:daylight:us-east-1::database/sometable/*. @@ -17483,7 +18325,8 @@ type UpdateDatabaseInput struct { // DatabaseInput is a required field DatabaseInput *DatabaseInput `type:"structure" required:"true"` - // The name of the metadata database to update in the catalog. + // The name of the database to update in the catalog. For Hive compatibility, + // this is folded to lowercase. // // Name is a required field Name *string `min:"1" type:"string" required:"true"` @@ -17923,11 +18766,17 @@ type UpdateTableInput struct { // the AWS account ID is used by default. CatalogId *string `min:"1" type:"string"` - // The name of the catalog database in which the table resides. + // The name of the catalog database in which the table resides. For Hive compatibility, + // this name is entirely lowercase. // // DatabaseName is a required field DatabaseName *string `min:"1" type:"string" required:"true"` + // By default, UpdateTable always creates an archived version of the table before + // updating it. If skipArchive is set to true, however, UpdateTable does not + // create the archived version. + SkipArchive *bool `type:"boolean"` + // An updated TableInput object to define the metadata table in the catalog. // // TableInput is a required field @@ -17983,6 +18832,12 @@ func (s *UpdateTableInput) SetDatabaseName(v string) *UpdateTableInput { return s } +// SetSkipArchive sets the SkipArchive field's value. +func (s *UpdateTableInput) SetSkipArchive(v bool) *UpdateTableInput { + s.SkipArchive = &v + return s +} + // SetTableInput sets the TableInput field's value. func (s *UpdateTableInput) SetTableInput(v *TableInput) *UpdateTableInput { s.TableInput = v @@ -18209,8 +19064,10 @@ type UpdateXMLClassifierRequest struct { Name *string `min:"1" type:"string" required:"true"` // The XML tag designating the element that contains each record in an XML document - // being parsed. Note that this cannot be an empty element. It must contain - // child elements representing fields in the record. + // being parsed. Note that this cannot identify a self-closing element (closed + // by />). An empty row element that contains only attributes can be parsed + // as long as it ends with a closing tag (for example, + // is okay, but is not). RowTag *string `type:"string"` } @@ -18440,8 +19297,10 @@ type XMLClassifier struct { Name *string `min:"1" type:"string" required:"true"` // The XML tag designating the element that contains each record in an XML document - // being parsed. Note that this cannot be an empty element. It must contain - // child elements representing fields in the record. + // being parsed. Note that this cannot identify a self-closing element (closed + // by />). An empty row element that contains only attributes can be parsed + // as long as it ends with a closing tag (for example, + // is okay, but is not). RowTag *string `type:"string"` // The version of this classifier. @@ -18579,6 +19438,14 @@ const ( JobRunStateFailed = "FAILED" ) +const ( + // LanguagePython is a Language enum value + LanguagePython = "PYTHON" + + // LanguageScala is a Language enum value + LanguageScala = "SCALA" +) + const ( // LastCrawlStatusSucceeded is a LastCrawlStatus enum value LastCrawlStatusSucceeded = "SUCCEEDED" @@ -18593,6 +19460,9 @@ const ( const ( // LogicalAnd is a Logical enum value LogicalAnd = "AND" + + // LogicalAny is a Logical enum value + LogicalAny = "ANY" ) const ( diff --git a/vendor/github.com/aws/aws-sdk-go/service/lambda/api.go b/vendor/github.com/aws/aws-sdk-go/service/lambda/api.go index 0fc81bb70..844e58a49 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/lambda/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/lambda/api.go @@ -100,14 +100,6 @@ func (c *Lambda) AddPermissionRequest(input *AddPermissionInput) (req *request.R // Lambda function access policy is limited to 20 KB. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/AddPermission func (c *Lambda) AddPermission(input *AddPermissionInput) (*AddPermissionOutput, error) { @@ -205,14 +197,6 @@ func (c *Lambda) CreateAliasRequest(input *CreateAliasInput) (req *request.Reque // API, that AWS Lambda is unable to assume you will get this exception. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/CreateAlias func (c *Lambda) CreateAlias(input *CreateAliasInput) (*AliasConfiguration, error) { @@ -326,14 +310,6 @@ func (c *Lambda) CreateEventSourceMappingRequest(input *CreateEventSourceMapping // The resource already exists. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The resource (for example, a Lambda function or access policy statement) @@ -440,14 +416,6 @@ func (c *Lambda) CreateFunctionRequest(input *CreateFunctionInput) (req *request // The resource already exists. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // * ErrCodeCodeStorageExceededException "CodeStorageExceededException" // You have exceeded your maximum total code size per account. Limits (http://docs.aws.amazon.com/lambda/latest/dg/limits.html) @@ -542,14 +510,6 @@ func (c *Lambda) DeleteAliasRequest(input *DeleteAliasInput) (req *request.Reque // API, that AWS Lambda is unable to assume you will get this exception. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteAlias func (c *Lambda) DeleteAlias(input *DeleteAliasInput) (*DeleteAliasOutput, error) { @@ -644,14 +604,6 @@ func (c *Lambda) DeleteEventSourceMappingRequest(input *DeleteEventSourceMapping // API, that AWS Lambda is unable to assume you will get this exception. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteEventSourceMapping func (c *Lambda) DeleteEventSourceMapping(input *DeleteEventSourceMappingInput) (*EventSourceMappingConfiguration, error) { @@ -751,14 +703,6 @@ func (c *Lambda) DeleteFunctionRequest(input *DeleteFunctionInput) (req *request // specified in the request does not exist. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // * ErrCodeInvalidParameterValueException "InvalidParameterValueException" // One of the parameters in the request is invalid. For example, if you provided @@ -836,7 +780,8 @@ func (c *Lambda) DeleteFunctionConcurrencyRequest(input *DeleteFunctionConcurren // DeleteFunctionConcurrency API operation for AWS Lambda. // -// Removes concurrent execution limits from this function. +// Removes concurrent execution limits from this function. For more information, +// see concurrent-executions. // // 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 @@ -854,14 +799,6 @@ func (c *Lambda) DeleteFunctionConcurrencyRequest(input *DeleteFunctionConcurren // specified in the request does not exist. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // * ErrCodeInvalidParameterValueException "InvalidParameterValueException" // One of the parameters in the request is invalid. For example, if you provided @@ -951,14 +888,6 @@ func (c *Lambda) GetAccountSettingsRequest(input *GetAccountSettingsInput) (req // // Returned Error Codes: // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // * ErrCodeServiceException "ServiceException" // The AWS Lambda service encountered an internal error. @@ -1056,14 +985,6 @@ func (c *Lambda) GetAliasRequest(input *GetAliasInput) (req *request.Request, ou // API, that AWS Lambda is unable to assume you will get this exception. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetAlias func (c *Lambda) GetAlias(input *GetAliasInput) (*AliasConfiguration, error) { @@ -1157,14 +1078,6 @@ func (c *Lambda) GetEventSourceMappingRequest(input *GetEventSourceMappingInput) // API, that AWS Lambda is unable to assume you will get this exception. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetEventSourceMapping func (c *Lambda) GetEventSourceMapping(input *GetEventSourceMappingInput) (*EventSourceMappingConfiguration, error) { @@ -1262,14 +1175,6 @@ func (c *Lambda) GetFunctionRequest(input *GetFunctionInput) (req *request.Reque // specified in the request does not exist. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // * ErrCodeInvalidParameterValueException "InvalidParameterValueException" // One of the parameters in the request is invalid. For example, if you provided @@ -1372,14 +1277,6 @@ func (c *Lambda) GetFunctionConfigurationRequest(input *GetFunctionConfiguration // specified in the request does not exist. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // * ErrCodeInvalidParameterValueException "InvalidParameterValueException" // One of the parameters in the request is invalid. For example, if you provided @@ -1477,14 +1374,6 @@ func (c *Lambda) GetPolicyRequest(input *GetPolicyInput) (req *request.Request, // specified in the request does not exist. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // * ErrCodeInvalidParameterValueException "InvalidParameterValueException" // One of the parameters in the request is invalid. For example, if you provided @@ -1570,6 +1459,13 @@ func (c *Lambda) InvokeRequest(input *InvokeInput) (req *request.Request, output // // This operation requires permission for the lambda:InvokeFunction action. // +// The TooManyRequestsException noted below will return the following: ConcurrentInvocationLimitExceeded +// will be returned if you have no functions with reserved concurrency and have +// exceeded your account concurrent limit or if a function without reserved +// concurrency exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded +// will be returned when a function with reserved concurrency exceeds its configured +// concurrency limit. +// // 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. @@ -1596,14 +1492,6 @@ func (c *Lambda) InvokeRequest(input *InvokeInput) (req *request.Request, output // The content type of the Invoke request body is not JSON. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // * ErrCodeInvalidParameterValueException "InvalidParameterValueException" // One of the parameters in the request is invalid. For example, if you provided @@ -1850,14 +1738,6 @@ func (c *Lambda) ListAliasesRequest(input *ListAliasesInput) (req *request.Reque // API, that AWS Lambda is unable to assume you will get this exception. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListAliases func (c *Lambda) ListAliases(input *ListAliasesInput) (*ListAliasesOutput, error) { @@ -1966,14 +1846,6 @@ func (c *Lambda) ListEventSourceMappingsRequest(input *ListEventSourceMappingsIn // API, that AWS Lambda is unable to assume you will get this exception. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListEventSourceMappings func (c *Lambda) ListEventSourceMappings(input *ListEventSourceMappingsInput) (*ListEventSourceMappingsOutput, error) { @@ -2119,14 +1991,6 @@ func (c *Lambda) ListFunctionsRequest(input *ListFunctionsInput) (req *request.R // The AWS Lambda service encountered an internal error. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // * ErrCodeInvalidParameterValueException "InvalidParameterValueException" // One of the parameters in the request is invalid. For example, if you provided @@ -2273,14 +2137,6 @@ func (c *Lambda) ListTagsRequest(input *ListTagsInput) (req *request.Request, ou // API, that AWS Lambda is unable to assume you will get this exception. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListTags func (c *Lambda) ListTags(input *ListTagsInput) (*ListTagsOutput, error) { @@ -2372,14 +2228,6 @@ func (c *Lambda) ListVersionsByFunctionRequest(input *ListVersionsByFunctionInpu // API, that AWS Lambda is unable to assume you will get this exception. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListVersionsByFunction func (c *Lambda) ListVersionsByFunction(input *ListVersionsByFunctionInput) (*ListVersionsByFunctionOutput, error) { @@ -2474,14 +2322,6 @@ func (c *Lambda) PublishVersionRequest(input *PublishVersionInput) (req *request // API, that AWS Lambda is unable to assume you will get this exception. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // * ErrCodeCodeStorageExceededException "CodeStorageExceededException" // You have exceeded your maximum total code size per account. Limits (http://docs.aws.amazon.com/lambda/latest/dg/limits.html) @@ -2557,7 +2397,7 @@ func (c *Lambda) PutFunctionConcurrencyRequest(input *PutFunctionConcurrencyInpu // Note that Lambda automatically reserves a buffer of 100 concurrent executions // for functions without any reserved concurrency limit. This means if your // account limit is 1000, you have a total of 900 available to allocate to individual -// functions. +// functions. For more information, see concurrent-executions. // // 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 @@ -2580,14 +2420,6 @@ func (c *Lambda) PutFunctionConcurrencyRequest(input *PutFunctionConcurrencyInpu // specified in the request does not exist. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PutFunctionConcurrency func (c *Lambda) PutFunctionConcurrency(input *PutFunctionConcurrencyInput) (*PutFunctionConcurrencyOutput, error) { @@ -2692,14 +2524,6 @@ func (c *Lambda) RemovePermissionRequest(input *RemovePermissionInput) (req *req // API, that AWS Lambda is unable to assume you will get this exception. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/RemovePermission func (c *Lambda) RemovePermission(input *RemovePermissionInput) (*RemovePermissionOutput, error) { @@ -2794,14 +2618,6 @@ func (c *Lambda) TagResourceRequest(input *TagResourceInput) (req *request.Reque // API, that AWS Lambda is unable to assume you will get this exception. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/TagResource func (c *Lambda) TagResource(input *TagResourceInput) (*TagResourceOutput, error) { @@ -2895,14 +2711,6 @@ func (c *Lambda) UntagResourceRequest(input *UntagResourceInput) (req *request.R // API, that AWS Lambda is unable to assume you will get this exception. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UntagResource func (c *Lambda) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) { @@ -2997,14 +2805,6 @@ func (c *Lambda) UpdateAliasRequest(input *UpdateAliasInput) (req *request.Reque // API, that AWS Lambda is unable to assume you will get this exception. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateAlias func (c *Lambda) UpdateAlias(input *UpdateAliasInput) (*AliasConfiguration, error) { @@ -3111,14 +2911,6 @@ func (c *Lambda) UpdateEventSourceMappingRequest(input *UpdateEventSourceMapping // API, that AWS Lambda is unable to assume you will get this exception. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // * ErrCodeResourceConflictException "ResourceConflictException" // The resource already exists. @@ -3220,14 +3012,6 @@ func (c *Lambda) UpdateFunctionCodeRequest(input *UpdateFunctionCodeInput) (req // API, that AWS Lambda is unable to assume you will get this exception. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // * ErrCodeCodeStorageExceededException "CodeStorageExceededException" // You have exceeded your maximum total code size per account. Limits (http://docs.aws.amazon.com/lambda/latest/dg/limits.html) @@ -3331,14 +3115,6 @@ func (c *Lambda) UpdateFunctionConfigurationRequest(input *UpdateFunctionConfigu // API, that AWS Lambda is unable to assume you will get this exception. // // * ErrCodeTooManyRequestsException "TooManyRequestsException" -// You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded -// is returned if you have no functions with reserved-concurrency and have exceeded -// your account concurrent limit or if a function without reserved concurrency -// exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded -// is returned when a function with reserved concurrency exceeds its configured -// concurrent limit. CallerRateLimitExceeded is returned when your account limit -// is exceeded and you have not reserved concurrency on any function. For more -// information, see concurrent-executions // // * ErrCodeResourceConflictException "ResourceConflictException" // The resource already exists. @@ -3391,7 +3167,7 @@ type AccountLimit struct { TotalCodeSize *int64 `type:"long"` // The number of concurrent executions available to functions that do not have - // concurrency limits set. + // concurrency limits set. For more information, see concurrent-executions. UnreservedConcurrentExecutions *int64 `type:"integer"` } @@ -3738,9 +3514,9 @@ func (s *AliasConfiguration) SetRoutingConfig(v *AliasRoutingConfiguration) *Ali type AliasRoutingConfiguration struct { _ struct{} `type:"structure"` - // Set this property value to dictate what percentage of traffic will invoke - // the updated function version. If set to an empty string, 100 percent of traffic - // will invoke function-version. + // Set this value to dictate what percentage of traffic will invoke the updated + // function version. If set to an empty string, 100 percent of traffic will + // invoke function-version. For more information, see lambda-traffic-shifting-using-aliases. AdditionalVersionWeights map[string]*float64 `type:"map"` } @@ -4368,6 +4144,7 @@ type DeleteFunctionConcurrencyInput struct { _ struct{} `type:"structure"` // The name of the function you are removing concurrent execution limits from. + // For more information, see concurrent-executions. // // FunctionName is a required field FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"` @@ -5299,7 +5076,8 @@ type GetFunctionOutput struct { // The object for the Lambda function location. Code *FunctionCodeLocation `type:"structure"` - // The concurrent execution limit set for this function. + // The concurrent execution limit set for this function. For more information, + // see concurrent-executions. Concurrency *PutFunctionConcurrencyOutput `type:"structure"` // A complex type that describes function metadata. @@ -5643,7 +5421,7 @@ type InvokeOutput struct { _ struct{} `type:"structure" payload:"Payload"` // The function version that has been executed. This value is returned only - // if the invocation type is RequestResponse. + // if the invocation type is RequestResponse. For more information, see lambda-traffic-shifting-using-aliases. ExecutedVersion *string `location:"header" locationName:"X-Amz-Executed-Version" min:"1" type:"string"` // Indicates whether an error occurred while executing the Lambda function. @@ -6298,11 +6076,13 @@ type PutFunctionConcurrencyInput struct { _ struct{} `type:"structure"` // The name of the function you are setting concurrent execution limits on. + // For more information, see concurrent-executions. // // FunctionName is a required field FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"` - // The concurrent execution limit reserved for this function. + // The concurrent execution limit reserved for this function. For more information, + // see concurrent-executions. // // ReservedConcurrentExecutions is a required field ReservedConcurrentExecutions *int64 `type:"integer" required:"true"` @@ -6353,7 +6133,8 @@ func (s *PutFunctionConcurrencyInput) SetReservedConcurrentExecutions(v int64) * type PutFunctionConcurrencyOutput struct { _ struct{} `type:"structure"` - // The number of concurrent executions reserved for this function. + // The number of concurrent executions reserved for this function. For more + // information, see concurrent-executions. ReservedConcurrentExecutions *int64 `type:"integer"` } @@ -7284,8 +7065,14 @@ const ( // RuntimeDotnetcore10 is a Runtime enum value RuntimeDotnetcore10 = "dotnetcore1.0" + // RuntimeDotnetcore20 is a Runtime enum value + RuntimeDotnetcore20 = "dotnetcore2.0" + // RuntimeNodejs43Edge is a Runtime enum value RuntimeNodejs43Edge = "nodejs4.3-edge" + + // RuntimeGo1X is a Runtime enum value + RuntimeGo1X = "go1.x" ) const ( diff --git a/vendor/github.com/aws/aws-sdk-go/service/lambda/errors.go b/vendor/github.com/aws/aws-sdk-go/service/lambda/errors.go index 31c7bd730..fc6715b5f 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/lambda/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/lambda/errors.go @@ -144,15 +144,6 @@ const ( // ErrCodeTooManyRequestsException for service response error code // "TooManyRequestsException". - // - // You will get this exception for the following reasons. ConcurrentInvocationLimitExceeded - // is returned if you have no functions with reserved-concurrency and have exceeded - // your account concurrent limit or if a function without reserved concurrency - // exceeds the account's unreserved concurrency limit. ReservedFunctionConcurrentInvocationLimitExceeded - // is returned when a function with reserved concurrency exceeds its configured - // concurrent limit. CallerRateLimitExceeded is returned when your account limit - // is exceeded and you have not reserved concurrency on any function. For more - // information, see concurrent-executions ErrCodeTooManyRequestsException = "TooManyRequestsException" // ErrCodeUnsupportedMediaTypeException for service response error code diff --git a/vendor/github.com/aws/aws-sdk-go/service/rds/api.go b/vendor/github.com/aws/aws-sdk-go/service/rds/api.go index e658c1cdf..442468700 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/rds/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/rds/api.go @@ -1501,20 +1501,17 @@ func (c *RDS) CreateDBInstanceReadReplicaRequest(input *CreateDBInstanceReadRepl // // Creates a new DB instance that acts as a Read Replica for an existing source // DB instance. You can create a Read Replica for a DB instance running MySQL, -// MariaDB, or PostgreSQL. +// MariaDB, or PostgreSQL. For more information, see Working with PostgreSQL, +// MySQL, and MariaDB Read Replicas (http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html). // // Amazon Aurora does not support this action. You must call the CreateDBInstance // action to create a DB instance for an Aurora DB cluster. // -// All Read Replica DB instances are created as Single-AZ deployments with backups -// disabled. All other DB instance attributes (including DB security groups -// and DB parameter groups) are inherited from the source DB instance, except -// as specified below. +// All Read Replica DB instances are created with backups disabled. All other +// DB instance attributes (including DB security groups and DB parameter groups) +// are inherited from the source DB instance, except as specified below. // -// The source DB instance must have backup retention enabled. -// -// For more information, see Working with PostgreSQL, MySQL, and MariaDB Read -// Replicas (http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html). +// Your source DB instance must have backup retention enabled. // // 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 @@ -9443,6 +9440,8 @@ func (c *RDS) StartDBInstanceRequest(input *StartDBInstanceInput) (req *request. // AWS CLI command, or the StopDBInstance action. For more information, see // Stopping and Starting a DB instance in the AWS RDS user guide. // +// This command does not apply to Aurora MySQL and Aurora PostgreSQL. +// // 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. @@ -9564,6 +9563,8 @@ func (c *RDS) StopDBInstanceRequest(input *StopDBInstanceInput) (req *request.Re // do a point-in-time restore if necessary. For more information, see Stopping // and Starting a DB instance in the AWS RDS user guide. // +// This command does not apply to Aurora MySQL and Aurora PostgreSQL. +// // 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. @@ -10233,6 +10234,41 @@ func (s *CharacterSet) SetCharacterSetName(v string) *CharacterSet { return s } +// The configuration setting for the log types to be enabled for export to CloudWatch +// Logs for a specific DB instance or DB cluster. +// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CloudwatchLogsExportConfiguration +type CloudwatchLogsExportConfiguration struct { + _ struct{} `type:"structure"` + + // The list of log types to disable. + DisableLogTypes []*string `type:"list"` + + // The list of log types to enable. + EnableLogTypes []*string `type:"list"` +} + +// String returns the string representation +func (s CloudwatchLogsExportConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CloudwatchLogsExportConfiguration) GoString() string { + return s.String() +} + +// SetDisableLogTypes sets the DisableLogTypes field's value. +func (s *CloudwatchLogsExportConfiguration) SetDisableLogTypes(v []*string) *CloudwatchLogsExportConfiguration { + s.DisableLogTypes = v + return s +} + +// SetEnableLogTypes sets the EnableLogTypes field's value. +func (s *CloudwatchLogsExportConfiguration) SetEnableLogTypes(v []*string) *CloudwatchLogsExportConfiguration { + s.EnableLogTypes = v + return s +} + // See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CopyDBClusterParameterGroupMessage type CopyDBClusterParameterGroupInput struct { _ struct{} `type:"structure"` @@ -11716,7 +11752,7 @@ type CreateDBInstanceInput struct { // // Constraints to the amount of storage for each storage type are the following: // - // * General Purpose (SSD) storage (gp2): Must be an integer from 5 to 16384. + // * General Purpose (SSD) storage (gp2): Must be an integer from 20 to 16384. // // * Provisioned IOPS storage (io1): Must be an integer from 100 to 16384. // @@ -11726,7 +11762,7 @@ type CreateDBInstanceInput struct { // // Constraints to the amount of storage for each storage type are the following: // - // * General Purpose (SSD) storage (gp2): Must be an integer from 5 to 16384. + // * General Purpose (SSD) storage (gp2): Must be an integer from 20 to 16384. // // * Provisioned IOPS storage (io1): Must be an integer from 100 to 16384. // @@ -11736,7 +11772,7 @@ type CreateDBInstanceInput struct { // // Constraints to the amount of storage for each storage type are the following: // - // * General Purpose (SSD) storage (gp2): Must be an integer from 5 to 16384. + // * General Purpose (SSD) storage (gp2): Must be an integer from 20 to 16384. // // * Provisioned IOPS storage (io1): Must be an integer from 100 to 16384. // @@ -11746,7 +11782,7 @@ type CreateDBInstanceInput struct { // // Constraints to the amount of storage for each storage type are the following: // - // * General Purpose (SSD) storage (gp2): Must be an integer from 10 to 16384. + // * General Purpose (SSD) storage (gp2): Must be an integer from 20 to 16384. // // * Provisioned IOPS storage (io1): Must be an integer from 100 to 16384. // @@ -11958,6 +11994,10 @@ type CreateDBInstanceInput struct { // Directory Service. DomainIAMRoleName *string `type:"string"` + // The list of log types that need to be enabled for exporting to CloudWatch + // Logs. + EnableCloudwatchLogsExports []*string `type:"list"` + // True to enable mapping of AWS Identity and Access Management (IAM) accounts // to database accounts, and otherwise false. // @@ -12028,7 +12068,9 @@ type CreateDBInstanceInput struct { // // MariaDB // - // * 10.1.26 (supported in all AWS Regions) + // * 10.2.11 (supported in all AWS Regions) + // + // 10.1.26 (supported in all AWS Regions) // // * 10.1.23 (supported in all AWS Regions) // @@ -12036,7 +12078,7 @@ type CreateDBInstanceInput struct { // // * 10.1.14 (supported in all AWS Regions except us-east-2) // - // 10.0.32 (supported in all AWS Regions) + // * 10.0.32 (supported in all AWS Regions) // // * 10.0.31 (supported in all AWS Regions) // @@ -12049,11 +12091,11 @@ type CreateDBInstanceInput struct { // // Microsoft SQL Server 2017 // - // 14.00.1000.169.v1 (supported for all editions, and all AWS Regions) + // * 14.00.1000.169.v1 (supported for all editions, and all AWS Regions) // // Microsoft SQL Server 2016 // - // 13.00.4451.0.v1 (supported for all editions, and all AWS Regions) + // * 13.00.4451.0.v1 (supported for all editions, and all AWS Regions) // // * 13.00.4422.0.v1 (supported for all editions, and all AWS Regions) // @@ -12061,7 +12103,7 @@ type CreateDBInstanceInput struct { // // Microsoft SQL Server 2014 // - // 12.00.5546.0.v1 (supported for all editions, and all AWS Regions) + // * 12.00.5546.0.v1 (supported for all editions, and all AWS Regions) // // * 12.00.5000.0.v1 (supported for all editions, and all AWS Regions) // @@ -12070,7 +12112,7 @@ type CreateDBInstanceInput struct { // // Microsoft SQL Server 2012 // - // 11.00.6594.0.v1 (supported for all editions, and all AWS Regions) + // * 11.00.6594.0.v1 (supported for all editions, and all AWS Regions) // // * 11.00.6020.0.v1 (supported for all editions, and all AWS Regions) // @@ -12082,8 +12124,8 @@ type CreateDBInstanceInput struct { // // Microsoft SQL Server 2008 R2 // - // 10.50.6529.0.v1 (supported for all editions, and all AWS Regions except us-east-2, - // ca-central-1, and eu-west-2) + // * 10.50.6529.0.v1 (supported for all editions, and all AWS Regions except + // us-east-2, ca-central-1, and eu-west-2) // // * 10.50.6000.34.v1 (supported for all editions, and all AWS Regions except // us-east-2, ca-central-1, and eu-west-2) @@ -12093,86 +12135,21 @@ type CreateDBInstanceInput struct { // // MySQL // - // 5.7.19 (supported in all AWS regions) + // * 5.7.19 (supported in all AWS regions) // // * 5.7.17 (supported in all AWS regions) // // * 5.7.16 (supported in all AWS regions) // - // * 5.6.37 (supported in all AWS Regions) + // 5.6.37(supported in all AWS Regions) // - // * 5.6.35 (supported in all AWS Regions) + // 5.6.35(supported in all AWS Regions) // - // * 5.6.34 (supported in all AWS Regions) + // 5.6.34(supported in all AWS Regions) // - // * 5.6.29 (supported in all AWS Regions) + // 5.6.29(supported in all AWS Regions) // - // * 5.6.27 (supported in all AWS Regions except us-east-2, ca-central-1, - // eu-west-2) - // - // 5.5.57(supported in all AWS Regions) - // - // 5.5.54(supported in all AWS Regions) - // - // 5.5.53(supported in all AWS Regions) - // - // 5.5.46(supported in all AWS Regions) - // - // Oracle 12c - // - // 12.1.0.2.v9(supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) - // - // 12.1.0.2.v8(supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) - // - // 12.1.0.2.v7(supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) - // - // 12.1.0.2.v6(supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) - // - // 12.1.0.2.v5(supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) - // - // 12.1.0.2.v4(supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) - // - // 12.1.0.2.v3(supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) - // - // 12.1.0.2.v2(supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) - // - // 12.1.0.2.v1(supported for EE in all AWS regions, and SE2 in all AWS regions except us-gov-west-1) - // - // Oracle 11g - // - // 11.2.0.4.v13(supported for EE, SE1, and SE, in all AWS regions) - // - // 11.2.0.4.v12(supported for EE, SE1, and SE, in all AWS regions) - // - // 11.2.0.4.v11(supported for EE, SE1, and SE, in all AWS regions) - // - // 11.2.0.4.v10(supported for EE, SE1, and SE, in all AWS regions) - // - // 11.2.0.4.v9(supported for EE, SE1, and SE, in all AWS regions) - // - // 11.2.0.4.v8(supported for EE, SE1, and SE, in all AWS regions) - // - // 11.2.0.4.v7(supported for EE, SE1, and SE, in all AWS regions) - // - // 11.2.0.4.v6(supported for EE, SE1, and SE, in all AWS regions) - // - // 11.2.0.4.v5(supported for EE, SE1, and SE, in all AWS regions) - // - // 11.2.0.4.v4(supported for EE, SE1, and SE, in all AWS regions) - // - // 11.2.0.4.v3(supported for EE, SE1, and SE, in all AWS regions) - // - // 11.2.0.4.v1(supported for EE, SE1, and SE, in all AWS regions) - // - // PostgreSQL - // - // Version 9.6.x: 9.6.5 | 9.6.3 | 9.6.2 | 9.6.1 - // - // Version 9.5.x: 9.5.9 | 9.5.7 | 9.5.6 | 9.5.4 | 9.5.2 - // - // Version 9.4.x: 9.4.14 | 9.4.12 | 9.4.11 | 9.4.9 | 9.4.7 - // - // Version 9.3.x: 9.3.19 | 9.3.17 | 9.3.16 | 9.3.14 | 9.3.12 + // 5.6.27 EngineVersion *string `type:"string"` // The amount of Provisioned IOPS (input/output operations per second) to be @@ -12616,6 +12593,12 @@ func (s *CreateDBInstanceInput) SetDomainIAMRoleName(v string) *CreateDBInstance return s } +// SetEnableCloudwatchLogsExports sets the EnableCloudwatchLogsExports field's value. +func (s *CreateDBInstanceInput) SetEnableCloudwatchLogsExports(v []*string) *CreateDBInstanceInput { + s.EnableCloudwatchLogsExports = v + return s +} + // SetEnableIAMDatabaseAuthentication sets the EnableIAMDatabaseAuthentication field's value. func (s *CreateDBInstanceInput) SetEnableIAMDatabaseAuthentication(v bool) *CreateDBInstanceInput { s.EnableIAMDatabaseAuthentication = &v @@ -12865,6 +12848,9 @@ type CreateDBInstanceReadReplicaInput struct { // DestinationRegion is used for presigning the request to a given region. DestinationRegion *string `type:"string"` + // The list of logs that the new DB instance is to export to CloudWatch Logs. + EnableCloudwatchLogsExports []*string `type:"list"` + // True to enable mapping of AWS Identity and Access Management (IAM) accounts // to database accounts, and otherwise false. // @@ -12922,6 +12908,16 @@ type CreateDBInstanceReadReplicaInput struct { // a MonitoringRoleArn value. MonitoringRoleArn *string `type:"string"` + // Specifies whether the read replica is in a Multi-AZ deployment. + // + // You can create a Read Replica as a Multi-AZ DB instance. RDS creates a standby + // of your replica in another Availability Zone for failover support for the + // replica. Creating your Read Replica as a Multi-AZ DB instance is independent + // of whether the source database is a Multi-AZ DB instance. + // + // Currently PostgreSQL Read Replicas can only be created as single-AZ DB instances. + MultiAZ *bool `type:"boolean"` + // The option group the DB instance is associated with. If omitted, the default // option group for the engine specified is used. OptionGroupName *string `type:"string"` @@ -13113,6 +13109,12 @@ func (s *CreateDBInstanceReadReplicaInput) SetDestinationRegion(v string) *Creat return s } +// SetEnableCloudwatchLogsExports sets the EnableCloudwatchLogsExports field's value. +func (s *CreateDBInstanceReadReplicaInput) SetEnableCloudwatchLogsExports(v []*string) *CreateDBInstanceReadReplicaInput { + s.EnableCloudwatchLogsExports = v + return s +} + // SetEnableIAMDatabaseAuthentication sets the EnableIAMDatabaseAuthentication field's value. func (s *CreateDBInstanceReadReplicaInput) SetEnableIAMDatabaseAuthentication(v bool) *CreateDBInstanceReadReplicaInput { s.EnableIAMDatabaseAuthentication = &v @@ -13149,6 +13151,12 @@ func (s *CreateDBInstanceReadReplicaInput) SetMonitoringRoleArn(v string) *Creat return s } +// SetMultiAZ sets the MultiAZ field's value. +func (s *CreateDBInstanceReadReplicaInput) SetMultiAZ(v bool) *CreateDBInstanceReadReplicaInput { + s.MultiAZ = &v + return s +} + // SetOptionGroupName sets the OptionGroupName field's value. func (s *CreateDBInstanceReadReplicaInput) SetOptionGroupName(v string) *CreateDBInstanceReadReplicaInput { s.OptionGroupName = &v @@ -14852,6 +14860,10 @@ type DBEngineVersion struct { // The version number of the database engine. EngineVersion *string `type:"string"` + // The types of logs that the database engine has available for export to CloudWatch + // Logs. + ExportableLogTypes []*string `type:"list"` + // A list of the character sets supported by this engine for the CharacterSetName // parameter of the CreateDBInstance action. SupportedCharacterSets []*CharacterSet `locationNameList:"CharacterSet" type:"list"` @@ -14860,6 +14872,10 @@ type DBEngineVersion struct { // of the CreateDBInstance action. SupportedTimezones []*Timezone `locationNameList:"Timezone" type:"list"` + // A value that indicates whether the engine version supports exporting the + // log types specified by ExportableLogTypes to CloudWatch Logs. + SupportsLogExportsToCloudwatchLogs *bool `type:"boolean"` + // A list of engine versions that this database engine version can be upgraded // to. ValidUpgradeTarget []*UpgradeTarget `locationNameList:"UpgradeTarget" type:"list"` @@ -14911,6 +14927,12 @@ func (s *DBEngineVersion) SetEngineVersion(v string) *DBEngineVersion { return s } +// SetExportableLogTypes sets the ExportableLogTypes field's value. +func (s *DBEngineVersion) SetExportableLogTypes(v []*string) *DBEngineVersion { + s.ExportableLogTypes = v + return s +} + // SetSupportedCharacterSets sets the SupportedCharacterSets field's value. func (s *DBEngineVersion) SetSupportedCharacterSets(v []*CharacterSet) *DBEngineVersion { s.SupportedCharacterSets = v @@ -14923,6 +14945,12 @@ func (s *DBEngineVersion) SetSupportedTimezones(v []*Timezone) *DBEngineVersion return s } +// SetSupportsLogExportsToCloudwatchLogs sets the SupportsLogExportsToCloudwatchLogs field's value. +func (s *DBEngineVersion) SetSupportsLogExportsToCloudwatchLogs(v bool) *DBEngineVersion { + s.SupportsLogExportsToCloudwatchLogs = &v + return s +} + // SetValidUpgradeTarget sets the ValidUpgradeTarget field's value. func (s *DBEngineVersion) SetValidUpgradeTarget(v []*UpgradeTarget) *DBEngineVersion { s.ValidUpgradeTarget = v @@ -15018,6 +15046,10 @@ type DBInstance struct { // The Active Directory Domain membership records associated with the DB instance. DomainMemberships []*DomainMembership `locationNameList:"DomainMembership" type:"list"` + // A list of log types that this DB instance is configured to export to CloudWatch + // Logs. + EnabledCloudwatchLogsExports []*string `type:"list"` + // Specifies the connection endpoint. Endpoint *Endpoint `type:"structure"` @@ -15286,6 +15318,12 @@ func (s *DBInstance) SetDomainMemberships(v []*DomainMembership) *DBInstance { return s } +// SetEnabledCloudwatchLogsExports sets the EnabledCloudwatchLogsExports field's value. +func (s *DBInstance) SetEnabledCloudwatchLogsExports(v []*string) *DBInstance { + s.EnabledCloudwatchLogsExports = v + return s +} + // SetEndpoint sets the Endpoint field's value. func (s *DBInstance) SetEndpoint(v *Endpoint) *DBInstance { s.Endpoint = v @@ -22047,6 +22085,10 @@ type ModifyDBInstanceInput struct { // Indicates the certificate that needs to be associated with the instance. CACertificateIdentifier *string `type:"string"` + // The configuration setting for the log types to be enabled for export to CloudWatch + // Logs for a specific DB instance or DB cluster. + CloudwatchLogsExportConfiguration *CloudwatchLogsExportConfiguration `type:"structure"` + // True to copy all tags from the DB instance to snapshots of the DB instance, // and otherwise false. The default is false. CopyTagsToSnapshot *bool `type:"boolean"` @@ -22296,8 +22338,6 @@ type ModifyDBInstanceInput struct { // Specifies if the DB instance is a Multi-AZ deployment. Changing this parameter // does not result in an outage and the change is applied during the next maintenance // window unless the ApplyImmediately parameter is set to true for this request. - // - // Constraints: Cannot be specified if the DB instance is a Read Replica. MultiAZ *bool `type:"boolean"` // The new DB instance identifier for the DB instance when renaming a DB instance. @@ -22502,6 +22542,12 @@ func (s *ModifyDBInstanceInput) SetCACertificateIdentifier(v string) *ModifyDBIn return s } +// SetCloudwatchLogsExportConfiguration sets the CloudwatchLogsExportConfiguration field's value. +func (s *ModifyDBInstanceInput) SetCloudwatchLogsExportConfiguration(v *CloudwatchLogsExportConfiguration) *ModifyDBInstanceInput { + s.CloudwatchLogsExportConfiguration = v + return s +} + // SetCopyTagsToSnapshot sets the CopyTagsToSnapshot field's value. func (s *ModifyDBInstanceInput) SetCopyTagsToSnapshot(v bool) *ModifyDBInstanceInput { s.CopyTagsToSnapshot = &v @@ -24300,6 +24346,43 @@ func (s *Parameter) SetSource(v string) *Parameter { return s } +// A list of the log types whose configuration is still pending. In other words, +// these log types are in the process of being activated or deactivated. +// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/PendingCloudwatchLogsExports +type PendingCloudwatchLogsExports struct { + _ struct{} `type:"structure"` + + // Log types that are in the process of being enabled. After they are enabled, + // these log types are exported to CloudWatch Logs. + LogTypesToDisable []*string `type:"list"` + + // Log types that are in the process of being deactivated. After they are deactivated, + // these log types aren't exported to CloudWatch Logs. + LogTypesToEnable []*string `type:"list"` +} + +// String returns the string representation +func (s PendingCloudwatchLogsExports) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PendingCloudwatchLogsExports) GoString() string { + return s.String() +} + +// SetLogTypesToDisable sets the LogTypesToDisable field's value. +func (s *PendingCloudwatchLogsExports) SetLogTypesToDisable(v []*string) *PendingCloudwatchLogsExports { + s.LogTypesToDisable = v + return s +} + +// SetLogTypesToEnable sets the LogTypesToEnable field's value. +func (s *PendingCloudwatchLogsExports) SetLogTypesToEnable(v []*string) *PendingCloudwatchLogsExports { + s.LogTypesToEnable = v + return s +} + // Provides information about a pending maintenance action for a resource. // See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/PendingMaintenanceAction type PendingMaintenanceAction struct { @@ -24425,6 +24508,10 @@ type PendingModifiedValues struct { // Indicates that the Single-AZ DB instance is to change to a Multi-AZ deployment. MultiAZ *bool `type:"boolean"` + // A list of the log types whose configuration is still pending. In other words, + // these log types are in the process of being activated or deactivated. + PendingCloudwatchLogsExports *PendingCloudwatchLogsExports `type:"structure"` + // Specifies the pending port for the DB instance. Port *int64 `type:"integer"` @@ -24508,6 +24595,12 @@ func (s *PendingModifiedValues) SetMultiAZ(v bool) *PendingModifiedValues { return s } +// SetPendingCloudwatchLogsExports sets the PendingCloudwatchLogsExports field's value. +func (s *PendingModifiedValues) SetPendingCloudwatchLogsExports(v *PendingCloudwatchLogsExports) *PendingModifiedValues { + s.PendingCloudwatchLogsExports = v + return s +} + // SetPort sets the Port field's value. func (s *PendingModifiedValues) SetPort(v int64) *PendingModifiedValues { s.Port = &v @@ -26608,6 +26701,10 @@ type RestoreDBInstanceFromDBSnapshotInput struct { // Directory Service. DomainIAMRoleName *string `type:"string"` + // The list of logs that the restored DB instance is to export to CloudWatch + // Logs. + EnableCloudwatchLogsExports []*string `type:"list"` + // True to enable mapping of AWS Identity and Access Management (IAM) accounts // to database accounts, and otherwise false. // @@ -26626,8 +26723,8 @@ type RestoreDBInstanceFromDBSnapshotInput struct { // // Default: The same as source // - // Constraint: Must be compatible with the engine of the source. You can restore - // a MariaDB 10.1 DB instance from a MySQL 5.6 snapshot. + // Constraint: Must be compatible with the engine of the source. For example, + // you can restore a MariaDB 10.1 DB instance from a MySQL 5.6 snapshot. // // Valid Values: // @@ -26823,6 +26920,12 @@ func (s *RestoreDBInstanceFromDBSnapshotInput) SetDomainIAMRoleName(v string) *R return s } +// SetEnableCloudwatchLogsExports sets the EnableCloudwatchLogsExports field's value. +func (s *RestoreDBInstanceFromDBSnapshotInput) SetEnableCloudwatchLogsExports(v []*string) *RestoreDBInstanceFromDBSnapshotInput { + s.EnableCloudwatchLogsExports = v + return s +} + // SetEnableIAMDatabaseAuthentication sets the EnableIAMDatabaseAuthentication field's value. func (s *RestoreDBInstanceFromDBSnapshotInput) SetEnableIAMDatabaseAuthentication(v bool) *RestoreDBInstanceFromDBSnapshotInput { s.EnableIAMDatabaseAuthentication = &v @@ -27008,6 +27111,10 @@ type RestoreDBInstanceFromS3Input struct { // A DB subnet group to associate with this DB instance. DBSubnetGroupName *string `type:"string"` + // The list of logs that the restored DB instance is to export to CloudWatch + // Logs. + EnableCloudwatchLogsExports []*string `type:"list"` + // True to enable mapping of AWS Identity and Access Management (IAM) accounts // to database accounts, and otherwise false. // @@ -27300,6 +27407,12 @@ func (s *RestoreDBInstanceFromS3Input) SetDBSubnetGroupName(v string) *RestoreDB return s } +// SetEnableCloudwatchLogsExports sets the EnableCloudwatchLogsExports field's value. +func (s *RestoreDBInstanceFromS3Input) SetEnableCloudwatchLogsExports(v []*string) *RestoreDBInstanceFromS3Input { + s.EnableCloudwatchLogsExports = v + return s +} + // SetEnableIAMDatabaseAuthentication sets the EnableIAMDatabaseAuthentication field's value. func (s *RestoreDBInstanceFromS3Input) SetEnableIAMDatabaseAuthentication(v bool) *RestoreDBInstanceFromS3Input { s.EnableIAMDatabaseAuthentication = &v @@ -27538,6 +27651,10 @@ type RestoreDBInstanceToPointInTimeInput struct { // Directory Service. DomainIAMRoleName *string `type:"string"` + // The list of logs that the restored DB instance is to export to CloudWatch + // Logs. + EnableCloudwatchLogsExports []*string `type:"list"` + // True to enable mapping of AWS Identity and Access Management (IAM) accounts // to database accounts, and otherwise false. // @@ -27659,7 +27776,7 @@ type RestoreDBInstanceToPointInTimeInput struct { // // Constraints: // - // * Must match the identifier of an existing DBInstance. + // * Must match the identifier of an existing DB instance. // // SourceDBInstanceIdentifier is a required field SourceDBInstanceIdentifier *string `type:"string" required:"true"` @@ -27779,6 +27896,12 @@ func (s *RestoreDBInstanceToPointInTimeInput) SetDomainIAMRoleName(v string) *Re return s } +// SetEnableCloudwatchLogsExports sets the EnableCloudwatchLogsExports field's value. +func (s *RestoreDBInstanceToPointInTimeInput) SetEnableCloudwatchLogsExports(v []*string) *RestoreDBInstanceToPointInTimeInput { + s.EnableCloudwatchLogsExports = v + return s +} + // SetEnableIAMDatabaseAuthentication sets the EnableIAMDatabaseAuthentication field's value. func (s *RestoreDBInstanceToPointInTimeInput) SetEnableIAMDatabaseAuthentication(v bool) *RestoreDBInstanceToPointInTimeInput { s.EnableIAMDatabaseAuthentication = &v diff --git a/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go b/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go index 38d637a82..914760caa 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go @@ -7784,11 +7784,8 @@ func (c *SSM) PutParameterRequest(input *PutParameterInput) (req *request.Reques // The parameter already exists. You can't create duplicate parameters. // // * ErrCodeHierarchyLevelLimitExceededException "HierarchyLevelLimitExceededException" -// A hierarchy can have a maximum of five levels. For example: -// -// /Finance/Prod/IAD/OS/WinServ2016/license15 -// -// For more information, see Working with Systems Manager Parameters (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-working.html). +// A hierarchy can have a maximum of 15 levels. For more information, see Working +// with Systems Manager Parameters (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-working.html). // // * ErrCodeHierarchyTypeMismatchException "HierarchyTypeMismatchException" // Parameter Store does not support changing a parameter type in a hierarchy. diff --git a/vendor/github.com/aws/aws-sdk-go/service/ssm/errors.go b/vendor/github.com/aws/aws-sdk-go/service/ssm/errors.go index cc45bcb71..8c932a093 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ssm/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ssm/errors.go @@ -150,11 +150,8 @@ const ( // ErrCodeHierarchyLevelLimitExceededException for service response error code // "HierarchyLevelLimitExceededException". // - // A hierarchy can have a maximum of five levels. For example: - // - // /Finance/Prod/IAD/OS/WinServ2016/license15 - // - // For more information, see Working with Systems Manager Parameters (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-working.html). + // A hierarchy can have a maximum of 15 levels. For more information, see Working + // with Systems Manager Parameters (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-working.html). ErrCodeHierarchyLevelLimitExceededException = "HierarchyLevelLimitExceededException" // ErrCodeHierarchyTypeMismatchException for service response error code diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/CHANGELOG.md b/vendor/github.com/terraform-providers/terraform-provider-aws/CHANGELOG.md index c7ec2795a..cda4f0e10 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/CHANGELOG.md +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/CHANGELOG.md @@ -1,22 +1,34 @@ ## 1.8.0 (Unreleased) +FEATURES: + +* **New Resource:** `aws_dynamodb_global_table` [GH-2517] +* **New Resource:** `aws_gamelift_build` [GH-2843] + ENHANCEMENTS: -* datasource/aws_kms_alias: Add target_key_arn attribute [GH-2551] +* data-source/aws_kms_alias: Add target_key_arn attribute [GH-2551] +* resource/aws_api_gateway_integration: Allow update of content_handling attributes [GH-3123] * resource/aws_appautoscaling_target: Support updating max_capacity, min_capacity, and role_arn attributes [GH-2950] +* resource/aws_cloudwatch_log_subscription_filter: Add support for distribution [GH-3046] +* resource/aws_cognito_user_pool: support pre_token_generation in lambda_config [GH-3093] * resource/aws_elasticsearch_domain: Add support for encrypt_at_rest [GH-2632] +* resource/aws_emr_cluster: Support CustomAmiId [GH-2766] * resource/aws_kms_alias: Add target_key_arn attribute [GH-3096] * resource/aws_route: Allow adding IPv6 routes to instances and network interfaces [GH-2265] +* resource/aws_sqs_queue: Retry queue creation on QueueDeletedRecently error [GH-3113] * resource/aws_vpn_connection: Add inside CIDR and pre-shared key attributes [GH-1862] -* resource/aws_api_gateway_integration: Allow update of content_handling attributes [GH-3123] -* resource/cognito_user_pool: support pre_token_generation in lambda_config [GH-3093] BUG FIXES: +* resource/aws_appautoscaling_policy: Support additional predefined metric types in validation [GH-3122] * resource/aws_ebs_snapshot: Fix `kms_key_id` attribute handling [GH-3085] * resource/aws_eip_assocation: Retry association for pending instances [GH-3072] * resource/aws_kinesis_firehose_delivery_stream: Prevent panic on missing S3 configuration prefix [GH-3073] +* resource/aws_lambda_function: Retry updates for IAM eventual consistency [GH-3116] +* resource/aws_route53_record: Suppress uppercase alias name diff [GH-3119] * resource/aws_sqs_queue_policy: Prevent missing policy error on read [GH-2739] +* resource/aws_rds_cluster: Retry deletion on InvalidDBClusterStateFault [GH-3028] ## 1.7.1 (January 19, 2018) diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/config.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/config.go index c9a1081e2..99a2e7347 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/config.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/config.go @@ -50,6 +50,7 @@ import ( "github.com/aws/aws-sdk-go/service/elbv2" "github.com/aws/aws-sdk-go/service/emr" "github.com/aws/aws-sdk-go/service/firehose" + "github.com/aws/aws-sdk-go/service/gamelift" "github.com/aws/aws-sdk-go/service/glacier" "github.com/aws/aws-sdk-go/service/glue" "github.com/aws/aws-sdk-go/service/guardduty" @@ -177,6 +178,7 @@ type AWSClient struct { iamconn *iam.IAM kinesisconn *kinesis.Kinesis kmsconn *kms.KMS + gameliftconn *gamelift.GameLift firehoseconn *firehose.Firehose inspectorconn *inspector.Inspector elasticacheconn *elasticache.ElastiCache @@ -224,6 +226,9 @@ func (c *AWSClient) IsChinaCloud() bool { if c.region == "cn-north-1" { return true } + if c.region == "cn-northwest-1" { + return true + } return false } @@ -423,6 +428,7 @@ func (c *Config) Client() (interface{}, error) { client.esconn = elasticsearch.New(sess) client.firehoseconn = firehose.New(sess) client.inspectorconn = inspector.New(sess) + client.gameliftconn = gamelift.New(sess) client.glacierconn = glacier.New(sess) client.guarddutyconn = guardduty.New(sess) client.iotconn = iot.New(sess) @@ -503,6 +509,7 @@ func (c *Config) ValidateRegion() error { "ap-southeast-2", "ca-central-1", "cn-north-1", + "cn-northwest-1", "eu-central-1", "eu-west-1", "eu-west-2", diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_cloudtrail_service_account.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_cloudtrail_service_account.go index 88818fcdc..b7129bbfa 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_cloudtrail_service_account.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_cloudtrail_service_account.go @@ -23,6 +23,7 @@ var cloudTrailServiceAccountPerRegionMap = map[string]string{ "eu-west-2": "282025262664", "eu-west-3": "262312530599", "sa-east-1": "814480443879", + "cn-northwest-1": "681348832753", } func dataSourceAwsCloudTrailServiceAccount() *schema.Resource { diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_elb_service_account.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_elb_service_account.go index 6034ee55c..5d2da6747 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_elb_service_account.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_elb_service_account.go @@ -15,6 +15,7 @@ var elbAccountIdPerRegionMap = map[string]string{ "ap-southeast-2": "783225319266", "ca-central-1": "985666609251", "cn-north-1": "638102146993", + "cn-northwest-1": "037604701340", "eu-central-1": "054676820928", "eu-west-1": "156460612806", "eu-west-2": "652711504416", diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_redshift_service_account.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_redshift_service_account.go index 029f8fe02..d5db68d55 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_redshift_service_account.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_redshift_service_account.go @@ -18,6 +18,7 @@ var redshiftServiceAccountPerRegionMap = map[string]string{ "ap-southeast-2": "762762565011", "ap-northeast-1": "404641285394", "ca-central-1": "907379612154", + "cn-northwest-1": "660998842044", "eu-central-1": "053454850223", "eu-west-1": "210876761215", "eu-west-2": "307160386991", diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/provider.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/provider.go index 81a1dc110..9a3706022 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/provider.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/provider.go @@ -325,6 +325,7 @@ func Provider() terraform.ResourceProvider { "aws_dx_connection": resourceAwsDxConnection(), "aws_dx_connection_association": resourceAwsDxConnectionAssociation(), "aws_dynamodb_table": resourceAwsDynamoDbTable(), + "aws_dynamodb_global_table": resourceAwsDynamoDbGlobalTable(), "aws_ebs_snapshot": resourceAwsEbsSnapshot(), "aws_ebs_volume": resourceAwsEbsVolume(), "aws_ecr_lifecycle_policy": resourceAwsEcrLifecyclePolicy(), @@ -357,6 +358,7 @@ func Provider() terraform.ResourceProvider { "aws_emr_instance_group": resourceAwsEMRInstanceGroup(), "aws_emr_security_configuration": resourceAwsEMRSecurityConfiguration(), "aws_flow_log": resourceAwsFlowLog(), + "aws_gamelift_build": resourceAwsGameliftBuild(), "aws_glacier_vault": resourceAwsGlacierVault(), "aws_glue_catalog_database": resourceAwsGlueCatalogDatabase(), "aws_guardduty_detector": resourceAwsGuardDutyDetector(), diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_cloudwatch_log_subscription_filter.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_cloudwatch_log_subscription_filter.go index bbdb22085..1598b748f 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_cloudwatch_log_subscription_filter.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_cloudwatch_log_subscription_filter.go @@ -48,6 +48,10 @@ func resourceAwsCloudwatchLogSubscriptionFilter() *schema.Resource { Optional: true, Computed: true, }, + "distribution": { + Type: schema.TypeString, + Optional: true, + }, }, } } @@ -121,6 +125,10 @@ func getAwsCloudWatchLogsSubscriptionFilterInput(d *schema.ResourceData) cloudwa params.RoleArn = aws.String(d.Get("role_arn").(string)) } + if _, ok := d.GetOk("distribution"); ok { + params.Distribution = aws.String(d.Get("distribution").(string)) + } + return params } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_global_table.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_global_table.go new file mode 100644 index 000000000..b8dfd03c0 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_global_table.go @@ -0,0 +1,321 @@ +package aws + +import ( + "fmt" + "log" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/dynamodb" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAwsDynamoDbGlobalTable() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsDynamoDbGlobalTableCreate, + Read: resourceAwsDynamoDbGlobalTableRead, + Update: resourceAwsDynamoDbGlobalTableUpdate, + Delete: resourceAwsDynamoDbGlobalTableDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + + Timeouts: &schema.ResourceTimeout{ + Create: schema.DefaultTimeout(1 * time.Minute), + Update: schema.DefaultTimeout(1 * time.Minute), + Delete: schema.DefaultTimeout(1 * time.Minute), + }, + + Schema: map[string]*schema.Schema{ + "name": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validateAwsDynamoDbGlobalTableName, + }, + + "replica": { + Type: schema.TypeSet, + Required: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "region_name": { + Type: schema.TypeString, + Required: true, + }, + }, + }, + }, + + "arn": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func resourceAwsDynamoDbGlobalTableCreate(d *schema.ResourceData, meta interface{}) error { + dynamodbconn := meta.(*AWSClient).dynamodbconn + + globalTableName := d.Get("name").(string) + + input := &dynamodb.CreateGlobalTableInput{ + GlobalTableName: aws.String(globalTableName), + ReplicationGroup: expandAwsDynamoDbReplicas(d.Get("replica").(*schema.Set).List()), + } + + log.Printf("[DEBUG] Creating DynamoDB Global Table: %#v", input) + _, err := dynamodbconn.CreateGlobalTable(input) + if err != nil { + return err + } + + d.SetId(globalTableName) + + log.Println("[INFO] Waiting for DynamoDB Global Table to be created") + stateConf := &resource.StateChangeConf{ + Pending: []string{ + dynamodb.GlobalTableStatusCreating, + dynamodb.GlobalTableStatusDeleting, + dynamodb.GlobalTableStatusUpdating, + }, + Target: []string{ + dynamodb.GlobalTableStatusActive, + }, + Refresh: resourceAwsDynamoDbGlobalTableStateRefreshFunc(d, meta), + Timeout: d.Timeout(schema.TimeoutCreate), + MinTimeout: 10 * time.Second, + } + _, err = stateConf.WaitForState() + if err != nil { + return err + } + + return resourceAwsDynamoDbGlobalTableRead(d, meta) +} + +func resourceAwsDynamoDbGlobalTableRead(d *schema.ResourceData, meta interface{}) error { + globalTableDescription, err := resourceAwsDynamoDbGlobalTableRetrieve(d, meta) + + if err != nil { + return err + } + if globalTableDescription == nil { + log.Printf("[WARN] DynamoDB Global Table %q not found, removing from state", d.Id()) + d.SetId("") + return nil + } + + return flattenAwsDynamoDbGlobalTable(d, globalTableDescription) +} + +func resourceAwsDynamoDbGlobalTableUpdate(d *schema.ResourceData, meta interface{}) error { + dynamodbconn := meta.(*AWSClient).dynamodbconn + + if d.HasChange("replica") { + o, n := d.GetChange("replica") + if o == nil { + o = new(schema.Set) + } + if n == nil { + n = new(schema.Set) + } + + os := o.(*schema.Set) + ns := n.(*schema.Set) + replicaUpdateCreateReplicas := expandAwsDynamoDbReplicaUpdateCreateReplicas(ns.Difference(os).List()) + replicaUpdateDeleteReplicas := expandAwsDynamoDbReplicaUpdateDeleteReplicas(os.Difference(ns).List()) + + replicaUpdates := make([]*dynamodb.ReplicaUpdate, 0, (len(replicaUpdateCreateReplicas) + len(replicaUpdateDeleteReplicas))) + for _, replicaUpdate := range replicaUpdateCreateReplicas { + replicaUpdates = append(replicaUpdates, replicaUpdate) + } + for _, replicaUpdate := range replicaUpdateDeleteReplicas { + replicaUpdates = append(replicaUpdates, replicaUpdate) + } + + input := &dynamodb.UpdateGlobalTableInput{ + GlobalTableName: aws.String(d.Id()), + ReplicaUpdates: replicaUpdates, + } + log.Printf("[DEBUG] Updating DynamoDB Global Table: %#v", input) + if _, err := dynamodbconn.UpdateGlobalTable(input); err != nil { + return err + } + + log.Println("[INFO] Waiting for DynamoDB Global Table to be updated") + stateConf := &resource.StateChangeConf{ + Pending: []string{ + dynamodb.GlobalTableStatusCreating, + dynamodb.GlobalTableStatusDeleting, + dynamodb.GlobalTableStatusUpdating, + }, + Target: []string{ + dynamodb.GlobalTableStatusActive, + }, + Refresh: resourceAwsDynamoDbGlobalTableStateRefreshFunc(d, meta), + Timeout: d.Timeout(schema.TimeoutUpdate), + MinTimeout: 10 * time.Second, + } + _, err := stateConf.WaitForState() + if err != nil { + return err + } + } + + return nil +} + +// Deleting a DynamoDB Global Table is represented by removing all replicas. +func resourceAwsDynamoDbGlobalTableDelete(d *schema.ResourceData, meta interface{}) error { + dynamodbconn := meta.(*AWSClient).dynamodbconn + + input := &dynamodb.UpdateGlobalTableInput{ + GlobalTableName: aws.String(d.Id()), + ReplicaUpdates: expandAwsDynamoDbReplicaUpdateDeleteReplicas(d.Get("replica").(*schema.Set).List()), + } + log.Printf("[DEBUG] Deleting DynamoDB Global Table: %#v", input) + if _, err := dynamodbconn.UpdateGlobalTable(input); err != nil { + return err + } + + log.Println("[INFO] Waiting for DynamoDB Global Table to be destroyed") + stateConf := &resource.StateChangeConf{ + Pending: []string{ + dynamodb.GlobalTableStatusActive, + dynamodb.GlobalTableStatusCreating, + dynamodb.GlobalTableStatusDeleting, + dynamodb.GlobalTableStatusUpdating, + }, + Target: []string{}, + Refresh: resourceAwsDynamoDbGlobalTableStateRefreshFunc(d, meta), + Timeout: d.Timeout(schema.TimeoutDelete), + MinTimeout: 10 * time.Second, + } + _, err := stateConf.WaitForState() + return err +} + +func resourceAwsDynamoDbGlobalTableRetrieve(d *schema.ResourceData, meta interface{}) (*dynamodb.GlobalTableDescription, error) { + dynamodbconn := meta.(*AWSClient).dynamodbconn + + input := &dynamodb.DescribeGlobalTableInput{ + GlobalTableName: aws.String(d.Id()), + } + + log.Printf("[DEBUG] Retrieving DynamoDB Global Table: %#v", input) + + output, err := dynamodbconn.DescribeGlobalTable(input) + if err != nil { + if isAWSErr(err, dynamodb.ErrCodeGlobalTableNotFoundException, "") { + return nil, nil + } + return nil, fmt.Errorf("Error retrieving DynamoDB Global Table: %s", err) + } + + return output.GlobalTableDescription, nil +} + +func resourceAwsDynamoDbGlobalTableStateRefreshFunc( + d *schema.ResourceData, meta interface{}) resource.StateRefreshFunc { + return func() (interface{}, string, error) { + gtd, err := resourceAwsDynamoDbGlobalTableRetrieve(d, meta) + + if err != nil { + log.Printf("Error on retrieving DynamoDB Global Table when waiting: %s", err) + return nil, "", err + } + + if gtd == nil { + return nil, "", nil + } + + if gtd.GlobalTableStatus != nil { + log.Printf("[DEBUG] Status for DynamoDB Global Table %s: %s", d.Id(), *gtd.GlobalTableStatus) + } + + return gtd, *gtd.GlobalTableStatus, nil + } +} + +func flattenAwsDynamoDbGlobalTable(d *schema.ResourceData, globalTableDescription *dynamodb.GlobalTableDescription) error { + var err error + + d.Set("arn", globalTableDescription.GlobalTableArn) + d.Set("name", globalTableDescription.GlobalTableName) + + err = d.Set("replica", flattenAwsDynamoDbReplicas(globalTableDescription.ReplicationGroup)) + if err != nil { + return err + } + + return nil +} + +func expandAwsDynamoDbReplicaUpdateCreateReplicas(configuredReplicas []interface{}) []*dynamodb.ReplicaUpdate { + replicaUpdates := make([]*dynamodb.ReplicaUpdate, 0, len(configuredReplicas)) + for _, replicaRaw := range configuredReplicas { + replica := replicaRaw.(map[string]interface{}) + replicaUpdates = append(replicaUpdates, expandAwsDynamoDbReplicaUpdateCreateReplica(replica)) + } + return replicaUpdates +} + +func expandAwsDynamoDbReplicaUpdateCreateReplica(configuredReplica map[string]interface{}) *dynamodb.ReplicaUpdate { + replicaUpdate := &dynamodb.ReplicaUpdate{ + Create: &dynamodb.CreateReplicaAction{ + RegionName: aws.String(configuredReplica["region_name"].(string)), + }, + } + return replicaUpdate +} + +func expandAwsDynamoDbReplicaUpdateDeleteReplicas(configuredReplicas []interface{}) []*dynamodb.ReplicaUpdate { + replicaUpdates := make([]*dynamodb.ReplicaUpdate, 0, len(configuredReplicas)) + for _, replicaRaw := range configuredReplicas { + replica := replicaRaw.(map[string]interface{}) + replicaUpdates = append(replicaUpdates, expandAwsDynamoDbReplicaUpdateDeleteReplica(replica)) + } + return replicaUpdates +} + +func expandAwsDynamoDbReplicaUpdateDeleteReplica(configuredReplica map[string]interface{}) *dynamodb.ReplicaUpdate { + replicaUpdate := &dynamodb.ReplicaUpdate{ + Delete: &dynamodb.DeleteReplicaAction{ + RegionName: aws.String(configuredReplica["region_name"].(string)), + }, + } + return replicaUpdate +} + +func expandAwsDynamoDbReplicas(configuredReplicas []interface{}) []*dynamodb.Replica { + replicas := make([]*dynamodb.Replica, 0, len(configuredReplicas)) + for _, replicaRaw := range configuredReplicas { + replica := replicaRaw.(map[string]interface{}) + replicas = append(replicas, expandAwsDynamoDbReplica(replica)) + } + return replicas +} + +func expandAwsDynamoDbReplica(configuredReplica map[string]interface{}) *dynamodb.Replica { + replica := &dynamodb.Replica{ + RegionName: aws.String(configuredReplica["region_name"].(string)), + } + return replica +} + +func flattenAwsDynamoDbReplicas(replicaDescriptions []*dynamodb.ReplicaDescription) []interface{} { + replicas := []interface{}{} + for _, replicaDescription := range replicaDescriptions { + replicas = append(replicas, flattenAwsDynamoDbReplica(replicaDescription)) + } + return replicas +} + +func flattenAwsDynamoDbReplica(replicaDescription *dynamodb.ReplicaDescription) map[string]interface{} { + replica := make(map[string]interface{}) + replica["region_name"] = *replicaDescription.RegionName + return replica +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_table.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_table.go index a3d71fd8b..d9b072f88 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_table.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_table.go @@ -39,6 +39,11 @@ func resourceAwsDynamoDbTable() *schema.Resource { State: schema.ImportStatePassthrough, }, + Timeouts: &schema.ResourceTimeout{ + Delete: schema.DefaultTimeout(10 * time.Minute), + Update: schema.DefaultTimeout(10 * time.Minute), + }, + SchemaVersion: 1, MigrateState: resourceAwsDynamoDbTableMigrateState, @@ -846,42 +851,30 @@ func flattenAwsDynamoDbTableResource(d *schema.ResourceData, meta interface{}, t func resourceAwsDynamoDbTableDelete(d *schema.ResourceData, meta interface{}) error { dynamodbconn := meta.(*AWSClient).dynamodbconn - if err := waitForTableToBeActive(d.Id(), meta); err != nil { - return errwrap.Wrapf("Error waiting for Dynamo DB Table update: {{err}}", err) - } - log.Printf("[DEBUG] DynamoDB delete table: %s", d.Id()) - _, err := dynamodbconn.DeleteTable(&dynamodb.DeleteTableInput{ - TableName: aws.String(d.Id()), - }) - if err != nil { - return err - } - - params := &dynamodb.DescribeTableInput{ - TableName: aws.String(d.Id()), - } - - err = resource.Retry(10*time.Minute, func() *resource.RetryError { - t, err := dynamodbconn.DescribeTable(params) + err := resource.Retry(d.Timeout(schema.TimeoutDelete), func() *resource.RetryError { + _, err := dynamodbconn.DeleteTable(&dynamodb.DeleteTableInput{ + TableName: aws.String(d.Id()), + }) if err != nil { - if awserr, ok := err.(awserr.Error); ok && awserr.Code() == "ResourceNotFoundException" { + // Table is already deleted + if isAWSErr(err, dynamodb.ErrCodeResourceNotFoundException, "Requested resource not found: Table: ") { return nil } - // Didn't recognize the error, so shouldn't retry. + // This logic handles multiple scenarios in the DynamoDB API: + // 1. Updating a table immediately before deletion may return: + // ResourceInUseException: Attempt to change a resource which is still in use: Table is being updated: + // 2. Removing a table from a DynamoDB global table may return: + // ResourceInUseException: Attempt to change a resource which is still in use: Table is being deleted: + if isAWSErr(err, dynamodb.ErrCodeResourceInUseException, "") { + return resource.RetryableError(err) + } + // Unknown error return resource.NonRetryableError(err) } - if t != nil { - if t.Table.TableStatus != nil && strings.ToLower(*t.Table.TableStatus) == "deleting" { - log.Printf("[DEBUG] AWS Dynamo DB table (%s) is still deleting", d.Id()) - return resource.RetryableError(fmt.Errorf("still deleting")) - } - } - - // we should be not found or deleting, so error here - return resource.NonRetryableError(err) + return nil }) // check error from retry @@ -889,7 +882,63 @@ func resourceAwsDynamoDbTableDelete(d *schema.ResourceData, meta interface{}) er return err } - return nil + log.Println("[INFO] Waiting for DynamoDB Table to be destroyed") + stateConf := &resource.StateChangeConf{ + Pending: []string{ + dynamodb.TableStatusActive, + dynamodb.TableStatusCreating, + dynamodb.TableStatusDeleting, + dynamodb.TableStatusUpdating, + }, + Target: []string{}, + Refresh: resourceAwsDynamoDbTableStateRefreshFunc(d, meta), + Timeout: d.Timeout(schema.TimeoutDelete), + MinTimeout: 10 * time.Second, + } + _, err = stateConf.WaitForState() + return err +} + +func resourceAwsDynamoDbTableRetrieve(d *schema.ResourceData, meta interface{}) (*dynamodb.TableDescription, error) { + dynamodbconn := meta.(*AWSClient).dynamodbconn + + input := &dynamodb.DescribeTableInput{ + TableName: aws.String(d.Id()), + } + + log.Printf("[DEBUG] Retrieving DynamoDB Table: %#v", input) + + output, err := dynamodbconn.DescribeTable(input) + if err != nil { + if isAWSErr(err, dynamodb.ErrCodeResourceNotFoundException, "") { + return nil, nil + } + return nil, fmt.Errorf("Error retrieving DynamoDB Table: %s", err) + } + + return output.Table, nil +} + +func resourceAwsDynamoDbTableStateRefreshFunc( + d *schema.ResourceData, meta interface{}) resource.StateRefreshFunc { + return func() (interface{}, string, error) { + td, err := resourceAwsDynamoDbTableRetrieve(d, meta) + + if err != nil { + log.Printf("Error on retrieving DynamoDB Table when waiting: %s", err) + return nil, "", err + } + + if td == nil { + return nil, "", nil + } + + if td.TableStatus != nil { + log.Printf("[DEBUG] Status for DynamoDB Table %s: %s", d.Id(), *td.TableStatus) + } + + return td, *td.TableStatus, nil + } } func createGSIFromData(data *map[string]interface{}) dynamodb.GlobalSecondaryIndex { diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_emr_cluster.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_emr_cluster.go index 27f7c2737..66086e592 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_emr_cluster.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_emr_cluster.go @@ -245,6 +245,12 @@ func resourceAwsEMRCluster() *schema.Resource { ForceNew: true, Optional: true, }, + "custom_ami_id": { + Type: schema.TypeString, + ForceNew: true, + Optional: true, + ValidateFunc: validateAwsEmrCustomAmiId, + }, }, } } @@ -358,6 +364,10 @@ func resourceAwsEMRClusterCreate(d *schema.ResourceData, meta interface{}) error params.EbsRootVolumeSize = aws.Int64(int64(v.(int))) } + if v, ok := d.GetOk("custom_ami_id"); ok { + params.CustomAmiId = aws.String(v.(string)) + } + if instanceProfile != "" { params.JobFlowRole = aws.String(instanceProfile) } @@ -475,6 +485,10 @@ func resourceAwsEMRClusterRead(d *schema.ResourceData, meta interface{}) error { d.Set("tags", tagsToMapEMR(cluster.Tags)) d.Set("ebs_root_volume_size", cluster.EbsRootVolumeSize) + if cluster.CustomAmiId != nil { + d.Set("custom_ami_id", cluster.CustomAmiId) + } + if err := d.Set("applications", flattenApplications(cluster.Applications)); err != nil { log.Printf("[ERR] Error setting EMR Applications for cluster (%s): %s", d.Id(), err) } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_gamelift_build.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_gamelift_build.go new file mode 100644 index 000000000..9a327accc --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_gamelift_build.go @@ -0,0 +1,187 @@ +package aws + +import ( + "log" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/gamelift" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/helper/schema" + "github.com/hashicorp/terraform/helper/validation" +) + +func resourceAwsGameliftBuild() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsGameliftBuildCreate, + Read: resourceAwsGameliftBuildRead, + Update: resourceAwsGameliftBuildUpdate, + Delete: resourceAwsGameliftBuildDelete, + + Schema: map[string]*schema.Schema{ + "name": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validation.StringLenBetween(1, 1024), + }, + "operating_system": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validateGameliftOperatingSystem, + }, + "storage_location": { + Type: schema.TypeList, + Required: true, + ForceNew: true, + MaxItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "bucket": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "key": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "role_arn": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validateArn, + }, + }, + }, + }, + "version": { + Type: schema.TypeString, + Optional: true, + ValidateFunc: validation.StringLenBetween(1, 1024), + }, + }, + } +} + +func resourceAwsGameliftBuildCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).gameliftconn + + sl := expandGameliftStorageLocation(d.Get("storage_location").([]interface{})) + input := gamelift.CreateBuildInput{ + Name: aws.String(d.Get("name").(string)), + OperatingSystem: aws.String(d.Get("operating_system").(string)), + StorageLocation: sl, + } + if v, ok := d.GetOk("version"); ok { + input.Version = aws.String(v.(string)) + } + log.Printf("[INFO] Creating Gamelift Build: %s", input) + var out *gamelift.CreateBuildOutput + err := resource.Retry(30*time.Second, func() *resource.RetryError { + var err error + out, err = conn.CreateBuild(&input) + if err != nil { + if isAWSErr(err, gamelift.ErrCodeInvalidRequestException, "Provided build is not accessible.") { + return resource.RetryableError(err) + } + return resource.NonRetryableError(err) + } + return nil + }) + if err != nil { + return err + } + + d.SetId(*out.Build.BuildId) + + stateConf := resource.StateChangeConf{ + Pending: []string{gamelift.BuildStatusInitialized}, + Target: []string{gamelift.BuildStatusReady}, + Timeout: 1 * time.Minute, + Refresh: func() (interface{}, string, error) { + out, err := conn.DescribeBuild(&gamelift.DescribeBuildInput{ + BuildId: aws.String(d.Id()), + }) + if err != nil { + return 42, "", err + } + + return out, *out.Build.Status, nil + }, + } + _, err = stateConf.WaitForState() + if err != nil { + return err + } + + return resourceAwsGameliftBuildRead(d, meta) +} + +func resourceAwsGameliftBuildRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).gameliftconn + + log.Printf("[INFO] Reading Gamelift Build: %s", d.Id()) + out, err := conn.DescribeBuild(&gamelift.DescribeBuildInput{ + BuildId: aws.String(d.Id()), + }) + if err != nil { + if isAWSErr(err, gamelift.ErrCodeNotFoundException, "") { + log.Printf("[WARN] Gamelift Build (%s) not found, removing from state", d.Id()) + d.SetId("") + return nil + } + return err + } + b := out.Build + + d.Set("name", b.Name) + d.Set("operating_system", b.OperatingSystem) + d.Set("version", b.Version) + + return nil +} + +func resourceAwsGameliftBuildUpdate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).gameliftconn + + log.Printf("[INFO] Updating Gamelift Build: %s", d.Id()) + input := gamelift.UpdateBuildInput{ + BuildId: aws.String(d.Id()), + Name: aws.String(d.Get("name").(string)), + } + if v, ok := d.GetOk("version"); ok { + input.Version = aws.String(v.(string)) + } + + _, err := conn.UpdateBuild(&input) + if err != nil { + return err + } + + return resourceAwsGameliftBuildRead(d, meta) +} + +func resourceAwsGameliftBuildDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).gameliftconn + + log.Printf("[INFO] Deleting Gamelift Build: %s", d.Id()) + _, err := conn.DeleteBuild(&gamelift.DeleteBuildInput{ + BuildId: aws.String(d.Id()), + }) + if err != nil { + return err + } + + return nil +} + +func expandGameliftStorageLocation(cfg []interface{}) *gamelift.S3Location { + loc := cfg[0].(map[string]interface{}) + return &gamelift.S3Location{ + Bucket: aws.String(loc["bucket"].(string)), + Key: aws.String(loc["key"].(string)), + RoleArn: aws.String(loc["role_arn"].(string)), + } +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_lambda_function.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_lambda_function.go index 1f489768f..9d73e192b 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_lambda_function.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_lambda_function.go @@ -649,6 +649,10 @@ func resourceAwsLambdaFunctionUpdate(d *schema.ResourceData, meta interface{}) e if err != nil { log.Printf("[DEBUG] Received error modifying Lambda Function Configuration %s: %s", d.Id(), err) + if isAWSErr(err, "InvalidParameterValueException", "The provided execution role does not have permissions") { + log.Printf("[DEBUG] Received %s, retrying UpdateFunctionConfiguration", err) + return resource.RetryableError(err) + } if isAWSErr(err, "InvalidParameterValueException", "Your request has been throttled by EC2, please make sure you have enough API rate limit.") { log.Printf("[DEBUG] Received %s, retrying UpdateFunctionConfiguration", err) return resource.RetryableError(err) diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_rds_cluster.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_rds_cluster.go index 299153809..95284dbc9 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_rds_cluster.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_rds_cluster.go @@ -755,13 +755,22 @@ func resourceAwsRDSClusterDelete(d *schema.ResourceData, meta interface{}) error } log.Printf("[DEBUG] RDS Cluster delete options: %s", deleteOpts) - _, err := conn.DeleteDBCluster(&deleteOpts) - if err != nil { - if awsErr, ok := err.(awserr.Error); ok { - if "InvalidDBClusterStateFault" == awsErr.Code() { - return fmt.Errorf("RDS Cluster cannot be deleted: %s", awsErr.Message()) + + err := resource.Retry(1*time.Minute, func() *resource.RetryError { + _, err := conn.DeleteDBCluster(&deleteOpts) + if err != nil { + if isAWSErr(err, rds.ErrCodeInvalidDBClusterStateFault, "is not currently in the available state") { + return resource.RetryableError(err) } + if isAWSErr(err, rds.ErrCodeDBClusterNotFoundFault, "") { + return nil + } + return resource.NonRetryableError(err) } + return nil + }) + if err != nil { + return fmt.Errorf("RDS Cluster cannot be deleted: %s", err) } stateConf := &resource.StateChangeConf{ diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_route53_record.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_route53_record.go index 719825ffe..d3c414b77 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_route53_record.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_route53_record.go @@ -101,6 +101,9 @@ func resourceAwsRoute53Record() *schema.Resource { Type: schema.TypeString, Required: true, StateFunc: normalizeAwsAliasName, + DiffSuppressFunc: func(k, old, new string, d *schema.ResourceData) bool { + return strings.ToLower(old) == strings.ToLower(new) + }, }, "evaluate_target_health": { @@ -898,11 +901,11 @@ func nilString(s string) *string { func normalizeAwsAliasName(alias interface{}) string { input := alias.(string) - if strings.HasPrefix(input, "dualstack.") { - return strings.Replace(input, "dualstack.", "", -1) + output := strings.ToLower(input) + if strings.HasPrefix(output, "dualstack.") { + output = strings.TrimLeft(output, "dualstack.") } - - return strings.TrimRight(input, ".") + return strings.TrimRight(output, ".") } func parseRecordId(id string) [4]string { diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sqs_queue.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sqs_queue.go index 98b475c8f..0ef10e9f1 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sqs_queue.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sqs_queue.go @@ -5,6 +5,7 @@ import ( "log" "net/url" "strconv" + "time" "github.com/hashicorp/terraform/helper/schema" @@ -165,9 +166,9 @@ func resourceAwsSqsQueueCreate(d *schema.ResourceData, meta interface{}) error { attributes := make(map[string]*string) - resource := *resourceAwsSqsQueue() + queueResource := *resourceAwsSqsQueue() - for k, s := range resource.Schema { + for k, s := range queueResource.Schema { if attrKey, ok := sqsQueueAttributeMap[k]; ok { if value, ok := d.GetOk(k); ok { switch s.Type { @@ -187,7 +188,18 @@ func resourceAwsSqsQueueCreate(d *schema.ResourceData, meta interface{}) error { req.Attributes = attributes } - output, err := sqsconn.CreateQueue(req) + var output *sqs.CreateQueueOutput + err := resource.Retry(70*time.Second, func() *resource.RetryError { + var err error + output, err = sqsconn.CreateQueue(req) + if err != nil { + if isAWSErr(err, sqs.ErrCodeQueueDeletedRecently, "You must wait 60 seconds after deleting a queue before you can create another with the same name.") { + return resource.RetryableError(err) + } + return resource.NonRetryableError(err) + } + return nil + }) if err != nil { return fmt.Errorf("Error creating SQS queue: %s", err) } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/validators.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/validators.go index 27d780087..fdcfa1701 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/validators.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/validators.go @@ -9,8 +9,10 @@ import ( "time" "github.com/aws/aws-sdk-go/service/apigateway" + "github.com/aws/aws-sdk-go/service/applicationautoscaling" "github.com/aws/aws-sdk-go/service/cognitoidentity" "github.com/aws/aws-sdk-go/service/cognitoidentityprovider" + "github.com/aws/aws-sdk-go/service/gamelift" "github.com/aws/aws-sdk-go/service/s3" "github.com/hashicorp/terraform/helper/schema" "github.com/hashicorp/terraform/helper/structure" @@ -892,6 +894,19 @@ func validateAwsEcsPlacementConstraint(constType, constExpr string) error { return nil } +// http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateGlobalTable.html +func validateAwsDynamoDbGlobalTableName(v interface{}, k string) (ws []string, errors []error) { + value := v.(string) + if (len(value) > 255) || (len(value) < 3) { + errors = append(errors, fmt.Errorf("%s length must be between 3 and 255 characters: %q", k, value)) + } + pattern := `^[a-zA-Z0-9_.-]+$` + if !regexp.MustCompile(pattern).MatchString(value) { + errors = append(errors, fmt.Errorf("%s must only include alphanumeric, underscore, period, or hyphen characters: %q", k, value)) + } + return +} + // Validates that an Ecs placement strategy is set correctly // Takes type, and field as strings func validateAwsEcsPlacementStrategy(stratType, stratField string) error { @@ -948,6 +963,20 @@ func validateAwsEmrInstanceGroupRole(v interface{}, k string) (ws []string, erro return } +func validateAwsEmrCustomAmiId(v interface{}, k string) (ws []string, errors []error) { + value := v.(string) + if len(value) > 256 { + errors = append(errors, fmt.Errorf("%q cannot be longer than 256 characters", k)) + } + + if !regexp.MustCompile(`^ami\-[a-z0-9]+$`).MatchString(value) { + errors = append(errors, fmt.Errorf( + "%q must begin with 'ami-' and be comprised of only [a-z0-9]: %v", k, value)) + } + + return +} + func validateSfnActivityName(v interface{}, k string) (ws []string, errors []error) { value := v.(string) if len(value) > 80 { @@ -1125,8 +1154,16 @@ func validateAppautoscalingCustomizedMetricSpecificationStatistic(v interface{}, func validateAppautoscalingPredefinedMetricSpecification(v interface{}, k string) (ws []string, errors []error) { validMetrics := []string{ - "DynamoDBReadCapacityUtilization", - "DynamoDBWriteCapacityUtilization", + applicationautoscaling.MetricTypeAlbrequestCountPerTarget, + applicationautoscaling.MetricTypeDynamoDbreadCapacityUtilization, + applicationautoscaling.MetricTypeDynamoDbwriteCapacityUtilization, + applicationautoscaling.MetricTypeEc2spotFleetRequestAverageCpuutilization, + applicationautoscaling.MetricTypeEc2spotFleetRequestAverageNetworkIn, + applicationautoscaling.MetricTypeEc2spotFleetRequestAverageNetworkOut, + applicationautoscaling.MetricTypeEcsserviceAverageCpuutilization, + applicationautoscaling.MetricTypeEcsserviceAverageMemoryUtilization, + applicationautoscaling.MetricTypeRdsreaderAverageCpuutilization, + applicationautoscaling.MetricTypeRdsreaderAverageDatabaseConnections, } metric := v.(string) for _, o := range validMetrics { @@ -2083,3 +2120,16 @@ func validateServiceDiscoveryServiceHealthCheckConfigType(v interface{}, k strin errors = append(errors, fmt.Errorf("expected %s to be one of %v, got %s", k, validType, value)) return } + +func validateGameliftOperatingSystem(v interface{}, k string) (ws []string, errors []error) { + value := v.(string) + operatingSystems := map[string]bool{ + gamelift.OperatingSystemAmazonLinux: true, + gamelift.OperatingSystemWindows2012: true, + } + + if !operatingSystems[value] { + errors = append(errors, fmt.Errorf("%q must be a valid operating system value: %q", k, value)) + } + return +} diff --git a/vendor/vendor.json b/vendor/vendor.json index a0706f836..9b0aea946 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -261,736 +261,756 @@ "revisionTime": "2016-01-15T23:47:25Z" }, { - "checksumSHA1": "s4OiIOYhXiesEXjwmg1scSc0//o=", + "checksumSHA1": "TkqQVOUcbByOjPqzB+PIF6YIqms=", "path": "github.com/aws/aws-sdk-go/aws", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "DtuTqKH29YnLjrIJkRYX0HQtXY0=", "path": "github.com/aws/aws-sdk-go/aws/arn", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "Y9W+4GimK4Fuxq+vyIskVYFRnX4=", "path": "github.com/aws/aws-sdk-go/aws/awserr", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "yyYr41HZ1Aq0hWc3J5ijXwYEcac=", "path": "github.com/aws/aws-sdk-go/aws/awsutil", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "9nE/FjZ4pYrT883KtV2/aI+Gayo=", "path": "github.com/aws/aws-sdk-go/aws/client", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "ieAJ+Cvp/PKv1LpUEnUXpc3OI6E=", "path": "github.com/aws/aws-sdk-go/aws/client/metadata", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "7/8j/q0TWtOgXyvEcv4B2Dhl00o=", "path": "github.com/aws/aws-sdk-go/aws/corehandlers", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "Y+cPwQL0dZMyqp3wI+KJWmA9KQ8=", "path": "github.com/aws/aws-sdk-go/aws/credentials", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "u3GOAJLmdvbuNUeUEcZSEAOeL/0=", "path": "github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "NUJUTWlc1sV8b7WjfiYc4JZbXl0=", "path": "github.com/aws/aws-sdk-go/aws/credentials/endpointcreds", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "JEYqmF83O5n5bHkupAzA6STm0no=", "path": "github.com/aws/aws-sdk-go/aws/credentials/stscreds", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "OnU/n7R33oYXiB4SAGd5pK7I0Bs=", "path": "github.com/aws/aws-sdk-go/aws/defaults", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "/EXbk/z2TWjWc1Hvb4QYs3Wmhb8=", "path": "github.com/aws/aws-sdk-go/aws/ec2metadata", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { - "checksumSHA1": "BT2+PhuOjbAuMcLpdop0FKQY5EY=", + "checksumSHA1": "Mrcwi2Jpvn055JXS+sk5jfCn3CY=", "path": "github.com/aws/aws-sdk-go/aws/endpoints", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "9GvAyILJ7g+VUg8Ef5DsT5GuYsg=", "path": "github.com/aws/aws-sdk-go/aws/request", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "HcGL4e6Uep4/80eCUI5xkcWjpQ0=", "path": "github.com/aws/aws-sdk-go/aws/session", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "iU00ZjhAml/13g+1YXT21IqoXqg=", "path": "github.com/aws/aws-sdk-go/aws/signer/v4", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "04ypv4x12l4q0TksA1zEVsmgpvw=", "path": "github.com/aws/aws-sdk-go/internal/shareddefaults", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "NStHCXEvYqG72GknZyv1jaKaeH0=", "path": "github.com/aws/aws-sdk-go/private/protocol", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "1QmQ3FqV37w0Zi44qv8pA1GeR0A=", "path": "github.com/aws/aws-sdk-go/private/protocol/ec2query", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "yHfT5DTbeCLs4NE2Rgnqrhe15ls=", "path": "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "R00RL5jJXRYq1iiK1+PGvMfvXyM=", "path": "github.com/aws/aws-sdk-go/private/protocol/jsonrpc", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "ZqY5RWavBLWTo6j9xqdyBEaNFRk=", "path": "github.com/aws/aws-sdk-go/private/protocol/query", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "9V1PvtFQ9MObZTc3sa86WcuOtOU=", "path": "github.com/aws/aws-sdk-go/private/protocol/query/queryutil", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "pkeoOfZpHRvFG/AOZeTf0lwtsFg=", "path": "github.com/aws/aws-sdk-go/private/protocol/rest", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "Rpu8KBtHZgvhkwHxUfaky+qW+G4=", "path": "github.com/aws/aws-sdk-go/private/protocol/restjson", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "ODo+ko8D6unAxZuN1jGzMcN4QCc=", "path": "github.com/aws/aws-sdk-go/private/protocol/restxml", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "0qYPUga28aQVkxZgBR3Z86AbGUQ=", "path": "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "F6mth+G7dXN1GI+nktaGo8Lx8aE=", "path": "github.com/aws/aws-sdk-go/private/signer/v2", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "vnYDXA1NxJ7Hu+DMfXNk1UnmkWg=", "path": "github.com/aws/aws-sdk-go/service/acm", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "DPl/OkvEUjrd+XKqX73l6nUNw3U=", "path": "github.com/aws/aws-sdk-go/service/apigateway", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { - "checksumSHA1": "X8tOI6i+RJwXIgg1qBjDNclyG/0=", + "checksumSHA1": "CW7pEkPsi8CNAAP4OQIblGUHgis=", "path": "github.com/aws/aws-sdk-go/service/applicationautoscaling", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "oBXDw1zQTfxcKsK3ZjtKcS7gBLI=", "path": "github.com/aws/aws-sdk-go/service/athena", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "ITAwWyJp4t9AGfUXm9M3pFWTHVA=", "path": "github.com/aws/aws-sdk-go/service/autoscaling", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "Zz8qI6RloveM1zrXAglLxJZT1ZA=", "path": "github.com/aws/aws-sdk-go/service/batch", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "6gM3CZZgiB0JvS7EK1c31Q8L09U=", "path": "github.com/aws/aws-sdk-go/service/cloudformation", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "T80IDetBz1hqJpq5Wqmx3MwCh8w=", "path": "github.com/aws/aws-sdk-go/service/cloudfront", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "bYrI9mxspB0xDFZEy3OIfWuez5g=", "path": "github.com/aws/aws-sdk-go/service/cloudtrail", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "oB+M+kOmYG28V0PuI75IF6E+/w8=", "path": "github.com/aws/aws-sdk-go/service/cloudwatch", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "Nc3vXlV7s309PprScYpRDPQWeDQ=", "path": "github.com/aws/aws-sdk-go/service/cloudwatchevents", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "bPh7NF3mLpGMV0rIakolMPHqMyw=", "path": "github.com/aws/aws-sdk-go/service/cloudwatchlogs", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "P6qyaFX9X6Nnvm3avLigjmjfYds=", "path": "github.com/aws/aws-sdk-go/service/codebuild", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "7nW1Ho2X3RcUU8FaFBhJIUeuDNw=", "path": "github.com/aws/aws-sdk-go/service/codecommit", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "+petAU2sPfykSoVBAitmGxvGOlw=", "path": "github.com/aws/aws-sdk-go/service/codedeploy", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "LKw7fnNwq17Eqy0clzS/LK89vS4=", "path": "github.com/aws/aws-sdk-go/service/codepipeline", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "aXh1KIbNX+g+tH+lh3pk++9lm3k=", "path": "github.com/aws/aws-sdk-go/service/cognitoidentity", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "IWi9xZz+OncotjM/vJ87Iffg2Qk=", "path": "github.com/aws/aws-sdk-go/service/cognitoidentityprovider", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "56F6Stg8hQ1kxiAEzqB0TDctW9k=", "path": "github.com/aws/aws-sdk-go/service/configservice", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "hYCwLQdIjHj8rMHLGVyUVhecI4s=", "path": "github.com/aws/aws-sdk-go/service/databasemigrationservice", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "26CWoHQP/dyL2VzE5ZNd8zNzhko=", "path": "github.com/aws/aws-sdk-go/service/devicefarm", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "6g94rUHAgjcqMMTtMqKUbLU37wY=", "path": "github.com/aws/aws-sdk-go/service/directconnect", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "edM36y+5lmI7Hne0/38qapLzGO4=", "path": "github.com/aws/aws-sdk-go/service/directoryservice", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "0TXXUPjrbOCHpX555B6suH36Nnk=", "path": "github.com/aws/aws-sdk-go/service/dynamodb", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { - "checksumSHA1": "INaeHZ2L5x6RlrcQBm4q1hFqNRM=", + "checksumSHA1": "4igS6faf4hrhDj6Jj9ErVcN1qKo=", "path": "github.com/aws/aws-sdk-go/service/ec2", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "uEv9kkBsVIjg7K4+Y8TVlU0Cc8o=", "path": "github.com/aws/aws-sdk-go/service/ecr", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "3B3RtWG7IY9qhFhWGEwroeMxnPI=", "path": "github.com/aws/aws-sdk-go/service/ecs", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "eoM9nF5iVMbuGOmkY33d19aHt8Y=", "path": "github.com/aws/aws-sdk-go/service/efs", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "dU5MPXUUOYD/E9sNncpFZ/U86Cw=", "path": "github.com/aws/aws-sdk-go/service/elasticache", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "pj8mBWT3HE0Iid6HSmhw7lmyZDU=", "path": "github.com/aws/aws-sdk-go/service/elasticbeanstalk", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "VYGtTaSiajfKOVTbi9/SNmbiIac=", "path": "github.com/aws/aws-sdk-go/service/elasticsearchservice", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "SZ7yLDZ6RvMhpWe0Goyem64kgyA=", "path": "github.com/aws/aws-sdk-go/service/elastictranscoder", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { - "checksumSHA1": "WYqHhdRNsiGGBLWlBLbOItZf+zA=", + "checksumSHA1": "qq+fTzQmiq0tCYK/90A0s5pVurM=", "path": "github.com/aws/aws-sdk-go/service/elb", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { - "checksumSHA1": "ae7VWg/xuXpnSD6wGumN44qEd+Q=", + "checksumSHA1": "E9GRArYlztF98yBDHBTvdD+NIkc=", "path": "github.com/aws/aws-sdk-go/service/elbv2", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "NbkH6F+792jQ7BW4lGCb+vJVw58=", "path": "github.com/aws/aws-sdk-go/service/emr", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "5btWHj2fZrPc/zfYdJLPaOcivxI=", "path": "github.com/aws/aws-sdk-go/service/firehose", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" + }, + { + "checksumSHA1": "Rodm1XwZ9Ncah1NLHep0behQpXg=", + "path": "github.com/aws/aws-sdk-go/service/gamelift", + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "oDoGvSfmO2Z099ixV2HXn+SDeHE=", "path": "github.com/aws/aws-sdk-go/service/glacier", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { - "checksumSHA1": "HRmbBf3dUEBAfdC2xKaoWAGeM7Y=", + "checksumSHA1": "mJb6yp7wP+gyUQY+CFbbRkWEv1U=", "path": "github.com/aws/aws-sdk-go/service/glue", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "6JlxJoy1JCArNK2qBkaJ5IV6qBc=", "path": "github.com/aws/aws-sdk-go/service/guardduty", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "oZaxMqnwl2rA+V/W0tJ3uownORI=", "path": "github.com/aws/aws-sdk-go/service/iam", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "nMdRXIfhgvEKBHnLX61Ze3EUJWU=", "path": "github.com/aws/aws-sdk-go/service/inspector", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "pZwCI4DpP5hcMa/ItKhiwo/ukd0=", "path": "github.com/aws/aws-sdk-go/service/iot", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "IoSyRZhlL0petrB28nXk5jKM9YA=", "path": "github.com/aws/aws-sdk-go/service/kinesis", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "JOfgA6YehzwZ/4Mgh+3lY/+Gz3E=", "path": "github.com/aws/aws-sdk-go/service/kms", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { - "checksumSHA1": "XDVse9fKF0RkAywzzgsO31AV4oc=", + "checksumSHA1": "Po3j27sses19L37ruAvK1fSYDsc=", "path": "github.com/aws/aws-sdk-go/service/lambda", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "wjs9YBsHx0YQH0zKBA7Ibd1UV5Y=", "path": "github.com/aws/aws-sdk-go/service/lightsail", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "QjiIL8LrlhwrQw8FboF+wMNvUF0=", "path": "github.com/aws/aws-sdk-go/service/mediastore", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "ynB7Flcudp0VOqBVKZJ+23DtLHU=", "path": "github.com/aws/aws-sdk-go/service/mq", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "fpsBu+F79ktlLRwal1GugVMUDo0=", "path": "github.com/aws/aws-sdk-go/service/opsworks", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { - "checksumSHA1": "IddJCt5BrI6zRuUpFJqqnS9qrIM=", + "checksumSHA1": "+crsKabDoPzW0xaccqXP9T5h41s=", "path": "github.com/aws/aws-sdk-go/service/rds", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "vP1FcccUZbuUlin7ME89w1GVJtA=", "path": "github.com/aws/aws-sdk-go/service/redshift", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "fgSXmayOZRgur/41Gp1tFvH0GGg=", "path": "github.com/aws/aws-sdk-go/service/route53", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "sCaHoPWsJXRHFbilUKwN71qFTOI=", "path": "github.com/aws/aws-sdk-go/service/s3", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "QZU8vR9cOIenYiH+Ywl4Gzfnlp0=", "path": "github.com/aws/aws-sdk-go/service/servicecatalog", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "dk6ebvA0EYgdPyc5HPKLBPEtsm4=", "path": "github.com/aws/aws-sdk-go/service/servicediscovery", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "Ex1Ma0SFGpqeNuPbeXZtsliZ3zo=", "path": "github.com/aws/aws-sdk-go/service/ses", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "maVXeR3WDAkONlzf04e4mDgCYxo=", "path": "github.com/aws/aws-sdk-go/service/sfn", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "B3CgAFSREebpsFoFOo4vrQ6u04w=", "path": "github.com/aws/aws-sdk-go/service/simpledb", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "FfY8w4DM8XIULdRnFhd3Um8Mj8c=", "path": "github.com/aws/aws-sdk-go/service/sns", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "Wx189wAbIhWChx4kVbvsyqKMF4U=", "path": "github.com/aws/aws-sdk-go/service/sqs", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { - "checksumSHA1": "Al7CCaQRNd22FwUZXigUEWN820M=", + "checksumSHA1": "Ka9/jYIzdeR4/b8IHXigYe5LvZk=", "path": "github.com/aws/aws-sdk-go/service/ssm", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "W1oFtpaT4TWIIJrAvFcn/XdcT7g=", "path": "github.com/aws/aws-sdk-go/service/sts", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "on6d7Hydx2bM9jkFOf1JZcZZgeY=", "path": "github.com/aws/aws-sdk-go/service/waf", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "rHqjsOndIR82gX5mSKybaRWf3UY=", "path": "github.com/aws/aws-sdk-go/service/wafregional", - "revision": "17f7ac9bc37dfdc9dbe19a7247f194e714426f90", - "revisionTime": "2018-01-09T22:51:22Z", - "version": "=v1.12.27", - "versionExact": "v1.12.27" + "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", + "revisionTime": "2018-01-22T22:30:27Z", + "version": "v1.12.67", + "versionExact": "v1.12.67" }, { "checksumSHA1": "usT4LCSQItkFvFOQT7cBlkCuGaE=", @@ -2140,16 +2160,16 @@ "revisionTime": "2016-09-27T10:08:44Z" }, { - "checksumSHA1": "ajxC5i82d4El7r8PhXLvrm4SvlQ=", + "checksumSHA1": "HDmU5jfsMJvXq9ezjXD28ZWhMc4=", "path": "github.com/terraform-providers/terraform-provider-aws", - "revision": "0d86b0e55c0cfb54f27d7a7607891423476eea09", - "revisionTime": "2018-01-25T09:37:54Z" + "revision": "bf7787d6cf97cf76a262fa31bae521dc45065d2b", + "revisionTime": "2018-01-26T16:36:49Z" }, { - "checksumSHA1": "/MKSP3tusnK43qA/IqCwQE1njYE=", + "checksumSHA1": "JENz2/NBOXKRE54gdQSLRVUXph4=", "path": "github.com/terraform-providers/terraform-provider-aws/aws", - "revision": "0d86b0e55c0cfb54f27d7a7607891423476eea09", - "revisionTime": "2018-01-25T09:37:54Z" + "revision": "bf7787d6cf97cf76a262fa31bae521dc45065d2b", + "revisionTime": "2018-01-26T16:36:49Z" }, { "checksumSHA1": "7WDq0VsOJmABPUCEvfuerEp7mBg=", From 7da1a39480ecf8a8d05a7385e0af896d6fd42d1b Mon Sep 17 00:00:00 2001 From: James Bardin Date: Mon, 29 Jan 2018 16:16:41 -0500 Subject: [PATCH 002/156] always evaluate locals, even during destroy Destroy-time provisioners require us to re-evaluate during destroy. Rather than destroying local values, which doesn't do much since they aren't persisted to state, we always evaluate them regardless of the type of apply. Since the destroy-time local node is no longer a "destroy" operation, the order of evaluation need to be reversed. Take the existing DestroyValueReferenceTransformer and change it to reverse the outgoing edges, rather than in incoming edges. This makes it so that any dependencies of a local or output node are destroyed after evaluation. Having locals evaluated during destroy failed one other test, but that was the odd case where we need `id` to exist as an attribute as well as a field. --- terraform/context_apply_test.go | 56 +++++++++++++++++++ terraform/graph_builder_apply.go | 2 +- terraform/node_local.go | 36 +----------- .../apply-provisioner-destroy-locals/main.tf | 14 +++++ terraform/transform_reference.go | 19 +++---- 5 files changed, 83 insertions(+), 44 deletions(-) create mode 100644 terraform/test-fixtures/apply-provisioner-destroy-locals/main.tf diff --git a/terraform/context_apply_test.go b/terraform/context_apply_test.go index f620a43d7..32338ab92 100644 --- a/terraform/context_apply_test.go +++ b/terraform/context_apply_test.go @@ -7594,6 +7594,58 @@ aws_instance.bar: `) } +func TestContext2Apply_destroyProvisionerWithLocals(t *testing.T) { + m := testModule(t, "apply-provisioner-destroy-locals") + p := testProvider("aws") + p.ApplyFn = testApplyFn + p.DiffFn = testDiffFn + + pr := testProvisioner() + pr.ApplyFn = func(_ *InstanceState, rc *ResourceConfig) error { + cmd, ok := rc.Get("command") + if !ok || cmd != "local" { + fmt.Printf("%#v\n", rc.Config) + return fmt.Errorf("provisioner got %v:%s", ok, cmd) + } + return nil + } + + ctx := testContext2(t, &ContextOpts{ + Module: m, + ProviderResolver: ResourceProviderResolverFixed( + map[string]ResourceProviderFactory{ + "aws": testProviderFuncFixed(p), + }, + ), + Provisioners: map[string]ResourceProvisionerFactory{ + "shell": testProvisionerFuncFixed(pr), + }, + State: &State{ + Modules: []*ModuleState{ + &ModuleState{ + Path: rootModulePath, + Resources: map[string]*ResourceState{ + "aws_instance.foo": resourceState("aws_instance", "1234"), + }, + }, + }, + }, + Destroy: true, + // the test works without targeting, but this also tests that the local + // node isn't inadvertently pruned because of the wrong evaluation + // order. + Targets: []string{"aws_instance.foo"}, + }) + + if _, err := ctx.Plan(); err != nil { + t.Fatal(err) + } + + if _, err := ctx.Apply(); err != nil { + t.Fatal(err) + } +} + func TestContext2Apply_targetedDestroyCountDeps(t *testing.T) { m := testModule(t, "apply-destroy-targeted-count") p := testProvider("aws") @@ -9000,6 +9052,10 @@ func TestContext2Apply_destroyWithLocals(t *testing.T) { Type: "aws_instance", Primary: &InstanceState{ ID: "foo", + // FIXME: id should only exist in one place + Attributes: map[string]string{ + "id": "foo", + }, }, }, }, diff --git a/terraform/graph_builder_apply.go b/terraform/graph_builder_apply.go index 1f826e1d9..53c24dc3d 100644 --- a/terraform/graph_builder_apply.go +++ b/terraform/graph_builder_apply.go @@ -119,7 +119,7 @@ func (b *ApplyGraphBuilder) Steps() []GraphTransformer { // Connect references so ordering is correct &ReferenceTransformer{}, - // Reverse the edges to outputs and locals, so that + // Reverse the edges from outputs and locals, so that // interpolations don't fail during destroy. GraphTransformIf( func() bool { return b.Destroy }, diff --git a/terraform/node_local.go b/terraform/node_local.go index e58f1f987..d38722267 100644 --- a/terraform/node_local.go +++ b/terraform/node_local.go @@ -59,38 +59,8 @@ func (n *NodeLocal) References() []string { // GraphNodeEvalable func (n *NodeLocal) EvalTree() EvalNode { - return &EvalSequence{ - Nodes: []EvalNode{ - &EvalOpFilter{ - Ops: []walkOperation{ - walkInput, - walkValidate, - walkRefresh, - walkPlan, - walkApply, - }, - Node: &EvalSequence{ - Nodes: []EvalNode{ - &EvalLocal{ - Name: n.Config.Name, - Value: n.Config.RawConfig, - }, - }, - }, - }, - &EvalOpFilter{ - Ops: []walkOperation{ - walkPlanDestroy, - walkDestroy, - }, - Node: &EvalSequence{ - Nodes: []EvalNode{ - &EvalDeleteLocal{ - Name: n.Config.Name, - }, - }, - }, - }, - }, + return &EvalLocal{ + Name: n.Config.Name, + Value: n.Config.RawConfig, } } diff --git a/terraform/test-fixtures/apply-provisioner-destroy-locals/main.tf b/terraform/test-fixtures/apply-provisioner-destroy-locals/main.tf new file mode 100644 index 000000000..5818e7c7d --- /dev/null +++ b/terraform/test-fixtures/apply-provisioner-destroy-locals/main.tf @@ -0,0 +1,14 @@ +locals { + value = "local" +} + +resource "aws_instance" "foo" { + provisioner "shell" { + command = "${local.value}" + when = "create" + } + provisioner "shell" { + command = "${local.value}" + when = "destroy" + } +} diff --git a/terraform/transform_reference.go b/terraform/transform_reference.go index 85a82a651..5ee524818 100644 --- a/terraform/transform_reference.go +++ b/terraform/transform_reference.go @@ -77,15 +77,14 @@ func (t *ReferenceTransformer) Transform(g *Graph) error { } // DestroyReferenceTransformer is a GraphTransformer that reverses the edges -// for nodes that depend on an Output or Local value. Output and local nodes are -// removed during destroy, so anything which depends on them must be evaluated -// first. These can't be interpolated during destroy, so the stored value must -// be used anyway hence they don't need to be re-evaluated. +// for locals and outputs that depend on other nodes which will be +// removed during destroy. If a destroy node is evaluated before the local or +// output value, it will be removed from the state, and the later interpolation +// will fail. type DestroyValueReferenceTransformer struct{} func (t *DestroyValueReferenceTransformer) Transform(g *Graph) error { vs := g.Vertices() - for _, v := range vs { switch v.(type) { case *NodeApplyableOutput, *NodeLocal: @@ -94,13 +93,13 @@ func (t *DestroyValueReferenceTransformer) Transform(g *Graph) error { continue } - // reverse any incoming edges so that the value is removed last - for _, e := range g.EdgesTo(v) { - source := e.Source() - log.Printf("[TRACE] output dep: %s", dag.VertexName(source)) + // reverse any outgoing edges so that the value is evaluated first. + for _, e := range g.EdgesFrom(v) { + target := e.Target() + log.Printf("[TRACE] output dep: %s", dag.VertexName(target)) g.RemoveEdge(e) - g.Connect(&DestroyEdge{S: v, T: source}) + g.Connect(&DestroyEdge{S: target, T: v}) } } From 7ac0a46981234a77c4ef95d230dadf234e353459 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Mon, 29 Jan 2018 18:00:18 -0500 Subject: [PATCH 003/156] add destroy provisioner test with locals, outputs Add a complex destroy provisioner testcase using locals, outputs and variables. Add that pesky "id" attribute to the instance states for interpolation. --- terraform/context_apply_test.go | 64 ++++++++++++++++++- terraform/context_test.go | 3 + .../apply-provisioner-destroy-outputs/main.tf | 19 ++++++ .../mod/main.tf | 5 ++ .../mod2/main.tf | 10 +++ 5 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 terraform/test-fixtures/apply-provisioner-destroy-outputs/main.tf create mode 100644 terraform/test-fixtures/apply-provisioner-destroy-outputs/mod/main.tf create mode 100644 terraform/test-fixtures/apply-provisioner-destroy-outputs/mod2/main.tf diff --git a/terraform/context_apply_test.go b/terraform/context_apply_test.go index 32338ab92..ebd9ae4ae 100644 --- a/terraform/context_apply_test.go +++ b/terraform/context_apply_test.go @@ -7623,7 +7623,7 @@ func TestContext2Apply_destroyProvisionerWithLocals(t *testing.T) { State: &State{ Modules: []*ModuleState{ &ModuleState{ - Path: rootModulePath, + Path: []string{"root", "mod"}, Resources: map[string]*ResourceState{ "aws_instance.foo": resourceState("aws_instance", "1234"), }, @@ -7646,6 +7646,68 @@ func TestContext2Apply_destroyProvisionerWithLocals(t *testing.T) { } } +func TestContext2Apply_destroyProvisionerWithOutput(t *testing.T) { + m := testModule(t, "apply-provisioner-destroy-outputs") + p := testProvider("aws") + p.ApplyFn = testApplyFn + p.DiffFn = testDiffFn + + pr := testProvisioner() + pr.ApplyFn = func(is *InstanceState, rc *ResourceConfig) error { + cmd, ok := rc.Get("command") + if !ok || cmd != "3" { + fmt.Printf("%#v\n", rc.Config) + return fmt.Errorf("provisioner for %s got %v:%s", is.ID, ok, cmd) + } + return nil + } + + ctx := testContext2(t, &ContextOpts{ + Module: m, + ProviderResolver: ResourceProviderResolverFixed( + map[string]ResourceProviderFactory{ + "aws": testProviderFuncFixed(p), + }, + ), + Provisioners: map[string]ResourceProvisionerFactory{ + "shell": testProvisionerFuncFixed(pr), + }, + State: &State{ + Modules: []*ModuleState{ + &ModuleState{ + Path: []string{"root"}, + Resources: map[string]*ResourceState{ + "aws_instance.foo": resourceState("aws_instance", "1"), + }, + }, + &ModuleState{ + Path: []string{"root", "mod"}, + Resources: map[string]*ResourceState{ + "aws_instance.baz": resourceState("aws_instance", "3"), + }, + // state needs to be properly initialized + Outputs: map[string]*OutputState{}, + }, + &ModuleState{ + Path: []string{"root", "mod2"}, + Resources: map[string]*ResourceState{ + "aws_instance.bar": resourceState("aws_instance", "2"), + }, + }, + }, + }, + Destroy: true, + }) + + if _, err := ctx.Plan(); err != nil { + t.Fatal(err) + } + + if _, err := ctx.Apply(); err != nil { + t.Fatal(err) + } +} + func TestContext2Apply_targetedDestroyCountDeps(t *testing.T) { m := testModule(t, "apply-destroy-targeted-count") p := testProvider("aws") diff --git a/terraform/context_test.go b/terraform/context_test.go index 7ef9245d7..36ea61e89 100644 --- a/terraform/context_test.go +++ b/terraform/context_test.go @@ -375,6 +375,9 @@ func resourceState(resourceType, resourceID string) *ResourceState { Type: resourceType, Primary: &InstanceState{ ID: resourceID, + Attributes: map[string]string{ + "id": resourceID, + }, }, } } diff --git a/terraform/test-fixtures/apply-provisioner-destroy-outputs/main.tf b/terraform/test-fixtures/apply-provisioner-destroy-outputs/main.tf new file mode 100644 index 000000000..bb4e01db9 --- /dev/null +++ b/terraform/test-fixtures/apply-provisioner-destroy-outputs/main.tf @@ -0,0 +1,19 @@ +module "mod" { + source = "./mod" +} + +locals { + value = "${module.mod.value}" +} + +resource "aws_instance" "foo" { + provisioner "shell" { + command = "${local.value}" + when = "destroy" + } +} + +module "mod2" { + source = "./mod2" + value = "${module.mod.value}" +} diff --git a/terraform/test-fixtures/apply-provisioner-destroy-outputs/mod/main.tf b/terraform/test-fixtures/apply-provisioner-destroy-outputs/mod/main.tf new file mode 100644 index 000000000..1f4ad09c5 --- /dev/null +++ b/terraform/test-fixtures/apply-provisioner-destroy-outputs/mod/main.tf @@ -0,0 +1,5 @@ +output "value" { + value = "${aws_instance.baz.id}" +} + +resource "aws_instance" "baz" {} diff --git a/terraform/test-fixtures/apply-provisioner-destroy-outputs/mod2/main.tf b/terraform/test-fixtures/apply-provisioner-destroy-outputs/mod2/main.tf new file mode 100644 index 000000000..a476bb920 --- /dev/null +++ b/terraform/test-fixtures/apply-provisioner-destroy-outputs/mod2/main.tf @@ -0,0 +1,10 @@ +variable "value" { +} + +resource "aws_instance" "bar" { + provisioner "shell" { + command = "${var.value}" + when = "destroy" + } +} + From 08139557f85cc24fb50849565b0814e4bcb3f6d2 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Mon, 29 Jan 2018 18:02:59 -0500 Subject: [PATCH 004/156] always evaluate outputs too Always evaluate outputs during destroy, just like we did for locals. This breaks existing tests, which we will handle separately. Don't reverse output/local node evaluation order during destroy, as they are both being evaluated. --- terraform/node_output.go | 8 +------- terraform/transform_reference.go | 5 +++++ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/terraform/node_output.go b/terraform/node_output.go index 4fd246a10..191de839c 100644 --- a/terraform/node_output.go +++ b/terraform/node_output.go @@ -83,19 +83,13 @@ func (n *NodeApplyableOutput) EvalTree() EvalNode { }, }, &EvalOpFilter{ - Ops: []walkOperation{walkRefresh, walkPlan, walkApply, walkValidate}, + Ops: []walkOperation{walkRefresh, walkPlan, walkApply, walkValidate, walkDestroy, walkPlanDestroy}, Node: &EvalWriteOutput{ Name: n.Config.Name, Sensitive: n.Config.Sensitive, Value: n.Config.RawConfig, }, }, - &EvalOpFilter{ - Ops: []walkOperation{walkDestroy, walkPlanDestroy}, - Node: &EvalDeleteOutput{ - Name: n.Config.Name, - }, - }, }, } } diff --git a/terraform/transform_reference.go b/terraform/transform_reference.go index 5ee524818..b1c10d00c 100644 --- a/terraform/transform_reference.go +++ b/terraform/transform_reference.go @@ -96,6 +96,11 @@ func (t *DestroyValueReferenceTransformer) Transform(g *Graph) error { // reverse any outgoing edges so that the value is evaluated first. for _, e := range g.EdgesFrom(v) { target := e.Target() + switch target.(type) { + case *NodeApplyableOutput, *NodeLocal: + // don't reverse other values + continue + } log.Printf("[TRACE] output dep: %s", dag.VertexName(target)) g.RemoveEdge(e) From d31fe5ab9dc79d69d1ab41f92f50f73724c7caea Mon Sep 17 00:00:00 2001 From: James Bardin Date: Mon, 29 Jan 2018 19:17:31 -0500 Subject: [PATCH 005/156] delete outputs during destroy Now that outputs are always evaluated, we still need a way to remove them from state when they are destroyed. Previously, outputs were removed during destroy from the same "Applyable" node type that evaluates them. Now that we need to possibly both evaluate and remove output during an apply, we add a new node - NodeDestroyableOutput. This new node is added to the graph by the DestroyOutputTransformer, which make the new destroy node depend on all descendants of the output node. This ensures that the output remains in the state as long as everything which may interpolate the output still exists. --- terraform/context_apply_test.go | 14 ++------- terraform/graph_builder_apply.go | 5 +++ terraform/node_output.go | 52 ++++++++++++++++++++++++++++++++ terraform/transform_output.go | 46 +++++++++++++++++++++++++--- terraform/transform_reference.go | 7 +++-- 5 files changed, 104 insertions(+), 20 deletions(-) diff --git a/terraform/context_apply_test.go b/terraform/context_apply_test.go index ebd9ae4ae..e4d40fb6d 100644 --- a/terraform/context_apply_test.go +++ b/terraform/context_apply_test.go @@ -2590,24 +2590,14 @@ func TestContext2Apply_moduleDestroyOrder(t *testing.T) { &ModuleState{ Path: rootModulePath, Resources: map[string]*ResourceState{ - "aws_instance.b": &ResourceState{ - Type: "aws_instance", - Primary: &InstanceState{ - ID: "b", - }, - }, + "aws_instance.b": resourceState("aws_instance", "b"), }, }, &ModuleState{ Path: []string{"root", "child"}, Resources: map[string]*ResourceState{ - "aws_instance.a": &ResourceState{ - Type: "aws_instance", - Primary: &InstanceState{ - ID: "a", - }, - }, + "aws_instance.a": resourceState("aws_instance", "a"), }, Outputs: map[string]*OutputState{ "a_output": &OutputState{ diff --git a/terraform/graph_builder_apply.go b/terraform/graph_builder_apply.go index 53c24dc3d..62dc2d275 100644 --- a/terraform/graph_builder_apply.go +++ b/terraform/graph_builder_apply.go @@ -126,6 +126,11 @@ func (b *ApplyGraphBuilder) Steps() []GraphTransformer { &DestroyValueReferenceTransformer{}, ), + GraphTransformIf( + func() bool { return b.Destroy }, + &DestroyOutputTransformer{}, + ), + // Add the node to fix the state count boundaries &CountBoundaryTransformer{}, diff --git a/terraform/node_output.go b/terraform/node_output.go index 191de839c..be30911cf 100644 --- a/terraform/node_output.go +++ b/terraform/node_output.go @@ -93,3 +93,55 @@ func (n *NodeApplyableOutput) EvalTree() EvalNode { }, } } + +// NodeDestroyableOutput represents an output that is "destroybale": +// its application will remove the output from the state. +type NodeDestroyableOutput struct { + PathValue []string + Config *config.Output // Config is the output in the config +} + +func (n *NodeDestroyableOutput) Name() string { + result := fmt.Sprintf("output.%s (destroy)", n.Config.Name) + if len(n.PathValue) > 1 { + result = fmt.Sprintf("%s.%s", modulePrefixStr(n.PathValue), result) + } + + return result +} + +// GraphNodeSubPath +func (n *NodeDestroyableOutput) Path() []string { + return n.PathValue +} + +// RemovableIfNotTargeted +func (n *NodeDestroyableOutput) RemoveIfNotTargeted() bool { + // We need to add this so that this node will be removed if + // it isn't targeted or a dependency of a target. + return true +} + +// GraphNodeReferencer +func (n *NodeDestroyableOutput) References() []string { + var result []string + result = append(result, n.Config.DependsOn...) + result = append(result, ReferencesFromConfig(n.Config.RawConfig)...) + for _, v := range result { + split := strings.Split(v, "/") + for i, s := range split { + split[i] = s + ".destroy" + } + + result = append(result, strings.Join(split, "/")) + } + + return result +} + +// GraphNodeEvalable +func (n *NodeDestroyableOutput) EvalTree() EvalNode { + return &EvalDeleteOutput{ + Name: n.Config.Name, + } +} diff --git a/terraform/transform_output.go b/terraform/transform_output.go index b260f4caa..faa25e412 100644 --- a/terraform/transform_output.go +++ b/terraform/transform_output.go @@ -1,7 +1,10 @@ package terraform import ( + "log" + "github.com/hashicorp/terraform/config/module" + "github.com/hashicorp/terraform/dag" ) // OutputTransformer is a GraphTransformer that adds all the outputs @@ -41,11 +44,6 @@ func (t *OutputTransformer) transform(g *Graph, m *module.Tree) error { // Add all outputs here for _, o := range os { - // Build the node. - // - // NOTE: For now this is just an "applyable" output. As we build - // new graph builders for the other operations I suspect we'll - // find a way to parameterize this, require new transforms, etc. node := &NodeApplyableOutput{ PathValue: normalizeModulePath(m.Path()), Config: o, @@ -57,3 +55,41 @@ func (t *OutputTransformer) transform(g *Graph, m *module.Tree) error { return nil } + +// DestroyOutputTransformer is a GraphTransformer that adds nodes to delete +// outputs during destroy. We need to do this to ensure that no stale outputs +// are ever left in the state. +type DestroyOutputTransformer struct { +} + +func (t *DestroyOutputTransformer) Transform(g *Graph) error { + for _, v := range g.Vertices() { + output, ok := v.(*NodeApplyableOutput) + if !ok { + continue + } + + // create the destroy node for this output + node := &NodeDestroyableOutput{ + PathValue: output.PathValue, + Config: output.Config, + } + + log.Printf("[TRACE] creating %s", node.Name()) + g.Add(node) + + deps, err := g.Descendents(v) + if err != nil { + return err + } + + // the destroy node must depend on the eval node + deps.Add(v) + + for _, d := range deps.List() { + log.Printf("[TRACE] %s depends on %s", node.Name(), dag.VertexName(d)) + g.Connect(dag.BasicEdge(node, d)) + } + } + return nil +} diff --git a/terraform/transform_reference.go b/terraform/transform_reference.go index b1c10d00c..fa4f99989 100644 --- a/terraform/transform_reference.go +++ b/terraform/transform_reference.go @@ -96,11 +96,12 @@ func (t *DestroyValueReferenceTransformer) Transform(g *Graph) error { // reverse any outgoing edges so that the value is evaluated first. for _, e := range g.EdgesFrom(v) { target := e.Target() - switch target.(type) { - case *NodeApplyableOutput, *NodeLocal: - // don't reverse other values + + // only destroy nodes will be evaluated in reverse + if _, ok := target.(GraphNodeDestroyer); !ok { continue } + log.Printf("[TRACE] output dep: %s", dag.VertexName(target)) g.RemoveEdge(e) From 2d138d99179967fce2b2393134c94a7084578dab Mon Sep 17 00:00:00 2001 From: James Bardin Date: Tue, 30 Jan 2018 10:05:41 -0500 Subject: [PATCH 006/156] add a more complex locals test Using destroy provisioners again for edge cases during destroy. --- terraform/context_apply_test.go | 75 ++++++++++++++++++- .../main.tf | 24 ++++++ 2 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 terraform/test-fixtures/apply-provisioner-destroy-multiple-locals/main.tf diff --git a/terraform/context_apply_test.go b/terraform/context_apply_test.go index e4d40fb6d..61a9ea81a 100644 --- a/terraform/context_apply_test.go +++ b/terraform/context_apply_test.go @@ -2,6 +2,7 @@ package terraform import ( "bytes" + "errors" "fmt" "reflect" "runtime" @@ -7613,7 +7614,7 @@ func TestContext2Apply_destroyProvisionerWithLocals(t *testing.T) { State: &State{ Modules: []*ModuleState{ &ModuleState{ - Path: []string{"root", "mod"}, + Path: []string{"root"}, Resources: map[string]*ResourceState{ "aws_instance.foo": resourceState("aws_instance", "1234"), }, @@ -7634,6 +7635,75 @@ func TestContext2Apply_destroyProvisionerWithLocals(t *testing.T) { if _, err := ctx.Apply(); err != nil { t.Fatal(err) } + + if !pr.ApplyCalled { + t.Fatal("provisioner not called") + } +} + +func TestContext2Apply_destroyProvisionerWithMultipleLocals(t *testing.T) { + m := testModule(t, "apply-provisioner-destroy-multiple-locals") + p := testProvider("aws") + p.ApplyFn = testApplyFn + p.DiffFn = testDiffFn + + pr := testProvisioner() + pr.ApplyFn = func(is *InstanceState, rc *ResourceConfig) error { + cmd, ok := rc.Get("command") + if !ok { + return errors.New("no command in provisioner") + } + + switch is.ID { + case "1234": + if cmd != "local" { + return fmt.Errorf("provisioner %q got:%q", is.ID, cmd) + } + case "3456": + if cmd != "1234" { + return fmt.Errorf("provisioner %q got:%q", is.ID, cmd) + } + default: + t.Fatal("unknown instance") + } + return nil + } + + ctx := testContext2(t, &ContextOpts{ + Module: m, + ProviderResolver: ResourceProviderResolverFixed( + map[string]ResourceProviderFactory{ + "aws": testProviderFuncFixed(p), + }, + ), + Provisioners: map[string]ResourceProvisionerFactory{ + "shell": testProvisionerFuncFixed(pr), + }, + State: &State{ + Modules: []*ModuleState{ + &ModuleState{ + Path: []string{"root"}, + Resources: map[string]*ResourceState{ + "aws_instance.foo": resourceState("aws_instance", "1234"), + "aws_instance.bar": resourceState("aws_instance", "3456"), + }, + }, + }, + }, + Destroy: true, + }) + + if _, err := ctx.Plan(); err != nil { + t.Fatal(err) + } + + if _, err := ctx.Apply(); err != nil { + t.Fatal(err) + } + + if !pr.ApplyCalled { + t.Fatal("provisioner not called") + } } func TestContext2Apply_destroyProvisionerWithOutput(t *testing.T) { @@ -7696,6 +7766,9 @@ func TestContext2Apply_destroyProvisionerWithOutput(t *testing.T) { if _, err := ctx.Apply(); err != nil { t.Fatal(err) } + if !pr.ApplyCalled { + t.Fatal("provisioner not called") + } } func TestContext2Apply_targetedDestroyCountDeps(t *testing.T) { diff --git a/terraform/test-fixtures/apply-provisioner-destroy-multiple-locals/main.tf b/terraform/test-fixtures/apply-provisioner-destroy-multiple-locals/main.tf new file mode 100644 index 000000000..437a6e727 --- /dev/null +++ b/terraform/test-fixtures/apply-provisioner-destroy-multiple-locals/main.tf @@ -0,0 +1,24 @@ +locals { + value = "local" + foo_id = "${aws_instance.foo.id}" + + // baz is not in the state during destroy, but this is a valid config that + // should not fail. + baz_id = "${aws_instance.baz.id}" +} + +resource "aws_instance" "baz" {} + +resource "aws_instance" "foo" { + provisioner "shell" { + command = "${local.value}" + when = "destroy" + } +} + +resource "aws_instance" "bar" { + provisioner "shell" { + command = "${local.foo_id}" + when = "destroy" + } +} From 99867f0082f30fa19c5c5aefcbbfad66b9e38123 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Tue, 30 Jan 2018 10:24:15 -0500 Subject: [PATCH 007/156] add PruneUnusedValuesTransformer Since outputs and local nodes are always evaluated, if the reference a resource form the configuration that isn't in the state, the interpolation could fail. Prune any local or output values that have no references in the graph. --- terraform/context_apply_test.go | 2 ++ terraform/graph_builder_apply.go | 15 +++++++++------ terraform/transform_reference.go | 24 ++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 6 deletions(-) diff --git a/terraform/context_apply_test.go b/terraform/context_apply_test.go index 61a9ea81a..95ac647b2 100644 --- a/terraform/context_apply_test.go +++ b/terraform/context_apply_test.go @@ -7641,6 +7641,8 @@ func TestContext2Apply_destroyProvisionerWithLocals(t *testing.T) { } } +// this also tests a local value in the config referencing a resource that +// wasn't in the state during destroy. func TestContext2Apply_destroyProvisionerWithMultipleLocals(t *testing.T) { m := testModule(t, "apply-provisioner-destroy-multiple-locals") p := testProvider("aws") diff --git a/terraform/graph_builder_apply.go b/terraform/graph_builder_apply.go index 62dc2d275..0c2b2332f 100644 --- a/terraform/graph_builder_apply.go +++ b/terraform/graph_builder_apply.go @@ -119,16 +119,19 @@ func (b *ApplyGraphBuilder) Steps() []GraphTransformer { // Connect references so ordering is correct &ReferenceTransformer{}, + // Handle destroy time transformations for output and local values. // Reverse the edges from outputs and locals, so that // interpolations don't fail during destroy. + // Create a destroy node for outputs to remove them from the state. + // Prune unreferenced values, which may have interpolations that can't + // be resolved. GraphTransformIf( func() bool { return b.Destroy }, - &DestroyValueReferenceTransformer{}, - ), - - GraphTransformIf( - func() bool { return b.Destroy }, - &DestroyOutputTransformer{}, + GraphTransformMulti( + &DestroyValueReferenceTransformer{}, + &DestroyOutputTransformer{}, + &PruneUnusedValuesTransformer{}, + ), ), // Add the node to fix the state count boundaries diff --git a/terraform/transform_reference.go b/terraform/transform_reference.go index fa4f99989..403b7e424 100644 --- a/terraform/transform_reference.go +++ b/terraform/transform_reference.go @@ -112,6 +112,30 @@ func (t *DestroyValueReferenceTransformer) Transform(g *Graph) error { return nil } +// PruneUnusedValuesTransformer is s GraphTransformer that removes local and +// output values which are not referenced in the graph. Since outputs and +// locals always need to be evaluated, if they reference a resource that is not +// available in the state the interpolation could fail. +type PruneUnusedValuesTransformer struct{} + +func (t *PruneUnusedValuesTransformer) Transform(g *Graph) error { + vs := g.Vertices() + for _, v := range vs { + switch v.(type) { + case *NodeApplyableOutput, *NodeLocal: + // OK + default: + continue + } + + if len(g.EdgesTo(v)) == 0 { + g.Remove(v) + } + } + + return nil +} + // ReferenceMap is a structure that can be used to efficiently check // for references on a graph. type ReferenceMap struct { From a2f8482333ea99df923dd4795c4a95bd68f5baaa Mon Sep 17 00:00:00 2001 From: James Bardin Date: Tue, 30 Jan 2018 10:42:49 -0500 Subject: [PATCH 008/156] catch missing id attribute during interpolation The id attribute can be missing during the destroy operation. While the new destroy-time ordering of outputs and locals should prevent resources from having their id attributes set to an empty string, there's no reason to error out if we have the canonical ID field available. This still interrogates the attributes map first to retain any previous behavior, but in the future we should settle on a single ID location. --- terraform/interpolate.go | 15 ++++++++++++++ terraform/interpolate_test.go | 38 +++++++++++++++++++++++++++++++++-- 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/terraform/interpolate.go b/terraform/interpolate.go index 456e7e3a2..1509a65fe 100644 --- a/terraform/interpolate.go +++ b/terraform/interpolate.go @@ -518,6 +518,16 @@ func (i *Interpolater) computeResourceVariable( return &v, err } + // special case for the "id" field which is usually also an attribute + if v.Field == "id" && r.Primary.ID != "" { + // This is usually pulled from the attributes, but is sometimes missing + // during destroy. We can return the ID field in this case. + // FIXME: there should only be one ID to rule them all. + log.Printf("[WARN] resource %s missing 'id' attribute", v.ResourceId()) + v, err := hil.InterfaceToVariable(r.Primary.ID) + return &v, err + } + // computed list or map attribute _, isList = r.Primary.Attributes[v.Field+".#"] _, isMap = r.Primary.Attributes[v.Field+".%"] @@ -655,6 +665,11 @@ func (i *Interpolater) computeResourceMultiVariable( continue } + if v.Field == "id" && r.Primary.ID != "" { + log.Printf("[WARN] resource %s missing 'id' attribute", v.ResourceId()) + values = append(values, r.Primary.ID) + } + // computed list or map attribute _, isList := r.Primary.Attributes[v.Field+".#"] _, isMap := r.Primary.Attributes[v.Field+".%"] diff --git a/terraform/interpolate_test.go b/terraform/interpolate_test.go index c497b43b8..10f23a278 100644 --- a/terraform/interpolate_test.go +++ b/terraform/interpolate_test.go @@ -129,6 +129,40 @@ func TestInterpolater_localVal(t *testing.T) { }) } +func TestInterpolater_missingID(t *testing.T) { + lock := new(sync.RWMutex) + state := &State{ + Modules: []*ModuleState{ + &ModuleState{ + Path: rootModulePath, + Resources: map[string]*ResourceState{ + "aws_instance.web": &ResourceState{ + Type: "aws_instance", + Primary: &InstanceState{ + ID: "bar", + }, + }, + }, + }, + }, + } + + i := &Interpolater{ + Module: testModule(t, "interpolate-resource-variable"), + State: state, + StateLock: lock, + } + + scope := &InterpolationScope{ + Path: rootModulePath, + } + + testInterpolate(t, i, scope, "aws_instance.web.id", ast.Variable{ + Value: "bar", + Type: ast.TypeString, + }) +} + func TestInterpolater_pathCwd(t *testing.T) { i := &Interpolater{} scope := &InterpolationScope{} @@ -314,8 +348,8 @@ func TestInterpolater_resourceVariableMissingDuringInput(t *testing.T) { &ModuleState{ Path: rootModulePath, Resources: map[string]*ResourceState{ - // No resources at all yet, because we're still dealing - // with input and so the resources haven't been created. + // No resources at all yet, because we're still dealing + // with input and so the resources haven't been created. }, }, }, From ca4178b9ec9a0405385d2c2ab6f829539b5d7434 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Tue, 30 Jan 2018 11:16:42 -0500 Subject: [PATCH 009/156] gofmt bug will be fixed in 1.10 --- terraform/interpolate_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/terraform/interpolate_test.go b/terraform/interpolate_test.go index 10f23a278..00aec367d 100644 --- a/terraform/interpolate_test.go +++ b/terraform/interpolate_test.go @@ -348,8 +348,8 @@ func TestInterpolater_resourceVariableMissingDuringInput(t *testing.T) { &ModuleState{ Path: rootModulePath, Resources: map[string]*ResourceState{ - // No resources at all yet, because we're still dealing - // with input and so the resources haven't been created. + // No resources at all yet, because we're still dealing + // with input and so the resources haven't been created. }, }, }, From 7fbc35a36c6da6e5b981c361f153fe2be17bb274 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 31 Jan 2018 13:51:40 -0500 Subject: [PATCH 010/156] Make sure outputs are removed when targeting Similar to NodeApplyableOuptut, NodeDestroyableOutputs also need to stay in the graph if any ancestor nodes Use the same GraphNodeTargetDownstream method to keep them from being pruned, since they are dependent on the output node and all its descendants. --- terraform/context_apply_test.go | 20 ++++++++++++++++++- terraform/node_output.go | 6 ++++++ .../apply-provisioner-destroy-outputs/main.tf | 4 ++++ 3 files changed, 29 insertions(+), 1 deletion(-) diff --git a/terraform/context_apply_test.go b/terraform/context_apply_test.go index 95ac647b2..28e42b02e 100644 --- a/terraform/context_apply_test.go +++ b/terraform/context_apply_test.go @@ -7741,6 +7741,12 @@ func TestContext2Apply_destroyProvisionerWithOutput(t *testing.T) { Resources: map[string]*ResourceState{ "aws_instance.foo": resourceState("aws_instance", "1"), }, + Outputs: map[string]*OutputState{ + "value": { + Type: "string", + Value: "3", + }, + }, }, &ModuleState{ Path: []string{"root", "mod"}, @@ -7759,18 +7765,30 @@ func TestContext2Apply_destroyProvisionerWithOutput(t *testing.T) { }, }, Destroy: true, + + // targeting the source of the value used by all resources shoudl still + // destroy them all. + Targets: []string{"module.mod.aws_instance.baz"}, }) if _, err := ctx.Plan(); err != nil { t.Fatal(err) } - if _, err := ctx.Apply(); err != nil { + state, err := ctx.Apply() + if err != nil { t.Fatal(err) } if !pr.ApplyCalled { t.Fatal("provisioner not called") } + + // confirm all outputs were removed too + for _, mod := range state.Modules { + if len(mod.Outputs) > 0 { + t.Fatalf("output left in module state: %#v\n", mod) + } + } } func TestContext2Apply_targetedDestroyCountDeps(t *testing.T) { diff --git a/terraform/node_output.go b/terraform/node_output.go index be30911cf..83e9925a1 100644 --- a/terraform/node_output.go +++ b/terraform/node_output.go @@ -122,6 +122,12 @@ func (n *NodeDestroyableOutput) RemoveIfNotTargeted() bool { return true } +// This will keep the destroy node in the graph if its corresponding output +// node is also in the destroy graph. +func (n *NodeDestroyableOutput) TargetDownstream(targetedDeps, untargetedDeps *dag.Set) bool { + return true +} + // GraphNodeReferencer func (n *NodeDestroyableOutput) References() []string { var result []string diff --git a/terraform/test-fixtures/apply-provisioner-destroy-outputs/main.tf b/terraform/test-fixtures/apply-provisioner-destroy-outputs/main.tf index bb4e01db9..9a5843aa3 100644 --- a/terraform/test-fixtures/apply-provisioner-destroy-outputs/main.tf +++ b/terraform/test-fixtures/apply-provisioner-destroy-outputs/main.tf @@ -17,3 +17,7 @@ module "mod2" { source = "./mod2" value = "${module.mod.value}" } + +output "value" { + value = "${local.value}" +} From 7217aba5f0868a558def688d43a24c870a34b223 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 31 Jan 2018 21:00:32 +0000 Subject: [PATCH 011/156] release: clean up after v0.11.3 --- CHANGELOG.md | 3 +++ version/version.go | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 52e8e13e1..55b1f8042 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +## 0.11.4 (Unreleased) + + ## 0.11.3 (January 31, 2018) IMPROVEMENTS: diff --git a/version/version.go b/version/version.go index 8cfa82d69..59ae5a9cb 100644 --- a/version/version.go +++ b/version/version.go @@ -11,12 +11,12 @@ import ( ) // The main version number that is being run at the moment. -const Version = "0.11.3" +const Version = "0.11.4" // A pre-release marker for the version. If this is "" (empty string) // then it means that it is a final release. Otherwise, this is a pre-release // such as "dev" (in development), "beta", "rc1", etc. -var Prerelease = "" +var Prerelease = "dev" // SemVer is an instance of version.Version. This has the secondary // benefit of verifying during tests and init time that our version is a From 6f41a80b3a99b081102dd823c94a7a2bffaec97b Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 31 Jan 2018 15:24:07 -0500 Subject: [PATCH 012/156] slow down the plan shutdown tests for slow hosts The plan shutdown test often fail on slow CI hosts, becase the plan completes befor the main thread can cancel it. Since attempting to make the MockProvider concurrent proved too invasive for now, just slow the test down a bit to help ensure Stop gets called. --- command/plan_test.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/command/plan_test.go b/command/plan_test.go index 3e97fdd47..e9cfd6dbb 100644 --- a/command/plan_test.go +++ b/command/plan_test.go @@ -863,6 +863,14 @@ func TestPlan_shutdown(t *testing.T) { shutdownCh <- struct{}{} }) + // Because of the internal lock in the MockProvider, we can't + // coordiante directly with the calling of Stop, and making the + // MockProvider concurrent is disruptive to a lot of existing tests. + // Wait here a moment to help make sure the main goroutine gets to the + // Stop call before we exit, or the plan may finish before it can be + // canceled. + time.Sleep(200 * time.Millisecond) + return &terraform.InstanceDiff{ Attributes: map[string]*terraform.ResourceAttrDiff{ "ami": &terraform.ResourceAttrDiff{ @@ -878,7 +886,7 @@ func TestPlan_shutdown(t *testing.T) { select { case <-cancelled: - case <-time.After(5 * time.Second): + default: t.Fatal("command not cancelled") } } From 6e1e614a56d6ea18e99484638de9f21d1fd49ba7 Mon Sep 17 00:00:00 2001 From: Laura Martin Date: Thu, 1 Feb 2018 00:14:42 +0000 Subject: [PATCH 013/156] Change -force to -auto-approve when destroying Since an early version of Terraform, the `destroy` command has always had the `-force` flag to allow an auto approval of the interactive prompt. 0.11 introduced `-auto-approve` as default to `false` when using the `apply` command. The `-auto-approve` flag was introduced to reduce ambiguity of it's function, but the `-force` flag was never updated for a destroy. People often use wrappers when automating commands in Terraform, and the inconsistency between `apply` and `destroy` means that additional logic must be added to the wrappers to do similar functions. Both commands are more or less able to run with similar syntax, and also heavily share their code. This commit updates the command in `destroy` to use the `-auto-approve` flag making working with the Terraform CLI a more consistent experience. We leave in `-force` in `destroy` for the time-being and flag it as deprecated to ensure a safe switchover period. --- backend/local/backend_apply.go | 2 +- command/apply.go | 12 +++++------- command/apply_destroy_test.go | 6 +++--- command/e2etest/primary_test.go | 2 +- website/docs/commands/destroy.html.markdown | 2 +- 5 files changed, 11 insertions(+), 13 deletions(-) diff --git a/backend/local/backend_apply.go b/backend/local/backend_apply.go index 9789e0b7c..49d102dea 100644 --- a/backend/local/backend_apply.go +++ b/backend/local/backend_apply.go @@ -99,7 +99,7 @@ func (b *Local) opApply( dispPlan := format.NewPlan(plan) trivialPlan := dispPlan.Empty() hasUI := op.UIOut != nil && op.UIIn != nil - mustConfirm := hasUI && ((op.Destroy && !op.DestroyForce) || (!op.Destroy && !op.AutoApprove && !trivialPlan)) + mustConfirm := hasUI && ((op.Destroy && (!op.DestroyForce && !op.AutoApprove)) || (!op.Destroy && !op.AutoApprove && !trivialPlan)) if mustConfirm { var desc, query string if op.Destroy { diff --git a/command/apply.go b/command/apply.go index c65b2df51..d4253aed1 100644 --- a/command/apply.go +++ b/command/apply.go @@ -40,13 +40,11 @@ func (c *ApplyCommand) Run(args []string) int { } cmdFlags := c.Meta.flagSet(cmdName) + cmdFlags.BoolVar(&autoApprove, "auto-approve", false, "skip interactive approval of plan before applying") if c.Destroy { - cmdFlags.BoolVar(&destroyForce, "force", false, "force") + cmdFlags.BoolVar(&destroyForce, "force", false, "deprecated: same as auto-approve") } cmdFlags.BoolVar(&refresh, "refresh", true, "refresh") - if !c.Destroy { - cmdFlags.BoolVar(&autoApprove, "auto-approve", false, "skip interactive approval of plan before applying") - } cmdFlags.IntVar( &c.Meta.parallelism, "parallelism", DefaultParallelism, "parallelism") cmdFlags.StringVar(&c.Meta.statePath, "state", "", "path") @@ -250,8 +248,6 @@ Options: -lock-timeout=0s Duration to retry a state lock. - -auto-approve Skip interactive approval of plan before applying. - -input=true Ask for input for variables if not directly set. -no-color If specified, output won't contain any color. @@ -297,7 +293,9 @@ Options: modifying. Defaults to the "-state-out" path with ".backup" extension. Set to "-" to disable backup. - -force Don't ask for input for destroy confirmation. + -auto-approve Skip interactive approval before destroying. + + -force Deprecated: same as auto-approve. -lock=true Lock the state file when locking is supported. diff --git a/command/apply_destroy_test.go b/command/apply_destroy_test.go index c2d399e72..e9779190b 100644 --- a/command/apply_destroy_test.go +++ b/command/apply_destroy_test.go @@ -40,7 +40,7 @@ func TestApply_destroy(t *testing.T) { // Run the apply command pointing to our existing state args := []string{ - "-force", + "-auto-approve", "-state", statePath, testFixturePath("apply"), } @@ -130,7 +130,7 @@ func TestApply_destroyLockedState(t *testing.T) { // Run the apply command pointing to our existing state args := []string{ - "-force", + "-auto-approve", "-state", statePath, testFixturePath("apply"), } @@ -206,7 +206,7 @@ func TestApply_destroyTargeted(t *testing.T) { // Run the apply command pointing to our existing state args := []string{ - "-force", + "-auto-approve", "-target", "test_instance.foo", "-state", statePath, testFixturePath("apply-destroy-targeted"), diff --git a/command/e2etest/primary_test.go b/command/e2etest/primary_test.go index 385801e7d..fb825e477 100644 --- a/command/e2etest/primary_test.go +++ b/command/e2etest/primary_test.go @@ -111,7 +111,7 @@ func TestPrimarySeparatePlan(t *testing.T) { } //// DESTROY - stdout, stderr, err = tf.Run("destroy", "-force") + stdout, stderr, err = tf.Run("destroy", "-auto-approve") if err != nil { t.Fatalf("unexpected destroy error: %s\nstderr:\n%s", err, stderr) } diff --git a/website/docs/commands/destroy.html.markdown b/website/docs/commands/destroy.html.markdown index 98f1b79e6..d317dd3e0 100644 --- a/website/docs/commands/destroy.html.markdown +++ b/website/docs/commands/destroy.html.markdown @@ -22,7 +22,7 @@ This command accepts all the arguments and flags that the [apply command](/docs/commands/apply.html) accepts, with the exception of a plan file argument. -If `-force` is set, then the destroy confirmation will not be shown. +If `-auto-approve` is set, then the destroy confirmation will not be shown. The `-target` flag, instead of affecting "dependencies" will instead also destroy any resources that _depend on_ the target(s) specified. From 7af1c2b3a4681d4b84894f1cd07baa7044e00ff2 Mon Sep 17 00:00:00 2001 From: Radek Simko Date: Thu, 1 Feb 2018 12:05:22 +0000 Subject: [PATCH 014/156] helper/schema: Prevent crash on removal of computed field in CustomizeDiff --- helper/schema/schema.go | 14 +++++------ helper/schema/schema_test.go | 47 ++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 7 deletions(-) diff --git a/helper/schema/schema.go b/helper/schema/schema.go index 6773fe584..4c9ecd61a 100644 --- a/helper/schema/schema.go +++ b/helper/schema/schema.go @@ -427,6 +427,13 @@ func (m schemaMap) Diff( } } + // Remove any nil diffs just to keep things clean + for k, v := range result.Attributes { + if v == nil { + delete(result.Attributes, k) + } + } + // If this is a non-destroy diff, call any custom diff logic that has been // defined. if !result.DestroyTainted && customizeDiff != nil { @@ -521,13 +528,6 @@ func (m schemaMap) Diff( result = result2 } - // Remove any nil diffs just to keep things clean - for k, v := range result.Attributes { - if v == nil { - delete(result.Attributes, k) - } - } - // Go through and detect all of the ComputedWhens now that we've // finished the diff. // TODO diff --git a/helper/schema/schema_test.go b/helper/schema/schema_test.go index bda54ccee..7c4d20f0a 100644 --- a/helper/schema/schema_test.go +++ b/helper/schema/schema_test.go @@ -3142,6 +3142,53 @@ func TestSchemaMap_Diff(t *testing.T) { "var.foo": interfaceToVariableSwallowError(""), }, }, + + { + Name: "optional, computed, empty string should not crash in CustomizeDiff", + Schema: map[string]*Schema{ + "unrelated_set": { + Type: TypeSet, + Optional: true, + Elem: &Schema{Type: TypeString}, + }, + "stream_enabled": { + Type: TypeBool, + Optional: true, + }, + "stream_view_type": { + Type: TypeString, + Optional: true, + Computed: true, + }, + }, + + State: &terraform.InstanceState{ + Attributes: map[string]string{ + "unrelated_set.#": "0", + "stream_enabled": "true", + "stream_view_type": "KEYS_ONLY", + }, + }, + Config: map[string]interface{}{ + "stream_enabled": false, + "stream_view_type": "", + }, + CustomizeDiff: func(diff *ResourceDiff, v interface{}) error { + v, ok := diff.GetOk("unrelated_set") + if ok { + return fmt.Errorf("Didn't expect unrelated_set: %#v", v) + } + return nil + }, + Diff: &terraform.InstanceDiff{ + Attributes: map[string]*terraform.ResourceAttrDiff{ + "stream_enabled": { + Old: "true", + New: "false", + }, + }, + }, + }, } for i, tc := range cases { From bb844504bd3a52ac990b5ff817f8ca18d6876714 Mon Sep 17 00:00:00 2001 From: Radek Simko Date: Thu, 1 Feb 2018 13:34:08 +0000 Subject: [PATCH 015/156] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 55b1f8042..f298aa09a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ ## 0.11.4 (Unreleased) +BUG FIXES: + +* helper/schema: Prevent crash on removal of computed field in CustomizeDiff [GH-17261] ## 0.11.3 (January 31, 2018) From 4f38f4f9eb7e892aecb546e52851a85cfad5af6c Mon Sep 17 00:00:00 2001 From: Chris Griggs Date: Fri, 2 Feb 2018 10:17:30 -0800 Subject: [PATCH 016/156] Website Update provider name (#17270) * edit prvoider name --- website/docs/providers/index.html.markdown | 2 +- website/docs/providers/type/network-index.html.markdown | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/website/docs/providers/index.html.markdown b/website/docs/providers/index.html.markdown index 2652e6a66..6cd5cfb4c 100644 --- a/website/docs/providers/index.html.markdown +++ b/website/docs/providers/index.html.markdown @@ -104,7 +104,7 @@ down to see all providers. Packet PagerDuty - PANOS + Palo Alto Networks PostgreSQL diff --git a/website/docs/providers/type/network-index.html.markdown b/website/docs/providers/type/network-index.html.markdown index 40b2d818a..fd9e4537f 100644 --- a/website/docs/providers/type/network-index.html.markdown +++ b/website/docs/providers/type/network-index.html.markdown @@ -29,7 +29,7 @@ in close collaboration with HashiCorp, and are tested by HashiCorp. [NS1](/docs/providers/ns1/index.html) -[PANOS](/docs/providers/panos/index.html) +[Palo Alto Networks](/docs/providers/panos/index.html) [PowerDNS](/docs/providers/powerdns/index.html) From b924e8cba5d3014ac459138bcfa782f86093b193 Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Mon, 5 Feb 2018 20:06:50 -0500 Subject: [PATCH 017/156] deps: Bump terraform-provider-aws@v1.8.0 and aws-sdk-go@v1.12.70 --- .../aws/aws-sdk-go/aws/endpoints/decode.go | 24 + .../aws/aws-sdk-go/aws/endpoints/defaults.go | 29 +- .../aws/request/request_pagination.go | 25 +- .../github.com/aws/aws-sdk-go/aws/version.go | 2 +- .../aws/aws-sdk-go/service/codebuild/api.go | 63 +- .../aws/aws-sdk-go/service/devicefarm/api.go | 213 +++- .../aws/aws-sdk-go/service/guardduty/api.go | 63 + .../aws/aws-sdk-go/service/lambda/api.go | 137 +- .../aws/aws-sdk-go/service/lambda/errors.go | 8 + .../terraform-provider-aws/CHANGELOG.md | 47 +- .../aws/data_source_aws_dynamodb_table.go | 42 +- .../aws/resource_aws_dynamodb_table.go | 1135 +++++------------ ...ource_aws_elastic_beanstalk_application.go | 8 +- .../terraform-provider-aws/aws/structure.go | 309 +++++ .../terraform-provider-aws/aws/tags.go | 74 +- vendor/vendor.json | 782 ++++++------ 16 files changed, 1667 insertions(+), 1294 deletions(-) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go index 74f72de07..6dc035a53 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/decode.go @@ -4,6 +4,7 @@ import ( "encoding/json" "fmt" "io" + "os" "github.com/aws/aws-sdk-go/aws/awserr" ) @@ -84,11 +85,34 @@ func decodeV3Endpoints(modelDef modelDefinition, opts DecodeModelOptions) (Resol custAddEC2Metadata(p) custAddS3DualStack(p) custRmIotDataService(p) + + custFixCloudHSMv2SigningName(p) } return ps, nil } +func custFixCloudHSMv2SigningName(p *partition) { + // Workaround for aws/aws-sdk-go#1745 until the endpoint model can be + // fixed upstream. TODO remove this once the endpoints model is updated. + + s, ok := p.Services["cloudhsmv2"] + if !ok { + return + } + + if len(s.Defaults.CredentialScope.Service) != 0 { + fmt.Fprintf(os.Stderr, "cloudhsmv2 signing name already set, ignoring override.\n") + // If the value is already set don't override + return + } + + s.Defaults.CredentialScope.Service = "cloudhsm" + fmt.Fprintf(os.Stderr, "cloudhsmv2 signing name not set, overriding.\n") + + p.Services["cloudhsmv2"] = s +} + func custAddS3DualStack(p *partition) { if p.ID != "aws" { return diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go index 5470a8c08..b2405175a 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go @@ -52,6 +52,7 @@ const ( Appstream2ServiceID = "appstream2" // Appstream2. AthenaServiceID = "athena" // Athena. AutoscalingServiceID = "autoscaling" // Autoscaling. + AutoscalingPlansServiceID = "autoscaling-plans" // AutoscalingPlans. BatchServiceID = "batch" // Batch. BudgetsServiceID = "budgets" // Budgets. ClouddirectoryServiceID = "clouddirectory" // Clouddirectory. @@ -370,6 +371,22 @@ var awsPartition = partition{ "us-west-2": endpoint{}, }, }, + "autoscaling-plans": service{ + Defaults: endpoint{ + Hostname: "autoscaling.{region}.amazonaws.com", + Protocols: []string{"http", "https"}, + CredentialScope: credentialScope{ + Service: "autoscaling-plans", + }, + }, + Endpoints: endpoints{ + "ap-southeast-1": endpoint{}, + "eu-west-1": endpoint{}, + "us-east-1": endpoint{}, + "us-east-2": endpoint{}, + "us-west-2": endpoint{}, + }, + }, "batch": service{ Endpoints: endpoints{ @@ -459,7 +476,11 @@ var awsPartition = partition{ }, }, "cloudhsmv2": service{ - + Defaults: endpoint{ + CredentialScope: credentialScope{ + Service: "cloudhsm", + }, + }, Endpoints: endpoints{ "ap-northeast-1": endpoint{}, "ap-south-1": endpoint{}, @@ -2430,6 +2451,12 @@ var awsusgovPartition = partition{ }, }, }, + "ecs": service{ + + Endpoints: endpoints{ + "us-gov-west-1": endpoint{}, + }, + }, "elasticache": service{ Endpoints: endpoints{ diff --git a/vendor/github.com/aws/aws-sdk-go/aws/request/request_pagination.go b/vendor/github.com/aws/aws-sdk-go/aws/request/request_pagination.go index 59de6736b..159518a75 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/request/request_pagination.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/request/request_pagination.go @@ -142,13 +142,28 @@ func (r *Request) nextPageTokens() []interface{} { tokens := []interface{}{} tokenAdded := false for _, outToken := range r.Operation.OutputTokens { - v, _ := awsutil.ValuesAtPath(r.Data, outToken) - if len(v) > 0 { - tokens = append(tokens, v[0]) - tokenAdded = true - } else { + vs, _ := awsutil.ValuesAtPath(r.Data, outToken) + if len(vs) == 0 { tokens = append(tokens, nil) + continue } + v := vs[0] + + switch tv := v.(type) { + case *string: + if len(aws.StringValue(tv)) == 0 { + tokens = append(tokens, nil) + continue + } + case string: + if len(tv) == 0 { + tokens = append(tokens, nil) + continue + } + } + + tokenAdded = true + tokens = append(tokens, v) } if !tokenAdded { return nil diff --git a/vendor/github.com/aws/aws-sdk-go/aws/version.go b/vendor/github.com/aws/aws-sdk-go/aws/version.go index 73ac333a7..f0f5fa232 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/version.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.12.67" +const SDKVersion = "1.12.70" diff --git a/vendor/github.com/aws/aws-sdk-go/service/codebuild/api.go b/vendor/github.com/aws/aws-sdk-go/service/codebuild/api.go index ce54c7c52..3087aecde 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/codebuild/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/codebuild/api.go @@ -388,7 +388,7 @@ func (c *CodeBuild) CreateWebhookRequest(input *CreateWebhookInput) (req *reques // AWS CodePipeline. Because billing is on a per-build basis, you will be billed // for both builds. Therefore, if you are using AWS CodePipeline, we recommend // that you disable webhooks in CodeBuild. In the AWS CodeBuild console, clear -// the Webhook box. For more information, see step 9 in Change a Build Project’s +// the Webhook box. For more information, see step 9 in Change a Build Project's // Settings (http://docs.aws.amazon.com/codebuild/latest/userguide/change-project.html#change-project-console). // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -3430,6 +3430,9 @@ func (s *ProjectCache) SetType(v string) *ProjectCache { type ProjectEnvironment struct { _ struct{} `type:"structure"` + // The certificate to use with this build project. + Certificate *string `locationName:"certificate" type:"string"` + // Information about the compute resources the build project will use. Available // values include: // @@ -3516,6 +3519,12 @@ func (s *ProjectEnvironment) Validate() error { return nil } +// SetCertificate sets the Certificate field's value. +func (s *ProjectEnvironment) SetCertificate(v string) *ProjectEnvironment { + s.Certificate = &v + return s +} + // SetComputeType sets the ComputeType field's value. func (s *ProjectEnvironment) SetComputeType(v string) *ProjectEnvironment { s.ComputeType = &v @@ -3565,6 +3574,13 @@ type ProjectSource struct { // the source code to be built. Buildspec *string `locationName:"buildspec" type:"string"` + // Information about the git clone depth for the build project. + GitCloneDepth *int64 `locationName:"gitCloneDepth" type:"integer"` + + // Enable this flag to ignore SSL warnings while connecting to the project source + // code. + InsecureSsl *bool `locationName:"insecureSsl" type:"boolean"` + // Information about the location of the source code to be built. Valid values // include: // @@ -3665,6 +3681,18 @@ func (s *ProjectSource) SetBuildspec(v string) *ProjectSource { return s } +// SetGitCloneDepth sets the GitCloneDepth field's value. +func (s *ProjectSource) SetGitCloneDepth(v int64) *ProjectSource { + s.GitCloneDepth = &v + return s +} + +// SetInsecureSsl sets the InsecureSsl field's value. +func (s *ProjectSource) SetInsecureSsl(v bool) *ProjectSource { + s.InsecureSsl = &v + return s +} + // SetLocation sets the Location field's value. func (s *ProjectSource) SetLocation(v string) *ProjectSource { s.Location = &v @@ -3748,6 +3776,10 @@ type StartBuildInput struct { // ones already defined in the build project. EnvironmentVariablesOverride []*EnvironmentVariable `locationName:"environmentVariablesOverride" type:"list"` + // The user-defined depth of history, with a minimum value of 0, that overrides, + // for this build only, any previous depth of history defined in the build project. + GitCloneDepthOverride *int64 `locationName:"gitCloneDepthOverride" type:"integer"` + // The name of the build project to start running a build. // // ProjectName is a required field @@ -3841,6 +3873,12 @@ func (s *StartBuildInput) SetEnvironmentVariablesOverride(v []*EnvironmentVariab return s } +// SetGitCloneDepthOverride sets the GitCloneDepthOverride field's value. +func (s *StartBuildInput) SetGitCloneDepthOverride(v int64) *StartBuildInput { + s.GitCloneDepthOverride = &v + return s +} + // SetProjectName sets the ProjectName field's value. func (s *StartBuildInput) SetProjectName(v string) *StartBuildInput { s.ProjectName = &v @@ -4288,6 +4326,14 @@ func (s *VpcConfig) SetVpcId(v string) *VpcConfig { type Webhook struct { _ struct{} `type:"structure"` + // This is the server endpoint that will receive the webhook payload. + PayloadUrl *string `locationName:"payloadUrl" min:"1" type:"string"` + + // Use this secret while creating a webhook in GitHub for Enterprise. The secret + // allows webhook requests sent by GitHub for Enterprise to be authenticated + // by AWS CodeBuild. + Secret *string `locationName:"secret" min:"1" type:"string"` + // The URL to the webhook. Url *string `locationName:"url" min:"1" type:"string"` } @@ -4302,6 +4348,18 @@ func (s Webhook) GoString() string { return s.String() } +// SetPayloadUrl sets the PayloadUrl field's value. +func (s *Webhook) SetPayloadUrl(v string) *Webhook { + s.PayloadUrl = &v + return s +} + +// SetSecret sets the Secret field's value. +func (s *Webhook) SetSecret(v string) *Webhook { + s.Secret = &v + return s +} + // SetUrl sets the Url field's value. func (s *Webhook) SetUrl(v string) *Webhook { s.Url = &v @@ -4478,6 +4536,9 @@ const ( // SourceTypeBitbucket is a SourceType enum value SourceTypeBitbucket = "BITBUCKET" + + // SourceTypeGithubEnterprise is a SourceType enum value + SourceTypeGithubEnterprise = "GITHUB_ENTERPRISE" ) const ( diff --git a/vendor/github.com/aws/aws-sdk-go/service/devicefarm/api.go b/vendor/github.com/aws/aws-sdk-go/service/devicefarm/api.go index c4eeb0a05..c8cb56ee4 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/devicefarm/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/devicefarm/api.go @@ -2765,7 +2765,7 @@ func (c *DeviceFarm) ListJobsRequest(input *ListJobsInput) (req *request.Request // ListJobs API operation for AWS Device Farm. // -// Gets information about jobs. +// Gets information about jobs for a given test run. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -3919,7 +3919,7 @@ func (c *DeviceFarm) ListSuitesRequest(input *ListSuitesInput) (req *request.Req // ListSuites API operation for AWS Device Farm. // -// Gets information about suites. +// Gets information about test suites for a given 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 @@ -4063,7 +4063,7 @@ func (c *DeviceFarm) ListTestsRequest(input *ListTestsInput) (req *request.Reque // ListTests API operation for AWS Device Farm. // -// Gets information about tests. +// Gets information about tests in a given test suite. // // 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 @@ -5885,7 +5885,7 @@ type CreateRemoteAccessSessionInput struct { // Unique identifier for the client. If you want access to multiple devices // on the same client, you should pass the same clientId value in each call // to CreateRemoteAccessSession. This is required only if remoteDebugEnabled - // is set to true true. + // is set to true. ClientId *string `locationName:"clientId" type:"string"` // The configuration information for the remote access session request. @@ -5897,6 +5897,20 @@ type CreateRemoteAccessSessionInput struct { // DeviceArn is a required field DeviceArn *string `locationName:"deviceArn" min:"32" type:"string" required:"true"` + // The interaction mode of the remote access session. Valid values are: + // + // * INTERACTIVE: You can interact with the iOS device by viewing, touching, + // and rotating the screen. You cannot run XCUITest framework-based tests + // in this mode. + // + // * NO_VIDEO: You are connected to the device but cannot interact with it + // or view the screen. This mode has the fastest test execution speed. You + // can run XCUITest framework-based tests in this mode. + // + // * VIDEO_ONLY: You can view the screen but cannot touch or rotate it. You + // can run XCUITest framework-based tests and watch the screen in this mode. + InteractionMode *string `locationName:"interactionMode" type:"string" enum:"InteractionMode"` + // The name of the remote access session that you wish to create. Name *string `locationName:"name" type:"string"` @@ -5910,6 +5924,13 @@ type CreateRemoteAccessSessionInput struct { // remote access session. RemoteDebugEnabled *bool `locationName:"remoteDebugEnabled" type:"boolean"` + // The Amazon Resource Name (ARN) for the app to be recorded in the remote access + // session. + RemoteRecordAppArn *string `locationName:"remoteRecordAppArn" min:"32" type:"string"` + + // Set to true to enable remote recording for the remote access session. + RemoteRecordEnabled *bool `locationName:"remoteRecordEnabled" type:"boolean"` + // The public key of the ssh key pair you want to use for connecting to remote // devices in your remote debugging session. This is only required if remoteDebugEnabled // is set to true. @@ -5941,6 +5962,9 @@ func (s *CreateRemoteAccessSessionInput) Validate() error { if s.ProjectArn != nil && len(*s.ProjectArn) < 32 { invalidParams.Add(request.NewErrParamMinLen("ProjectArn", 32)) } + if s.RemoteRecordAppArn != nil && len(*s.RemoteRecordAppArn) < 32 { + invalidParams.Add(request.NewErrParamMinLen("RemoteRecordAppArn", 32)) + } if invalidParams.Len() > 0 { return invalidParams @@ -5966,6 +5990,12 @@ func (s *CreateRemoteAccessSessionInput) SetDeviceArn(v string) *CreateRemoteAcc return s } +// SetInteractionMode sets the InteractionMode field's value. +func (s *CreateRemoteAccessSessionInput) SetInteractionMode(v string) *CreateRemoteAccessSessionInput { + s.InteractionMode = &v + return s +} + // SetName sets the Name field's value. func (s *CreateRemoteAccessSessionInput) SetName(v string) *CreateRemoteAccessSessionInput { s.Name = &v @@ -5984,6 +6014,18 @@ func (s *CreateRemoteAccessSessionInput) SetRemoteDebugEnabled(v bool) *CreateRe return s } +// SetRemoteRecordAppArn sets the RemoteRecordAppArn field's value. +func (s *CreateRemoteAccessSessionInput) SetRemoteRecordAppArn(v string) *CreateRemoteAccessSessionInput { + s.RemoteRecordAppArn = &v + return s +} + +// SetRemoteRecordEnabled sets the RemoteRecordEnabled field's value. +func (s *CreateRemoteAccessSessionInput) SetRemoteRecordEnabled(v bool) *CreateRemoteAccessSessionInput { + s.RemoteRecordEnabled = &v + return s +} + // SetSshPublicKey sets the SshPublicKey field's value. func (s *CreateRemoteAccessSessionInput) SetSshPublicKey(v string) *CreateRemoteAccessSessionInput { s.SshPublicKey = &v @@ -6617,6 +6659,9 @@ type Device struct { // The device's model name. Model *string `locationName:"model" type:"string"` + // The device's model ID. + ModelId *string `locationName:"modelId" type:"string"` + // The device's display name. Name *string `locationName:"name" type:"string"` @@ -6721,6 +6766,12 @@ func (s *Device) SetModel(v string) *Device { return s } +// SetModelId sets the ModelId field's value. +func (s *Device) SetModelId(v string) *Device { + s.ModelId = &v + return s +} + // SetName sets the Name field's value. func (s *Device) SetName(v string) *Device { s.Name = &v @@ -8562,7 +8613,7 @@ func (s *ListDevicesOutput) SetNextToken(v string) *ListDevicesOutput { type ListJobsInput struct { _ struct{} `type:"structure"` - // The jobs' ARNs. + // The run's Amazon Resource Name (ARN). // // Arn is a required field Arn *string `locationName:"arn" min:"32" type:"string" required:"true"` @@ -9344,7 +9395,7 @@ func (s *ListSamplesOutput) SetSamples(v []*Sample) *ListSamplesOutput { type ListSuitesInput struct { _ struct{} `type:"structure"` - // The suites' ARNs. + // The job's Amazon Resource Name (ARN). // // Arn is a required field Arn *string `locationName:"arn" min:"32" type:"string" required:"true"` @@ -9436,7 +9487,7 @@ func (s *ListSuitesOutput) SetSuites(v []*Suite) *ListSuitesOutput { type ListTestsInput struct { _ struct{} `type:"structure"` - // The tests' ARNs. + // The test suite's Amazon Resource Name (ARN). // // Arn is a required field Arn *string `locationName:"arn" min:"32" type:"string" required:"true"` @@ -10543,6 +10594,20 @@ type RemoteAccessSession struct { // Only returned if remote debugging is enabled for the remote access session. HostAddress *string `locationName:"hostAddress" type:"string"` + // The interaction mode of the remote access session. Valid values are: + // + // * INTERACTIVE: You can interact with the iOS device by viewing, touching, + // and rotating the screen. You cannot run XCUITest framework-based tests + // in this mode. + // + // * NO_VIDEO: You are connected to the device but cannot interact with it + // or view the screen. This mode has the fastest test execution speed. You + // can run XCUITest framework-based tests in this mode. + // + // * VIDEO_ONLY: You can view the screen but cannot touch or rotate it. You + // can run XCUITest framework-based tests and watch the screen in this mode. + InteractionMode *string `locationName:"interactionMode" type:"string" enum:"InteractionMode"` + // A message about the remote access session. Message *string `locationName:"message" type:"string"` @@ -10553,6 +10618,14 @@ type RemoteAccessSession struct { // session. RemoteDebugEnabled *bool `locationName:"remoteDebugEnabled" type:"boolean"` + // The Amazon Resource Name (ARN) for the app to be recorded in the remote access + // session. + RemoteRecordAppArn *string `locationName:"remoteRecordAppArn" min:"32" type:"string"` + + // This flag is set to true if remote recording is enabled for the remote access + // session. + RemoteRecordEnabled *bool `locationName:"remoteRecordEnabled" type:"boolean"` + // The result of the remote access session. Can be any of the following: // // * PENDING: A pending condition. @@ -10662,6 +10735,12 @@ func (s *RemoteAccessSession) SetHostAddress(v string) *RemoteAccessSession { return s } +// SetInteractionMode sets the InteractionMode field's value. +func (s *RemoteAccessSession) SetInteractionMode(v string) *RemoteAccessSession { + s.InteractionMode = &v + return s +} + // SetMessage sets the Message field's value. func (s *RemoteAccessSession) SetMessage(v string) *RemoteAccessSession { s.Message = &v @@ -10680,6 +10759,18 @@ func (s *RemoteAccessSession) SetRemoteDebugEnabled(v bool) *RemoteAccessSession return s } +// SetRemoteRecordAppArn sets the RemoteRecordAppArn field's value. +func (s *RemoteAccessSession) SetRemoteRecordAppArn(v string) *RemoteAccessSession { + s.RemoteRecordAppArn = &v + return s +} + +// SetRemoteRecordEnabled sets the RemoteRecordEnabled field's value. +func (s *RemoteAccessSession) SetRemoteRecordEnabled(v bool) *RemoteAccessSession { + s.RemoteRecordEnabled = &v + return s +} + // SetResult sets the Result field's value. func (s *RemoteAccessSession) SetResult(v string) *RemoteAccessSession { s.Result = &v @@ -10886,6 +10977,9 @@ func (s *Rule) SetValue(v string) *Rule { type Run struct { _ struct{} `type:"structure"` + // An app to upload or that has been uploaded. + AppUpload *string `locationName:"appUpload" min:"32" type:"string"` + // The run's ARN. Arn *string `locationName:"arn" min:"32" type:"string"` @@ -10908,6 +11002,22 @@ type Run struct { // Represents the total (metered or unmetered) minutes used by the test run. DeviceMinutes *DeviceMinutes `locationName:"deviceMinutes" type:"structure"` + // The ARN of the device pool for the run. + DevicePoolArn *string `locationName:"devicePoolArn" min:"32" type:"string"` + + // For fuzz tests, this is the number of events, between 1 and 10000, that the + // UI fuzz test should perform. + EventCount *int64 `locationName:"eventCount" type:"integer"` + + // The number of minutes the job will execute before it times out. + JobTimeoutMinutes *int64 `locationName:"jobTimeoutMinutes" type:"integer"` + + // Information about the locale that is used for the run. + Locale *string `locationName:"locale" type:"string"` + + // Information about the location that is used for the run. + Location *Location `locationName:"location" type:"structure"` + // A message about the run's result. Message *string `locationName:"message" type:"string"` @@ -10931,6 +11041,9 @@ type Run struct { // * IOS: The iOS platform. Platform *string `locationName:"platform" type:"string" enum:"DevicePlatform"` + // Information about the radio states for the run. + Radios *Radios `locationName:"radios" type:"structure"` + // The run's result. // // Allowed values include: @@ -10954,6 +11067,10 @@ type Run struct { // if the result is skipped because of test package parsing failure. ResultCode *string `locationName:"resultCode" type:"string" enum:"ExecutionResultCode"` + // For fuzz tests, this is a seed to use for randomizing the UI fuzz test. Using + // the same seed value between tests ensures identical event sequences. + Seed *int64 `locationName:"seed" type:"integer"` + // The run's start time. Started *time.Time `locationName:"started" type:"timestamp" timestampFormat:"unix"` @@ -11020,6 +11137,10 @@ type Run struct { // // * XCTEST_UI: The XCode UI test type. Type *string `locationName:"type" type:"string" enum:"TestType"` + + // A pre-signed Amazon S3 URL that can be used with a corresponding GET request + // to download the symbol file for the run. + WebUrl *string `locationName:"webUrl" type:"string"` } // String returns the string representation @@ -11032,6 +11153,12 @@ func (s Run) GoString() string { return s.String() } +// SetAppUpload sets the AppUpload field's value. +func (s *Run) SetAppUpload(v string) *Run { + s.AppUpload = &v + return s +} + // SetArn sets the Arn field's value. func (s *Run) SetArn(v string) *Run { s.Arn = &v @@ -11074,6 +11201,36 @@ func (s *Run) SetDeviceMinutes(v *DeviceMinutes) *Run { return s } +// SetDevicePoolArn sets the DevicePoolArn field's value. +func (s *Run) SetDevicePoolArn(v string) *Run { + s.DevicePoolArn = &v + return s +} + +// SetEventCount sets the EventCount field's value. +func (s *Run) SetEventCount(v int64) *Run { + s.EventCount = &v + return s +} + +// SetJobTimeoutMinutes sets the JobTimeoutMinutes field's value. +func (s *Run) SetJobTimeoutMinutes(v int64) *Run { + s.JobTimeoutMinutes = &v + return s +} + +// SetLocale sets the Locale field's value. +func (s *Run) SetLocale(v string) *Run { + s.Locale = &v + return s +} + +// SetLocation sets the Location field's value. +func (s *Run) SetLocation(v *Location) *Run { + s.Location = v + return s +} + // SetMessage sets the Message field's value. func (s *Run) SetMessage(v string) *Run { s.Message = &v @@ -11104,6 +11261,12 @@ func (s *Run) SetPlatform(v string) *Run { return s } +// SetRadios sets the Radios field's value. +func (s *Run) SetRadios(v *Radios) *Run { + s.Radios = v + return s +} + // SetResult sets the Result field's value. func (s *Run) SetResult(v string) *Run { s.Result = &v @@ -11116,6 +11279,12 @@ func (s *Run) SetResultCode(v string) *Run { return s } +// SetSeed sets the Seed field's value. +func (s *Run) SetSeed(v int64) *Run { + s.Seed = &v + return s +} + // SetStarted sets the Started field's value. func (s *Run) SetStarted(v time.Time) *Run { s.Started = &v @@ -11146,6 +11315,12 @@ func (s *Run) SetType(v string) *Run { return s } +// SetWebUrl sets the WebUrl field's value. +func (s *Run) SetWebUrl(v string) *Run { + s.WebUrl = &v + return s +} + // Represents a sample of performance data. // See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Sample type Sample struct { @@ -12342,8 +12517,8 @@ func (s *UpdateDevicePoolOutput) SetDevicePool(v *DevicePool) *UpdateDevicePoolO type UpdateNetworkProfileInput struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) of the project that you wish to update network - // profile settings. + // The Amazon Resource Name (ARN) of the project for which you want to update + // network profile settings. // // Arn is a required field Arn *string `locationName:"arn" min:"32" type:"string" required:"true"` @@ -12954,6 +13129,17 @@ const ( ExecutionStatusStopping = "STOPPING" ) +const ( + // InteractionModeInteractive is a InteractionMode enum value + InteractionModeInteractive = "INTERACTIVE" + + // InteractionModeNoVideo is a InteractionMode enum value + InteractionModeNoVideo = "NO_VIDEO" + + // InteractionModeVideoOnly is a InteractionMode enum value + InteractionModeVideoOnly = "VIDEO_ONLY" +) + const ( // NetworkProfileTypeCurated is a NetworkProfileType enum value NetworkProfileTypeCurated = "CURATED" @@ -13063,6 +13249,9 @@ const ( // TestTypeBuiltinExplorer is a TestType enum value TestTypeBuiltinExplorer = "BUILTIN_EXPLORER" + // TestTypeWebPerformanceProfile is a TestType enum value + TestTypeWebPerformanceProfile = "WEB_PERFORMANCE_PROFILE" + // TestTypeAppiumJavaJunit is a TestType enum value TestTypeAppiumJavaJunit = "APPIUM_JAVA_JUNIT" @@ -13098,6 +13287,12 @@ const ( // TestTypeXctestUi is a TestType enum value TestTypeXctestUi = "XCTEST_UI" + + // TestTypeRemoteAccessRecord is a TestType enum value + TestTypeRemoteAccessRecord = "REMOTE_ACCESS_RECORD" + + // TestTypeRemoteAccessReplay is a TestType enum value + TestTypeRemoteAccessReplay = "REMOTE_ACCESS_REPLAY" ) const ( diff --git a/vendor/github.com/aws/aws-sdk-go/service/guardduty/api.go b/vendor/github.com/aws/aws-sdk-go/service/guardduty/api.go index bd931c9ee..a7016cf83 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/guardduty/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/guardduty/api.go @@ -3475,6 +3475,59 @@ func (s AcceptInvitationOutput) GoString() string { return s.String() } +// The IAM access key details (IAM user information) of a user that engaged +// in the activity that prompted GuardDuty to generate a finding. +// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/AccessKeyDetails +type AccessKeyDetails struct { + _ struct{} `type:"structure"` + + // Access key ID of the user. + AccessKeyId *string `locationName:"accessKeyId" type:"string"` + + // The principal ID of the user. + PrincipalId *string `locationName:"principalId" type:"string"` + + // The name of the user. + UserName *string `locationName:"userName" type:"string"` + + // The type of the user. + UserType *string `locationName:"userType" type:"string"` +} + +// String returns the string representation +func (s AccessKeyDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AccessKeyDetails) GoString() string { + return s.String() +} + +// SetAccessKeyId sets the AccessKeyId field's value. +func (s *AccessKeyDetails) SetAccessKeyId(v string) *AccessKeyDetails { + s.AccessKeyId = &v + return s +} + +// SetPrincipalId sets the PrincipalId field's value. +func (s *AccessKeyDetails) SetPrincipalId(v string) *AccessKeyDetails { + s.PrincipalId = &v + return s +} + +// SetUserName sets the UserName field's value. +func (s *AccessKeyDetails) SetUserName(v string) *AccessKeyDetails { + s.UserName = &v + return s +} + +// SetUserType sets the UserType field's value. +func (s *AccessKeyDetails) SetUserType(v string) *AccessKeyDetails { + s.UserType = &v + return s +} + // An object containing the member's accountId and email address. // See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/AccountDetail type AccountDetail struct { @@ -7028,6 +7081,10 @@ func (s *RemotePortDetails) SetPortName(v string) *RemotePortDetails { type Resource struct { _ struct{} `type:"structure"` + // The IAM access key details (IAM user information) of a user that engaged + // in the activity that prompted GuardDuty to generate a finding. + AccessKeyDetails *AccessKeyDetails `locationName:"accessKeyDetails" type:"structure"` + // The information about the EC2 instance associated with the activity that // prompted GuardDuty to generate a finding. InstanceDetails *InstanceDetails `locationName:"instanceDetails" type:"structure"` @@ -7046,6 +7103,12 @@ func (s Resource) GoString() string { return s.String() } +// SetAccessKeyDetails sets the AccessKeyDetails field's value. +func (s *Resource) SetAccessKeyDetails(v *AccessKeyDetails) *Resource { + s.AccessKeyDetails = v + return s +} + // SetInstanceDetails sets the InstanceDetails field's value. func (s *Resource) SetInstanceDetails(v *InstanceDetails) *Resource { s.InstanceDetails = v diff --git a/vendor/github.com/aws/aws-sdk-go/service/lambda/api.go b/vendor/github.com/aws/aws-sdk-go/service/lambda/api.go index 844e58a49..38516c296 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/lambda/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/lambda/api.go @@ -101,6 +101,11 @@ func (c *Lambda) AddPermissionRequest(input *AddPermissionInput) (req *request.R // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// * ErrCodePreconditionFailedException "PreconditionFailedException" +// The RevisionId provided does not match the latest RevisionId for the Lambda +// function or alias. Call the GetFunction or the GetAlias API to retrieve the +// latest RevisionId for your resource. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/AddPermission func (c *Lambda) AddPermission(input *AddPermissionInput) (*AddPermissionOutput, error) { req, out := c.AddPermissionRequest(input) @@ -2326,6 +2331,11 @@ func (c *Lambda) PublishVersionRequest(input *PublishVersionInput) (req *request // * ErrCodeCodeStorageExceededException "CodeStorageExceededException" // You have exceeded your maximum total code size per account. Limits (http://docs.aws.amazon.com/lambda/latest/dg/limits.html) // +// * ErrCodePreconditionFailedException "PreconditionFailedException" +// The RevisionId provided does not match the latest RevisionId for the Lambda +// function or alias. Call the GetFunction or the GetAlias API to retrieve the +// latest RevisionId for your resource. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PublishVersion func (c *Lambda) PublishVersion(input *PublishVersionInput) (*FunctionConfiguration, error) { req, out := c.PublishVersionRequest(input) @@ -2525,6 +2535,11 @@ func (c *Lambda) RemovePermissionRequest(input *RemovePermissionInput) (req *req // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// * ErrCodePreconditionFailedException "PreconditionFailedException" +// The RevisionId provided does not match the latest RevisionId for the Lambda +// function or alias. Call the GetFunction or the GetAlias API to retrieve the +// latest RevisionId for your resource. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/RemovePermission func (c *Lambda) RemovePermission(input *RemovePermissionInput) (*RemovePermissionOutput, error) { req, out := c.RemovePermissionRequest(input) @@ -2806,6 +2821,11 @@ func (c *Lambda) UpdateAliasRequest(input *UpdateAliasInput) (req *request.Reque // // * ErrCodeTooManyRequestsException "TooManyRequestsException" // +// * ErrCodePreconditionFailedException "PreconditionFailedException" +// The RevisionId provided does not match the latest RevisionId for the Lambda +// function or alias. Call the GetFunction or the GetAlias API to retrieve the +// latest RevisionId for your resource. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateAlias func (c *Lambda) UpdateAlias(input *UpdateAliasInput) (*AliasConfiguration, error) { req, out := c.UpdateAliasRequest(input) @@ -3016,6 +3036,11 @@ func (c *Lambda) UpdateFunctionCodeRequest(input *UpdateFunctionCodeInput) (req // * ErrCodeCodeStorageExceededException "CodeStorageExceededException" // You have exceeded your maximum total code size per account. Limits (http://docs.aws.amazon.com/lambda/latest/dg/limits.html) // +// * ErrCodePreconditionFailedException "PreconditionFailedException" +// The RevisionId provided does not match the latest RevisionId for the Lambda +// function or alias. Call the GetFunction or the GetAlias API to retrieve the +// latest RevisionId for your resource. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateFunctionCode func (c *Lambda) UpdateFunctionCode(input *UpdateFunctionCodeInput) (*FunctionConfiguration, error) { req, out := c.UpdateFunctionCodeRequest(input) @@ -3119,6 +3144,11 @@ func (c *Lambda) UpdateFunctionConfigurationRequest(input *UpdateFunctionConfigu // * ErrCodeResourceConflictException "ResourceConflictException" // The resource already exists. // +// * ErrCodePreconditionFailedException "PreconditionFailedException" +// The RevisionId provided does not match the latest RevisionId for the Lambda +// function or alias. Call the GetFunction or the GetAlias API to retrieve the +// latest RevisionId for your resource. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateFunctionConfiguration func (c *Lambda) UpdateFunctionConfiguration(input *UpdateFunctionConfigurationInput) (*FunctionConfiguration, error) { req, out := c.UpdateFunctionConfigurationRequest(input) @@ -3303,6 +3333,13 @@ type AddPermissionInput struct { // arn:aws:lambda:aws-region:acct-id:function:function-name Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"` + // An optional value you can use to ensure you are updating the latest update + // of the function version or alias. If the RevisionID you pass doesn't match + // the latest RevisionId of the function or alias, it will fail with an error + // message, advising you to retrieve the latest function version or alias RevisionID + // using either or . + RevisionId *string `type:"string"` + // This parameter is used for S3 and SES. The AWS account ID (without a hyphen) // of the source owner. For example, if the SourceArn identifies a bucket, then // this is the bucket owner's account ID. You can use this additional condition @@ -3399,6 +3436,12 @@ func (s *AddPermissionInput) SetQualifier(v string) *AddPermissionInput { return s } +// SetRevisionId sets the RevisionId field's value. +func (s *AddPermissionInput) SetRevisionId(v string) *AddPermissionInput { + s.RevisionId = &v + return s +} + // SetSourceAccount sets the SourceAccount field's value. func (s *AddPermissionInput) SetSourceAccount(v string) *AddPermissionInput { s.SourceAccount = &v @@ -3462,6 +3505,9 @@ type AliasConfiguration struct { // Alias name. Name *string `min:"1" type:"string"` + // Represents the latest updated revision of the function or alias. + RevisionId *string `type:"string"` + // Specifies an additional function versions the alias points to, allowing you // to dictate what percentage of traffic will invoke each version. For more // information, see lambda-traffic-shifting-using-aliases. @@ -3502,6 +3548,12 @@ func (s *AliasConfiguration) SetName(v string) *AliasConfiguration { return s } +// SetRevisionId sets the RevisionId field's value. +func (s *AliasConfiguration) SetRevisionId(v string) *AliasConfiguration { + s.RevisionId = &v + return s +} + // SetRoutingConfig sets the RoutingConfig field's value. func (s *AliasConfiguration) SetRoutingConfig(v *AliasRoutingConfiguration) *AliasConfiguration { s.RoutingConfig = v @@ -3833,7 +3885,7 @@ type CreateFunctionInput struct { // Node v0.10.42 is currently marked as deprecated. You must migrate existing // functions to the newer Node.js runtime versions available on AWS Lambda (nodejs4.3 // or nodejs6.10) as soon as possible. Failure to do so will result in an invalid - // parmaeter error being returned. Note that you will have to follow this procedure + // parameter error being returned. Note that you will have to follow this procedure // for each region that contains functions written in the Node v0.10.42 runtime. // // Runtime is a required field @@ -4642,6 +4694,9 @@ type FunctionConfiguration struct { // of 64 MB. MemorySize *int64 `min:"128" type:"integer"` + // Represents the latest updated revision of the function or alias. + RevisionId *string `type:"string"` + // The Amazon Resource Name (ARN) of the IAM role that Lambda assumes when it // executes your function to access any other Amazon Web Services (AWS) resources. Role *string `type:"string"` @@ -4746,6 +4801,12 @@ func (s *FunctionConfiguration) SetMemorySize(v int64) *FunctionConfiguration { return s } +// SetRevisionId sets the RevisionId field's value. +func (s *FunctionConfiguration) SetRevisionId(v string) *FunctionConfiguration { + s.RevisionId = &v + return s +} + // SetRole sets the Role field's value. func (s *FunctionConfiguration) SetRole(v string) *FunctionConfiguration { s.Role = &v @@ -5195,6 +5256,9 @@ type GetPolicyOutput struct { // returns the same as a string using a backslash ("\") as an escape character // in the JSON. Policy *string `type:"string"` + + // Represents the latest updated revision of the function or alias. + RevisionId *string `type:"string"` } // String returns the string representation @@ -5213,6 +5277,12 @@ func (s *GetPolicyOutput) SetPolicy(v string) *GetPolicyOutput { return s } +// SetRevisionId sets the RevisionId field's value. +func (s *GetPolicyOutput) SetRevisionId(v string) *GetPolicyOutput { + s.RevisionId = &v + return s +} + // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/InvokeAsyncRequest type InvokeAsyncInput struct { _ struct{} `deprecated:"true" type:"structure" payload:"InvokeArgs"` @@ -6025,6 +6095,13 @@ type PublishVersionInput struct { // // FunctionName is a required field FunctionName *string `location:"uri" locationName:"FunctionName" min:"1" type:"string" required:"true"` + + // An optional value you can use to ensure you are updating the latest update + // of the function version or alias. If the RevisionID you pass doesn't match + // the latest RevisionId of the function or alias, it will fail with an error + // message, advising you to retrieve the latest function version or alias RevisionID + // using either or . + RevisionId *string `type:"string"` } // String returns the string representation @@ -6071,6 +6148,12 @@ func (s *PublishVersionInput) SetFunctionName(v string) *PublishVersionInput { return s } +// SetRevisionId sets the RevisionId field's value. +func (s *PublishVersionInput) SetRevisionId(v string) *PublishVersionInput { + s.RevisionId = &v + return s +} + // See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PutFunctionConcurrencyRequest type PutFunctionConcurrencyInput struct { _ struct{} `type:"structure"` @@ -6175,6 +6258,13 @@ type RemovePermissionInput struct { // ARN. Qualifier *string `location:"querystring" locationName:"Qualifier" min:"1" type:"string"` + // An optional value you can use to ensure you are updating the latest update + // of the function version or alias. If the RevisionID you pass doesn't match + // the latest RevisionId of the function or alias, it will fail with an error + // message, advising you to retrieve the latest function version or alias RevisionID + // using either or . + RevisionId *string `location:"querystring" locationName:"RevisionId" type:"string"` + // Statement ID of the permission to remove. // // StatementId is a required field @@ -6228,6 +6318,12 @@ func (s *RemovePermissionInput) SetQualifier(v string) *RemovePermissionInput { return s } +// SetRevisionId sets the RevisionId field's value. +func (s *RemovePermissionInput) SetRevisionId(v string) *RemovePermissionInput { + s.RevisionId = &v + return s +} + // SetStatementId sets the StatementId field's value. func (s *RemovePermissionInput) SetStatementId(v string) *RemovePermissionInput { s.StatementId = &v @@ -6462,6 +6558,13 @@ type UpdateAliasInput struct { // Name is a required field Name *string `location:"uri" locationName:"Name" min:"1" type:"string" required:"true"` + // An optional value you can use to ensure you are updating the latest update + // of the function version or alias. If the RevisionID you pass doesn't match + // the latest RevisionId of the function or alias, it will fail with an error + // message, advising you to retrieve the latest function version or alias RevisionID + // using either or . + RevisionId *string `type:"string"` + // Specifies an additional version your alias can point to, allowing you to // dictate what percentage of traffic will invoke each version. For more information, // see lambda-traffic-shifting-using-aliases. @@ -6527,6 +6630,12 @@ func (s *UpdateAliasInput) SetName(v string) *UpdateAliasInput { return s } +// SetRevisionId sets the RevisionId field's value. +func (s *UpdateAliasInput) SetRevisionId(v string) *UpdateAliasInput { + s.RevisionId = &v + return s +} + // SetRoutingConfig sets the RoutingConfig field's value. func (s *UpdateAliasInput) SetRoutingConfig(v *AliasRoutingConfiguration) *UpdateAliasInput { s.RoutingConfig = v @@ -6648,6 +6757,13 @@ type UpdateFunctionCodeInput struct { // function and publish a version as an atomic operation. Publish *bool `type:"boolean"` + // An optional value you can use to ensure you are updating the latest update + // of the function version or alias. If the RevisionID you pass doesn't match + // the latest RevisionId of the function or alias, it will fail with an error + // message, advising you to retrieve the latest function version or alias RevisionID + // using either or . + RevisionId *string `type:"string"` + // Amazon S3 bucket name where the .zip file containing your deployment package // is stored. This bucket must reside in the same AWS Region where you are creating // the Lambda function. @@ -6723,6 +6839,12 @@ func (s *UpdateFunctionCodeInput) SetPublish(v bool) *UpdateFunctionCodeInput { return s } +// SetRevisionId sets the RevisionId field's value. +func (s *UpdateFunctionCodeInput) SetRevisionId(v string) *UpdateFunctionCodeInput { + s.RevisionId = &v + return s +} + // SetS3Bucket sets the S3Bucket field's value. func (s *UpdateFunctionCodeInput) SetS3Bucket(v string) *UpdateFunctionCodeInput { s.S3Bucket = &v @@ -6790,6 +6912,13 @@ type UpdateFunctionConfigurationInput struct { // MB. MemorySize *int64 `min:"128" type:"integer"` + // An optional value you can use to ensure you are updating the latest update + // of the function version or alias. If the RevisionID you pass doesn't match + // the latest RevisionId of the function or alias, it will fail with an error + // message, advising you to retrieve the latest function version or alias RevisionID + // using either or . + RevisionId *string `type:"string"` + // The Amazon Resource Name (ARN) of the IAM role that Lambda will assume when // it executes your function. Role *string `type:"string"` @@ -6898,6 +7027,12 @@ func (s *UpdateFunctionConfigurationInput) SetMemorySize(v int64) *UpdateFunctio return s } +// SetRevisionId sets the RevisionId field's value. +func (s *UpdateFunctionConfigurationInput) SetRevisionId(v string) *UpdateFunctionConfigurationInput { + s.RevisionId = &v + return s +} + // SetRole sets the Role field's value. func (s *UpdateFunctionConfigurationInput) SetRole(v string) *UpdateFunctionConfigurationInput { s.Role = &v diff --git a/vendor/github.com/aws/aws-sdk-go/service/lambda/errors.go b/vendor/github.com/aws/aws-sdk-go/service/lambda/errors.go index fc6715b5f..57daa1c34 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/lambda/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/lambda/errors.go @@ -109,6 +109,14 @@ const ( // Lambda function access policy is limited to 20 KB. ErrCodePolicyLengthExceededException = "PolicyLengthExceededException" + // ErrCodePreconditionFailedException for service response error code + // "PreconditionFailedException". + // + // The RevisionId provided does not match the latest RevisionId for the Lambda + // function or alias. Call the GetFunction or the GetAlias API to retrieve the + // latest RevisionId for your resource. + ErrCodePreconditionFailedException = "PreconditionFailedException" + // ErrCodeRequestTooLargeException for service response error code // "RequestTooLargeException". // diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/CHANGELOG.md b/vendor/github.com/terraform-providers/terraform-provider-aws/CHANGELOG.md index cda4f0e10..be7047e20 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/CHANGELOG.md +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/CHANGELOG.md @@ -1,34 +1,37 @@ -## 1.8.0 (Unreleased) +## 1.8.0 (January 29, 2018) FEATURES: -* **New Resource:** `aws_dynamodb_global_table` [GH-2517] -* **New Resource:** `aws_gamelift_build` [GH-2843] +* **New Resource:** `aws_dynamodb_global_table` ([#2517](https://github.com/terraform-providers/terraform-provider-aws/issues/2517)) +* **New Resource:** `aws_gamelift_build` ([#2843](https://github.com/terraform-providers/terraform-provider-aws/issues/2843)) ENHANCEMENTS: -* data-source/aws_kms_alias: Add target_key_arn attribute [GH-2551] -* resource/aws_api_gateway_integration: Allow update of content_handling attributes [GH-3123] -* resource/aws_appautoscaling_target: Support updating max_capacity, min_capacity, and role_arn attributes [GH-2950] -* resource/aws_cloudwatch_log_subscription_filter: Add support for distribution [GH-3046] -* resource/aws_cognito_user_pool: support pre_token_generation in lambda_config [GH-3093] -* resource/aws_elasticsearch_domain: Add support for encrypt_at_rest [GH-2632] -* resource/aws_emr_cluster: Support CustomAmiId [GH-2766] -* resource/aws_kms_alias: Add target_key_arn attribute [GH-3096] -* resource/aws_route: Allow adding IPv6 routes to instances and network interfaces [GH-2265] -* resource/aws_sqs_queue: Retry queue creation on QueueDeletedRecently error [GH-3113] -* resource/aws_vpn_connection: Add inside CIDR and pre-shared key attributes [GH-1862] +* provider: `cn-northwest-1` region is now supported ([#3142](https://github.com/terraform-providers/terraform-provider-aws/issues/3142)) +* data-source/aws_kms_alias: Add target_key_arn attribute ([#2551](https://github.com/terraform-providers/terraform-provider-aws/issues/2551)) +* resource/aws_api_gateway_integration: Allow update of content_handling attributes ([#3123](https://github.com/terraform-providers/terraform-provider-aws/issues/3123)) +* resource/aws_appautoscaling_target: Support updating max_capacity, min_capacity, and role_arn attributes ([#2950](https://github.com/terraform-providers/terraform-provider-aws/issues/2950)) +* resource/aws_cloudwatch_log_subscription_filter: Add support for distribution ([#3046](https://github.com/terraform-providers/terraform-provider-aws/issues/3046)) +* resource/aws_cognito_user_pool: support pre_token_generation in lambda_config ([#3093](https://github.com/terraform-providers/terraform-provider-aws/issues/3093)) +* resource/aws_elasticsearch_domain: Add support for encrypt_at_rest ([#2632](https://github.com/terraform-providers/terraform-provider-aws/issues/2632)) +* resource/aws_emr_cluster: Support CustomAmiId ([#2766](https://github.com/terraform-providers/terraform-provider-aws/issues/2766)) +* resource/aws_kms_alias: Add target_key_arn attribute ([#3096](https://github.com/terraform-providers/terraform-provider-aws/issues/3096)) +* resource/aws_route: Allow adding IPv6 routes to instances and network interfaces ([#2265](https://github.com/terraform-providers/terraform-provider-aws/issues/2265)) +* resource/aws_sqs_queue: Retry queue creation on QueueDeletedRecently error ([#3113](https://github.com/terraform-providers/terraform-provider-aws/issues/3113)) +* resource/aws_vpn_connection: Add inside CIDR and pre-shared key attributes ([#1862](https://github.com/terraform-providers/terraform-provider-aws/issues/1862)) BUG FIXES: -* resource/aws_appautoscaling_policy: Support additional predefined metric types in validation [GH-3122] -* resource/aws_ebs_snapshot: Fix `kms_key_id` attribute handling [GH-3085] -* resource/aws_eip_assocation: Retry association for pending instances [GH-3072] -* resource/aws_kinesis_firehose_delivery_stream: Prevent panic on missing S3 configuration prefix [GH-3073] -* resource/aws_lambda_function: Retry updates for IAM eventual consistency [GH-3116] -* resource/aws_route53_record: Suppress uppercase alias name diff [GH-3119] -* resource/aws_sqs_queue_policy: Prevent missing policy error on read [GH-2739] -* resource/aws_rds_cluster: Retry deletion on InvalidDBClusterStateFault [GH-3028] +* resource/aws_appautoscaling_policy: Support additional predefined metric types in validation [[#3122](https://github.com/terraform-providers/terraform-provider-aws/issues/3122)]] +* resource/aws_dynamodb_table: Recognize changes in `non_key_attributes` ([#3136](https://github.com/terraform-providers/terraform-provider-aws/issues/3136)) +* resource/aws_ebs_snapshot: Fix `kms_key_id` attribute handling ([#3085](https://github.com/terraform-providers/terraform-provider-aws/issues/3085)) +* resource/aws_eip_assocation: Retry association for pending instances ([#3072](https://github.com/terraform-providers/terraform-provider-aws/issues/3072)) +* resource/aws_elastic_beanstalk_application: Prevent crash on reading missing application ([#3171](https://github.com/terraform-providers/terraform-provider-aws/issues/3171)) +* resource/aws_kinesis_firehose_delivery_stream: Prevent panic on missing S3 configuration prefix ([#3073](https://github.com/terraform-providers/terraform-provider-aws/issues/3073)) +* resource/aws_lambda_function: Retry updates for IAM eventual consistency ([#3116](https://github.com/terraform-providers/terraform-provider-aws/issues/3116)) +* resource/aws_route53_record: Suppress uppercase alias name diff ([#3119](https://github.com/terraform-providers/terraform-provider-aws/issues/3119)) +* resource/aws_sqs_queue_policy: Prevent missing policy error on read ([#2739](https://github.com/terraform-providers/terraform-provider-aws/issues/2739)) +* resource/aws_rds_cluster: Retry deletion on InvalidDBClusterStateFault ([#3028](https://github.com/terraform-providers/terraform-provider-aws/issues/3028)) ## 1.7.1 (January 19, 2018) diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_dynamodb_table.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_dynamodb_table.go index 844bddfb9..1845b7c36 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_dynamodb_table.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_dynamodb_table.go @@ -3,12 +3,10 @@ package aws import ( "bytes" "fmt" - "log" "strings" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/dynamodb" - "github.com/hashicorp/errwrap" "github.com/hashicorp/terraform/helper/hashcode" "github.com/hashicorp/terraform/helper/schema" ) @@ -174,21 +172,41 @@ func dataSourceAwsDynamoDbTable() *schema.Resource { } func dataSourceAwsDynamoDbTableRead(d *schema.ResourceData, meta interface{}) error { - dynamodbconn := meta.(*AWSClient).dynamodbconn + conn := meta.(*AWSClient).dynamodbconn - name := d.Get("name").(string) - req := &dynamodb.DescribeTableInput{ - TableName: aws.String(name), - } - - log.Printf("[DEBUG] Reading DynamoDB Table: %s", req) - result, err := dynamodbconn.DescribeTable(req) + result, err := conn.DescribeTable(&dynamodb.DescribeTableInput{ + TableName: aws.String(d.Get("name").(string)), + }) if err != nil { - return errwrap.Wrapf("Error retrieving DynamoDB table: {{err}}", err) + return fmt.Errorf("Error retrieving DynamoDB table: %s", err) } d.SetId(*result.Table.TableName) - return flattenAwsDynamoDbTableResource(d, meta, result.Table) + err = flattenAwsDynamoDbTableResource(d, result.Table) + if err != nil { + return err + } + + ttlOut, err := conn.DescribeTimeToLive(&dynamodb.DescribeTimeToLiveInput{ + TableName: aws.String(d.Id()), + }) + if err != nil { + return err + } + if ttlOut.TimeToLiveDescription != nil { + err := d.Set("ttl", flattenDynamoDbTtl(ttlOut.TimeToLiveDescription)) + if err != nil { + return err + } + } + + tags, err := readDynamoDbTableTags(d.Get("arn").(string), conn) + if err != nil { + return err + } + d.Set("tags", tags) + + return nil } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_table.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_table.go index d9b072f88..a138929a9 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_table.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_table.go @@ -7,28 +7,13 @@ import ( "strings" "time" - "github.com/hashicorp/errwrap" - "github.com/hashicorp/terraform/helper/resource" - "github.com/hashicorp/terraform/helper/schema" - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/service/dynamodb" "github.com/hashicorp/terraform/helper/hashcode" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/helper/schema" ) -// Number of times to retry if a throttling-related exception occurs -const DYNAMODB_MAX_THROTTLE_RETRIES = 5 - -// How long to sleep when a throttle-event happens -const DYNAMODB_THROTTLE_SLEEP = 5 * time.Second - -// How long to sleep if a limit-exceeded event happens -const DYNAMODB_LIMIT_EXCEEDED_SLEEP = 10 * time.Second - -// A number of these are marked as computed because if you don't -// provide a value, DynamoDB will provide you with defaults (which are the -// default values specified below) func resourceAwsDynamoDbTable() *schema.Resource { return &schema.Resource{ Create: resourceAwsDynamoDbTableCreate, @@ -212,498 +197,201 @@ func resourceAwsDynamoDbTable() *schema.Resource { } func resourceAwsDynamoDbTableCreate(d *schema.ResourceData, meta interface{}) error { - dynamodbconn := meta.(*AWSClient).dynamodbconn + conn := meta.(*AWSClient).dynamodbconn - name := d.Get("name").(string) - - log.Printf("[DEBUG] DynamoDB table create: %s", name) - - throughput := &dynamodb.ProvisionedThroughput{ - ReadCapacityUnits: aws.Int64(int64(d.Get("read_capacity").(int))), - WriteCapacityUnits: aws.Int64(int64(d.Get("write_capacity").(int))), + keySchemaMap := map[string]interface{}{ + "hash_key": d.Get("hash_key").(string), + } + if v, ok := d.GetOk("range_key"); ok { + keySchemaMap["range_key"] = v.(string) } - hash_key_name := d.Get("hash_key").(string) - keyschema := []*dynamodb.KeySchemaElement{ - { - AttributeName: aws.String(hash_key_name), - KeyType: aws.String("HASH"), - }, - } - - if range_key, ok := d.GetOk("range_key"); ok { - range_schema_element := &dynamodb.KeySchemaElement{ - AttributeName: aws.String(range_key.(string)), - KeyType: aws.String("RANGE"), - } - keyschema = append(keyschema, range_schema_element) - } + log.Printf("[DEBUG] Creating DynamoDB table with key schema: %#v", keySchemaMap) req := &dynamodb.CreateTableInput{ - TableName: aws.String(name), - ProvisionedThroughput: throughput, - KeySchema: keyschema, + TableName: aws.String(d.Get("name").(string)), + ProvisionedThroughput: expandDynamoDbProvisionedThroughput(map[string]interface{}{ + "read_capacity": d.Get("read_capacity"), + "write_capacity": d.Get("write_capacity"), + }), + KeySchema: expandDynamoDbKeySchema(keySchemaMap), } - if attributedata, ok := d.GetOk("attribute"); ok { - attributes := []*dynamodb.AttributeDefinition{} - attributeSet := attributedata.(*schema.Set) - for _, attribute := range attributeSet.List() { - attr := attribute.(map[string]interface{}) - attributes = append(attributes, &dynamodb.AttributeDefinition{ - AttributeName: aws.String(attr["name"].(string)), - AttributeType: aws.String(attr["type"].(string)), - }) - } - - req.AttributeDefinitions = attributes + if v, ok := d.GetOk("attribute"); ok { + aSet := v.(*schema.Set) + req.AttributeDefinitions = expandDynamoDbAttributes(aSet.List()) } - if lsidata, ok := d.GetOk("local_secondary_index"); ok { - log.Printf("[DEBUG] Adding LSI data to the table") - - lsiSet := lsidata.(*schema.Set) - localSecondaryIndexes := []*dynamodb.LocalSecondaryIndex{} - for _, lsiObject := range lsiSet.List() { - lsi := lsiObject.(map[string]interface{}) - - projection := &dynamodb.Projection{ - ProjectionType: aws.String(lsi["projection_type"].(string)), - } - - if lsi["projection_type"] == "INCLUDE" { - non_key_attributes := []*string{} - for _, attr := range lsi["non_key_attributes"].([]interface{}) { - non_key_attributes = append(non_key_attributes, aws.String(attr.(string))) - } - projection.NonKeyAttributes = non_key_attributes - } - - localSecondaryIndexes = append(localSecondaryIndexes, &dynamodb.LocalSecondaryIndex{ - IndexName: aws.String(lsi["name"].(string)), - KeySchema: []*dynamodb.KeySchemaElement{ - { - AttributeName: aws.String(hash_key_name), - KeyType: aws.String("HASH"), - }, - { - AttributeName: aws.String(lsi["range_key"].(string)), - KeyType: aws.String("RANGE"), - }, - }, - Projection: projection, - }) - } - - req.LocalSecondaryIndexes = localSecondaryIndexes - - log.Printf("[DEBUG] Added %d LSI definitions", len(localSecondaryIndexes)) + if v, ok := d.GetOk("local_secondary_index"); ok { + lsiSet := v.(*schema.Set) + req.LocalSecondaryIndexes = expandDynamoDbLocalSecondaryIndexes(lsiSet.List(), keySchemaMap) } - if gsidata, ok := d.GetOk("global_secondary_index"); ok { + if v, ok := d.GetOk("global_secondary_index"); ok { globalSecondaryIndexes := []*dynamodb.GlobalSecondaryIndex{} - - gsiSet := gsidata.(*schema.Set) + gsiSet := v.(*schema.Set) for _, gsiObject := range gsiSet.List() { gsi := gsiObject.(map[string]interface{}) - gsiObject := createGSIFromData(&gsi) - globalSecondaryIndexes = append(globalSecondaryIndexes, &gsiObject) + gsiObject := expandDynamoDbGlobalSecondaryIndex(gsi) + globalSecondaryIndexes = append(globalSecondaryIndexes, gsiObject) } req.GlobalSecondaryIndexes = globalSecondaryIndexes } - if _, ok := d.GetOk("stream_enabled"); ok { - + if v, ok := d.GetOk("stream_enabled"); ok { req.StreamSpecification = &dynamodb.StreamSpecification{ - StreamEnabled: aws.Bool(d.Get("stream_enabled").(bool)), + StreamEnabled: aws.Bool(v.(bool)), StreamViewType: aws.String(d.Get("stream_view_type").(string)), } - - log.Printf("[DEBUG] Adding StreamSpecifications to the table") } - _, timeToLiveOk := d.GetOk("ttl") - _, tagsOk := d.GetOk("tags") - - attemptCount := 1 - for attemptCount <= DYNAMODB_MAX_THROTTLE_RETRIES { - output, err := dynamodbconn.CreateTable(req) + var output *dynamodb.CreateTableOutput + err := resource.Retry(2*time.Minute, func() *resource.RetryError { + var err error + output, err = conn.CreateTable(req) if err != nil { - if awsErr, ok := err.(awserr.Error); ok { - switch code := awsErr.Code(); code { - case "ThrottlingException": - log.Printf("[DEBUG] Attempt %d/%d: Sleeping for a bit to throttle back create request", attemptCount, DYNAMODB_MAX_THROTTLE_RETRIES) - time.Sleep(DYNAMODB_THROTTLE_SLEEP) - attemptCount += 1 - case "LimitExceededException": - // If we're at resource capacity, error out without retry. e.g. - // Subscriber limit exceeded: There is a limit of 256 tables per subscriber - // Do not error out on this similar throttling message: - // Subscriber limit exceeded: Only 10 tables can be created, updated, or deleted simultaneously - if strings.Contains(awsErr.Message(), "Subscriber limit exceeded:") && !strings.Contains(awsErr.Message(), "can be created, updated, or deleted simultaneously") { - return fmt.Errorf("AWS Error creating DynamoDB table: %s", err) - } - log.Printf("[DEBUG] Limit on concurrent table creations hit, sleeping for a bit") - time.Sleep(DYNAMODB_LIMIT_EXCEEDED_SLEEP) - attemptCount += 1 - default: - // Some other non-retryable exception occurred - return fmt.Errorf("AWS Error creating DynamoDB table: %s", err) - } - } else { - // Non-AWS exception occurred, give up - return fmt.Errorf("Error creating DynamoDB table: %s", err) + if isAWSErr(err, "ThrottlingException", "") { + return resource.RetryableError(err) } - } else { - // No error, set ID and return - d.SetId(*output.TableDescription.TableName) - tableArn := *output.TableDescription.TableArn - if err := d.Set("arn", tableArn); err != nil { - return err + if isAWSErr(err, dynamodb.ErrCodeLimitExceededException, "can be created, updated, or deleted simultaneously") { + return resource.RetryableError(err) + } + if isAWSErr(err, dynamodb.ErrCodeLimitExceededException, "indexed tables that can be created simultaneously") { + return resource.RetryableError(err) } - // Wait, till table is active before imitating any TimeToLive changes - if err := waitForTableToBeActive(d.Id(), meta); err != nil { - log.Printf("[DEBUG] Error waiting for table to be active: %s", err) - return err - } - - log.Printf("[DEBUG] Setting DynamoDB TimeToLive on arn: %s", tableArn) - if timeToLiveOk { - if err := updateTimeToLive(d, meta); err != nil { - log.Printf("[DEBUG] Error updating table TimeToLive: %s", err) - return err - } - } - - if tagsOk { - log.Printf("[DEBUG] Setting DynamoDB Tags on arn: %s", tableArn) - if err := createTableTags(d, meta); err != nil { - return err - } - } - - return resourceAwsDynamoDbTableRead(d, meta) + return resource.NonRetryableError(err) } + return nil + }) + if err != nil { + return err } - // Too many throttling events occurred, give up - return fmt.Errorf("Unable to create DynamoDB table '%s' after %d attempts", name, attemptCount) + d.SetId(*output.TableDescription.TableName) + d.Set("arn", output.TableDescription.TableArn) + + if err := waitForDynamoDbTableToBeActive(d.Id(), 10*time.Minute, conn); err != nil { + return err + } + + return resourceAwsDynamoDbTableUpdate(d, meta) } func resourceAwsDynamoDbTableUpdate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).dynamodbconn - log.Printf("[DEBUG] Updating DynamoDB table %s", d.Id()) - dynamodbconn := meta.(*AWSClient).dynamodbconn - - // Ensure table is active before trying to update - if err := waitForTableToBeActive(d.Id(), meta); err != nil { - return errwrap.Wrapf("Error waiting for Dynamo DB Table update: {{err}}", err) + // Cannot create or delete index while updating table IOPS + // so we update IOPS separately + if (d.HasChange("read_capacity") || d.HasChange("write_capacity")) && !d.IsNewResource() { + _, err := conn.UpdateTable(&dynamodb.UpdateTableInput{ + TableName: aws.String(d.Id()), + ProvisionedThroughput: expandDynamoDbProvisionedThroughput(map[string]interface{}{ + "read_capacity": d.Get("read_capacity"), + "write_capacity": d.Get("write_capacity"), + }), + }) + if err != nil { + return err + } + if err := waitForDynamoDbTableToBeActive(d.Id(), d.Timeout(schema.TimeoutUpdate), conn); err != nil { + return fmt.Errorf("Error waiting for DynamoDB Table update: %s", err) + } } - if d.HasChange("read_capacity") || d.HasChange("write_capacity") { - req := &dynamodb.UpdateTableInput{ + if (d.HasChange("stream_enabled") || d.HasChange("stream_view_type")) && !d.IsNewResource() { + input := &dynamodb.UpdateTableInput{ TableName: aws.String(d.Id()), + StreamSpecification: &dynamodb.StreamSpecification{ + StreamEnabled: aws.Bool(d.Get("stream_enabled").(bool)), + StreamViewType: aws.String(d.Get("stream_view_type").(string)), + }, } - - throughput := &dynamodb.ProvisionedThroughput{ - ReadCapacityUnits: aws.Int64(int64(d.Get("read_capacity").(int))), - WriteCapacityUnits: aws.Int64(int64(d.Get("write_capacity").(int))), - } - req.ProvisionedThroughput = throughput - - _, err := dynamodbconn.UpdateTable(req) - + _, err := conn.UpdateTable(input) if err != nil { return err } - if err := waitForTableToBeActive(d.Id(), meta); err != nil { - return errwrap.Wrapf("Error waiting for Dynamo DB Table update: {{err}}", err) + if err := waitForDynamoDbTableToBeActive(d.Id(), d.Timeout(schema.TimeoutUpdate), conn); err != nil { + return fmt.Errorf("Error waiting for DynamoDB Table update: %s", err) } } - if d.HasChange("stream_enabled") || d.HasChange("stream_view_type") { - req := &dynamodb.UpdateTableInput{ - TableName: aws.String(d.Id()), - } - - req.StreamSpecification = &dynamodb.StreamSpecification{ - StreamEnabled: aws.Bool(d.Get("stream_enabled").(bool)), - StreamViewType: aws.String(d.Get("stream_view_type").(string)), - } - - _, err := dynamodbconn.UpdateTable(req) - - if err != nil { - return err - } - - if err := waitForTableToBeActive(d.Id(), meta); err != nil { - return errwrap.Wrapf("Error waiting for Dynamo DB Table update: {{err}}", err) - } - } - - if d.HasChange("global_secondary_index") { - log.Printf("[DEBUG] Changed GSI data") - req := &dynamodb.UpdateTableInput{ - TableName: aws.String(d.Id()), + if d.HasChange("global_secondary_index") && !d.IsNewResource() { + var attributes []*dynamodb.AttributeDefinition + if v, ok := d.GetOk("attribute"); ok { + attributes = expandDynamoDbAttributes(v.(*schema.Set).List()) } o, n := d.GetChange("global_secondary_index") + ops, err := diffDynamoDbGSI(o.(*schema.Set).List(), n.(*schema.Set).List()) + if err != nil { + return fmt.Errorf("Computing difference for global_secondary_index failed: %s", err) + } + log.Printf("[DEBUG] Updating global secondary indexes:\n%s", ops) - oldSet := o.(*schema.Set) - newSet := n.(*schema.Set) - - // Track old names so we can know which ones we need to just update based on - // capacity changes, terraform appears to only diff on the set hash, not the - // contents so we need to make sure we don't delete any indexes that we - // just want to update the capacity for - oldGsiNameSet := make(map[string]bool) - newGsiNameSet := make(map[string]bool) - - for _, gsidata := range oldSet.List() { - gsiName := gsidata.(map[string]interface{})["name"].(string) - oldGsiNameSet[gsiName] = true + input := &dynamodb.UpdateTableInput{ + TableName: aws.String(d.Id()), + AttributeDefinitions: attributes, } - for _, gsidata := range newSet.List() { - gsiName := gsidata.(map[string]interface{})["name"].(string) - newGsiNameSet[gsiName] = true - } - - // First determine what's new - for _, newgsidata := range newSet.List() { - updates := []*dynamodb.GlobalSecondaryIndexUpdate{} - newGsiName := newgsidata.(map[string]interface{})["name"].(string) - if _, exists := oldGsiNameSet[newGsiName]; !exists { - attributes := []*dynamodb.AttributeDefinition{} - gsidata := newgsidata.(map[string]interface{}) - gsi := createGSIFromData(&gsidata) - log.Printf("[DEBUG] Adding GSI %s", *gsi.IndexName) - update := &dynamodb.GlobalSecondaryIndexUpdate{ - Create: &dynamodb.CreateGlobalSecondaryIndexAction{ - IndexName: gsi.IndexName, - KeySchema: gsi.KeySchema, - ProvisionedThroughput: gsi.ProvisionedThroughput, - Projection: gsi.Projection, - }, - } - updates = append(updates, update) - - // Hash key is required, range key isn't - hashkey_type, err := getAttributeType(d, *gsi.KeySchema[0].AttributeName) - if err != nil { - return err - } - - attributes = append(attributes, &dynamodb.AttributeDefinition{ - AttributeName: gsi.KeySchema[0].AttributeName, - AttributeType: aws.String(hashkey_type), - }) - - // If there's a range key, there will be 2 elements in KeySchema - if len(gsi.KeySchema) == 2 { - rangekey_type, err := getAttributeType(d, *gsi.KeySchema[1].AttributeName) - if err != nil { - return err - } - - attributes = append(attributes, &dynamodb.AttributeDefinition{ - AttributeName: gsi.KeySchema[1].AttributeName, - AttributeType: aws.String(rangekey_type), - }) - } - - req.AttributeDefinitions = attributes - req.GlobalSecondaryIndexUpdates = updates - _, err = dynamodbconn.UpdateTable(req) - - if err != nil { - return err - } - - if err := waitForTableToBeActive(d.Id(), meta); err != nil { - return errwrap.Wrapf("Error waiting for Dynamo DB Table update: {{err}}", err) - } - - if err := waitForGSIToBeActive(d.Id(), *gsi.IndexName, meta); err != nil { - return errwrap.Wrapf("Error waiting for Dynamo DB GSIT to be active: {{err}}", err) - } - - } - } - - for _, oldgsidata := range oldSet.List() { - updates := []*dynamodb.GlobalSecondaryIndexUpdate{} - oldGsiName := oldgsidata.(map[string]interface{})["name"].(string) - if _, exists := newGsiNameSet[oldGsiName]; !exists { - gsidata := oldgsidata.(map[string]interface{}) - log.Printf("[DEBUG] Deleting GSI %s", gsidata["name"].(string)) - update := &dynamodb.GlobalSecondaryIndexUpdate{ - Delete: &dynamodb.DeleteGlobalSecondaryIndexAction{ - IndexName: aws.String(gsidata["name"].(string)), - }, - } - updates = append(updates, update) - - req.GlobalSecondaryIndexUpdates = updates - _, err := dynamodbconn.UpdateTable(req) - - if err != nil { - return err - } - - if err := waitForTableToBeActive(d.Id(), meta); err != nil { - return errwrap.Wrapf("Error waiting for Dynamo DB Table update: {{err}}", err) - } - } - } - } - - // Update any out-of-date read / write capacity - if gsiObjects, ok := d.GetOk("global_secondary_index"); ok { - gsiSet := gsiObjects.(*schema.Set) - if len(gsiSet.List()) > 0 { - log.Printf("Updating capacity as needed!") - - // We can only change throughput, but we need to make sure it's actually changed - tableDescription, err := dynamodbconn.DescribeTable(&dynamodb.DescribeTableInput{ - TableName: aws.String(d.Id()), - }) - + // Only 1 online index can be created or deleted simultaneously per table + for _, op := range ops { + input.GlobalSecondaryIndexUpdates = []*dynamodb.GlobalSecondaryIndexUpdate{op} + _, err := conn.UpdateTable(input) if err != nil { return err } - - table := tableDescription.Table - - for _, updatedgsidata := range gsiSet.List() { - updates := []*dynamodb.GlobalSecondaryIndexUpdate{} - gsidata := updatedgsidata.(map[string]interface{}) - gsiName := gsidata["name"].(string) - gsiWriteCapacity := gsidata["write_capacity"].(int) - gsiReadCapacity := gsidata["read_capacity"].(int) - - log.Printf("[DEBUG] Updating GSI %s", gsiName) - gsi, err := getGlobalSecondaryIndex(gsiName, table.GlobalSecondaryIndexes) - - if err != nil { - return err + if op.Create != nil { + idxName := *op.Create.IndexName + if err := waitForDynamoDbGSIToBeActive(d.Id(), idxName, conn); err != nil { + return fmt.Errorf("Error waiting for DynamoDB GSI %q to be created: %s", idxName, err) } - - capacityUpdated := false - - if int64(gsiReadCapacity) != *gsi.ProvisionedThroughput.ReadCapacityUnits || - int64(gsiWriteCapacity) != *gsi.ProvisionedThroughput.WriteCapacityUnits { - capacityUpdated = true + } + if op.Update != nil { + idxName := *op.Update.IndexName + if err := waitForDynamoDbGSIToBeActive(d.Id(), idxName, conn); err != nil { + return fmt.Errorf("Error waiting for DynamoDB GSI %q to be updated: %s", idxName, err) } - - if capacityUpdated { - update := &dynamodb.GlobalSecondaryIndexUpdate{ - Update: &dynamodb.UpdateGlobalSecondaryIndexAction{ - IndexName: aws.String(gsidata["name"].(string)), - ProvisionedThroughput: &dynamodb.ProvisionedThroughput{ - WriteCapacityUnits: aws.Int64(int64(gsiWriteCapacity)), - ReadCapacityUnits: aws.Int64(int64(gsiReadCapacity)), - }, - }, - } - updates = append(updates, update) - - } - - if len(updates) > 0 { - - req := &dynamodb.UpdateTableInput{ - TableName: aws.String(d.Id()), - } - - req.GlobalSecondaryIndexUpdates = updates - - log.Printf("[DEBUG] Updating GSI read / write capacity on %s", d.Id()) - _, err := dynamodbconn.UpdateTable(req) - - if err != nil { - log.Printf("[DEBUG] Error updating table: %s", err) - return err - } - - if err := waitForGSIToBeActive(d.Id(), gsiName, meta); err != nil { - return errwrap.Wrapf("Error waiting for Dynamo DB GSI to be active: {{err}}", err) - } + } + if op.Delete != nil { + idxName := *op.Delete.IndexName + if err := waitForDynamoDbGSIToBeDeleted(d.Id(), idxName, conn); err != nil { + return fmt.Errorf("Error waiting for DynamoDB GSI %q to be deleted: %s", idxName, err) } } } + if err := waitForDynamoDbTableToBeActive(d.Id(), d.Timeout(schema.TimeoutUpdate), conn); err != nil { + return fmt.Errorf("Error waiting for DynamoDB Table op: %s", err) + } } if d.HasChange("ttl") { - if err := updateTimeToLive(d, meta); err != nil { + if err := updateDynamoDbTimeToLive(d, conn); err != nil { log.Printf("[DEBUG] Error updating table TimeToLive: %s", err) return err } } - // Update tags - if err := setTagsDynamoDb(dynamodbconn, d); err != nil { - return err + if d.HasChange("tags") { + if err := setTagsDynamoDb(conn, d); err != nil { + return err + } } return resourceAwsDynamoDbTableRead(d, meta) } -func updateTimeToLive(d *schema.ResourceData, meta interface{}) error { - dynamodbconn := meta.(*AWSClient).dynamodbconn - - if ttl, ok := d.GetOk("ttl"); ok { - - timeToLiveSet := ttl.(*schema.Set) - - spec := &dynamodb.TimeToLiveSpecification{} - - timeToLive := timeToLiveSet.List()[0].(map[string]interface{}) - spec.AttributeName = aws.String(timeToLive["attribute_name"].(string)) - spec.Enabled = aws.Bool(timeToLive["enabled"].(bool)) - - req := &dynamodb.UpdateTimeToLiveInput{ - TableName: aws.String(d.Id()), - TimeToLiveSpecification: spec, - } - - _, err := dynamodbconn.UpdateTimeToLive(req) - - if err != nil { - // If ttl was not set within the .tf file before and has now been added we still run this command to update - // But there has been no change so lets continue - if awsErr, ok := err.(awserr.Error); ok && awsErr.Code() == "ValidationException" && awsErr.Message() == "TimeToLive is already disabled" { - return nil - } - log.Printf("[DEBUG] Error updating TimeToLive on table: %s", err) - return err - } - - log.Printf("[DEBUG] Updated TimeToLive on table") - - if err := waitForTimeToLiveUpdateToBeCompleted(d.Id(), timeToLive["enabled"].(bool), meta); err != nil { - return errwrap.Wrapf("Error waiting for Dynamo DB TimeToLive to be updated: {{err}}", err) - } - } - - return nil -} - func resourceAwsDynamoDbTableRead(d *schema.ResourceData, meta interface{}) error { - dynamodbconn := meta.(*AWSClient).dynamodbconn - log.Printf("[DEBUG] Loading data for DynamoDB table '%s'", d.Id()) - req := &dynamodb.DescribeTableInput{ - TableName: aws.String(d.Id()), - } + conn := meta.(*AWSClient).dynamodbconn - result, err := dynamodbconn.DescribeTable(req) + result, err := conn.DescribeTable(&dynamodb.DescribeTableInput{ + TableName: aws.String(d.Id()), + }) if err != nil { - if awsErr, ok := err.(awserr.Error); ok && awsErr.Code() == "ResourceNotFoundException" { + if isAWSErr(err, dynamodb.ErrCodeResourceNotFoundException, "") { log.Printf("[WARN] Dynamodb Table (%s) not found, error code (404)", d.Id()) d.SetId("") return nil @@ -711,444 +399,265 @@ func resourceAwsDynamoDbTableRead(d *schema.ResourceData, meta interface{}) erro return err } - return flattenAwsDynamoDbTableResource(d, meta, result.Table) -} - -func flattenAwsDynamoDbTableResource(d *schema.ResourceData, meta interface{}, table *dynamodb.TableDescription) error { - dynamodbconn := meta.(*AWSClient).dynamodbconn - - d.Set("write_capacity", table.ProvisionedThroughput.WriteCapacityUnits) - d.Set("read_capacity", table.ProvisionedThroughput.ReadCapacityUnits) - - attributes := []interface{}{} - for _, attrdef := range table.AttributeDefinitions { - attribute := map[string]string{ - "name": *attrdef.AttributeName, - "type": *attrdef.AttributeType, - } - attributes = append(attributes, attribute) - log.Printf("[DEBUG] Added Attribute: %s", attribute["name"]) - } - - d.Set("attribute", attributes) - d.Set("name", table.TableName) - - for _, attribute := range table.KeySchema { - if *attribute.KeyType == "HASH" { - d.Set("hash_key", attribute.AttributeName) - } - - if *attribute.KeyType == "RANGE" { - d.Set("range_key", attribute.AttributeName) - } - } - - lsiList := make([]map[string]interface{}, 0, len(table.LocalSecondaryIndexes)) - for _, lsiObject := range table.LocalSecondaryIndexes { - lsi := map[string]interface{}{ - "name": *lsiObject.IndexName, - "projection_type": *lsiObject.Projection.ProjectionType, - } - - for _, attribute := range lsiObject.KeySchema { - - if *attribute.KeyType == "RANGE" { - lsi["range_key"] = *attribute.AttributeName - } - } - nkaList := make([]string, len(lsiObject.Projection.NonKeyAttributes)) - for _, nka := range lsiObject.Projection.NonKeyAttributes { - nkaList = append(nkaList, *nka) - } - lsi["non_key_attributes"] = nkaList - - lsiList = append(lsiList, lsi) - } - - err := d.Set("local_secondary_index", lsiList) + err = flattenAwsDynamoDbTableResource(d, result.Table) if err != nil { return err } - gsiList := make([]map[string]interface{}, 0, len(table.GlobalSecondaryIndexes)) - for _, gsiObject := range table.GlobalSecondaryIndexes { - gsi := map[string]interface{}{ - "write_capacity": *gsiObject.ProvisionedThroughput.WriteCapacityUnits, - "read_capacity": *gsiObject.ProvisionedThroughput.ReadCapacityUnits, - "name": *gsiObject.IndexName, - } - - for _, attribute := range gsiObject.KeySchema { - if *attribute.KeyType == "HASH" { - gsi["hash_key"] = *attribute.AttributeName - } - - if *attribute.KeyType == "RANGE" { - gsi["range_key"] = *attribute.AttributeName - } - } - - gsi["projection_type"] = *(gsiObject.Projection.ProjectionType) - - nonKeyAttrs := make([]string, 0, len(gsiObject.Projection.NonKeyAttributes)) - for _, nonKeyAttr := range gsiObject.Projection.NonKeyAttributes { - nonKeyAttrs = append(nonKeyAttrs, *nonKeyAttr) - } - gsi["non_key_attributes"] = nonKeyAttrs - - gsiList = append(gsiList, gsi) - log.Printf("[DEBUG] Added GSI: %s - Read: %d / Write: %d", gsi["name"], gsi["read_capacity"], gsi["write_capacity"]) - } - - if table.StreamSpecification != nil { - d.Set("stream_view_type", table.StreamSpecification.StreamViewType) - d.Set("stream_enabled", table.StreamSpecification.StreamEnabled) - d.Set("stream_arn", table.LatestStreamArn) - d.Set("stream_label", table.LatestStreamLabel) - } - - err = d.Set("global_secondary_index", gsiList) - if err != nil { - return err - } - - d.Set("arn", table.TableArn) - - timeToLiveReq := &dynamodb.DescribeTimeToLiveInput{ + ttlOut, err := conn.DescribeTimeToLive(&dynamodb.DescribeTimeToLiveInput{ TableName: aws.String(d.Id()), - } - timeToLiveOutput, err := dynamodbconn.DescribeTimeToLive(timeToLiveReq) + }) if err != nil { return err } - - if timeToLiveOutput.TimeToLiveDescription != nil && timeToLiveOutput.TimeToLiveDescription.AttributeName != nil { - timeToLiveList := []interface{}{ - map[string]interface{}{ - "attribute_name": *timeToLiveOutput.TimeToLiveDescription.AttributeName, - "enabled": (*timeToLiveOutput.TimeToLiveDescription.TimeToLiveStatus == dynamodb.TimeToLiveStatusEnabled), - }, - } - err := d.Set("ttl", timeToLiveList) + if ttlOut.TimeToLiveDescription != nil { + err := d.Set("ttl", flattenDynamoDbTtl(ttlOut.TimeToLiveDescription)) if err != nil { return err } - - log.Printf("[DEBUG] Loaded TimeToLive data for DynamoDB table '%s'", d.Id()) } - tags, err := readTableTags(d, meta) + tags, err := readDynamoDbTableTags(d.Get("arn").(string), conn) if err != nil { return err } - if len(tags) != 0 { - d.Set("tags", tags) - } + d.Set("tags", tags) return nil } func resourceAwsDynamoDbTableDelete(d *schema.ResourceData, meta interface{}) error { - dynamodbconn := meta.(*AWSClient).dynamodbconn + conn := meta.(*AWSClient).dynamodbconn log.Printf("[DEBUG] DynamoDB delete table: %s", d.Id()) - err := resource.Retry(d.Timeout(schema.TimeoutDelete), func() *resource.RetryError { - _, err := dynamodbconn.DeleteTable(&dynamodb.DeleteTableInput{ - TableName: aws.String(d.Id()), - }) - if err != nil { - // Table is already deleted - if isAWSErr(err, dynamodb.ErrCodeResourceNotFoundException, "Requested resource not found: Table: ") { - return nil - } - // This logic handles multiple scenarios in the DynamoDB API: - // 1. Updating a table immediately before deletion may return: - // ResourceInUseException: Attempt to change a resource which is still in use: Table is being updated: - // 2. Removing a table from a DynamoDB global table may return: - // ResourceInUseException: Attempt to change a resource which is still in use: Table is being deleted: - if isAWSErr(err, dynamodb.ErrCodeResourceInUseException, "") { - return resource.RetryableError(err) - } - // Unknown error - return resource.NonRetryableError(err) - } - - return nil + _, err := conn.DeleteTable(&dynamodb.DeleteTableInput{ + TableName: aws.String(d.Id()), }) - - // check error from retry if err != nil { + if isAWSErr(err, dynamodb.ErrCodeResourceNotFoundException, "Requested resource not found: Table: ") { + return nil + } return err } - log.Println("[INFO] Waiting for DynamoDB Table to be destroyed") stateConf := &resource.StateChangeConf{ Pending: []string{ dynamodb.TableStatusActive, - dynamodb.TableStatusCreating, dynamodb.TableStatusDeleting, - dynamodb.TableStatusUpdating, }, - Target: []string{}, - Refresh: resourceAwsDynamoDbTableStateRefreshFunc(d, meta), - Timeout: d.Timeout(schema.TimeoutDelete), - MinTimeout: 10 * time.Second, + Target: []string{}, + Timeout: d.Timeout(schema.TimeoutDelete), + Refresh: func() (interface{}, string, error) { + out, err := conn.DescribeTable(&dynamodb.DescribeTableInput{ + TableName: aws.String(d.Id()), + }) + if err != nil { + if isAWSErr(err, dynamodb.ErrCodeResourceNotFoundException, "") { + return nil, "", nil + } + + return 42, "", err + } + table := out.Table + + return table, *table.TableStatus, nil + }, } _, err = stateConf.WaitForState() return err } -func resourceAwsDynamoDbTableRetrieve(d *schema.ResourceData, meta interface{}) (*dynamodb.TableDescription, error) { - dynamodbconn := meta.(*AWSClient).dynamodbconn +func updateDynamoDbTimeToLive(d *schema.ResourceData, conn *dynamodb.DynamoDB) error { + toBeEnabled := false + attributeName := "" - input := &dynamodb.DescribeTableInput{ - TableName: aws.String(d.Id()), + o, n := d.GetChange("ttl") + newTtl, ok := n.(*schema.Set) + blockExists := ok && newTtl.Len() > 0 + + if blockExists { + ttlList := newTtl.List() + ttlMap := ttlList[0].(map[string]interface{}) + attributeName = ttlMap["attribute_name"].(string) + toBeEnabled = ttlMap["enabled"].(bool) + + } else if !d.IsNewResource() { + oldTtlList := o.(*schema.Set).List() + ttlMap := oldTtlList[0].(map[string]interface{}) + attributeName = ttlMap["attribute_name"].(string) + toBeEnabled = false } - log.Printf("[DEBUG] Retrieving DynamoDB Table: %#v", input) - - output, err := dynamodbconn.DescribeTable(input) - if err != nil { - if isAWSErr(err, dynamodb.ErrCodeResourceNotFoundException, "") { - return nil, nil - } - return nil, fmt.Errorf("Error retrieving DynamoDB Table: %s", err) - } - - return output.Table, nil -} - -func resourceAwsDynamoDbTableStateRefreshFunc( - d *schema.ResourceData, meta interface{}) resource.StateRefreshFunc { - return func() (interface{}, string, error) { - td, err := resourceAwsDynamoDbTableRetrieve(d, meta) - + if attributeName != "" { + _, err := conn.UpdateTimeToLive(&dynamodb.UpdateTimeToLiveInput{ + TableName: aws.String(d.Id()), + TimeToLiveSpecification: &dynamodb.TimeToLiveSpecification{ + AttributeName: aws.String(attributeName), + Enabled: aws.Bool(toBeEnabled), + }, + }) if err != nil { - log.Printf("Error on retrieving DynamoDB Table when waiting: %s", err) - return nil, "", err - } - - if td == nil { - return nil, "", nil - } - - if td.TableStatus != nil { - log.Printf("[DEBUG] Status for DynamoDB Table %s: %s", d.Id(), *td.TableStatus) - } - - return td, *td.TableStatus, nil - } -} - -func createGSIFromData(data *map[string]interface{}) dynamodb.GlobalSecondaryIndex { - - projection := &dynamodb.Projection{ - ProjectionType: aws.String((*data)["projection_type"].(string)), - } - - if (*data)["projection_type"] == "INCLUDE" { - non_key_attributes := []*string{} - for _, attr := range (*data)["non_key_attributes"].([]interface{}) { - non_key_attributes = append(non_key_attributes, aws.String(attr.(string))) - } - projection.NonKeyAttributes = non_key_attributes - } - - writeCapacity := (*data)["write_capacity"].(int) - readCapacity := (*data)["read_capacity"].(int) - - key_schema := []*dynamodb.KeySchemaElement{ - { - AttributeName: aws.String((*data)["hash_key"].(string)), - KeyType: aws.String("HASH"), - }, - } - - range_key_name := (*data)["range_key"] - if range_key_name != "" { - range_key_element := &dynamodb.KeySchemaElement{ - AttributeName: aws.String(range_key_name.(string)), - KeyType: aws.String("RANGE"), - } - - key_schema = append(key_schema, range_key_element) - } - - return dynamodb.GlobalSecondaryIndex{ - IndexName: aws.String((*data)["name"].(string)), - KeySchema: key_schema, - Projection: projection, - ProvisionedThroughput: &dynamodb.ProvisionedThroughput{ - WriteCapacityUnits: aws.Int64(int64(writeCapacity)), - ReadCapacityUnits: aws.Int64(int64(readCapacity)), - }, - } -} - -func getGlobalSecondaryIndex(indexName string, indexList []*dynamodb.GlobalSecondaryIndexDescription) (*dynamodb.GlobalSecondaryIndexDescription, error) { - for _, gsi := range indexList { - if *gsi.IndexName == indexName { - return gsi, nil - } - } - - return &dynamodb.GlobalSecondaryIndexDescription{}, fmt.Errorf("Can't find a GSI by that name...") -} - -func getAttributeType(d *schema.ResourceData, attributeName string) (string, error) { - if attributedata, ok := d.GetOk("attribute"); ok { - attributeSet := attributedata.(*schema.Set) - for _, attribute := range attributeSet.List() { - attr := attribute.(map[string]interface{}) - if attr["name"] == attributeName { - return attr["type"].(string), nil + if isAWSErr(err, "ValidationException", "TimeToLive is already disabled") { + return nil } - } - } - - return "", fmt.Errorf("Unable to find an attribute named %s", attributeName) -} - -func waitForGSIToBeActive(tableName string, gsiName string, meta interface{}) error { - dynamodbconn := meta.(*AWSClient).dynamodbconn - req := &dynamodb.DescribeTableInput{ - TableName: aws.String(tableName), - } - - activeIndex := false - - for activeIndex == false { - - result, err := dynamodbconn.DescribeTable(req) - - if err != nil { return err } - table := result.Table - var targetGSI *dynamodb.GlobalSecondaryIndexDescription = nil - - for _, gsi := range table.GlobalSecondaryIndexes { - if *gsi.IndexName == gsiName { - targetGSI = gsi - } - } - - if targetGSI != nil { - activeIndex = *targetGSI.IndexStatus == "ACTIVE" - - if !activeIndex { - log.Printf("[DEBUG] Sleeping for 5 seconds for %s GSI to become active", gsiName) - time.Sleep(5 * time.Second) - } - } else { - log.Printf("[DEBUG] GSI %s did not exist, giving up", gsiName) - break + err = waitForDynamoDbTtlUpdateToBeCompleted(d.Id(), toBeEnabled, conn) + if err != nil { + return fmt.Errorf("Error waiting for DynamoDB TimeToLive to be updated: %s", err) } } return nil - } -func waitForTableToBeActive(tableName string, meta interface{}) error { - dynamodbconn := meta.(*AWSClient).dynamodbconn - req := &dynamodb.DescribeTableInput{ - TableName: aws.String(tableName), - } - - activeState := false - - for activeState == false { - result, err := dynamodbconn.DescribeTable(req) - - if err != nil { - return err - } - - activeState = *result.Table.TableStatus == "ACTIVE" - - // Wait for a few seconds - if !activeState { - log.Printf("[DEBUG] Sleeping for 5 seconds for table to become active") - time.Sleep(5 * time.Second) - } - } - - return nil - -} - -func waitForTimeToLiveUpdateToBeCompleted(tableName string, enabled bool, meta interface{}) error { - dynamodbconn := meta.(*AWSClient).dynamodbconn - req := &dynamodb.DescribeTimeToLiveInput{ - TableName: aws.String(tableName), - } - - stateMatched := false - for stateMatched == false { - result, err := dynamodbconn.DescribeTimeToLive(req) - - if err != nil { - return err - } - - if enabled { - stateMatched = *result.TimeToLiveDescription.TimeToLiveStatus == dynamodb.TimeToLiveStatusEnabled - } else { - stateMatched = *result.TimeToLiveDescription.TimeToLiveStatus == dynamodb.TimeToLiveStatusDisabled - } - - // Wait for a few seconds, this may take a long time... - if !stateMatched { - log.Printf("[DEBUG] Sleeping for 5 seconds before checking TimeToLive state again") - time.Sleep(5 * time.Second) - } - } - - log.Printf("[DEBUG] TimeToLive update complete") - - return nil - -} - -func createTableTags(d *schema.ResourceData, meta interface{}) error { - // DynamoDB Table has to be in the ACTIVE state in order to tag the resource - if err := waitForTableToBeActive(d.Id(), meta); err != nil { - return err - } - tags := d.Get("tags").(map[string]interface{}) - arn := d.Get("arn").(string) - dynamodbconn := meta.(*AWSClient).dynamodbconn - req := &dynamodb.TagResourceInput{ +func readDynamoDbTableTags(arn string, conn *dynamodb.DynamoDB) (map[string]string, error) { + output, err := conn.ListTagsOfResource(&dynamodb.ListTagsOfResourceInput{ ResourceArn: aws.String(arn), - Tags: tagsFromMapDynamoDb(tags), - } - _, err := dynamodbconn.TagResource(req) - if err != nil { - return fmt.Errorf("Error tagging dynamodb resource: %s", err) - } - return nil -} - -func readTableTags(d *schema.ResourceData, meta interface{}) (map[string]string, error) { - if err := waitForTableToBeActive(d.Id(), meta); err != nil { - return nil, err - } - arn := d.Get("arn").(string) - //result := make(map[string]string) - - dynamodbconn := meta.(*AWSClient).dynamodbconn - req := &dynamodb.ListTagsOfResourceInput{ - ResourceArn: aws.String(arn), - } - - output, err := dynamodbconn.ListTagsOfResource(req) + }) if err != nil { return nil, fmt.Errorf("Error reading tags from dynamodb resource: %s", err) } + result := tagsToMapDynamoDb(output.Tags) - // TODO Read NextToken if avail + + // TODO Read NextToken if available + return result, nil } + +// Waiters + +func waitForDynamoDbGSIToBeActive(tableName string, gsiName string, conn *dynamodb.DynamoDB) error { + stateConf := &resource.StateChangeConf{ + Pending: []string{ + dynamodb.IndexStatusCreating, + dynamodb.IndexStatusUpdating, + }, + Target: []string{dynamodb.IndexStatusActive}, + Timeout: 10 * time.Minute, + Refresh: func() (interface{}, string, error) { + result, err := conn.DescribeTable(&dynamodb.DescribeTableInput{ + TableName: aws.String(tableName), + }) + if err != nil { + return 42, "", err + } + + table := result.Table + + // Find index + var targetGSI *dynamodb.GlobalSecondaryIndexDescription + for _, gsi := range table.GlobalSecondaryIndexes { + if *gsi.IndexName == gsiName { + targetGSI = gsi + } + } + + if targetGSI != nil { + return table, *targetGSI.IndexStatus, nil + } + + return nil, "", nil + }, + } + _, err := stateConf.WaitForState() + return err +} + +func waitForDynamoDbGSIToBeDeleted(tableName string, gsiName string, conn *dynamodb.DynamoDB) error { + stateConf := &resource.StateChangeConf{ + Pending: []string{ + dynamodb.IndexStatusActive, + dynamodb.IndexStatusDeleting, + }, + Target: []string{}, + Timeout: 10 * time.Minute, + Refresh: func() (interface{}, string, error) { + result, err := conn.DescribeTable(&dynamodb.DescribeTableInput{ + TableName: aws.String(tableName), + }) + if err != nil { + return 42, "", err + } + + table := result.Table + + // Find index + var targetGSI *dynamodb.GlobalSecondaryIndexDescription + for _, gsi := range table.GlobalSecondaryIndexes { + if *gsi.IndexName == gsiName { + targetGSI = gsi + } + } + + if targetGSI == nil { + return nil, "", nil + } + + return targetGSI, *targetGSI.IndexStatus, nil + }, + } + _, err := stateConf.WaitForState() + return err +} + +func waitForDynamoDbTableToBeActive(tableName string, timeout time.Duration, conn *dynamodb.DynamoDB) error { + stateConf := &resource.StateChangeConf{ + Pending: []string{dynamodb.TableStatusCreating, dynamodb.TableStatusUpdating}, + Target: []string{dynamodb.TableStatusActive}, + Timeout: timeout, + Refresh: func() (interface{}, string, error) { + result, err := conn.DescribeTable(&dynamodb.DescribeTableInput{ + TableName: aws.String(tableName), + }) + if err != nil { + return 42, "", err + } + + return result, *result.Table.TableStatus, nil + }, + } + _, err := stateConf.WaitForState() + + return err +} + +func waitForDynamoDbTtlUpdateToBeCompleted(tableName string, toEnable bool, conn *dynamodb.DynamoDB) error { + pending := []string{ + dynamodb.TimeToLiveStatusEnabled, + dynamodb.TimeToLiveStatusDisabling, + } + target := []string{dynamodb.TimeToLiveStatusDisabled} + + if toEnable { + pending = []string{ + dynamodb.TimeToLiveStatusDisabled, + dynamodb.TimeToLiveStatusEnabling, + } + target = []string{dynamodb.TimeToLiveStatusEnabled} + } + + stateConf := &resource.StateChangeConf{ + Pending: pending, + Target: target, + Timeout: 10 * time.Second, + Refresh: func() (interface{}, string, error) { + result, err := conn.DescribeTimeToLive(&dynamodb.DescribeTimeToLiveInput{ + TableName: aws.String(tableName), + }) + if err != nil { + return 42, "", err + } + + ttlDesc := result.TimeToLiveDescription + + return result, *ttlDesc.TimeToLiveStatus, nil + }, + } + + _, err := stateConf.WaitForState() + return err +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_elastic_beanstalk_application.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_elastic_beanstalk_application.go index cbc589db8..fdb6c199b 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_elastic_beanstalk_application.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_elastic_beanstalk_application.go @@ -99,14 +99,20 @@ func resourceAwsElasticBeanstalkApplicationRead(d *schema.ResourceData, meta int } if app == nil { + err = fmt.Errorf("Elastic Beanstalk Application %q not found", d.Id()) if d.IsNewResource() { - return resource.RetryableError(fmt.Errorf("Elastic Beanstalk Application %q not found.", d.Id())) + return resource.RetryableError(err) } return resource.NonRetryableError(err) } return nil }) if err != nil { + if app == nil { + log.Printf("[WARN] %s, removing from state", err) + d.SetId("") + return nil + } return err } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/structure.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/structure.go index bc99f8bed..239d0bdc7 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/structure.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/structure.go @@ -19,6 +19,7 @@ import ( "github.com/aws/aws-sdk-go/service/cognitoidentityprovider" "github.com/aws/aws-sdk-go/service/configservice" "github.com/aws/aws-sdk-go/service/directoryservice" + "github.com/aws/aws-sdk-go/service/dynamodb" "github.com/aws/aws-sdk-go/service/ec2" "github.com/aws/aws-sdk-go/service/ecs" "github.com/aws/aws-sdk-go/service/elasticache" @@ -36,6 +37,7 @@ import ( "github.com/beevik/etree" "github.com/hashicorp/terraform/helper/schema" "github.com/hashicorp/terraform/helper/structure" + "github.com/mitchellh/copystructure" "gopkg.in/yaml.v2" ) @@ -3074,3 +3076,310 @@ func flattenMqBrokerInstances(instances []*mq.BrokerInstance) []interface{} { return l } + +func diffDynamoDbGSI(oldGsi, newGsi []interface{}) (ops []*dynamodb.GlobalSecondaryIndexUpdate, e error) { + // Transform slices into maps + oldGsis := make(map[string]interface{}) + for _, gsidata := range oldGsi { + m := gsidata.(map[string]interface{}) + oldGsis[m["name"].(string)] = m + } + newGsis := make(map[string]interface{}) + for _, gsidata := range newGsi { + m := gsidata.(map[string]interface{}) + newGsis[m["name"].(string)] = m + } + + for _, data := range newGsi { + newMap := data.(map[string]interface{}) + newName := newMap["name"].(string) + + if _, exists := oldGsis[newName]; !exists { + m := data.(map[string]interface{}) + idxName := m["name"].(string) + + ops = append(ops, &dynamodb.GlobalSecondaryIndexUpdate{ + Create: &dynamodb.CreateGlobalSecondaryIndexAction{ + IndexName: aws.String(idxName), + KeySchema: expandDynamoDbKeySchema(m), + ProvisionedThroughput: expandDynamoDbProvisionedThroughput(m), + Projection: expandDynamoDbProjection(m), + }, + }) + } + } + + for _, data := range oldGsi { + oldMap := data.(map[string]interface{}) + oldName := oldMap["name"].(string) + + newData, exists := newGsis[oldName] + if exists { + newMap := newData.(map[string]interface{}) + idxName := newMap["name"].(string) + + oldWriteCapacity, oldReadCapacity := oldMap["write_capacity"].(int), oldMap["read_capacity"].(int) + newWriteCapacity, newReadCapacity := newMap["write_capacity"].(int), newMap["read_capacity"].(int) + capacityChanged := (oldWriteCapacity != newWriteCapacity || oldReadCapacity != newReadCapacity) + + oldAttributes, err := stripCapacityAttributes(oldMap) + if err != nil { + e = err + return + } + newAttributes, err := stripCapacityAttributes(newMap) + if err != nil { + e = err + return + } + otherAttributesChanged := !reflect.DeepEqual(oldAttributes, newAttributes) + + if capacityChanged && !otherAttributesChanged { + update := &dynamodb.GlobalSecondaryIndexUpdate{ + Update: &dynamodb.UpdateGlobalSecondaryIndexAction{ + IndexName: aws.String(idxName), + ProvisionedThroughput: expandDynamoDbProvisionedThroughput(newMap), + }, + } + ops = append(ops, update) + } else if otherAttributesChanged { + // Other attributes cannot be updated + ops = append(ops, &dynamodb.GlobalSecondaryIndexUpdate{ + Delete: &dynamodb.DeleteGlobalSecondaryIndexAction{ + IndexName: aws.String(idxName), + }, + }) + + ops = append(ops, &dynamodb.GlobalSecondaryIndexUpdate{ + Create: &dynamodb.CreateGlobalSecondaryIndexAction{ + IndexName: aws.String(idxName), + KeySchema: expandDynamoDbKeySchema(newMap), + ProvisionedThroughput: expandDynamoDbProvisionedThroughput(newMap), + Projection: expandDynamoDbProjection(newMap), + }, + }) + } + } else { + idxName := oldName + ops = append(ops, &dynamodb.GlobalSecondaryIndexUpdate{ + Delete: &dynamodb.DeleteGlobalSecondaryIndexAction{ + IndexName: aws.String(idxName), + }, + }) + } + } + return +} + +func stripCapacityAttributes(in map[string]interface{}) (map[string]interface{}, error) { + mapCopy, err := copystructure.Copy(in) + if err != nil { + return nil, err + } + + m := mapCopy.(map[string]interface{}) + + delete(m, "write_capacity") + delete(m, "read_capacity") + + return m, nil +} + +// Expanders + flatteners + +func flattenDynamoDbTtl(ttlDesc *dynamodb.TimeToLiveDescription) []interface{} { + m := map[string]interface{}{} + if ttlDesc.AttributeName != nil { + m["attribute_name"] = *ttlDesc.AttributeName + if ttlDesc.TimeToLiveStatus != nil { + m["enabled"] = (*ttlDesc.TimeToLiveStatus == dynamodb.TimeToLiveStatusEnabled) + } + } + if len(m) > 0 { + return []interface{}{m} + } + + return []interface{}{} +} + +func flattenAwsDynamoDbTableResource(d *schema.ResourceData, table *dynamodb.TableDescription) error { + d.Set("write_capacity", table.ProvisionedThroughput.WriteCapacityUnits) + d.Set("read_capacity", table.ProvisionedThroughput.ReadCapacityUnits) + + attributes := []interface{}{} + for _, attrdef := range table.AttributeDefinitions { + attribute := map[string]string{ + "name": *attrdef.AttributeName, + "type": *attrdef.AttributeType, + } + attributes = append(attributes, attribute) + } + + d.Set("attribute", attributes) + d.Set("name", table.TableName) + + for _, attribute := range table.KeySchema { + if *attribute.KeyType == dynamodb.KeyTypeHash { + d.Set("hash_key", attribute.AttributeName) + } + + if *attribute.KeyType == dynamodb.KeyTypeRange { + d.Set("range_key", attribute.AttributeName) + } + } + + lsiList := make([]map[string]interface{}, 0, len(table.LocalSecondaryIndexes)) + for _, lsiObject := range table.LocalSecondaryIndexes { + lsi := map[string]interface{}{ + "name": *lsiObject.IndexName, + "projection_type": *lsiObject.Projection.ProjectionType, + } + + for _, attribute := range lsiObject.KeySchema { + + if *attribute.KeyType == dynamodb.KeyTypeRange { + lsi["range_key"] = *attribute.AttributeName + } + } + nkaList := make([]string, len(lsiObject.Projection.NonKeyAttributes)) + for _, nka := range lsiObject.Projection.NonKeyAttributes { + nkaList = append(nkaList, *nka) + } + lsi["non_key_attributes"] = nkaList + + lsiList = append(lsiList, lsi) + } + + err := d.Set("local_secondary_index", lsiList) + if err != nil { + return err + } + + gsiList := make([]map[string]interface{}, 0, len(table.GlobalSecondaryIndexes)) + for _, gsiObject := range table.GlobalSecondaryIndexes { + gsi := map[string]interface{}{ + "write_capacity": *gsiObject.ProvisionedThroughput.WriteCapacityUnits, + "read_capacity": *gsiObject.ProvisionedThroughput.ReadCapacityUnits, + "name": *gsiObject.IndexName, + } + + for _, attribute := range gsiObject.KeySchema { + if *attribute.KeyType == dynamodb.KeyTypeHash { + gsi["hash_key"] = *attribute.AttributeName + } + + if *attribute.KeyType == dynamodb.KeyTypeRange { + gsi["range_key"] = *attribute.AttributeName + } + } + + gsi["projection_type"] = *(gsiObject.Projection.ProjectionType) + + nonKeyAttrs := make([]string, 0, len(gsiObject.Projection.NonKeyAttributes)) + for _, nonKeyAttr := range gsiObject.Projection.NonKeyAttributes { + nonKeyAttrs = append(nonKeyAttrs, *nonKeyAttr) + } + gsi["non_key_attributes"] = nonKeyAttrs + + gsiList = append(gsiList, gsi) + } + + if table.StreamSpecification != nil { + d.Set("stream_view_type", table.StreamSpecification.StreamViewType) + d.Set("stream_enabled", table.StreamSpecification.StreamEnabled) + d.Set("stream_arn", table.LatestStreamArn) + d.Set("stream_label", table.LatestStreamLabel) + } + + err = d.Set("global_secondary_index", gsiList) + if err != nil { + return err + } + + d.Set("arn", table.TableArn) + + return nil +} + +func expandDynamoDbAttributes(cfg []interface{}) []*dynamodb.AttributeDefinition { + attributes := make([]*dynamodb.AttributeDefinition, len(cfg), len(cfg)) + for i, attribute := range cfg { + attr := attribute.(map[string]interface{}) + attributes[i] = &dynamodb.AttributeDefinition{ + AttributeName: aws.String(attr["name"].(string)), + AttributeType: aws.String(attr["type"].(string)), + } + } + return attributes +} + +// TODO: Get rid of keySchemaM - the user should just explicitely define +// this in the config, we shouldn't magically be setting it like this. +// Removal will however require config change, hence BC. :/ +func expandDynamoDbLocalSecondaryIndexes(cfg []interface{}, keySchemaM map[string]interface{}) []*dynamodb.LocalSecondaryIndex { + indexes := make([]*dynamodb.LocalSecondaryIndex, len(cfg), len(cfg)) + for i, lsi := range cfg { + m := lsi.(map[string]interface{}) + idxName := m["name"].(string) + + // TODO: See https://github.com/terraform-providers/terraform-provider-aws/issues/3176 + if _, ok := m["hash_key"]; !ok { + m["hash_key"] = keySchemaM["hash_key"] + } + + indexes[i] = &dynamodb.LocalSecondaryIndex{ + IndexName: aws.String(idxName), + KeySchema: expandDynamoDbKeySchema(m), + Projection: expandDynamoDbProjection(m), + } + } + return indexes +} + +func expandDynamoDbGlobalSecondaryIndex(data map[string]interface{}) *dynamodb.GlobalSecondaryIndex { + return &dynamodb.GlobalSecondaryIndex{ + IndexName: aws.String(data["name"].(string)), + KeySchema: expandDynamoDbKeySchema(data), + Projection: expandDynamoDbProjection(data), + ProvisionedThroughput: expandDynamoDbProvisionedThroughput(data), + } +} + +func expandDynamoDbProvisionedThroughput(data map[string]interface{}) *dynamodb.ProvisionedThroughput { + return &dynamodb.ProvisionedThroughput{ + WriteCapacityUnits: aws.Int64(int64(data["write_capacity"].(int))), + ReadCapacityUnits: aws.Int64(int64(data["read_capacity"].(int))), + } +} + +func expandDynamoDbProjection(data map[string]interface{}) *dynamodb.Projection { + projection := &dynamodb.Projection{ + ProjectionType: aws.String(data["projection_type"].(string)), + } + + if v, ok := data["non_key_attributes"].([]interface{}); ok && len(v) > 0 { + projection.NonKeyAttributes = expandStringList(v) + } + + return projection +} + +func expandDynamoDbKeySchema(data map[string]interface{}) []*dynamodb.KeySchemaElement { + keySchema := []*dynamodb.KeySchemaElement{} + + if v, ok := data["hash_key"]; ok && v != nil && v != "" { + keySchema = append(keySchema, &dynamodb.KeySchemaElement{ + AttributeName: aws.String(v.(string)), + KeyType: aws.String(dynamodb.KeyTypeHash), + }) + } + + if v, ok := data["range_key"]; ok && v != nil && v != "" { + keySchema = append(keySchema, &dynamodb.KeySchemaElement{ + AttributeName: aws.String(v.(string)), + KeyType: aws.String(dynamodb.KeyTypeRange), + }) + } + + return keySchema +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/tags.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/tags.go index 46438c0fd..7a4bfdef1 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/tags.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/tags.go @@ -333,53 +333,49 @@ func tagsFromMapDynamoDb(m map[string]interface{}) []*dynamodb.Tag { // method from the ec2 tag resource handling. Also the `UntagResource` method // for dynamoDB only requires a list of tag keys, instead of the full map of keys. func setTagsDynamoDb(conn *dynamodb.DynamoDB, d *schema.ResourceData) error { - if d.HasChange("tags") { - arn := d.Get("arn").(string) - oraw, nraw := d.GetChange("tags") - o := oraw.(map[string]interface{}) - n := nraw.(map[string]interface{}) - create, remove := diffTagsDynamoDb(tagsFromMapDynamoDb(o), tagsFromMapDynamoDb(n)) + arn := d.Get("arn").(string) + oraw, nraw := d.GetChange("tags") + o := oraw.(map[string]interface{}) + n := nraw.(map[string]interface{}) + create, remove := diffTagsDynamoDb(tagsFromMapDynamoDb(o), tagsFromMapDynamoDb(n)) - // Set tags - if len(remove) > 0 { - err := resource.Retry(2*time.Minute, func() *resource.RetryError { - log.Printf("[DEBUG] Removing tags: %#v from %s", remove, d.Id()) - _, err := conn.UntagResource(&dynamodb.UntagResourceInput{ - ResourceArn: aws.String(arn), - TagKeys: remove, - }) - if err != nil { - ec2err, ok := err.(awserr.Error) - if ok && strings.Contains(ec2err.Code(), "ResourceNotFoundException") { - return resource.RetryableError(err) // retry - } - return resource.NonRetryableError(err) - } - return nil + // Set tags + if len(remove) > 0 { + err := resource.Retry(2*time.Minute, func() *resource.RetryError { + log.Printf("[DEBUG] Removing tags: %#v from %s", remove, d.Id()) + _, err := conn.UntagResource(&dynamodb.UntagResourceInput{ + ResourceArn: aws.String(arn), + TagKeys: remove, }) if err != nil { - return err + if isAWSErr(err, dynamodb.ErrCodeResourceNotFoundException, "") { + return resource.RetryableError(err) + } + return resource.NonRetryableError(err) } + return nil + }) + if err != nil { + return err } - if len(create) > 0 { - err := resource.Retry(2*time.Minute, func() *resource.RetryError { - log.Printf("[DEBUG] Creating tags: %s for %s", create, d.Id()) - _, err := conn.TagResource(&dynamodb.TagResourceInput{ - ResourceArn: aws.String(arn), - Tags: create, - }) - if err != nil { - ec2err, ok := err.(awserr.Error) - if ok && strings.Contains(ec2err.Code(), "ResourceNotFoundException") { - return resource.RetryableError(err) // retry - } - return resource.NonRetryableError(err) - } - return nil + } + if len(create) > 0 { + err := resource.Retry(2*time.Minute, func() *resource.RetryError { + log.Printf("[DEBUG] Creating tags: %s for %s", create, d.Id()) + _, err := conn.TagResource(&dynamodb.TagResourceInput{ + ResourceArn: aws.String(arn), + Tags: create, }) if err != nil { - return err + if isAWSErr(err, dynamodb.ErrCodeResourceNotFoundException, "") { + return resource.RetryableError(err) + } + return resource.NonRetryableError(err) } + return nil + }) + if err != nil { + return err } } diff --git a/vendor/vendor.json b/vendor/vendor.json index 9b0aea946..2eba9d914 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -261,756 +261,756 @@ "revisionTime": "2016-01-15T23:47:25Z" }, { - "checksumSHA1": "TkqQVOUcbByOjPqzB+PIF6YIqms=", + "checksumSHA1": "3qbWQO79tzfxr3IXc5P/l0XbVaI=", "path": "github.com/aws/aws-sdk-go/aws", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "DtuTqKH29YnLjrIJkRYX0HQtXY0=", "path": "github.com/aws/aws-sdk-go/aws/arn", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "Y9W+4GimK4Fuxq+vyIskVYFRnX4=", "path": "github.com/aws/aws-sdk-go/aws/awserr", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "yyYr41HZ1Aq0hWc3J5ijXwYEcac=", "path": "github.com/aws/aws-sdk-go/aws/awsutil", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "9nE/FjZ4pYrT883KtV2/aI+Gayo=", "path": "github.com/aws/aws-sdk-go/aws/client", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "ieAJ+Cvp/PKv1LpUEnUXpc3OI6E=", "path": "github.com/aws/aws-sdk-go/aws/client/metadata", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "7/8j/q0TWtOgXyvEcv4B2Dhl00o=", "path": "github.com/aws/aws-sdk-go/aws/corehandlers", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "Y+cPwQL0dZMyqp3wI+KJWmA9KQ8=", "path": "github.com/aws/aws-sdk-go/aws/credentials", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "u3GOAJLmdvbuNUeUEcZSEAOeL/0=", "path": "github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "NUJUTWlc1sV8b7WjfiYc4JZbXl0=", "path": "github.com/aws/aws-sdk-go/aws/credentials/endpointcreds", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "JEYqmF83O5n5bHkupAzA6STm0no=", "path": "github.com/aws/aws-sdk-go/aws/credentials/stscreds", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "OnU/n7R33oYXiB4SAGd5pK7I0Bs=", "path": "github.com/aws/aws-sdk-go/aws/defaults", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "/EXbk/z2TWjWc1Hvb4QYs3Wmhb8=", "path": "github.com/aws/aws-sdk-go/aws/ec2metadata", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { - "checksumSHA1": "Mrcwi2Jpvn055JXS+sk5jfCn3CY=", + "checksumSHA1": "QzwFDjKBl8XUPtQ3Sgd7+rRestk=", "path": "github.com/aws/aws-sdk-go/aws/endpoints", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { - "checksumSHA1": "9GvAyILJ7g+VUg8Ef5DsT5GuYsg=", + "checksumSHA1": "657ICMok3uC5dm5e9bKcVF2HaxE=", "path": "github.com/aws/aws-sdk-go/aws/request", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "HcGL4e6Uep4/80eCUI5xkcWjpQ0=", "path": "github.com/aws/aws-sdk-go/aws/session", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "iU00ZjhAml/13g+1YXT21IqoXqg=", "path": "github.com/aws/aws-sdk-go/aws/signer/v4", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "04ypv4x12l4q0TksA1zEVsmgpvw=", "path": "github.com/aws/aws-sdk-go/internal/shareddefaults", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "NStHCXEvYqG72GknZyv1jaKaeH0=", "path": "github.com/aws/aws-sdk-go/private/protocol", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "1QmQ3FqV37w0Zi44qv8pA1GeR0A=", "path": "github.com/aws/aws-sdk-go/private/protocol/ec2query", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "yHfT5DTbeCLs4NE2Rgnqrhe15ls=", "path": "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "R00RL5jJXRYq1iiK1+PGvMfvXyM=", "path": "github.com/aws/aws-sdk-go/private/protocol/jsonrpc", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "ZqY5RWavBLWTo6j9xqdyBEaNFRk=", "path": "github.com/aws/aws-sdk-go/private/protocol/query", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "9V1PvtFQ9MObZTc3sa86WcuOtOU=", "path": "github.com/aws/aws-sdk-go/private/protocol/query/queryutil", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "pkeoOfZpHRvFG/AOZeTf0lwtsFg=", "path": "github.com/aws/aws-sdk-go/private/protocol/rest", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "Rpu8KBtHZgvhkwHxUfaky+qW+G4=", "path": "github.com/aws/aws-sdk-go/private/protocol/restjson", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "ODo+ko8D6unAxZuN1jGzMcN4QCc=", "path": "github.com/aws/aws-sdk-go/private/protocol/restxml", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "0qYPUga28aQVkxZgBR3Z86AbGUQ=", "path": "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "F6mth+G7dXN1GI+nktaGo8Lx8aE=", "path": "github.com/aws/aws-sdk-go/private/signer/v2", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "vnYDXA1NxJ7Hu+DMfXNk1UnmkWg=", "path": "github.com/aws/aws-sdk-go/service/acm", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "DPl/OkvEUjrd+XKqX73l6nUNw3U=", "path": "github.com/aws/aws-sdk-go/service/apigateway", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "CW7pEkPsi8CNAAP4OQIblGUHgis=", "path": "github.com/aws/aws-sdk-go/service/applicationautoscaling", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "oBXDw1zQTfxcKsK3ZjtKcS7gBLI=", "path": "github.com/aws/aws-sdk-go/service/athena", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "ITAwWyJp4t9AGfUXm9M3pFWTHVA=", "path": "github.com/aws/aws-sdk-go/service/autoscaling", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "Zz8qI6RloveM1zrXAglLxJZT1ZA=", "path": "github.com/aws/aws-sdk-go/service/batch", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "6gM3CZZgiB0JvS7EK1c31Q8L09U=", "path": "github.com/aws/aws-sdk-go/service/cloudformation", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "T80IDetBz1hqJpq5Wqmx3MwCh8w=", "path": "github.com/aws/aws-sdk-go/service/cloudfront", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "bYrI9mxspB0xDFZEy3OIfWuez5g=", "path": "github.com/aws/aws-sdk-go/service/cloudtrail", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "oB+M+kOmYG28V0PuI75IF6E+/w8=", "path": "github.com/aws/aws-sdk-go/service/cloudwatch", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "Nc3vXlV7s309PprScYpRDPQWeDQ=", "path": "github.com/aws/aws-sdk-go/service/cloudwatchevents", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "bPh7NF3mLpGMV0rIakolMPHqMyw=", "path": "github.com/aws/aws-sdk-go/service/cloudwatchlogs", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { - "checksumSHA1": "P6qyaFX9X6Nnvm3avLigjmjfYds=", + "checksumSHA1": "GyuNxzdK9oSY6jMfmoqNx6tuCrk=", "path": "github.com/aws/aws-sdk-go/service/codebuild", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "7nW1Ho2X3RcUU8FaFBhJIUeuDNw=", "path": "github.com/aws/aws-sdk-go/service/codecommit", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "+petAU2sPfykSoVBAitmGxvGOlw=", "path": "github.com/aws/aws-sdk-go/service/codedeploy", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "LKw7fnNwq17Eqy0clzS/LK89vS4=", "path": "github.com/aws/aws-sdk-go/service/codepipeline", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "aXh1KIbNX+g+tH+lh3pk++9lm3k=", "path": "github.com/aws/aws-sdk-go/service/cognitoidentity", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "IWi9xZz+OncotjM/vJ87Iffg2Qk=", "path": "github.com/aws/aws-sdk-go/service/cognitoidentityprovider", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "56F6Stg8hQ1kxiAEzqB0TDctW9k=", "path": "github.com/aws/aws-sdk-go/service/configservice", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "hYCwLQdIjHj8rMHLGVyUVhecI4s=", "path": "github.com/aws/aws-sdk-go/service/databasemigrationservice", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { - "checksumSHA1": "26CWoHQP/dyL2VzE5ZNd8zNzhko=", + "checksumSHA1": "uGQnGyJS3cyOFwZA51eilwLVgtk=", "path": "github.com/aws/aws-sdk-go/service/devicefarm", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "6g94rUHAgjcqMMTtMqKUbLU37wY=", "path": "github.com/aws/aws-sdk-go/service/directconnect", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "edM36y+5lmI7Hne0/38qapLzGO4=", "path": "github.com/aws/aws-sdk-go/service/directoryservice", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "0TXXUPjrbOCHpX555B6suH36Nnk=", "path": "github.com/aws/aws-sdk-go/service/dynamodb", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "4igS6faf4hrhDj6Jj9ErVcN1qKo=", "path": "github.com/aws/aws-sdk-go/service/ec2", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "uEv9kkBsVIjg7K4+Y8TVlU0Cc8o=", "path": "github.com/aws/aws-sdk-go/service/ecr", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "3B3RtWG7IY9qhFhWGEwroeMxnPI=", "path": "github.com/aws/aws-sdk-go/service/ecs", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "eoM9nF5iVMbuGOmkY33d19aHt8Y=", "path": "github.com/aws/aws-sdk-go/service/efs", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "dU5MPXUUOYD/E9sNncpFZ/U86Cw=", "path": "github.com/aws/aws-sdk-go/service/elasticache", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "pj8mBWT3HE0Iid6HSmhw7lmyZDU=", "path": "github.com/aws/aws-sdk-go/service/elasticbeanstalk", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "VYGtTaSiajfKOVTbi9/SNmbiIac=", "path": "github.com/aws/aws-sdk-go/service/elasticsearchservice", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "SZ7yLDZ6RvMhpWe0Goyem64kgyA=", "path": "github.com/aws/aws-sdk-go/service/elastictranscoder", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "qq+fTzQmiq0tCYK/90A0s5pVurM=", "path": "github.com/aws/aws-sdk-go/service/elb", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "E9GRArYlztF98yBDHBTvdD+NIkc=", "path": "github.com/aws/aws-sdk-go/service/elbv2", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "NbkH6F+792jQ7BW4lGCb+vJVw58=", "path": "github.com/aws/aws-sdk-go/service/emr", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "5btWHj2fZrPc/zfYdJLPaOcivxI=", "path": "github.com/aws/aws-sdk-go/service/firehose", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "Rodm1XwZ9Ncah1NLHep0behQpXg=", "path": "github.com/aws/aws-sdk-go/service/gamelift", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "oDoGvSfmO2Z099ixV2HXn+SDeHE=", "path": "github.com/aws/aws-sdk-go/service/glacier", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "mJb6yp7wP+gyUQY+CFbbRkWEv1U=", "path": "github.com/aws/aws-sdk-go/service/glue", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { - "checksumSHA1": "6JlxJoy1JCArNK2qBkaJ5IV6qBc=", + "checksumSHA1": "AFJ17uATPFQ6oUrtN5qZ+DEDncw=", "path": "github.com/aws/aws-sdk-go/service/guardduty", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "oZaxMqnwl2rA+V/W0tJ3uownORI=", "path": "github.com/aws/aws-sdk-go/service/iam", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "nMdRXIfhgvEKBHnLX61Ze3EUJWU=", "path": "github.com/aws/aws-sdk-go/service/inspector", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "pZwCI4DpP5hcMa/ItKhiwo/ukd0=", "path": "github.com/aws/aws-sdk-go/service/iot", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "IoSyRZhlL0petrB28nXk5jKM9YA=", "path": "github.com/aws/aws-sdk-go/service/kinesis", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "JOfgA6YehzwZ/4Mgh+3lY/+Gz3E=", "path": "github.com/aws/aws-sdk-go/service/kms", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { - "checksumSHA1": "Po3j27sses19L37ruAvK1fSYDsc=", + "checksumSHA1": "ybcV5s7X4jsDPiBy1fj1Hlm0hrc=", "path": "github.com/aws/aws-sdk-go/service/lambda", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "wjs9YBsHx0YQH0zKBA7Ibd1UV5Y=", "path": "github.com/aws/aws-sdk-go/service/lightsail", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "QjiIL8LrlhwrQw8FboF+wMNvUF0=", "path": "github.com/aws/aws-sdk-go/service/mediastore", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "ynB7Flcudp0VOqBVKZJ+23DtLHU=", "path": "github.com/aws/aws-sdk-go/service/mq", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "fpsBu+F79ktlLRwal1GugVMUDo0=", "path": "github.com/aws/aws-sdk-go/service/opsworks", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "+crsKabDoPzW0xaccqXP9T5h41s=", "path": "github.com/aws/aws-sdk-go/service/rds", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "vP1FcccUZbuUlin7ME89w1GVJtA=", "path": "github.com/aws/aws-sdk-go/service/redshift", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "fgSXmayOZRgur/41Gp1tFvH0GGg=", "path": "github.com/aws/aws-sdk-go/service/route53", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "sCaHoPWsJXRHFbilUKwN71qFTOI=", "path": "github.com/aws/aws-sdk-go/service/s3", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "QZU8vR9cOIenYiH+Ywl4Gzfnlp0=", "path": "github.com/aws/aws-sdk-go/service/servicecatalog", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "dk6ebvA0EYgdPyc5HPKLBPEtsm4=", "path": "github.com/aws/aws-sdk-go/service/servicediscovery", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "Ex1Ma0SFGpqeNuPbeXZtsliZ3zo=", "path": "github.com/aws/aws-sdk-go/service/ses", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "maVXeR3WDAkONlzf04e4mDgCYxo=", "path": "github.com/aws/aws-sdk-go/service/sfn", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "B3CgAFSREebpsFoFOo4vrQ6u04w=", "path": "github.com/aws/aws-sdk-go/service/simpledb", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "FfY8w4DM8XIULdRnFhd3Um8Mj8c=", "path": "github.com/aws/aws-sdk-go/service/sns", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "Wx189wAbIhWChx4kVbvsyqKMF4U=", "path": "github.com/aws/aws-sdk-go/service/sqs", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "Ka9/jYIzdeR4/b8IHXigYe5LvZk=", "path": "github.com/aws/aws-sdk-go/service/ssm", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "W1oFtpaT4TWIIJrAvFcn/XdcT7g=", "path": "github.com/aws/aws-sdk-go/service/sts", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "on6d7Hydx2bM9jkFOf1JZcZZgeY=", "path": "github.com/aws/aws-sdk-go/service/waf", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "rHqjsOndIR82gX5mSKybaRWf3UY=", "path": "github.com/aws/aws-sdk-go/service/wafregional", - "revision": "decd990ddc5dcdf2f73309cbcab90d06b996ca28", - "revisionTime": "2018-01-22T22:30:27Z", - "version": "v1.12.67", - "versionExact": "v1.12.67" + "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", + "revisionTime": "2018-01-26T22:46:47Z", + "version": "v1.12.70", + "versionExact": "v1.12.70" }, { "checksumSHA1": "usT4LCSQItkFvFOQT7cBlkCuGaE=", @@ -2160,16 +2160,20 @@ "revisionTime": "2016-09-27T10:08:44Z" }, { - "checksumSHA1": "HDmU5jfsMJvXq9ezjXD28ZWhMc4=", + "checksumSHA1": "5ZT/lsGfrt4BKyi2mLOKg4OUwnI=", "path": "github.com/terraform-providers/terraform-provider-aws", - "revision": "bf7787d6cf97cf76a262fa31bae521dc45065d2b", - "revisionTime": "2018-01-26T16:36:49Z" + "revision": "8937a3a4e9d77c8089cf147861b604e3a2d8cf7e", + "revisionTime": "2018-01-29T14:56:01Z", + "version": "v1.8.0", + "versionExact": "v1.8.0" }, { - "checksumSHA1": "JENz2/NBOXKRE54gdQSLRVUXph4=", + "checksumSHA1": "14tQONjMFJtu11KjPPHCoVwjUts=", "path": "github.com/terraform-providers/terraform-provider-aws/aws", - "revision": "bf7787d6cf97cf76a262fa31bae521dc45065d2b", - "revisionTime": "2018-01-26T16:36:49Z" + "revision": "8937a3a4e9d77c8089cf147861b604e3a2d8cf7e", + "revisionTime": "2018-01-29T14:56:01Z", + "version": "v1.8.0", + "versionExact": "v1.8.0" }, { "checksumSHA1": "7WDq0VsOJmABPUCEvfuerEp7mBg=", From 1e12e498784c1cd89d9135ffbda47e89ddcfcfdf Mon Sep 17 00:00:00 2001 From: Chris Griggs Date: Tue, 6 Feb 2018 15:35:12 -0800 Subject: [PATCH 018/156] Website: Restructure Community providers list (#17286) * restructure community providers list * add vRA * add Gandi provider * re-organize --- .../type/community-index.html.markdown | 99 ++++++++++--------- 1 file changed, 51 insertions(+), 48 deletions(-) diff --git a/website/docs/providers/type/community-index.html.markdown b/website/docs/providers/type/community-index.html.markdown index 3663be6ff..f6d99560f 100644 --- a/website/docs/providers/type/community-index.html.markdown +++ b/website/docs/providers/type/community-index.html.markdown @@ -17,52 +17,55 @@ please fill out this [community providers form](https://docs.google.com/forms/d/ --- -[ACME/Let's Encrypt](https://github.com/vancluever/terraform-provider-acme) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -[Active Directory](https://github.com/GSLabDev/terraform-provider-ad) - -[Apigee](https://github.com/zambien/terraform-provider-apigee) - -[AVI](https://github.com/avinetworks/terraform-provider-avi) - -[Aviatrix](https://github.com/AviatrixSystems/terraform-provider-aviatrix) - -[CouchDB](https://github.com/nicolai86/terraform-provider-couchdb) - -[Digital Rebar](https://github.com/rackn/terraform-provider-drp/) - -[GoCD](https://github.com/drewsonne/terraform-provider-gocd) - -[Google Calendar](https://github.com/sethvargo/terraform-provider-googlecalendar) - -[Helm](https://github.com/mcuadros/terraform-provider-helm) - -[HTTP File Upload](https://github.com/GSLabDev/terraform-provider-httpfileupload) - -[HP OneView](https://github.com/HewlettPackard/terraform-provider-oneview) - -[Infoblox](https://github.com/sky-uk/terraform-provider-infoblox) - -[Jira](https://github.com/anubhavmishra/terraform-provider-jira) - -[Kafka](https://github.com/Mongey/terraform-provider-kafka) - -[Kibana](https://github.com/ewilde/terraform-provider-kibana) - -[Kong](https://github.com/kevholditch/terraform-provider-kong) - -[LXD](https://github.com/sl1pm4t/terraform-provider-lxd) - -[Sentry](https://github.com/jianyuan/terraform-provider-sentry) - -[Microsoft SCVMM](https://github.com/GSLabDev/terraform-provider-scvmm) - -[Open Day Light](https://github.com/GSLabDev/terraform-provider-odl) - -[Pass](https://github.com/camptocamp/terraform-provider-pass) - -[Puppet CA](https://github.com/camptocamp/terraform-provider-puppetca) - -[PuppetDB](https://github.com/camptocamp/terraform-provider-puppetdb) - -[Runscope](https://github.com/ewilde/terraform-provider-runscope) +
ACME/Let's EncryptActive DirectoryApigee
AVIAviatrixCouchDB
Digital RebarGandiGoCD
Google CalendarHelmHetzner Cloud
HTTP File UploadHP OneViewInfoblox
JiraKafkaKibana
KongLXDOpen Day Light
PassPuppet CAPuppetDB
RunscopeSakuraCloudSentry
SignalFxSCVMMvRealize Automation
From f0a009c573a9f0436faa9cd592e01206d7f5222c Mon Sep 17 00:00:00 2001 From: Nick Fagerlund Date: Wed, 7 Feb 2018 09:15:55 -0800 Subject: [PATCH 019/156] website: private module registry documentation --- .../docs/commands/cli-config.html.markdown | 42 +++++++---- website/docs/modules/sources.html.markdown | 36 +++++++++- website/docs/modules/usage.html.markdown | 28 ++++---- website/docs/registry/index.html.md | 2 +- website/docs/registry/modules/publish.html.md | 24 ++++--- website/docs/registry/modules/use.html.md | 37 ++++++++-- website/docs/registry/private.html.md | 69 ++++++++----------- 7 files changed, 153 insertions(+), 85 deletions(-) diff --git a/website/docs/commands/cli-config.html.markdown b/website/docs/commands/cli-config.html.markdown index f70e04669..e63dec699 100644 --- a/website/docs/commands/cli-config.html.markdown +++ b/website/docs/commands/cli-config.html.markdown @@ -7,17 +7,13 @@ description: |- configuration file. --- -# CLI Configuration File +# CLI Configuration File (`.terraformrc`/`terraform.rc`) -The CLI configuration file allows customization of some behaviors of the -Terraform CLI in general. This is separate from -[your infrastructure configuration](/docs/configuration/index.html), and -provides per-user customization that applies regardless of which working -directory Terraform is being applied to. +The CLI configuration file configures per-user settings for CLI behaviors, +which apply across all Terraform working directories. This is separate from +[your infrastructure configuration](/docs/configuration/index.html). -For example, the CLI configuration file can be used to activate a shared -plugin cache directory that allows provider plugins to be shared between -different working directories, as described in more detail below. +## Location The configuration is placed in a single file whose location depends on the host operating system: @@ -52,18 +48,40 @@ disable_checkpoint = true The following settings can be set in the CLI configuration file: -* `disable_checkpoint` - when set to `true`, disables +- `disable_checkpoint` — when set to `true`, disables [upgrade and security bulletin checks](/docs/commands/index.html#upgrade-and-security-bulletin-checks) that require reaching out to HashiCorp-provided network services. -* `disable_checkpoint_signature` - when set to `true`, allows the upgrade and +- `disable_checkpoint_signature` — when set to `true`, allows the upgrade and security bulletin checks described above but disables the use of an anonymous id used to de-duplicate warning messages. -* `plugin_cache_dir` - enables +- `plugin_cache_dir` — enables [plugin caching](/docs/configuration/providers.html#provider-plugin-cache) and specifies, as a string, the location of the plugin cache directory. +- `credentials` — provides credentials for use with Terraform Enterprise's + [private module registry.](/docs/enterprise/registry/index.html) This is + only necessary when running Terraform on the command line; runs managed by + Terraform Enterprise can access private modules automatically. + + This setting is a repeatable block, where the block label is a hostname + (either `app.terraform.io` or the hostname of your private install) and + the block body contains a `token` attribute. Whenever Terraform requests + module data from that hostname, it will authenticate with that token. + + ``` hcl + credentials "app.terraform.io" { + token = "xxxxxx.atlasv1.zzzzzzzzzzzzz" + } + ``` + + ~> **Note:** The credentials hostname must match the hostname in your module + sources. If your Terraform Enterprise instance is available at multiple + hostnames, use one of them consistently. (The SaaS version of Terraform + Enterprise responds to API calls at both its newer hostname, + app.terraform.io, and its historical hostname, atlas.hashicorp.com.) + ## Deprecated Settings The following settings are supported for backward compatibility but are no diff --git a/website/docs/modules/sources.html.markdown b/website/docs/modules/sources.html.markdown index d759762b1..bad5abed6 100644 --- a/website/docs/modules/sources.html.markdown +++ b/website/docs/modules/sources.html.markdown @@ -47,12 +47,16 @@ Updates for file paths are automatic: when "downloading" the module using the [g The [Terraform Registry](https://registry.terraform.io) is an index of modules written by the Terraform community. The Terraform Registry is the easiest -way to get started with Terraform and to find modules to start with. -The registry is integrated directly into Terraform: +way to get started with Terraform and to find modules. + +The registry is integrated directly into Terraform. You can reference any +registry module with a source string of `//`. Each +module's information page on the registry includes its source string. ```hcl module "consul" { source = "hashicorp/consul/aws" + version = "0.1.0" } ``` @@ -60,9 +64,33 @@ The above example would use the [Consul module for AWS](https://registry.terraform.io/modules/hashicorp/consul/aws) from the public registry. +Registry modules support versioning. You can provide a specific version, or use +flexible [version constraints](/docs/modules/usage.html#module-versions). + You can learn more about the registry at the [Terraform Registry documentation](/docs/registry/modules/use.html#using-modules). +## Private Registries + +[Terraform Enterprise](https://www.hashicorp.com/products/terraform) provides a +[private module registry](/docs/enterprise/registry/index.html), to help +you share code within your organization. Other services can also provide +private registries by implementing [Terraform's registry API](/docs/registry/api.html). + +Source strings for private registry modules are similar to public modules, but +also include a hostname. They should follow the format +`///`. + +```hcl +module "vpc" { + source = "app.terraform.io/example_corp/vpc/aws" + version = "0.9.3" +} +``` + +Modules from private registries support versioning, just like modules from the +public Terraform Registry. + ## GitHub Terraform will automatically recognize GitHub URLs and turn them into a link to the specific Git repository. The syntax is simple: @@ -100,7 +128,9 @@ You can use the same parameters to GitHub repositories as you can generic Git re If you need Terraform to fetch modules from private GitHub repos, you must provide Terraform with credentials to authenticate as a user with read access to those repos. - If you run Terraform only on your local machine, you can specify the module source as an SSH URI (like `git@github.com:hashicorp/example.git`) and Terraform will use your default SSH key to authenticate. -- If you use Terraform Enterprise, you can use SSH URIs. You'll need to add an SSH private key to your organization and assign it to any workspace that fetches modules from private repos. [See the Terraform Enterprise docs about SSH keys for cloning modules.](/docs/enterprise/workspaces/ssh-keys.html) +- If you use Terraform Enterprise, consider using the private module registry. It makes handling credentials easier, and provides full versioning support. (See [Private Registries](#private-registries) above for more info.) + + If you need to use modules directly from Git, you can use SSH URIs with Terraform Enterprise. You'll need to add an SSH private key to your organization and assign it to any workspace that fetches modules from private repos. [See the Terraform Enterprise docs about SSH keys for cloning modules.](/docs/enterprise/workspaces/ssh-keys.html) - If you need to run Terraform on a remote machine like a CI worker, you either need to write an SSH key to disk and set the `GIT_SSH_COMMAND` environment variable appropriately during the worker's provisioning process, or create a [GitHub machine user](https://developer.github.com/guides/managing-deploy-keys/#machine-users) with read access to the repos in question and embed its credentials into the modules' `source` parameters: ```hcl diff --git a/website/docs/modules/usage.html.markdown b/website/docs/modules/usage.html.markdown index d49cd776f..64ff092b6 100644 --- a/website/docs/modules/usage.html.markdown +++ b/website/docs/modules/usage.html.markdown @@ -36,9 +36,11 @@ The only required configuration key for a module is the `source` parameter. The value of this tells Terraform where to download the module's source code. Terraform comes with support for a variety of module sources. -The recommended source for external modules is a -[Terraform Registry](/docs/registry/index.html), which provides the full -capabilities of modules such as version constraints. +We recommend using modules from the public [Terraform Registry](/docs/registry/index.html) +or from [Terraform Enterprise's private module registry](/docs/enterprise/registry/index.html). +These sources support version constraints for a more reliable experience, and +provide a searchable marketplace for finding the modules you need. + Registry modules are specified using a simple slash-separated path like the `hashicorp/consul/aws` path used in the above example. The full source string for each registry module can be found from the registry website. @@ -72,11 +74,10 @@ a newer version will be used only if it is within the given constraint. ## Module Versions -It is recommended to explicitly constrain the acceptable version numbers for -each external module so that upstream changes aren't automatically adopted, -since this may result in unexpected or unwanted changes changes. +We recommend explicitly constraining the acceptable version numbers for +each external module to avoid unexpected or unwanted changes. -The `version` attribute within the `module` block is used for this purpose: +Use the `version` attribute in the `module` block to specify versions: ```shell module "consul" { @@ -105,12 +106,13 @@ may be appropriate if a semantic versioning methodology is used consistently or if there is a well-defined release process that avoids unwanted updates. Version constraints are supported only for modules installed from a module -registry, such as the [Terraform Registry](https://registry.terraform.io/). -Other module sources may provide their own versioning mechanisms within the -source string itself, or they may not support versions at all. In particular, -modules whose sources are local file paths do not support `version` because -they are constrained to share the same version as their caller by being -obtained by the same source repository. +registry, such as the [Terraform Registry](https://registry.terraform.io/) or +[Terraform Enterprise's private module registry](/docs/enterprise/registry/index.html). +Other module sources can provide their own versioning mechanisms within the +source string itself, or might not support versions at all. In particular, +modules sourced from local file paths do not support `version`; since +they're loaded from the same source repository, they always share the same +version as their caller. ## Configuration diff --git a/website/docs/registry/index.html.md b/website/docs/registry/index.html.md index 8ae94ad59..ac7e942bd 100644 --- a/website/docs/registry/index.html.md +++ b/website/docs/registry/index.html.md @@ -9,7 +9,7 @@ description: |- # Terraform Registry The [Terraform Registry](https://registry.terraform.io) is a repository -of modules written by the Terraform community. The registry can be used to +of modules written by the Terraform community. The registry can help you get started with Terraform more quickly, see examples of how Terraform is written, and find pre-made modules for infrastructure components you require. diff --git a/website/docs/registry/modules/publish.html.md b/website/docs/registry/modules/publish.html.md index b53e578d0..f7a870fd0 100644 --- a/website/docs/registry/modules/publish.html.md +++ b/website/docs/registry/modules/publish.html.md @@ -29,28 +29,30 @@ Meeting the requirements for publishing a module is extremely easy. The list may appear long only to ensure we're detailed, but adhering to the requirements should happen naturally. -* **GitHub.** The module must be on GitHub and must be a public repo. +- **GitHub.** The module must be on GitHub and must be a public repo. This is only a requirement for the [public registry](https://registry.terraform.io). If you're using a private registry, you may ignore this requirement. -* **Repository name.** The repository name must be `terraform-PROVIDER-NAME` -where PROVIDER is the primary provider to associate with the module and -NAME is a unique name for the module. The name may contain hyphens. Example: -`terraform-aws-consul` or `terraform-google-vault`. +- **Named `terraform--`.** Module repositories must use this +three-part name format, where `` reflects the type of infrastructure the +module manages and `` is the main provider where it creates that +infrastructure. The `` segment can contain additional hyphens. Examples: +`terraform-google-vault` or `terraform-aws-ec2-instance`. -* **Repository description.** The GitHub repository description is used +- **Repository description.** The GitHub repository description is used to populate the short description of the module. This should be a simple one sentence description of the module. -* **Standard Module Structure.** The module must adhere to the +- **Standard module structure.** The module must adhere to the [standard module structure](/docs/modules/create.html#standard-module-structure). This allows the registry to inspect your module and generate documentation, track resource usage, and more. -* **Tags for Releases.** Releases are detected by creating and pushing -tags. The tag name must be a semantic version that can optionally be prefixed -with a `v`. Examples are `v1.0.4` and `0.9.2`. To publish a module initially, -at least one release tag must be present. +- **`x.y.z` tags for releases.** The registry uses tags to identify module +versions. Release tag names must be a [semantic version](http://semver.org), +which can optionally be prefixed with a `v`. For example, `v1.0.4` and `0.9.2`. +To publish a module initially, at least one release tag must be present. Tags +that don't look like version numbers are ignored. ## Publishing a Public Module diff --git a/website/docs/registry/modules/use.html.md b/website/docs/registry/modules/use.html.md index 433095c3d..9623d7fb0 100644 --- a/website/docs/registry/modules/use.html.md +++ b/website/docs/registry/modules/use.html.md @@ -21,20 +21,21 @@ terms. On the results page, filters can be used further refine search results. By default, only [verified modules](/docs/registry/modules/verified.html) are shown in search results. Verified modules are reviewed by HashiCorp to -ensure stability and compatibility. By using the filters, you may view unverified +ensure stability and compatibility. By using the filters, you can view unverified modules as well. ## Using Modules The Terraform Registry is integrated directly into Terraform. This makes it easy to reference any module in the registry. The syntax for referencing -a registry module is `namespace/name/provider`. For example: +a registry module is `//`. For example: `hashicorp/consul/aws`. ~> **Note:** Module registry integration was added in Terraform v0.10.6, and full versioning support in v0.11.0. When viewing a module on the registry on a tablet or desktop, usage instructions -are shown on the right side. You can copy and paste this to get started with any module. Some modules may +are shown on the right side. +You can copy and paste this to get started with any module. Some modules have required inputs you must set before being able to use the module. ```hcl @@ -44,6 +45,30 @@ module "consul" { } ``` +The `terraform init` command will download and cache any modules referenced by +a configuration. + +### Private Registry Module Sources + +You can also use modules from a private registry, like the one provided by +Terraform Enterprise. Private registry modules have source strings of the form +`///`. This is the same format as the +public registry, but with an added hostname prefix. + +```hcl +module "vpc" { + source = "app.terraform.io/example_corp/vpc/aws" + version = "0.9.3" +} +``` + +Depending on the registry you're using, you might also need to configure +credentials to access modules. See your registry's documentation for details. +[Terraform Enterprise's private registry is documented here.](/docs/enterprise/registry/index.html) + +Private registry module sources are supported in Terraform v0.11.0 and +newer. + ## Module Versions Each module in the registry is versioned. These versions syntactically must @@ -54,6 +79,6 @@ Terraform since version 0.11 will resolve any provided [module version constraints](/docs/modules/usage.html#module-versions) and using them is highly recommended to avoid pulling in breaking changes. -Terraform from version 10.6 through to 0.11 had partial support for the registry -protocol, however will not honor version constraints and always download the -latest version. +Terraform versions after 0.10.6 but before 0.11 have partial support for the registry +protocol, but always download the latest version instead of honoring version +constraints. diff --git a/website/docs/registry/private.html.md b/website/docs/registry/private.html.md index 16b63cf80..1d7380bde 100644 --- a/website/docs/registry/private.html.md +++ b/website/docs/registry/private.html.md @@ -3,52 +3,43 @@ layout: "registry" page_title: "Terraform Registry - Private Registry" sidebar_current: "docs-registry-private" description: |- - Terraform is capable of loading modules from private registries for private modules via Terraform Enterprise. + Terraform can load private modules from private registries via Terraform Enterprise. --- -# Private Registry +# Private Registries The registry at [registry.terraform.io](https://registry.terraform.io) -may only host public modules. Terraform is capable of loading modules from -private registries for private modules. +only hosts public modules, but most organizations have some modules that +can't, shouldn't, or don't need to be public. -Official private registries are available via [Terraform Enterprise](https://www.hashicorp.com/products/terraform). -There are two tiers: Pro and Enterprise. The Pro version is only available -as a SaaS service whereas the Enterprise version is available for private -install. Both versions fully support private registries. +You can load private modules [directly from version control and other +sources](/docs/modules/sources.html), but those sources don't support [version +constraints](/docs/modules/usage.html#module-versions) or a browsable +marketplace of modules, both of which are important for enabling a +producers-and-consumers content model in a large organization. -Terraform interacts with module registries using [the registry API](/docs/registry/api.html). +If your organization is specialized enough that teams frequently use modules +created by other teams, you will benefit from a private module registry. + +## Terraform Enterprise's Private Registry + +[Terraform Enterprise](https://www.hashicorp.com/products/terraform) (TFE) +includes a private module registry, available at both Pro and Premium tiers. + +It uses the same VCS-backed tagged release workflow as the Terraform Registry, +but imports modules from your private VCS repos (on any of TFE's supported VCS +providers) instead of requiring public GitHub repos. You can seamlessly +reference private modules in your Terraform configurations (just include a +hostname in the module source), and TFE's UI provides a searchable marketplace +of private modules to help your users find the code they need. + +[Terraform Enterprise's private module registry is documented here.](/docs/enterprise/registry/index.html) + +## Other Private Registries + +Terraform can use versioned modules from any service that implements +[the registry API](/docs/registry/api.html). The Terraform open source project does not provide a server implementation, but we welcome community members to create their own private registries by following the published protocol. -Modules can alternatively be referenced -[directly from version control and other sources](/docs/modules/sources.html), -but only registry modules support certain features such as -[version constraints](/docs/modules/usage.html#module-versions). - -## Private Registry Module Sources - -Public Terraform Registry modules have source strings of the form -`namespace/name/provider`. Private registries -- whether integrated into -Terraform Enterprise or via a third-party implementation -- require an -additional hostname prefix: - -```hcl -module "example" { - source = "example.com/namespace/name/provider" -} -``` - -Private registry module sources are supported in Terraform v0.11.0 and -newer. - -## Coming Soon - -Terraform Enterprise will be publicly available for self service signup -soon. In the mean time, if you're interested in private -registries and being part of the beta, please contact us at -[hello@hashicorp.com](mailto:hello@hashicorp.com). - -When Terraform Enterprise is publicly available, Private Registry documentation -will be available here. From c3872b42b5f781197b6b255201cc149209d0c0e9 Mon Sep 17 00:00:00 2001 From: Justin Campbell Date: Fri, 9 Feb 2018 12:51:19 -0500 Subject: [PATCH 020/156] website: Clarify Registry examples behavior --- website/docs/registry/modules/publish.html.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/website/docs/registry/modules/publish.html.md b/website/docs/registry/modules/publish.html.md index f7a870fd0..c0d343168 100644 --- a/website/docs/registry/modules/publish.html.md +++ b/website/docs/registry/modules/publish.html.md @@ -18,9 +18,10 @@ Public modules are managed via Git and GitHub. Publishing a module takes only a few minutes. Once a module is published, you can release a new version of a module by simply pushing a properly formed Git tag. -The registry extracts the name of the module, the provider, the documentation, -inputs/outputs, and more directly from the source of the module. No manual -annotations are required. +The registry extracts information about the module from the module's source. +The module name, provider, documentation, inputs/outputs, and dependencies are +all parsed and available via the UI or API, as well as the same information for +any submodules or examples in the module's source repository. ## Requirements @@ -46,7 +47,7 @@ one sentence description of the module. - **Standard module structure.** The module must adhere to the [standard module structure](/docs/modules/create.html#standard-module-structure). This allows the registry to inspect your module and generate documentation, -track resource usage, and more. +track resource usage, parse submodules and examples, and more. - **`x.y.z` tags for releases.** The registry uses tags to identify module versions. Release tag names must be a [semantic version](http://semver.org), From 71ac5034e98c5d84adb1b422872744499a765319 Mon Sep 17 00:00:00 2001 From: Ryan Uber Date: Fri, 9 Feb 2018 14:58:21 -0800 Subject: [PATCH 021/156] terraform: use hashicorp/go-uuid for lineage generation --- terraform/state.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/terraform/state.go b/terraform/state.go index 6a363485e..89203bbfe 100644 --- a/terraform/state.go +++ b/terraform/state.go @@ -16,10 +16,10 @@ import ( "sync" "github.com/hashicorp/go-multierror" + "github.com/hashicorp/go-uuid" "github.com/hashicorp/go-version" "github.com/hashicorp/terraform/config" "github.com/mitchellh/copystructure" - "github.com/satori/go.uuid" tfversion "github.com/hashicorp/terraform/version" ) @@ -706,7 +706,11 @@ func (s *State) EnsureHasLineage() { func (s *State) ensureHasLineage() { if s.Lineage == "" { - s.Lineage = uuid.NewV4().String() + lineage, err := uuid.GenerateUUID() + if err != nil { + panic(fmt.Errorf("Failed to generate lineage: %v", err)) + } + s.Lineage = lineage log.Printf("[DEBUG] New state was assigned lineage %q\n", s.Lineage) } else { log.Printf("[TRACE] Preserving existing state lineage %q\n", s.Lineage) From bf18ad3eb91c5e8cdcdf7dc991bae9c5cbd000a2 Mon Sep 17 00:00:00 2001 From: Alvaro Miranda Aguilera Date: Mon, 12 Feb 2018 11:08:28 +0100 Subject: [PATCH 022/156] Update cloud-index.html.markdown --- website/docs/providers/type/cloud-index.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/providers/type/cloud-index.html.markdown b/website/docs/providers/type/cloud-index.html.markdown index d6580ad8d..1206a4d0e 100644 --- a/website/docs/providers/type/cloud-index.html.markdown +++ b/website/docs/providers/type/cloud-index.html.markdown @@ -19,7 +19,7 @@ vendor in close collaboration with HashiCorp, and are tested by HashiCorp. [Arukas](/docs/providers/arukas/index.html) -[CenteryLinkCloud](/docs/providers/clc/index.html) +[CenturyLinkCloud](/docs/providers/clc/index.html) [CloudScale.ch](/docs/providers/cloudscale/index.html) From 7cba68326a5ec469b9a9e28be821676334495f04 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Fri, 9 Feb 2018 18:10:52 -0500 Subject: [PATCH 023/156] always wait for a RunningOperation to return If the user wishes to interrupt the running operation, only the first interrupt was communicated to the operation by canceling the provided context. A second interrupt would start the shutdown process, but not communicate this to the running operation. This order of event could cause partial writes of state. What would happen is that once the command returns, the plugin system would stop the provider processes. Once the provider processes dies, all pending Eval operations would return return with an error, and quickly cause the operation to complete. Since the backend code didn't know that the process was shutting down imminently, it would continue by attempting to write out the last known state. Under the right conditions, the process would exit part way through the writing of the state file. Add Stop and Cancel CancelFuncs to the RunningOperation, to allow it to easily differentiate between the two signals. The backend will then be able to detect a shutdown and abort more gracefully. In order to ensure that the backend is not in the process of writing the state out, the command will always attempt to wait for the process to complete after cancellation. --- backend/backend.go | 12 ++++++++-- backend/local/backend.go | 25 ++++++++++++++++---- backend/local/backend_apply.go | 21 +++++++++++++---- backend/local/backend_plan.go | 21 +++++++++++++---- backend/local/backend_refresh.go | 21 +++++++++++++---- command/apply.go | 22 +++++++++++++----- command/plan.go | 19 ++++++++++++---- command/refresh.go | 39 ++++++++++++++++++++++++++++---- 8 files changed, 143 insertions(+), 37 deletions(-) diff --git a/backend/backend.go b/backend/backend.go index efa42d4b6..f67d60ab6 100644 --- a/backend/backend.go +++ b/backend/backend.go @@ -145,8 +145,6 @@ type Operation struct { // RunningOperation is the result of starting an operation. type RunningOperation struct { - // Context should be used to track Done and Err for errors. - // // For implementers of a backend, this context should not wrap the // passed in context. Otherwise, canceling the parent context will // immediately mark this context as "done" but those aren't the semantics @@ -154,6 +152,16 @@ type RunningOperation struct { // is fully done. context.Context + // Stop requests the operation to complete early, by calling Stop on all + // the plugins. If the process needs to terminate immediately, call Cancel. + Stop context.CancelFunc + + // Cancel is the context.CancelFunc associated with the embedded context, + // and can be called to terminate the operation early. + // Once Cancel is called, the operation should return as soon as possible + // to avoid running operations during process exit. + Cancel context.CancelFunc + // Err is the error of the operation. This is populated after // the operation has completed. Err error diff --git a/backend/local/backend.go b/backend/local/backend.go index 6b119c297..bbebe3e18 100644 --- a/backend/local/backend.go +++ b/backend/local/backend.go @@ -224,7 +224,7 @@ func (b *Local) State(name string) (state.State, error) { // name conflicts, assume that the field is overwritten if set. func (b *Local) Operation(ctx context.Context, op *backend.Operation) (*backend.RunningOperation, error) { // Determine the function to call for our operation - var f func(context.Context, *backend.Operation, *backend.RunningOperation) + var f func(context.Context, context.Context, *backend.Operation, *backend.RunningOperation) switch op.Type { case backend.OperationTypeRefresh: f = b.opRefresh @@ -244,14 +244,29 @@ func (b *Local) Operation(ctx context.Context, op *backend.Operation) (*backend. b.opLock.Lock() // Build our running operation - runningCtx, runningCtxCancel := context.WithCancel(context.Background()) - runningOp := &backend.RunningOperation{Context: runningCtx} + // the runninCtx is only used to block until the operation returns. + runningCtx, done := context.WithCancel(context.Background()) + runningOp := &backend.RunningOperation{ + Context: runningCtx, + } + + // stopCtx wraps the context passed in, and is used to signal a graceful Stop. + stopCtx, stop := context.WithCancel(ctx) + runningOp.Stop = stop + + // cancelCtx is used to cancel the operation immediately, usually + // indicating that the process is exiting. + cancelCtx, cancel := context.WithCancel(context.Background()) + runningOp.Cancel = cancel // Do it go func() { + defer done() + defer stop() + defer cancel() + defer b.opLock.Unlock() - defer runningCtxCancel() - f(ctx, op, runningOp) + f(stopCtx, cancelCtx, op, runningOp) }() // Return diff --git a/backend/local/backend_apply.go b/backend/local/backend_apply.go index 9789e0b7c..f4351af6f 100644 --- a/backend/local/backend_apply.go +++ b/backend/local/backend_apply.go @@ -19,7 +19,8 @@ import ( ) func (b *Local) opApply( - ctx context.Context, + stopCtx context.Context, + cancelCtx context.Context, op *backend.Operation, runningOp *backend.RunningOperation) { log.Printf("[INFO] backend/local: starting Apply operation") @@ -55,7 +56,7 @@ func (b *Local) opApply( } if op.LockState { - lockCtx, cancel := context.WithTimeout(ctx, op.StateLockTimeout) + lockCtx, cancel := context.WithTimeout(stopCtx, op.StateLockTimeout) defer cancel() lockInfo := state.NewLockInfo() @@ -157,7 +158,7 @@ func (b *Local) opApply( // we can handle it properly. err = nil select { - case <-ctx.Done(): + case <-stopCtx.Done(): if b.CLI != nil { b.CLI.Output("stopping apply operation...") } @@ -176,8 +177,18 @@ func (b *Local) opApply( // Stop execution go tfCtx.Stop() - // Wait for completion still - <-doneCh + select { + case <-cancelCtx.Done(): + log.Println("[WARN] running operation canceled") + // if the operation was canceled, we need to return immediately + return + case <-doneCh: + } + case <-cancelCtx.Done(): + // this should not be called without first attempting to stop the + // operation + log.Println("[ERROR] running operation canceled without Stop") + return case <-doneCh: } diff --git a/backend/local/backend_plan.go b/backend/local/backend_plan.go index 380ce1742..d8ae0fe90 100644 --- a/backend/local/backend_plan.go +++ b/backend/local/backend_plan.go @@ -19,7 +19,8 @@ import ( ) func (b *Local) opPlan( - ctx context.Context, + stopCtx context.Context, + cancelCtx context.Context, op *backend.Operation, runningOp *backend.RunningOperation) { log.Printf("[INFO] backend/local: starting Plan operation") @@ -62,7 +63,7 @@ func (b *Local) opPlan( } if op.LockState { - lockCtx, cancel := context.WithTimeout(ctx, op.StateLockTimeout) + lockCtx, cancel := context.WithTimeout(stopCtx, op.StateLockTimeout) defer cancel() lockInfo := state.NewLockInfo() @@ -112,7 +113,7 @@ func (b *Local) opPlan( }() select { - case <-ctx.Done(): + case <-stopCtx.Done(): if b.CLI != nil { b.CLI.Output("stopping plan operation...") } @@ -120,8 +121,18 @@ func (b *Local) opPlan( // Stop execution go tfCtx.Stop() - // Wait for completion still - <-doneCh + select { + case <-cancelCtx.Done(): + log.Println("[WARN] running operation canceled") + // if the operation was canceled, we need to return immediately + return + case <-doneCh: + } + case <-cancelCtx.Done(): + // this should not be called without first attempting to stop the + // operation + log.Println("[ERROR] running operation canceled without Stop") + return case <-doneCh: } diff --git a/backend/local/backend_refresh.go b/backend/local/backend_refresh.go index 213334c4e..216147b3e 100644 --- a/backend/local/backend_refresh.go +++ b/backend/local/backend_refresh.go @@ -17,7 +17,8 @@ import ( ) func (b *Local) opRefresh( - ctx context.Context, + stopCtx context.Context, + cancelCtx context.Context, op *backend.Operation, runningOp *backend.RunningOperation) { // Check if our state exists if we're performing a refresh operation. We @@ -53,7 +54,7 @@ func (b *Local) opRefresh( } if op.LockState { - lockCtx, cancel := context.WithTimeout(ctx, op.StateLockTimeout) + lockCtx, cancel := context.WithTimeout(stopCtx, op.StateLockTimeout) defer cancel() lockInfo := state.NewLockInfo() @@ -91,7 +92,7 @@ func (b *Local) opRefresh( }() select { - case <-ctx.Done(): + case <-stopCtx.Done(): if b.CLI != nil { b.CLI.Output("stopping refresh operation...") } @@ -99,8 +100,18 @@ func (b *Local) opRefresh( // Stop execution go tfCtx.Stop() - // Wait for completion still - <-doneCh + select { + case <-cancelCtx.Done(): + log.Println("[WARN] running operation canceled") + // if the operation was canceled, we need to return immediately + return + case <-doneCh: + } + case <-cancelCtx.Done(): + // this should not be called without first attempting to stop the + // operation + log.Println("[ERROR] running operation canceled without Stop") + return case <-doneCh: } diff --git a/command/apply.go b/command/apply.go index c65b2df51..dd86ab68d 100644 --- a/command/apply.go +++ b/command/apply.go @@ -7,6 +7,7 @@ import ( "os" "sort" "strings" + "time" "github.com/hashicorp/terraform/tfdiags" @@ -159,10 +160,7 @@ func (c *ApplyCommand) Run(args []string) int { opReq.DestroyForce = destroyForce // Perform the operation - ctx, ctxCancel := context.WithCancel(context.Background()) - defer ctxCancel() - - op, err := b.Operation(ctx, opReq) + op, err := b.Operation(context.Background(), opReq) if err != nil { c.Ui.Error(fmt.Sprintf("Error starting operation: %s", err)) return 1 @@ -171,8 +169,8 @@ func (c *ApplyCommand) Run(args []string) int { // Wait for the operation to complete or an interrupt to occur select { case <-c.ShutdownCh: - // Cancel our context so we can start gracefully exiting - ctxCancel() + // gracefully stop the operation + op.Stop() // Notify the user c.Ui.Output(outputInterrupt) @@ -183,7 +181,19 @@ func (c *ApplyCommand) Run(args []string) int { c.Ui.Error( "Two interrupts received. Exiting immediately. Note that data\n" + "loss may have occurred.") + + // cancel the operation completely + op.Cancel() + + // the operation should return asap + // but timeout just in case + select { + case <-op.Done(): + case <-time.After(5 * time.Second): + } + return 1 + case <-op.Done(): } case <-op.Done(): diff --git a/command/plan.go b/command/plan.go index ec882b639..37bc90460 100644 --- a/command/plan.go +++ b/command/plan.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "strings" + "time" "github.com/hashicorp/terraform/backend" "github.com/hashicorp/terraform/config" @@ -107,10 +108,7 @@ func (c *PlanCommand) Run(args []string) int { opReq.Type = backend.OperationTypePlan // Perform the operation - ctx, ctxCancel := context.WithCancel(context.Background()) - defer ctxCancel() - - op, err := b.Operation(ctx, opReq) + op, err := b.Operation(context.Background(), opReq) if err != nil { c.Ui.Error(fmt.Sprintf("Error starting operation: %s", err)) return 1 @@ -119,7 +117,7 @@ func (c *PlanCommand) Run(args []string) int { select { case <-c.ShutdownCh: // Cancel our context so we can start gracefully exiting - ctxCancel() + op.Stop() // Notify the user c.Ui.Output(outputInterrupt) @@ -129,6 +127,17 @@ func (c *PlanCommand) Run(args []string) int { case <-c.ShutdownCh: c.Ui.Error( "Two interrupts received. Exiting immediately") + + // cancel the operation completely + op.Cancel() + + // the operation should return asap + // but timeout just in case + select { + case <-op.Done(): + case <-time.After(5 * time.Second): + } + return 1 case <-op.Done(): } diff --git a/command/refresh.go b/command/refresh.go index eec74281c..1329a190c 100644 --- a/command/refresh.go +++ b/command/refresh.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "strings" + "time" "github.com/hashicorp/terraform/backend" "github.com/hashicorp/terraform/config" @@ -82,10 +83,40 @@ func (c *RefreshCommand) Run(args []string) int { return 1 } - // Wait for the operation to complete - <-op.Done() - if err := op.Err; err != nil { - diags = diags.Append(err) + // Wait for the operation to complete or an interrupt to occur + select { + case <-c.ShutdownCh: + // gracefully stop the operation + op.Stop() + + // Notify the user + c.Ui.Output(outputInterrupt) + + // Still get the result, since there is still one + select { + case <-c.ShutdownCh: + c.Ui.Error( + "Two interrupts received. Exiting immediately. Note that data\n" + + "loss may have occurred.") + + // cancel the operation completely + op.Cancel() + + // the operation should return asap + // but timeout just in case + select { + case <-op.Done(): + case <-time.After(5 * time.Second): + } + + return 1 + + case <-op.Done(): + } + case <-op.Done(): + if err := op.Err; err != nil { + diags = diags.Append(err) + } } c.showDiagnostics(diags) From 67a615209181ef369a306f42fe749706d58a1996 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Fri, 9 Feb 2018 18:51:29 -0500 Subject: [PATCH 024/156] move backend operation cancellation into meta Create a single command method for running and operation with cancellation. --- command/apply.go | 44 ++--------------------------------------- command/meta.go | 49 ++++++++++++++++++++++++++++++++++++++++++++++ command/plan.go | 40 ++----------------------------------- command/refresh.go | 44 ++--------------------------------------- 4 files changed, 55 insertions(+), 122 deletions(-) diff --git a/command/apply.go b/command/apply.go index dd86ab68d..9ecb4ef66 100644 --- a/command/apply.go +++ b/command/apply.go @@ -2,12 +2,10 @@ package command import ( "bytes" - "context" "fmt" "os" "sort" "strings" - "time" "github.com/hashicorp/terraform/tfdiags" @@ -159,47 +157,9 @@ func (c *ApplyCommand) Run(args []string) int { opReq.AutoApprove = autoApprove opReq.DestroyForce = destroyForce - // Perform the operation - op, err := b.Operation(context.Background(), opReq) + op, err := c.RunOperation(b, opReq) if err != nil { - c.Ui.Error(fmt.Sprintf("Error starting operation: %s", err)) - return 1 - } - - // Wait for the operation to complete or an interrupt to occur - select { - case <-c.ShutdownCh: - // gracefully stop the operation - op.Stop() - - // Notify the user - c.Ui.Output(outputInterrupt) - - // Still get the result, since there is still one - select { - case <-c.ShutdownCh: - c.Ui.Error( - "Two interrupts received. Exiting immediately. Note that data\n" + - "loss may have occurred.") - - // cancel the operation completely - op.Cancel() - - // the operation should return asap - // but timeout just in case - select { - case <-op.Done(): - case <-time.After(5 * time.Second): - } - - return 1 - - case <-op.Done(): - } - case <-op.Done(): - if err := op.Err; err != nil { - diags = diags.Append(err) - } + diags = diags.Append(err) } c.showDiagnostics(diags) diff --git a/command/meta.go b/command/meta.go index dbcfb194b..91f1008fe 100644 --- a/command/meta.go +++ b/command/meta.go @@ -3,6 +3,7 @@ package command import ( "bufio" "bytes" + "context" "errors" "flag" "fmt" @@ -259,6 +260,54 @@ func (m *Meta) StdinPiped() bool { return fi.Mode()&os.ModeNamedPipe != 0 } +func (m *Meta) RunOperation(b backend.Enhanced, opReq *backend.Operation) (*backend.RunningOperation, error) { + op, err := b.Operation(context.Background(), opReq) + if err != nil { + return nil, fmt.Errorf("error starting operation: %s", err) + } + + // Wait for the operation to complete or an interrupt to occur + select { + case <-m.ShutdownCh: + // gracefully stop the operation + op.Stop() + + // Notify the user + m.Ui.Output(outputInterrupt) + + // Still get the result, since there is still one + select { + case <-m.ShutdownCh: + m.Ui.Error( + "Two interrupts received. Exiting immediately. Note that data\n" + + "loss may have occurred.") + + // cancel the operation completely + op.Cancel() + + // the operation should return asap + // but timeout just in case + select { + case <-op.Done(): + case <-time.After(5 * time.Second): + } + + return nil, errors.New("operation canceled") + + case <-op.Done(): + // operation completed after Stop + } + case <-op.Done(): + // operation completed normally + } + + if op.Err != nil { + return op, op.Err + } + + return op, nil +} + const ( ProviderSkipVerifyEnvVar = "TF_SKIP_PROVIDER_VERIFY" ) diff --git a/command/plan.go b/command/plan.go index 37bc90460..28bcbcb33 100644 --- a/command/plan.go +++ b/command/plan.go @@ -1,10 +1,8 @@ package command import ( - "context" "fmt" "strings" - "time" "github.com/hashicorp/terraform/backend" "github.com/hashicorp/terraform/config" @@ -108,43 +106,9 @@ func (c *PlanCommand) Run(args []string) int { opReq.Type = backend.OperationTypePlan // Perform the operation - op, err := b.Operation(context.Background(), opReq) + op, err := c.RunOperation(b, opReq) if err != nil { - c.Ui.Error(fmt.Sprintf("Error starting operation: %s", err)) - return 1 - } - - select { - case <-c.ShutdownCh: - // Cancel our context so we can start gracefully exiting - op.Stop() - - // Notify the user - c.Ui.Output(outputInterrupt) - - // Still get the result, since there is still one - select { - case <-c.ShutdownCh: - c.Ui.Error( - "Two interrupts received. Exiting immediately") - - // cancel the operation completely - op.Cancel() - - // the operation should return asap - // but timeout just in case - select { - case <-op.Done(): - case <-time.After(5 * time.Second): - } - - return 1 - case <-op.Done(): - } - case <-op.Done(): - if err := op.Err; err != nil { - diags = diags.Append(err) - } + diags = diags.Append(err) } c.showDiagnostics(diags) diff --git a/command/refresh.go b/command/refresh.go index 1329a190c..ce61c4233 100644 --- a/command/refresh.go +++ b/command/refresh.go @@ -1,10 +1,8 @@ package command import ( - "context" "fmt" "strings" - "time" "github.com/hashicorp/terraform/backend" "github.com/hashicorp/terraform/config" @@ -76,47 +74,9 @@ func (c *RefreshCommand) Run(args []string) int { opReq.Type = backend.OperationTypeRefresh opReq.Module = mod - // Perform the operation - op, err := b.Operation(context.Background(), opReq) + op, err := c.RunOperation(b, opReq) if err != nil { - c.Ui.Error(fmt.Sprintf("Error starting operation: %s", err)) - return 1 - } - - // Wait for the operation to complete or an interrupt to occur - select { - case <-c.ShutdownCh: - // gracefully stop the operation - op.Stop() - - // Notify the user - c.Ui.Output(outputInterrupt) - - // Still get the result, since there is still one - select { - case <-c.ShutdownCh: - c.Ui.Error( - "Two interrupts received. Exiting immediately. Note that data\n" + - "loss may have occurred.") - - // cancel the operation completely - op.Cancel() - - // the operation should return asap - // but timeout just in case - select { - case <-op.Done(): - case <-time.After(5 * time.Second): - } - - return 1 - - case <-op.Done(): - } - case <-op.Done(): - if err := op.Err; err != nil { - diags = diags.Append(err) - } + diags = diags.Append(err) } c.showDiagnostics(diags) From ecd9ef0f7732f1fe7019ccad03f8a9e53bc00a00 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Fri, 9 Feb 2018 19:13:34 -0500 Subject: [PATCH 025/156] ignore error in plan shutdown test The error was being silently dropped before. There is an interpolation error, because the plan is canceled before some of the resources can be evaluated. There might be a better way to handle this in the walk cancellation, but the behavior has not changed. Make the plan and apply shutdown match implementation-wise --- command/apply_test.go | 29 ++++++++++++++++++++--------- command/plan_test.go | 8 +++++--- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/command/apply_test.go b/command/apply_test.go index 968f8595f..6eda227f0 100644 --- a/command/apply_test.go +++ b/command/apply_test.go @@ -824,12 +824,11 @@ func TestApply_refresh(t *testing.T) { } func TestApply_shutdown(t *testing.T) { - cancelled := false - stopped := make(chan struct{}) + cancelled := make(chan struct{}) + shutdownCh := make(chan struct{}) statePath := testTempFile(t) p := testProvider() - shutdownCh := make(chan struct{}) ui := new(cli.MockUi) c := &ApplyCommand{ @@ -841,8 +840,7 @@ func TestApply_shutdown(t *testing.T) { } p.StopFn = func() error { - close(stopped) - cancelled = true + close(cancelled) return nil } @@ -858,15 +856,26 @@ func TestApply_shutdown(t *testing.T) { }, }, nil } + + var once sync.Once p.ApplyFn = func( *terraform.InstanceInfo, *terraform.InstanceState, *terraform.InstanceDiff) (*terraform.InstanceState, error) { + // only cancel once - if !cancelled { + once.Do(func() { shutdownCh <- struct{}{} - <-stopped - } + }) + + // Because of the internal lock in the MockProvider, we can't + // coordiante directly with the calling of Stop, and making the + // MockProvider concurrent is disruptive to a lot of existing tests. + // Wait here a moment to help make sure the main goroutine gets to the + // Stop call before we exit, or the plan may finish before it can be + // canceled. + time.Sleep(200 * time.Millisecond) + return &terraform.InstanceState{ ID: "foo", Attributes: map[string]string{ @@ -888,7 +897,9 @@ func TestApply_shutdown(t *testing.T) { t.Fatalf("err: %s", err) } - if !cancelled { + select { + case <-cancelled: + default: t.Fatal("command not cancelled") } diff --git a/command/plan_test.go b/command/plan_test.go index e9cfd6dbb..b78de9b8e 100644 --- a/command/plan_test.go +++ b/command/plan_test.go @@ -835,8 +835,8 @@ func TestPlan_detailedExitcode_emptyDiff(t *testing.T) { func TestPlan_shutdown(t *testing.T) { cancelled := make(chan struct{}) - shutdownCh := make(chan struct{}) + p := testProvider() ui := new(cli.MockUi) c := &PlanCommand{ @@ -880,8 +880,10 @@ func TestPlan_shutdown(t *testing.T) { }, nil } - if code := c.Run([]string{testFixturePath("apply-shutdown")}); code != 0 { - t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String()) + if code := c.Run([]string{testFixturePath("apply-shutdown")}); code != 1 { + // FIXME: we should be able to avoid the error during evaluation + // the early exit isn't caught before the interpolation is evaluated + t.Fatal(ui.OutputWriter.String()) } select { From ef8ed1e275b61ddf6da2a8a72a8e57fc1d42852b Mon Sep 17 00:00:00 2001 From: James Bardin Date: Mon, 12 Feb 2018 11:52:21 -0500 Subject: [PATCH 026/156] coalesce the backened interrupt code Moves the nested select statements for backend operations into a single function. The only difference in this part was that apply called PersistState, which should be harmless regardless of the type of operation being run. --- backend/local/backend.go | 48 ++++++++++++++++++++++++++++++++ backend/local/backend_apply.go | 36 +----------------------- backend/local/backend_plan.go | 22 +-------------- backend/local/backend_refresh.go | 22 +-------------- 4 files changed, 51 insertions(+), 77 deletions(-) diff --git a/backend/local/backend.go b/backend/local/backend.go index bbebe3e18..b42aedb17 100644 --- a/backend/local/backend.go +++ b/backend/local/backend.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "io/ioutil" + "log" "os" "path/filepath" "sort" @@ -273,6 +274,53 @@ func (b *Local) Operation(ctx context.Context, op *backend.Operation) (*backend. return runningOp, nil } +// opWait wats for the operation to complete, and a stop signal or a +// cancelation signal. +func (b *Local) opWait( + doneCh <-chan struct{}, + stopCtx context.Context, + cancelCtx context.Context, + tfCtx *terraform.Context, + opState state.State) (canceled bool) { + // Wait for the operation to finish or for us to be interrupted so + // we can handle it properly. + select { + case <-stopCtx.Done(): + if b.CLI != nil { + b.CLI.Output("stopping operation...") + } + + // try to force a PersistState just in case the process is terminated + // before we can complete. + if err := opState.PersistState(); err != nil { + // We can't error out from here, but warn the user if there was an error. + // If this isn't transient, we will catch it again below, and + // attempt to save the state another way. + if b.CLI != nil { + b.CLI.Error(fmt.Sprintf(earlyStateWriteErrorFmt, err)) + } + } + + // Stop execution + go tfCtx.Stop() + + select { + case <-cancelCtx.Done(): + log.Println("[WARN] running operation canceled") + // if the operation was canceled, we need to return immediately + canceled = true + case <-doneCh: + } + case <-cancelCtx.Done(): + // this should not be called without first attempting to stop the + // operation + log.Println("[ERROR] running operation canceled without Stop") + canceled = true + case <-doneCh: + } + return +} + // Colorize returns the Colorize structure that can be used for colorizing // output. This is gauranteed to always return a non-nil value and so is useful // as a helper to wrap any potentially colored strings. diff --git a/backend/local/backend_apply.go b/backend/local/backend_apply.go index f4351af6f..da8c684bc 100644 --- a/backend/local/backend_apply.go +++ b/backend/local/backend_apply.go @@ -154,42 +154,8 @@ func (b *Local) opApply( applyState = tfCtx.State() }() - // Wait for the apply to finish or for us to be interrupted so - // we can handle it properly. - err = nil - select { - case <-stopCtx.Done(): - if b.CLI != nil { - b.CLI.Output("stopping apply operation...") - } - - // try to force a PersistState just in case the process is terminated - // before we can complete. - if err := opState.PersistState(); err != nil { - // We can't error out from here, but warn the user if there was an error. - // If this isn't transient, we will catch it again below, and - // attempt to save the state another way. - if b.CLI != nil { - b.CLI.Error(fmt.Sprintf(earlyStateWriteErrorFmt, err)) - } - } - - // Stop execution - go tfCtx.Stop() - - select { - case <-cancelCtx.Done(): - log.Println("[WARN] running operation canceled") - // if the operation was canceled, we need to return immediately - return - case <-doneCh: - } - case <-cancelCtx.Done(): - // this should not be called without first attempting to stop the - // operation - log.Println("[ERROR] running operation canceled without Stop") + if b.opWait(doneCh, stopCtx, cancelCtx, tfCtx, opState) { return - case <-doneCh: } // Store the final state diff --git a/backend/local/backend_plan.go b/backend/local/backend_plan.go index d8ae0fe90..ebf053192 100644 --- a/backend/local/backend_plan.go +++ b/backend/local/backend_plan.go @@ -112,28 +112,8 @@ func (b *Local) opPlan( plan, planErr = tfCtx.Plan() }() - select { - case <-stopCtx.Done(): - if b.CLI != nil { - b.CLI.Output("stopping plan operation...") - } - - // Stop execution - go tfCtx.Stop() - - select { - case <-cancelCtx.Done(): - log.Println("[WARN] running operation canceled") - // if the operation was canceled, we need to return immediately - return - case <-doneCh: - } - case <-cancelCtx.Done(): - // this should not be called without first attempting to stop the - // operation - log.Println("[ERROR] running operation canceled without Stop") + if b.opWait(doneCh, stopCtx, cancelCtx, tfCtx, opState) { return - case <-doneCh: } if planErr != nil { diff --git a/backend/local/backend_refresh.go b/backend/local/backend_refresh.go index 216147b3e..959f969a3 100644 --- a/backend/local/backend_refresh.go +++ b/backend/local/backend_refresh.go @@ -91,28 +91,8 @@ func (b *Local) opRefresh( log.Printf("[INFO] backend/local: refresh calling Refresh") }() - select { - case <-stopCtx.Done(): - if b.CLI != nil { - b.CLI.Output("stopping refresh operation...") - } - - // Stop execution - go tfCtx.Stop() - - select { - case <-cancelCtx.Done(): - log.Println("[WARN] running operation canceled") - // if the operation was canceled, we need to return immediately - return - case <-doneCh: - } - case <-cancelCtx.Done(): - // this should not be called without first attempting to stop the - // operation - log.Println("[ERROR] running operation canceled without Stop") + if b.opWait(doneCh, stopCtx, cancelCtx, tfCtx, opState) { return - case <-doneCh: } // write the resulting state to the running op From 4b598860bb5f841387ca60ea08935019bf52156c Mon Sep 17 00:00:00 2001 From: Michael Mell Date: Mon, 12 Feb 2018 19:33:57 -0800 Subject: [PATCH 027/156] website: document the naming conventions for outputs --- website/docs/configuration/outputs.html.md | 3 ++- website/intro/getting-started/outputs.html.md | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/website/docs/configuration/outputs.html.md b/website/docs/configuration/outputs.html.md index 4480b4325..dadc1f253 100644 --- a/website/docs/configuration/outputs.html.md +++ b/website/docs/configuration/outputs.html.md @@ -49,7 +49,8 @@ output "addresses" { The `output` block configures a single output variable. Multiple output variables can be configured with multiple output blocks. The `NAME` given to the output block is the name used to reference -the output variable. +the output variable. It must conform to Terraform variable naming +conventions if it is to be used as an input to other modules. Within the block (the `{ }`) is configuration for the output. These are the parameters that can be set: diff --git a/website/intro/getting-started/outputs.html.md b/website/intro/getting-started/outputs.html.md index b811b0c63..51100a77b 100644 --- a/website/intro/getting-started/outputs.html.md +++ b/website/intro/getting-started/outputs.html.md @@ -35,7 +35,9 @@ output "ip" { } ``` -This defines an output variable named "ip". The `value` field +This defines an output variable named "ip". The name of the variable +must conform to Terraform variable naming conventions if it is +to be used as an input to other modules. The `value` field specifies what the value will be, and almost always contains one or more interpolations, since the output data is typically dynamic. In this case, we're outputting the From 8566ade0c3cf67628e235bfebf12cabc1b4529df Mon Sep 17 00:00:00 2001 From: "JeongHoon Byun (aka Outsider)" Date: Tue, 13 Feb 2018 12:36:52 +0900 Subject: [PATCH 028/156] website: fix incorrect anchor links for registry API pagination --- website/docs/registry/api.html.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/website/docs/registry/api.html.md b/website/docs/registry/api.html.md index d5f342b21..0e1ba6f8a 100644 --- a/website/docs/registry/api.html.md +++ b/website/docs/registry/api.html.md @@ -61,7 +61,7 @@ These endpoints list modules according to some criteria. ### Query Parameters -- `offset`, `limit` `(int: )` - See [Pagination](#Pagination) for details. +- `offset`, `limit` `(int: )` - See [Pagination](#pagination) for details. - `provider` `(string: )` - Limits modules to a specific provider. - `verified` `(bool: )` - If `true`, limits results to only verified modules. Any other value including none returns all modules _including_ @@ -127,7 +127,7 @@ This endpoint allows searching modules. - `q` `(string: )` - The search string. Search syntax understood depends on registry implementation. The public registry supports basic keyword or phrase searches. -- `offset`, `limit` `(int: )` - See [Pagination](#Pagination) for details. +- `offset`, `limit` `(int: )` - See [Pagination](#pagination) for details. - `provider` `(string: )` - Limits results to a specific provider. - `namespace` `(string: )` - Limits results to a specific namespace. - `verified` `(bool: )` - If `true`, limits results to only verified @@ -345,7 +345,7 @@ This endpoint returns the latest version of each provider for a module. ### Query Parameters -- `offset`, `limit` `(int: )` - See [Pagination](#Pagination) for details. +- `offset`, `limit` `(int: )` - See [Pagination](#pagination) for details. ### Sample Request From 74598ff9fe81b6feb51fc1df1b8c8e960da5bb79 Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Tue, 13 Feb 2018 06:26:02 -0500 Subject: [PATCH 029/156] deps: Bump terraform-provider-aws@v1.9.0 and aws-sdk-go@v1.12.73 --- .../aws/aws-sdk-go/aws/endpoints/defaults.go | 11 + .../aws/aws-sdk-go/aws/session/env_config.go | 8 + .../aws/aws-sdk-go/aws/session/session.go | 14 +- .../github.com/aws/aws-sdk-go/aws/version.go | 2 +- .../aws/aws-sdk-go/service/acm/api.go | 79 +- .../service/applicationautoscaling/api.go | 32 - .../aws/aws-sdk-go/service/athena/api.go | 36 - .../aws/aws-sdk-go/service/autoscaling/api.go | 134 - .../aws/aws-sdk-go/service/batch/api.go | 56 - .../aws/aws-sdk-go/service/cloud9/api.go | 2143 ++++++++++++++++ .../aws/aws-sdk-go/service/cloud9/doc.go | 58 + .../aws/aws-sdk-go/service/cloud9/errors.go | 48 + .../aws/aws-sdk-go/service/cloud9/service.go | 95 + .../aws-sdk-go/service/cloudformation/api.go | 112 - .../aws/aws-sdk-go/service/cloudfront/api.go | 110 - .../aws/aws-sdk-go/service/cloudtrail/api.go | 37 - .../aws/aws-sdk-go/service/cloudwatch/api.go | 40 - .../service/cloudwatchevents/api.go | 41 - .../aws-sdk-go/service/cloudwatchlogs/api.go | 82 - .../aws/aws-sdk-go/service/codebuild/api.go | 51 - .../aws/aws-sdk-go/service/codecommit/api.go | 91 - .../aws/aws-sdk-go/service/codedeploy/api.go | 122 - .../aws-sdk-go/service/codepipeline/api.go | 97 - .../aws-sdk-go/service/cognitoidentity/api.go | 40 - .../service/cognitoidentityprovider/api.go | 245 -- .../aws-sdk-go/service/configservice/api.go | 81 - .../service/databasemigrationservice/api.go | 573 ++++- .../aws/aws-sdk-go/service/devicefarm/api.go | 135 - .../aws-sdk-go/service/directconnect/api.go | 88 - .../service/directoryservice/api.go | 99 - .../aws/aws-sdk-go/service/dynamodb/api.go | 466 ++-- .../aws/aws-sdk-go/service/dynamodb/errors.go | 19 +- .../aws/aws-sdk-go/service/ec2/api.go | 811 ------ .../aws/aws-sdk-go/service/ecr/api.go | 58 - .../aws/aws-sdk-go/service/ecs/api.go | 101 - .../aws/aws-sdk-go/service/efs/api.go | 24 - .../aws/aws-sdk-go/service/elasticache/api.go | 112 - .../service/elasticbeanstalk/api.go | 128 - .../aws/aws-sdk-go/service/elb/api.go | 84 - .../aws/aws-sdk-go/service/elbv2/api.go | 91 - .../aws/aws-sdk-go/service/emr/api.go | 127 - .../aws/aws-sdk-go/service/firehose/api.go | 48 - .../aws/aws-sdk-go/service/gamelift/api.go | 782 +++--- .../aws/aws-sdk-go/service/gamelift/doc.go | 34 +- .../aws/aws-sdk-go/service/glue/api.go | 448 ++-- .../aws/aws-sdk-go/service/guardduty/api.go | 106 - .../aws/aws-sdk-go/service/iam/api.go | 281 -- .../aws/aws-sdk-go/service/inspector/api.go | 93 - .../aws/aws-sdk-go/service/kinesis/api.go | 754 ++++-- .../aws/aws-sdk-go/service/kinesis/doc.go | 4 +- .../aws/aws-sdk-go/service/kinesis/errors.go | 11 +- .../aws/aws-sdk-go/service/kms/api.go | 75 - .../aws/aws-sdk-go/service/lambda/api.go | 64 - .../aws/aws-sdk-go/service/lightsail/api.go | 174 -- .../aws/aws-sdk-go/service/mediastore/api.go | 602 ++++- .../aws-sdk-go/service/mediastore/errors.go | 6 + .../aws/aws-sdk-go/service/mq/api.go | 45 - .../aws/aws-sdk-go/service/opsworks/api.go | 494 ++-- .../aws/aws-sdk-go/service/opsworks/doc.go | 5 + .../aws-sdk-go/service/opsworks/waiters.go | 5 - .../aws/aws-sdk-go/service/rds/api.go | 241 -- .../aws/aws-sdk-go/service/redshift/api.go | 162 -- .../aws/aws-sdk-go/service/route53/api.go | 141 -- .../aws/aws-sdk-go/service/s3/api.go | 250 -- .../aws-sdk-go/service/servicecatalog/api.go | 2249 +++++++++++++++-- .../service/servicecatalog/errors.go | 4 +- .../service/servicediscovery/api.go | 956 ++++--- .../service/servicediscovery/doc.go | 6 +- .../service/servicediscovery/errors.go | 5 +- .../aws/aws-sdk-go/service/ses/api.go | 180 -- .../aws/aws-sdk-go/service/sfn/api.go | 61 - .../aws/aws-sdk-go/service/sns/api.go | 65 - .../aws/aws-sdk-go/service/sqs/api.go | 49 - .../aws/aws-sdk-go/service/ssm/api.go | 570 +++-- .../aws/aws-sdk-go/service/sts/api.go | 17 - .../aws/aws-sdk-go/service/waf/api.go | 183 -- .../aws/aws-sdk-go/service/wafregional/api.go | 8 - .../terraform-provider-aws/CHANGELOG.md | 73 + .../aws/auth_helpers.go | 30 +- .../terraform-provider-aws/aws/config.go | 82 +- .../aws/data_source_aws_acm_certificate.go | 130 +- ...ource_aws_elastic_beanstalk_hosted_zone.go | 56 + .../aws/data_source_aws_iam_policy.go | 40 + .../data_source_aws_iam_policy_document.go | 45 +- .../aws/data_source_aws_kms_alias.go | 31 +- .../aws/data_source_aws_lb_listener.go | 56 +- .../aws/data_source_aws_network_interface.go | 17 +- .../aws/data_source_aws_region.go | 100 +- .../aws/data_source_aws_s3_bucket.go | 8 +- .../aws/data_source_aws_ssm_parameter.go | 3 +- .../aws/data_source_aws_vpc_endpoint.go | 98 +- .../data_source_aws_vpc_endpoint_service.go | 86 +- .../aws/data_source_aws_vpn_gateway.go | 14 + .../aws/hosted_zones.go | 9 +- .../aws/iam_policy_model.go | 83 + .../terraform-provider-aws/aws/provider.go | 64 +- .../aws/resource_aws_acm_certificate.go | 244 ++ ...resource_aws_acm_certificate_validation.go | 142 ++ ...e_aws_api_gateway_documentation_version.go | 137 + .../aws/resource_aws_appautoscaling_policy.go | 19 +- .../aws/resource_aws_appautoscaling_target.go | 14 +- .../aws/resource_aws_athena_named_query.go | 21 +- .../resource_aws_cloud9_environment_ec2.go | 218 ++ .../aws/resource_aws_codebuild_project.go | 2 +- .../aws/resource_aws_cognito_user_group.go | 174 ++ .../aws/resource_aws_db_parameter_group.go | 70 +- .../resource_aws_dx_connection_association.go | 19 +- .../aws/resource_aws_dynamodb_table.go | 27 +- .../aws/resource_aws_dynamodb_table_item.go | 295 +++ .../aws/resource_aws_ecr_lifecycle_policy.go | 56 +- .../aws/resource_aws_ecs_service.go | 131 +- .../aws/resource_aws_guardduty_ipset.go | 210 ++ .../resource_aws_guardduty_threatintelset.go | 211 ++ .../aws/resource_aws_instance.go | 63 +- .../aws/resource_aws_iot_topic_rule.go | 604 +++++ ...ce_aws_kinesis_firehose_delivery_stream.go | 238 +- .../aws/resource_aws_kinesis_stream.go | 16 +- .../aws/resource_aws_mq_broker.go | 32 +- .../aws/resource_aws_route53_record.go | 9 +- .../aws/resource_aws_s3_bucket.go | 8 +- ..._service_discovery_public_dns_namespace.go | 5 + .../resource_aws_service_discovery_service.go | 4 + .../aws/resource_aws_ses_template.go | 15 +- .../resource_aws_sns_platform_application.go | 286 +++ .../aws/resource_aws_sns_topic.go | 94 +- .../resource_aws_sns_topic_subscription.go | 28 + .../resource_aws_ssm_resource_data_sync.go | 7 +- .../aws/resource_aws_volume_attachment.go | 8 +- .../aws/resource_aws_vpc_endpoint.go | 475 ++-- ...ws_vpc_endpoint_connection_notification.go | 155 ++ ...ws_vpc_endpoint_route_table_association.go | 70 +- .../aws/resource_aws_vpc_endpoint_service.go | 279 ++ ..._vpc_endpoint_service_allowed_principal.go | 123 + ...rce_aws_vpc_endpoint_subnet_association.go | 128 + .../aws/resource_aws_vpn_gateway.go | 21 +- .../terraform-provider-aws/aws/structure.go | 288 ++- .../terraform-provider-aws/aws/tagsACM.go | 103 + .../terraform-provider-aws/aws/validators.go | 264 +- vendor/vendor.json | 902 +++---- 139 files changed, 14329 insertions(+), 8870 deletions(-) create mode 100644 vendor/github.com/aws/aws-sdk-go/service/cloud9/api.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/cloud9/doc.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/cloud9/errors.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/cloud9/service.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_elastic_beanstalk_hosted_zone.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_iam_policy.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_acm_certificate.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_acm_certificate_validation.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_api_gateway_documentation_version.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_cloud9_environment_ec2.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_cognito_user_group.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_table_item.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_guardduty_ipset.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_guardduty_threatintelset.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_iot_topic_rule.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sns_platform_application.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint_connection_notification.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint_service.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint_service_allowed_principal.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint_subnet_association.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/tagsACM.go diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go index b2405175a..9e728feee 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go @@ -1182,6 +1182,7 @@ var awsPartition = partition{ "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, "us-east-1": endpoint{}, + "us-east-2": endpoint{}, "us-west-1": endpoint{}, "us-west-2": endpoint{}, }, @@ -1761,7 +1762,9 @@ var awsPartition = partition{ Endpoints: endpoints{ "ap-northeast-1": endpoint{}, + "ap-southeast-1": endpoint{}, "ap-southeast-2": endpoint{}, + "ca-central-1": endpoint{}, "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, "eu-west-2": endpoint{}, @@ -1940,6 +1943,8 @@ var awsPartition = partition{ Endpoints: endpoints{ "ap-northeast-1": endpoint{}, + "ap-southeast-2": endpoint{}, + "eu-central-1": endpoint{}, "eu-west-1": endpoint{}, "us-east-1": endpoint{}, "us-west-1": endpoint{}, @@ -2261,6 +2266,12 @@ var awscnPartition = partition{ "cn-northwest-1": endpoint{}, }, }, + "sms": service{ + + Endpoints: endpoints{ + "cn-north-1": endpoint{}, + }, + }, "snowball": service{ Endpoints: endpoints{ diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go b/vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go index f1adcf481..12b452177 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/session/env_config.go @@ -5,6 +5,7 @@ import ( "strconv" "github.com/aws/aws-sdk-go/aws/credentials" + "github.com/aws/aws-sdk-go/aws/defaults" ) // EnvProviderName provides a name of the provider when config is loaded from environment. @@ -176,6 +177,13 @@ func envConfigLoad(enableSharedConfig bool) envConfig { setFromEnvVal(&cfg.SharedCredentialsFile, sharedCredsFileEnvKey) setFromEnvVal(&cfg.SharedConfigFile, sharedConfigFileEnvKey) + if len(cfg.SharedCredentialsFile) == 0 { + cfg.SharedCredentialsFile = defaults.SharedCredentialsFilename() + } + if len(cfg.SharedConfigFile) == 0 { + cfg.SharedConfigFile = defaults.SharedConfigFilename() + } + cfg.CustomCABundle = os.Getenv("AWS_CA_BUNDLE") return cfg diff --git a/vendor/github.com/aws/aws-sdk-go/aws/session/session.go b/vendor/github.com/aws/aws-sdk-go/aws/session/session.go index 9f75d5ac5..2fc789d6d 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/session/session.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/session/session.go @@ -58,7 +58,12 @@ func New(cfgs ...*aws.Config) *Session { envCfg := loadEnvConfig() if envCfg.EnableSharedConfig { - s, err := newSession(Options{}, envCfg, cfgs...) + var cfg aws.Config + cfg.MergeIn(cfgs...) + s, err := NewSessionWithOptions(Options{ + Config: cfg, + SharedConfigState: SharedConfigEnable, + }) if err != nil { // Old session.New expected all errors to be discovered when // a request is made, and would report the errors then. This @@ -243,13 +248,6 @@ func NewSessionWithOptions(opts Options) (*Session, error) { envCfg.EnableSharedConfig = true } - if len(envCfg.SharedCredentialsFile) == 0 { - envCfg.SharedCredentialsFile = defaults.SharedCredentialsFilename() - } - if len(envCfg.SharedConfigFile) == 0 { - envCfg.SharedConfigFile = defaults.SharedConfigFilename() - } - // Only use AWS_CA_BUNDLE if session option is not provided. if len(envCfg.CustomCABundle) != 0 && opts.CustomCABundle == nil { f, err := os.Open(envCfg.CustomCABundle) diff --git a/vendor/github.com/aws/aws-sdk-go/aws/version.go b/vendor/github.com/aws/aws-sdk-go/aws/version.go index f0f5fa232..12e3c7788 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/version.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.12.70" +const SDKVersion = "1.12.73" diff --git a/vendor/github.com/aws/aws-sdk-go/service/acm/api.go b/vendor/github.com/aws/aws-sdk-go/service/acm/api.go index ac561d73e..b6af6aaa1 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/acm/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/acm/api.go @@ -346,7 +346,7 @@ func (c *ACM) GetCertificateRequest(input *GetCertificateInput) (req *request.Re // GetCertificate API operation for AWS Certificate Manager. // // Retrieves a certificate specified by an ARN and its certificate chain . The -// chain is an ordered list of certificates that contains the end entity ertificate, +// chain is an ordered list of certificates that contains the end entity certificate, // intermediate certificates of subordinate CAs, and the root certificate in // that order. The certificate and certificate chain are base64 encoded. If // you want to decode the certificate to see the individual fields, you can @@ -438,20 +438,18 @@ func (c *ACM) ImportCertificateRequest(input *ImportCertificateInput) (req *requ // ImportCertificate API operation for AWS Certificate Manager. // // Imports a certificate into AWS Certificate Manager (ACM) to use with services -// that are integrated with ACM. For more information, see Integrated Services -// (http://docs.aws.amazon.com/acm/latest/userguide/acm-services.html). +// that are integrated with ACM. Note that integrated services (http://docs.aws.amazon.com/acm/latest/userguide/acm-services.html) +// allow only certificate types and keys they support to be associated with +// their resources. Further, their support differs depending on whether the +// certificate is imported into IAM or into ACM. For more information, see the +// documentation for each service. For more information about importing certificates +// into ACM, see Importing Certificates (http://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) +// in the AWS Certificate Manager User Guide. // // ACM does not provide managed renewal (http://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html) // for certificates that you import. // -// For more information about importing certificates into ACM, including the -// differences between certificates that you import and those that ACM provides, -// see Importing Certificates (http://docs.aws.amazon.com/acm/latest/userguide/import-certificate.html) -// in the AWS Certificate Manager User Guide. -// -// In general, you can import almost any valid certificate. However, services -// integrated with ACM allow only certificate types they support to be associated -// with their resources. The following guidelines are also important: +// Note the following guidelines when importing third party certificates: // // * You must enter the private key that matches the certificate you are // importing. @@ -472,17 +470,17 @@ func (c *ACM) ImportCertificateRequest(input *ImportCertificateInput) (req *requ // // * The Issuer field must not be empty. // -// * The OCSP authority URL must not exceed 1000 characters. +// * The OCSP authority URL, if present, must not exceed 1000 characters. // -// * To import a new certificate, omit the CertificateArn field. Include -// this field only when you want to replace a previously imported certificate. +// * To import a new certificate, omit the CertificateArn argument. Include +// this argument only when you want to replace a previously imported certificate. // // * When you import a certificate by using the CLI or one of the SDKs, you -// must specify the certificate, certificate chain, and private key parameters -// as file names preceded by file://. For example, you can specify a certificate -// saved in the C:\temp folder as C:\temp\certificate_to_import.pem. If you -// are making an HTTP or HTTPS Query request, include these parameters as -// BLOBs. +// must specify the certificate, the certificate chain, and the private key +// by their file names preceded by file://. For example, you can specify +// a certificate saved in the C:\temp folder as file://C:\temp\certificate_to_import.pem. +// If you are making an HTTP or HTTPS Query request, include these arguments +// as BLOBs. // // This operation returns the Amazon Resource Name (ARN) (http://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) // of the imported certificate. @@ -1045,7 +1043,6 @@ func (c *ACM) ResendValidationEmailWithContext(ctx aws.Context, input *ResendVal return out, req.Send() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/AddTagsToCertificateRequest type AddTagsToCertificateInput struct { _ struct{} `type:"structure"` @@ -1120,7 +1117,6 @@ func (s *AddTagsToCertificateInput) SetTags(v []*Tag) *AddTagsToCertificateInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/AddTagsToCertificateOutput type AddTagsToCertificateOutput struct { _ struct{} `type:"structure"` } @@ -1137,7 +1133,6 @@ func (s AddTagsToCertificateOutput) GoString() string { // Contains metadata about an ACM certificate. This structure is returned in // the response to a DescribeCertificate request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/CertificateDetail type CertificateDetail struct { _ struct{} `type:"structure"` @@ -1392,7 +1387,6 @@ func (s *CertificateDetail) SetType(v string) *CertificateDetail { } // This structure is returned in the response object of ListCertificates action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/CertificateSummary type CertificateSummary struct { _ struct{} `type:"structure"` @@ -1431,7 +1425,6 @@ func (s *CertificateSummary) SetDomainName(v string) *CertificateSummary { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/DeleteCertificateRequest type DeleteCertificateInput struct { _ struct{} `type:"structure"` @@ -1479,7 +1472,6 @@ func (s *DeleteCertificateInput) SetCertificateArn(v string) *DeleteCertificateI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/DeleteCertificateOutput type DeleteCertificateOutput struct { _ struct{} `type:"structure"` } @@ -1494,7 +1486,6 @@ func (s DeleteCertificateOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/DescribeCertificateRequest type DescribeCertificateInput struct { _ struct{} `type:"structure"` @@ -1542,7 +1533,6 @@ func (s *DescribeCertificateInput) SetCertificateArn(v string) *DescribeCertific return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/DescribeCertificateResponse type DescribeCertificateOutput struct { _ struct{} `type:"structure"` @@ -1567,7 +1557,6 @@ func (s *DescribeCertificateOutput) SetCertificate(v *CertificateDetail) *Descri } // Contains information about the validation of each domain name in the certificate. -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/DomainValidation type DomainValidation struct { _ struct{} `type:"structure"` @@ -1649,7 +1638,6 @@ func (s *DomainValidation) SetValidationStatus(v string) *DomainValidation { // Contains information about the domain names that you want ACM to use to send // you emails that enable you to validate domain ownership. -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/DomainValidationOption type DomainValidationOption struct { _ struct{} `type:"structure"` @@ -1726,7 +1714,6 @@ func (s *DomainValidationOption) SetValidationDomain(v string) *DomainValidation // The Extended Key Usage X.509 v3 extension defines one or more purposes for // which the public key can be used. This is in addition to or in place of the // basic purposes specified by the Key Usage extension. -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ExtendedKeyUsage type ExtendedKeyUsage struct { _ struct{} `type:"structure"` @@ -1781,7 +1768,6 @@ func (s *ExtendedKeyUsage) SetOID(v string) *ExtendedKeyUsage { // This structure can be used in the ListCertificates action to filter the output // of the certificate list. -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/Filters type Filters struct { _ struct{} `type:"structure"` @@ -1823,7 +1809,6 @@ func (s *Filters) SetKeyUsage(v []*string) *Filters { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/GetCertificateRequest type GetCertificateInput struct { _ struct{} `type:"structure"` @@ -1870,7 +1855,6 @@ func (s *GetCertificateInput) SetCertificateArn(v string) *GetCertificateInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/GetCertificateResponse type GetCertificateOutput struct { _ struct{} `type:"structure"` @@ -1905,7 +1889,6 @@ func (s *GetCertificateOutput) SetCertificateChain(v string) *GetCertificateOutp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ImportCertificateRequest type ImportCertificateInput struct { _ struct{} `type:"structure"` @@ -1996,7 +1979,6 @@ func (s *ImportCertificateInput) SetPrivateKey(v []byte) *ImportCertificateInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ImportCertificateResponse type ImportCertificateOutput struct { _ struct{} `type:"structure"` @@ -2023,7 +2005,6 @@ func (s *ImportCertificateOutput) SetCertificateArn(v string) *ImportCertificate // The Key Usage X.509 v3 extension defines the purpose of the public key contained // in the certificate. -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/KeyUsage type KeyUsage struct { _ struct{} `type:"structure"` @@ -2047,21 +2028,13 @@ func (s *KeyUsage) SetName(v string) *KeyUsage { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ListCertificatesRequest type ListCertificatesInput struct { _ struct{} `type:"structure"` // Filter the certificate list by status value. CertificateStatuses []*string `type:"list"` - // Filter the certificate list by one or more of the following values. For more - // information, see the Filters structure. - // - // * extendedKeyUsage - // - // * keyUsage - // - // * keyTypes + // Filter the certificate list. For more information, see the Filters structure. Includes *Filters `type:"structure"` // Use this parameter when paginating results to specify the maximum number @@ -2126,7 +2099,6 @@ func (s *ListCertificatesInput) SetNextToken(v string) *ListCertificatesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ListCertificatesResponse type ListCertificatesOutput struct { _ struct{} `type:"structure"` @@ -2160,7 +2132,6 @@ func (s *ListCertificatesOutput) SetNextToken(v string) *ListCertificatesOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ListTagsForCertificateRequest type ListTagsForCertificateInput struct { _ struct{} `type:"structure"` @@ -2208,7 +2179,6 @@ func (s *ListTagsForCertificateInput) SetCertificateArn(v string) *ListTagsForCe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ListTagsForCertificateResponse type ListTagsForCertificateOutput struct { _ struct{} `type:"structure"` @@ -2232,7 +2202,6 @@ func (s *ListTagsForCertificateOutput) SetTags(v []*Tag) *ListTagsForCertificate return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/RemoveTagsFromCertificateRequest type RemoveTagsFromCertificateInput struct { _ struct{} `type:"structure"` @@ -2307,7 +2276,6 @@ func (s *RemoveTagsFromCertificateInput) SetTags(v []*Tag) *RemoveTagsFromCertif return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/RemoveTagsFromCertificateOutput type RemoveTagsFromCertificateOutput struct { _ struct{} `type:"structure"` } @@ -2325,7 +2293,6 @@ func (s RemoveTagsFromCertificateOutput) GoString() string { // Contains information about the status of ACM's managed renewal (http://docs.aws.amazon.com/acm/latest/userguide/acm-renewal.html) // for the certificate. This structure exists only when the certificate type // is AMAZON_ISSUED. -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/RenewalSummary type RenewalSummary struct { _ struct{} `type:"structure"` @@ -2367,7 +2334,6 @@ func (s *RenewalSummary) SetRenewalStatus(v string) *RenewalSummary { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/RequestCertificateRequest type RequestCertificateInput struct { _ struct{} `type:"structure"` @@ -2383,8 +2349,8 @@ type RequestCertificateInput struct { // DomainName is a required field DomainName *string `min:"1" type:"string" required:"true"` - // The domain name that you want ACM to use to send you emails so taht your - // can validate domain ownership. + // The domain name that you want ACM to use to send you emails so that you can + // validate domain ownership. DomainValidationOptions []*DomainValidationOption `min:"1" type:"list"` // Customer chosen string that can be used to distinguish between calls to RequestCertificate. @@ -2498,7 +2464,6 @@ func (s *RequestCertificateInput) SetValidationMethod(v string) *RequestCertific return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/RequestCertificateResponse type RequestCertificateOutput struct { _ struct{} `type:"structure"` @@ -2525,7 +2490,6 @@ func (s *RequestCertificateOutput) SetCertificateArn(v string) *RequestCertifica return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ResendValidationEmailRequest type ResendValidationEmailInput struct { _ struct{} `type:"structure"` @@ -2623,7 +2587,6 @@ func (s *ResendValidationEmailInput) SetValidationDomain(v string) *ResendValida return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ResendValidationEmailOutput type ResendValidationEmailOutput struct { _ struct{} `type:"structure"` } @@ -2640,7 +2603,6 @@ func (s ResendValidationEmailOutput) GoString() string { // Contains a DNS record value that you can use to can use to validate ownership // or control of a domain. This is used by the DescribeCertificate action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/ResourceRecord type ResourceRecord struct { _ struct{} `type:"structure"` @@ -2691,7 +2653,6 @@ func (s *ResourceRecord) SetValue(v string) *ResourceRecord { } // A key-value pair that identifies or specifies metadata about an ACM resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/acm-2015-12-08/Tag type Tag struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/applicationautoscaling/api.go b/vendor/github.com/aws/aws-sdk-go/service/applicationautoscaling/api.go index d775e55aa..f8e763571 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/applicationautoscaling/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/applicationautoscaling/api.go @@ -1196,7 +1196,6 @@ func (c *ApplicationAutoScaling) RegisterScalableTargetWithContext(ctx aws.Conte } // Represents a CloudWatch alarm associated with a scaling policy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/Alarm type Alarm struct { _ struct{} `type:"structure"` @@ -1234,7 +1233,6 @@ func (s *Alarm) SetAlarmName(v string) *Alarm { } // Configures a customized metric for a target tracking policy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/CustomizedMetricSpecification type CustomizedMetricSpecification struct { _ struct{} `type:"structure"` @@ -1329,7 +1327,6 @@ func (s *CustomizedMetricSpecification) SetUnit(v string) *CustomizedMetricSpeci return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DeleteScalingPolicyRequest type DeleteScalingPolicyInput struct { _ struct{} `type:"structure"` @@ -1467,7 +1464,6 @@ func (s *DeleteScalingPolicyInput) SetServiceNamespace(v string) *DeleteScalingP return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DeleteScalingPolicyResponse type DeleteScalingPolicyOutput struct { _ struct{} `type:"structure"` } @@ -1482,7 +1478,6 @@ func (s DeleteScalingPolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DeleteScheduledActionRequest type DeleteScheduledActionInput struct { _ struct{} `type:"structure"` @@ -1615,7 +1610,6 @@ func (s *DeleteScheduledActionInput) SetServiceNamespace(v string) *DeleteSchedu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DeleteScheduledActionResponse type DeleteScheduledActionOutput struct { _ struct{} `type:"structure"` } @@ -1630,7 +1624,6 @@ func (s DeleteScheduledActionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DeregisterScalableTargetRequest type DeregisterScalableTargetInput struct { _ struct{} `type:"structure"` @@ -1751,7 +1744,6 @@ func (s *DeregisterScalableTargetInput) SetServiceNamespace(v string) *Deregiste return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DeregisterScalableTargetResponse type DeregisterScalableTargetOutput struct { _ struct{} `type:"structure"` } @@ -1766,7 +1758,6 @@ func (s DeregisterScalableTargetOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DescribeScalableTargetsRequest type DescribeScalableTargetsInput struct { _ struct{} `type:"structure"` @@ -1900,7 +1891,6 @@ func (s *DescribeScalableTargetsInput) SetServiceNamespace(v string) *DescribeSc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DescribeScalableTargetsResponse type DescribeScalableTargetsOutput struct { _ struct{} `type:"structure"` @@ -1934,7 +1924,6 @@ func (s *DescribeScalableTargetsOutput) SetScalableTargets(v []*ScalableTarget) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DescribeScalingActivitiesRequest type DescribeScalingActivitiesInput struct { _ struct{} `type:"structure"` @@ -2071,7 +2060,6 @@ func (s *DescribeScalingActivitiesInput) SetServiceNamespace(v string) *Describe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DescribeScalingActivitiesResponse type DescribeScalingActivitiesOutput struct { _ struct{} `type:"structure"` @@ -2105,7 +2093,6 @@ func (s *DescribeScalingActivitiesOutput) SetScalingActivities(v []*ScalingActiv return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DescribeScalingPoliciesRequest type DescribeScalingPoliciesInput struct { _ struct{} `type:"structure"` @@ -2251,7 +2238,6 @@ func (s *DescribeScalingPoliciesInput) SetServiceNamespace(v string) *DescribeSc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DescribeScalingPoliciesResponse type DescribeScalingPoliciesOutput struct { _ struct{} `type:"structure"` @@ -2285,7 +2271,6 @@ func (s *DescribeScalingPoliciesOutput) SetScalingPolicies(v []*ScalingPolicy) * return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DescribeScheduledActionsRequest type DescribeScheduledActionsInput struct { _ struct{} `type:"structure"` @@ -2431,7 +2416,6 @@ func (s *DescribeScheduledActionsInput) SetServiceNamespace(v string) *DescribeS return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DescribeScheduledActionsResponse type DescribeScheduledActionsOutput struct { _ struct{} `type:"structure"` @@ -2466,7 +2450,6 @@ func (s *DescribeScheduledActionsOutput) SetScheduledActions(v []*ScheduledActio } // Describes the dimension of a metric. -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/MetricDimension type MetricDimension struct { _ struct{} `type:"structure"` @@ -2520,7 +2503,6 @@ func (s *MetricDimension) SetValue(v string) *MetricDimension { } // Configures a predefined metric for a target tracking policy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/PredefinedMetricSpecification type PredefinedMetricSpecification struct { _ struct{} `type:"structure"` @@ -2583,7 +2565,6 @@ func (s *PredefinedMetricSpecification) SetResourceLabel(v string) *PredefinedMe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/PutScalingPolicyRequest type PutScalingPolicyInput struct { _ struct{} `type:"structure"` @@ -2768,7 +2749,6 @@ func (s *PutScalingPolicyInput) SetTargetTrackingScalingPolicyConfiguration(v *T return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/PutScalingPolicyResponse type PutScalingPolicyOutput struct { _ struct{} `type:"structure"` @@ -2803,7 +2783,6 @@ func (s *PutScalingPolicyOutput) SetPolicyARN(v string) *PutScalingPolicyOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/PutScheduledActionRequest type PutScheduledActionInput struct { _ struct{} `type:"structure"` @@ -2993,7 +2972,6 @@ func (s *PutScheduledActionInput) SetStartTime(v time.Time) *PutScheduledActionI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/PutScheduledActionResponse type PutScheduledActionOutput struct { _ struct{} `type:"structure"` } @@ -3008,7 +2986,6 @@ func (s PutScheduledActionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/RegisterScalableTargetRequest type RegisterScalableTargetInput struct { _ struct{} `type:"structure"` @@ -3167,7 +3144,6 @@ func (s *RegisterScalableTargetInput) SetServiceNamespace(v string) *RegisterSca return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/RegisterScalableTargetResponse type RegisterScalableTargetOutput struct { _ struct{} `type:"structure"` } @@ -3183,7 +3159,6 @@ func (s RegisterScalableTargetOutput) GoString() string { } // Represents a scalable target. -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/ScalableTarget type ScalableTarget struct { _ struct{} `type:"structure"` @@ -3328,7 +3303,6 @@ func (s *ScalableTarget) SetServiceNamespace(v string) *ScalableTarget { } // Represents the minimum and maximum capacity for a scheduled action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/ScalableTargetAction type ScalableTargetAction struct { _ struct{} `type:"structure"` @@ -3362,7 +3336,6 @@ func (s *ScalableTargetAction) SetMinCapacity(v int64) *ScalableTargetAction { } // Represents a scaling activity. -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/ScalingActivity type ScalingActivity struct { _ struct{} `type:"structure"` @@ -3544,7 +3517,6 @@ func (s *ScalingActivity) SetStatusMessage(v string) *ScalingActivity { } // Represents a scaling policy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/ScalingPolicy type ScalingPolicy struct { _ struct{} `type:"structure"` @@ -3715,7 +3687,6 @@ func (s *ScalingPolicy) SetTargetTrackingScalingPolicyConfiguration(v *TargetTra } // Represents a scheduled action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/ScheduledAction type ScheduledAction struct { _ struct{} `type:"structure"` @@ -3928,7 +3899,6 @@ func (s *ScheduledAction) SetStartTime(v time.Time) *ScheduledAction { // with a null upper bound. // // * The upper and lower bound can't be null in the same step adjustment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/StepAdjustment type StepAdjustment struct { _ struct{} `type:"structure"` @@ -3999,7 +3969,6 @@ func (s *StepAdjustment) SetScalingAdjustment(v int64) *StepAdjustment { } // Represents a step scaling policy configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/StepScalingPolicyConfiguration type StepScalingPolicyConfiguration struct { _ struct{} `type:"structure"` @@ -4105,7 +4074,6 @@ func (s *StepScalingPolicyConfiguration) SetStepAdjustments(v []*StepAdjustment) } // Represents a target tracking scaling policy configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/TargetTrackingScalingPolicyConfiguration type TargetTrackingScalingPolicyConfiguration struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/athena/api.go b/vendor/github.com/aws/aws-sdk-go/service/athena/api.go index 62c8cacff..198a0dfbb 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/athena/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/athena/api.go @@ -1142,7 +1142,6 @@ func (c *Athena) StopQueryExecutionWithContext(ctx aws.Context, input *StopQuery return out, req.Send() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/BatchGetNamedQueryInput type BatchGetNamedQueryInput struct { _ struct{} `type:"structure"` @@ -1184,7 +1183,6 @@ func (s *BatchGetNamedQueryInput) SetNamedQueryIds(v []*string) *BatchGetNamedQu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/BatchGetNamedQueryOutput type BatchGetNamedQueryOutput struct { _ struct{} `type:"structure"` @@ -1217,7 +1215,6 @@ func (s *BatchGetNamedQueryOutput) SetUnprocessedNamedQueryIds(v []*UnprocessedN return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/BatchGetQueryExecutionInput type BatchGetQueryExecutionInput struct { _ struct{} `type:"structure"` @@ -1259,7 +1256,6 @@ func (s *BatchGetQueryExecutionInput) SetQueryExecutionIds(v []*string) *BatchGe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/BatchGetQueryExecutionOutput type BatchGetQueryExecutionOutput struct { _ struct{} `type:"structure"` @@ -1293,7 +1289,6 @@ func (s *BatchGetQueryExecutionOutput) SetUnprocessedQueryExecutionIds(v []*Unpr } // Information about the columns in a query execution result. -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ColumnInfo type ColumnInfo struct { _ struct{} `type:"structure"` @@ -1404,7 +1399,6 @@ func (s *ColumnInfo) SetType(v string) *ColumnInfo { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/CreateNamedQueryInput type CreateNamedQueryInput struct { _ struct{} `type:"structure"` @@ -1511,7 +1505,6 @@ func (s *CreateNamedQueryInput) SetQueryString(v string) *CreateNamedQueryInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/CreateNamedQueryOutput type CreateNamedQueryOutput struct { _ struct{} `type:"structure"` @@ -1536,7 +1529,6 @@ func (s *CreateNamedQueryOutput) SetNamedQueryId(v string) *CreateNamedQueryOutp } // A piece of data (a field in the table). -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/Datum type Datum struct { _ struct{} `type:"structure"` @@ -1560,7 +1552,6 @@ func (s *Datum) SetVarCharValue(v string) *Datum { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/DeleteNamedQueryInput type DeleteNamedQueryInput struct { _ struct{} `type:"structure"` @@ -1599,7 +1590,6 @@ func (s *DeleteNamedQueryInput) SetNamedQueryId(v string) *DeleteNamedQueryInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/DeleteNamedQueryOutput type DeleteNamedQueryOutput struct { _ struct{} `type:"structure"` } @@ -1616,7 +1606,6 @@ func (s DeleteNamedQueryOutput) GoString() string { // If query results are encrypted in Amazon S3, indicates the Amazon S3 encryption // option used. -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/EncryptionConfiguration type EncryptionConfiguration struct { _ struct{} `type:"structure"` @@ -1666,7 +1655,6 @@ func (s *EncryptionConfiguration) SetKmsKey(v string) *EncryptionConfiguration { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetNamedQueryInput type GetNamedQueryInput struct { _ struct{} `type:"structure"` @@ -1705,7 +1693,6 @@ func (s *GetNamedQueryInput) SetNamedQueryId(v string) *GetNamedQueryInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetNamedQueryOutput type GetNamedQueryOutput struct { _ struct{} `type:"structure"` @@ -1729,7 +1716,6 @@ func (s *GetNamedQueryOutput) SetNamedQuery(v *NamedQuery) *GetNamedQueryOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetQueryExecutionInput type GetQueryExecutionInput struct { _ struct{} `type:"structure"` @@ -1768,7 +1754,6 @@ func (s *GetQueryExecutionInput) SetQueryExecutionId(v string) *GetQueryExecutio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetQueryExecutionOutput type GetQueryExecutionOutput struct { _ struct{} `type:"structure"` @@ -1792,7 +1777,6 @@ func (s *GetQueryExecutionOutput) SetQueryExecution(v *QueryExecution) *GetQuery return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetQueryResultsInput type GetQueryResultsInput struct { _ struct{} `type:"structure"` @@ -1850,7 +1834,6 @@ func (s *GetQueryResultsInput) SetQueryExecutionId(v string) *GetQueryResultsInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/GetQueryResultsOutput type GetQueryResultsOutput struct { _ struct{} `type:"structure"` @@ -1883,7 +1866,6 @@ func (s *GetQueryResultsOutput) SetResultSet(v *ResultSet) *GetQueryResultsOutpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListNamedQueriesInput type ListNamedQueriesInput struct { _ struct{} `type:"structure"` @@ -1917,7 +1899,6 @@ func (s *ListNamedQueriesInput) SetNextToken(v string) *ListNamedQueriesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListNamedQueriesOutput type ListNamedQueriesOutput struct { _ struct{} `type:"structure"` @@ -1950,7 +1931,6 @@ func (s *ListNamedQueriesOutput) SetNextToken(v string) *ListNamedQueriesOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListQueryExecutionsInput type ListQueryExecutionsInput struct { _ struct{} `type:"structure"` @@ -1984,7 +1964,6 @@ func (s *ListQueryExecutionsInput) SetNextToken(v string) *ListQueryExecutionsIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ListQueryExecutionsOutput type ListQueryExecutionsOutput struct { _ struct{} `type:"structure"` @@ -2019,7 +1998,6 @@ func (s *ListQueryExecutionsOutput) SetQueryExecutionIds(v []*string) *ListQuery // A query, where QueryString is the SQL query statements that comprise the // query. -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/NamedQuery type NamedQuery struct { _ struct{} `type:"structure"` @@ -2086,7 +2064,6 @@ func (s *NamedQuery) SetQueryString(v string) *NamedQuery { } // Information about a single instance of a query execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/QueryExecution type QueryExecution struct { _ struct{} `type:"structure"` @@ -2159,7 +2136,6 @@ func (s *QueryExecution) SetStatus(v *QueryExecutionStatus) *QueryExecution { } // The database in which the query execution occurs. -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/QueryExecutionContext type QueryExecutionContext struct { _ struct{} `type:"structure"` @@ -2198,7 +2174,6 @@ func (s *QueryExecutionContext) SetDatabase(v string) *QueryExecutionContext { // The amount of data scanned during the query execution and the amount of time // that it took to execute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/QueryExecutionStatistics type QueryExecutionStatistics struct { _ struct{} `type:"structure"` @@ -2233,7 +2208,6 @@ func (s *QueryExecutionStatistics) SetEngineExecutionTimeInMillis(v int64) *Quer // The completion date, current state, submission time, and state change reason // (if applicable) for the query execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/QueryExecutionStatus type QueryExecutionStatus struct { _ struct{} `type:"structure"` @@ -2290,7 +2264,6 @@ func (s *QueryExecutionStatus) SetSubmissionDateTime(v time.Time) *QueryExecutio // The location in Amazon S3 where query results are stored and the encryption // option, if any, used for query results. -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ResultConfiguration type ResultConfiguration struct { _ struct{} `type:"structure"` @@ -2346,7 +2319,6 @@ func (s *ResultConfiguration) SetOutputLocation(v string) *ResultConfiguration { // The metadata and rows that comprise a query result set. The metadata describes // the column structure and data types. -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ResultSet type ResultSet struct { _ struct{} `type:"structure"` @@ -2382,7 +2354,6 @@ func (s *ResultSet) SetRows(v []*Row) *ResultSet { // The metadata that describes the column structure and data types of a table // of query results. -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/ResultSetMetadata type ResultSetMetadata struct { _ struct{} `type:"structure"` @@ -2407,7 +2378,6 @@ func (s *ResultSetMetadata) SetColumnInfo(v []*ColumnInfo) *ResultSetMetadata { } // The rows that comprise a query result table. -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/Row type Row struct { _ struct{} `type:"structure"` @@ -2431,7 +2401,6 @@ func (s *Row) SetData(v []*Datum) *Row { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/StartQueryExecutionInput type StartQueryExecutionInput struct { _ struct{} `type:"structure"` @@ -2526,7 +2495,6 @@ func (s *StartQueryExecutionInput) SetResultConfiguration(v *ResultConfiguration return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/StartQueryExecutionOutput type StartQueryExecutionOutput struct { _ struct{} `type:"structure"` @@ -2550,7 +2518,6 @@ func (s *StartQueryExecutionOutput) SetQueryExecutionId(v string) *StartQueryExe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/StopQueryExecutionInput type StopQueryExecutionInput struct { _ struct{} `type:"structure"` @@ -2589,7 +2556,6 @@ func (s *StopQueryExecutionInput) SetQueryExecutionId(v string) *StopQueryExecut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/StopQueryExecutionOutput type StopQueryExecutionOutput struct { _ struct{} `type:"structure"` } @@ -2605,7 +2571,6 @@ func (s StopQueryExecutionOutput) GoString() string { } // Information about a named query ID that could not be processed. -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/UnprocessedNamedQueryId type UnprocessedNamedQueryId struct { _ struct{} `type:"structure"` @@ -2650,7 +2615,6 @@ func (s *UnprocessedNamedQueryId) SetNamedQueryId(v string) *UnprocessedNamedQue } // Describes a query execution that failed to process. -// See also, https://docs.aws.amazon.com/goto/WebAPI/athena-2017-05-18/UnprocessedQueryExecutionId type UnprocessedQueryExecutionId struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/autoscaling/api.go b/vendor/github.com/aws/aws-sdk-go/service/autoscaling/api.go index 10eecf6fc..9b7e6bcd9 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/autoscaling/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/autoscaling/api.go @@ -5058,7 +5058,6 @@ func (c *AutoScaling) UpdateAutoScalingGroupWithContext(ctx aws.Context, input * // Describes scaling activity, which is a long-running process that represents // a change to your Auto Scaling group, such as changing its size or replacing // an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/Activity type Activity struct { _ struct{} `type:"structure"` @@ -5177,7 +5176,6 @@ func (s *Activity) SetStatusMessage(v string) *Activity { // // For more information, see Dynamic Scaling (http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/as-scale-based-on-demand.html) // in the Auto Scaling User Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AdjustmentType type AdjustmentType struct { _ struct{} `type:"structure"` @@ -5203,7 +5201,6 @@ func (s *AdjustmentType) SetAdjustmentType(v string) *AdjustmentType { } // Describes an alarm. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/Alarm type Alarm struct { _ struct{} `type:"structure"` @@ -5236,7 +5233,6 @@ func (s *Alarm) SetAlarmName(v string) *Alarm { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AttachInstancesQuery type AttachInstancesInput struct { _ struct{} `type:"structure"` @@ -5287,7 +5283,6 @@ func (s *AttachInstancesInput) SetInstanceIds(v []*string) *AttachInstancesInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AttachInstancesOutput type AttachInstancesOutput struct { _ struct{} `type:"structure"` } @@ -5302,7 +5297,6 @@ func (s AttachInstancesOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AttachLoadBalancerTargetGroupsType type AttachLoadBalancerTargetGroupsInput struct { _ struct{} `type:"structure"` @@ -5358,7 +5352,6 @@ func (s *AttachLoadBalancerTargetGroupsInput) SetTargetGroupARNs(v []*string) *A return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AttachLoadBalancerTargetGroupsResultType type AttachLoadBalancerTargetGroupsOutput struct { _ struct{} `type:"structure"` } @@ -5373,7 +5366,6 @@ func (s AttachLoadBalancerTargetGroupsOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AttachLoadBalancersType type AttachLoadBalancersInput struct { _ struct{} `type:"structure"` @@ -5429,7 +5421,6 @@ func (s *AttachLoadBalancersInput) SetLoadBalancerNames(v []*string) *AttachLoad return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AttachLoadBalancersResultType type AttachLoadBalancersOutput struct { _ struct{} `type:"structure"` } @@ -5445,7 +5436,6 @@ func (s AttachLoadBalancersOutput) GoString() string { } // Describes a block device mapping. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/BlockDeviceMapping type BlockDeviceMapping struct { _ struct{} `type:"structure"` @@ -5526,7 +5516,6 @@ func (s *BlockDeviceMapping) SetVirtualName(v string) *BlockDeviceMapping { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CompleteLifecycleActionType type CompleteLifecycleActionInput struct { _ struct{} `type:"structure"` @@ -5626,7 +5615,6 @@ func (s *CompleteLifecycleActionInput) SetLifecycleHookName(v string) *CompleteL return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CompleteLifecycleActionAnswer type CompleteLifecycleActionOutput struct { _ struct{} `type:"structure"` } @@ -5641,7 +5629,6 @@ func (s CompleteLifecycleActionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CreateAutoScalingGroupType type CreateAutoScalingGroupInput struct { _ struct{} `type:"structure"` @@ -5955,7 +5942,6 @@ func (s *CreateAutoScalingGroupInput) SetVPCZoneIdentifier(v string) *CreateAuto return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CreateAutoScalingGroupOutput type CreateAutoScalingGroupOutput struct { _ struct{} `type:"structure"` } @@ -5970,7 +5956,6 @@ func (s CreateAutoScalingGroupOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CreateLaunchConfigurationType type CreateLaunchConfigurationInput struct { _ struct{} `type:"structure"` @@ -6292,7 +6277,6 @@ func (s *CreateLaunchConfigurationInput) SetUserData(v string) *CreateLaunchConf return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CreateLaunchConfigurationOutput type CreateLaunchConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -6307,7 +6291,6 @@ func (s CreateLaunchConfigurationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CreateOrUpdateTagsType type CreateOrUpdateTagsInput struct { _ struct{} `type:"structure"` @@ -6356,7 +6339,6 @@ func (s *CreateOrUpdateTagsInput) SetTags(v []*Tag) *CreateOrUpdateTagsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CreateOrUpdateTagsOutput type CreateOrUpdateTagsOutput struct { _ struct{} `type:"structure"` } @@ -6372,7 +6354,6 @@ func (s CreateOrUpdateTagsOutput) GoString() string { } // Configures a customized metric for a target tracking policy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CustomizedMetricSpecification type CustomizedMetricSpecification struct { _ struct{} `type:"structure"` @@ -6467,7 +6448,6 @@ func (s *CustomizedMetricSpecification) SetUnit(v string) *CustomizedMetricSpeci return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteAutoScalingGroupType type DeleteAutoScalingGroupInput struct { _ struct{} `type:"structure"` @@ -6520,7 +6500,6 @@ func (s *DeleteAutoScalingGroupInput) SetForceDelete(v bool) *DeleteAutoScalingG return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteAutoScalingGroupOutput type DeleteAutoScalingGroupOutput struct { _ struct{} `type:"structure"` } @@ -6535,7 +6514,6 @@ func (s DeleteAutoScalingGroupOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/LaunchConfigurationNameType type DeleteLaunchConfigurationInput struct { _ struct{} `type:"structure"` @@ -6577,7 +6555,6 @@ func (s *DeleteLaunchConfigurationInput) SetLaunchConfigurationName(v string) *D return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteLaunchConfigurationOutput type DeleteLaunchConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -6592,7 +6569,6 @@ func (s DeleteLaunchConfigurationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteLifecycleHookType type DeleteLifecycleHookInput struct { _ struct{} `type:"structure"` @@ -6651,7 +6627,6 @@ func (s *DeleteLifecycleHookInput) SetLifecycleHookName(v string) *DeleteLifecyc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteLifecycleHookAnswer type DeleteLifecycleHookOutput struct { _ struct{} `type:"structure"` } @@ -6666,7 +6641,6 @@ func (s DeleteLifecycleHookOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteNotificationConfigurationType type DeleteNotificationConfigurationInput struct { _ struct{} `type:"structure"` @@ -6726,7 +6700,6 @@ func (s *DeleteNotificationConfigurationInput) SetTopicARN(v string) *DeleteNoti return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteNotificationConfigurationOutput type DeleteNotificationConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -6741,7 +6714,6 @@ func (s DeleteNotificationConfigurationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeletePolicyType type DeletePolicyInput struct { _ struct{} `type:"structure"` @@ -6795,7 +6767,6 @@ func (s *DeletePolicyInput) SetPolicyName(v string) *DeletePolicyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeletePolicyOutput type DeletePolicyOutput struct { _ struct{} `type:"structure"` } @@ -6810,7 +6781,6 @@ func (s DeletePolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteScheduledActionType type DeleteScheduledActionInput struct { _ struct{} `type:"structure"` @@ -6869,7 +6839,6 @@ func (s *DeleteScheduledActionInput) SetScheduledActionName(v string) *DeleteSch return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteScheduledActionOutput type DeleteScheduledActionOutput struct { _ struct{} `type:"structure"` } @@ -6884,7 +6853,6 @@ func (s DeleteScheduledActionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteTagsType type DeleteTagsInput struct { _ struct{} `type:"structure"` @@ -6933,7 +6901,6 @@ func (s *DeleteTagsInput) SetTags(v []*Tag) *DeleteTagsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteTagsOutput type DeleteTagsOutput struct { _ struct{} `type:"structure"` } @@ -6948,7 +6915,6 @@ func (s DeleteTagsOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeAccountLimitsInput type DescribeAccountLimitsInput struct { _ struct{} `type:"structure"` } @@ -6963,7 +6929,6 @@ func (s DescribeAccountLimitsInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeAccountLimitsAnswer type DescribeAccountLimitsOutput struct { _ struct{} `type:"structure"` @@ -7016,7 +6981,6 @@ func (s *DescribeAccountLimitsOutput) SetNumberOfLaunchConfigurations(v int64) * return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeAdjustmentTypesInput type DescribeAdjustmentTypesInput struct { _ struct{} `type:"structure"` } @@ -7031,7 +6995,6 @@ func (s DescribeAdjustmentTypesInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeAdjustmentTypesAnswer type DescribeAdjustmentTypesOutput struct { _ struct{} `type:"structure"` @@ -7055,7 +7018,6 @@ func (s *DescribeAdjustmentTypesOutput) SetAdjustmentTypes(v []*AdjustmentType) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/GroupNamesType type DescribeAutoScalingGroupsInput struct { _ struct{} `type:"structure"` @@ -7100,7 +7062,6 @@ func (s *DescribeAutoScalingGroupsInput) SetNextToken(v string) *DescribeAutoSca return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/GroupsType type DescribeAutoScalingGroupsOutput struct { _ struct{} `type:"structure"` @@ -7136,7 +7097,6 @@ func (s *DescribeAutoScalingGroupsOutput) SetNextToken(v string) *DescribeAutoSc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeAutoScalingInstancesType type DescribeAutoScalingInstancesInput struct { _ struct{} `type:"structure"` @@ -7182,7 +7142,6 @@ func (s *DescribeAutoScalingInstancesInput) SetNextToken(v string) *DescribeAuto return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/InstancesType type DescribeAutoScalingInstancesOutput struct { _ struct{} `type:"structure"` @@ -7216,7 +7175,6 @@ func (s *DescribeAutoScalingInstancesOutput) SetNextToken(v string) *DescribeAut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeAutoScalingNotificationTypesInput type DescribeAutoScalingNotificationTypesInput struct { _ struct{} `type:"structure"` } @@ -7231,7 +7189,6 @@ func (s DescribeAutoScalingNotificationTypesInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeAutoScalingNotificationTypesAnswer type DescribeAutoScalingNotificationTypesOutput struct { _ struct{} `type:"structure"` @@ -7255,7 +7212,6 @@ func (s *DescribeAutoScalingNotificationTypesOutput) SetAutoScalingNotificationT return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/LaunchConfigurationNamesType type DescribeLaunchConfigurationsInput struct { _ struct{} `type:"structure"` @@ -7300,7 +7256,6 @@ func (s *DescribeLaunchConfigurationsInput) SetNextToken(v string) *DescribeLaun return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/LaunchConfigurationsType type DescribeLaunchConfigurationsOutput struct { _ struct{} `type:"structure"` @@ -7336,7 +7291,6 @@ func (s *DescribeLaunchConfigurationsOutput) SetNextToken(v string) *DescribeLau return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeLifecycleHookTypesInput type DescribeLifecycleHookTypesInput struct { _ struct{} `type:"structure"` } @@ -7351,7 +7305,6 @@ func (s DescribeLifecycleHookTypesInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeLifecycleHookTypesAnswer type DescribeLifecycleHookTypesOutput struct { _ struct{} `type:"structure"` @@ -7375,7 +7328,6 @@ func (s *DescribeLifecycleHookTypesOutput) SetLifecycleHookTypes(v []*string) *D return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeLifecycleHooksType type DescribeLifecycleHooksInput struct { _ struct{} `type:"structure"` @@ -7427,7 +7379,6 @@ func (s *DescribeLifecycleHooksInput) SetLifecycleHookNames(v []*string) *Descri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeLifecycleHooksAnswer type DescribeLifecycleHooksOutput struct { _ struct{} `type:"structure"` @@ -7451,7 +7402,6 @@ func (s *DescribeLifecycleHooksOutput) SetLifecycleHooks(v []*LifecycleHook) *De return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeLoadBalancerTargetGroupsRequest type DescribeLoadBalancerTargetGroupsInput struct { _ struct{} `type:"structure"` @@ -7513,7 +7463,6 @@ func (s *DescribeLoadBalancerTargetGroupsInput) SetNextToken(v string) *Describe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeLoadBalancerTargetGroupsResponse type DescribeLoadBalancerTargetGroupsOutput struct { _ struct{} `type:"structure"` @@ -7547,7 +7496,6 @@ func (s *DescribeLoadBalancerTargetGroupsOutput) SetNextToken(v string) *Describ return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeLoadBalancersRequest type DescribeLoadBalancersInput struct { _ struct{} `type:"structure"` @@ -7609,7 +7557,6 @@ func (s *DescribeLoadBalancersInput) SetNextToken(v string) *DescribeLoadBalance return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeLoadBalancersResponse type DescribeLoadBalancersOutput struct { _ struct{} `type:"structure"` @@ -7643,7 +7590,6 @@ func (s *DescribeLoadBalancersOutput) SetNextToken(v string) *DescribeLoadBalanc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeMetricCollectionTypesInput type DescribeMetricCollectionTypesInput struct { _ struct{} `type:"structure"` } @@ -7658,7 +7604,6 @@ func (s DescribeMetricCollectionTypesInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeMetricCollectionTypesAnswer type DescribeMetricCollectionTypesOutput struct { _ struct{} `type:"structure"` @@ -7691,7 +7636,6 @@ func (s *DescribeMetricCollectionTypesOutput) SetMetrics(v []*MetricCollectionTy return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeNotificationConfigurationsType type DescribeNotificationConfigurationsInput struct { _ struct{} `type:"structure"` @@ -7735,7 +7679,6 @@ func (s *DescribeNotificationConfigurationsInput) SetNextToken(v string) *Descri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeNotificationConfigurationsAnswer type DescribeNotificationConfigurationsOutput struct { _ struct{} `type:"structure"` @@ -7771,7 +7714,6 @@ func (s *DescribeNotificationConfigurationsOutput) SetNotificationConfigurations return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribePoliciesType type DescribePoliciesInput struct { _ struct{} `type:"structure"` @@ -7849,7 +7791,6 @@ func (s *DescribePoliciesInput) SetPolicyTypes(v []*string) *DescribePoliciesInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PoliciesType type DescribePoliciesOutput struct { _ struct{} `type:"structure"` @@ -7883,7 +7824,6 @@ func (s *DescribePoliciesOutput) SetScalingPolicies(v []*ScalingPolicy) *Describ return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeScalingActivitiesType type DescribeScalingActivitiesInput struct { _ struct{} `type:"structure"` @@ -7953,7 +7893,6 @@ func (s *DescribeScalingActivitiesInput) SetNextToken(v string) *DescribeScaling return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/ActivitiesType type DescribeScalingActivitiesOutput struct { _ struct{} `type:"structure"` @@ -7990,7 +7929,6 @@ func (s *DescribeScalingActivitiesOutput) SetNextToken(v string) *DescribeScalin return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeScalingProcessTypesInput type DescribeScalingProcessTypesInput struct { _ struct{} `type:"structure"` } @@ -8005,7 +7943,6 @@ func (s DescribeScalingProcessTypesInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/ProcessesType type DescribeScalingProcessTypesOutput struct { _ struct{} `type:"structure"` @@ -8029,7 +7966,6 @@ func (s *DescribeScalingProcessTypesOutput) SetProcesses(v []*ProcessType) *Desc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeScheduledActionsType type DescribeScheduledActionsInput struct { _ struct{} `type:"structure"` @@ -8121,7 +8057,6 @@ func (s *DescribeScheduledActionsInput) SetStartTime(v time.Time) *DescribeSched return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/ScheduledActionsType type DescribeScheduledActionsOutput struct { _ struct{} `type:"structure"` @@ -8155,7 +8090,6 @@ func (s *DescribeScheduledActionsOutput) SetScheduledUpdateGroupActions(v []*Sch return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeTagsType type DescribeTagsInput struct { _ struct{} `type:"structure"` @@ -8199,7 +8133,6 @@ func (s *DescribeTagsInput) SetNextToken(v string) *DescribeTagsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/TagsType type DescribeTagsOutput struct { _ struct{} `type:"structure"` @@ -8233,7 +8166,6 @@ func (s *DescribeTagsOutput) SetTags(v []*TagDescription) *DescribeTagsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeTerminationPolicyTypesInput type DescribeTerminationPolicyTypesInput struct { _ struct{} `type:"structure"` } @@ -8248,7 +8180,6 @@ func (s DescribeTerminationPolicyTypesInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeTerminationPolicyTypesAnswer type DescribeTerminationPolicyTypesOutput struct { _ struct{} `type:"structure"` @@ -8273,7 +8204,6 @@ func (s *DescribeTerminationPolicyTypesOutput) SetTerminationPolicyTypes(v []*st return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DetachInstancesQuery type DetachInstancesInput struct { _ struct{} `type:"structure"` @@ -8339,7 +8269,6 @@ func (s *DetachInstancesInput) SetShouldDecrementDesiredCapacity(v bool) *Detach return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DetachInstancesAnswer type DetachInstancesOutput struct { _ struct{} `type:"structure"` @@ -8363,7 +8292,6 @@ func (s *DetachInstancesOutput) SetActivities(v []*Activity) *DetachInstancesOut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DetachLoadBalancerTargetGroupsType type DetachLoadBalancerTargetGroupsInput struct { _ struct{} `type:"structure"` @@ -8419,7 +8347,6 @@ func (s *DetachLoadBalancerTargetGroupsInput) SetTargetGroupARNs(v []*string) *D return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DetachLoadBalancerTargetGroupsResultType type DetachLoadBalancerTargetGroupsOutput struct { _ struct{} `type:"structure"` } @@ -8434,7 +8361,6 @@ func (s DetachLoadBalancerTargetGroupsOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DetachLoadBalancersType type DetachLoadBalancersInput struct { _ struct{} `type:"structure"` @@ -8490,7 +8416,6 @@ func (s *DetachLoadBalancersInput) SetLoadBalancerNames(v []*string) *DetachLoad return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DetachLoadBalancersResultType type DetachLoadBalancersOutput struct { _ struct{} `type:"structure"` } @@ -8505,7 +8430,6 @@ func (s DetachLoadBalancersOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DisableMetricsCollectionQuery type DisableMetricsCollectionInput struct { _ struct{} `type:"structure"` @@ -8573,7 +8497,6 @@ func (s *DisableMetricsCollectionInput) SetMetrics(v []*string) *DisableMetricsC return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DisableMetricsCollectionOutput type DisableMetricsCollectionOutput struct { _ struct{} `type:"structure"` } @@ -8589,7 +8512,6 @@ func (s DisableMetricsCollectionOutput) GoString() string { } // Describes an Amazon EBS volume. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/Ebs type Ebs struct { _ struct{} `type:"structure"` @@ -8701,7 +8623,6 @@ func (s *Ebs) SetVolumeType(v string) *Ebs { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/EnableMetricsCollectionQuery type EnableMetricsCollectionInput struct { _ struct{} `type:"structure"` @@ -8787,7 +8708,6 @@ func (s *EnableMetricsCollectionInput) SetMetrics(v []*string) *EnableMetricsCol return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/EnableMetricsCollectionOutput type EnableMetricsCollectionOutput struct { _ struct{} `type:"structure"` } @@ -8803,7 +8723,6 @@ func (s EnableMetricsCollectionOutput) GoString() string { } // Describes an enabled metric. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/EnabledMetric type EnabledMetric struct { _ struct{} `type:"structure"` @@ -8852,7 +8771,6 @@ func (s *EnabledMetric) SetMetric(v string) *EnabledMetric { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/EnterStandbyQuery type EnterStandbyInput struct { _ struct{} `type:"structure"` @@ -8921,7 +8839,6 @@ func (s *EnterStandbyInput) SetShouldDecrementDesiredCapacity(v bool) *EnterStan return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/EnterStandbyAnswer type EnterStandbyOutput struct { _ struct{} `type:"structure"` @@ -8945,7 +8862,6 @@ func (s *EnterStandbyOutput) SetActivities(v []*Activity) *EnterStandbyOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/ExecutePolicyType type ExecutePolicyInput struct { _ struct{} `type:"structure"` @@ -9046,7 +8962,6 @@ func (s *ExecutePolicyInput) SetPolicyName(v string) *ExecutePolicyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/ExecutePolicyOutput type ExecutePolicyOutput struct { _ struct{} `type:"structure"` } @@ -9061,7 +8976,6 @@ func (s ExecutePolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/ExitStandbyQuery type ExitStandbyInput struct { _ struct{} `type:"structure"` @@ -9112,7 +9026,6 @@ func (s *ExitStandbyInput) SetInstanceIds(v []*string) *ExitStandbyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/ExitStandbyAnswer type ExitStandbyOutput struct { _ struct{} `type:"structure"` @@ -9137,7 +9050,6 @@ func (s *ExitStandbyOutput) SetActivities(v []*Activity) *ExitStandbyOutput { } // Describes a filter. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/Filter type Filter struct { _ struct{} `type:"structure"` @@ -9172,7 +9084,6 @@ func (s *Filter) SetValues(v []*string) *Filter { } // Describes an Auto Scaling group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AutoScalingGroup type Group struct { _ struct{} `type:"structure"` @@ -9419,7 +9330,6 @@ func (s *Group) SetVPCZoneIdentifier(v string) *Group { } // Describes an EC2 instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/Instance type Instance struct { _ struct{} `type:"structure"` @@ -9512,7 +9422,6 @@ func (s *Instance) SetProtectedFromScaleIn(v bool) *Instance { } // Describes an EC2 instance associated with an Auto Scaling group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AutoScalingInstanceDetails type InstanceDetails struct { _ struct{} `type:"structure"` @@ -9618,7 +9527,6 @@ func (s *InstanceDetails) SetProtectedFromScaleIn(v bool) *InstanceDetails { } // Describes whether detailed monitoring is enabled for the Auto Scaling instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/InstanceMonitoring type InstanceMonitoring struct { _ struct{} `type:"structure"` @@ -9643,7 +9551,6 @@ func (s *InstanceMonitoring) SetEnabled(v bool) *InstanceMonitoring { } // Describes a launch configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/LaunchConfiguration type LaunchConfiguration struct { _ struct{} `type:"structure"` @@ -9848,7 +9755,6 @@ func (s *LaunchConfiguration) SetUserData(v string) *LaunchConfiguration { } // Describes a launch template. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/LaunchTemplateSpecification type LaunchTemplateSpecification struct { _ struct{} `type:"structure"` @@ -9917,7 +9823,6 @@ func (s *LaunchTemplateSpecification) SetVersion(v string) *LaunchTemplateSpecif // // For more information, see Auto Scaling Lifecycle Hooks (http://docs.aws.amazon.com/autoscaling/latest/userguide/lifecycle-hooks.html) // in the Auto Scaling User Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/LifecycleHook type LifecycleHook struct { _ struct{} `type:"structure"` @@ -10029,7 +9934,6 @@ func (s *LifecycleHook) SetRoleARN(v string) *LifecycleHook { // // For more information, see Auto Scaling Lifecycle Hooks (http://docs.aws.amazon.com/autoscaling/latest/userguide/lifecycle-hooks.html) // in the Auto Scaling User Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/LifecycleHookSpecification type LifecycleHookSpecification struct { _ struct{} `type:"structure"` @@ -10156,7 +10060,6 @@ func (s *LifecycleHookSpecification) SetRoleARN(v string) *LifecycleHookSpecific // for the load balancer, the state transitions to InService after at least // one instance in the group passes the health check. If EC2 health checks are // enabled instead, the load balancer remains in the Added state. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/LoadBalancerState type LoadBalancerState struct { _ struct{} `type:"structure"` @@ -10212,7 +10115,6 @@ func (s *LoadBalancerState) SetState(v string) *LoadBalancerState { // state transitions to InService after at least one Auto Scaling instance passes // the health check. If EC2 health checks are enabled instead, the target group // remains in the Added state. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/LoadBalancerTargetGroupState type LoadBalancerTargetGroupState struct { _ struct{} `type:"structure"` @@ -10261,7 +10163,6 @@ func (s *LoadBalancerTargetGroupState) SetState(v string) *LoadBalancerTargetGro } // Describes a metric. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/MetricCollectionType type MetricCollectionType struct { _ struct{} `type:"structure"` @@ -10302,7 +10203,6 @@ func (s *MetricCollectionType) SetMetric(v string) *MetricCollectionType { } // Describes the dimension of a metric. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/MetricDimension type MetricDimension struct { _ struct{} `type:"structure"` @@ -10356,7 +10256,6 @@ func (s *MetricDimension) SetValue(v string) *MetricDimension { } // Describes a granularity of a metric. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/MetricGranularityType type MetricGranularityType struct { _ struct{} `type:"structure"` @@ -10381,7 +10280,6 @@ func (s *MetricGranularityType) SetGranularity(v string) *MetricGranularityType } // Describes a notification. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/NotificationConfiguration type NotificationConfiguration struct { _ struct{} `type:"structure"` @@ -10435,7 +10333,6 @@ func (s *NotificationConfiguration) SetTopicARN(v string) *NotificationConfigura } // Configures a predefined metric for a target tracking policy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PredefinedMetricSpecification type PredefinedMetricSpecification struct { _ struct{} `type:"structure"` @@ -10513,7 +10410,6 @@ func (s *PredefinedMetricSpecification) SetResourceLabel(v string) *PredefinedMe // // For more information, see Auto Scaling Processes (http://docs.aws.amazon.com/autoscaling/latest/userguide/as-suspend-resume-processes.html#process-types) // in the Auto Scaling User Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/ProcessType type ProcessType struct { _ struct{} `type:"structure"` @@ -10555,7 +10451,6 @@ func (s *ProcessType) SetProcessName(v string) *ProcessType { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PutLifecycleHookType type PutLifecycleHookInput struct { _ struct{} `type:"structure"` @@ -10701,7 +10596,6 @@ func (s *PutLifecycleHookInput) SetRoleARN(v string) *PutLifecycleHookInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PutLifecycleHookAnswer type PutLifecycleHookOutput struct { _ struct{} `type:"structure"` } @@ -10716,7 +10610,6 @@ func (s PutLifecycleHookOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PutNotificationConfigurationType type PutNotificationConfigurationInput struct { _ struct{} `type:"structure"` @@ -10791,7 +10684,6 @@ func (s *PutNotificationConfigurationInput) SetTopicARN(v string) *PutNotificati return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PutNotificationConfigurationOutput type PutNotificationConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -10806,7 +10698,6 @@ func (s PutNotificationConfigurationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PutScalingPolicyType type PutScalingPolicyInput struct { _ struct{} `type:"structure"` @@ -11019,7 +10910,6 @@ func (s *PutScalingPolicyInput) SetTargetTrackingConfiguration(v *TargetTracking } // Contains the output of PutScalingPolicy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PolicyARNType type PutScalingPolicyOutput struct { _ struct{} `type:"structure"` @@ -11052,7 +10942,6 @@ func (s *PutScalingPolicyOutput) SetPolicyARN(v string) *PutScalingPolicyOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PutScheduledUpdateGroupActionType type PutScheduledUpdateGroupActionInput struct { _ struct{} `type:"structure"` @@ -11186,7 +11075,6 @@ func (s *PutScheduledUpdateGroupActionInput) SetTime(v time.Time) *PutScheduledU return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PutScheduledUpdateGroupActionOutput type PutScheduledUpdateGroupActionOutput struct { _ struct{} `type:"structure"` } @@ -11201,7 +11089,6 @@ func (s PutScheduledUpdateGroupActionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/RecordLifecycleActionHeartbeatType type RecordLifecycleActionHeartbeatInput struct { _ struct{} `type:"structure"` @@ -11286,7 +11173,6 @@ func (s *RecordLifecycleActionHeartbeatInput) SetLifecycleHookName(v string) *Re return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/RecordLifecycleActionHeartbeatAnswer type RecordLifecycleActionHeartbeatOutput struct { _ struct{} `type:"structure"` } @@ -11301,7 +11187,6 @@ func (s RecordLifecycleActionHeartbeatOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/ResumeProcessesOutput type ResumeProcessesOutput struct { _ struct{} `type:"structure"` } @@ -11317,7 +11202,6 @@ func (s ResumeProcessesOutput) GoString() string { } // Describes a scaling policy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/ScalingPolicy type ScalingPolicy struct { _ struct{} `type:"structure"` @@ -11468,7 +11352,6 @@ func (s *ScalingPolicy) SetTargetTrackingConfiguration(v *TargetTrackingConfigur return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/ScalingProcessQuery type ScalingProcessQuery struct { _ struct{} `type:"structure"` @@ -11537,7 +11420,6 @@ func (s *ScalingProcessQuery) SetScalingProcesses(v []*string) *ScalingProcessQu } // Describes a scheduled update to an Auto Scaling group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/ScheduledUpdateGroupAction type ScheduledUpdateGroupAction struct { _ struct{} `type:"structure"` @@ -11647,7 +11529,6 @@ func (s *ScheduledUpdateGroupAction) SetTime(v time.Time) *ScheduledUpdateGroupA return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/SetDesiredCapacityType type SetDesiredCapacityInput struct { _ struct{} `type:"structure"` @@ -11715,7 +11596,6 @@ func (s *SetDesiredCapacityInput) SetHonorCooldown(v bool) *SetDesiredCapacityIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/SetDesiredCapacityOutput type SetDesiredCapacityOutput struct { _ struct{} `type:"structure"` } @@ -11730,7 +11610,6 @@ func (s SetDesiredCapacityOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/SetInstanceHealthQuery type SetInstanceHealthInput struct { _ struct{} `type:"structure"` @@ -11806,7 +11685,6 @@ func (s *SetInstanceHealthInput) SetShouldRespectGracePeriod(v bool) *SetInstanc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/SetInstanceHealthOutput type SetInstanceHealthOutput struct { _ struct{} `type:"structure"` } @@ -11821,7 +11699,6 @@ func (s SetInstanceHealthOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/SetInstanceProtectionQuery type SetInstanceProtectionInput struct { _ struct{} `type:"structure"` @@ -11892,7 +11769,6 @@ func (s *SetInstanceProtectionInput) SetProtectedFromScaleIn(v bool) *SetInstanc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/SetInstanceProtectionAnswer type SetInstanceProtectionOutput struct { _ struct{} `type:"structure"` } @@ -11935,7 +11811,6 @@ func (s SetInstanceProtectionOutput) GoString() string { // with a null upper bound. // // * The upper and lower bound can't be null in the same step adjustment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/StepAdjustment type StepAdjustment struct { _ struct{} `type:"structure"` @@ -12005,7 +11880,6 @@ func (s *StepAdjustment) SetScalingAdjustment(v int64) *StepAdjustment { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/SuspendProcessesOutput type SuspendProcessesOutput struct { _ struct{} `type:"structure"` } @@ -12022,7 +11896,6 @@ func (s SuspendProcessesOutput) GoString() string { // Describes an Auto Scaling process that has been suspended. For more information, // see ProcessType. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/SuspendedProcess type SuspendedProcess struct { _ struct{} `type:"structure"` @@ -12056,7 +11929,6 @@ func (s *SuspendedProcess) SetSuspensionReason(v string) *SuspendedProcess { } // Describes a tag for an Auto Scaling group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/Tag type Tag struct { _ struct{} `type:"structure"` @@ -12136,7 +12008,6 @@ func (s *Tag) SetValue(v string) *Tag { } // Describes a tag for an Auto Scaling group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/TagDescription type TagDescription struct { _ struct{} `type:"structure"` @@ -12198,7 +12069,6 @@ func (s *TagDescription) SetValue(v string) *TagDescription { } // Represents a target tracking policy configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/TargetTrackingConfiguration type TargetTrackingConfiguration struct { _ struct{} `type:"structure"` @@ -12279,7 +12149,6 @@ func (s *TargetTrackingConfiguration) SetTargetValue(v float64) *TargetTrackingC return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/TerminateInstanceInAutoScalingGroupType type TerminateInstanceInAutoScalingGroupInput struct { _ struct{} `type:"structure"` @@ -12336,7 +12205,6 @@ func (s *TerminateInstanceInAutoScalingGroupInput) SetShouldDecrementDesiredCapa return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/ActivityType type TerminateInstanceInAutoScalingGroupOutput struct { _ struct{} `type:"structure"` @@ -12360,7 +12228,6 @@ func (s *TerminateInstanceInAutoScalingGroupOutput) SetActivity(v *Activity) *Te return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/UpdateAutoScalingGroupType type UpdateAutoScalingGroupInput struct { _ struct{} `type:"structure"` @@ -12568,7 +12435,6 @@ func (s *UpdateAutoScalingGroupInput) SetVPCZoneIdentifier(v string) *UpdateAuto return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/UpdateAutoScalingGroupOutput type UpdateAutoScalingGroupOutput struct { _ struct{} `type:"structure"` } diff --git a/vendor/github.com/aws/aws-sdk-go/service/batch/api.go b/vendor/github.com/aws/aws-sdk-go/service/batch/api.go index d7683d333..9921afa19 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/batch/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/batch/api.go @@ -1407,7 +1407,6 @@ func (c *Batch) UpdateJobQueueWithContext(ctx aws.Context, input *UpdateJobQueue } // An object representing an AWS Batch array job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ArrayProperties type ArrayProperties struct { _ struct{} `type:"structure"` @@ -1432,7 +1431,6 @@ func (s *ArrayProperties) SetSize(v int64) *ArrayProperties { } // An object representing the array properties of a job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ArrayPropertiesDetail type ArrayPropertiesDetail struct { _ struct{} `type:"structure"` @@ -1477,7 +1475,6 @@ func (s *ArrayPropertiesDetail) SetStatusSummary(v map[string]*int64) *ArrayProp } // An object representing the array properties of a job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ArrayPropertiesSummary type ArrayPropertiesSummary struct { _ struct{} `type:"structure"` @@ -1512,7 +1509,6 @@ func (s *ArrayPropertiesSummary) SetSize(v int64) *ArrayPropertiesSummary { } // An object representing the details of a container that is part of a job attempt. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/AttemptContainerDetail type AttemptContainerDetail struct { _ struct{} `type:"structure"` @@ -1579,7 +1575,6 @@ func (s *AttemptContainerDetail) SetTaskArn(v string) *AttemptContainerDetail { } // An object representing a job attempt. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/AttemptDetail type AttemptDetail struct { _ struct{} `type:"structure"` @@ -1633,7 +1628,6 @@ func (s *AttemptDetail) SetStoppedAt(v int64) *AttemptDetail { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/CancelJobRequest type CancelJobInput struct { _ struct{} `type:"structure"` @@ -1688,7 +1682,6 @@ func (s *CancelJobInput) SetReason(v string) *CancelJobInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/CancelJobResponse type CancelJobOutput struct { _ struct{} `type:"structure"` } @@ -1704,7 +1697,6 @@ func (s CancelJobOutput) GoString() string { } // An object representing an AWS Batch compute environment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ComputeEnvironmentDetail type ComputeEnvironmentDetail struct { _ struct{} `type:"structure"` @@ -1815,7 +1807,6 @@ func (s *ComputeEnvironmentDetail) SetType(v string) *ComputeEnvironmentDetail { // a queue. Compute environments are tried in ascending order. For example, // if two compute environments are associated with a job queue, the compute // environment with a lower order integer value is tried for job placement first. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ComputeEnvironmentOrder type ComputeEnvironmentOrder struct { _ struct{} `type:"structure"` @@ -1869,7 +1860,6 @@ func (s *ComputeEnvironmentOrder) SetOrder(v int64) *ComputeEnvironmentOrder { } // An object representing an AWS Batch compute resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ComputeResource type ComputeResource struct { _ struct{} `type:"structure"` @@ -2063,7 +2053,6 @@ func (s *ComputeResource) SetType(v string) *ComputeResource { // An object representing the attributes of a compute environment that can be // updated. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ComputeResourceUpdate type ComputeResourceUpdate struct { _ struct{} `type:"structure"` @@ -2106,7 +2095,6 @@ func (s *ComputeResourceUpdate) SetMinvCpus(v int64) *ComputeResourceUpdate { } // An object representing the details of a container that is part of a job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ContainerDetail type ContainerDetail struct { _ struct{} `type:"structure"` @@ -2286,7 +2274,6 @@ func (s *ContainerDetail) SetVolumes(v []*Volume) *ContainerDetail { } // The overrides that should be sent to a container. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ContainerOverrides type ContainerOverrides struct { _ struct{} `type:"structure"` @@ -2347,7 +2334,6 @@ func (s *ContainerOverrides) SetVcpus(v int64) *ContainerOverrides { // Container properties are used in job definitions to describe the container // that is launched as part of a job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ContainerProperties type ContainerProperties struct { _ struct{} `type:"structure"` @@ -2568,7 +2554,6 @@ func (s *ContainerProperties) SetVolumes(v []*Volume) *ContainerProperties { } // An object representing summary details of a container within a job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ContainerSummary type ContainerSummary struct { _ struct{} `type:"structure"` @@ -2602,7 +2587,6 @@ func (s *ContainerSummary) SetReason(v string) *ContainerSummary { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/CreateComputeEnvironmentRequest type CreateComputeEnvironmentInput struct { _ struct{} `type:"structure"` @@ -2707,7 +2691,6 @@ func (s *CreateComputeEnvironmentInput) SetType(v string) *CreateComputeEnvironm return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/CreateComputeEnvironmentResponse type CreateComputeEnvironmentOutput struct { _ struct{} `type:"structure"` @@ -2740,7 +2723,6 @@ func (s *CreateComputeEnvironmentOutput) SetComputeEnvironmentName(v string) *Cr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/CreateJobQueueRequest type CreateJobQueueInput struct { _ struct{} `type:"structure"` @@ -2835,7 +2817,6 @@ func (s *CreateJobQueueInput) SetState(v string) *CreateJobQueueInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/CreateJobQueueResponse type CreateJobQueueOutput struct { _ struct{} `type:"structure"` @@ -2872,7 +2853,6 @@ func (s *CreateJobQueueOutput) SetJobQueueName(v string) *CreateJobQueueOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DeleteComputeEnvironmentRequest type DeleteComputeEnvironmentInput struct { _ struct{} `type:"structure"` @@ -2911,7 +2891,6 @@ func (s *DeleteComputeEnvironmentInput) SetComputeEnvironment(v string) *DeleteC return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DeleteComputeEnvironmentResponse type DeleteComputeEnvironmentOutput struct { _ struct{} `type:"structure"` } @@ -2926,7 +2905,6 @@ func (s DeleteComputeEnvironmentOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DeleteJobQueueRequest type DeleteJobQueueInput struct { _ struct{} `type:"structure"` @@ -2965,7 +2943,6 @@ func (s *DeleteJobQueueInput) SetJobQueue(v string) *DeleteJobQueueInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DeleteJobQueueResponse type DeleteJobQueueOutput struct { _ struct{} `type:"structure"` } @@ -2980,7 +2957,6 @@ func (s DeleteJobQueueOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DeregisterJobDefinitionRequest type DeregisterJobDefinitionInput struct { _ struct{} `type:"structure"` @@ -3020,7 +2996,6 @@ func (s *DeregisterJobDefinitionInput) SetJobDefinition(v string) *DeregisterJob return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DeregisterJobDefinitionResponse type DeregisterJobDefinitionOutput struct { _ struct{} `type:"structure"` } @@ -3035,7 +3010,6 @@ func (s DeregisterJobDefinitionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DescribeComputeEnvironmentsRequest type DescribeComputeEnvironmentsInput struct { _ struct{} `type:"structure"` @@ -3092,7 +3066,6 @@ func (s *DescribeComputeEnvironmentsInput) SetNextToken(v string) *DescribeCompu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DescribeComputeEnvironmentsResponse type DescribeComputeEnvironmentsOutput struct { _ struct{} `type:"structure"` @@ -3128,7 +3101,6 @@ func (s *DescribeComputeEnvironmentsOutput) SetNextToken(v string) *DescribeComp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DescribeJobDefinitionsRequest type DescribeJobDefinitionsInput struct { _ struct{} `type:"structure"` @@ -3202,7 +3174,6 @@ func (s *DescribeJobDefinitionsInput) SetStatus(v string) *DescribeJobDefinition return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DescribeJobDefinitionsResponse type DescribeJobDefinitionsOutput struct { _ struct{} `type:"structure"` @@ -3238,7 +3209,6 @@ func (s *DescribeJobDefinitionsOutput) SetNextToken(v string) *DescribeJobDefini return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DescribeJobQueuesRequest type DescribeJobQueuesInput struct { _ struct{} `type:"structure"` @@ -3294,7 +3264,6 @@ func (s *DescribeJobQueuesInput) SetNextToken(v string) *DescribeJobQueuesInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DescribeJobQueuesResponse type DescribeJobQueuesOutput struct { _ struct{} `type:"structure"` @@ -3330,7 +3299,6 @@ func (s *DescribeJobQueuesOutput) SetNextToken(v string) *DescribeJobQueuesOutpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DescribeJobsRequest type DescribeJobsInput struct { _ struct{} `type:"structure"` @@ -3369,7 +3337,6 @@ func (s *DescribeJobsInput) SetJobs(v []*string) *DescribeJobsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/DescribeJobsResponse type DescribeJobsOutput struct { _ struct{} `type:"structure"` @@ -3398,7 +3365,6 @@ func (s *DescribeJobsOutput) SetJobs(v []*JobDetail) *DescribeJobsOutput { // is empty, then the Docker daemon assigns a host path for your data volume, // but the data is not guaranteed to persist after the containers associated // with it stop running. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/Host type Host struct { _ struct{} `type:"structure"` @@ -3429,7 +3395,6 @@ func (s *Host) SetSourcePath(v string) *Host { } // An object representing an AWS Batch job definition. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/JobDefinition type JobDefinition struct { _ struct{} `type:"structure"` @@ -3529,7 +3494,6 @@ func (s *JobDefinition) SetType(v string) *JobDefinition { } // An object representing an AWS Batch job dependency. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/JobDependency type JobDependency struct { _ struct{} `type:"structure"` @@ -3563,7 +3527,6 @@ func (s *JobDependency) SetType(v string) *JobDependency { } // An object representing an AWS Batch job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/JobDetail type JobDetail struct { _ struct{} `type:"structure"` @@ -3735,7 +3698,6 @@ func (s *JobDetail) SetStoppedAt(v int64) *JobDetail { } // An object representing the details of an AWS Batch job queue. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/JobQueueDetail type JobQueueDetail struct { _ struct{} `type:"structure"` @@ -3827,7 +3789,6 @@ func (s *JobQueueDetail) SetStatusReason(v string) *JobQueueDetail { } // An object representing summary details of a job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/JobSummary type JobSummary struct { _ struct{} `type:"structure"` @@ -3935,7 +3896,6 @@ func (s *JobSummary) SetStoppedAt(v int64) *JobSummary { } // A key-value pair object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/KeyValuePair type KeyValuePair struct { _ struct{} `type:"structure"` @@ -3970,7 +3930,6 @@ func (s *KeyValuePair) SetValue(v string) *KeyValuePair { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ListJobsRequest type ListJobsInput struct { _ struct{} `type:"structure"` @@ -4045,7 +4004,6 @@ func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/ListJobsResponse type ListJobsOutput struct { _ struct{} `type:"structure"` @@ -4085,7 +4043,6 @@ func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput { // Details on a Docker volume mount point that is used in a job's container // properties. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/MountPoint type MountPoint struct { _ struct{} `type:"structure"` @@ -4128,7 +4085,6 @@ func (s *MountPoint) SetSourceVolume(v string) *MountPoint { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/RegisterJobDefinitionRequest type RegisterJobDefinitionInput struct { _ struct{} `type:"structure"` @@ -4219,7 +4175,6 @@ func (s *RegisterJobDefinitionInput) SetType(v string) *RegisterJobDefinitionInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/RegisterJobDefinitionResponse type RegisterJobDefinitionOutput struct { _ struct{} `type:"structure"` @@ -4268,7 +4223,6 @@ func (s *RegisterJobDefinitionOutput) SetRevision(v int64) *RegisterJobDefinitio } // The retry strategy associated with a job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/RetryStrategy type RetryStrategy struct { _ struct{} `type:"structure"` @@ -4294,7 +4248,6 @@ func (s *RetryStrategy) SetAttempts(v int64) *RetryStrategy { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/SubmitJobRequest type SubmitJobInput struct { _ struct{} `type:"structure"` @@ -4430,7 +4383,6 @@ func (s *SubmitJobInput) SetRetryStrategy(v *RetryStrategy) *SubmitJobInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/SubmitJobResponse type SubmitJobOutput struct { _ struct{} `type:"structure"` @@ -4467,7 +4419,6 @@ func (s *SubmitJobOutput) SetJobName(v string) *SubmitJobOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/TerminateJobRequest type TerminateJobInput struct { _ struct{} `type:"structure"` @@ -4522,7 +4473,6 @@ func (s *TerminateJobInput) SetReason(v string) *TerminateJobInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/TerminateJobResponse type TerminateJobOutput struct { _ struct{} `type:"structure"` } @@ -4538,7 +4488,6 @@ func (s TerminateJobOutput) GoString() string { } // The ulimit settings to pass to the container. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/Ulimit type Ulimit struct { _ struct{} `type:"structure"` @@ -4605,7 +4554,6 @@ func (s *Ulimit) SetSoftLimit(v int64) *Ulimit { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/UpdateComputeEnvironmentRequest type UpdateComputeEnvironmentInput struct { _ struct{} `type:"structure"` @@ -4686,7 +4634,6 @@ func (s *UpdateComputeEnvironmentInput) SetState(v string) *UpdateComputeEnviron return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/UpdateComputeEnvironmentResponse type UpdateComputeEnvironmentOutput struct { _ struct{} `type:"structure"` @@ -4719,7 +4666,6 @@ func (s *UpdateComputeEnvironmentOutput) SetComputeEnvironmentName(v string) *Up return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/UpdateJobQueueRequest type UpdateJobQueueInput struct { _ struct{} `type:"structure"` @@ -4801,7 +4747,6 @@ func (s *UpdateJobQueueInput) SetState(v string) *UpdateJobQueueInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/UpdateJobQueueResponse type UpdateJobQueueOutput struct { _ struct{} `type:"structure"` @@ -4835,7 +4780,6 @@ func (s *UpdateJobQueueOutput) SetJobQueueName(v string) *UpdateJobQueueOutput { } // A data volume used in a job's container properties. -// See also, https://docs.aws.amazon.com/goto/WebAPI/batch-2016-08-10/Volume type Volume struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloud9/api.go b/vendor/github.com/aws/aws-sdk-go/service/cloud9/api.go new file mode 100644 index 000000000..9cda728ff --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/cloud9/api.go @@ -0,0 +1,2143 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package cloud9 + +import ( + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awsutil" + "github.com/aws/aws-sdk-go/aws/request" +) + +const opCreateEnvironmentEC2 = "CreateEnvironmentEC2" + +// CreateEnvironmentEC2Request generates a "aws/request.Request" representing the +// client's request for the CreateEnvironmentEC2 operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreateEnvironmentEC2 for more information on using the CreateEnvironmentEC2 +// 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 CreateEnvironmentEC2Request method. +// req, resp := client.CreateEnvironmentEC2Request(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/CreateEnvironmentEC2 +func (c *Cloud9) CreateEnvironmentEC2Request(input *CreateEnvironmentEC2Input) (req *request.Request, output *CreateEnvironmentEC2Output) { + op := &request.Operation{ + Name: opCreateEnvironmentEC2, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateEnvironmentEC2Input{} + } + + output = &CreateEnvironmentEC2Output{} + req = c.newRequest(op, input, output) + return +} + +// CreateEnvironmentEC2 API operation for AWS Cloud9. +// +// Creates an AWS Cloud9 development environment, launches an Amazon Elastic +// Compute Cloud (Amazon EC2) instance, and then connects from the instance +// to the environment. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Cloud9's +// API operation CreateEnvironmentEC2 for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The target request is invalid. +// +// * ErrCodeConflictException "ConflictException" +// A conflict occurred. +// +// * ErrCodeNotFoundException "NotFoundException" +// The target resource cannot be found. +// +// * ErrCodeForbiddenException "ForbiddenException" +// An access permissions issue occurred. +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// Too many service requests were made over the given time period. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// A service limit was exceeded. +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// An internal server error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/CreateEnvironmentEC2 +func (c *Cloud9) CreateEnvironmentEC2(input *CreateEnvironmentEC2Input) (*CreateEnvironmentEC2Output, error) { + req, out := c.CreateEnvironmentEC2Request(input) + return out, req.Send() +} + +// CreateEnvironmentEC2WithContext is the same as CreateEnvironmentEC2 with the addition of +// the ability to pass a context and additional request options. +// +// See CreateEnvironmentEC2 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 *Cloud9) CreateEnvironmentEC2WithContext(ctx aws.Context, input *CreateEnvironmentEC2Input, opts ...request.Option) (*CreateEnvironmentEC2Output, error) { + req, out := c.CreateEnvironmentEC2Request(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateEnvironmentMembership = "CreateEnvironmentMembership" + +// CreateEnvironmentMembershipRequest generates a "aws/request.Request" representing the +// client's request for the CreateEnvironmentMembership operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreateEnvironmentMembership for more information on using the CreateEnvironmentMembership +// 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 CreateEnvironmentMembershipRequest method. +// req, resp := client.CreateEnvironmentMembershipRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/CreateEnvironmentMembership +func (c *Cloud9) CreateEnvironmentMembershipRequest(input *CreateEnvironmentMembershipInput) (req *request.Request, output *CreateEnvironmentMembershipOutput) { + op := &request.Operation{ + Name: opCreateEnvironmentMembership, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateEnvironmentMembershipInput{} + } + + output = &CreateEnvironmentMembershipOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateEnvironmentMembership API operation for AWS Cloud9. +// +// Adds an environment member to an AWS Cloud9 development environment. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Cloud9's +// API operation CreateEnvironmentMembership for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The target request is invalid. +// +// * ErrCodeConflictException "ConflictException" +// A conflict occurred. +// +// * ErrCodeNotFoundException "NotFoundException" +// The target resource cannot be found. +// +// * ErrCodeForbiddenException "ForbiddenException" +// An access permissions issue occurred. +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// Too many service requests were made over the given time period. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// A service limit was exceeded. +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// An internal server error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/CreateEnvironmentMembership +func (c *Cloud9) CreateEnvironmentMembership(input *CreateEnvironmentMembershipInput) (*CreateEnvironmentMembershipOutput, error) { + req, out := c.CreateEnvironmentMembershipRequest(input) + return out, req.Send() +} + +// CreateEnvironmentMembershipWithContext is the same as CreateEnvironmentMembership with the addition of +// the ability to pass a context and additional request options. +// +// See CreateEnvironmentMembership 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 *Cloud9) CreateEnvironmentMembershipWithContext(ctx aws.Context, input *CreateEnvironmentMembershipInput, opts ...request.Option) (*CreateEnvironmentMembershipOutput, error) { + req, out := c.CreateEnvironmentMembershipRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteEnvironment = "DeleteEnvironment" + +// DeleteEnvironmentRequest generates a "aws/request.Request" representing the +// client's request for the DeleteEnvironment operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteEnvironment for more information on using the DeleteEnvironment +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteEnvironmentRequest method. +// req, resp := client.DeleteEnvironmentRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/DeleteEnvironment +func (c *Cloud9) DeleteEnvironmentRequest(input *DeleteEnvironmentInput) (req *request.Request, output *DeleteEnvironmentOutput) { + op := &request.Operation{ + Name: opDeleteEnvironment, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteEnvironmentInput{} + } + + output = &DeleteEnvironmentOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteEnvironment API operation for AWS Cloud9. +// +// Deletes an AWS Cloud9 development environment. If an Amazon EC2 instance +// is connected to the environment, also terminates the instance. +// +// 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 Cloud9's +// API operation DeleteEnvironment for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The target request is invalid. +// +// * ErrCodeConflictException "ConflictException" +// A conflict occurred. +// +// * ErrCodeNotFoundException "NotFoundException" +// The target resource cannot be found. +// +// * ErrCodeForbiddenException "ForbiddenException" +// An access permissions issue occurred. +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// Too many service requests were made over the given time period. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// A service limit was exceeded. +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// An internal server error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/DeleteEnvironment +func (c *Cloud9) DeleteEnvironment(input *DeleteEnvironmentInput) (*DeleteEnvironmentOutput, error) { + req, out := c.DeleteEnvironmentRequest(input) + return out, req.Send() +} + +// DeleteEnvironmentWithContext is the same as DeleteEnvironment with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteEnvironment for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Cloud9) DeleteEnvironmentWithContext(ctx aws.Context, input *DeleteEnvironmentInput, opts ...request.Option) (*DeleteEnvironmentOutput, error) { + req, out := c.DeleteEnvironmentRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteEnvironmentMembership = "DeleteEnvironmentMembership" + +// DeleteEnvironmentMembershipRequest generates a "aws/request.Request" representing the +// client's request for the DeleteEnvironmentMembership operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DeleteEnvironmentMembership for more information on using the DeleteEnvironmentMembership +// 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 DeleteEnvironmentMembershipRequest method. +// req, resp := client.DeleteEnvironmentMembershipRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/DeleteEnvironmentMembership +func (c *Cloud9) DeleteEnvironmentMembershipRequest(input *DeleteEnvironmentMembershipInput) (req *request.Request, output *DeleteEnvironmentMembershipOutput) { + op := &request.Operation{ + Name: opDeleteEnvironmentMembership, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteEnvironmentMembershipInput{} + } + + output = &DeleteEnvironmentMembershipOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteEnvironmentMembership API operation for AWS Cloud9. +// +// Deletes an environment member from an AWS Cloud9 development environment. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Cloud9's +// API operation DeleteEnvironmentMembership for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The target request is invalid. +// +// * ErrCodeConflictException "ConflictException" +// A conflict occurred. +// +// * ErrCodeNotFoundException "NotFoundException" +// The target resource cannot be found. +// +// * ErrCodeForbiddenException "ForbiddenException" +// An access permissions issue occurred. +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// Too many service requests were made over the given time period. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// A service limit was exceeded. +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// An internal server error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/DeleteEnvironmentMembership +func (c *Cloud9) DeleteEnvironmentMembership(input *DeleteEnvironmentMembershipInput) (*DeleteEnvironmentMembershipOutput, error) { + req, out := c.DeleteEnvironmentMembershipRequest(input) + return out, req.Send() +} + +// DeleteEnvironmentMembershipWithContext is the same as DeleteEnvironmentMembership with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteEnvironmentMembership 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 *Cloud9) DeleteEnvironmentMembershipWithContext(ctx aws.Context, input *DeleteEnvironmentMembershipInput, opts ...request.Option) (*DeleteEnvironmentMembershipOutput, error) { + req, out := c.DeleteEnvironmentMembershipRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeEnvironmentMemberships = "DescribeEnvironmentMemberships" + +// DescribeEnvironmentMembershipsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeEnvironmentMemberships operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeEnvironmentMemberships for more information on using the DescribeEnvironmentMemberships +// 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 DescribeEnvironmentMembershipsRequest method. +// req, resp := client.DescribeEnvironmentMembershipsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/DescribeEnvironmentMemberships +func (c *Cloud9) DescribeEnvironmentMembershipsRequest(input *DescribeEnvironmentMembershipsInput) (req *request.Request, output *DescribeEnvironmentMembershipsOutput) { + op := &request.Operation{ + Name: opDescribeEnvironmentMemberships, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &DescribeEnvironmentMembershipsInput{} + } + + output = &DescribeEnvironmentMembershipsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeEnvironmentMemberships API operation for AWS Cloud9. +// +// Gets information about environment members for an AWS Cloud9 development +// environment. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Cloud9's +// API operation DescribeEnvironmentMemberships for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The target request is invalid. +// +// * ErrCodeConflictException "ConflictException" +// A conflict occurred. +// +// * ErrCodeNotFoundException "NotFoundException" +// The target resource cannot be found. +// +// * ErrCodeForbiddenException "ForbiddenException" +// An access permissions issue occurred. +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// Too many service requests were made over the given time period. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// A service limit was exceeded. +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// An internal server error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/DescribeEnvironmentMemberships +func (c *Cloud9) DescribeEnvironmentMemberships(input *DescribeEnvironmentMembershipsInput) (*DescribeEnvironmentMembershipsOutput, error) { + req, out := c.DescribeEnvironmentMembershipsRequest(input) + return out, req.Send() +} + +// DescribeEnvironmentMembershipsWithContext is the same as DescribeEnvironmentMemberships with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeEnvironmentMemberships 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 *Cloud9) DescribeEnvironmentMembershipsWithContext(ctx aws.Context, input *DescribeEnvironmentMembershipsInput, opts ...request.Option) (*DescribeEnvironmentMembershipsOutput, error) { + req, out := c.DescribeEnvironmentMembershipsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// DescribeEnvironmentMembershipsPages iterates over the pages of a DescribeEnvironmentMemberships operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See DescribeEnvironmentMemberships 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 DescribeEnvironmentMemberships operation. +// pageNum := 0 +// err := client.DescribeEnvironmentMembershipsPages(params, +// func(page *DescribeEnvironmentMembershipsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *Cloud9) DescribeEnvironmentMembershipsPages(input *DescribeEnvironmentMembershipsInput, fn func(*DescribeEnvironmentMembershipsOutput, bool) bool) error { + return c.DescribeEnvironmentMembershipsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// DescribeEnvironmentMembershipsPagesWithContext same as DescribeEnvironmentMembershipsPages 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 *Cloud9) DescribeEnvironmentMembershipsPagesWithContext(ctx aws.Context, input *DescribeEnvironmentMembershipsInput, fn func(*DescribeEnvironmentMembershipsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *DescribeEnvironmentMembershipsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.DescribeEnvironmentMembershipsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + cont := true + for p.Next() && cont { + cont = fn(p.Page().(*DescribeEnvironmentMembershipsOutput), !p.HasNextPage()) + } + return p.Err() +} + +const opDescribeEnvironmentStatus = "DescribeEnvironmentStatus" + +// DescribeEnvironmentStatusRequest generates a "aws/request.Request" representing the +// client's request for the DescribeEnvironmentStatus operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeEnvironmentStatus for more information on using the DescribeEnvironmentStatus +// 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 DescribeEnvironmentStatusRequest method. +// req, resp := client.DescribeEnvironmentStatusRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/DescribeEnvironmentStatus +func (c *Cloud9) DescribeEnvironmentStatusRequest(input *DescribeEnvironmentStatusInput) (req *request.Request, output *DescribeEnvironmentStatusOutput) { + op := &request.Operation{ + Name: opDescribeEnvironmentStatus, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeEnvironmentStatusInput{} + } + + output = &DescribeEnvironmentStatusOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeEnvironmentStatus API operation for AWS Cloud9. +// +// Gets status information for an AWS Cloud9 development environment. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Cloud9's +// API operation DescribeEnvironmentStatus for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The target request is invalid. +// +// * ErrCodeConflictException "ConflictException" +// A conflict occurred. +// +// * ErrCodeNotFoundException "NotFoundException" +// The target resource cannot be found. +// +// * ErrCodeForbiddenException "ForbiddenException" +// An access permissions issue occurred. +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// Too many service requests were made over the given time period. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// A service limit was exceeded. +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// An internal server error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/DescribeEnvironmentStatus +func (c *Cloud9) DescribeEnvironmentStatus(input *DescribeEnvironmentStatusInput) (*DescribeEnvironmentStatusOutput, error) { + req, out := c.DescribeEnvironmentStatusRequest(input) + return out, req.Send() +} + +// DescribeEnvironmentStatusWithContext is the same as DescribeEnvironmentStatus with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeEnvironmentStatus 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 *Cloud9) DescribeEnvironmentStatusWithContext(ctx aws.Context, input *DescribeEnvironmentStatusInput, opts ...request.Option) (*DescribeEnvironmentStatusOutput, error) { + req, out := c.DescribeEnvironmentStatusRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeEnvironments = "DescribeEnvironments" + +// DescribeEnvironmentsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeEnvironments operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeEnvironments for more information on using the DescribeEnvironments +// 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 DescribeEnvironmentsRequest method. +// req, resp := client.DescribeEnvironmentsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/DescribeEnvironments +func (c *Cloud9) DescribeEnvironmentsRequest(input *DescribeEnvironmentsInput) (req *request.Request, output *DescribeEnvironmentsOutput) { + op := &request.Operation{ + Name: opDescribeEnvironments, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeEnvironmentsInput{} + } + + output = &DescribeEnvironmentsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeEnvironments API operation for AWS Cloud9. +// +// Gets information about AWS Cloud9 development environments. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Cloud9's +// API operation DescribeEnvironments for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The target request is invalid. +// +// * ErrCodeConflictException "ConflictException" +// A conflict occurred. +// +// * ErrCodeNotFoundException "NotFoundException" +// The target resource cannot be found. +// +// * ErrCodeForbiddenException "ForbiddenException" +// An access permissions issue occurred. +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// Too many service requests were made over the given time period. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// A service limit was exceeded. +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// An internal server error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/DescribeEnvironments +func (c *Cloud9) DescribeEnvironments(input *DescribeEnvironmentsInput) (*DescribeEnvironmentsOutput, error) { + req, out := c.DescribeEnvironmentsRequest(input) + return out, req.Send() +} + +// DescribeEnvironmentsWithContext is the same as DescribeEnvironments with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeEnvironments 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 *Cloud9) DescribeEnvironmentsWithContext(ctx aws.Context, input *DescribeEnvironmentsInput, opts ...request.Option) (*DescribeEnvironmentsOutput, error) { + req, out := c.DescribeEnvironmentsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListEnvironments = "ListEnvironments" + +// ListEnvironmentsRequest generates a "aws/request.Request" representing the +// client's request for the ListEnvironments operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListEnvironments for more information on using the ListEnvironments +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListEnvironmentsRequest method. +// req, resp := client.ListEnvironmentsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/ListEnvironments +func (c *Cloud9) ListEnvironmentsRequest(input *ListEnvironmentsInput) (req *request.Request, output *ListEnvironmentsOutput) { + op := &request.Operation{ + Name: opListEnvironments, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"nextToken"}, + OutputTokens: []string{"nextToken"}, + LimitToken: "maxResults", + TruncationToken: "", + }, + } + + if input == nil { + input = &ListEnvironmentsInput{} + } + + output = &ListEnvironmentsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListEnvironments API operation for AWS Cloud9. +// +// Gets a list of AWS Cloud9 development environment identifiers. +// +// 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 Cloud9's +// API operation ListEnvironments for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The target request is invalid. +// +// * ErrCodeConflictException "ConflictException" +// A conflict occurred. +// +// * ErrCodeNotFoundException "NotFoundException" +// The target resource cannot be found. +// +// * ErrCodeForbiddenException "ForbiddenException" +// An access permissions issue occurred. +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// Too many service requests were made over the given time period. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// A service limit was exceeded. +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// An internal server error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/ListEnvironments +func (c *Cloud9) ListEnvironments(input *ListEnvironmentsInput) (*ListEnvironmentsOutput, error) { + req, out := c.ListEnvironmentsRequest(input) + return out, req.Send() +} + +// ListEnvironmentsWithContext is the same as ListEnvironments with the addition of +// the ability to pass a context and additional request options. +// +// See ListEnvironments for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Cloud9) ListEnvironmentsWithContext(ctx aws.Context, input *ListEnvironmentsInput, opts ...request.Option) (*ListEnvironmentsOutput, error) { + req, out := c.ListEnvironmentsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// ListEnvironmentsPages iterates over the pages of a ListEnvironments operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See ListEnvironments method for more information on how to use this operation. +// +// Note: This operation can generate multiple requests to a service. +// +// // Example iterating over at most 3 pages of a ListEnvironments operation. +// pageNum := 0 +// err := client.ListEnvironmentsPages(params, +// func(page *ListEnvironmentsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *Cloud9) ListEnvironmentsPages(input *ListEnvironmentsInput, fn func(*ListEnvironmentsOutput, bool) bool) error { + return c.ListEnvironmentsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// ListEnvironmentsPagesWithContext same as ListEnvironmentsPages except +// it takes a Context and allows setting request options on the pages. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Cloud9) ListEnvironmentsPagesWithContext(ctx aws.Context, input *ListEnvironmentsInput, fn func(*ListEnvironmentsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *ListEnvironmentsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.ListEnvironmentsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + cont := true + for p.Next() && cont { + cont = fn(p.Page().(*ListEnvironmentsOutput), !p.HasNextPage()) + } + return p.Err() +} + +const opUpdateEnvironment = "UpdateEnvironment" + +// UpdateEnvironmentRequest generates a "aws/request.Request" representing the +// client's request for the UpdateEnvironment operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UpdateEnvironment for more information on using the UpdateEnvironment +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the UpdateEnvironmentRequest method. +// req, resp := client.UpdateEnvironmentRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/UpdateEnvironment +func (c *Cloud9) UpdateEnvironmentRequest(input *UpdateEnvironmentInput) (req *request.Request, output *UpdateEnvironmentOutput) { + op := &request.Operation{ + Name: opUpdateEnvironment, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateEnvironmentInput{} + } + + output = &UpdateEnvironmentOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateEnvironment API operation for AWS Cloud9. +// +// Changes the settings of an existing AWS Cloud9 development environment. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Cloud9's +// API operation UpdateEnvironment for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The target request is invalid. +// +// * ErrCodeConflictException "ConflictException" +// A conflict occurred. +// +// * ErrCodeNotFoundException "NotFoundException" +// The target resource cannot be found. +// +// * ErrCodeForbiddenException "ForbiddenException" +// An access permissions issue occurred. +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// Too many service requests were made over the given time period. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// A service limit was exceeded. +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// An internal server error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/UpdateEnvironment +func (c *Cloud9) UpdateEnvironment(input *UpdateEnvironmentInput) (*UpdateEnvironmentOutput, error) { + req, out := c.UpdateEnvironmentRequest(input) + return out, req.Send() +} + +// UpdateEnvironmentWithContext is the same as UpdateEnvironment with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateEnvironment for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *Cloud9) UpdateEnvironmentWithContext(ctx aws.Context, input *UpdateEnvironmentInput, opts ...request.Option) (*UpdateEnvironmentOutput, error) { + req, out := c.UpdateEnvironmentRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateEnvironmentMembership = "UpdateEnvironmentMembership" + +// UpdateEnvironmentMembershipRequest generates a "aws/request.Request" representing the +// client's request for the UpdateEnvironmentMembership operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 UpdateEnvironmentMembership for more information on using the UpdateEnvironmentMembership +// 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 UpdateEnvironmentMembershipRequest method. +// req, resp := client.UpdateEnvironmentMembershipRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/UpdateEnvironmentMembership +func (c *Cloud9) UpdateEnvironmentMembershipRequest(input *UpdateEnvironmentMembershipInput) (req *request.Request, output *UpdateEnvironmentMembershipOutput) { + op := &request.Operation{ + Name: opUpdateEnvironmentMembership, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateEnvironmentMembershipInput{} + } + + output = &UpdateEnvironmentMembershipOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateEnvironmentMembership API operation for AWS Cloud9. +// +// Changes the settings of an existing environment member for an AWS Cloud9 +// development environment. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS Cloud9's +// API operation UpdateEnvironmentMembership for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The target request is invalid. +// +// * ErrCodeConflictException "ConflictException" +// A conflict occurred. +// +// * ErrCodeNotFoundException "NotFoundException" +// The target resource cannot be found. +// +// * ErrCodeForbiddenException "ForbiddenException" +// An access permissions issue occurred. +// +// * ErrCodeTooManyRequestsException "TooManyRequestsException" +// Too many service requests were made over the given time period. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// A service limit was exceeded. +// +// * ErrCodeInternalServerErrorException "InternalServerErrorException" +// An internal server error occurred. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23/UpdateEnvironmentMembership +func (c *Cloud9) UpdateEnvironmentMembership(input *UpdateEnvironmentMembershipInput) (*UpdateEnvironmentMembershipOutput, error) { + req, out := c.UpdateEnvironmentMembershipRequest(input) + return out, req.Send() +} + +// UpdateEnvironmentMembershipWithContext is the same as UpdateEnvironmentMembership with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateEnvironmentMembership 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 *Cloud9) UpdateEnvironmentMembershipWithContext(ctx aws.Context, input *UpdateEnvironmentMembershipInput, opts ...request.Option) (*UpdateEnvironmentMembershipOutput, error) { + req, out := c.UpdateEnvironmentMembershipRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +type CreateEnvironmentEC2Input struct { + _ struct{} `type:"structure"` + + // The number of minutes until the running instance is shut down after the environment + // has last been used. + AutomaticStopTimeMinutes *int64 `locationName:"automaticStopTimeMinutes" type:"integer"` + + // A unique, case-sensitive string that helps AWS Cloud9 to ensure this operation + // completes no more than one time. + // + // For more information, see Client Tokens (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html) + // in the Amazon EC2 API Reference. + ClientRequestToken *string `locationName:"clientRequestToken" type:"string"` + + // The description of the environment to create. + Description *string `locationName:"description" type:"string"` + + // The type of instance to connect to the environment (for example, t2.micro). + // + // InstanceType is a required field + InstanceType *string `locationName:"instanceType" min:"5" type:"string" required:"true"` + + // The name of the environment to create. + // + // This name is visible to other AWS IAM users in the same AWS account. + // + // Name is a required field + Name *string `locationName:"name" min:"1" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the environment owner. This ARN can be + // the ARN of any AWS IAM principal. If this value is not specified, the ARN + // defaults to this environment's creator. + OwnerArn *string `locationName:"ownerArn" type:"string"` + + // The ID of the subnet in Amazon VPC that AWS Cloud9 will use to communicate + // with the Amazon EC2 instance. + SubnetId *string `locationName:"subnetId" min:"5" type:"string"` +} + +// String returns the string representation +func (s CreateEnvironmentEC2Input) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateEnvironmentEC2Input) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateEnvironmentEC2Input) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateEnvironmentEC2Input"} + if s.InstanceType == nil { + invalidParams.Add(request.NewErrParamRequired("InstanceType")) + } + if s.InstanceType != nil && len(*s.InstanceType) < 5 { + invalidParams.Add(request.NewErrParamMinLen("InstanceType", 5)) + } + 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.SubnetId != nil && len(*s.SubnetId) < 5 { + invalidParams.Add(request.NewErrParamMinLen("SubnetId", 5)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAutomaticStopTimeMinutes sets the AutomaticStopTimeMinutes field's value. +func (s *CreateEnvironmentEC2Input) SetAutomaticStopTimeMinutes(v int64) *CreateEnvironmentEC2Input { + s.AutomaticStopTimeMinutes = &v + return s +} + +// SetClientRequestToken sets the ClientRequestToken field's value. +func (s *CreateEnvironmentEC2Input) SetClientRequestToken(v string) *CreateEnvironmentEC2Input { + s.ClientRequestToken = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CreateEnvironmentEC2Input) SetDescription(v string) *CreateEnvironmentEC2Input { + s.Description = &v + return s +} + +// SetInstanceType sets the InstanceType field's value. +func (s *CreateEnvironmentEC2Input) SetInstanceType(v string) *CreateEnvironmentEC2Input { + s.InstanceType = &v + return s +} + +// SetName sets the Name field's value. +func (s *CreateEnvironmentEC2Input) SetName(v string) *CreateEnvironmentEC2Input { + s.Name = &v + return s +} + +// SetOwnerArn sets the OwnerArn field's value. +func (s *CreateEnvironmentEC2Input) SetOwnerArn(v string) *CreateEnvironmentEC2Input { + s.OwnerArn = &v + return s +} + +// SetSubnetId sets the SubnetId field's value. +func (s *CreateEnvironmentEC2Input) SetSubnetId(v string) *CreateEnvironmentEC2Input { + s.SubnetId = &v + return s +} + +type CreateEnvironmentEC2Output struct { + _ struct{} `type:"structure"` + + // The ID of the environment that was created. + EnvironmentId *string `locationName:"environmentId" type:"string"` +} + +// String returns the string representation +func (s CreateEnvironmentEC2Output) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateEnvironmentEC2Output) GoString() string { + return s.String() +} + +// SetEnvironmentId sets the EnvironmentId field's value. +func (s *CreateEnvironmentEC2Output) SetEnvironmentId(v string) *CreateEnvironmentEC2Output { + s.EnvironmentId = &v + return s +} + +type CreateEnvironmentMembershipInput struct { + _ struct{} `type:"structure"` + + // The ID of the environment that contains the environment member you want to + // add. + // + // EnvironmentId is a required field + EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"` + + // The type of environment member permissions you want to associate with this + // environment member. Available values include: + // + // * read-only: Has read-only access to the environment. + // + // * read-write: Has read-write access to the environment. + // + // Permissions is a required field + Permissions *string `locationName:"permissions" type:"string" required:"true" enum:"MemberPermissions"` + + // The Amazon Resource Name (ARN) of the environment member you want to add. + // + // UserArn is a required field + UserArn *string `locationName:"userArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateEnvironmentMembershipInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateEnvironmentMembershipInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateEnvironmentMembershipInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateEnvironmentMembershipInput"} + if s.EnvironmentId == nil { + invalidParams.Add(request.NewErrParamRequired("EnvironmentId")) + } + if s.Permissions == nil { + invalidParams.Add(request.NewErrParamRequired("Permissions")) + } + if s.UserArn == nil { + invalidParams.Add(request.NewErrParamRequired("UserArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEnvironmentId sets the EnvironmentId field's value. +func (s *CreateEnvironmentMembershipInput) SetEnvironmentId(v string) *CreateEnvironmentMembershipInput { + s.EnvironmentId = &v + return s +} + +// SetPermissions sets the Permissions field's value. +func (s *CreateEnvironmentMembershipInput) SetPermissions(v string) *CreateEnvironmentMembershipInput { + s.Permissions = &v + return s +} + +// SetUserArn sets the UserArn field's value. +func (s *CreateEnvironmentMembershipInput) SetUserArn(v string) *CreateEnvironmentMembershipInput { + s.UserArn = &v + return s +} + +type CreateEnvironmentMembershipOutput struct { + _ struct{} `type:"structure"` + + // Information about the environment member that was added. + Membership *EnvironmentMember `locationName:"membership" type:"structure"` +} + +// String returns the string representation +func (s CreateEnvironmentMembershipOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateEnvironmentMembershipOutput) GoString() string { + return s.String() +} + +// SetMembership sets the Membership field's value. +func (s *CreateEnvironmentMembershipOutput) SetMembership(v *EnvironmentMember) *CreateEnvironmentMembershipOutput { + s.Membership = v + return s +} + +type DeleteEnvironmentInput struct { + _ struct{} `type:"structure"` + + // The ID of the environment to delete. + // + // EnvironmentId is a required field + EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteEnvironmentInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteEnvironmentInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteEnvironmentInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteEnvironmentInput"} + if s.EnvironmentId == nil { + invalidParams.Add(request.NewErrParamRequired("EnvironmentId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEnvironmentId sets the EnvironmentId field's value. +func (s *DeleteEnvironmentInput) SetEnvironmentId(v string) *DeleteEnvironmentInput { + s.EnvironmentId = &v + return s +} + +type DeleteEnvironmentMembershipInput struct { + _ struct{} `type:"structure"` + + // The ID of the environment to delete the environment member from. + // + // EnvironmentId is a required field + EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the environment member to delete from the + // environment. + // + // UserArn is a required field + UserArn *string `locationName:"userArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteEnvironmentMembershipInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteEnvironmentMembershipInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteEnvironmentMembershipInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteEnvironmentMembershipInput"} + if s.EnvironmentId == nil { + invalidParams.Add(request.NewErrParamRequired("EnvironmentId")) + } + if s.UserArn == nil { + invalidParams.Add(request.NewErrParamRequired("UserArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEnvironmentId sets the EnvironmentId field's value. +func (s *DeleteEnvironmentMembershipInput) SetEnvironmentId(v string) *DeleteEnvironmentMembershipInput { + s.EnvironmentId = &v + return s +} + +// SetUserArn sets the UserArn field's value. +func (s *DeleteEnvironmentMembershipInput) SetUserArn(v string) *DeleteEnvironmentMembershipInput { + s.UserArn = &v + return s +} + +type DeleteEnvironmentMembershipOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteEnvironmentMembershipOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteEnvironmentMembershipOutput) GoString() string { + return s.String() +} + +type DeleteEnvironmentOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteEnvironmentOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteEnvironmentOutput) GoString() string { + return s.String() +} + +type DescribeEnvironmentMembershipsInput struct { + _ struct{} `type:"structure"` + + // The ID of the environment to get environment member information about. + EnvironmentId *string `locationName:"environmentId" type:"string"` + + // The maximum number of environment members to get information about. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // During a previous call, if there are more than 25 items in the list, only + // the first 25 items are returned, along with a unique string called a next + // token. To get the next batch of items in the list, call this operation again, + // adding the next token to the call. To get all of the items in the list, keep + // calling this operation with each subsequent next token that is returned, + // until no more next tokens are returned. + NextToken *string `locationName:"nextToken" type:"string"` + + // The type of environment member permissions to get information about. Available + // values include: + // + // * owner: Owns the environment. + // + // * read-only: Has read-only access to the environment. + // + // * read-write: Has read-write access to the environment. + // + // If no value is specified, information about all environment members are returned. + Permissions []*string `locationName:"permissions" type:"list"` + + // The Amazon Resource Name (ARN) of an individual environment member to get + // information about. If no value is specified, information about all environment + // members are returned. + UserArn *string `locationName:"userArn" type:"string"` +} + +// String returns the string representation +func (s DescribeEnvironmentMembershipsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeEnvironmentMembershipsInput) GoString() string { + return s.String() +} + +// SetEnvironmentId sets the EnvironmentId field's value. +func (s *DescribeEnvironmentMembershipsInput) SetEnvironmentId(v string) *DescribeEnvironmentMembershipsInput { + s.EnvironmentId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *DescribeEnvironmentMembershipsInput) SetMaxResults(v int64) *DescribeEnvironmentMembershipsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeEnvironmentMembershipsInput) SetNextToken(v string) *DescribeEnvironmentMembershipsInput { + s.NextToken = &v + return s +} + +// SetPermissions sets the Permissions field's value. +func (s *DescribeEnvironmentMembershipsInput) SetPermissions(v []*string) *DescribeEnvironmentMembershipsInput { + s.Permissions = v + return s +} + +// SetUserArn sets the UserArn field's value. +func (s *DescribeEnvironmentMembershipsInput) SetUserArn(v string) *DescribeEnvironmentMembershipsInput { + s.UserArn = &v + return s +} + +type DescribeEnvironmentMembershipsOutput struct { + _ struct{} `type:"structure"` + + // Information about the environment members for the environment. + Memberships []*EnvironmentMember `locationName:"memberships" type:"list"` + + // If there are more than 25 items in the list, only the first 25 items are + // returned, along with a unique string called a next token. To get the next + // batch of items in the list, call this operation again, adding the next token + // to the call. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s DescribeEnvironmentMembershipsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeEnvironmentMembershipsOutput) GoString() string { + return s.String() +} + +// SetMemberships sets the Memberships field's value. +func (s *DescribeEnvironmentMembershipsOutput) SetMemberships(v []*EnvironmentMember) *DescribeEnvironmentMembershipsOutput { + s.Memberships = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeEnvironmentMembershipsOutput) SetNextToken(v string) *DescribeEnvironmentMembershipsOutput { + s.NextToken = &v + return s +} + +type DescribeEnvironmentStatusInput struct { + _ struct{} `type:"structure"` + + // The ID of the environment to get status information about. + // + // EnvironmentId is a required field + EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeEnvironmentStatusInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeEnvironmentStatusInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeEnvironmentStatusInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeEnvironmentStatusInput"} + if s.EnvironmentId == nil { + invalidParams.Add(request.NewErrParamRequired("EnvironmentId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEnvironmentId sets the EnvironmentId field's value. +func (s *DescribeEnvironmentStatusInput) SetEnvironmentId(v string) *DescribeEnvironmentStatusInput { + s.EnvironmentId = &v + return s +} + +type DescribeEnvironmentStatusOutput struct { + _ struct{} `type:"structure"` + + // Any informational message about the status of the environment. + Message *string `locationName:"message" type:"string"` + + // The status of the environment. Available values include: + // + // * connecting: The environment is connecting. + // + // * creating: The environment is being created. + // + // * deleting: The environment is being deleted. + // + // * error: The environment is in an error state. + // + // * ready: The environment is ready. + // + // * stopped: The environment is stopped. + // + // * stopping: The environment is stopping. + Status *string `locationName:"status" type:"string" enum:"EnvironmentStatus"` +} + +// String returns the string representation +func (s DescribeEnvironmentStatusOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeEnvironmentStatusOutput) GoString() string { + return s.String() +} + +// SetMessage sets the Message field's value. +func (s *DescribeEnvironmentStatusOutput) SetMessage(v string) *DescribeEnvironmentStatusOutput { + s.Message = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *DescribeEnvironmentStatusOutput) SetStatus(v string) *DescribeEnvironmentStatusOutput { + s.Status = &v + return s +} + +type DescribeEnvironmentsInput struct { + _ struct{} `type:"structure"` + + // The IDs of individual environments to get information about. + // + // EnvironmentIds is a required field + EnvironmentIds []*string `locationName:"environmentIds" min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s DescribeEnvironmentsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeEnvironmentsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeEnvironmentsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeEnvironmentsInput"} + if s.EnvironmentIds == nil { + invalidParams.Add(request.NewErrParamRequired("EnvironmentIds")) + } + if s.EnvironmentIds != nil && len(s.EnvironmentIds) < 1 { + invalidParams.Add(request.NewErrParamMinLen("EnvironmentIds", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEnvironmentIds sets the EnvironmentIds field's value. +func (s *DescribeEnvironmentsInput) SetEnvironmentIds(v []*string) *DescribeEnvironmentsInput { + s.EnvironmentIds = v + return s +} + +type DescribeEnvironmentsOutput struct { + _ struct{} `type:"structure"` + + // Information about the environments that are returned. + Environments []*Environment `locationName:"environments" type:"list"` +} + +// String returns the string representation +func (s DescribeEnvironmentsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeEnvironmentsOutput) GoString() string { + return s.String() +} + +// SetEnvironments sets the Environments field's value. +func (s *DescribeEnvironmentsOutput) SetEnvironments(v []*Environment) *DescribeEnvironmentsOutput { + s.Environments = v + return s +} + +// Information about an AWS Cloud9 development environment. +type Environment struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) of the environment. + Arn *string `locationName:"arn" type:"string"` + + // The description for the environment. + Description *string `locationName:"description" type:"string"` + + // The ID of the environment. + Id *string `locationName:"id" type:"string"` + + // The name of the environment. + Name *string `locationName:"name" min:"1" type:"string"` + + // The Amazon Resource Name (ARN) of the environment owner. + OwnerArn *string `locationName:"ownerArn" type:"string"` + + // The type of environment. Valid values include the following: + // + // * ec2: An Amazon Elastic Compute Cloud (Amazon EC2) instance connects + // to the environment. + // + // * ssh: Your own server connects to the environment. + Type *string `locationName:"type" type:"string" enum:"EnvironmentType"` +} + +// String returns the string representation +func (s Environment) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Environment) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *Environment) SetArn(v string) *Environment { + s.Arn = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *Environment) SetDescription(v string) *Environment { + s.Description = &v + return s +} + +// SetId sets the Id field's value. +func (s *Environment) SetId(v string) *Environment { + s.Id = &v + return s +} + +// SetName sets the Name field's value. +func (s *Environment) SetName(v string) *Environment { + s.Name = &v + return s +} + +// SetOwnerArn sets the OwnerArn field's value. +func (s *Environment) SetOwnerArn(v string) *Environment { + s.OwnerArn = &v + return s +} + +// SetType sets the Type field's value. +func (s *Environment) SetType(v string) *Environment { + s.Type = &v + return s +} + +// Information about an environment member for an AWS Cloud9 development environment. +type EnvironmentMember struct { + _ struct{} `type:"structure"` + + // The ID of the environment for the environment member. + EnvironmentId *string `locationName:"environmentId" type:"string"` + + // The time, expressed in epoch time format, when the environment member last + // opened the environment. + LastAccess *time.Time `locationName:"lastAccess" type:"timestamp" timestampFormat:"unix"` + + // The type of environment member permissions associated with this environment + // member. Available values include: + // + // * owner: Owns the environment. + // + // * read-only: Has read-only access to the environment. + // + // * read-write: Has read-write access to the environment. + Permissions *string `locationName:"permissions" type:"string" enum:"Permissions"` + + // The Amazon Resource Name (ARN) of the environment member. + UserArn *string `locationName:"userArn" type:"string"` + + // The user ID in AWS Identity and Access Management (AWS IAM) of the environment + // member. + UserId *string `locationName:"userId" type:"string"` +} + +// String returns the string representation +func (s EnvironmentMember) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s EnvironmentMember) GoString() string { + return s.String() +} + +// SetEnvironmentId sets the EnvironmentId field's value. +func (s *EnvironmentMember) SetEnvironmentId(v string) *EnvironmentMember { + s.EnvironmentId = &v + return s +} + +// SetLastAccess sets the LastAccess field's value. +func (s *EnvironmentMember) SetLastAccess(v time.Time) *EnvironmentMember { + s.LastAccess = &v + return s +} + +// SetPermissions sets the Permissions field's value. +func (s *EnvironmentMember) SetPermissions(v string) *EnvironmentMember { + s.Permissions = &v + return s +} + +// SetUserArn sets the UserArn field's value. +func (s *EnvironmentMember) SetUserArn(v string) *EnvironmentMember { + s.UserArn = &v + return s +} + +// SetUserId sets the UserId field's value. +func (s *EnvironmentMember) SetUserId(v string) *EnvironmentMember { + s.UserId = &v + return s +} + +type ListEnvironmentsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of environments to get identifiers for. + MaxResults *int64 `locationName:"maxResults" type:"integer"` + + // During a previous call, if there are more than 25 items in the list, only + // the first 25 items are returned, along with a unique string called a next + // token. To get the next batch of items in the list, call this operation again, + // adding the next token to the call. To get all of the items in the list, keep + // calling this operation with each subsequent next token that is returned, + // until no more next tokens are returned. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListEnvironmentsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListEnvironmentsInput) GoString() string { + return s.String() +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListEnvironmentsInput) SetMaxResults(v int64) *ListEnvironmentsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListEnvironmentsInput) SetNextToken(v string) *ListEnvironmentsInput { + s.NextToken = &v + return s +} + +type ListEnvironmentsOutput struct { + _ struct{} `type:"structure"` + + // The list of environment identifiers. + EnvironmentIds []*string `locationName:"environmentIds" type:"list"` + + // If there are more than 25 items in the list, only the first 25 items are + // returned, along with a unique string called a next token. To get the next + // batch of items in the list, call this operation again, adding the next token + // to the call. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListEnvironmentsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListEnvironmentsOutput) GoString() string { + return s.String() +} + +// SetEnvironmentIds sets the EnvironmentIds field's value. +func (s *ListEnvironmentsOutput) SetEnvironmentIds(v []*string) *ListEnvironmentsOutput { + s.EnvironmentIds = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListEnvironmentsOutput) SetNextToken(v string) *ListEnvironmentsOutput { + s.NextToken = &v + return s +} + +type UpdateEnvironmentInput struct { + _ struct{} `type:"structure"` + + // Any new or replacement description for the environment. + Description *string `locationName:"description" type:"string"` + + // The ID of the environment to change settings. + // + // EnvironmentId is a required field + EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"` + + // A replacement name for the environment. + Name *string `locationName:"name" min:"1" type:"string"` +} + +// String returns the string representation +func (s UpdateEnvironmentInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateEnvironmentInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateEnvironmentInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateEnvironmentInput"} + if s.EnvironmentId == nil { + invalidParams.Add(request.NewErrParamRequired("EnvironmentId")) + } + 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 *UpdateEnvironmentInput) SetDescription(v string) *UpdateEnvironmentInput { + s.Description = &v + return s +} + +// SetEnvironmentId sets the EnvironmentId field's value. +func (s *UpdateEnvironmentInput) SetEnvironmentId(v string) *UpdateEnvironmentInput { + s.EnvironmentId = &v + return s +} + +// SetName sets the Name field's value. +func (s *UpdateEnvironmentInput) SetName(v string) *UpdateEnvironmentInput { + s.Name = &v + return s +} + +type UpdateEnvironmentMembershipInput struct { + _ struct{} `type:"structure"` + + // The ID of the environment for the environment member whose settings you want + // to change. + // + // EnvironmentId is a required field + EnvironmentId *string `locationName:"environmentId" type:"string" required:"true"` + + // The replacement type of environment member permissions you want to associate + // with this environment member. Available values include: + // + // * read-only: Has read-only access to the environment. + // + // * read-write: Has read-write access to the environment. + // + // Permissions is a required field + Permissions *string `locationName:"permissions" type:"string" required:"true" enum:"MemberPermissions"` + + // The Amazon Resource Name (ARN) of the environment member whose settings you + // want to change. + // + // UserArn is a required field + UserArn *string `locationName:"userArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateEnvironmentMembershipInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateEnvironmentMembershipInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateEnvironmentMembershipInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateEnvironmentMembershipInput"} + if s.EnvironmentId == nil { + invalidParams.Add(request.NewErrParamRequired("EnvironmentId")) + } + if s.Permissions == nil { + invalidParams.Add(request.NewErrParamRequired("Permissions")) + } + if s.UserArn == nil { + invalidParams.Add(request.NewErrParamRequired("UserArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEnvironmentId sets the EnvironmentId field's value. +func (s *UpdateEnvironmentMembershipInput) SetEnvironmentId(v string) *UpdateEnvironmentMembershipInput { + s.EnvironmentId = &v + return s +} + +// SetPermissions sets the Permissions field's value. +func (s *UpdateEnvironmentMembershipInput) SetPermissions(v string) *UpdateEnvironmentMembershipInput { + s.Permissions = &v + return s +} + +// SetUserArn sets the UserArn field's value. +func (s *UpdateEnvironmentMembershipInput) SetUserArn(v string) *UpdateEnvironmentMembershipInput { + s.UserArn = &v + return s +} + +type UpdateEnvironmentMembershipOutput struct { + _ struct{} `type:"structure"` + + // Information about the environment member whose settings were changed. + Membership *EnvironmentMember `locationName:"membership" type:"structure"` +} + +// String returns the string representation +func (s UpdateEnvironmentMembershipOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateEnvironmentMembershipOutput) GoString() string { + return s.String() +} + +// SetMembership sets the Membership field's value. +func (s *UpdateEnvironmentMembershipOutput) SetMembership(v *EnvironmentMember) *UpdateEnvironmentMembershipOutput { + s.Membership = v + return s +} + +type UpdateEnvironmentOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s UpdateEnvironmentOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateEnvironmentOutput) GoString() string { + return s.String() +} + +const ( + // EnvironmentStatusError is a EnvironmentStatus enum value + EnvironmentStatusError = "error" + + // EnvironmentStatusCreating is a EnvironmentStatus enum value + EnvironmentStatusCreating = "creating" + + // EnvironmentStatusConnecting is a EnvironmentStatus enum value + EnvironmentStatusConnecting = "connecting" + + // EnvironmentStatusReady is a EnvironmentStatus enum value + EnvironmentStatusReady = "ready" + + // EnvironmentStatusStopping is a EnvironmentStatus enum value + EnvironmentStatusStopping = "stopping" + + // EnvironmentStatusStopped is a EnvironmentStatus enum value + EnvironmentStatusStopped = "stopped" + + // EnvironmentStatusDeleting is a EnvironmentStatus enum value + EnvironmentStatusDeleting = "deleting" +) + +const ( + // EnvironmentTypeSsh is a EnvironmentType enum value + EnvironmentTypeSsh = "ssh" + + // EnvironmentTypeEc2 is a EnvironmentType enum value + EnvironmentTypeEc2 = "ec2" +) + +const ( + // MemberPermissionsReadWrite is a MemberPermissions enum value + MemberPermissionsReadWrite = "read-write" + + // MemberPermissionsReadOnly is a MemberPermissions enum value + MemberPermissionsReadOnly = "read-only" +) + +const ( + // PermissionsOwner is a Permissions enum value + PermissionsOwner = "owner" + + // PermissionsReadWrite is a Permissions enum value + PermissionsReadWrite = "read-write" + + // PermissionsReadOnly is a Permissions enum value + PermissionsReadOnly = "read-only" +) diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloud9/doc.go b/vendor/github.com/aws/aws-sdk-go/service/cloud9/doc.go new file mode 100644 index 000000000..c20c565e2 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/cloud9/doc.go @@ -0,0 +1,58 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package cloud9 provides the client and types for making API +// requests to AWS Cloud9. +// +// AWS Cloud9 is a collection of tools that you can use to code, build, run, +// test, debug, and release software in the cloud. +// +// For more information about AWS Cloud9, see the AWS Cloud9 User Guide (https://docs.aws.amazon.com/cloud9/latest/user-guide). +// +// AWS Cloud9 supports these operations: +// +// * CreateEnvironmentEC2: Creates an AWS Cloud9 development environment, +// launches an Amazon EC2 instance, and then connects from the instance to +// the environment. +// +// * CreateEnvironmentMembership: Adds an environment member to an environment. +// +// * DeleteEnvironment: Deletes an environment. If an Amazon EC2 instance +// is connected to the environment, also terminates the instance. +// +// * DeleteEnvironmentMembership: Deletes an environment member from an environment. +// +// * DescribeEnvironmentMemberships: Gets information about environment members +// for an environment. +// +// * DescribeEnvironments: Gets information about environments. +// +// * DescribeEnvironmentStatus: Gets status information for an environment. +// +// * ListEnvironments: Gets a list of environment identifiers. +// +// * UpdateEnvironment: Changes the settings of an existing environment. +// +// * UpdateEnvironmentMembership: Changes the settings of an existing environment +// member for an environment. +// +// See https://docs.aws.amazon.com/goto/WebAPI/cloud9-2017-09-23 for more information on this service. +// +// See cloud9 package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/cloud9/ +// +// Using the Client +// +// To contact AWS Cloud9 with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the AWS Cloud9 client Cloud9 for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/cloud9/#New +package cloud9 diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloud9/errors.go b/vendor/github.com/aws/aws-sdk-go/service/cloud9/errors.go new file mode 100644 index 000000000..b5369ad46 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/cloud9/errors.go @@ -0,0 +1,48 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package cloud9 + +const ( + + // ErrCodeBadRequestException for service response error code + // "BadRequestException". + // + // The target request is invalid. + ErrCodeBadRequestException = "BadRequestException" + + // ErrCodeConflictException for service response error code + // "ConflictException". + // + // A conflict occurred. + ErrCodeConflictException = "ConflictException" + + // ErrCodeForbiddenException for service response error code + // "ForbiddenException". + // + // An access permissions issue occurred. + ErrCodeForbiddenException = "ForbiddenException" + + // ErrCodeInternalServerErrorException for service response error code + // "InternalServerErrorException". + // + // An internal server error occurred. + ErrCodeInternalServerErrorException = "InternalServerErrorException" + + // ErrCodeLimitExceededException for service response error code + // "LimitExceededException". + // + // A service limit was exceeded. + ErrCodeLimitExceededException = "LimitExceededException" + + // ErrCodeNotFoundException for service response error code + // "NotFoundException". + // + // The target resource cannot be found. + ErrCodeNotFoundException = "NotFoundException" + + // ErrCodeTooManyRequestsException for service response error code + // "TooManyRequestsException". + // + // Too many service requests were made over the given time period. + ErrCodeTooManyRequestsException = "TooManyRequestsException" +) diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloud9/service.go b/vendor/github.com/aws/aws-sdk-go/service/cloud9/service.go new file mode 100644 index 000000000..1a01d2d92 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/cloud9/service.go @@ -0,0 +1,95 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package cloud9 + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol/jsonrpc" +) + +// Cloud9 provides the API operation methods for making requests to +// AWS Cloud9. See this package's package overview docs +// for details on the service. +// +// Cloud9 methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type Cloud9 struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "cloud9" // Service endpoint prefix API calls made to. + EndpointsID = ServiceName // Service ID for Regions and Endpoints metadata. +) + +// New creates a new instance of the Cloud9 client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// // Create a Cloud9 client from just a session. +// svc := cloud9.New(mySession) +// +// // Create a Cloud9 client with additional configuration +// svc := cloud9.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *Cloud9 { + c := p.ClientConfig(EndpointsID, cfgs...) + return newClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion, c.SigningName) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion, signingName string) *Cloud9 { + svc := &Cloud9{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + SigningName: signingName, + SigningRegion: signingRegion, + Endpoint: endpoint, + APIVersion: "2017-09-23", + JSONVersion: "1.1", + TargetPrefix: "AWSCloud9WorkspaceManagementService", + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a Cloud9 operation and runs any +// custom request initialization. +func (c *Cloud9) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloudformation/api.go b/vendor/github.com/aws/aws-sdk-go/service/cloudformation/api.go index 7629f1cf7..8a07b648e 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cloudformation/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cloudformation/api.go @@ -3844,7 +3844,6 @@ func (c *CloudFormation) ValidateTemplateWithContext(ctx aws.Context, input *Val // result status for that account and region to FAILED. // // For more information, see Configuring a target account gate (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-account-gating.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/AccountGateResult type AccountGateResult struct { _ struct{} `type:"structure"` @@ -3904,7 +3903,6 @@ func (s *AccountGateResult) SetStatusReason(v string) *AccountGateResult { } // The AccountLimit data type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/AccountLimit type AccountLimit struct { _ struct{} `type:"structure"` @@ -3938,7 +3936,6 @@ func (s *AccountLimit) SetValue(v int64) *AccountLimit { } // The input for the CancelUpdateStack action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CancelUpdateStackInput type CancelUpdateStackInput struct { _ struct{} `type:"structure"` @@ -3993,7 +3990,6 @@ func (s *CancelUpdateStackInput) SetStackName(v string) *CancelUpdateStackInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CancelUpdateStackOutput type CancelUpdateStackOutput struct { _ struct{} `type:"structure"` } @@ -4010,7 +4006,6 @@ func (s CancelUpdateStackOutput) GoString() string { // The Change structure describes the changes AWS CloudFormation will perform // if you execute the change set. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Change type Change struct { _ struct{} `type:"structure"` @@ -4047,7 +4042,6 @@ func (s *Change) SetType(v string) *Change { // The ChangeSetSummary structure describes a change set, its status, and the // stack with which it's associated. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ChangeSetSummary type ChangeSetSummary struct { _ struct{} `type:"structure"` @@ -4150,7 +4144,6 @@ func (s *ChangeSetSummary) SetStatusReason(v string) *ChangeSetSummary { } // The input for the ContinueUpdateRollback action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ContinueUpdateRollbackInput type ContinueUpdateRollbackInput struct { _ struct{} `type:"structure"` @@ -4277,7 +4270,6 @@ func (s *ContinueUpdateRollbackInput) SetStackName(v string) *ContinueUpdateRoll } // The output for a ContinueUpdateRollback action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ContinueUpdateRollbackOutput type ContinueUpdateRollbackOutput struct { _ struct{} `type:"structure"` } @@ -4293,7 +4285,6 @@ func (s ContinueUpdateRollbackOutput) GoString() string { } // The input for the CreateChangeSet action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSetInput type CreateChangeSetInput struct { _ struct{} `type:"structure"` @@ -4581,7 +4572,6 @@ func (s *CreateChangeSetInput) SetUsePreviousTemplate(v bool) *CreateChangeSetIn } // The output for the CreateChangeSet action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSetOutput type CreateChangeSetOutput struct { _ struct{} `type:"structure"` @@ -4615,7 +4605,6 @@ func (s *CreateChangeSetOutput) SetStackId(v string) *CreateChangeSetOutput { } // The input for CreateStack action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInput type CreateStackInput struct { _ struct{} `type:"structure"` @@ -4942,7 +4931,6 @@ func (s *CreateStackInput) SetTimeoutInMinutes(v int64) *CreateStackInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInstancesInput type CreateStackInstancesInput struct { _ struct{} `type:"structure"` @@ -5087,7 +5075,6 @@ func (s *CreateStackInstancesInput) SetStackSetName(v string) *CreateStackInstan return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInstancesOutput type CreateStackInstancesOutput struct { _ struct{} `type:"structure"` @@ -5112,7 +5099,6 @@ func (s *CreateStackInstancesOutput) SetOperationId(v string) *CreateStackInstan } // The output for a CreateStack action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackOutput type CreateStackOutput struct { _ struct{} `type:"structure"` @@ -5136,7 +5122,6 @@ func (s *CreateStackOutput) SetStackId(v string) *CreateStackOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackSetInput type CreateStackSetInput struct { _ struct{} `type:"structure"` @@ -5324,7 +5309,6 @@ func (s *CreateStackSetInput) SetTemplateURL(v string) *CreateStackSetInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackSetOutput type CreateStackSetOutput struct { _ struct{} `type:"structure"` @@ -5349,7 +5333,6 @@ func (s *CreateStackSetOutput) SetStackSetId(v string) *CreateStackSetOutput { } // The input for the DeleteChangeSet action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteChangeSetInput type DeleteChangeSetInput struct { _ struct{} `type:"structure"` @@ -5406,7 +5389,6 @@ func (s *DeleteChangeSetInput) SetStackName(v string) *DeleteChangeSetInput { } // The output for the DeleteChangeSet action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteChangeSetOutput type DeleteChangeSetOutput struct { _ struct{} `type:"structure"` } @@ -5422,7 +5404,6 @@ func (s DeleteChangeSetOutput) GoString() string { } // The input for DeleteStack action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackInput type DeleteStackInput struct { _ struct{} `type:"structure"` @@ -5519,7 +5500,6 @@ func (s *DeleteStackInput) SetStackName(v string) *DeleteStackInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackInstancesInput type DeleteStackInstancesInput struct { _ struct{} `type:"structure"` @@ -5641,7 +5621,6 @@ func (s *DeleteStackInstancesInput) SetStackSetName(v string) *DeleteStackInstan return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackInstancesOutput type DeleteStackInstancesOutput struct { _ struct{} `type:"structure"` @@ -5665,7 +5644,6 @@ func (s *DeleteStackInstancesOutput) SetOperationId(v string) *DeleteStackInstan return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackOutput type DeleteStackOutput struct { _ struct{} `type:"structure"` } @@ -5680,7 +5658,6 @@ func (s DeleteStackOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackSetInput type DeleteStackSetInput struct { _ struct{} `type:"structure"` @@ -5720,7 +5697,6 @@ func (s *DeleteStackSetInput) SetStackSetName(v string) *DeleteStackSetInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackSetOutput type DeleteStackSetOutput struct { _ struct{} `type:"structure"` } @@ -5736,7 +5712,6 @@ func (s DeleteStackSetOutput) GoString() string { } // The input for the DescribeAccountLimits action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeAccountLimitsInput type DescribeAccountLimitsInput struct { _ struct{} `type:"structure"` @@ -5774,7 +5749,6 @@ func (s *DescribeAccountLimitsInput) SetNextToken(v string) *DescribeAccountLimi } // The output for the DescribeAccountLimits action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeAccountLimitsOutput type DescribeAccountLimitsOutput struct { _ struct{} `type:"structure"` @@ -5810,7 +5784,6 @@ func (s *DescribeAccountLimitsOutput) SetNextToken(v string) *DescribeAccountLim } // The input for the DescribeChangeSet action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeChangeSetInput type DescribeChangeSetInput struct { _ struct{} `type:"structure"` @@ -5880,7 +5853,6 @@ func (s *DescribeChangeSetInput) SetStackName(v string) *DescribeChangeSetInput } // The output for the DescribeChangeSet action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeChangeSetOutput type DescribeChangeSetOutput struct { _ struct{} `type:"structure"` @@ -6055,7 +6027,6 @@ func (s *DescribeChangeSetOutput) SetTags(v []*Tag) *DescribeChangeSetOutput { } // The input for DescribeStackEvents action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackEventsInput type DescribeStackEventsInput struct { _ struct{} `type:"structure"` @@ -6110,7 +6081,6 @@ func (s *DescribeStackEventsInput) SetStackName(v string) *DescribeStackEventsIn } // The output for a DescribeStackEvents action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackEventsOutput type DescribeStackEventsOutput struct { _ struct{} `type:"structure"` @@ -6144,7 +6114,6 @@ func (s *DescribeStackEventsOutput) SetStackEvents(v []*StackEvent) *DescribeSta return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackInstanceInput type DescribeStackInstanceInput struct { _ struct{} `type:"structure"` @@ -6212,7 +6181,6 @@ func (s *DescribeStackInstanceInput) SetStackSetName(v string) *DescribeStackIns return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackInstanceOutput type DescribeStackInstanceOutput struct { _ struct{} `type:"structure"` @@ -6237,7 +6205,6 @@ func (s *DescribeStackInstanceOutput) SetStackInstance(v *StackInstance) *Descri } // The input for DescribeStackResource action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceInput type DescribeStackResourceInput struct { _ struct{} `type:"structure"` @@ -6301,7 +6268,6 @@ func (s *DescribeStackResourceInput) SetStackName(v string) *DescribeStackResour } // The output for a DescribeStackResource action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceOutput type DescribeStackResourceOutput struct { _ struct{} `type:"structure"` @@ -6327,7 +6293,6 @@ func (s *DescribeStackResourceOutput) SetStackResourceDetail(v *StackResourceDet } // The input for DescribeStackResources action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourcesInput type DescribeStackResourcesInput struct { _ struct{} `type:"structure"` @@ -6394,7 +6359,6 @@ func (s *DescribeStackResourcesInput) SetStackName(v string) *DescribeStackResou } // The output for a DescribeStackResources action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourcesOutput type DescribeStackResourcesOutput struct { _ struct{} `type:"structure"` @@ -6418,7 +6382,6 @@ func (s *DescribeStackResourcesOutput) SetStackResources(v []*StackResource) *De return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetInput type DescribeStackSetInput struct { _ struct{} `type:"structure"` @@ -6457,7 +6420,6 @@ func (s *DescribeStackSetInput) SetStackSetName(v string) *DescribeStackSetInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperationInput type DescribeStackSetOperationInput struct { _ struct{} `type:"structure"` @@ -6513,7 +6475,6 @@ func (s *DescribeStackSetOperationInput) SetStackSetName(v string) *DescribeStac return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperationOutput type DescribeStackSetOperationOutput struct { _ struct{} `type:"structure"` @@ -6537,7 +6498,6 @@ func (s *DescribeStackSetOperationOutput) SetStackSetOperation(v *StackSetOperat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOutput type DescribeStackSetOutput struct { _ struct{} `type:"structure"` @@ -6562,7 +6522,6 @@ func (s *DescribeStackSetOutput) SetStackSet(v *StackSet) *DescribeStackSetOutpu } // The input for DescribeStacks action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStacksInput type DescribeStacksInput struct { _ struct{} `type:"structure"` @@ -6617,7 +6576,6 @@ func (s *DescribeStacksInput) SetStackName(v string) *DescribeStacksInput { } // The output for a DescribeStacks action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStacksOutput type DescribeStacksOutput struct { _ struct{} `type:"structure"` @@ -6652,7 +6610,6 @@ func (s *DescribeStacksOutput) SetStacks(v []*Stack) *DescribeStacksOutput { } // The input for an EstimateTemplateCost action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/EstimateTemplateCostInput type EstimateTemplateCostInput struct { _ struct{} `type:"structure"` @@ -6723,7 +6680,6 @@ func (s *EstimateTemplateCostInput) SetTemplateURL(v string) *EstimateTemplateCo } // The output for a EstimateTemplateCost action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/EstimateTemplateCostOutput type EstimateTemplateCostOutput struct { _ struct{} `type:"structure"` @@ -6749,7 +6705,6 @@ func (s *EstimateTemplateCostOutput) SetUrl(v string) *EstimateTemplateCostOutpu } // The input for the ExecuteChangeSet action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSetInput type ExecuteChangeSetInput struct { _ struct{} `type:"structure"` @@ -6822,7 +6777,6 @@ func (s *ExecuteChangeSetInput) SetStackName(v string) *ExecuteChangeSetInput { } // The output for the ExecuteChangeSet action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSetOutput type ExecuteChangeSetOutput struct { _ struct{} `type:"structure"` } @@ -6838,7 +6792,6 @@ func (s ExecuteChangeSetOutput) GoString() string { } // The Export structure describes the exported output values for a stack. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Export type Export struct { _ struct{} `type:"structure"` @@ -6884,7 +6837,6 @@ func (s *Export) SetValue(v string) *Export { } // The input for the GetStackPolicy action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicyInput type GetStackPolicyInput struct { _ struct{} `type:"structure"` @@ -6925,7 +6877,6 @@ func (s *GetStackPolicyInput) SetStackName(v string) *GetStackPolicyInput { } // The output for the GetStackPolicy action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicyOutput type GetStackPolicyOutput struct { _ struct{} `type:"structure"` @@ -6952,7 +6903,6 @@ func (s *GetStackPolicyOutput) SetStackPolicyBody(v string) *GetStackPolicyOutpu } // The input for a GetTemplate action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateInput type GetTemplateInput struct { _ struct{} `type:"structure"` @@ -7024,7 +6974,6 @@ func (s *GetTemplateInput) SetTemplateStage(v string) *GetTemplateInput { } // The output for GetTemplate action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateOutput type GetTemplateOutput struct { _ struct{} `type:"structure"` @@ -7066,7 +7015,6 @@ func (s *GetTemplateOutput) SetTemplateBody(v string) *GetTemplateOutput { } // The input for the GetTemplateSummary action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummaryInput type GetTemplateSummaryInput struct { _ struct{} `type:"structure"` @@ -7158,7 +7106,6 @@ func (s *GetTemplateSummaryInput) SetTemplateURL(v string) *GetTemplateSummaryIn } // The output for the GetTemplateSummary action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummaryOutput type GetTemplateSummaryOutput struct { _ struct{} `type:"structure"` @@ -7257,7 +7204,6 @@ func (s *GetTemplateSummaryOutput) SetVersion(v string) *GetTemplateSummaryOutpu } // The input for the ListChangeSets action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSetsInput type ListChangeSetsInput struct { _ struct{} `type:"structure"` @@ -7314,7 +7260,6 @@ func (s *ListChangeSetsInput) SetStackName(v string) *ListChangeSetsInput { } // The output for the ListChangeSets action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSetsOutput type ListChangeSetsOutput struct { _ struct{} `type:"structure"` @@ -7349,7 +7294,6 @@ func (s *ListChangeSetsOutput) SetSummaries(v []*ChangeSetSummary) *ListChangeSe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExportsInput type ListExportsInput struct { _ struct{} `type:"structure"` @@ -7387,7 +7331,6 @@ func (s *ListExportsInput) SetNextToken(v string) *ListExportsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExportsOutput type ListExportsOutput struct { _ struct{} `type:"structure"` @@ -7421,7 +7364,6 @@ func (s *ListExportsOutput) SetNextToken(v string) *ListExportsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImportsInput type ListImportsInput struct { _ struct{} `type:"structure"` @@ -7474,7 +7416,6 @@ func (s *ListImportsInput) SetNextToken(v string) *ListImportsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImportsOutput type ListImportsOutput struct { _ struct{} `type:"structure"` @@ -7508,7 +7449,6 @@ func (s *ListImportsOutput) SetNextToken(v string) *ListImportsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstancesInput type ListStackInstancesInput struct { _ struct{} `type:"structure"` @@ -7597,7 +7537,6 @@ func (s *ListStackInstancesInput) SetStackSetName(v string) *ListStackInstancesI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstancesOutput type ListStackInstancesOutput struct { _ struct{} `type:"structure"` @@ -7635,7 +7574,6 @@ func (s *ListStackInstancesOutput) SetSummaries(v []*StackInstanceSummary) *List } // The input for the ListStackResource action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackResourcesInput type ListStackResourcesInput struct { _ struct{} `type:"structure"` @@ -7696,7 +7634,6 @@ func (s *ListStackResourcesInput) SetStackName(v string) *ListStackResourcesInpu } // The output for a ListStackResources action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackResourcesOutput type ListStackResourcesOutput struct { _ struct{} `type:"structure"` @@ -7730,7 +7667,6 @@ func (s *ListStackResourcesOutput) SetStackResourceSummaries(v []*StackResourceS return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationResultsInput type ListStackSetOperationResultsInput struct { _ struct{} `type:"structure"` @@ -7818,7 +7754,6 @@ func (s *ListStackSetOperationResultsInput) SetStackSetName(v string) *ListStack return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationResultsOutput type ListStackSetOperationResultsOutput struct { _ struct{} `type:"structure"` @@ -7856,7 +7791,6 @@ func (s *ListStackSetOperationResultsOutput) SetSummaries(v []*StackSetOperation return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationsInput type ListStackSetOperationsInput struct { _ struct{} `type:"structure"` @@ -7927,7 +7861,6 @@ func (s *ListStackSetOperationsInput) SetStackSetName(v string) *ListStackSetOpe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationsOutput type ListStackSetOperationsOutput struct { _ struct{} `type:"structure"` @@ -7964,7 +7897,6 @@ func (s *ListStackSetOperationsOutput) SetSummaries(v []*StackSetOperationSummar return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetsInput type ListStackSetsInput struct { _ struct{} `type:"structure"` @@ -8029,7 +7961,6 @@ func (s *ListStackSetsInput) SetStatus(v string) *ListStackSetsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetsOutput type ListStackSetsOutput struct { _ struct{} `type:"structure"` @@ -8067,7 +7998,6 @@ func (s *ListStackSetsOutput) SetSummaries(v []*StackSetSummary) *ListStackSetsO } // The input for ListStacks action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStacksInput type ListStacksInput struct { _ struct{} `type:"structure"` @@ -8116,7 +8046,6 @@ func (s *ListStacksInput) SetStackStatusFilter(v []*string) *ListStacksInput { } // The output for ListStacks action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStacksOutput type ListStacksOutput struct { _ struct{} `type:"structure"` @@ -8152,7 +8081,6 @@ func (s *ListStacksOutput) SetStackSummaries(v []*StackSummary) *ListStacksOutpu } // The Output data type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Output type Output struct { _ struct{} `type:"structure"` @@ -8204,7 +8132,6 @@ func (s *Output) SetOutputValue(v string) *Output { } // The Parameter data type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Parameter type Parameter struct { _ struct{} `type:"structure"` @@ -8264,7 +8191,6 @@ func (s *Parameter) SetUsePreviousValue(v bool) *Parameter { // A set of criteria that AWS CloudFormation uses to validate parameter values. // Although other constraints might be defined in the stack template, AWS CloudFormation // returns only the AllowedValues property. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ParameterConstraints type ParameterConstraints struct { _ struct{} `type:"structure"` @@ -8289,7 +8215,6 @@ func (s *ParameterConstraints) SetAllowedValues(v []*string) *ParameterConstrain } // The ParameterDeclaration data type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ParameterDeclaration type ParameterDeclaration struct { _ struct{} `type:"structure"` @@ -8361,7 +8286,6 @@ func (s *ParameterDeclaration) SetParameterType(v string) *ParameterDeclaration // The ResourceChange structure describes the resource and the action that AWS // CloudFormation will perform on it if you execute this change set. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ResourceChange type ResourceChange struct { _ struct{} `type:"structure"` @@ -8456,7 +8380,6 @@ func (s *ResourceChange) SetScope(v []*string) *ResourceChange { // For a resource with Modify as the action, the ResourceChange structure describes // the changes AWS CloudFormation will make to that resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ResourceChangeDetail type ResourceChangeDetail struct { _ struct{} `type:"structure"` @@ -8550,7 +8473,6 @@ func (s *ResourceChangeDetail) SetTarget(v *ResourceTargetDefinition) *ResourceC // The field that AWS CloudFormation will change, such as the name of a resource's // property, and whether the resource will be recreated. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ResourceTargetDefinition type ResourceTargetDefinition struct { _ struct{} `type:"structure"` @@ -8622,7 +8544,6 @@ func (s *ResourceTargetDefinition) SetRequiresRecreation(v string) *ResourceTarg // // AWS CloudFormation does not monitor rollback triggers when it rolls back // a stack during an update operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackConfiguration type RollbackConfiguration struct { _ struct{} `type:"structure"` @@ -8718,7 +8639,6 @@ func (s *RollbackConfiguration) SetRollbackTriggers(v []*RollbackTrigger) *Rollb // of stacks. If any of the alarms you specify goes to ALERT state during the // stack operation or within the specified monitoring period afterwards, CloudFormation // rolls back the entire stack operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackTrigger type RollbackTrigger struct { _ struct{} `type:"structure"` @@ -8774,7 +8694,6 @@ func (s *RollbackTrigger) SetType(v string) *RollbackTrigger { } // The input for the SetStackPolicy action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetStackPolicyInput type SetStackPolicyInput struct { _ struct{} `type:"structure"` @@ -8843,7 +8762,6 @@ func (s *SetStackPolicyInput) SetStackPolicyURL(v string) *SetStackPolicyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetStackPolicyOutput type SetStackPolicyOutput struct { _ struct{} `type:"structure"` } @@ -8859,7 +8777,6 @@ func (s SetStackPolicyOutput) GoString() string { } // The input for the SignalResource action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SignalResourceInput type SignalResourceInput struct { _ struct{} `type:"structure"` @@ -8952,7 +8869,6 @@ func (s *SignalResourceInput) SetUniqueId(v string) *SignalResourceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SignalResourceOutput type SignalResourceOutput struct { _ struct{} `type:"structure"` } @@ -8968,7 +8884,6 @@ func (s SignalResourceOutput) GoString() string { } // The Stack data type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Stack type Stack struct { _ struct{} `type:"structure"` @@ -9202,7 +9117,6 @@ func (s *Stack) SetTimeoutInMinutes(v int64) *Stack { } // The StackEvent data type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackEvent type StackEvent struct { _ struct{} `type:"structure"` @@ -9345,7 +9259,6 @@ func (s *StackEvent) SetTimestamp(v time.Time) *StackEvent { // some reason. A stack instance is associated with only one stack set. Each // stack instance contains the ID of its associated stack set, as well as the // ID of the actual stack and the stack status. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackInstance type StackInstance struct { _ struct{} `type:"structure"` @@ -9444,7 +9357,6 @@ func (s *StackInstance) SetStatusReason(v string) *StackInstance { } // The structure that contains summary information about a stack instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackInstanceSummary type StackInstanceSummary struct { _ struct{} `type:"structure"` @@ -9532,7 +9444,6 @@ func (s *StackInstanceSummary) SetStatusReason(v string) *StackInstanceSummary { } // The StackResource data type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackResource type StackResource struct { _ struct{} `type:"structure"` @@ -9640,7 +9551,6 @@ func (s *StackResource) SetTimestamp(v time.Time) *StackResource { } // Contains detailed information about the specified stack resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackResourceDetail type StackResourceDetail struct { _ struct{} `type:"structure"` @@ -9759,7 +9669,6 @@ func (s *StackResourceDetail) SetStackName(v string) *StackResourceDetail { } // Contains high-level information about the specified stack resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackResourceSummary type StackResourceSummary struct { _ struct{} `type:"structure"` @@ -9843,7 +9752,6 @@ func (s *StackResourceSummary) SetResourceType(v string) *StackResourceSummary { // you to provision stacks into AWS accounts and across regions by using a single // CloudFormation template. In the stack set, you specify the template to use, // as well as any parameters and capabilities that the template requires. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackSet type StackSet struct { _ struct{} `type:"structure"` @@ -9938,7 +9846,6 @@ func (s *StackSet) SetTemplateBody(v string) *StackSet { } // The structure that contains information about a stack set operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackSetOperation type StackSetOperation struct { _ struct{} `type:"structure"` @@ -10060,7 +9967,6 @@ func (s *StackSetOperation) SetStatus(v string) *StackSetOperation { // // For more information on maximum concurrent accounts and failure tolerance, // see Stack set operation options (http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options). -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackSetOperationPreferences type StackSetOperationPreferences struct { _ struct{} `type:"structure"` @@ -10175,7 +10081,6 @@ func (s *StackSetOperationPreferences) SetRegionOrder(v []*string) *StackSetOper // The structure that contains information about a specified operation's results // for a given account in a given region. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackSetOperationResultSummary type StackSetOperationResultSummary struct { _ struct{} `type:"structure"` @@ -10257,7 +10162,6 @@ func (s *StackSetOperationResultSummary) SetStatusReason(v string) *StackSetOper } // The structures that contain summary information about the specified operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackSetOperationSummary type StackSetOperationSummary struct { _ struct{} `type:"structure"` @@ -10346,7 +10250,6 @@ func (s *StackSetOperationSummary) SetStatus(v string) *StackSetOperationSummary // The structures that contain summary information about the specified stack // set. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackSetSummary type StackSetSummary struct { _ struct{} `type:"structure"` @@ -10399,7 +10302,6 @@ func (s *StackSetSummary) SetStatus(v string) *StackSetSummary { } // The StackSummary Data Type -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackSummary type StackSummary struct { _ struct{} `type:"structure"` @@ -10520,7 +10422,6 @@ func (s *StackSummary) SetTemplateDescription(v string) *StackSummary { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StopStackSetOperationInput type StopStackSetOperationInput struct { _ struct{} `type:"structure"` @@ -10577,7 +10478,6 @@ func (s *StopStackSetOperationInput) SetStackSetName(v string) *StopStackSetOper return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StopStackSetOperationOutput type StopStackSetOperationOutput struct { _ struct{} `type:"structure"` } @@ -10594,7 +10494,6 @@ func (s StopStackSetOperationOutput) GoString() string { // The Tag type enables you to specify a key-value pair that can be used to // store information about an AWS CloudFormation stack. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Tag type Tag struct { _ struct{} `type:"structure"` @@ -10657,7 +10556,6 @@ func (s *Tag) SetValue(v string) *Tag { } // The TemplateParameter data type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/TemplateParameter type TemplateParameter struct { _ struct{} `type:"structure"` @@ -10710,7 +10608,6 @@ func (s *TemplateParameter) SetParameterKey(v string) *TemplateParameter { } // The input for an UpdateStack action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInput type UpdateStackInput struct { _ struct{} `type:"structure"` @@ -11030,7 +10927,6 @@ func (s *UpdateStackInput) SetUsePreviousTemplate(v bool) *UpdateStackInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInstancesInput type UpdateStackInstancesInput struct { _ struct{} `type:"structure"` @@ -11178,7 +11074,6 @@ func (s *UpdateStackInstancesInput) SetStackSetName(v string) *UpdateStackInstan return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInstancesOutput type UpdateStackInstancesOutput struct { _ struct{} `type:"structure"` @@ -11203,7 +11098,6 @@ func (s *UpdateStackInstancesOutput) SetOperationId(v string) *UpdateStackInstan } // The output for an UpdateStack action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackOutput type UpdateStackOutput struct { _ struct{} `type:"structure"` @@ -11227,7 +11121,6 @@ func (s *UpdateStackOutput) SetStackId(v string) *UpdateStackOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackSetInput type UpdateStackSetInput struct { _ struct{} `type:"structure"` @@ -11459,7 +11352,6 @@ func (s *UpdateStackSetInput) SetUsePreviousTemplate(v bool) *UpdateStackSetInpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackSetOutput type UpdateStackSetOutput struct { _ struct{} `type:"structure"` @@ -11483,7 +11375,6 @@ func (s *UpdateStackSetOutput) SetOperationId(v string) *UpdateStackSetOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtectionInput type UpdateTerminationProtectionInput struct { _ struct{} `type:"structure"` @@ -11540,7 +11431,6 @@ func (s *UpdateTerminationProtectionInput) SetStackName(v string) *UpdateTermina return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtectionOutput type UpdateTerminationProtectionOutput struct { _ struct{} `type:"structure"` @@ -11565,7 +11455,6 @@ func (s *UpdateTerminationProtectionOutput) SetStackId(v string) *UpdateTerminat } // The input for ValidateTemplate action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplateInput type ValidateTemplateInput struct { _ struct{} `type:"structure"` @@ -11627,7 +11516,6 @@ func (s *ValidateTemplateInput) SetTemplateURL(v string) *ValidateTemplateInput } // The output for ValidateTemplate action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplateOutput type ValidateTemplateOutput struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloudfront/api.go b/vendor/github.com/aws/aws-sdk-go/service/cloudfront/api.go index 99e33b689..e7749972f 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cloudfront/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cloudfront/api.go @@ -3192,7 +3192,6 @@ func (c *CloudFront) UpdateStreamingDistributionWithContext(ctx aws.Context, inp // // For more information, see Serving Private Content through CloudFront (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html) // in the Amazon CloudFront Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/ActiveTrustedSigners type ActiveTrustedSigners struct { _ struct{} `type:"structure"` @@ -3250,7 +3249,6 @@ func (s *ActiveTrustedSigners) SetQuantity(v int64) *ActiveTrustedSigners { // A complex type that contains information about CNAMEs (alternate domain names), // if any, for this distribution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/Aliases type Aliases struct { _ struct{} `type:"structure"` @@ -3315,7 +3313,6 @@ func (s *Aliases) SetQuantity(v int64) *Aliases { // S3 bucket or to your custom origin so users can't perform operations that // you don't want them to. For example, you might not want users to have permissions // to delete objects from your origin. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/AllowedMethods type AllowedMethods struct { _ struct{} `type:"structure"` @@ -3420,7 +3417,6 @@ func (s *AllowedMethods) SetQuantity(v int64) *AllowedMethods { // // For more information about cache behaviors, see Cache Behaviors (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/distribution-web-values-specify.html#DownloadDistValuesCacheBehavior) // in the Amazon CloudFront Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CacheBehavior type CacheBehavior struct { _ struct{} `type:"structure"` @@ -3702,7 +3698,6 @@ func (s *CacheBehavior) SetViewerProtocolPolicy(v string) *CacheBehavior { } // A complex type that contains zero or more CacheBehavior elements. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CacheBehaviors type CacheBehaviors struct { _ struct{} `type:"structure"` @@ -3771,7 +3766,6 @@ func (s *CacheBehaviors) SetQuantity(v int64) *CacheBehaviors { // If you pick the second choice for your Amazon S3 Origin, you may need to // forward Access-Control-Request-Method, Access-Control-Request-Headers, and // Origin headers for the responses to be cached correctly. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CachedMethods type CachedMethods struct { _ struct{} `type:"structure"` @@ -3832,7 +3826,6 @@ func (s *CachedMethods) SetQuantity(v int64) *CachedMethods { // cookies to the origin, see How CloudFront Forwards, Caches, and Logs Cookies // (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) // in the Amazon CloudFront Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CookieNames type CookieNames struct { _ struct{} `type:"structure"` @@ -3887,7 +3880,6 @@ func (s *CookieNames) SetQuantity(v int64) *CookieNames { // cookies to the origin, see How CloudFront Forwards, Caches, and Logs Cookies // (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Cookies.html) // in the Amazon CloudFront Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CookiePreference type CookiePreference struct { _ struct{} `type:"structure"` @@ -3958,7 +3950,6 @@ func (s *CookiePreference) SetWhitelistedNames(v *CookieNames) *CookiePreference } // The request to create a new origin access identity. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CreateCloudFrontOriginAccessIdentityRequest type CreateCloudFrontOriginAccessIdentityInput struct { _ struct{} `type:"structure" payload:"CloudFrontOriginAccessIdentityConfig"` @@ -4003,7 +3994,6 @@ func (s *CreateCloudFrontOriginAccessIdentityInput) SetCloudFrontOriginAccessIde } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CreateCloudFrontOriginAccessIdentityResult type CreateCloudFrontOriginAccessIdentityOutput struct { _ struct{} `type:"structure" payload:"CloudFrontOriginAccessIdentity"` @@ -4047,7 +4037,6 @@ func (s *CreateCloudFrontOriginAccessIdentityOutput) SetLocation(v string) *Crea } // The request to create a new distribution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CreateDistributionRequest type CreateDistributionInput struct { _ struct{} `type:"structure" payload:"DistributionConfig"` @@ -4092,7 +4081,6 @@ func (s *CreateDistributionInput) SetDistributionConfig(v *DistributionConfig) * } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CreateDistributionResult type CreateDistributionOutput struct { _ struct{} `type:"structure" payload:"Distribution"` @@ -4136,7 +4124,6 @@ func (s *CreateDistributionOutput) SetLocation(v string) *CreateDistributionOutp } // The request to create a new distribution with tags. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CreateDistributionWithTagsRequest type CreateDistributionWithTagsInput struct { _ struct{} `type:"structure" payload:"DistributionConfigWithTags"` @@ -4181,7 +4168,6 @@ func (s *CreateDistributionWithTagsInput) SetDistributionConfigWithTags(v *Distr } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CreateDistributionWithTagsResult type CreateDistributionWithTagsOutput struct { _ struct{} `type:"structure" payload:"Distribution"` @@ -4225,7 +4211,6 @@ func (s *CreateDistributionWithTagsOutput) SetLocation(v string) *CreateDistribu } // The request to create an invalidation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CreateInvalidationRequest type CreateInvalidationInput struct { _ struct{} `type:"structure" payload:"InvalidationBatch"` @@ -4284,7 +4269,6 @@ func (s *CreateInvalidationInput) SetInvalidationBatch(v *InvalidationBatch) *Cr } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CreateInvalidationResult type CreateInvalidationOutput struct { _ struct{} `type:"structure" payload:"Invalidation"` @@ -4319,7 +4303,6 @@ func (s *CreateInvalidationOutput) SetLocation(v string) *CreateInvalidationOutp } // The request to create a new streaming distribution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CreateStreamingDistributionRequest type CreateStreamingDistributionInput struct { _ struct{} `type:"structure" payload:"StreamingDistributionConfig"` @@ -4364,7 +4347,6 @@ func (s *CreateStreamingDistributionInput) SetStreamingDistributionConfig(v *Str } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CreateStreamingDistributionResult type CreateStreamingDistributionOutput struct { _ struct{} `type:"structure" payload:"StreamingDistribution"` @@ -4408,7 +4390,6 @@ func (s *CreateStreamingDistributionOutput) SetStreamingDistribution(v *Streamin } // The request to create a new streaming distribution with tags. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CreateStreamingDistributionWithTagsRequest type CreateStreamingDistributionWithTagsInput struct { _ struct{} `type:"structure" payload:"StreamingDistributionConfigWithTags"` @@ -4453,7 +4434,6 @@ func (s *CreateStreamingDistributionWithTagsInput) SetStreamingDistributionConfi } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CreateStreamingDistributionWithTagsResult type CreateStreamingDistributionWithTagsOutput struct { _ struct{} `type:"structure" payload:"StreamingDistribution"` @@ -4506,7 +4486,6 @@ func (s *CreateStreamingDistributionWithTagsOutput) SetStreamingDistribution(v * // For more information about custom error pages, see Customizing Error Responses // (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html) // in the Amazon CloudFront Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CustomErrorResponse type CustomErrorResponse struct { _ struct{} `type:"structure"` @@ -4634,7 +4613,6 @@ func (s *CustomErrorResponse) SetResponsePagePath(v string) *CustomErrorResponse // For more information about custom error pages, see Customizing Error Responses // (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/custom-error-pages.html) // in the Amazon CloudFront Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CustomErrorResponses type CustomErrorResponses struct { _ struct{} `type:"structure"` @@ -4696,7 +4674,6 @@ func (s *CustomErrorResponses) SetQuantity(v int64) *CustomErrorResponses { } // A complex type that contains the list of Custom Headers for each origin. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CustomHeaders type CustomHeaders struct { _ struct{} `type:"structure"` @@ -4757,7 +4734,6 @@ func (s *CustomHeaders) SetQuantity(v int64) *CustomHeaders { } // A customer origin. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CustomOriginConfig type CustomOriginConfig struct { _ struct{} `type:"structure"` @@ -4872,7 +4848,6 @@ func (s *CustomOriginConfig) SetOriginSslProtocols(v *OriginSslProtocols) *Custo // A complex type that describes the default cache behavior if you don't specify // a CacheBehavior element or if files don't match any of the values of PathPattern // in CacheBehavior elements. You must create exactly one default cache behavior. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/DefaultCacheBehavior type DefaultCacheBehavior struct { _ struct{} `type:"structure"` @@ -5118,7 +5093,6 @@ func (s *DefaultCacheBehavior) SetViewerProtocolPolicy(v string) *DefaultCacheBe } // Deletes a origin access identity. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/DeleteCloudFrontOriginAccessIdentityRequest type DeleteCloudFrontOriginAccessIdentityInput struct { _ struct{} `type:"structure"` @@ -5167,7 +5141,6 @@ func (s *DeleteCloudFrontOriginAccessIdentityInput) SetIfMatch(v string) *Delete return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/DeleteCloudFrontOriginAccessIdentityOutput type DeleteCloudFrontOriginAccessIdentityOutput struct { _ struct{} `type:"structure"` } @@ -5217,7 +5190,6 @@ func (s DeleteCloudFrontOriginAccessIdentityOutput) GoString() string { // For information about deleting a distribution using the CloudFront console, // see Deleting a Distribution (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HowToDeleteDistribution.html) // in the Amazon CloudFront Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/DeleteDistributionRequest type DeleteDistributionInput struct { _ struct{} `type:"structure"` @@ -5266,7 +5238,6 @@ func (s *DeleteDistributionInput) SetIfMatch(v string) *DeleteDistributionInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/DeleteDistributionOutput type DeleteDistributionOutput struct { _ struct{} `type:"structure"` } @@ -5281,7 +5252,6 @@ func (s DeleteDistributionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/DeleteServiceLinkedRoleRequest type DeleteServiceLinkedRoleInput struct { _ struct{} `type:"structure"` @@ -5318,7 +5288,6 @@ func (s *DeleteServiceLinkedRoleInput) SetRoleName(v string) *DeleteServiceLinke return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/DeleteServiceLinkedRoleOutput type DeleteServiceLinkedRoleOutput struct { _ struct{} `type:"structure"` } @@ -5334,7 +5303,6 @@ func (s DeleteServiceLinkedRoleOutput) GoString() string { } // The request to delete a streaming distribution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/DeleteStreamingDistributionRequest type DeleteStreamingDistributionInput struct { _ struct{} `type:"structure"` @@ -5383,7 +5351,6 @@ func (s *DeleteStreamingDistributionInput) SetIfMatch(v string) *DeleteStreaming return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/DeleteStreamingDistributionOutput type DeleteStreamingDistributionOutput struct { _ struct{} `type:"structure"` } @@ -5399,7 +5366,6 @@ func (s DeleteStreamingDistributionOutput) GoString() string { } // The distribution's information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/Distribution type Distribution struct { _ struct{} `type:"structure"` @@ -5514,7 +5480,6 @@ func (s *Distribution) SetStatus(v string) *Distribution { } // A distribution configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/DistributionConfig type DistributionConfig struct { _ struct{} `type:"structure"` @@ -5954,7 +5919,6 @@ func (s *DistributionConfig) SetWebACLId(v string) *DistributionConfig { // A distribution Configuration and a list of tags to be associated with the // distribution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/DistributionConfigWithTags type DistributionConfigWithTags struct { _ struct{} `type:"structure"` @@ -6018,7 +5982,6 @@ func (s *DistributionConfigWithTags) SetTags(v *Tags) *DistributionConfigWithTag } // A distribution list. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/DistributionList type DistributionList struct { _ struct{} `type:"structure"` @@ -6102,7 +6065,6 @@ func (s *DistributionList) SetQuantity(v int64) *DistributionList { } // A summary of the information about a CloudFront distribution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/DistributionSummary type DistributionSummary struct { _ struct{} `type:"structure"` @@ -6408,7 +6370,6 @@ func (s *DistributionSummary) SetWebACLId(v string) *DistributionSummary { } // A complex type that specifies how CloudFront handles query strings and cookies. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/ForwardedValues type ForwardedValues struct { _ struct{} `type:"structure"` @@ -6524,7 +6485,6 @@ func (s *ForwardedValues) SetQueryStringCacheKeys(v *QueryStringCacheKeys) *Forw // A complex type that controls the countries in which your content is distributed. // CloudFront determines the location of your users using MaxMind GeoIP databases. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/GeoRestriction type GeoRestriction struct { _ struct{} `type:"structure"` @@ -6612,7 +6572,6 @@ func (s *GeoRestriction) SetRestrictionType(v string) *GeoRestriction { // The origin access identity's configuration information. For more information, // see CloudFrontOriginAccessIdentityConfigComplexType. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/GetCloudFrontOriginAccessIdentityConfigRequest type GetCloudFrontOriginAccessIdentityConfigInput struct { _ struct{} `type:"structure"` @@ -6652,7 +6611,6 @@ func (s *GetCloudFrontOriginAccessIdentityConfigInput) SetId(v string) *GetCloud } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/GetCloudFrontOriginAccessIdentityConfigResult type GetCloudFrontOriginAccessIdentityConfigOutput struct { _ struct{} `type:"structure" payload:"CloudFrontOriginAccessIdentityConfig"` @@ -6686,7 +6644,6 @@ func (s *GetCloudFrontOriginAccessIdentityConfigOutput) SetETag(v string) *GetCl } // The request to get an origin access identity's information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/GetCloudFrontOriginAccessIdentityRequest type GetCloudFrontOriginAccessIdentityInput struct { _ struct{} `type:"structure"` @@ -6726,7 +6683,6 @@ func (s *GetCloudFrontOriginAccessIdentityInput) SetId(v string) *GetCloudFrontO } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/GetCloudFrontOriginAccessIdentityResult type GetCloudFrontOriginAccessIdentityOutput struct { _ struct{} `type:"structure" payload:"CloudFrontOriginAccessIdentity"` @@ -6761,7 +6717,6 @@ func (s *GetCloudFrontOriginAccessIdentityOutput) SetETag(v string) *GetCloudFro } // The request to get a distribution configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/GetDistributionConfigRequest type GetDistributionConfigInput struct { _ struct{} `type:"structure"` @@ -6801,7 +6756,6 @@ func (s *GetDistributionConfigInput) SetId(v string) *GetDistributionConfigInput } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/GetDistributionConfigResult type GetDistributionConfigOutput struct { _ struct{} `type:"structure" payload:"DistributionConfig"` @@ -6835,7 +6789,6 @@ func (s *GetDistributionConfigOutput) SetETag(v string) *GetDistributionConfigOu } // The request to get a distribution's information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/GetDistributionRequest type GetDistributionInput struct { _ struct{} `type:"structure"` @@ -6875,7 +6828,6 @@ func (s *GetDistributionInput) SetId(v string) *GetDistributionInput { } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/GetDistributionResult type GetDistributionOutput struct { _ struct{} `type:"structure" payload:"Distribution"` @@ -6909,7 +6861,6 @@ func (s *GetDistributionOutput) SetETag(v string) *GetDistributionOutput { } // The request to get an invalidation's information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/GetInvalidationRequest type GetInvalidationInput struct { _ struct{} `type:"structure"` @@ -6963,7 +6914,6 @@ func (s *GetInvalidationInput) SetId(v string) *GetInvalidationInput { } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/GetInvalidationResult type GetInvalidationOutput struct { _ struct{} `type:"structure" payload:"Invalidation"` @@ -6989,7 +6939,6 @@ func (s *GetInvalidationOutput) SetInvalidation(v *Invalidation) *GetInvalidatio } // To request to get a streaming distribution configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/GetStreamingDistributionConfigRequest type GetStreamingDistributionConfigInput struct { _ struct{} `type:"structure"` @@ -7029,7 +6978,6 @@ func (s *GetStreamingDistributionConfigInput) SetId(v string) *GetStreamingDistr } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/GetStreamingDistributionConfigResult type GetStreamingDistributionConfigOutput struct { _ struct{} `type:"structure" payload:"StreamingDistributionConfig"` @@ -7063,7 +7011,6 @@ func (s *GetStreamingDistributionConfigOutput) SetStreamingDistributionConfig(v } // The request to get a streaming distribution's information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/GetStreamingDistributionRequest type GetStreamingDistributionInput struct { _ struct{} `type:"structure"` @@ -7103,7 +7050,6 @@ func (s *GetStreamingDistributionInput) SetId(v string) *GetStreamingDistributio } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/GetStreamingDistributionResult type GetStreamingDistributionOutput struct { _ struct{} `type:"structure" payload:"StreamingDistribution"` @@ -7149,7 +7095,6 @@ func (s *GetStreamingDistributionOutput) SetStreamingDistribution(v *StreamingDi // for each header value. For more information about caching based on header // values, see How CloudFront Forwards and Caches Headers (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html) // in the Amazon CloudFront Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/Headers type Headers struct { _ struct{} `type:"structure"` @@ -7225,7 +7170,6 @@ func (s *Headers) SetQuantity(v int64) *Headers { } // An invalidation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/Invalidation type Invalidation struct { _ struct{} `type:"structure"` @@ -7286,7 +7230,6 @@ func (s *Invalidation) SetStatus(v string) *Invalidation { } // An invalidation batch. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/InvalidationBatch type InvalidationBatch struct { _ struct{} `type:"structure"` @@ -7365,7 +7308,6 @@ func (s *InvalidationBatch) SetPaths(v *Paths) *InvalidationBatch { // For more information about invalidation, see Invalidating Objects (Web Distributions // Only) (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html) // in the Amazon CloudFront Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/InvalidationList type InvalidationList struct { _ struct{} `type:"structure"` @@ -7449,7 +7391,6 @@ func (s *InvalidationList) SetQuantity(v int64) *InvalidationList { } // A summary of an invalidation request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/InvalidationSummary type InvalidationSummary struct { _ struct{} `type:"structure"` @@ -7499,7 +7440,6 @@ func (s *InvalidationSummary) SetStatus(v string) *InvalidationSummary { // associated with AwsAccountNumber. // // For more information, see ActiveTrustedSigners. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/KeyPairIds type KeyPairIds struct { _ struct{} `type:"structure"` @@ -7540,7 +7480,6 @@ func (s *KeyPairIds) SetQuantity(v int64) *KeyPairIds { } // A complex type that contains a Lambda function association. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/LambdaFunctionAssociation type LambdaFunctionAssociation struct { _ struct{} `type:"structure"` @@ -7608,7 +7547,6 @@ func (s *LambdaFunctionAssociation) SetLambdaFunctionARN(v string) *LambdaFuncti // // If you don't want to invoke any Lambda functions for the requests that match // PathPattern, specify 0 for Quantity and omit Items. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/LambdaFunctionAssociations type LambdaFunctionAssociations struct { _ struct{} `type:"structure"` @@ -7658,7 +7596,6 @@ func (s *LambdaFunctionAssociations) SetQuantity(v int64) *LambdaFunctionAssocia } // The request to list origin access identities. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/ListCloudFrontOriginAccessIdentitiesRequest type ListCloudFrontOriginAccessIdentitiesInput struct { _ struct{} `type:"structure"` @@ -7696,7 +7633,6 @@ func (s *ListCloudFrontOriginAccessIdentitiesInput) SetMaxItems(v int64) *ListCl } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/ListCloudFrontOriginAccessIdentitiesResult type ListCloudFrontOriginAccessIdentitiesOutput struct { _ struct{} `type:"structure" payload:"CloudFrontOriginAccessIdentityList"` @@ -7722,7 +7658,6 @@ func (s *ListCloudFrontOriginAccessIdentitiesOutput) SetCloudFrontOriginAccessId // The request to list distributions that are associated with a specified AWS // WAF web ACL. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/ListDistributionsByWebACLIdRequest type ListDistributionsByWebACLIdInput struct { _ struct{} `type:"structure"` @@ -7788,7 +7723,6 @@ func (s *ListDistributionsByWebACLIdInput) SetWebACLId(v string) *ListDistributi // The response to a request to list the distributions that are associated with // a specified AWS WAF web ACL. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/ListDistributionsByWebACLIdResult type ListDistributionsByWebACLIdOutput struct { _ struct{} `type:"structure" payload:"DistributionList"` @@ -7813,7 +7747,6 @@ func (s *ListDistributionsByWebACLIdOutput) SetDistributionList(v *DistributionL } // The request to list your distributions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/ListDistributionsRequest type ListDistributionsInput struct { _ struct{} `type:"structure"` @@ -7851,7 +7784,6 @@ func (s *ListDistributionsInput) SetMaxItems(v int64) *ListDistributionsInput { } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/ListDistributionsResult type ListDistributionsOutput struct { _ struct{} `type:"structure" payload:"DistributionList"` @@ -7876,7 +7808,6 @@ func (s *ListDistributionsOutput) SetDistributionList(v *DistributionList) *List } // The request to list invalidations. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/ListInvalidationsRequest type ListInvalidationsInput struct { _ struct{} `type:"structure"` @@ -7941,7 +7872,6 @@ func (s *ListInvalidationsInput) SetMaxItems(v int64) *ListInvalidationsInput { } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/ListInvalidationsResult type ListInvalidationsOutput struct { _ struct{} `type:"structure" payload:"InvalidationList"` @@ -7966,7 +7896,6 @@ func (s *ListInvalidationsOutput) SetInvalidationList(v *InvalidationList) *List } // The request to list your streaming distributions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/ListStreamingDistributionsRequest type ListStreamingDistributionsInput struct { _ struct{} `type:"structure"` @@ -8000,7 +7929,6 @@ func (s *ListStreamingDistributionsInput) SetMaxItems(v int64) *ListStreamingDis } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/ListStreamingDistributionsResult type ListStreamingDistributionsOutput struct { _ struct{} `type:"structure" payload:"StreamingDistributionList"` @@ -8025,7 +7953,6 @@ func (s *ListStreamingDistributionsOutput) SetStreamingDistributionList(v *Strea } // The request to list tags for a CloudFront resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/ListTagsForResourceRequest type ListTagsForResourceInput struct { _ struct{} `type:"structure"` @@ -8065,7 +7992,6 @@ func (s *ListTagsForResourceInput) SetResource(v string) *ListTagsForResourceInp } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/ListTagsForResourceResult type ListTagsForResourceOutput struct { _ struct{} `type:"structure" payload:"Tags"` @@ -8092,7 +8018,6 @@ func (s *ListTagsForResourceOutput) SetTags(v *Tags) *ListTagsForResourceOutput } // A complex type that controls whether access logs are written for the distribution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/LoggingConfig type LoggingConfig struct { _ struct{} `type:"structure"` @@ -8193,7 +8118,6 @@ func (s *LoggingConfig) SetPrefix(v string) *LoggingConfig { // For the current limit on the number of origins that you can create for a // distribution, see Amazon CloudFront Limits (http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_cloudfront) // in the AWS General Reference. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/Origin type Origin struct { _ struct{} `type:"structure"` @@ -8351,7 +8275,6 @@ func (s *Origin) SetS3OriginConfig(v *S3OriginConfig) *Origin { } // CloudFront origin access identity. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CloudFrontOriginAccessIdentity type OriginAccessIdentity struct { _ struct{} `type:"structure"` @@ -8401,7 +8324,6 @@ func (s *OriginAccessIdentity) SetS3CanonicalUserId(v string) *OriginAccessIdent // Origin access identity configuration. Send a GET request to the /CloudFront // API version/CloudFront/identity ID/config resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CloudFrontOriginAccessIdentityConfig type OriginAccessIdentityConfig struct { _ struct{} `type:"structure"` @@ -8473,7 +8395,6 @@ func (s *OriginAccessIdentityConfig) SetComment(v string) *OriginAccessIdentityC // child elements. By default, your entire list of origin access identities // is returned in one single page. If the list is long, you can paginate it // using the MaxItems and Marker parameters. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CloudFrontOriginAccessIdentityList type OriginAccessIdentityList struct { _ struct{} `type:"structure"` @@ -8562,7 +8483,6 @@ func (s *OriginAccessIdentityList) SetQuantity(v int64) *OriginAccessIdentityLis } // Summary of the information about a CloudFront origin access identity. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/CloudFrontOriginAccessIdentitySummary type OriginAccessIdentitySummary struct { _ struct{} `type:"structure"` @@ -8615,7 +8535,6 @@ func (s *OriginAccessIdentitySummary) SetS3CanonicalUserId(v string) *OriginAcce // A complex type that contains HeaderName and HeaderValue elements, if any, // for this distribution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/OriginCustomHeader type OriginCustomHeader struct { _ struct{} `type:"structure"` @@ -8673,7 +8592,6 @@ func (s *OriginCustomHeader) SetHeaderValue(v string) *OriginCustomHeader { // A complex type that contains information about the SSL/TLS protocols that // CloudFront can use when establishing an HTTPS connection with your origin. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/OriginSslProtocols type OriginSslProtocols struct { _ struct{} `type:"structure"` @@ -8728,7 +8646,6 @@ func (s *OriginSslProtocols) SetQuantity(v int64) *OriginSslProtocols { } // A complex type that contains information about origins for this distribution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/Origins type Origins struct { _ struct{} `type:"structure"` @@ -8793,7 +8710,6 @@ func (s *Origins) SetQuantity(v int64) *Origins { // to invalidate. For more information, see Specifying the Objects to Invalidate // (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html#invalidation-specifying-objects) // in the Amazon CloudFront Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/Paths type Paths struct { _ struct{} `type:"structure"` @@ -8841,7 +8757,6 @@ func (s *Paths) SetQuantity(v int64) *Paths { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/QueryStringCacheKeys type QueryStringCacheKeys struct { _ struct{} `type:"structure"` @@ -8893,7 +8808,6 @@ func (s *QueryStringCacheKeys) SetQuantity(v int64) *QueryStringCacheKeys { // A complex type that identifies ways in which you want to restrict distribution // of your content. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/Restrictions type Restrictions struct { _ struct{} `type:"structure"` @@ -8940,7 +8854,6 @@ func (s *Restrictions) SetGeoRestriction(v *GeoRestriction) *Restrictions { // A complex type that contains information about the Amazon S3 bucket from // which you want CloudFront to get your media files for distribution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/S3Origin type S3Origin struct { _ struct{} `type:"structure"` @@ -9011,7 +8924,6 @@ func (s *S3Origin) SetOriginAccessIdentity(v string) *S3Origin { // A complex type that contains information about the Amazon S3 origin. If the // origin is a custom origin, use the CustomOriginConfig element instead. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/S3OriginConfig type S3OriginConfig struct { _ struct{} `type:"structure"` @@ -9074,7 +8986,6 @@ func (s *S3OriginConfig) SetOriginAccessIdentity(v string) *S3OriginConfig { // A complex type that lists the AWS accounts that were included in the TrustedSigners // complex type, as well as their active CloudFront key pair IDs, if any. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/Signer type Signer struct { _ struct{} `type:"structure"` @@ -9114,7 +9025,6 @@ func (s *Signer) SetKeyPairIds(v *KeyPairIds) *Signer { } // A streaming distribution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/StreamingDistribution type StreamingDistribution struct { _ struct{} `type:"structure"` @@ -9216,7 +9126,6 @@ func (s *StreamingDistribution) SetStreamingDistributionConfig(v *StreamingDistr } // The RTMP distribution's configuration information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/StreamingDistributionConfig type StreamingDistributionConfig struct { _ struct{} `type:"structure"` @@ -9379,7 +9288,6 @@ func (s *StreamingDistributionConfig) SetTrustedSigners(v *TrustedSigners) *Stre // A streaming distribution Configuration and a list of tags to be associated // with the streaming distribution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/StreamingDistributionConfigWithTags type StreamingDistributionConfigWithTags struct { _ struct{} `type:"structure"` @@ -9443,7 +9351,6 @@ func (s *StreamingDistributionConfigWithTags) SetTags(v *Tags) *StreamingDistrib } // A streaming distribution list. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/StreamingDistributionList type StreamingDistributionList struct { _ struct{} `type:"structure"` @@ -9528,7 +9435,6 @@ func (s *StreamingDistributionList) SetQuantity(v int64) *StreamingDistributionL } // A summary of the information for an Amazon CloudFront streaming distribution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/StreamingDistributionSummary type StreamingDistributionSummary struct { _ struct{} `type:"structure"` @@ -9679,7 +9585,6 @@ func (s *StreamingDistributionSummary) SetTrustedSigners(v *TrustedSigners) *Str // A complex type that controls whether access logs are written for this streaming // distribution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/StreamingLoggingConfig type StreamingLoggingConfig struct { _ struct{} `type:"structure"` @@ -9755,7 +9660,6 @@ func (s *StreamingLoggingConfig) SetPrefix(v string) *StreamingLoggingConfig { } // A complex type that contains Tag key and Tag value. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/Tag type Tag struct { _ struct{} `type:"structure"` @@ -9813,7 +9717,6 @@ func (s *Tag) SetValue(v string) *Tag { } // A complex type that contains zero or more Tag elements. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/TagKeys type TagKeys struct { _ struct{} `type:"structure"` @@ -9838,7 +9741,6 @@ func (s *TagKeys) SetItems(v []*string) *TagKeys { } // The request to add tags to a CloudFront resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/TagResourceRequest type TagResourceInput struct { _ struct{} `type:"structure" payload:"Tags"` @@ -9896,7 +9798,6 @@ func (s *TagResourceInput) SetTags(v *Tags) *TagResourceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/TagResourceOutput type TagResourceOutput struct { _ struct{} `type:"structure"` } @@ -9912,7 +9813,6 @@ func (s TagResourceOutput) GoString() string { } // A complex type that contains zero or more Tag elements. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/Tags type Tags struct { _ struct{} `type:"structure"` @@ -9974,7 +9874,6 @@ func (s *Tags) SetItems(v []*Tag) *Tags { // // For more information about updating the distribution configuration, see DistributionConfig // . -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/TrustedSigners type TrustedSigners struct { _ struct{} `type:"structure"` @@ -10039,7 +9938,6 @@ func (s *TrustedSigners) SetQuantity(v int64) *TrustedSigners { } // The request to remove tags from a CloudFront resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/UntagResourceRequest type UntagResourceInput struct { _ struct{} `type:"structure" payload:"TagKeys"` @@ -10092,7 +9990,6 @@ func (s *UntagResourceInput) SetTagKeys(v *TagKeys) *UntagResourceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/UntagResourceOutput type UntagResourceOutput struct { _ struct{} `type:"structure"` } @@ -10108,7 +10005,6 @@ func (s UntagResourceOutput) GoString() string { } // The request to update an origin access identity. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/UpdateCloudFrontOriginAccessIdentityRequest type UpdateCloudFrontOriginAccessIdentityInput struct { _ struct{} `type:"structure" payload:"CloudFrontOriginAccessIdentityConfig"` @@ -10177,7 +10073,6 @@ func (s *UpdateCloudFrontOriginAccessIdentityInput) SetIfMatch(v string) *Update } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/UpdateCloudFrontOriginAccessIdentityResult type UpdateCloudFrontOriginAccessIdentityOutput struct { _ struct{} `type:"structure" payload:"CloudFrontOriginAccessIdentity"` @@ -10211,7 +10106,6 @@ func (s *UpdateCloudFrontOriginAccessIdentityOutput) SetETag(v string) *UpdateCl } // The request to update a distribution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/UpdateDistributionRequest type UpdateDistributionInput struct { _ struct{} `type:"structure" payload:"DistributionConfig"` @@ -10280,7 +10174,6 @@ func (s *UpdateDistributionInput) SetIfMatch(v string) *UpdateDistributionInput } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/UpdateDistributionResult type UpdateDistributionOutput struct { _ struct{} `type:"structure" payload:"Distribution"` @@ -10314,7 +10207,6 @@ func (s *UpdateDistributionOutput) SetETag(v string) *UpdateDistributionOutput { } // The request to update a streaming distribution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/UpdateStreamingDistributionRequest type UpdateStreamingDistributionInput struct { _ struct{} `type:"structure" payload:"StreamingDistributionConfig"` @@ -10383,7 +10275,6 @@ func (s *UpdateStreamingDistributionInput) SetStreamingDistributionConfig(v *Str } // The returned result of the corresponding request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/UpdateStreamingDistributionResult type UpdateStreamingDistributionOutput struct { _ struct{} `type:"structure" payload:"StreamingDistribution"` @@ -10502,7 +10393,6 @@ func (s *UpdateStreamingDistributionOutput) SetStreamingDistribution(v *Streamin // // For more information, see Using Alternate Domain Names and HTTPS (http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/SecureConnections.html#CNAMEsAndHTTPS) // in the Amazon CloudFront Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudfront-2017-03-25/ViewerCertificate type ViewerCertificate struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloudtrail/api.go b/vendor/github.com/aws/aws-sdk-go/service/cloudtrail/api.go index 78557cbd6..646949fa2 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cloudtrail/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cloudtrail/api.go @@ -1700,7 +1700,6 @@ func (c *CloudTrail) UpdateTrailWithContext(ctx aws.Context, input *UpdateTrailI } // Specifies the tags to add to a trail. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/AddTagsRequest type AddTagsInput struct { _ struct{} `type:"structure"` @@ -1763,7 +1762,6 @@ func (s *AddTagsInput) SetTagsList(v []*Tag) *AddTagsInput { // Returns the objects or data listed below if successful. Otherwise, returns // an error. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/AddTagsResponse type AddTagsOutput struct { _ struct{} `type:"structure"` } @@ -1779,7 +1777,6 @@ func (s AddTagsOutput) GoString() string { } // Specifies the settings for each trail. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/CreateTrailRequest type CreateTrailInput struct { _ struct{} `type:"structure"` @@ -1950,7 +1947,6 @@ func (s *CreateTrailInput) SetSnsTopicName(v string) *CreateTrailInput { // Returns the objects or data listed below if successful. Otherwise, returns // an error. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/CreateTrailResponse type CreateTrailOutput struct { _ struct{} `type:"structure"` @@ -2107,7 +2103,6 @@ func (s *CreateTrailOutput) SetTrailARN(v string) *CreateTrailOutput { // // The event occurs on an object in an S3 bucket that you didn't specify in // the event selector. The trail doesn’t log the event. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/DataResource type DataResource struct { _ struct{} `type:"structure"` @@ -2150,7 +2145,6 @@ func (s *DataResource) SetValues(v []*string) *DataResource { } // The request that specifies the name of a trail to delete. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/DeleteTrailRequest type DeleteTrailInput struct { _ struct{} `type:"structure"` @@ -2192,7 +2186,6 @@ func (s *DeleteTrailInput) SetName(v string) *DeleteTrailInput { // Returns the objects or data listed below if successful. Otherwise, returns // an error. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/DeleteTrailResponse type DeleteTrailOutput struct { _ struct{} `type:"structure"` } @@ -2208,7 +2201,6 @@ func (s DeleteTrailOutput) GoString() string { } // Returns information about the trail. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/DescribeTrailsRequest type DescribeTrailsInput struct { _ struct{} `type:"structure"` @@ -2263,7 +2255,6 @@ func (s *DescribeTrailsInput) SetTrailNameList(v []*string) *DescribeTrailsInput // Returns the objects or data listed below if successful. Otherwise, returns // an error. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/DescribeTrailsResponse type DescribeTrailsOutput struct { _ struct{} `type:"structure"` @@ -2289,7 +2280,6 @@ func (s *DescribeTrailsOutput) SetTrailList(v []*Trail) *DescribeTrailsOutput { // Contains information about an event that was returned by a lookup request. // The result includes a representation of a CloudTrail event. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/Event type Event struct { _ struct{} `type:"structure"` @@ -2375,7 +2365,6 @@ func (s *Event) SetUsername(v string) *Event { // match any event selector, the trail doesn't log the event. // // You can configure up to five event selectors for a trail. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/EventSelector type EventSelector struct { _ struct{} `type:"structure"` @@ -2431,7 +2420,6 @@ func (s *EventSelector) SetReadWriteType(v string) *EventSelector { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/GetEventSelectorsRequest type GetEventSelectorsInput struct { _ struct{} `type:"structure"` @@ -2487,7 +2475,6 @@ func (s *GetEventSelectorsInput) SetTrailName(v string) *GetEventSelectorsInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/GetEventSelectorsResponse type GetEventSelectorsOutput struct { _ struct{} `type:"structure"` @@ -2521,7 +2508,6 @@ func (s *GetEventSelectorsOutput) SetTrailARN(v string) *GetEventSelectorsOutput } // The name of a trail about which you want the current status. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/GetTrailStatusRequest type GetTrailStatusInput struct { _ struct{} `type:"structure"` @@ -2566,7 +2552,6 @@ func (s *GetTrailStatusInput) SetName(v string) *GetTrailStatusInput { // Returns the objects or data listed below if successful. Otherwise, returns // an error. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/GetTrailStatusResponse type GetTrailStatusOutput struct { _ struct{} `type:"structure"` @@ -2760,7 +2745,6 @@ func (s *GetTrailStatusOutput) SetTimeLoggingStopped(v string) *GetTrailStatusOu } // Requests the public keys for a specified time range. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/ListPublicKeysRequest type ListPublicKeysInput struct { _ struct{} `type:"structure"` @@ -2807,7 +2791,6 @@ func (s *ListPublicKeysInput) SetStartTime(v time.Time) *ListPublicKeysInput { // Returns the objects or data listed below if successful. Otherwise, returns // an error. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/ListPublicKeysResponse type ListPublicKeysOutput struct { _ struct{} `type:"structure"` @@ -2843,7 +2826,6 @@ func (s *ListPublicKeysOutput) SetPublicKeyList(v []*PublicKey) *ListPublicKeysO } // Specifies a list of trail tags to return. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/ListTagsRequest type ListTagsInput struct { _ struct{} `type:"structure"` @@ -2896,7 +2878,6 @@ func (s *ListTagsInput) SetResourceIdList(v []*string) *ListTagsInput { // Returns the objects or data listed below if successful. Otherwise, returns // an error. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/ListTagsResponse type ListTagsOutput struct { _ struct{} `type:"structure"` @@ -2930,7 +2911,6 @@ func (s *ListTagsOutput) SetResourceTagList(v []*ResourceTag) *ListTagsOutput { } // Specifies an attribute and value that filter the events returned. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/LookupAttribute type LookupAttribute struct { _ struct{} `type:"structure"` @@ -2984,7 +2964,6 @@ func (s *LookupAttribute) SetAttributeValue(v string) *LookupAttribute { } // Contains a request for LookupEvents. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/LookupEventsRequest type LookupEventsInput struct { _ struct{} `type:"structure"` @@ -3078,7 +3057,6 @@ func (s *LookupEventsInput) SetStartTime(v time.Time) *LookupEventsInput { } // Contains a response to a LookupEvents action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/LookupEventsResponse type LookupEventsOutput struct { _ struct{} `type:"structure"` @@ -3118,7 +3096,6 @@ func (s *LookupEventsOutput) SetNextToken(v string) *LookupEventsOutput { } // Contains information about a returned public key. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/PublicKey type PublicKey struct { _ struct{} `type:"structure"` @@ -3171,7 +3148,6 @@ func (s *PublicKey) SetValue(v []byte) *PublicKey { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/PutEventSelectorsRequest type PutEventSelectorsInput struct { _ struct{} `type:"structure"` @@ -3242,7 +3218,6 @@ func (s *PutEventSelectorsInput) SetTrailName(v string) *PutEventSelectorsInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/PutEventSelectorsResponse type PutEventSelectorsOutput struct { _ struct{} `type:"structure"` @@ -3279,7 +3254,6 @@ func (s *PutEventSelectorsOutput) SetTrailARN(v string) *PutEventSelectorsOutput } // Specifies the tags to remove from a trail. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/RemoveTagsRequest type RemoveTagsInput struct { _ struct{} `type:"structure"` @@ -3342,7 +3316,6 @@ func (s *RemoveTagsInput) SetTagsList(v []*Tag) *RemoveTagsInput { // Returns the objects or data listed below if successful. Otherwise, returns // an error. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/RemoveTagsResponse type RemoveTagsOutput struct { _ struct{} `type:"structure"` } @@ -3358,7 +3331,6 @@ func (s RemoveTagsOutput) GoString() string { } // Specifies the type and name of a resource referenced by an event. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/Resource type Resource struct { _ struct{} `type:"structure"` @@ -3399,7 +3371,6 @@ func (s *Resource) SetResourceType(v string) *Resource { } // A resource tag. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/ResourceTag type ResourceTag struct { _ struct{} `type:"structure"` @@ -3433,7 +3404,6 @@ func (s *ResourceTag) SetTagsList(v []*Tag) *ResourceTag { } // The request to CloudTrail to start logging AWS API calls for an account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/StartLoggingRequest type StartLoggingInput struct { _ struct{} `type:"structure"` @@ -3477,7 +3447,6 @@ func (s *StartLoggingInput) SetName(v string) *StartLoggingInput { // Returns the objects or data listed below if successful. Otherwise, returns // an error. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/StartLoggingResponse type StartLoggingOutput struct { _ struct{} `type:"structure"` } @@ -3494,7 +3463,6 @@ func (s StartLoggingOutput) GoString() string { // Passes the request to CloudTrail to stop logging AWS API calls for the specified // account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/StopLoggingRequest type StopLoggingInput struct { _ struct{} `type:"structure"` @@ -3538,7 +3506,6 @@ func (s *StopLoggingInput) SetName(v string) *StopLoggingInput { // Returns the objects or data listed below if successful. Otherwise, returns // an error. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/StopLoggingResponse type StopLoggingOutput struct { _ struct{} `type:"structure"` } @@ -3554,7 +3521,6 @@ func (s StopLoggingOutput) GoString() string { } // A custom key-value pair associated with a resource such as a CloudTrail trail. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/Tag type Tag struct { _ struct{} `type:"structure"` @@ -3605,7 +3571,6 @@ func (s *Tag) SetValue(v string) *Tag { } // The settings for a trail. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/Trail type Trail struct { _ struct{} `type:"structure"` @@ -3762,7 +3727,6 @@ func (s *Trail) SetTrailARN(v string) *Trail { } // Specifies settings to update for the trail. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/UpdateTrailRequest type UpdateTrailInput struct { _ struct{} `type:"structure"` @@ -3936,7 +3900,6 @@ func (s *UpdateTrailInput) SetSnsTopicName(v string) *UpdateTrailInput { // Returns the objects or data listed below if successful. Otherwise, returns // an error. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cloudtrail-2013-11-01/UpdateTrailResponse type UpdateTrailOutput struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloudwatch/api.go b/vendor/github.com/aws/aws-sdk-go/service/cloudwatch/api.go index 47c5f7f94..2675be848 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cloudwatch/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cloudwatch/api.go @@ -1573,7 +1573,6 @@ func (c *CloudWatch) SetAlarmStateWithContext(ctx aws.Context, input *SetAlarmSt } // Represents the history of a specific alarm. -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/AlarmHistoryItem type AlarmHistoryItem struct { _ struct{} `type:"structure"` @@ -1634,7 +1633,6 @@ func (s *AlarmHistoryItem) SetTimestamp(v time.Time) *AlarmHistoryItem { } // Represents a specific dashboard. -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DashboardEntry type DashboardEntry struct { _ struct{} `type:"structure"` @@ -1688,7 +1686,6 @@ func (s *DashboardEntry) SetSize(v int64) *DashboardEntry { } // An error or warning for the operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DashboardValidationMessage type DashboardValidationMessage struct { _ struct{} `type:"structure"` @@ -1722,7 +1719,6 @@ func (s *DashboardValidationMessage) SetMessage(v string) *DashboardValidationMe } // Encapsulates the statistical data that CloudWatch computes from metric data. -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/Datapoint type Datapoint struct { _ struct{} `type:"structure"` @@ -1810,7 +1806,6 @@ func (s *Datapoint) SetUnit(v string) *Datapoint { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DeleteAlarmsInput type DeleteAlarmsInput struct { _ struct{} `type:"structure"` @@ -1849,7 +1844,6 @@ func (s *DeleteAlarmsInput) SetAlarmNames(v []*string) *DeleteAlarmsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DeleteAlarmsOutput type DeleteAlarmsOutput struct { _ struct{} `type:"structure"` } @@ -1864,7 +1858,6 @@ func (s DeleteAlarmsOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DeleteDashboardsInput type DeleteDashboardsInput struct { _ struct{} `type:"structure"` @@ -1903,7 +1896,6 @@ func (s *DeleteDashboardsInput) SetDashboardNames(v []*string) *DeleteDashboards return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DeleteDashboardsOutput type DeleteDashboardsOutput struct { _ struct{} `type:"structure"` } @@ -1918,7 +1910,6 @@ func (s DeleteDashboardsOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeAlarmHistoryInput type DescribeAlarmHistoryInput struct { _ struct{} `type:"structure"` @@ -2004,7 +1995,6 @@ func (s *DescribeAlarmHistoryInput) SetStartDate(v time.Time) *DescribeAlarmHist return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeAlarmHistoryOutput type DescribeAlarmHistoryOutput struct { _ struct{} `type:"structure"` @@ -2037,7 +2027,6 @@ func (s *DescribeAlarmHistoryOutput) SetNextToken(v string) *DescribeAlarmHistor return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeAlarmsForMetricInput type DescribeAlarmsForMetricInput struct { _ struct{} `type:"structure"` @@ -2157,7 +2146,6 @@ func (s *DescribeAlarmsForMetricInput) SetUnit(v string) *DescribeAlarmsForMetri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeAlarmsForMetricOutput type DescribeAlarmsForMetricOutput struct { _ struct{} `type:"structure"` @@ -2181,7 +2169,6 @@ func (s *DescribeAlarmsForMetricOutput) SetMetricAlarms(v []*MetricAlarm) *Descr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeAlarmsInput type DescribeAlarmsInput struct { _ struct{} `type:"structure"` @@ -2271,7 +2258,6 @@ func (s *DescribeAlarmsInput) SetStateValue(v string) *DescribeAlarmsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DescribeAlarmsOutput type DescribeAlarmsOutput struct { _ struct{} `type:"structure"` @@ -2305,7 +2291,6 @@ func (s *DescribeAlarmsOutput) SetNextToken(v string) *DescribeAlarmsOutput { } // Expands the identity of a metric. -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/Dimension type Dimension struct { _ struct{} `type:"structure"` @@ -2365,7 +2350,6 @@ func (s *Dimension) SetValue(v string) *Dimension { } // Represents filters for a dimension. -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DimensionFilter type DimensionFilter struct { _ struct{} `type:"structure"` @@ -2419,7 +2403,6 @@ func (s *DimensionFilter) SetValue(v string) *DimensionFilter { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DisableAlarmActionsInput type DisableAlarmActionsInput struct { _ struct{} `type:"structure"` @@ -2458,7 +2441,6 @@ func (s *DisableAlarmActionsInput) SetAlarmNames(v []*string) *DisableAlarmActio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/DisableAlarmActionsOutput type DisableAlarmActionsOutput struct { _ struct{} `type:"structure"` } @@ -2473,7 +2455,6 @@ func (s DisableAlarmActionsOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/EnableAlarmActionsInput type EnableAlarmActionsInput struct { _ struct{} `type:"structure"` @@ -2512,7 +2493,6 @@ func (s *EnableAlarmActionsInput) SetAlarmNames(v []*string) *EnableAlarmActions return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/EnableAlarmActionsOutput type EnableAlarmActionsOutput struct { _ struct{} `type:"structure"` } @@ -2527,7 +2507,6 @@ func (s EnableAlarmActionsOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetDashboardInput type GetDashboardInput struct { _ struct{} `type:"structure"` @@ -2566,7 +2545,6 @@ func (s *GetDashboardInput) SetDashboardName(v string) *GetDashboardInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetDashboardOutput type GetDashboardOutput struct { _ struct{} `type:"structure"` @@ -2610,7 +2588,6 @@ func (s *GetDashboardOutput) SetDashboardName(v string) *GetDashboardOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetMetricStatisticsInput type GetMetricStatisticsInput struct { _ struct{} `type:"structure"` @@ -2824,7 +2801,6 @@ func (s *GetMetricStatisticsInput) SetUnit(v string) *GetMetricStatisticsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/GetMetricStatisticsOutput type GetMetricStatisticsOutput struct { _ struct{} `type:"structure"` @@ -2857,7 +2833,6 @@ func (s *GetMetricStatisticsOutput) SetLabel(v string) *GetMetricStatisticsOutpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/ListDashboardsInput type ListDashboardsInput struct { _ struct{} `type:"structure"` @@ -2893,7 +2868,6 @@ func (s *ListDashboardsInput) SetNextToken(v string) *ListDashboardsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/ListDashboardsOutput type ListDashboardsOutput struct { _ struct{} `type:"structure"` @@ -2926,7 +2900,6 @@ func (s *ListDashboardsOutput) SetNextToken(v string) *ListDashboardsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/ListMetricsInput type ListMetricsInput struct { _ struct{} `type:"structure"` @@ -3004,7 +2977,6 @@ func (s *ListMetricsInput) SetNextToken(v string) *ListMetricsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/ListMetricsOutput type ListMetricsOutput struct { _ struct{} `type:"structure"` @@ -3038,7 +3010,6 @@ func (s *ListMetricsOutput) SetNextToken(v string) *ListMetricsOutput { } // Represents a specific metric. -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/Metric type Metric struct { _ struct{} `type:"structure"` @@ -3081,7 +3052,6 @@ func (s *Metric) SetNamespace(v string) *Metric { } // Represents an alarm. -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/MetricAlarm type MetricAlarm struct { _ struct{} `type:"structure"` @@ -3335,7 +3305,6 @@ func (s *MetricAlarm) SetUnit(v string) *MetricAlarm { // Encapsulates the information sent to either create a metric or add new values // to be aggregated into an existing metric. -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/MetricDatum type MetricDatum struct { _ struct{} `type:"structure"` @@ -3464,7 +3433,6 @@ func (s *MetricDatum) SetValue(v float64) *MetricDatum { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutDashboardInput type PutDashboardInput struct { _ struct{} `type:"structure"` @@ -3524,7 +3492,6 @@ func (s *PutDashboardInput) SetDashboardName(v string) *PutDashboardInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutDashboardOutput type PutDashboardOutput struct { _ struct{} `type:"structure"` @@ -3556,7 +3523,6 @@ func (s *PutDashboardOutput) SetDashboardValidationMessages(v []*DashboardValida return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutMetricAlarmInput type PutMetricAlarmInput struct { _ struct{} `type:"structure"` @@ -3890,7 +3856,6 @@ func (s *PutMetricAlarmInput) SetUnit(v string) *PutMetricAlarmInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutMetricAlarmOutput type PutMetricAlarmOutput struct { _ struct{} `type:"structure"` } @@ -3905,7 +3870,6 @@ func (s PutMetricAlarmOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutMetricDataInput type PutMetricDataInput struct { _ struct{} `type:"structure"` @@ -3974,7 +3938,6 @@ func (s *PutMetricDataInput) SetNamespace(v string) *PutMetricDataInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/PutMetricDataOutput type PutMetricDataOutput struct { _ struct{} `type:"structure"` } @@ -3989,7 +3952,6 @@ func (s PutMetricDataOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/SetAlarmStateInput type SetAlarmStateInput struct { _ struct{} `type:"structure"` @@ -4069,7 +4031,6 @@ func (s *SetAlarmStateInput) SetStateValue(v string) *SetAlarmStateInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/SetAlarmStateOutput type SetAlarmStateOutput struct { _ struct{} `type:"structure"` } @@ -4085,7 +4046,6 @@ func (s SetAlarmStateOutput) GoString() string { } // Represents a set of statistics that describes a specific metric. -// See also, https://docs.aws.amazon.com/goto/WebAPI/monitoring-2010-08-01/StatisticSet type StatisticSet struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloudwatchevents/api.go b/vendor/github.com/aws/aws-sdk-go/service/cloudwatchevents/api.go index feca94cc8..5fe3d8738 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cloudwatchevents/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cloudwatchevents/api.go @@ -1425,7 +1425,6 @@ func (c *CloudWatchEvents) TestEventPatternWithContext(ctx aws.Context, input *T return out, req.Send() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/DeleteRuleRequest type DeleteRuleInput struct { _ struct{} `type:"structure"` @@ -1467,7 +1466,6 @@ func (s *DeleteRuleInput) SetName(v string) *DeleteRuleInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/DeleteRuleOutput type DeleteRuleOutput struct { _ struct{} `type:"structure"` } @@ -1482,7 +1480,6 @@ func (s DeleteRuleOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/DescribeEventBusRequest type DescribeEventBusInput struct { _ struct{} `type:"structure"` } @@ -1497,7 +1494,6 @@ func (s DescribeEventBusInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/DescribeEventBusResponse type DescribeEventBusOutput struct { _ struct{} `type:"structure"` @@ -1540,7 +1536,6 @@ func (s *DescribeEventBusOutput) SetPolicy(v string) *DescribeEventBusOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/DescribeRuleRequest type DescribeRuleInput struct { _ struct{} `type:"structure"` @@ -1582,7 +1577,6 @@ func (s *DescribeRuleInput) SetName(v string) *DescribeRuleInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/DescribeRuleResponse type DescribeRuleOutput struct { _ struct{} `type:"structure"` @@ -1661,7 +1655,6 @@ func (s *DescribeRuleOutput) SetState(v string) *DescribeRuleOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/DisableRuleRequest type DisableRuleInput struct { _ struct{} `type:"structure"` @@ -1703,7 +1696,6 @@ func (s *DisableRuleInput) SetName(v string) *DisableRuleInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/DisableRuleOutput type DisableRuleOutput struct { _ struct{} `type:"structure"` } @@ -1719,7 +1711,6 @@ func (s DisableRuleOutput) GoString() string { } // The custom parameters to be used when the target is an Amazon ECS cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/EcsParameters type EcsParameters struct { _ struct{} `type:"structure"` @@ -1775,7 +1766,6 @@ func (s *EcsParameters) SetTaskDefinitionArn(v string) *EcsParameters { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/EnableRuleRequest type EnableRuleInput struct { _ struct{} `type:"structure"` @@ -1817,7 +1807,6 @@ func (s *EnableRuleInput) SetName(v string) *EnableRuleInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/EnableRuleOutput type EnableRuleOutput struct { _ struct{} `type:"structure"` } @@ -1834,7 +1823,6 @@ func (s EnableRuleOutput) GoString() string { // Contains the parameters needed for you to provide custom input to a target // based on one or more pieces of data extracted from the event. -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/InputTransformer type InputTransformer struct { _ struct{} `type:"structure"` @@ -1892,7 +1880,6 @@ func (s *InputTransformer) SetInputTemplate(v string) *InputTransformer { // and use as the partition key for the Amazon Kinesis stream, so that you can // control the shard to which the event goes. If you do not include this parameter, // the default is to use the eventId as the partition key. -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/KinesisParameters type KinesisParameters struct { _ struct{} `type:"structure"` @@ -1933,7 +1920,6 @@ func (s *KinesisParameters) SetPartitionKeyPath(v string) *KinesisParameters { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/ListRuleNamesByTargetRequest type ListRuleNamesByTargetInput struct { _ struct{} `type:"structure"` @@ -1999,7 +1985,6 @@ func (s *ListRuleNamesByTargetInput) SetTargetArn(v string) *ListRuleNamesByTarg return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/ListRuleNamesByTargetResponse type ListRuleNamesByTargetOutput struct { _ struct{} `type:"structure"` @@ -2033,7 +2018,6 @@ func (s *ListRuleNamesByTargetOutput) SetRuleNames(v []*string) *ListRuleNamesBy return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/ListRulesRequest type ListRulesInput struct { _ struct{} `type:"structure"` @@ -2094,7 +2078,6 @@ func (s *ListRulesInput) SetNextToken(v string) *ListRulesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/ListRulesResponse type ListRulesOutput struct { _ struct{} `type:"structure"` @@ -2128,7 +2111,6 @@ func (s *ListRulesOutput) SetRules(v []*Rule) *ListRulesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/ListTargetsByRuleRequest type ListTargetsByRuleInput struct { _ struct{} `type:"structure"` @@ -2194,7 +2176,6 @@ func (s *ListTargetsByRuleInput) SetRule(v string) *ListTargetsByRuleInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/ListTargetsByRuleResponse type ListTargetsByRuleOutput struct { _ struct{} `type:"structure"` @@ -2228,7 +2209,6 @@ func (s *ListTargetsByRuleOutput) SetTargets(v []*Target) *ListTargetsByRuleOutp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/PutEventsRequest type PutEventsInput struct { _ struct{} `type:"structure"` @@ -2272,7 +2252,6 @@ func (s *PutEventsInput) SetEntries(v []*PutEventsRequestEntry) *PutEventsInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/PutEventsResponse type PutEventsOutput struct { _ struct{} `type:"structure"` @@ -2308,7 +2287,6 @@ func (s *PutEventsOutput) SetFailedEntryCount(v int64) *PutEventsOutput { } // Represents an event to be submitted. -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/PutEventsRequestEntry type PutEventsRequestEntry struct { _ struct{} `type:"structure"` @@ -2372,7 +2350,6 @@ func (s *PutEventsRequestEntry) SetTime(v time.Time) *PutEventsRequestEntry { } // Represents an event that failed to be submitted. -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/PutEventsResultEntry type PutEventsResultEntry struct { _ struct{} `type:"structure"` @@ -2414,7 +2391,6 @@ func (s *PutEventsResultEntry) SetEventId(v string) *PutEventsResultEntry { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/PutPermissionRequest type PutPermissionInput struct { _ struct{} `type:"structure"` @@ -2501,7 +2477,6 @@ func (s *PutPermissionInput) SetStatementId(v string) *PutPermissionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/PutPermissionOutput type PutPermissionOutput struct { _ struct{} `type:"structure"` } @@ -2516,7 +2491,6 @@ func (s PutPermissionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/PutRuleRequest type PutRuleInput struct { _ struct{} `type:"structure"` @@ -2607,7 +2581,6 @@ func (s *PutRuleInput) SetState(v string) *PutRuleInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/PutRuleResponse type PutRuleOutput struct { _ struct{} `type:"structure"` @@ -2631,7 +2604,6 @@ func (s *PutRuleOutput) SetRuleArn(v string) *PutRuleOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/PutTargetsRequest type PutTargetsInput struct { _ struct{} `type:"structure"` @@ -2700,7 +2672,6 @@ func (s *PutTargetsInput) SetTargets(v []*Target) *PutTargetsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/PutTargetsResponse type PutTargetsOutput struct { _ struct{} `type:"structure"` @@ -2734,7 +2705,6 @@ func (s *PutTargetsOutput) SetFailedEntryCount(v int64) *PutTargetsOutput { } // Represents a target that failed to be added to a rule. -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/PutTargetsResultEntry type PutTargetsResultEntry struct { _ struct{} `type:"structure"` @@ -2778,7 +2748,6 @@ func (s *PutTargetsResultEntry) SetTargetId(v string) *PutTargetsResultEntry { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/RemovePermissionRequest type RemovePermissionInput struct { _ struct{} `type:"structure"` @@ -2821,7 +2790,6 @@ func (s *RemovePermissionInput) SetStatementId(v string) *RemovePermissionInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/RemovePermissionOutput type RemovePermissionOutput struct { _ struct{} `type:"structure"` } @@ -2836,7 +2804,6 @@ func (s RemovePermissionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/RemoveTargetsRequest type RemoveTargetsInput struct { _ struct{} `type:"structure"` @@ -2895,7 +2862,6 @@ func (s *RemoveTargetsInput) SetRule(v string) *RemoveTargetsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/RemoveTargetsResponse type RemoveTargetsOutput struct { _ struct{} `type:"structure"` @@ -2929,7 +2895,6 @@ func (s *RemoveTargetsOutput) SetFailedEntryCount(v int64) *RemoveTargetsOutput } // Represents a target that failed to be removed from a rule. -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/RemoveTargetsResultEntry type RemoveTargetsResultEntry struct { _ struct{} `type:"structure"` @@ -2974,7 +2939,6 @@ func (s *RemoveTargetsResultEntry) SetTargetId(v string) *RemoveTargetsResultEnt } // Contains information about a rule in Amazon CloudWatch Events. -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/Rule type Rule struct { _ struct{} `type:"structure"` @@ -3056,7 +3020,6 @@ func (s *Rule) SetState(v string) *Rule { // This parameter contains the criteria (either InstanceIds or a tag) used to // specify which EC2 instances are to be sent the command. -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/RunCommandParameters type RunCommandParameters struct { _ struct{} `type:"structure"` @@ -3112,7 +3075,6 @@ func (s *RunCommandParameters) SetRunCommandTargets(v []*RunCommandTarget) *RunC // Information about the EC2 instances that are to be sent the command, specified // as key-value pairs. Each RunCommandTarget block can include only one key, // but this key may specify multiple values. -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/RunCommandTarget type RunCommandTarget struct { _ struct{} `type:"structure"` @@ -3176,7 +3138,6 @@ func (s *RunCommandTarget) SetValues(v []*string) *RunCommandTarget { // types include EC2 instances, AWS Lambda functions, Amazon Kinesis streams, // Amazon ECS tasks, AWS Step Functions state machines, Run Command, and built-in // targets. -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/Target type Target struct { _ struct{} `type:"structure"` @@ -3335,7 +3296,6 @@ func (s *Target) SetRunCommandParameters(v *RunCommandParameters) *Target { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/TestEventPatternRequest type TestEventPatternInput struct { _ struct{} `type:"structure"` @@ -3389,7 +3349,6 @@ func (s *TestEventPatternInput) SetEventPattern(v string) *TestEventPatternInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/events-2015-10-07/TestEventPatternResponse type TestEventPatternOutput struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/cloudwatchlogs/api.go b/vendor/github.com/aws/aws-sdk-go/service/cloudwatchlogs/api.go index 94f06d10b..aaebe84d3 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cloudwatchlogs/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cloudwatchlogs/api.go @@ -3464,7 +3464,6 @@ func (c *CloudWatchLogs) UntagLogGroupWithContext(ctx aws.Context, input *UntagL return out, req.Send() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/AssociateKmsKeyRequest type AssociateKmsKeyInput struct { _ struct{} `type:"structure"` @@ -3522,7 +3521,6 @@ func (s *AssociateKmsKeyInput) SetLogGroupName(v string) *AssociateKmsKeyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/AssociateKmsKeyOutput type AssociateKmsKeyOutput struct { _ struct{} `type:"structure"` } @@ -3537,7 +3535,6 @@ func (s AssociateKmsKeyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/CancelExportTaskRequest type CancelExportTaskInput struct { _ struct{} `type:"structure"` @@ -3579,7 +3576,6 @@ func (s *CancelExportTaskInput) SetTaskId(v string) *CancelExportTaskInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/CancelExportTaskOutput type CancelExportTaskOutput struct { _ struct{} `type:"structure"` } @@ -3594,7 +3590,6 @@ func (s CancelExportTaskOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/CreateExportTaskRequest type CreateExportTaskInput struct { _ struct{} `type:"structure"` @@ -3721,7 +3716,6 @@ func (s *CreateExportTaskInput) SetTo(v int64) *CreateExportTaskInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/CreateExportTaskResponse type CreateExportTaskOutput struct { _ struct{} `type:"structure"` @@ -3745,7 +3739,6 @@ func (s *CreateExportTaskOutput) SetTaskId(v string) *CreateExportTaskOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/CreateLogGroupRequest type CreateLogGroupInput struct { _ struct{} `type:"structure"` @@ -3810,7 +3803,6 @@ func (s *CreateLogGroupInput) SetTags(v map[string]*string) *CreateLogGroupInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/CreateLogGroupOutput type CreateLogGroupOutput struct { _ struct{} `type:"structure"` } @@ -3825,7 +3817,6 @@ func (s CreateLogGroupOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/CreateLogStreamRequest type CreateLogStreamInput struct { _ struct{} `type:"structure"` @@ -3884,7 +3875,6 @@ func (s *CreateLogStreamInput) SetLogStreamName(v string) *CreateLogStreamInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/CreateLogStreamOutput type CreateLogStreamOutput struct { _ struct{} `type:"structure"` } @@ -3899,7 +3889,6 @@ func (s CreateLogStreamOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DeleteDestinationRequest type DeleteDestinationInput struct { _ struct{} `type:"structure"` @@ -3941,7 +3930,6 @@ func (s *DeleteDestinationInput) SetDestinationName(v string) *DeleteDestination return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DeleteDestinationOutput type DeleteDestinationOutput struct { _ struct{} `type:"structure"` } @@ -3956,7 +3944,6 @@ func (s DeleteDestinationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DeleteLogGroupRequest type DeleteLogGroupInput struct { _ struct{} `type:"structure"` @@ -3998,7 +3985,6 @@ func (s *DeleteLogGroupInput) SetLogGroupName(v string) *DeleteLogGroupInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DeleteLogGroupOutput type DeleteLogGroupOutput struct { _ struct{} `type:"structure"` } @@ -4013,7 +3999,6 @@ func (s DeleteLogGroupOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DeleteLogStreamRequest type DeleteLogStreamInput struct { _ struct{} `type:"structure"` @@ -4072,7 +4057,6 @@ func (s *DeleteLogStreamInput) SetLogStreamName(v string) *DeleteLogStreamInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DeleteLogStreamOutput type DeleteLogStreamOutput struct { _ struct{} `type:"structure"` } @@ -4087,7 +4071,6 @@ func (s DeleteLogStreamOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DeleteMetricFilterRequest type DeleteMetricFilterInput struct { _ struct{} `type:"structure"` @@ -4146,7 +4129,6 @@ func (s *DeleteMetricFilterInput) SetLogGroupName(v string) *DeleteMetricFilterI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DeleteMetricFilterOutput type DeleteMetricFilterOutput struct { _ struct{} `type:"structure"` } @@ -4161,7 +4143,6 @@ func (s DeleteMetricFilterOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DeleteResourcePolicyRequest type DeleteResourcePolicyInput struct { _ struct{} `type:"structure"` @@ -4185,7 +4166,6 @@ func (s *DeleteResourcePolicyInput) SetPolicyName(v string) *DeleteResourcePolic return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DeleteResourcePolicyOutput type DeleteResourcePolicyOutput struct { _ struct{} `type:"structure"` } @@ -4200,7 +4180,6 @@ func (s DeleteResourcePolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DeleteRetentionPolicyRequest type DeleteRetentionPolicyInput struct { _ struct{} `type:"structure"` @@ -4242,7 +4221,6 @@ func (s *DeleteRetentionPolicyInput) SetLogGroupName(v string) *DeleteRetentionP return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DeleteRetentionPolicyOutput type DeleteRetentionPolicyOutput struct { _ struct{} `type:"structure"` } @@ -4257,7 +4235,6 @@ func (s DeleteRetentionPolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DeleteSubscriptionFilterRequest type DeleteSubscriptionFilterInput struct { _ struct{} `type:"structure"` @@ -4316,7 +4293,6 @@ func (s *DeleteSubscriptionFilterInput) SetLogGroupName(v string) *DeleteSubscri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DeleteSubscriptionFilterOutput type DeleteSubscriptionFilterOutput struct { _ struct{} `type:"structure"` } @@ -4331,7 +4307,6 @@ func (s DeleteSubscriptionFilterOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DescribeDestinationsRequest type DescribeDestinationsInput struct { _ struct{} `type:"structure"` @@ -4394,7 +4369,6 @@ func (s *DescribeDestinationsInput) SetNextToken(v string) *DescribeDestinations return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DescribeDestinationsResponse type DescribeDestinationsOutput struct { _ struct{} `type:"structure"` @@ -4428,7 +4402,6 @@ func (s *DescribeDestinationsOutput) SetNextToken(v string) *DescribeDestination return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DescribeExportTasksRequest type DescribeExportTasksInput struct { _ struct{} `type:"structure"` @@ -4502,7 +4475,6 @@ func (s *DescribeExportTasksInput) SetTaskId(v string) *DescribeExportTasksInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DescribeExportTasksResponse type DescribeExportTasksOutput struct { _ struct{} `type:"structure"` @@ -4536,7 +4508,6 @@ func (s *DescribeExportTasksOutput) SetNextToken(v string) *DescribeExportTasksO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DescribeLogGroupsRequest type DescribeLogGroupsInput struct { _ struct{} `type:"structure"` @@ -4599,7 +4570,6 @@ func (s *DescribeLogGroupsInput) SetNextToken(v string) *DescribeLogGroupsInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DescribeLogGroupsResponse type DescribeLogGroupsOutput struct { _ struct{} `type:"structure"` @@ -4633,7 +4603,6 @@ func (s *DescribeLogGroupsOutput) SetNextToken(v string) *DescribeLogGroupsOutpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DescribeLogStreamsRequest type DescribeLogStreamsInput struct { _ struct{} `type:"structure"` @@ -4746,7 +4715,6 @@ func (s *DescribeLogStreamsInput) SetOrderBy(v string) *DescribeLogStreamsInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DescribeLogStreamsResponse type DescribeLogStreamsOutput struct { _ struct{} `type:"structure"` @@ -4780,7 +4748,6 @@ func (s *DescribeLogStreamsOutput) SetNextToken(v string) *DescribeLogStreamsOut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DescribeMetricFiltersRequest type DescribeMetricFiltersInput struct { _ struct{} `type:"structure"` @@ -4874,7 +4841,6 @@ func (s *DescribeMetricFiltersInput) SetNextToken(v string) *DescribeMetricFilte return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DescribeMetricFiltersResponse type DescribeMetricFiltersOutput struct { _ struct{} `type:"structure"` @@ -4908,7 +4874,6 @@ func (s *DescribeMetricFiltersOutput) SetNextToken(v string) *DescribeMetricFilt return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DescribeResourcePoliciesRequest type DescribeResourcePoliciesInput struct { _ struct{} `type:"structure"` @@ -4959,7 +4924,6 @@ func (s *DescribeResourcePoliciesInput) SetNextToken(v string) *DescribeResource return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DescribeResourcePoliciesResponse type DescribeResourcePoliciesOutput struct { _ struct{} `type:"structure"` @@ -4993,7 +4957,6 @@ func (s *DescribeResourcePoliciesOutput) SetResourcePolicies(v []*ResourcePolicy return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DescribeSubscriptionFiltersRequest type DescribeSubscriptionFiltersInput struct { _ struct{} `type:"structure"` @@ -5073,7 +5036,6 @@ func (s *DescribeSubscriptionFiltersInput) SetNextToken(v string) *DescribeSubsc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DescribeSubscriptionFiltersResponse type DescribeSubscriptionFiltersOutput struct { _ struct{} `type:"structure"` @@ -5108,7 +5070,6 @@ func (s *DescribeSubscriptionFiltersOutput) SetSubscriptionFilters(v []*Subscrip } // Represents a cross-account destination that receives subscription log events. -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/Destination type Destination struct { _ struct{} `type:"structure"` @@ -5180,7 +5141,6 @@ func (s *Destination) SetTargetArn(v string) *Destination { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DisassociateKmsKeyRequest type DisassociateKmsKeyInput struct { _ struct{} `type:"structure"` @@ -5222,7 +5182,6 @@ func (s *DisassociateKmsKeyInput) SetLogGroupName(v string) *DisassociateKmsKeyI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/DisassociateKmsKeyOutput type DisassociateKmsKeyOutput struct { _ struct{} `type:"structure"` } @@ -5238,7 +5197,6 @@ func (s DisassociateKmsKeyOutput) GoString() string { } // Represents an export task. -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/ExportTask type ExportTask struct { _ struct{} `type:"structure"` @@ -5337,7 +5295,6 @@ func (s *ExportTask) SetTo(v int64) *ExportTask { } // Represents the status of an export task. -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/ExportTaskExecutionInfo type ExportTaskExecutionInfo struct { _ struct{} `type:"structure"` @@ -5373,7 +5330,6 @@ func (s *ExportTaskExecutionInfo) SetCreationTime(v int64) *ExportTaskExecutionI } // Represents the status of an export task. -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/ExportTaskStatus type ExportTaskStatus struct { _ struct{} `type:"structure"` @@ -5406,7 +5362,6 @@ func (s *ExportTaskStatus) SetMessage(v string) *ExportTaskStatus { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/FilterLogEventsRequest type FilterLogEventsInput struct { _ struct{} `type:"structure"` @@ -5529,7 +5484,6 @@ func (s *FilterLogEventsInput) SetStartTime(v int64) *FilterLogEventsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/FilterLogEventsResponse type FilterLogEventsOutput struct { _ struct{} `type:"structure"` @@ -5574,7 +5528,6 @@ func (s *FilterLogEventsOutput) SetSearchedLogStreams(v []*SearchedLogStream) *F } // Represents a matched event. -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/FilteredLogEvent type FilteredLogEvent struct { _ struct{} `type:"structure"` @@ -5636,7 +5589,6 @@ func (s *FilteredLogEvent) SetTimestamp(v int64) *FilteredLogEvent { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/GetLogEventsRequest type GetLogEventsInput struct { _ struct{} `type:"structure"` @@ -5755,7 +5707,6 @@ func (s *GetLogEventsInput) SetStartTime(v int64) *GetLogEventsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/GetLogEventsResponse type GetLogEventsOutput struct { _ struct{} `type:"structure"` @@ -5801,7 +5752,6 @@ func (s *GetLogEventsOutput) SetNextForwardToken(v string) *GetLogEventsOutput { // Represents a log event, which is a record of activity that was recorded by // the application or resource being monitored. -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/InputLogEvent type InputLogEvent struct { _ struct{} `type:"structure"` @@ -5858,7 +5808,6 @@ func (s *InputLogEvent) SetTimestamp(v int64) *InputLogEvent { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/ListTagsLogGroupRequest type ListTagsLogGroupInput struct { _ struct{} `type:"structure"` @@ -5900,7 +5849,6 @@ func (s *ListTagsLogGroupInput) SetLogGroupName(v string) *ListTagsLogGroupInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/ListTagsLogGroupResponse type ListTagsLogGroupOutput struct { _ struct{} `type:"structure"` @@ -5925,7 +5873,6 @@ func (s *ListTagsLogGroupOutput) SetTags(v map[string]*string) *ListTagsLogGroup } // Represents a log group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/LogGroup type LogGroup struct { _ struct{} `type:"structure"` @@ -6008,7 +5955,6 @@ func (s *LogGroup) SetStoredBytes(v int64) *LogGroup { // Represents a log stream, which is a sequence of log events from a single // emitter of logs. -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/LogStream type LogStream struct { _ struct{} `type:"structure"` @@ -6105,7 +6051,6 @@ func (s *LogStream) SetUploadSequenceToken(v string) *LogStream { // Metric filters express how CloudWatch Logs would extract metric observations // from ingested log events and transform them into metric data in a CloudWatch // metric. -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/MetricFilter type MetricFilter struct { _ struct{} `type:"structure"` @@ -6170,7 +6115,6 @@ func (s *MetricFilter) SetMetricTransformations(v []*MetricTransformation) *Metr } // Represents a matched event. -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/MetricFilterMatchRecord type MetricFilterMatchRecord struct { _ struct{} `type:"structure"` @@ -6214,7 +6158,6 @@ func (s *MetricFilterMatchRecord) SetExtractedValues(v map[string]*string) *Metr // Indicates how to transform ingested log events in to metric data in a CloudWatch // metric. -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/MetricTransformation type MetricTransformation struct { _ struct{} `type:"structure"` @@ -6293,7 +6236,6 @@ func (s *MetricTransformation) SetMetricValue(v string) *MetricTransformation { } // Represents a log event. -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/OutputLogEvent type OutputLogEvent struct { _ struct{} `type:"structure"` @@ -6337,7 +6279,6 @@ func (s *OutputLogEvent) SetTimestamp(v int64) *OutputLogEvent { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/PutDestinationRequest type PutDestinationInput struct { _ struct{} `type:"structure"` @@ -6414,7 +6355,6 @@ func (s *PutDestinationInput) SetTargetArn(v string) *PutDestinationInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/PutDestinationResponse type PutDestinationOutput struct { _ struct{} `type:"structure"` @@ -6438,7 +6378,6 @@ func (s *PutDestinationOutput) SetDestination(v *Destination) *PutDestinationOut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/PutDestinationPolicyRequest type PutDestinationPolicyInput struct { _ struct{} `type:"structure"` @@ -6498,7 +6437,6 @@ func (s *PutDestinationPolicyInput) SetDestinationName(v string) *PutDestination return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/PutDestinationPolicyOutput type PutDestinationPolicyOutput struct { _ struct{} `type:"structure"` } @@ -6513,7 +6451,6 @@ func (s PutDestinationPolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/PutLogEventsRequest type PutLogEventsInput struct { _ struct{} `type:"structure"` @@ -6615,7 +6552,6 @@ func (s *PutLogEventsInput) SetSequenceToken(v string) *PutLogEventsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/PutLogEventsResponse type PutLogEventsOutput struct { _ struct{} `type:"structure"` @@ -6648,7 +6584,6 @@ func (s *PutLogEventsOutput) SetRejectedLogEventsInfo(v *RejectedLogEventsInfo) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/PutMetricFilterRequest type PutMetricFilterInput struct { _ struct{} `type:"structure"` @@ -6748,7 +6683,6 @@ func (s *PutMetricFilterInput) SetMetricTransformations(v []*MetricTransformatio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/PutMetricFilterOutput type PutMetricFilterOutput struct { _ struct{} `type:"structure"` } @@ -6763,7 +6697,6 @@ func (s PutMetricFilterOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/PutResourcePolicyRequest type PutResourcePolicyInput struct { _ struct{} `type:"structure"` @@ -6818,7 +6751,6 @@ func (s *PutResourcePolicyInput) SetPolicyName(v string) *PutResourcePolicyInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/PutResourcePolicyResponse type PutResourcePolicyOutput struct { _ struct{} `type:"structure"` @@ -6842,7 +6774,6 @@ func (s *PutResourcePolicyOutput) SetResourcePolicy(v *ResourcePolicy) *PutResou return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/PutRetentionPolicyRequest type PutRetentionPolicyInput struct { _ struct{} `type:"structure"` @@ -6900,7 +6831,6 @@ func (s *PutRetentionPolicyInput) SetRetentionInDays(v int64) *PutRetentionPolic return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/PutRetentionPolicyOutput type PutRetentionPolicyOutput struct { _ struct{} `type:"structure"` } @@ -6915,7 +6845,6 @@ func (s PutRetentionPolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/PutSubscriptionFilterRequest type PutSubscriptionFilterInput struct { _ struct{} `type:"structure"` @@ -7048,7 +6977,6 @@ func (s *PutSubscriptionFilterInput) SetRoleArn(v string) *PutSubscriptionFilter return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/PutSubscriptionFilterOutput type PutSubscriptionFilterOutput struct { _ struct{} `type:"structure"` } @@ -7064,7 +6992,6 @@ func (s PutSubscriptionFilterOutput) GoString() string { } // Represents the rejected events. -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/RejectedLogEventsInfo type RejectedLogEventsInfo struct { _ struct{} `type:"structure"` @@ -7108,7 +7035,6 @@ func (s *RejectedLogEventsInfo) SetTooOldLogEventEndIndex(v int64) *RejectedLogE // A policy enabling one or more entities to put logs to a log group in this // account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/ResourcePolicy type ResourcePolicy struct { _ struct{} `type:"structure"` @@ -7152,7 +7078,6 @@ func (s *ResourcePolicy) SetPolicyName(v string) *ResourcePolicy { } // Represents the search status of a log stream. -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/SearchedLogStream type SearchedLogStream struct { _ struct{} `type:"structure"` @@ -7186,7 +7111,6 @@ func (s *SearchedLogStream) SetSearchedCompletely(v bool) *SearchedLogStream { } // Represents a subscription filter. -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/SubscriptionFilter type SubscriptionFilter struct { _ struct{} `type:"structure"` @@ -7268,7 +7192,6 @@ func (s *SubscriptionFilter) SetRoleArn(v string) *SubscriptionFilter { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/TagLogGroupRequest type TagLogGroupInput struct { _ struct{} `type:"structure"` @@ -7327,7 +7250,6 @@ func (s *TagLogGroupInput) SetTags(v map[string]*string) *TagLogGroupInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/TagLogGroupOutput type TagLogGroupOutput struct { _ struct{} `type:"structure"` } @@ -7342,7 +7264,6 @@ func (s TagLogGroupOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/TestMetricFilterRequest type TestMetricFilterInput struct { _ struct{} `type:"structure"` @@ -7401,7 +7322,6 @@ func (s *TestMetricFilterInput) SetLogEventMessages(v []*string) *TestMetricFilt return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/TestMetricFilterResponse type TestMetricFilterOutput struct { _ struct{} `type:"structure"` @@ -7425,7 +7345,6 @@ func (s *TestMetricFilterOutput) SetMatches(v []*MetricFilterMatchRecord) *TestM return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/UntagLogGroupRequest type UntagLogGroupInput struct { _ struct{} `type:"structure"` @@ -7484,7 +7403,6 @@ func (s *UntagLogGroupInput) SetTags(v []*string) *UntagLogGroupInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/logs-2014-03-28/UntagLogGroupOutput type UntagLogGroupOutput struct { _ struct{} `type:"structure"` } diff --git a/vendor/github.com/aws/aws-sdk-go/service/codebuild/api.go b/vendor/github.com/aws/aws-sdk-go/service/codebuild/api.go index 3087aecde..433c34bff 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/codebuild/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/codebuild/api.go @@ -1247,7 +1247,6 @@ func (c *CodeBuild) UpdateProjectWithContext(ctx aws.Context, input *UpdateProje return out, req.Send() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/BatchDeleteBuildsInput type BatchDeleteBuildsInput struct { _ struct{} `type:"structure"` @@ -1289,7 +1288,6 @@ func (s *BatchDeleteBuildsInput) SetIds(v []*string) *BatchDeleteBuildsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/BatchDeleteBuildsOutput type BatchDeleteBuildsOutput struct { _ struct{} `type:"structure"` @@ -1322,7 +1320,6 @@ func (s *BatchDeleteBuildsOutput) SetBuildsNotDeleted(v []*BuildNotDeleted) *Bat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/BatchGetBuildsInput type BatchGetBuildsInput struct { _ struct{} `type:"structure"` @@ -1364,7 +1361,6 @@ func (s *BatchGetBuildsInput) SetIds(v []*string) *BatchGetBuildsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/BatchGetBuildsOutput type BatchGetBuildsOutput struct { _ struct{} `type:"structure"` @@ -1397,7 +1393,6 @@ func (s *BatchGetBuildsOutput) SetBuildsNotFound(v []*string) *BatchGetBuildsOut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/BatchGetProjectsInput type BatchGetProjectsInput struct { _ struct{} `type:"structure"` @@ -1439,7 +1434,6 @@ func (s *BatchGetProjectsInput) SetNames(v []*string) *BatchGetProjectsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/BatchGetProjectsOutput type BatchGetProjectsOutput struct { _ struct{} `type:"structure"` @@ -1473,7 +1467,6 @@ func (s *BatchGetProjectsOutput) SetProjectsNotFound(v []*string) *BatchGetProje } // Information about a build. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/Build type Build struct { _ struct{} `type:"structure"` @@ -1686,7 +1679,6 @@ func (s *Build) SetVpcConfig(v *VpcConfig) *Build { } // Information about build output artifacts. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/BuildArtifacts type BuildArtifacts struct { _ struct{} `type:"structure"` @@ -1741,7 +1733,6 @@ func (s *BuildArtifacts) SetSha256sum(v string) *BuildArtifacts { } // Information about a build that could not be successfully deleted. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/BuildNotDeleted type BuildNotDeleted struct { _ struct{} `type:"structure"` @@ -1775,7 +1766,6 @@ func (s *BuildNotDeleted) SetStatusCode(v string) *BuildNotDeleted { } // Information about a stage for a build. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/BuildPhase type BuildPhase struct { _ struct{} `type:"structure"` @@ -1879,7 +1869,6 @@ func (s *BuildPhase) SetStartTime(v time.Time) *BuildPhase { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/CreateProjectInput type CreateProjectInput struct { _ struct{} `type:"structure"` @@ -2092,7 +2081,6 @@ func (s *CreateProjectInput) SetVpcConfig(v *VpcConfig) *CreateProjectInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/CreateProjectOutput type CreateProjectOutput struct { _ struct{} `type:"structure"` @@ -2116,7 +2104,6 @@ func (s *CreateProjectOutput) SetProject(v *Project) *CreateProjectOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/CreateWebhookInput type CreateWebhookInput struct { _ struct{} `type:"structure"` @@ -2158,7 +2145,6 @@ func (s *CreateWebhookInput) SetProjectName(v string) *CreateWebhookInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/CreateWebhookOutput type CreateWebhookOutput struct { _ struct{} `type:"structure"` @@ -2183,7 +2169,6 @@ func (s *CreateWebhookOutput) SetWebhook(v *Webhook) *CreateWebhookOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/DeleteProjectInput type DeleteProjectInput struct { _ struct{} `type:"structure"` @@ -2225,7 +2210,6 @@ func (s *DeleteProjectInput) SetName(v string) *DeleteProjectInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/DeleteProjectOutput type DeleteProjectOutput struct { _ struct{} `type:"structure"` } @@ -2240,7 +2224,6 @@ func (s DeleteProjectOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/DeleteWebhookInput type DeleteWebhookInput struct { _ struct{} `type:"structure"` @@ -2282,7 +2265,6 @@ func (s *DeleteWebhookInput) SetProjectName(v string) *DeleteWebhookInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/DeleteWebhookOutput type DeleteWebhookOutput struct { _ struct{} `type:"structure"` } @@ -2298,7 +2280,6 @@ func (s DeleteWebhookOutput) GoString() string { } // Information about a Docker image that is managed by AWS CodeBuild. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/EnvironmentImage type EnvironmentImage struct { _ struct{} `type:"structure"` @@ -2342,7 +2323,6 @@ func (s *EnvironmentImage) SetVersions(v []*string) *EnvironmentImage { // A set of Docker images that are related by programming language and are managed // by AWS CodeBuild. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/EnvironmentLanguage type EnvironmentLanguage struct { _ struct{} `type:"structure"` @@ -2377,7 +2357,6 @@ func (s *EnvironmentLanguage) SetLanguage(v string) *EnvironmentLanguage { // A set of Docker images that are related by platform and are managed by AWS // CodeBuild. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/EnvironmentPlatform type EnvironmentPlatform struct { _ struct{} `type:"structure"` @@ -2411,7 +2390,6 @@ func (s *EnvironmentPlatform) SetPlatform(v string) *EnvironmentPlatform { } // Information about an environment variable for a build project or a build. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/EnvironmentVariable type EnvironmentVariable struct { _ struct{} `type:"structure"` @@ -2486,7 +2464,6 @@ func (s *EnvironmentVariable) SetValue(v string) *EnvironmentVariable { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/InvalidateProjectCacheInput type InvalidateProjectCacheInput struct { _ struct{} `type:"structure"` @@ -2528,7 +2505,6 @@ func (s *InvalidateProjectCacheInput) SetProjectName(v string) *InvalidateProjec return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/InvalidateProjectCacheOutput type InvalidateProjectCacheOutput struct { _ struct{} `type:"structure"` } @@ -2543,7 +2519,6 @@ func (s InvalidateProjectCacheOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/ListBuildsForProjectInput type ListBuildsForProjectInput struct { _ struct{} `type:"structure"` @@ -2612,7 +2587,6 @@ func (s *ListBuildsForProjectInput) SetSortOrder(v string) *ListBuildsForProject return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/ListBuildsForProjectOutput type ListBuildsForProjectOutput struct { _ struct{} `type:"structure"` @@ -2649,7 +2623,6 @@ func (s *ListBuildsForProjectOutput) SetNextToken(v string) *ListBuildsForProjec return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/ListBuildsInput type ListBuildsInput struct { _ struct{} `type:"structure"` @@ -2691,7 +2664,6 @@ func (s *ListBuildsInput) SetSortOrder(v string) *ListBuildsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/ListBuildsOutput type ListBuildsOutput struct { _ struct{} `type:"structure"` @@ -2727,7 +2699,6 @@ func (s *ListBuildsOutput) SetNextToken(v string) *ListBuildsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/ListCuratedEnvironmentImagesInput type ListCuratedEnvironmentImagesInput struct { _ struct{} `type:"structure"` } @@ -2742,7 +2713,6 @@ func (s ListCuratedEnvironmentImagesInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/ListCuratedEnvironmentImagesOutput type ListCuratedEnvironmentImagesOutput struct { _ struct{} `type:"structure"` @@ -2767,7 +2737,6 @@ func (s *ListCuratedEnvironmentImagesOutput) SetPlatforms(v []*EnvironmentPlatfo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/ListProjectsInput type ListProjectsInput struct { _ struct{} `type:"structure"` @@ -2844,7 +2813,6 @@ func (s *ListProjectsInput) SetSortOrder(v string) *ListProjectsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/ListProjectsOutput type ListProjectsOutput struct { _ struct{} `type:"structure"` @@ -2882,7 +2850,6 @@ func (s *ListProjectsOutput) SetProjects(v []*string) *ListProjectsOutput { } // Information about build logs in Amazon CloudWatch Logs. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/LogsLocation type LogsLocation struct { _ struct{} `type:"structure"` @@ -2925,7 +2892,6 @@ func (s *LogsLocation) SetStreamName(v string) *LogsLocation { } // Describes a network interface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/NetworkInterface type NetworkInterface struct { _ struct{} `type:"structure"` @@ -2960,7 +2926,6 @@ func (s *NetworkInterface) SetSubnetId(v string) *NetworkInterface { // Additional information about a build phase that has an error. You can use // this information to help troubleshoot a failed build. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/PhaseContext type PhaseContext struct { _ struct{} `type:"structure"` @@ -2995,7 +2960,6 @@ func (s *PhaseContext) SetStatusCode(v string) *PhaseContext { } // Information about a build project. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/Project type Project struct { _ struct{} `type:"structure"` @@ -3168,7 +3132,6 @@ func (s *Project) SetWebhook(v *Webhook) *Project { } // Information about the build output artifacts for the build project. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/ProjectArtifacts type ProjectArtifacts struct { _ struct{} `type:"structure"` @@ -3333,7 +3296,6 @@ func (s *ProjectArtifacts) SetType(v string) *ProjectArtifacts { } // Information about the build badge for the build project. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/ProjectBadge type ProjectBadge struct { _ struct{} `type:"structure"` @@ -3369,7 +3331,6 @@ func (s *ProjectBadge) SetBadgeRequestUrl(v string) *ProjectBadge { } // Information about the cache for the build project. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/ProjectCache type ProjectCache struct { _ struct{} `type:"structure"` @@ -3426,7 +3387,6 @@ func (s *ProjectCache) SetType(v string) *ProjectCache { } // Information about the build environment of the build project. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/ProjectEnvironment type ProjectEnvironment struct { _ struct{} `type:"structure"` @@ -3556,7 +3516,6 @@ func (s *ProjectEnvironment) SetType(v string) *ProjectEnvironment { } // Information about the build input source code for the build project. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/ProjectSource type ProjectSource struct { _ struct{} `type:"structure"` @@ -3711,7 +3670,6 @@ func (s *ProjectSource) SetType(v string) *ProjectSource { // This information is for the AWS CodeBuild console's use only. Your code should // not get or set this information directly (unless the build project's source // type value is BITBUCKET or GITHUB). -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/SourceAuth type SourceAuth struct { _ struct{} `type:"structure"` @@ -3760,7 +3718,6 @@ func (s *SourceAuth) SetType(v string) *SourceAuth { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/StartBuildInput type StartBuildInput struct { _ struct{} `type:"structure"` @@ -3897,7 +3854,6 @@ func (s *StartBuildInput) SetTimeoutInMinutesOverride(v int64) *StartBuildInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/StartBuildOutput type StartBuildOutput struct { _ struct{} `type:"structure"` @@ -3921,7 +3877,6 @@ func (s *StartBuildOutput) SetBuild(v *Build) *StartBuildOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/StopBuildInput type StopBuildInput struct { _ struct{} `type:"structure"` @@ -3963,7 +3918,6 @@ func (s *StopBuildInput) SetId(v string) *StopBuildInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/StopBuildOutput type StopBuildOutput struct { _ struct{} `type:"structure"` @@ -3990,7 +3944,6 @@ func (s *StopBuildOutput) SetBuild(v *Build) *StopBuildOutput { // A tag, consisting of a key and a value. // // This tag is available for use by AWS services that support tags in AWS CodeBuild. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/Tag type Tag struct { _ struct{} `type:"structure"` @@ -4039,7 +3992,6 @@ func (s *Tag) SetValue(v string) *Tag { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/UpdateProjectInput type UpdateProjectInput struct { _ struct{} `type:"structure"` @@ -4240,7 +4192,6 @@ func (s *UpdateProjectInput) SetVpcConfig(v *VpcConfig) *UpdateProjectInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/UpdateProjectOutput type UpdateProjectOutput struct { _ struct{} `type:"structure"` @@ -4265,7 +4216,6 @@ func (s *UpdateProjectOutput) SetProject(v *Project) *UpdateProjectOutput { } // Information about the VPC configuration that AWS CodeBuild will access. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/VpcConfig type VpcConfig struct { _ struct{} `type:"structure"` @@ -4322,7 +4272,6 @@ func (s *VpcConfig) SetVpcId(v string) *VpcConfig { // Information about a webhook in GitHub that connects repository events to // a build project in AWS CodeBuild. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codebuild-2016-10-06/Webhook type Webhook struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/codecommit/api.go b/vendor/github.com/aws/aws-sdk-go/service/codecommit/api.go index a97e4c7e8..c8d885d6d 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/codecommit/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/codecommit/api.go @@ -4584,7 +4584,6 @@ func (c *CodeCommit) UpdateRepositoryNameWithContext(ctx aws.Context, input *Upd } // Represents the input of a batch get repositories operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/BatchGetRepositoriesInput type BatchGetRepositoriesInput struct { _ struct{} `type:"structure"` @@ -4624,7 +4623,6 @@ func (s *BatchGetRepositoriesInput) SetRepositoryNames(v []*string) *BatchGetRep } // Represents the output of a batch get repositories operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/BatchGetRepositoriesOutput type BatchGetRepositoriesOutput struct { _ struct{} `type:"structure"` @@ -4658,7 +4656,6 @@ func (s *BatchGetRepositoriesOutput) SetRepositoriesNotFound(v []*string) *Batch } // Returns information about a specific Git blob object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/BlobMetadata type BlobMetadata struct { _ struct{} `type:"structure"` @@ -4709,7 +4706,6 @@ func (s *BlobMetadata) SetPath(v string) *BlobMetadata { } // Returns information about a branch. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/BranchInfo type BranchInfo struct { _ struct{} `type:"structure"` @@ -4743,7 +4739,6 @@ func (s *BranchInfo) SetCommitId(v string) *BranchInfo { } // Returns information about a specific comment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/Comment type Comment struct { _ struct{} `type:"structure"` @@ -4834,7 +4829,6 @@ func (s *Comment) SetLastModifiedDate(v time.Time) *Comment { } // Returns information about comments on the comparison between two commits. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/CommentsForComparedCommit type CommentsForComparedCommit struct { _ struct{} `type:"structure"` @@ -4916,7 +4910,6 @@ func (s *CommentsForComparedCommit) SetRepositoryName(v string) *CommentsForComp } // Returns information about comments on a pull request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/CommentsForPullRequest type CommentsForPullRequest struct { _ struct{} `type:"structure"` @@ -5012,7 +5005,6 @@ func (s *CommentsForPullRequest) SetRepositoryName(v string) *CommentsForPullReq } // Returns information about a specific commit. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/Commit type Commit struct { _ struct{} `type:"structure"` @@ -5100,7 +5092,6 @@ func (s *Commit) SetTreeId(v string) *Commit { } // Represents the input of a create branch operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/CreateBranchInput type CreateBranchInput struct { _ struct{} `type:"structure"` @@ -5173,7 +5164,6 @@ func (s *CreateBranchInput) SetRepositoryName(v string) *CreateBranchInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/CreateBranchOutput type CreateBranchOutput struct { _ struct{} `type:"structure"` } @@ -5188,7 +5178,6 @@ func (s CreateBranchOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/CreatePullRequestInput type CreatePullRequestInput struct { _ struct{} `type:"structure"` @@ -5279,7 +5268,6 @@ func (s *CreatePullRequestInput) SetTitle(v string) *CreatePullRequestInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/CreatePullRequestOutput type CreatePullRequestOutput struct { _ struct{} `type:"structure"` @@ -5306,7 +5294,6 @@ func (s *CreatePullRequestOutput) SetPullRequest(v *PullRequest) *CreatePullRequ } // Represents the input of a create repository operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/CreateRepositoryInput type CreateRepositoryInput struct { _ struct{} `type:"structure"` @@ -5370,7 +5357,6 @@ func (s *CreateRepositoryInput) SetRepositoryName(v string) *CreateRepositoryInp } // Represents the output of a create repository operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/CreateRepositoryOutput type CreateRepositoryOutput struct { _ struct{} `type:"structure"` @@ -5395,7 +5381,6 @@ func (s *CreateRepositoryOutput) SetRepositoryMetadata(v *RepositoryMetadata) *C } // Represents the input of a delete branch operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/DeleteBranchInput type DeleteBranchInput struct { _ struct{} `type:"structure"` @@ -5455,7 +5440,6 @@ func (s *DeleteBranchInput) SetRepositoryName(v string) *DeleteBranchInput { } // Represents the output of a delete branch operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/DeleteBranchOutput type DeleteBranchOutput struct { _ struct{} `type:"structure"` @@ -5480,7 +5464,6 @@ func (s *DeleteBranchOutput) SetDeletedBranch(v *BranchInfo) *DeleteBranchOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/DeleteCommentContentInput type DeleteCommentContentInput struct { _ struct{} `type:"structure"` @@ -5520,7 +5503,6 @@ func (s *DeleteCommentContentInput) SetCommentId(v string) *DeleteCommentContent return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/DeleteCommentContentOutput type DeleteCommentContentOutput struct { _ struct{} `type:"structure"` @@ -5545,7 +5527,6 @@ func (s *DeleteCommentContentOutput) SetComment(v *Comment) *DeleteCommentConten } // Represents the input of a delete repository operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/DeleteRepositoryInput type DeleteRepositoryInput struct { _ struct{} `type:"structure"` @@ -5588,7 +5569,6 @@ func (s *DeleteRepositoryInput) SetRepositoryName(v string) *DeleteRepositoryInp } // Represents the output of a delete repository operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/DeleteRepositoryOutput type DeleteRepositoryOutput struct { _ struct{} `type:"structure"` @@ -5612,7 +5592,6 @@ func (s *DeleteRepositoryOutput) SetRepositoryId(v string) *DeleteRepositoryOutp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/DescribePullRequestEventsInput type DescribePullRequestEventsInput struct { _ struct{} `type:"structure"` @@ -5692,7 +5671,6 @@ func (s *DescribePullRequestEventsInput) SetPullRequestId(v string) *DescribePul return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/DescribePullRequestEventsOutput type DescribePullRequestEventsOutput struct { _ struct{} `type:"structure"` @@ -5729,7 +5707,6 @@ func (s *DescribePullRequestEventsOutput) SetPullRequestEvents(v []*PullRequestE } // Returns information about a set of differences for a commit specifier. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/Difference type Difference struct { _ struct{} `type:"structure"` @@ -5775,7 +5752,6 @@ func (s *Difference) SetChangeType(v string) *Difference { } // Represents the input of a get blob operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetBlobInput type GetBlobInput struct { _ struct{} `type:"structure"` @@ -5832,7 +5808,6 @@ func (s *GetBlobInput) SetRepositoryName(v string) *GetBlobInput { } // Represents the output of a get blob operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetBlobOutput type GetBlobOutput struct { _ struct{} `type:"structure"` @@ -5861,7 +5836,6 @@ func (s *GetBlobOutput) SetContent(v []byte) *GetBlobOutput { } // Represents the input of a get branch operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetBranchInput type GetBranchInput struct { _ struct{} `type:"structure"` @@ -5912,7 +5886,6 @@ func (s *GetBranchInput) SetRepositoryName(v string) *GetBranchInput { } // Represents the output of a get branch operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetBranchOutput type GetBranchOutput struct { _ struct{} `type:"structure"` @@ -5936,7 +5909,6 @@ func (s *GetBranchOutput) SetBranch(v *BranchInfo) *GetBranchOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetCommentInput type GetCommentInput struct { _ struct{} `type:"structure"` @@ -5976,7 +5948,6 @@ func (s *GetCommentInput) SetCommentId(v string) *GetCommentInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetCommentOutput type GetCommentOutput struct { _ struct{} `type:"structure"` @@ -6000,7 +5971,6 @@ func (s *GetCommentOutput) SetComment(v *Comment) *GetCommentOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetCommentsForComparedCommitInput type GetCommentsForComparedCommitInput struct { _ struct{} `type:"structure"` @@ -6087,7 +6057,6 @@ func (s *GetCommentsForComparedCommitInput) SetRepositoryName(v string) *GetComm return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetCommentsForComparedCommitOutput type GetCommentsForComparedCommitOutput struct { _ struct{} `type:"structure"` @@ -6121,7 +6090,6 @@ func (s *GetCommentsForComparedCommitOutput) SetNextToken(v string) *GetComments return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetCommentsForPullRequestInput type GetCommentsForPullRequestInput struct { _ struct{} `type:"structure"` @@ -6213,7 +6181,6 @@ func (s *GetCommentsForPullRequestInput) SetRepositoryName(v string) *GetComment return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetCommentsForPullRequestOutput type GetCommentsForPullRequestOutput struct { _ struct{} `type:"structure"` @@ -6248,7 +6215,6 @@ func (s *GetCommentsForPullRequestOutput) SetNextToken(v string) *GetCommentsFor } // Represents the input of a get commit operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetCommitInput type GetCommitInput struct { _ struct{} `type:"structure"` @@ -6305,7 +6271,6 @@ func (s *GetCommitInput) SetRepositoryName(v string) *GetCommitInput { } // Represents the output of a get commit operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetCommitOutput type GetCommitOutput struct { _ struct{} `type:"structure"` @@ -6331,7 +6296,6 @@ func (s *GetCommitOutput) SetCommit(v *Commit) *GetCommitOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetDifferencesInput type GetDifferencesInput struct { _ struct{} `type:"structure"` @@ -6443,7 +6407,6 @@ func (s *GetDifferencesInput) SetRepositoryName(v string) *GetDifferencesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetDifferencesOutput type GetDifferencesOutput struct { _ struct{} `type:"structure"` @@ -6478,7 +6441,6 @@ func (s *GetDifferencesOutput) SetNextToken(v string) *GetDifferencesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetMergeConflictsInput type GetMergeConflictsInput struct { _ struct{} `type:"structure"` @@ -6565,7 +6527,6 @@ func (s *GetMergeConflictsInput) SetSourceCommitSpecifier(v string) *GetMergeCon return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetMergeConflictsOutput type GetMergeConflictsOutput struct { _ struct{} `type:"structure"` @@ -6615,7 +6576,6 @@ func (s *GetMergeConflictsOutput) SetSourceCommitId(v string) *GetMergeConflicts return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetPullRequestInput type GetPullRequestInput struct { _ struct{} `type:"structure"` @@ -6654,7 +6614,6 @@ func (s *GetPullRequestInput) SetPullRequestId(v string) *GetPullRequestInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetPullRequestOutput type GetPullRequestOutput struct { _ struct{} `type:"structure"` @@ -6681,7 +6640,6 @@ func (s *GetPullRequestOutput) SetPullRequest(v *PullRequest) *GetPullRequestOut } // Represents the input of a get repository operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetRepositoryInput type GetRepositoryInput struct { _ struct{} `type:"structure"` @@ -6724,7 +6682,6 @@ func (s *GetRepositoryInput) SetRepositoryName(v string) *GetRepositoryInput { } // Represents the output of a get repository operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetRepositoryOutput type GetRepositoryOutput struct { _ struct{} `type:"structure"` @@ -6749,7 +6706,6 @@ func (s *GetRepositoryOutput) SetRepositoryMetadata(v *RepositoryMetadata) *GetR } // Represents the input of a get repository triggers operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetRepositoryTriggersInput type GetRepositoryTriggersInput struct { _ struct{} `type:"structure"` @@ -6792,7 +6748,6 @@ func (s *GetRepositoryTriggersInput) SetRepositoryName(v string) *GetRepositoryT } // Represents the output of a get repository triggers operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/GetRepositoryTriggersOutput type GetRepositoryTriggersOutput struct { _ struct{} `type:"structure"` @@ -6826,7 +6781,6 @@ func (s *GetRepositoryTriggersOutput) SetTriggers(v []*RepositoryTrigger) *GetRe } // Represents the input of a list branches operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/ListBranchesInput type ListBranchesInput struct { _ struct{} `type:"structure"` @@ -6878,7 +6832,6 @@ func (s *ListBranchesInput) SetRepositoryName(v string) *ListBranchesInput { } // Represents the output of a list branches operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/ListBranchesOutput type ListBranchesOutput struct { _ struct{} `type:"structure"` @@ -6911,7 +6864,6 @@ func (s *ListBranchesOutput) SetNextToken(v string) *ListBranchesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/ListPullRequestsInput type ListPullRequestsInput struct { _ struct{} `type:"structure"` @@ -6993,7 +6945,6 @@ func (s *ListPullRequestsInput) SetRepositoryName(v string) *ListPullRequestsInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/ListPullRequestsOutput type ListPullRequestsOutput struct { _ struct{} `type:"structure"` @@ -7030,7 +6981,6 @@ func (s *ListPullRequestsOutput) SetPullRequestIds(v []*string) *ListPullRequest } // Represents the input of a list repositories operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/ListRepositoriesInput type ListRepositoriesInput struct { _ struct{} `type:"structure"` @@ -7076,7 +7026,6 @@ func (s *ListRepositoriesInput) SetSortBy(v string) *ListRepositoriesInput { } // Represents the output of a list repositories operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/ListRepositoriesOutput type ListRepositoriesOutput struct { _ struct{} `type:"structure"` @@ -7114,7 +7063,6 @@ func (s *ListRepositoriesOutput) SetRepositories(v []*RepositoryNameIdPair) *Lis // Returns information about the location of a change or comment in the comparison // between two commits or a pull request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/Location type Location struct { _ struct{} `type:"structure"` @@ -7160,7 +7108,6 @@ func (s *Location) SetRelativeFileVersion(v string) *Location { // Returns information about a merge or potential merge between a source reference // and a destination reference in a pull request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/MergeMetadata type MergeMetadata struct { _ struct{} `type:"structure"` @@ -7193,7 +7140,6 @@ func (s *MergeMetadata) SetMergedBy(v string) *MergeMetadata { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/MergePullRequestByFastForwardInput type MergePullRequestByFastForwardInput struct { _ struct{} `type:"structure"` @@ -7260,7 +7206,6 @@ func (s *MergePullRequestByFastForwardInput) SetSourceCommitId(v string) *MergeP return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/MergePullRequestByFastForwardOutput type MergePullRequestByFastForwardOutput struct { _ struct{} `type:"structure"` @@ -7285,7 +7230,6 @@ func (s *MergePullRequestByFastForwardOutput) SetPullRequest(v *PullRequest) *Me return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/PostCommentForComparedCommitInput type PostCommentForComparedCommitInput struct { _ struct{} `type:"structure"` @@ -7388,7 +7332,6 @@ func (s *PostCommentForComparedCommitInput) SetRepositoryName(v string) *PostCom return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/PostCommentForComparedCommitOutput type PostCommentForComparedCommitOutput struct { _ struct{} `type:"structure"` @@ -7469,7 +7412,6 @@ func (s *PostCommentForComparedCommitOutput) SetRepositoryName(v string) *PostCo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/PostCommentForPullRequestInput type PostCommentForPullRequestInput struct { _ struct{} `type:"structure"` @@ -7592,7 +7534,6 @@ func (s *PostCommentForPullRequestInput) SetRepositoryName(v string) *PostCommen return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/PostCommentForPullRequestOutput type PostCommentForPullRequestOutput struct { _ struct{} `type:"structure"` @@ -7682,7 +7623,6 @@ func (s *PostCommentForPullRequestOutput) SetRepositoryName(v string) *PostComme return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/PostCommentReplyInput type PostCommentReplyInput struct { _ struct{} `type:"structure"` @@ -7748,7 +7688,6 @@ func (s *PostCommentReplyInput) SetInReplyTo(v string) *PostCommentReplyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/PostCommentReplyOutput type PostCommentReplyOutput struct { _ struct{} `type:"structure"` @@ -7773,7 +7712,6 @@ func (s *PostCommentReplyOutput) SetComment(v *Comment) *PostCommentReplyOutput } // Returns information about a pull request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/PullRequest type PullRequest struct { _ struct{} `type:"structure"` @@ -7878,7 +7816,6 @@ func (s *PullRequest) SetTitle(v string) *PullRequest { } // Returns information about a pull request event. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/PullRequestEvent type PullRequestEvent struct { _ struct{} `type:"structure"` @@ -7961,7 +7898,6 @@ func (s *PullRequestEvent) SetPullRequestStatusChangedEventMetadata(v *PullReque // Returns information about the change in the merge state for a pull request // event. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/PullRequestMergedStateChangedEventMetadata type PullRequestMergedStateChangedEventMetadata struct { _ struct{} `type:"structure"` @@ -8004,7 +7940,6 @@ func (s *PullRequestMergedStateChangedEventMetadata) SetRepositoryName(v string) } // Information about an update to the source branch of a pull request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/PullRequestSourceReferenceUpdatedEventMetadata type PullRequestSourceReferenceUpdatedEventMetadata struct { _ struct{} `type:"structure"` @@ -8049,7 +7984,6 @@ func (s *PullRequestSourceReferenceUpdatedEventMetadata) SetRepositoryName(v str } // Information about a change to the status of a pull request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/PullRequestStatusChangedEventMetadata type PullRequestStatusChangedEventMetadata struct { _ struct{} `type:"structure"` @@ -8074,7 +8008,6 @@ func (s *PullRequestStatusChangedEventMetadata) SetPullRequestStatus(v string) * } // Returns information about a pull request target. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/PullRequestTarget type PullRequestTarget struct { _ struct{} `type:"structure"` @@ -8151,7 +8084,6 @@ func (s *PullRequestTarget) SetSourceReference(v string) *PullRequestTarget { } // Represents the input ofa put repository triggers operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/PutRepositoryTriggersInput type PutRepositoryTriggersInput struct { _ struct{} `type:"structure"` @@ -8218,7 +8150,6 @@ func (s *PutRepositoryTriggersInput) SetTriggers(v []*RepositoryTrigger) *PutRep } // Represents the output of a put repository triggers operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/PutRepositoryTriggersOutput type PutRepositoryTriggersOutput struct { _ struct{} `type:"structure"` @@ -8243,7 +8174,6 @@ func (s *PutRepositoryTriggersOutput) SetConfigurationId(v string) *PutRepositor } // Information about a repository. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/RepositoryMetadata type RepositoryMetadata struct { _ struct{} `type:"structure"` @@ -8349,7 +8279,6 @@ func (s *RepositoryMetadata) SetRepositoryName(v string) *RepositoryMetadata { } // Information about a repository name and ID. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/RepositoryNameIdPair type RepositoryNameIdPair struct { _ struct{} `type:"structure"` @@ -8383,7 +8312,6 @@ func (s *RepositoryNameIdPair) SetRepositoryName(v string) *RepositoryNameIdPair } // Information about a trigger for a repository. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/RepositoryTrigger type RepositoryTrigger struct { _ struct{} `type:"structure"` @@ -8478,7 +8406,6 @@ func (s *RepositoryTrigger) SetName(v string) *RepositoryTrigger { } // A trigger failed to run. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/RepositoryTriggerExecutionFailure type RepositoryTriggerExecutionFailure struct { _ struct{} `type:"structure"` @@ -8512,7 +8439,6 @@ func (s *RepositoryTriggerExecutionFailure) SetTrigger(v string) *RepositoryTrig } // Returns information about a target for a pull request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/Target type Target struct { _ struct{} `type:"structure"` @@ -8580,7 +8506,6 @@ func (s *Target) SetSourceReference(v string) *Target { } // Represents the input of a test repository triggers operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/TestRepositoryTriggersInput type TestRepositoryTriggersInput struct { _ struct{} `type:"structure"` @@ -8647,7 +8572,6 @@ func (s *TestRepositoryTriggersInput) SetTriggers(v []*RepositoryTrigger) *TestR } // Represents the output of a test repository triggers operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/TestRepositoryTriggersOutput type TestRepositoryTriggersOutput struct { _ struct{} `type:"structure"` @@ -8682,7 +8606,6 @@ func (s *TestRepositoryTriggersOutput) SetSuccessfulExecutions(v []*string) *Tes return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/UpdateCommentInput type UpdateCommentInput struct { _ struct{} `type:"structure"` @@ -8737,7 +8660,6 @@ func (s *UpdateCommentInput) SetContent(v string) *UpdateCommentInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/UpdateCommentOutput type UpdateCommentOutput struct { _ struct{} `type:"structure"` @@ -8762,7 +8684,6 @@ func (s *UpdateCommentOutput) SetComment(v *Comment) *UpdateCommentOutput { } // Represents the input of an update default branch operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/UpdateDefaultBranchInput type UpdateDefaultBranchInput struct { _ struct{} `type:"structure"` @@ -8821,7 +8742,6 @@ func (s *UpdateDefaultBranchInput) SetRepositoryName(v string) *UpdateDefaultBra return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/UpdateDefaultBranchOutput type UpdateDefaultBranchOutput struct { _ struct{} `type:"structure"` } @@ -8836,7 +8756,6 @@ func (s UpdateDefaultBranchOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/UpdatePullRequestDescriptionInput type UpdatePullRequestDescriptionInput struct { _ struct{} `type:"structure"` @@ -8890,7 +8809,6 @@ func (s *UpdatePullRequestDescriptionInput) SetPullRequestId(v string) *UpdatePu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/UpdatePullRequestDescriptionOutput type UpdatePullRequestDescriptionOutput struct { _ struct{} `type:"structure"` @@ -8916,7 +8834,6 @@ func (s *UpdatePullRequestDescriptionOutput) SetPullRequest(v *PullRequest) *Upd return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/UpdatePullRequestStatusInput type UpdatePullRequestStatusInput struct { _ struct{} `type:"structure"` @@ -8970,7 +8887,6 @@ func (s *UpdatePullRequestStatusInput) SetPullRequestStatus(v string) *UpdatePul return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/UpdatePullRequestStatusOutput type UpdatePullRequestStatusOutput struct { _ struct{} `type:"structure"` @@ -8996,7 +8912,6 @@ func (s *UpdatePullRequestStatusOutput) SetPullRequest(v *PullRequest) *UpdatePu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/UpdatePullRequestTitleInput type UpdatePullRequestTitleInput struct { _ struct{} `type:"structure"` @@ -9049,7 +8964,6 @@ func (s *UpdatePullRequestTitleInput) SetTitle(v string) *UpdatePullRequestTitle return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/UpdatePullRequestTitleOutput type UpdatePullRequestTitleOutput struct { _ struct{} `type:"structure"` @@ -9076,7 +8990,6 @@ func (s *UpdatePullRequestTitleOutput) SetPullRequest(v *PullRequest) *UpdatePul } // Represents the input of an update repository description operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/UpdateRepositoryDescriptionInput type UpdateRepositoryDescriptionInput struct { _ struct{} `type:"structure"` @@ -9128,7 +9041,6 @@ func (s *UpdateRepositoryDescriptionInput) SetRepositoryName(v string) *UpdateRe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/UpdateRepositoryDescriptionOutput type UpdateRepositoryDescriptionOutput struct { _ struct{} `type:"structure"` } @@ -9144,7 +9056,6 @@ func (s UpdateRepositoryDescriptionOutput) GoString() string { } // Represents the input of an update repository description operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/UpdateRepositoryNameInput type UpdateRepositoryNameInput struct { _ struct{} `type:"structure"` @@ -9203,7 +9114,6 @@ func (s *UpdateRepositoryNameInput) SetOldName(v string) *UpdateRepositoryNameIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/UpdateRepositoryNameOutput type UpdateRepositoryNameOutput struct { _ struct{} `type:"structure"` } @@ -9219,7 +9129,6 @@ func (s UpdateRepositoryNameOutput) GoString() string { } // Information about the user who made a specified commit. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codecommit-2015-04-13/UserInfo type UserInfo struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/codedeploy/api.go b/vendor/github.com/aws/aws-sdk-go/service/codedeploy/api.go index 838f695ec..52ad4bf9f 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/codedeploy/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/codedeploy/api.go @@ -4295,7 +4295,6 @@ func (c *CodeDeploy) UpdateDeploymentGroupWithContext(ctx aws.Context, input *Up } // Represents the input of, and adds tags to, an on-premises instance operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/AddTagsToOnPremisesInstancesInput type AddTagsToOnPremisesInstancesInput struct { _ struct{} `type:"structure"` @@ -4351,7 +4350,6 @@ func (s *AddTagsToOnPremisesInstancesInput) SetTags(v []*Tag) *AddTagsToOnPremis return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/AddTagsToOnPremisesInstancesOutput type AddTagsToOnPremisesInstancesOutput struct { _ struct{} `type:"structure"` } @@ -4367,7 +4365,6 @@ func (s AddTagsToOnPremisesInstancesOutput) GoString() string { } // Information about an alarm. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/Alarm type Alarm struct { _ struct{} `type:"structure"` @@ -4393,7 +4390,6 @@ func (s *Alarm) SetName(v string) *Alarm { } // Information about alarms associated with the deployment group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/AlarmConfiguration type AlarmConfiguration struct { _ struct{} `type:"structure"` @@ -4445,7 +4441,6 @@ func (s *AlarmConfiguration) SetIgnorePollAlarmFailure(v bool) *AlarmConfigurati } // Information about an application. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ApplicationInfo type ApplicationInfo struct { _ struct{} `type:"structure"` @@ -4518,7 +4513,6 @@ func (s *ApplicationInfo) SetLinkedToGitHub(v bool) *ApplicationInfo { // Information about a configuration for automatically rolling back to a previous // version of an application revision when a deployment doesn't complete successfully. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/AutoRollbackConfiguration type AutoRollbackConfiguration struct { _ struct{} `type:"structure"` @@ -4553,7 +4547,6 @@ func (s *AutoRollbackConfiguration) SetEvents(v []*string) *AutoRollbackConfigur } // Information about an Auto Scaling group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/AutoScalingGroup type AutoScalingGroup struct { _ struct{} `type:"structure"` @@ -4587,7 +4580,6 @@ func (s *AutoScalingGroup) SetName(v string) *AutoScalingGroup { } // Represents the input of a BatchGetApplicationRevisions operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/BatchGetApplicationRevisionsInput type BatchGetApplicationRevisionsInput struct { _ struct{} `type:"structure"` @@ -4644,7 +4636,6 @@ func (s *BatchGetApplicationRevisionsInput) SetRevisions(v []*RevisionLocation) } // Represents the output of a BatchGetApplicationRevisions operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/BatchGetApplicationRevisionsOutput type BatchGetApplicationRevisionsOutput struct { _ struct{} `type:"structure"` @@ -4687,7 +4678,6 @@ func (s *BatchGetApplicationRevisionsOutput) SetRevisions(v []*RevisionInfo) *Ba } // Represents the input of a BatchGetApplications operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/BatchGetApplicationsInput type BatchGetApplicationsInput struct { _ struct{} `type:"structure"` @@ -4727,7 +4717,6 @@ func (s *BatchGetApplicationsInput) SetApplicationNames(v []*string) *BatchGetAp } // Represents the output of a BatchGetApplications operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/BatchGetApplicationsOutput type BatchGetApplicationsOutput struct { _ struct{} `type:"structure"` @@ -4752,7 +4741,6 @@ func (s *BatchGetApplicationsOutput) SetApplicationsInfo(v []*ApplicationInfo) * } // Represents the input of a BatchGetDeploymentGroups operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/BatchGetDeploymentGroupsInput type BatchGetDeploymentGroupsInput struct { _ struct{} `type:"structure"` @@ -4810,7 +4798,6 @@ func (s *BatchGetDeploymentGroupsInput) SetDeploymentGroupNames(v []*string) *Ba } // Represents the output of a BatchGetDeploymentGroups operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/BatchGetDeploymentGroupsOutput type BatchGetDeploymentGroupsOutput struct { _ struct{} `type:"structure"` @@ -4844,7 +4831,6 @@ func (s *BatchGetDeploymentGroupsOutput) SetErrorMessage(v string) *BatchGetDepl } // Represents the input of a BatchGetDeploymentInstances operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/BatchGetDeploymentInstancesInput type BatchGetDeploymentInstancesInput struct { _ struct{} `type:"structure"` @@ -4898,7 +4884,6 @@ func (s *BatchGetDeploymentInstancesInput) SetInstanceIds(v []*string) *BatchGet } // Represents the output of a BatchGetDeploymentInstances operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/BatchGetDeploymentInstancesOutput type BatchGetDeploymentInstancesOutput struct { _ struct{} `type:"structure"` @@ -4932,7 +4917,6 @@ func (s *BatchGetDeploymentInstancesOutput) SetInstancesSummary(v []*InstanceSum } // Represents the input of a BatchGetDeployments operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/BatchGetDeploymentsInput type BatchGetDeploymentsInput struct { _ struct{} `type:"structure"` @@ -4972,7 +4956,6 @@ func (s *BatchGetDeploymentsInput) SetDeploymentIds(v []*string) *BatchGetDeploy } // Represents the output of a BatchGetDeployments operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/BatchGetDeploymentsOutput type BatchGetDeploymentsOutput struct { _ struct{} `type:"structure"` @@ -4997,7 +4980,6 @@ func (s *BatchGetDeploymentsOutput) SetDeploymentsInfo(v []*DeploymentInfo) *Bat } // Represents the input of a BatchGetOnPremisesInstances operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/BatchGetOnPremisesInstancesInput type BatchGetOnPremisesInstancesInput struct { _ struct{} `type:"structure"` @@ -5037,7 +5019,6 @@ func (s *BatchGetOnPremisesInstancesInput) SetInstanceNames(v []*string) *BatchG } // Represents the output of a BatchGetOnPremisesInstances operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/BatchGetOnPremisesInstancesOutput type BatchGetOnPremisesInstancesOutput struct { _ struct{} `type:"structure"` @@ -5062,7 +5043,6 @@ func (s *BatchGetOnPremisesInstancesOutput) SetInstanceInfos(v []*InstanceInfo) } // Information about blue/green deployment options for a deployment group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/BlueGreenDeploymentConfiguration type BlueGreenDeploymentConfiguration struct { _ struct{} `type:"structure"` @@ -5109,7 +5089,6 @@ func (s *BlueGreenDeploymentConfiguration) SetTerminateBlueInstancesOnDeployment // Information about whether instances in the original environment are terminated // when a blue/green deployment is successful. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/BlueInstanceTerminationOption type BlueInstanceTerminationOption struct { _ struct{} `type:"structure"` @@ -5149,7 +5128,6 @@ func (s *BlueInstanceTerminationOption) SetTerminationWaitTimeInMinutes(v int64) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ContinueDeploymentInput type ContinueDeploymentInput struct { _ struct{} `type:"structure"` @@ -5174,7 +5152,6 @@ func (s *ContinueDeploymentInput) SetDeploymentId(v string) *ContinueDeploymentI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ContinueDeploymentOutput type ContinueDeploymentOutput struct { _ struct{} `type:"structure"` } @@ -5190,7 +5167,6 @@ func (s ContinueDeploymentOutput) GoString() string { } // Represents the input of a CreateApplication operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/CreateApplicationInput type CreateApplicationInput struct { _ struct{} `type:"structure"` @@ -5243,7 +5219,6 @@ func (s *CreateApplicationInput) SetComputePlatform(v string) *CreateApplication } // Represents the output of a CreateApplication operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/CreateApplicationOutput type CreateApplicationOutput struct { _ struct{} `type:"structure"` @@ -5268,7 +5243,6 @@ func (s *CreateApplicationOutput) SetApplicationId(v string) *CreateApplicationO } // Represents the input of a CreateDeploymentConfig operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/CreateDeploymentConfigInput type CreateDeploymentConfigInput struct { _ struct{} `type:"structure"` @@ -5356,7 +5330,6 @@ func (s *CreateDeploymentConfigInput) SetTrafficRoutingConfig(v *TrafficRoutingC } // Represents the output of a CreateDeploymentConfig operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/CreateDeploymentConfigOutput type CreateDeploymentConfigOutput struct { _ struct{} `type:"structure"` @@ -5381,7 +5354,6 @@ func (s *CreateDeploymentConfigOutput) SetDeploymentConfigId(v string) *CreateDe } // Represents the input of a CreateDeploymentGroup operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/CreateDeploymentGroupInput type CreateDeploymentGroupInput struct { _ struct{} `type:"structure"` @@ -5592,7 +5564,6 @@ func (s *CreateDeploymentGroupInput) SetTriggerConfigurations(v []*TriggerConfig } // Represents the output of a CreateDeploymentGroup operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/CreateDeploymentGroupOutput type CreateDeploymentGroupOutput struct { _ struct{} `type:"structure"` @@ -5617,7 +5588,6 @@ func (s *CreateDeploymentGroupOutput) SetDeploymentGroupId(v string) *CreateDepl } // Represents the input of a CreateDeployment operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/CreateDeploymentInput type CreateDeploymentInput struct { _ struct{} `type:"structure"` @@ -5777,7 +5747,6 @@ func (s *CreateDeploymentInput) SetUpdateOutdatedInstancesOnly(v bool) *CreateDe } // Represents the output of a CreateDeployment operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/CreateDeploymentOutput type CreateDeploymentOutput struct { _ struct{} `type:"structure"` @@ -5802,7 +5771,6 @@ func (s *CreateDeploymentOutput) SetDeploymentId(v string) *CreateDeploymentOutp } // Represents the input of a DeleteApplication operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/DeleteApplicationInput type DeleteApplicationInput struct { _ struct{} `type:"structure"` @@ -5845,7 +5813,6 @@ func (s *DeleteApplicationInput) SetApplicationName(v string) *DeleteApplication return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/DeleteApplicationOutput type DeleteApplicationOutput struct { _ struct{} `type:"structure"` } @@ -5861,7 +5828,6 @@ func (s DeleteApplicationOutput) GoString() string { } // Represents the input of a DeleteDeploymentConfig operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/DeleteDeploymentConfigInput type DeleteDeploymentConfigInput struct { _ struct{} `type:"structure"` @@ -5904,7 +5870,6 @@ func (s *DeleteDeploymentConfigInput) SetDeploymentConfigName(v string) *DeleteD return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/DeleteDeploymentConfigOutput type DeleteDeploymentConfigOutput struct { _ struct{} `type:"structure"` } @@ -5920,7 +5885,6 @@ func (s DeleteDeploymentConfigOutput) GoString() string { } // Represents the input of a DeleteDeploymentGroup operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/DeleteDeploymentGroupInput type DeleteDeploymentGroupInput struct { _ struct{} `type:"structure"` @@ -5981,7 +5945,6 @@ func (s *DeleteDeploymentGroupInput) SetDeploymentGroupName(v string) *DeleteDep } // Represents the output of a DeleteDeploymentGroup operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/DeleteDeploymentGroupOutput type DeleteDeploymentGroupOutput struct { _ struct{} `type:"structure"` @@ -6011,7 +5974,6 @@ func (s *DeleteDeploymentGroupOutput) SetHooksNotCleanedUp(v []*AutoScalingGroup } // Represents the input of a DeleteGitHubAccount operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/DeleteGitHubAccountTokenInput type DeleteGitHubAccountTokenInput struct { _ struct{} `type:"structure"` @@ -6036,7 +5998,6 @@ func (s *DeleteGitHubAccountTokenInput) SetTokenName(v string) *DeleteGitHubAcco } // Represents the output of a DeleteGitHubAccountToken operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/DeleteGitHubAccountTokenOutput type DeleteGitHubAccountTokenOutput struct { _ struct{} `type:"structure"` @@ -6061,7 +6022,6 @@ func (s *DeleteGitHubAccountTokenOutput) SetTokenName(v string) *DeleteGitHubAcc } // Information about a deployment configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/DeploymentConfigInfo type DeploymentConfigInfo struct { _ struct{} `type:"structure"` @@ -6132,7 +6092,6 @@ func (s *DeploymentConfigInfo) SetTrafficRoutingConfig(v *TrafficRoutingConfig) } // Information about a deployment group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/DeploymentGroupInfo type DeploymentGroupInfo struct { _ struct{} `type:"structure"` @@ -6339,7 +6298,6 @@ func (s *DeploymentGroupInfo) SetTriggerConfigurations(v []*TriggerConfig) *Depl } // Information about a deployment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/DeploymentInfo type DeploymentInfo struct { _ struct{} `type:"structure"` @@ -6638,7 +6596,6 @@ func (s *DeploymentInfo) SetUpdateOutdatedInstancesOnly(v bool) *DeploymentInfo } // Information about the deployment status of the instances in the deployment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/DeploymentOverview type DeploymentOverview struct { _ struct{} `type:"structure"` @@ -6711,7 +6668,6 @@ func (s *DeploymentOverview) SetSucceeded(v int64) *DeploymentOverview { // Information about how traffic is rerouted to instances in a replacement environment // in a blue/green deployment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/DeploymentReadyOption type DeploymentReadyOption struct { _ struct{} `type:"structure"` @@ -6758,7 +6714,6 @@ func (s *DeploymentReadyOption) SetWaitTimeInMinutes(v int64) *DeploymentReadyOp // Information about the type of deployment, either in-place or blue/green, // you want to run and whether to route deployment traffic behind a load balancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/DeploymentStyle type DeploymentStyle struct { _ struct{} `type:"structure"` @@ -6792,7 +6747,6 @@ func (s *DeploymentStyle) SetDeploymentType(v string) *DeploymentStyle { } // Represents the input of a DeregisterOnPremisesInstance operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/DeregisterOnPremisesInstanceInput type DeregisterOnPremisesInstanceInput struct { _ struct{} `type:"structure"` @@ -6831,7 +6785,6 @@ func (s *DeregisterOnPremisesInstanceInput) SetInstanceName(v string) *Deregiste return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/DeregisterOnPremisesInstanceOutput type DeregisterOnPremisesInstanceOutput struct { _ struct{} `type:"structure"` } @@ -6847,7 +6800,6 @@ func (s DeregisterOnPremisesInstanceOutput) GoString() string { } // Diagnostic information about executable scripts that are part of a deployment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/Diagnostics type Diagnostics struct { _ struct{} `type:"structure"` @@ -6916,7 +6868,6 @@ func (s *Diagnostics) SetScriptName(v string) *Diagnostics { } // Information about an EC2 tag filter. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/EC2TagFilter type EC2TagFilter struct { _ struct{} `type:"structure"` @@ -6965,7 +6916,6 @@ func (s *EC2TagFilter) SetValue(v string) *EC2TagFilter { } // Information about groups of EC2 instance tags. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/EC2TagSet type EC2TagSet struct { _ struct{} `type:"structure"` @@ -6994,7 +6944,6 @@ func (s *EC2TagSet) SetEc2TagSetList(v [][]*EC2TagFilter) *EC2TagSet { // Information about a load balancer in Elastic Load Balancing to use in a deployment. // Instances are registered directly with a load balancer, and traffic is routed // to the load balancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ELBInfo type ELBInfo struct { _ struct{} `type:"structure"` @@ -7023,7 +6972,6 @@ func (s *ELBInfo) SetName(v string) *ELBInfo { } // Information about a deployment error. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ErrorInformation type ErrorInformation struct { _ struct{} `type:"structure"` @@ -7097,7 +7045,6 @@ func (s *ErrorInformation) SetMessage(v string) *ErrorInformation { } // Information about an application revision. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/GenericRevisionInfo type GenericRevisionInfo struct { _ struct{} `type:"structure"` @@ -7158,7 +7105,6 @@ func (s *GenericRevisionInfo) SetRegisterTime(v time.Time) *GenericRevisionInfo } // Represents the input of a GetApplication operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/GetApplicationInput type GetApplicationInput struct { _ struct{} `type:"structure"` @@ -7202,7 +7148,6 @@ func (s *GetApplicationInput) SetApplicationName(v string) *GetApplicationInput } // Represents the output of a GetApplication operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/GetApplicationOutput type GetApplicationOutput struct { _ struct{} `type:"structure"` @@ -7227,7 +7172,6 @@ func (s *GetApplicationOutput) SetApplication(v *ApplicationInfo) *GetApplicatio } // Represents the input of a GetApplicationRevision operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/GetApplicationRevisionInput type GetApplicationRevisionInput struct { _ struct{} `type:"structure"` @@ -7284,7 +7228,6 @@ func (s *GetApplicationRevisionInput) SetRevision(v *RevisionLocation) *GetAppli } // Represents the output of a GetApplicationRevision operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/GetApplicationRevisionOutput type GetApplicationRevisionOutput struct { _ struct{} `type:"structure"` @@ -7327,7 +7270,6 @@ func (s *GetApplicationRevisionOutput) SetRevisionInfo(v *GenericRevisionInfo) * } // Represents the input of a GetDeploymentConfig operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/GetDeploymentConfigInput type GetDeploymentConfigInput struct { _ struct{} `type:"structure"` @@ -7371,7 +7313,6 @@ func (s *GetDeploymentConfigInput) SetDeploymentConfigName(v string) *GetDeploym } // Represents the output of a GetDeploymentConfig operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/GetDeploymentConfigOutput type GetDeploymentConfigOutput struct { _ struct{} `type:"structure"` @@ -7396,7 +7337,6 @@ func (s *GetDeploymentConfigOutput) SetDeploymentConfigInfo(v *DeploymentConfigI } // Represents the input of a GetDeploymentGroup operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/GetDeploymentGroupInput type GetDeploymentGroupInput struct { _ struct{} `type:"structure"` @@ -7457,7 +7397,6 @@ func (s *GetDeploymentGroupInput) SetDeploymentGroupName(v string) *GetDeploymen } // Represents the output of a GetDeploymentGroup operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/GetDeploymentGroupOutput type GetDeploymentGroupOutput struct { _ struct{} `type:"structure"` @@ -7482,7 +7421,6 @@ func (s *GetDeploymentGroupOutput) SetDeploymentGroupInfo(v *DeploymentGroupInfo } // Represents the input of a GetDeployment operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/GetDeploymentInput type GetDeploymentInput struct { _ struct{} `type:"structure"` @@ -7522,7 +7460,6 @@ func (s *GetDeploymentInput) SetDeploymentId(v string) *GetDeploymentInput { } // Represents the input of a GetDeploymentInstance operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/GetDeploymentInstanceInput type GetDeploymentInstanceInput struct { _ struct{} `type:"structure"` @@ -7576,7 +7513,6 @@ func (s *GetDeploymentInstanceInput) SetInstanceId(v string) *GetDeploymentInsta } // Represents the output of a GetDeploymentInstance operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/GetDeploymentInstanceOutput type GetDeploymentInstanceOutput struct { _ struct{} `type:"structure"` @@ -7601,7 +7537,6 @@ func (s *GetDeploymentInstanceOutput) SetInstanceSummary(v *InstanceSummary) *Ge } // Represents the output of a GetDeployment operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/GetDeploymentOutput type GetDeploymentOutput struct { _ struct{} `type:"structure"` @@ -7626,7 +7561,6 @@ func (s *GetDeploymentOutput) SetDeploymentInfo(v *DeploymentInfo) *GetDeploymen } // Represents the input of a GetOnPremisesInstance operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/GetOnPremisesInstanceInput type GetOnPremisesInstanceInput struct { _ struct{} `type:"structure"` @@ -7666,7 +7600,6 @@ func (s *GetOnPremisesInstanceInput) SetInstanceName(v string) *GetOnPremisesIns } // Represents the output of a GetOnPremisesInstance operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/GetOnPremisesInstanceOutput type GetOnPremisesInstanceOutput struct { _ struct{} `type:"structure"` @@ -7691,7 +7624,6 @@ func (s *GetOnPremisesInstanceOutput) SetInstanceInfo(v *InstanceInfo) *GetOnPre } // Information about the location of application artifacts stored in GitHub. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/GitHubLocation type GitHubLocation struct { _ struct{} `type:"structure"` @@ -7730,7 +7662,6 @@ func (s *GitHubLocation) SetRepository(v string) *GitHubLocation { // Information about the instances that belong to the replacement environment // in a blue/green deployment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/GreenFleetProvisioningOption type GreenFleetProvisioningOption struct { _ struct{} `type:"structure"` @@ -7761,7 +7692,6 @@ func (s *GreenFleetProvisioningOption) SetAction(v string) *GreenFleetProvisioni } // Information about an on-premises instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/InstanceInfo type InstanceInfo struct { _ struct{} `type:"structure"` @@ -7841,7 +7771,6 @@ func (s *InstanceInfo) SetTags(v []*Tag) *InstanceInfo { } // Information about an instance in a deployment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/InstanceSummary type InstanceSummary struct { _ struct{} `type:"structure"` @@ -7929,7 +7858,6 @@ func (s *InstanceSummary) SetStatus(v string) *InstanceSummary { // Information about the most recent attempted or successful deployment to a // deployment group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/LastDeploymentInfo type LastDeploymentInfo struct { _ struct{} `type:"structure"` @@ -7983,7 +7911,6 @@ func (s *LastDeploymentInfo) SetStatus(v string) *LastDeploymentInfo { } // Information about a deployment lifecycle event. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/LifecycleEvent type LifecycleEvent struct { _ struct{} `type:"structure"` @@ -8057,7 +7984,6 @@ func (s *LifecycleEvent) SetStatus(v string) *LifecycleEvent { } // Represents the input of a ListApplicationRevisions operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ListApplicationRevisionsInput type ListApplicationRevisionsInput struct { _ struct{} `type:"structure"` @@ -8184,7 +8110,6 @@ func (s *ListApplicationRevisionsInput) SetSortOrder(v string) *ListApplicationR } // Represents the output of a ListApplicationRevisions operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ListApplicationRevisionsOutput type ListApplicationRevisionsOutput struct { _ struct{} `type:"structure"` @@ -8220,7 +8145,6 @@ func (s *ListApplicationRevisionsOutput) SetRevisions(v []*RevisionLocation) *Li } // Represents the input of a ListApplications operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ListApplicationsInput type ListApplicationsInput struct { _ struct{} `type:"structure"` @@ -8246,7 +8170,6 @@ func (s *ListApplicationsInput) SetNextToken(v string) *ListApplicationsInput { } // Represents the output of a ListApplications operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ListApplicationsOutput type ListApplicationsOutput struct { _ struct{} `type:"structure"` @@ -8282,7 +8205,6 @@ func (s *ListApplicationsOutput) SetNextToken(v string) *ListApplicationsOutput } // Represents the input of a ListDeploymentConfigs operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ListDeploymentConfigsInput type ListDeploymentConfigsInput struct { _ struct{} `type:"structure"` @@ -8309,7 +8231,6 @@ func (s *ListDeploymentConfigsInput) SetNextToken(v string) *ListDeploymentConfi } // Represents the output of a ListDeploymentConfigs operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ListDeploymentConfigsOutput type ListDeploymentConfigsOutput struct { _ struct{} `type:"structure"` @@ -8346,7 +8267,6 @@ func (s *ListDeploymentConfigsOutput) SetNextToken(v string) *ListDeploymentConf } // Represents the input of a ListDeploymentGroups operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ListDeploymentGroupsInput type ListDeploymentGroupsInput struct { _ struct{} `type:"structure"` @@ -8400,7 +8320,6 @@ func (s *ListDeploymentGroupsInput) SetNextToken(v string) *ListDeploymentGroups } // Represents the output of a ListDeploymentGroups operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ListDeploymentGroupsOutput type ListDeploymentGroupsOutput struct { _ struct{} `type:"structure"` @@ -8445,7 +8364,6 @@ func (s *ListDeploymentGroupsOutput) SetNextToken(v string) *ListDeploymentGroup } // Represents the input of a ListDeploymentInstances operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ListDeploymentInstancesInput type ListDeploymentInstancesInput struct { _ struct{} `type:"structure"` @@ -8527,7 +8445,6 @@ func (s *ListDeploymentInstancesInput) SetNextToken(v string) *ListDeploymentIns } // Represents the output of a ListDeploymentInstances operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ListDeploymentInstancesOutput type ListDeploymentInstancesOutput struct { _ struct{} `type:"structure"` @@ -8563,7 +8480,6 @@ func (s *ListDeploymentInstancesOutput) SetNextToken(v string) *ListDeploymentIn } // Represents the input of a ListDeployments operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ListDeploymentsInput type ListDeploymentsInput struct { _ struct{} `type:"structure"` @@ -8654,7 +8570,6 @@ func (s *ListDeploymentsInput) SetNextToken(v string) *ListDeploymentsInput { } // Represents the output of a ListDeployments operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ListDeploymentsOutput type ListDeploymentsOutput struct { _ struct{} `type:"structure"` @@ -8690,7 +8605,6 @@ func (s *ListDeploymentsOutput) SetNextToken(v string) *ListDeploymentsOutput { } // Represents the input of a ListGitHubAccountTokenNames operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ListGitHubAccountTokenNamesInput type ListGitHubAccountTokenNamesInput struct { _ struct{} `type:"structure"` @@ -8716,7 +8630,6 @@ func (s *ListGitHubAccountTokenNamesInput) SetNextToken(v string) *ListGitHubAcc } // Represents the output of a ListGitHubAccountTokenNames operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ListGitHubAccountTokenNamesOutput type ListGitHubAccountTokenNamesOutput struct { _ struct{} `type:"structure"` @@ -8752,7 +8665,6 @@ func (s *ListGitHubAccountTokenNamesOutput) SetTokenNameList(v []*string) *ListG } // Represents the input of a ListOnPremisesInstances operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ListOnPremisesInstancesInput type ListOnPremisesInstancesInput struct { _ struct{} `type:"structure"` @@ -8803,7 +8715,6 @@ func (s *ListOnPremisesInstancesInput) SetTagFilters(v []*TagFilter) *ListOnPrem } // Represents the output of list on-premises instances operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/ListOnPremisesInstancesOutput type ListOnPremisesInstancesOutput struct { _ struct{} `type:"structure"` @@ -8840,7 +8751,6 @@ func (s *ListOnPremisesInstancesOutput) SetNextToken(v string) *ListOnPremisesIn // Information about the Elastic Load Balancing load balancer or target group // used in a deployment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/LoadBalancerInfo type LoadBalancerInfo struct { _ struct{} `type:"structure"` @@ -8878,7 +8788,6 @@ func (s *LoadBalancerInfo) SetTargetGroupInfoList(v []*TargetGroupInfo) *LoadBal } // Information about minimum healthy instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/MinimumHealthyHosts type MinimumHealthyHosts struct { _ struct{} `type:"structure"` @@ -8937,7 +8846,6 @@ func (s *MinimumHealthyHosts) SetValue(v int64) *MinimumHealthyHosts { } // Information about groups of on-premises instance tags. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/OnPremisesTagSet type OnPremisesTagSet struct { _ struct{} `type:"structure"` @@ -8963,7 +8871,6 @@ func (s *OnPremisesTagSet) SetOnPremisesTagSetList(v [][]*TagFilter) *OnPremises return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/PutLifecycleEventHookExecutionStatusInput type PutLifecycleEventHookExecutionStatusInput struct { _ struct{} `type:"structure"` @@ -9008,7 +8915,6 @@ func (s *PutLifecycleEventHookExecutionStatusInput) SetStatus(v string) *PutLife return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/PutLifecycleEventHookExecutionStatusOutput type PutLifecycleEventHookExecutionStatusOutput struct { _ struct{} `type:"structure"` @@ -9036,7 +8942,6 @@ func (s *PutLifecycleEventHookExecutionStatusOutput) SetLifecycleEventHookExecut // A revision for an AWS Lambda deployment that is a YAML-formatted or JSON-formatted // string. For AWS Lambda deployments, the revision is the same as the AppSpec // file. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/RawString type RawString struct { _ struct{} `type:"structure"` @@ -9072,7 +8977,6 @@ func (s *RawString) SetSha256(v string) *RawString { } // Represents the input of a RegisterApplicationRevision operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/RegisterApplicationRevisionInput type RegisterApplicationRevisionInput struct { _ struct{} `type:"structure"` @@ -9139,7 +9043,6 @@ func (s *RegisterApplicationRevisionInput) SetRevision(v *RevisionLocation) *Reg return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/RegisterApplicationRevisionOutput type RegisterApplicationRevisionOutput struct { _ struct{} `type:"structure"` } @@ -9155,7 +9058,6 @@ func (s RegisterApplicationRevisionOutput) GoString() string { } // Represents the input of the register on-premises instance operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/RegisterOnPremisesInstanceInput type RegisterOnPremisesInstanceInput struct { _ struct{} `type:"structure"` @@ -9212,7 +9114,6 @@ func (s *RegisterOnPremisesInstanceInput) SetInstanceName(v string) *RegisterOnP return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/RegisterOnPremisesInstanceOutput type RegisterOnPremisesInstanceOutput struct { _ struct{} `type:"structure"` } @@ -9228,7 +9129,6 @@ func (s RegisterOnPremisesInstanceOutput) GoString() string { } // Represents the input of a RemoveTagsFromOnPremisesInstances operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/RemoveTagsFromOnPremisesInstancesInput type RemoveTagsFromOnPremisesInstancesInput struct { _ struct{} `type:"structure"` @@ -9281,7 +9181,6 @@ func (s *RemoveTagsFromOnPremisesInstancesInput) SetTags(v []*Tag) *RemoveTagsFr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/RemoveTagsFromOnPremisesInstancesOutput type RemoveTagsFromOnPremisesInstancesOutput struct { _ struct{} `type:"structure"` } @@ -9297,7 +9196,6 @@ func (s RemoveTagsFromOnPremisesInstancesOutput) GoString() string { } // Information about an application revision. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/RevisionInfo type RevisionInfo struct { _ struct{} `type:"structure"` @@ -9332,7 +9230,6 @@ func (s *RevisionInfo) SetRevisionLocation(v *RevisionLocation) *RevisionInfo { } // Information about the location of an application revision. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/RevisionLocation type RevisionLocation struct { _ struct{} `type:"structure"` @@ -9393,7 +9290,6 @@ func (s *RevisionLocation) SetString_(v *RawString) *RevisionLocation { } // Information about a deployment rollback. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/RollbackInfo type RollbackInfo struct { _ struct{} `type:"structure"` @@ -9439,7 +9335,6 @@ func (s *RollbackInfo) SetRollbackTriggeringDeploymentId(v string) *RollbackInfo // Information about the location of application artifacts stored in Amazon // S3. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/S3Location type S3Location struct { _ struct{} `type:"structure"` @@ -9514,7 +9409,6 @@ func (s *S3Location) SetVersion(v string) *S3Location { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/SkipWaitTimeForInstanceTerminationInput type SkipWaitTimeForInstanceTerminationInput struct { _ struct{} `type:"structure"` @@ -9539,7 +9433,6 @@ func (s *SkipWaitTimeForInstanceTerminationInput) SetDeploymentId(v string) *Ski return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/SkipWaitTimeForInstanceTerminationOutput type SkipWaitTimeForInstanceTerminationOutput struct { _ struct{} `type:"structure"` } @@ -9555,7 +9448,6 @@ func (s SkipWaitTimeForInstanceTerminationOutput) GoString() string { } // Represents the input of a StopDeployment operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/StopDeploymentInput type StopDeploymentInput struct { _ struct{} `type:"structure"` @@ -9606,7 +9498,6 @@ func (s *StopDeploymentInput) SetDeploymentId(v string) *StopDeploymentInput { } // Represents the output of a StopDeployment operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/StopDeploymentOutput type StopDeploymentOutput struct { _ struct{} `type:"structure"` @@ -9644,7 +9535,6 @@ func (s *StopDeploymentOutput) SetStatusMessage(v string) *StopDeploymentOutput } // Information about a tag. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/Tag type Tag struct { _ struct{} `type:"structure"` @@ -9678,7 +9568,6 @@ func (s *Tag) SetValue(v string) *Tag { } // Information about an on-premises instance tag filter. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/TagFilter type TagFilter struct { _ struct{} `type:"structure"` @@ -9729,7 +9618,6 @@ func (s *TagFilter) SetValue(v string) *TagFilter { // Information about a target group in Elastic Load Balancing to use in a deployment. // Instances are registered as targets in a target group, and traffic is routed // to the target group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/TargetGroupInfo type TargetGroupInfo struct { _ struct{} `type:"structure"` @@ -9759,7 +9647,6 @@ func (s *TargetGroupInfo) SetName(v string) *TargetGroupInfo { // Information about the instances to be used in the replacement environment // in a blue/green deployment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/TargetInstances type TargetInstances struct { _ struct{} `type:"structure"` @@ -9809,7 +9696,6 @@ func (s *TargetInstances) SetTagFilters(v []*EC2TagFilter) *TargetInstances { // A configuration that shifts traffic from one version of a Lambda function // to another in two increments. The original and target Lambda function versions // are specified in the deployment's AppSpec file. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/TimeBasedCanary type TimeBasedCanary struct { _ struct{} `type:"structure"` @@ -9848,7 +9734,6 @@ func (s *TimeBasedCanary) SetCanaryPercentage(v int64) *TimeBasedCanary { // to another in equal increments, with an equal number of minutes between each // increment. The original and target Lambda function versions are specified // in the deployment's AppSpec file. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/TimeBasedLinear type TimeBasedLinear struct { _ struct{} `type:"structure"` @@ -9884,7 +9769,6 @@ func (s *TimeBasedLinear) SetLinearPercentage(v int64) *TimeBasedLinear { } // Information about a time range. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/TimeRange type TimeRange struct { _ struct{} `type:"structure"` @@ -9923,7 +9807,6 @@ func (s *TimeRange) SetStart(v time.Time) *TimeRange { // The configuration that specifies how traffic is shifted from one version // of a Lambda function to another version during an AWS Lambda deployment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/TrafficRoutingConfig type TrafficRoutingConfig struct { _ struct{} `type:"structure"` @@ -9972,7 +9855,6 @@ func (s *TrafficRoutingConfig) SetType(v string) *TrafficRoutingConfig { } // Information about notification triggers for the deployment group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/TriggerConfig type TriggerConfig struct { _ struct{} `type:"structure"` @@ -10016,7 +9898,6 @@ func (s *TriggerConfig) SetTriggerTargetArn(v string) *TriggerConfig { } // Represents the input of an UpdateApplication operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/UpdateApplicationInput type UpdateApplicationInput struct { _ struct{} `type:"structure"` @@ -10065,7 +9946,6 @@ func (s *UpdateApplicationInput) SetNewApplicationName(v string) *UpdateApplicat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/UpdateApplicationOutput type UpdateApplicationOutput struct { _ struct{} `type:"structure"` } @@ -10081,7 +9961,6 @@ func (s UpdateApplicationOutput) GoString() string { } // Represents the input of an UpdateDeploymentGroup operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/UpdateDeploymentGroupInput type UpdateDeploymentGroupInput struct { _ struct{} `type:"structure"` @@ -10288,7 +10167,6 @@ func (s *UpdateDeploymentGroupInput) SetTriggerConfigurations(v []*TriggerConfig } // Represents the output of an UpdateDeploymentGroup operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codedeploy-2014-10-06/UpdateDeploymentGroupOutput type UpdateDeploymentGroupOutput struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/codepipeline/api.go b/vendor/github.com/aws/aws-sdk-go/service/codepipeline/api.go index 6f2a29e46..6d6c4d460 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/codepipeline/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/codepipeline/api.go @@ -2392,7 +2392,6 @@ func (c *CodePipeline) UpdatePipelineWithContext(ctx aws.Context, input *UpdateP // credentials that are issued by AWS Secure Token Service (STS). They can be // used to access input and output artifacts in the Amazon S3 bucket used to // store artifact for the pipeline in AWS CodePipeline. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/AWSSessionCredentials type AWSSessionCredentials struct { _ struct{} `type:"structure"` @@ -2441,7 +2440,6 @@ func (s *AWSSessionCredentials) SetSessionToken(v string) *AWSSessionCredentials } // Represents the input of an AcknowledgeJob action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/AcknowledgeJobInput type AcknowledgeJobInput struct { _ struct{} `type:"structure"` @@ -2497,7 +2495,6 @@ func (s *AcknowledgeJobInput) SetNonce(v string) *AcknowledgeJobInput { } // Represents the output of an AcknowledgeJob action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/AcknowledgeJobOutput type AcknowledgeJobOutput struct { _ struct{} `type:"structure"` @@ -2522,7 +2519,6 @@ func (s *AcknowledgeJobOutput) SetStatus(v string) *AcknowledgeJobOutput { } // Represents the input of an AcknowledgeThirdPartyJob action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/AcknowledgeThirdPartyJobInput type AcknowledgeThirdPartyJobInput struct { _ struct{} `type:"structure"` @@ -2599,7 +2595,6 @@ func (s *AcknowledgeThirdPartyJobInput) SetNonce(v string) *AcknowledgeThirdPart } // Represents the output of an AcknowledgeThirdPartyJob action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/AcknowledgeThirdPartyJobOutput type AcknowledgeThirdPartyJobOutput struct { _ struct{} `type:"structure"` @@ -2624,7 +2619,6 @@ func (s *AcknowledgeThirdPartyJobOutput) SetStatus(v string) *AcknowledgeThirdPa } // Represents information about an action configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ActionConfiguration type ActionConfiguration struct { _ struct{} `type:"structure"` @@ -2649,7 +2643,6 @@ func (s *ActionConfiguration) SetConfiguration(v map[string]*string) *ActionConf } // Represents information about an action configuration property. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ActionConfigurationProperty type ActionConfigurationProperty struct { _ struct{} `type:"structure"` @@ -2779,7 +2772,6 @@ func (s *ActionConfigurationProperty) SetType(v string) *ActionConfigurationProp // Represents the context of an action within the stage of a pipeline to a job // worker. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ActionContext type ActionContext struct { _ struct{} `type:"structure"` @@ -2804,7 +2796,6 @@ func (s *ActionContext) SetName(v string) *ActionContext { } // Represents information about an action declaration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ActionDeclaration type ActionDeclaration struct { _ struct{} `type:"structure"` @@ -2937,7 +2928,6 @@ func (s *ActionDeclaration) SetRunOrder(v int64) *ActionDeclaration { } // Represents information about the run of an action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ActionExecution type ActionExecution struct { _ struct{} `type:"structure"` @@ -3039,7 +3029,6 @@ func (s *ActionExecution) SetToken(v string) *ActionExecution { } // Represents information about the version (or revision) of an action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ActionRevision type ActionRevision struct { _ struct{} `type:"structure"` @@ -3116,7 +3105,6 @@ func (s *ActionRevision) SetRevisionId(v string) *ActionRevision { } // Represents information about the state of an action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ActionState type ActionState struct { _ struct{} `type:"structure"` @@ -3179,7 +3167,6 @@ func (s *ActionState) SetRevisionUrl(v string) *ActionState { } // Returns information about the details of an action type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ActionType type ActionType struct { _ struct{} `type:"structure"` @@ -3246,7 +3233,6 @@ func (s *ActionType) SetSettings(v *ActionTypeSettings) *ActionType { } // Represents information about an action type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ActionTypeId type ActionTypeId struct { _ struct{} `type:"structure"` @@ -3339,7 +3325,6 @@ func (s *ActionTypeId) SetVersion(v string) *ActionTypeId { } // Returns information about the settings for an action type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ActionTypeSettings type ActionTypeSettings struct { _ struct{} `type:"structure"` @@ -3423,7 +3408,6 @@ func (s *ActionTypeSettings) SetThirdPartyConfigurationUrl(v string) *ActionType } // Represents information about the result of an approval request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ApprovalResult type ApprovalResult struct { _ struct{} `type:"structure"` @@ -3478,7 +3462,6 @@ func (s *ApprovalResult) SetSummary(v string) *ApprovalResult { // Represents information about an artifact that will be worked upon by actions // in the pipeline. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/Artifact type Artifact struct { _ struct{} `type:"structure"` @@ -3522,7 +3505,6 @@ func (s *Artifact) SetRevision(v string) *Artifact { } // Returns information about the details of an artifact. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ArtifactDetails type ArtifactDetails struct { _ struct{} `type:"structure"` @@ -3576,7 +3558,6 @@ func (s *ArtifactDetails) SetMinimumCount(v int64) *ArtifactDetails { } // Represents information about the location of an artifact. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ArtifactLocation type ArtifactLocation struct { _ struct{} `type:"structure"` @@ -3610,7 +3591,6 @@ func (s *ArtifactLocation) SetType(v string) *ArtifactLocation { } // Represents revision details of an artifact. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ArtifactRevision type ArtifactRevision struct { _ struct{} `type:"structure"` @@ -3688,7 +3668,6 @@ func (s *ArtifactRevision) SetRevisionUrl(v string) *ArtifactRevision { } // The Amazon S3 bucket where artifacts are stored for the pipeline. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ArtifactStore type ArtifactStore struct { _ struct{} `type:"structure"` @@ -3765,7 +3744,6 @@ func (s *ArtifactStore) SetType(v string) *ArtifactStore { } // Reserved for future use. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/BlockerDeclaration type BlockerDeclaration struct { _ struct{} `type:"structure"` @@ -3822,7 +3800,6 @@ func (s *BlockerDeclaration) SetType(v string) *BlockerDeclaration { } // Represents the input of a CreateCustomActionType operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/CreateCustomActionTypeInput type CreateCustomActionTypeInput struct { _ struct{} `type:"structure"` @@ -3975,7 +3952,6 @@ func (s *CreateCustomActionTypeInput) SetVersion(v string) *CreateCustomActionTy } // Represents the output of a CreateCustomActionType operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/CreateCustomActionTypeOutput type CreateCustomActionTypeOutput struct { _ struct{} `type:"structure"` @@ -4002,7 +3978,6 @@ func (s *CreateCustomActionTypeOutput) SetActionType(v *ActionType) *CreateCusto } // Represents the input of a CreatePipeline action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/CreatePipelineInput type CreatePipelineInput struct { _ struct{} `type:"structure"` @@ -4047,7 +4022,6 @@ func (s *CreatePipelineInput) SetPipeline(v *PipelineDeclaration) *CreatePipelin } // Represents the output of a CreatePipeline action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/CreatePipelineOutput type CreatePipelineOutput struct { _ struct{} `type:"structure"` @@ -4072,7 +4046,6 @@ func (s *CreatePipelineOutput) SetPipeline(v *PipelineDeclaration) *CreatePipeli } // Represents information about a current revision. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/CurrentRevision type CurrentRevision struct { _ struct{} `type:"structure"` @@ -4155,7 +4128,6 @@ func (s *CurrentRevision) SetRevisionSummary(v string) *CurrentRevision { // Represents the input of a DeleteCustomActionType operation. The custom action // will be marked as deleted. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/DeleteCustomActionTypeInput type DeleteCustomActionTypeInput struct { _ struct{} `type:"structure"` @@ -4229,7 +4201,6 @@ func (s *DeleteCustomActionTypeInput) SetVersion(v string) *DeleteCustomActionTy return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/DeleteCustomActionTypeOutput type DeleteCustomActionTypeOutput struct { _ struct{} `type:"structure"` } @@ -4245,7 +4216,6 @@ func (s DeleteCustomActionTypeOutput) GoString() string { } // Represents the input of a DeletePipeline action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/DeletePipelineInput type DeletePipelineInput struct { _ struct{} `type:"structure"` @@ -4287,7 +4257,6 @@ func (s *DeletePipelineInput) SetName(v string) *DeletePipelineInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/DeletePipelineOutput type DeletePipelineOutput struct { _ struct{} `type:"structure"` } @@ -4303,7 +4272,6 @@ func (s DeletePipelineOutput) GoString() string { } // Represents the input of a DisableStageTransition action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/DisableStageTransitionInput type DisableStageTransitionInput struct { _ struct{} `type:"structure"` @@ -4400,7 +4368,6 @@ func (s *DisableStageTransitionInput) SetTransitionType(v string) *DisableStageT return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/DisableStageTransitionOutput type DisableStageTransitionOutput struct { _ struct{} `type:"structure"` } @@ -4416,7 +4383,6 @@ func (s DisableStageTransitionOutput) GoString() string { } // Represents the input of an EnableStageTransition action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/EnableStageTransitionInput type EnableStageTransitionInput struct { _ struct{} `type:"structure"` @@ -4493,7 +4459,6 @@ func (s *EnableStageTransitionInput) SetTransitionType(v string) *EnableStageTra return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/EnableStageTransitionOutput type EnableStageTransitionOutput struct { _ struct{} `type:"structure"` } @@ -4510,7 +4475,6 @@ func (s EnableStageTransitionOutput) GoString() string { // Represents information about the key used to encrypt data in the artifact // store, such as an AWS Key Management Service (AWS KMS) key. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/EncryptionKey type EncryptionKey struct { _ struct{} `type:"structure"` @@ -4569,7 +4533,6 @@ func (s *EncryptionKey) SetType(v string) *EncryptionKey { } // Represents information about an error in AWS CodePipeline. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ErrorDetails type ErrorDetails struct { _ struct{} `type:"structure"` @@ -4604,7 +4567,6 @@ func (s *ErrorDetails) SetMessage(v string) *ErrorDetails { // The details of the actions taken and results produced on an artifact as it // passes through stages in the pipeline. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ExecutionDetails type ExecutionDetails struct { _ struct{} `type:"structure"` @@ -4662,7 +4624,6 @@ func (s *ExecutionDetails) SetSummary(v string) *ExecutionDetails { } // Represents information about failure details. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/FailureDetails type FailureDetails struct { _ struct{} `type:"structure"` @@ -4728,7 +4689,6 @@ func (s *FailureDetails) SetType(v string) *FailureDetails { } // Represents the input of a GetJobDetails action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/GetJobDetailsInput type GetJobDetailsInput struct { _ struct{} `type:"structure"` @@ -4768,7 +4728,6 @@ func (s *GetJobDetailsInput) SetJobId(v string) *GetJobDetailsInput { } // Represents the output of a GetJobDetails action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/GetJobDetailsOutput type GetJobDetailsOutput struct { _ struct{} `type:"structure"` @@ -4796,7 +4755,6 @@ func (s *GetJobDetailsOutput) SetJobDetails(v *JobDetails) *GetJobDetailsOutput } // Represents the input of a GetPipelineExecution action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/GetPipelineExecutionInput type GetPipelineExecutionInput struct { _ struct{} `type:"structure"` @@ -4853,7 +4811,6 @@ func (s *GetPipelineExecutionInput) SetPipelineName(v string) *GetPipelineExecut } // Represents the output of a GetPipelineExecution action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/GetPipelineExecutionOutput type GetPipelineExecutionOutput struct { _ struct{} `type:"structure"` @@ -4878,7 +4835,6 @@ func (s *GetPipelineExecutionOutput) SetPipelineExecution(v *PipelineExecution) } // Represents the input of a GetPipeline action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/GetPipelineInput type GetPipelineInput struct { _ struct{} `type:"structure"` @@ -4935,7 +4891,6 @@ func (s *GetPipelineInput) SetVersion(v int64) *GetPipelineInput { } // Represents the output of a GetPipeline action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/GetPipelineOutput type GetPipelineOutput struct { _ struct{} `type:"structure"` @@ -4970,7 +4925,6 @@ func (s *GetPipelineOutput) SetPipeline(v *PipelineDeclaration) *GetPipelineOutp } // Represents the input of a GetPipelineState action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/GetPipelineStateInput type GetPipelineStateInput struct { _ struct{} `type:"structure"` @@ -5013,7 +4967,6 @@ func (s *GetPipelineStateInput) SetName(v string) *GetPipelineStateInput { } // Represents the output of a GetPipelineState action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/GetPipelineStateOutput type GetPipelineStateOutput struct { _ struct{} `type:"structure"` @@ -5077,7 +5030,6 @@ func (s *GetPipelineStateOutput) SetUpdated(v time.Time) *GetPipelineStateOutput } // Represents the input of a GetThirdPartyJobDetails action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/GetThirdPartyJobDetailsInput type GetThirdPartyJobDetailsInput struct { _ struct{} `type:"structure"` @@ -5138,7 +5090,6 @@ func (s *GetThirdPartyJobDetailsInput) SetJobId(v string) *GetThirdPartyJobDetai } // Represents the output of a GetThirdPartyJobDetails action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/GetThirdPartyJobDetailsOutput type GetThirdPartyJobDetailsOutput struct { _ struct{} `type:"structure"` @@ -5164,7 +5115,6 @@ func (s *GetThirdPartyJobDetailsOutput) SetJobDetails(v *ThirdPartyJobDetails) * // Represents information about an artifact to be worked on, such as a test // or build artifact. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/InputArtifact type InputArtifact struct { _ struct{} `type:"structure"` @@ -5213,7 +5163,6 @@ func (s *InputArtifact) SetName(v string) *InputArtifact { } // Represents information about a job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/Job type Job struct { _ struct{} `type:"structure"` @@ -5268,7 +5217,6 @@ func (s *Job) SetNonce(v string) *Job { // Represents additional information about a job required for a job worker to // complete the job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/JobData type JobData struct { _ struct{} `type:"structure"` @@ -5361,7 +5309,6 @@ func (s *JobData) SetPipelineContext(v *PipelineContext) *JobData { } // Represents information about the details of a job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/JobDetails type JobDetails struct { _ struct{} `type:"structure"` @@ -5405,7 +5352,6 @@ func (s *JobDetails) SetId(v string) *JobDetails { } // Represents the input of a ListActionTypes action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ListActionTypesInput type ListActionTypesInput struct { _ struct{} `type:"structure"` @@ -5453,7 +5399,6 @@ func (s *ListActionTypesInput) SetNextToken(v string) *ListActionTypesInput { } // Represents the output of a ListActionTypes action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ListActionTypesOutput type ListActionTypesOutput struct { _ struct{} `type:"structure"` @@ -5491,7 +5436,6 @@ func (s *ListActionTypesOutput) SetNextToken(v string) *ListActionTypesOutput { } // Represents the input of a ListPipelineExecutions action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ListPipelineExecutionsInput type ListPipelineExecutionsInput struct { _ struct{} `type:"structure"` @@ -5562,7 +5506,6 @@ func (s *ListPipelineExecutionsInput) SetPipelineName(v string) *ListPipelineExe } // Represents the output of a ListPipelineExecutions action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ListPipelineExecutionsOutput type ListPipelineExecutionsOutput struct { _ struct{} `type:"structure"` @@ -5598,7 +5541,6 @@ func (s *ListPipelineExecutionsOutput) SetPipelineExecutionSummaries(v []*Pipeli } // Represents the input of a ListPipelines action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ListPipelinesInput type ListPipelinesInput struct { _ struct{} `type:"structure"` @@ -5637,7 +5579,6 @@ func (s *ListPipelinesInput) SetNextToken(v string) *ListPipelinesInput { } // Represents the output of a ListPipelines action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ListPipelinesOutput type ListPipelinesOutput struct { _ struct{} `type:"structure"` @@ -5673,7 +5614,6 @@ func (s *ListPipelinesOutput) SetPipelines(v []*PipelineSummary) *ListPipelinesO } // Represents information about the output of an action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/OutputArtifact type OutputArtifact struct { _ struct{} `type:"structure"` @@ -5724,7 +5664,6 @@ func (s *OutputArtifact) SetName(v string) *OutputArtifact { } // Represents information about a pipeline to a job worker. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PipelineContext type PipelineContext struct { _ struct{} `type:"structure"` @@ -5768,7 +5707,6 @@ func (s *PipelineContext) SetStage(v *StageContext) *PipelineContext { } // Represents the structure of actions and stages to be performed in the pipeline. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PipelineDeclaration type PipelineDeclaration struct { _ struct{} `type:"structure"` @@ -5884,7 +5822,6 @@ func (s *PipelineDeclaration) SetVersion(v int64) *PipelineDeclaration { } // Represents information about an execution of a pipeline. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PipelineExecution type PipelineExecution struct { _ struct{} `type:"structure"` @@ -5955,7 +5892,6 @@ func (s *PipelineExecution) SetStatus(v string) *PipelineExecution { } // Summary information about a pipeline execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PipelineExecutionSummary type PipelineExecutionSummary struct { _ struct{} `type:"structure"` @@ -6018,7 +5954,6 @@ func (s *PipelineExecutionSummary) SetStatus(v string) *PipelineExecutionSummary } // Information about a pipeline. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PipelineMetadata type PipelineMetadata struct { _ struct{} `type:"structure"` @@ -6061,7 +5996,6 @@ func (s *PipelineMetadata) SetUpdated(v time.Time) *PipelineMetadata { } // Returns a summary of a pipeline. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PipelineSummary type PipelineSummary struct { _ struct{} `type:"structure"` @@ -6113,7 +6047,6 @@ func (s *PipelineSummary) SetVersion(v int64) *PipelineSummary { } // Represents the input of a PollForJobs action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PollForJobsInput type PollForJobsInput struct { _ struct{} `type:"structure"` @@ -6182,7 +6115,6 @@ func (s *PollForJobsInput) SetQueryParam(v map[string]*string) *PollForJobsInput } // Represents the output of a PollForJobs action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PollForJobsOutput type PollForJobsOutput struct { _ struct{} `type:"structure"` @@ -6207,7 +6139,6 @@ func (s *PollForJobsOutput) SetJobs(v []*Job) *PollForJobsOutput { } // Represents the input of a PollForThirdPartyJobs action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PollForThirdPartyJobsInput type PollForThirdPartyJobsInput struct { _ struct{} `type:"structure"` @@ -6264,7 +6195,6 @@ func (s *PollForThirdPartyJobsInput) SetMaxBatchSize(v int64) *PollForThirdParty } // Represents the output of a PollForThirdPartyJobs action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PollForThirdPartyJobsOutput type PollForThirdPartyJobsOutput struct { _ struct{} `type:"structure"` @@ -6289,7 +6219,6 @@ func (s *PollForThirdPartyJobsOutput) SetJobs(v []*ThirdPartyJob) *PollForThirdP } // Represents the input of a PutActionRevision action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PutActionRevisionInput type PutActionRevisionInput struct { _ struct{} `type:"structure"` @@ -6385,7 +6314,6 @@ func (s *PutActionRevisionInput) SetStageName(v string) *PutActionRevisionInput } // Represents the output of a PutActionRevision action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PutActionRevisionOutput type PutActionRevisionOutput struct { _ struct{} `type:"structure"` @@ -6420,7 +6348,6 @@ func (s *PutActionRevisionOutput) SetPipelineExecutionId(v string) *PutActionRev } // Represents the input of a PutApprovalResult action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PutApprovalResultInput type PutApprovalResultInput struct { _ struct{} `type:"structure"` @@ -6533,7 +6460,6 @@ func (s *PutApprovalResultInput) SetToken(v string) *PutApprovalResultInput { } // Represents the output of a PutApprovalResult action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PutApprovalResultOutput type PutApprovalResultOutput struct { _ struct{} `type:"structure"` @@ -6558,7 +6484,6 @@ func (s *PutApprovalResultOutput) SetApprovedAt(v time.Time) *PutApprovalResultO } // Represents the input of a PutJobFailureResult action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PutJobFailureResultInput type PutJobFailureResultInput struct { _ struct{} `type:"structure"` @@ -6617,7 +6542,6 @@ func (s *PutJobFailureResultInput) SetJobId(v string) *PutJobFailureResultInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PutJobFailureResultOutput type PutJobFailureResultOutput struct { _ struct{} `type:"structure"` } @@ -6633,7 +6557,6 @@ func (s PutJobFailureResultOutput) GoString() string { } // Represents the input of a PutJobSuccessResult action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PutJobSuccessResultInput type PutJobSuccessResultInput struct { _ struct{} `type:"structure"` @@ -6717,7 +6640,6 @@ func (s *PutJobSuccessResultInput) SetJobId(v string) *PutJobSuccessResultInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PutJobSuccessResultOutput type PutJobSuccessResultOutput struct { _ struct{} `type:"structure"` } @@ -6733,7 +6655,6 @@ func (s PutJobSuccessResultOutput) GoString() string { } // Represents the input of a PutThirdPartyJobFailureResult action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PutThirdPartyJobFailureResultInput type PutThirdPartyJobFailureResultInput struct { _ struct{} `type:"structure"` @@ -6812,7 +6733,6 @@ func (s *PutThirdPartyJobFailureResultInput) SetJobId(v string) *PutThirdPartyJo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PutThirdPartyJobFailureResultOutput type PutThirdPartyJobFailureResultOutput struct { _ struct{} `type:"structure"` } @@ -6828,7 +6748,6 @@ func (s PutThirdPartyJobFailureResultOutput) GoString() string { } // Represents the input of a PutThirdPartyJobSuccessResult action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PutThirdPartyJobSuccessResultInput type PutThirdPartyJobSuccessResultInput struct { _ struct{} `type:"structure"` @@ -6932,7 +6851,6 @@ func (s *PutThirdPartyJobSuccessResultInput) SetJobId(v string) *PutThirdPartyJo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/PutThirdPartyJobSuccessResultOutput type PutThirdPartyJobSuccessResultOutput struct { _ struct{} `type:"structure"` } @@ -6948,7 +6866,6 @@ func (s PutThirdPartyJobSuccessResultOutput) GoString() string { } // Represents the input of a RetryStageExecution action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/RetryStageExecutionInput type RetryStageExecutionInput struct { _ struct{} `type:"structure"` @@ -7038,7 +6955,6 @@ func (s *RetryStageExecutionInput) SetStageName(v string) *RetryStageExecutionIn } // Represents the output of a RetryStageExecution action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/RetryStageExecutionOutput type RetryStageExecutionOutput struct { _ struct{} `type:"structure"` @@ -7063,7 +6979,6 @@ func (s *RetryStageExecutionOutput) SetPipelineExecutionId(v string) *RetryStage } // The location of the Amazon S3 bucket that contains a revision. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/S3ArtifactLocation type S3ArtifactLocation struct { _ struct{} `type:"structure"` @@ -7102,7 +7017,6 @@ func (s *S3ArtifactLocation) SetObjectKey(v string) *S3ArtifactLocation { } // Represents information about a stage to a job worker. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/StageContext type StageContext struct { _ struct{} `type:"structure"` @@ -7127,7 +7041,6 @@ func (s *StageContext) SetName(v string) *StageContext { } // Represents information about a stage and its definition. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/StageDeclaration type StageDeclaration struct { _ struct{} `type:"structure"` @@ -7213,7 +7126,6 @@ func (s *StageDeclaration) SetName(v string) *StageDeclaration { } // Represents information about the run of a stage. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/StageExecution type StageExecution struct { _ struct{} `type:"structure"` @@ -7252,7 +7164,6 @@ func (s *StageExecution) SetStatus(v string) *StageExecution { } // Represents information about the state of the stage. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/StageState type StageState struct { _ struct{} `type:"structure"` @@ -7305,7 +7216,6 @@ func (s *StageState) SetStageName(v string) *StageState { } // Represents the input of a StartPipelineExecution action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/StartPipelineExecutionInput type StartPipelineExecutionInput struct { _ struct{} `type:"structure"` @@ -7348,7 +7258,6 @@ func (s *StartPipelineExecutionInput) SetName(v string) *StartPipelineExecutionI } // Represents the output of a StartPipelineExecution action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/StartPipelineExecutionOutput type StartPipelineExecutionOutput struct { _ struct{} `type:"structure"` @@ -7374,7 +7283,6 @@ func (s *StartPipelineExecutionOutput) SetPipelineExecutionId(v string) *StartPi // A response to a PollForThirdPartyJobs request returned by AWS CodePipeline // when there is a job to be worked upon by a partner action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ThirdPartyJob type ThirdPartyJob struct { _ struct{} `type:"structure"` @@ -7409,7 +7317,6 @@ func (s *ThirdPartyJob) SetJobId(v string) *ThirdPartyJob { } // Represents information about the job data for a partner action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ThirdPartyJobData type ThirdPartyJobData struct { _ struct{} `type:"structure"` @@ -7509,7 +7416,6 @@ func (s *ThirdPartyJobData) SetPipelineContext(v *PipelineContext) *ThirdPartyJo } // The details of a job sent in response to a GetThirdPartyJobDetails request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/ThirdPartyJobDetails type ThirdPartyJobDetails struct { _ struct{} `type:"structure"` @@ -7555,7 +7461,6 @@ func (s *ThirdPartyJobDetails) SetNonce(v string) *ThirdPartyJobDetails { // Represents information about the state of transitions between one stage and // another stage. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/TransitionState type TransitionState struct { _ struct{} `type:"structure"` @@ -7608,7 +7513,6 @@ func (s *TransitionState) SetLastChangedBy(v string) *TransitionState { } // Represents the input of an UpdatePipeline action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/UpdatePipelineInput type UpdatePipelineInput struct { _ struct{} `type:"structure"` @@ -7653,7 +7557,6 @@ func (s *UpdatePipelineInput) SetPipeline(v *PipelineDeclaration) *UpdatePipelin } // Represents the output of an UpdatePipeline action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/codepipeline-2015-07-09/UpdatePipelineOutput type UpdatePipelineOutput struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/cognitoidentity/api.go b/vendor/github.com/aws/aws-sdk-go/service/cognitoidentity/api.go index 10fe4aef1..399ef91e2 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cognitoidentity/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cognitoidentity/api.go @@ -1842,7 +1842,6 @@ func (c *CognitoIdentity) UpdateIdentityPoolWithContext(ctx aws.Context, input * } // Input to the CreateIdentityPool action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/CreateIdentityPoolInput type CreateIdentityPoolInput struct { _ struct{} `type:"structure"` @@ -1964,7 +1963,6 @@ func (s *CreateIdentityPoolInput) SetSupportedLoginProviders(v map[string]*strin } // Credentials for the provided identity ID. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/Credentials type Credentials struct { _ struct{} `type:"structure"` @@ -2016,7 +2014,6 @@ func (s *Credentials) SetSessionToken(v string) *Credentials { } // Input to the DeleteIdentities action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/DeleteIdentitiesInput type DeleteIdentitiesInput struct { _ struct{} `type:"structure"` @@ -2059,7 +2056,6 @@ func (s *DeleteIdentitiesInput) SetIdentityIdsToDelete(v []*string) *DeleteIdent } // Returned in response to a successful DeleteIdentities operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/DeleteIdentitiesResponse type DeleteIdentitiesOutput struct { _ struct{} `type:"structure"` @@ -2085,7 +2081,6 @@ func (s *DeleteIdentitiesOutput) SetUnprocessedIdentityIds(v []*UnprocessedIdent } // Input to the DeleteIdentityPool action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/DeleteIdentityPoolInput type DeleteIdentityPoolInput struct { _ struct{} `type:"structure"` @@ -2127,7 +2122,6 @@ func (s *DeleteIdentityPoolInput) SetIdentityPoolId(v string) *DeleteIdentityPoo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/DeleteIdentityPoolOutput type DeleteIdentityPoolOutput struct { _ struct{} `type:"structure"` } @@ -2143,7 +2137,6 @@ func (s DeleteIdentityPoolOutput) GoString() string { } // Input to the DescribeIdentity action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/DescribeIdentityInput type DescribeIdentityInput struct { _ struct{} `type:"structure"` @@ -2186,7 +2179,6 @@ func (s *DescribeIdentityInput) SetIdentityId(v string) *DescribeIdentityInput { } // Input to the DescribeIdentityPool action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/DescribeIdentityPoolInput type DescribeIdentityPoolInput struct { _ struct{} `type:"structure"` @@ -2229,7 +2221,6 @@ func (s *DescribeIdentityPoolInput) SetIdentityPoolId(v string) *DescribeIdentit } // Input to the GetCredentialsForIdentity action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/GetCredentialsForIdentityInput type GetCredentialsForIdentityInput struct { _ struct{} `type:"structure"` @@ -2296,7 +2287,6 @@ func (s *GetCredentialsForIdentityInput) SetLogins(v map[string]*string) *GetCre } // Returned in response to a successful GetCredentialsForIdentity operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/GetCredentialsForIdentityResponse type GetCredentialsForIdentityOutput struct { _ struct{} `type:"structure"` @@ -2330,7 +2320,6 @@ func (s *GetCredentialsForIdentityOutput) SetIdentityId(v string) *GetCredential } // Input to the GetId action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/GetIdInput type GetIdInput struct { _ struct{} `type:"structure"` @@ -2407,7 +2396,6 @@ func (s *GetIdInput) SetLogins(v map[string]*string) *GetIdInput { } // Returned in response to a GetId request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/GetIdResponse type GetIdOutput struct { _ struct{} `type:"structure"` @@ -2432,7 +2420,6 @@ func (s *GetIdOutput) SetIdentityId(v string) *GetIdOutput { } // Input to the GetIdentityPoolRoles action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/GetIdentityPoolRolesInput type GetIdentityPoolRolesInput struct { _ struct{} `type:"structure"` @@ -2475,7 +2462,6 @@ func (s *GetIdentityPoolRolesInput) SetIdentityPoolId(v string) *GetIdentityPool } // Returned in response to a successful GetIdentityPoolRoles operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/GetIdentityPoolRolesResponse type GetIdentityPoolRolesOutput struct { _ struct{} `type:"structure"` @@ -2521,7 +2507,6 @@ func (s *GetIdentityPoolRolesOutput) SetRoles(v map[string]*string) *GetIdentity } // Input to the GetOpenIdTokenForDeveloperIdentity action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/GetOpenIdTokenForDeveloperIdentityInput type GetOpenIdTokenForDeveloperIdentityInput struct { _ struct{} `type:"structure"` @@ -2617,7 +2602,6 @@ func (s *GetOpenIdTokenForDeveloperIdentityInput) SetTokenDuration(v int64) *Get } // Returned in response to a successful GetOpenIdTokenForDeveloperIdentity request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/GetOpenIdTokenForDeveloperIdentityResponse type GetOpenIdTokenForDeveloperIdentityOutput struct { _ struct{} `type:"structure"` @@ -2651,7 +2635,6 @@ func (s *GetOpenIdTokenForDeveloperIdentityOutput) SetToken(v string) *GetOpenId } // Input to the GetOpenIdToken action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/GetOpenIdTokenInput type GetOpenIdTokenInput struct { _ struct{} `type:"structure"` @@ -2707,7 +2690,6 @@ func (s *GetOpenIdTokenInput) SetLogins(v map[string]*string) *GetOpenIdTokenInp } // Returned in response to a successful GetOpenIdToken request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/GetOpenIdTokenResponse type GetOpenIdTokenOutput struct { _ struct{} `type:"structure"` @@ -2742,7 +2724,6 @@ func (s *GetOpenIdTokenOutput) SetToken(v string) *GetOpenIdTokenOutput { } // A description of the identity. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/IdentityDescription type IdentityDescription struct { _ struct{} `type:"structure"` @@ -2794,7 +2775,6 @@ func (s *IdentityDescription) SetLogins(v []*string) *IdentityDescription { } // An object representing an Amazon Cognito identity pool. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/IdentityPool type IdentityPool struct { _ struct{} `type:"structure"` @@ -2927,7 +2907,6 @@ func (s *IdentityPool) SetSupportedLoginProviders(v map[string]*string) *Identit } // A description of the identity pool. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/IdentityPoolShortDescription type IdentityPoolShortDescription struct { _ struct{} `type:"structure"` @@ -2961,7 +2940,6 @@ func (s *IdentityPoolShortDescription) SetIdentityPoolName(v string) *IdentityPo } // Input to the ListIdentities action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/ListIdentitiesInput type ListIdentitiesInput struct { _ struct{} `type:"structure"` @@ -3044,7 +3022,6 @@ func (s *ListIdentitiesInput) SetNextToken(v string) *ListIdentitiesInput { } // The response to a ListIdentities request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/ListIdentitiesResponse type ListIdentitiesOutput struct { _ struct{} `type:"structure"` @@ -3087,7 +3064,6 @@ func (s *ListIdentitiesOutput) SetNextToken(v string) *ListIdentitiesOutput { } // Input to the ListIdentityPools action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/ListIdentityPoolsInput type ListIdentityPoolsInput struct { _ struct{} `type:"structure"` @@ -3142,7 +3118,6 @@ func (s *ListIdentityPoolsInput) SetNextToken(v string) *ListIdentityPoolsInput } // The result of a successful ListIdentityPools action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/ListIdentityPoolsResponse type ListIdentityPoolsOutput struct { _ struct{} `type:"structure"` @@ -3176,7 +3151,6 @@ func (s *ListIdentityPoolsOutput) SetNextToken(v string) *ListIdentityPoolsOutpu } // Input to the LookupDeveloperIdentityInput action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/LookupDeveloperIdentityInput type LookupDeveloperIdentityInput struct { _ struct{} `type:"structure"` @@ -3274,7 +3248,6 @@ func (s *LookupDeveloperIdentityInput) SetNextToken(v string) *LookupDeveloperId } // Returned in response to a successful LookupDeveloperIdentity action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/LookupDeveloperIdentityResponse type LookupDeveloperIdentityOutput struct { _ struct{} `type:"structure"` @@ -3325,7 +3298,6 @@ func (s *LookupDeveloperIdentityOutput) SetNextToken(v string) *LookupDeveloperI // A rule that maps a claim name, a claim value, and a match type to a role // ARN. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/MappingRule type MappingRule struct { _ struct{} `type:"structure"` @@ -3418,7 +3390,6 @@ func (s *MappingRule) SetValue(v string) *MappingRule { } // Input to the MergeDeveloperIdentities action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/MergeDeveloperIdentitiesInput type MergeDeveloperIdentitiesInput struct { _ struct{} `type:"structure"` @@ -3516,7 +3487,6 @@ func (s *MergeDeveloperIdentitiesInput) SetSourceUserIdentifier(v string) *Merge } // Returned in response to a successful MergeDeveloperIdentities action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/MergeDeveloperIdentitiesResponse type MergeDeveloperIdentitiesOutput struct { _ struct{} `type:"structure"` @@ -3542,7 +3512,6 @@ func (s *MergeDeveloperIdentitiesOutput) SetIdentityId(v string) *MergeDeveloper // A provider representing an Amazon Cognito Identity User Pool and its client // ID. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/CognitoIdentityProvider type Provider struct { _ struct{} `type:"structure"` @@ -3603,7 +3572,6 @@ func (s *Provider) SetServerSideTokenCheck(v bool) *Provider { } // A role mapping. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/RoleMapping type RoleMapping struct { _ struct{} `type:"structure"` @@ -3674,7 +3642,6 @@ func (s *RoleMapping) SetType(v string) *RoleMapping { } // A container for rules. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/RulesConfigurationType type RulesConfigurationType struct { _ struct{} `type:"structure"` @@ -3729,7 +3696,6 @@ func (s *RulesConfigurationType) SetRules(v []*MappingRule) *RulesConfigurationT } // Input to the SetIdentityPoolRoles action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/SetIdentityPoolRolesInput type SetIdentityPoolRolesInput struct { _ struct{} `type:"structure"` @@ -3810,7 +3776,6 @@ func (s *SetIdentityPoolRolesInput) SetRoles(v map[string]*string) *SetIdentityP return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/SetIdentityPoolRolesOutput type SetIdentityPoolRolesOutput struct { _ struct{} `type:"structure"` } @@ -3826,7 +3791,6 @@ func (s SetIdentityPoolRolesOutput) GoString() string { } // Input to the UnlinkDeveloperIdentity action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/UnlinkDeveloperIdentityInput type UnlinkDeveloperIdentityInput struct { _ struct{} `type:"structure"` @@ -3919,7 +3883,6 @@ func (s *UnlinkDeveloperIdentityInput) SetIdentityPoolId(v string) *UnlinkDevelo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/UnlinkDeveloperIdentityOutput type UnlinkDeveloperIdentityOutput struct { _ struct{} `type:"structure"` } @@ -3935,7 +3898,6 @@ func (s UnlinkDeveloperIdentityOutput) GoString() string { } // Input to the UnlinkIdentity action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/UnlinkIdentityInput type UnlinkIdentityInput struct { _ struct{} `type:"structure"` @@ -4005,7 +3967,6 @@ func (s *UnlinkIdentityInput) SetLoginsToRemove(v []*string) *UnlinkIdentityInpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/UnlinkIdentityOutput type UnlinkIdentityOutput struct { _ struct{} `type:"structure"` } @@ -4022,7 +3983,6 @@ func (s UnlinkIdentityOutput) GoString() string { // An array of UnprocessedIdentityId objects, each of which contains an ErrorCode // and IdentityId. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-identity-2014-06-30/UnprocessedIdentityId type UnprocessedIdentityId struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/cognitoidentityprovider/api.go b/vendor/github.com/aws/aws-sdk-go/service/cognitoidentityprovider/api.go index 40c3e08dc..2e5b4389c 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cognitoidentityprovider/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cognitoidentityprovider/api.go @@ -10021,7 +10021,6 @@ func (c *CognitoIdentityProvider) VerifyUserAttributeWithContext(ctx aws.Context } // Account takeover action type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AccountTakeoverActionType type AccountTakeoverActionType struct { _ struct{} `type:"structure"` @@ -10085,7 +10084,6 @@ func (s *AccountTakeoverActionType) SetNotify(v bool) *AccountTakeoverActionType } // Account takeover actions type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AccountTakeoverActionsType type AccountTakeoverActionsType struct { _ struct{} `type:"structure"` @@ -10154,7 +10152,6 @@ func (s *AccountTakeoverActionsType) SetMediumAction(v *AccountTakeoverActionTyp // Configuration for mitigation actions and notification for different levels // of risk detected for a potential account takeover. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AccountTakeoverRiskConfigurationType type AccountTakeoverRiskConfigurationType struct { _ struct{} `type:"structure"` @@ -10213,7 +10210,6 @@ func (s *AccountTakeoverRiskConfigurationType) SetNotifyConfiguration(v *NotifyC } // Represents the request to add custom attributes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AddCustomAttributesRequest type AddCustomAttributesInput struct { _ struct{} `type:"structure"` @@ -10283,7 +10279,6 @@ func (s *AddCustomAttributesInput) SetUserPoolId(v string) *AddCustomAttributesI } // Represents the response from the server for the request to add custom attributes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AddCustomAttributesResponse type AddCustomAttributesOutput struct { _ struct{} `type:"structure"` } @@ -10298,7 +10293,6 @@ func (s AddCustomAttributesOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminAddUserToGroupRequest type AdminAddUserToGroupInput struct { _ struct{} `type:"structure"` @@ -10374,7 +10368,6 @@ func (s *AdminAddUserToGroupInput) SetUsername(v string) *AdminAddUserToGroupInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminAddUserToGroupOutput type AdminAddUserToGroupOutput struct { _ struct{} `type:"structure"` } @@ -10390,7 +10383,6 @@ func (s AdminAddUserToGroupOutput) GoString() string { } // Represents the request to confirm user registration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminConfirmSignUpRequest type AdminConfirmSignUpInput struct { _ struct{} `type:"structure"` @@ -10450,7 +10442,6 @@ func (s *AdminConfirmSignUpInput) SetUsername(v string) *AdminConfirmSignUpInput } // Represents the response from the server for the request to confirm registration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminConfirmSignUpResponse type AdminConfirmSignUpOutput struct { _ struct{} `type:"structure"` } @@ -10466,7 +10457,6 @@ func (s AdminConfirmSignUpOutput) GoString() string { } // The configuration for creating a new user profile. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminCreateUserConfigType type AdminCreateUserConfigType struct { _ struct{} `type:"structure"` @@ -10530,7 +10520,6 @@ func (s *AdminCreateUserConfigType) SetUnusedAccountValidityDays(v int64) *Admin } // Represents the request to create a user in the specified user pool. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminCreateUserRequest type AdminCreateUserInput struct { _ struct{} `type:"structure"` @@ -10734,7 +10723,6 @@ func (s *AdminCreateUserInput) SetValidationData(v []*AttributeType) *AdminCreat } // Represents the response from the server to the request to create the user. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminCreateUserResponse type AdminCreateUserOutput struct { _ struct{} `type:"structure"` @@ -10759,7 +10747,6 @@ func (s *AdminCreateUserOutput) SetUser(v *UserType) *AdminCreateUserOutput { } // Represents the request to delete user attributes as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminDeleteUserAttributesRequest type AdminDeleteUserAttributesInput struct { _ struct{} `type:"structure"` @@ -10837,7 +10824,6 @@ func (s *AdminDeleteUserAttributesInput) SetUsername(v string) *AdminDeleteUserA // Represents the response received from the server for a request to delete // user attributes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminDeleteUserAttributesResponse type AdminDeleteUserAttributesOutput struct { _ struct{} `type:"structure"` } @@ -10853,7 +10839,6 @@ func (s AdminDeleteUserAttributesOutput) GoString() string { } // Represents the request to delete a user as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminDeleteUserRequest type AdminDeleteUserInput struct { _ struct{} `type:"structure"` @@ -10912,7 +10897,6 @@ func (s *AdminDeleteUserInput) SetUsername(v string) *AdminDeleteUserInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminDeleteUserOutput type AdminDeleteUserOutput struct { _ struct{} `type:"structure"` } @@ -10927,7 +10911,6 @@ func (s AdminDeleteUserOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminDisableProviderForUserRequest type AdminDisableProviderForUserInput struct { _ struct{} `type:"structure"` @@ -10985,7 +10968,6 @@ func (s *AdminDisableProviderForUserInput) SetUserPoolId(v string) *AdminDisable return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminDisableProviderForUserResponse type AdminDisableProviderForUserOutput struct { _ struct{} `type:"structure"` } @@ -11001,7 +10983,6 @@ func (s AdminDisableProviderForUserOutput) GoString() string { } // Represents the request to disable any user as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminDisableUserRequest type AdminDisableUserInput struct { _ struct{} `type:"structure"` @@ -11062,7 +11043,6 @@ func (s *AdminDisableUserInput) SetUsername(v string) *AdminDisableUserInput { // Represents the response received from the server to disable the user as an // administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminDisableUserResponse type AdminDisableUserOutput struct { _ struct{} `type:"structure"` } @@ -11078,7 +11058,6 @@ func (s AdminDisableUserOutput) GoString() string { } // Represents the request that enables the user as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminEnableUserRequest type AdminEnableUserInput struct { _ struct{} `type:"structure"` @@ -11139,7 +11118,6 @@ func (s *AdminEnableUserInput) SetUsername(v string) *AdminEnableUserInput { // Represents the response from the server for the request to enable a user // as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminEnableUserResponse type AdminEnableUserOutput struct { _ struct{} `type:"structure"` } @@ -11155,7 +11133,6 @@ func (s AdminEnableUserOutput) GoString() string { } // Sends the forgot device request, as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminForgetDeviceRequest type AdminForgetDeviceInput struct { _ struct{} `type:"structure"` @@ -11231,7 +11208,6 @@ func (s *AdminForgetDeviceInput) SetUsername(v string) *AdminForgetDeviceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminForgetDeviceOutput type AdminForgetDeviceOutput struct { _ struct{} `type:"structure"` } @@ -11247,7 +11223,6 @@ func (s AdminForgetDeviceOutput) GoString() string { } // Represents the request to get the device, as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminGetDeviceRequest type AdminGetDeviceInput struct { _ struct{} `type:"structure"` @@ -11324,7 +11299,6 @@ func (s *AdminGetDeviceInput) SetUsername(v string) *AdminGetDeviceInput { } // Gets the device response, as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminGetDeviceResponse type AdminGetDeviceOutput struct { _ struct{} `type:"structure"` @@ -11351,7 +11325,6 @@ func (s *AdminGetDeviceOutput) SetDevice(v *DeviceType) *AdminGetDeviceOutput { } // Represents the request to get the specified user as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminGetUserRequest type AdminGetUserInput struct { _ struct{} `type:"structure"` @@ -11413,7 +11386,6 @@ func (s *AdminGetUserInput) SetUsername(v string) *AdminGetUserInput { // Represents the response from the server from the request to get the specified // user as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminGetUserResponse type AdminGetUserOutput struct { _ struct{} `type:"structure"` @@ -11522,7 +11494,6 @@ func (s *AdminGetUserOutput) SetUsername(v string) *AdminGetUserOutput { } // Initiates the authorization request, as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminInitiateAuthRequest type AdminInitiateAuthInput struct { _ struct{} `type:"structure"` @@ -11677,7 +11648,6 @@ func (s *AdminInitiateAuthInput) SetUserPoolId(v string) *AdminInitiateAuthInput } // Initiates the authentication response, as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminInitiateAuthResponse type AdminInitiateAuthOutput struct { _ struct{} `type:"structure"` @@ -11771,7 +11741,6 @@ func (s *AdminInitiateAuthOutput) SetSession(v string) *AdminInitiateAuthOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminLinkProviderForUserRequest type AdminLinkProviderForUserInput struct { _ struct{} `type:"structure"` @@ -11876,7 +11845,6 @@ func (s *AdminLinkProviderForUserInput) SetUserPoolId(v string) *AdminLinkProvid return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminLinkProviderForUserResponse type AdminLinkProviderForUserOutput struct { _ struct{} `type:"structure"` } @@ -11892,7 +11860,6 @@ func (s AdminLinkProviderForUserOutput) GoString() string { } // Represents the request to list devices, as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminListDevicesRequest type AdminListDevicesInput struct { _ struct{} `type:"structure"` @@ -11973,7 +11940,6 @@ func (s *AdminListDevicesInput) SetUsername(v string) *AdminListDevicesInput { } // Lists the device's response, as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminListDevicesResponse type AdminListDevicesOutput struct { _ struct{} `type:"structure"` @@ -12006,7 +11972,6 @@ func (s *AdminListDevicesOutput) SetPaginationToken(v string) *AdminListDevicesO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminListGroupsForUserRequest type AdminListGroupsForUserInput struct { _ struct{} `type:"structure"` @@ -12087,7 +12052,6 @@ func (s *AdminListGroupsForUserInput) SetUsername(v string) *AdminListGroupsForU return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminListGroupsForUserResponse type AdminListGroupsForUserOutput struct { _ struct{} `type:"structure"` @@ -12121,7 +12085,6 @@ func (s *AdminListGroupsForUserOutput) SetNextToken(v string) *AdminListGroupsFo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminListUserAuthEventsRequest type AdminListUserAuthEventsInput struct { _ struct{} `type:"structure"` @@ -12201,7 +12164,6 @@ func (s *AdminListUserAuthEventsInput) SetUsername(v string) *AdminListUserAuthE return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminListUserAuthEventsResponse type AdminListUserAuthEventsOutput struct { _ struct{} `type:"structure"` @@ -12235,7 +12197,6 @@ func (s *AdminListUserAuthEventsOutput) SetNextToken(v string) *AdminListUserAut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminRemoveUserFromGroupRequest type AdminRemoveUserFromGroupInput struct { _ struct{} `type:"structure"` @@ -12311,7 +12272,6 @@ func (s *AdminRemoveUserFromGroupInput) SetUsername(v string) *AdminRemoveUserFr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminRemoveUserFromGroupOutput type AdminRemoveUserFromGroupOutput struct { _ struct{} `type:"structure"` } @@ -12327,7 +12287,6 @@ func (s AdminRemoveUserFromGroupOutput) GoString() string { } // Represents the request to reset a user's password as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminResetUserPasswordRequest type AdminResetUserPasswordInput struct { _ struct{} `type:"structure"` @@ -12387,7 +12346,6 @@ func (s *AdminResetUserPasswordInput) SetUsername(v string) *AdminResetUserPassw } // Represents the response from the server to reset a user password as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminResetUserPasswordResponse type AdminResetUserPasswordOutput struct { _ struct{} `type:"structure"` } @@ -12403,7 +12361,6 @@ func (s AdminResetUserPasswordOutput) GoString() string { } // The request to respond to the authentication challenge, as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminRespondToAuthChallengeRequest type AdminRespondToAuthChallengeInput struct { _ struct{} `type:"structure"` @@ -12548,7 +12505,6 @@ func (s *AdminRespondToAuthChallengeInput) SetUserPoolId(v string) *AdminRespond } // Responds to the authentication challenge, as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminRespondToAuthChallengeResponse type AdminRespondToAuthChallengeOutput struct { _ struct{} `type:"structure"` @@ -12603,7 +12559,6 @@ func (s *AdminRespondToAuthChallengeOutput) SetSession(v string) *AdminRespondTo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminSetUserMFAPreferenceRequest type AdminSetUserMFAPreferenceInput struct { _ struct{} `type:"structure"` @@ -12680,7 +12635,6 @@ func (s *AdminSetUserMFAPreferenceInput) SetUsername(v string) *AdminSetUserMFAP return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminSetUserMFAPreferenceResponse type AdminSetUserMFAPreferenceOutput struct { _ struct{} `type:"structure"` } @@ -12696,7 +12650,6 @@ func (s AdminSetUserMFAPreferenceOutput) GoString() string { } // Represents the request to set user settings as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminSetUserSettingsRequest type AdminSetUserSettingsInput struct { _ struct{} `type:"structure"` @@ -12781,7 +12734,6 @@ func (s *AdminSetUserSettingsInput) SetUsername(v string) *AdminSetUserSettingsI } // Represents the response from the server to set user settings as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminSetUserSettingsResponse type AdminSetUserSettingsOutput struct { _ struct{} `type:"structure"` } @@ -12796,7 +12748,6 @@ func (s AdminSetUserSettingsOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminUpdateAuthEventFeedbackRequest type AdminUpdateAuthEventFeedbackInput struct { _ struct{} `type:"structure"` @@ -12886,7 +12837,6 @@ func (s *AdminUpdateAuthEventFeedbackInput) SetUsername(v string) *AdminUpdateAu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminUpdateAuthEventFeedbackResponse type AdminUpdateAuthEventFeedbackOutput struct { _ struct{} `type:"structure"` } @@ -12902,7 +12852,6 @@ func (s AdminUpdateAuthEventFeedbackOutput) GoString() string { } // The request to update the device status, as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminUpdateDeviceStatusRequest type AdminUpdateDeviceStatusInput struct { _ struct{} `type:"structure"` @@ -12988,7 +12937,6 @@ func (s *AdminUpdateDeviceStatusInput) SetUsername(v string) *AdminUpdateDeviceS } // The status response from the request to update the device, as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminUpdateDeviceStatusResponse type AdminUpdateDeviceStatusOutput struct { _ struct{} `type:"structure"` } @@ -13004,7 +12952,6 @@ func (s AdminUpdateDeviceStatusOutput) GoString() string { } // Represents the request to update the user's attributes as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminUpdateUserAttributesRequest type AdminUpdateUserAttributesInput struct { _ struct{} `type:"structure"` @@ -13092,7 +13039,6 @@ func (s *AdminUpdateUserAttributesInput) SetUsername(v string) *AdminUpdateUserA // Represents the response from the server for the request to update user attributes // as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminUpdateUserAttributesResponse type AdminUpdateUserAttributesOutput struct { _ struct{} `type:"structure"` } @@ -13108,7 +13054,6 @@ func (s AdminUpdateUserAttributesOutput) GoString() string { } // The request to sign out of all devices, as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminUserGlobalSignOutRequest type AdminUserGlobalSignOutInput struct { _ struct{} `type:"structure"` @@ -13168,7 +13113,6 @@ func (s *AdminUserGlobalSignOutInput) SetUsername(v string) *AdminUserGlobalSign } // The global sign-out response, as an administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AdminUserGlobalSignOutResponse type AdminUserGlobalSignOutOutput struct { _ struct{} `type:"structure"` } @@ -13185,7 +13129,6 @@ func (s AdminUserGlobalSignOutOutput) GoString() string { // The Amazon Pinpoint analytics configuration for collecting metrics for a // user pool. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AnalyticsConfigurationType type AnalyticsConfigurationType struct { _ struct{} `type:"structure"` @@ -13270,7 +13213,6 @@ func (s *AnalyticsConfigurationType) SetUserDataShared(v bool) *AnalyticsConfigu // // An endpoint uniquely identifies a mobile device, email address, or phone // number that can receive messages from Amazon Pinpoint analytics. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AnalyticsMetadataType type AnalyticsMetadataType struct { _ struct{} `type:"structure"` @@ -13294,7 +13236,6 @@ func (s *AnalyticsMetadataType) SetAnalyticsEndpointId(v string) *AnalyticsMetad return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AssociateSoftwareTokenRequest type AssociateSoftwareTokenInput struct { _ struct{} `type:"structure"` @@ -13342,7 +13283,6 @@ func (s *AssociateSoftwareTokenInput) SetSession(v string) *AssociateSoftwareTok return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AssociateSoftwareTokenResponse type AssociateSoftwareTokenOutput struct { _ struct{} `type:"structure"` @@ -13379,7 +13319,6 @@ func (s *AssociateSoftwareTokenOutput) SetSession(v string) *AssociateSoftwareTo } // Specifies whether the attribute is standard or custom. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AttributeType type AttributeType struct { _ struct{} `type:"structure"` @@ -13431,7 +13370,6 @@ func (s *AttributeType) SetValue(v string) *AttributeType { } // The authentication event type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AuthEventType type AuthEventType struct { _ struct{} `type:"structure"` @@ -13521,7 +13459,6 @@ func (s *AuthEventType) SetEventType(v string) *AuthEventType { } // The authentication result. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/AuthenticationResultType type AuthenticationResultType struct { _ struct{} `type:"structure"` @@ -13591,7 +13528,6 @@ func (s *AuthenticationResultType) SetTokenType(v string) *AuthenticationResultT } // The challenge response type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ChallengeResponseType type ChallengeResponseType struct { _ struct{} `type:"structure"` @@ -13625,7 +13561,6 @@ func (s *ChallengeResponseType) SetChallengeResponse(v string) *ChallengeRespons } // Represents the request to change a user password. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ChangePasswordRequest type ChangePasswordInput struct { _ struct{} `type:"structure"` @@ -13699,7 +13634,6 @@ func (s *ChangePasswordInput) SetProposedPassword(v string) *ChangePasswordInput } // The response from the server to the change password request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ChangePasswordResponse type ChangePasswordOutput struct { _ struct{} `type:"structure"` } @@ -13715,7 +13649,6 @@ func (s ChangePasswordOutput) GoString() string { } // The code delivery details being returned from the server. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/CodeDeliveryDetailsType type CodeDeliveryDetailsType struct { _ struct{} `type:"structure"` @@ -13758,7 +13691,6 @@ func (s *CodeDeliveryDetailsType) SetDestination(v string) *CodeDeliveryDetailsT } // The compromised credentials actions type -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/CompromisedCredentialsActionsType type CompromisedCredentialsActionsType struct { _ struct{} `type:"structure"` @@ -13798,7 +13730,6 @@ func (s *CompromisedCredentialsActionsType) SetEventAction(v string) *Compromise } // The compromised credentials risk configuration type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/CompromisedCredentialsRiskConfigurationType type CompromisedCredentialsRiskConfigurationType struct { _ struct{} `type:"structure"` @@ -13853,7 +13784,6 @@ func (s *CompromisedCredentialsRiskConfigurationType) SetEventFilter(v []*string } // Confirms the device request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ConfirmDeviceRequest type ConfirmDeviceInput struct { _ struct{} `type:"structure"` @@ -13931,7 +13861,6 @@ func (s *ConfirmDeviceInput) SetDeviceSecretVerifierConfig(v *DeviceSecretVerifi } // Confirms the device response. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ConfirmDeviceResponse type ConfirmDeviceOutput struct { _ struct{} `type:"structure"` @@ -13957,7 +13886,6 @@ func (s *ConfirmDeviceOutput) SetUserConfirmationNecessary(v bool) *ConfirmDevic } // The request representing the confirmation for a password reset. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ConfirmForgotPasswordRequest type ConfirmForgotPasswordInput struct { _ struct{} `type:"structure"` @@ -14088,7 +14016,6 @@ func (s *ConfirmForgotPasswordInput) SetUsername(v string) *ConfirmForgotPasswor // The response from the server that results from a user's request to retrieve // a forgotten password. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ConfirmForgotPasswordResponse type ConfirmForgotPasswordOutput struct { _ struct{} `type:"structure"` } @@ -14104,7 +14031,6 @@ func (s ConfirmForgotPasswordOutput) GoString() string { } // Represents the request to confirm registration of a user. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ConfirmSignUpRequest type ConfirmSignUpInput struct { _ struct{} `type:"structure"` @@ -14229,7 +14155,6 @@ func (s *ConfirmSignUpInput) SetUsername(v string) *ConfirmSignUpInput { } // Represents the response from the server for the registration confirmation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ConfirmSignUpResponse type ConfirmSignUpOutput struct { _ struct{} `type:"structure"` } @@ -14246,7 +14171,6 @@ func (s ConfirmSignUpOutput) GoString() string { // Contextual user data type used for evaluating the risk of an unexpected event // by Amazon Cognito advanced security. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ContextDataType type ContextDataType struct { _ struct{} `type:"structure"` @@ -14337,7 +14261,6 @@ func (s *ContextDataType) SetServerPath(v string) *ContextDataType { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/CreateGroupRequest type CreateGroupInput struct { _ struct{} `type:"structure"` @@ -14440,7 +14363,6 @@ func (s *CreateGroupInput) SetUserPoolId(v string) *CreateGroupInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/CreateGroupResponse type CreateGroupOutput struct { _ struct{} `type:"structure"` @@ -14464,7 +14386,6 @@ func (s *CreateGroupOutput) SetGroup(v *GroupType) *CreateGroupOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/CreateIdentityProviderRequest type CreateIdentityProviderInput struct { _ struct{} `type:"structure"` @@ -14570,7 +14491,6 @@ func (s *CreateIdentityProviderInput) SetUserPoolId(v string) *CreateIdentityPro return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/CreateIdentityProviderResponse type CreateIdentityProviderOutput struct { _ struct{} `type:"structure"` @@ -14596,7 +14516,6 @@ func (s *CreateIdentityProviderOutput) SetIdentityProvider(v *IdentityProviderTy return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/CreateResourceServerRequest type CreateResourceServerInput struct { _ struct{} `type:"structure"` @@ -14692,7 +14611,6 @@ func (s *CreateResourceServerInput) SetUserPoolId(v string) *CreateResourceServe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/CreateResourceServerResponse type CreateResourceServerOutput struct { _ struct{} `type:"structure"` @@ -14719,7 +14637,6 @@ func (s *CreateResourceServerOutput) SetResourceServer(v *ResourceServerType) *C } // Represents the request to create the user import job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/CreateUserImportJobRequest type CreateUserImportJobInput struct { _ struct{} `type:"structure"` @@ -14797,7 +14714,6 @@ func (s *CreateUserImportJobInput) SetUserPoolId(v string) *CreateUserImportJobI // Represents the response from the server to the request to create the user // import job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/CreateUserImportJobResponse type CreateUserImportJobOutput struct { _ struct{} `type:"structure"` @@ -14822,7 +14738,6 @@ func (s *CreateUserImportJobOutput) SetUserImportJob(v *UserImportJobType) *Crea } // Represents the request to create a user pool client. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/CreateUserPoolClientRequest type CreateUserPoolClientInput struct { _ struct{} `type:"structure"` @@ -15018,7 +14933,6 @@ func (s *CreateUserPoolClientInput) SetWriteAttributes(v []*string) *CreateUserP } // Represents the response from the server to create a user pool client. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/CreateUserPoolClientResponse type CreateUserPoolClientOutput struct { _ struct{} `type:"structure"` @@ -15042,7 +14956,6 @@ func (s *CreateUserPoolClientOutput) SetUserPoolClient(v *UserPoolClientType) *C return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/CreateUserPoolDomainRequest type CreateUserPoolDomainInput struct { _ struct{} `type:"structure"` @@ -15101,7 +15014,6 @@ func (s *CreateUserPoolDomainInput) SetUserPoolId(v string) *CreateUserPoolDomai return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/CreateUserPoolDomainResponse type CreateUserPoolDomainOutput struct { _ struct{} `type:"structure"` } @@ -15117,7 +15029,6 @@ func (s CreateUserPoolDomainOutput) GoString() string { } // Represents the request to create a user pool. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/CreateUserPoolRequest type CreateUserPoolInput struct { _ struct{} `type:"structure"` @@ -15389,7 +15300,6 @@ func (s *CreateUserPoolInput) SetVerificationMessageTemplate(v *VerificationMess // Represents the response from the server for the request to create a user // pool. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/CreateUserPoolResponse type CreateUserPoolOutput struct { _ struct{} `type:"structure"` @@ -15413,7 +15323,6 @@ func (s *CreateUserPoolOutput) SetUserPool(v *UserPoolType) *CreateUserPoolOutpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DeleteGroupRequest type DeleteGroupInput struct { _ struct{} `type:"structure"` @@ -15472,7 +15381,6 @@ func (s *DeleteGroupInput) SetUserPoolId(v string) *DeleteGroupInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DeleteGroupOutput type DeleteGroupOutput struct { _ struct{} `type:"structure"` } @@ -15487,7 +15395,6 @@ func (s DeleteGroupOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DeleteIdentityProviderRequest type DeleteIdentityProviderInput struct { _ struct{} `type:"structure"` @@ -15546,7 +15453,6 @@ func (s *DeleteIdentityProviderInput) SetUserPoolId(v string) *DeleteIdentityPro return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DeleteIdentityProviderOutput type DeleteIdentityProviderOutput struct { _ struct{} `type:"structure"` } @@ -15561,7 +15467,6 @@ func (s DeleteIdentityProviderOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DeleteResourceServerRequest type DeleteResourceServerInput struct { _ struct{} `type:"structure"` @@ -15620,7 +15525,6 @@ func (s *DeleteResourceServerInput) SetUserPoolId(v string) *DeleteResourceServe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DeleteResourceServerOutput type DeleteResourceServerOutput struct { _ struct{} `type:"structure"` } @@ -15636,7 +15540,6 @@ func (s DeleteResourceServerOutput) GoString() string { } // Represents the request to delete user attributes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DeleteUserAttributesRequest type DeleteUserAttributesInput struct { _ struct{} `type:"structure"` @@ -15693,7 +15596,6 @@ func (s *DeleteUserAttributesInput) SetUserAttributeNames(v []*string) *DeleteUs } // Represents the response from the server to delete user attributes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DeleteUserAttributesResponse type DeleteUserAttributesOutput struct { _ struct{} `type:"structure"` } @@ -15709,7 +15611,6 @@ func (s DeleteUserAttributesOutput) GoString() string { } // Represents the request to delete a user. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DeleteUserRequest type DeleteUserInput struct { _ struct{} `type:"structure"` @@ -15748,7 +15649,6 @@ func (s *DeleteUserInput) SetAccessToken(v string) *DeleteUserInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DeleteUserOutput type DeleteUserOutput struct { _ struct{} `type:"structure"` } @@ -15764,7 +15664,6 @@ func (s DeleteUserOutput) GoString() string { } // Represents the request to delete a user pool client. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DeleteUserPoolClientRequest type DeleteUserPoolClientInput struct { _ struct{} `type:"structure"` @@ -15823,7 +15722,6 @@ func (s *DeleteUserPoolClientInput) SetUserPoolId(v string) *DeleteUserPoolClien return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DeleteUserPoolClientOutput type DeleteUserPoolClientOutput struct { _ struct{} `type:"structure"` } @@ -15838,7 +15736,6 @@ func (s DeleteUserPoolClientOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DeleteUserPoolDomainRequest type DeleteUserPoolDomainInput struct { _ struct{} `type:"structure"` @@ -15897,7 +15794,6 @@ func (s *DeleteUserPoolDomainInput) SetUserPoolId(v string) *DeleteUserPoolDomai return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DeleteUserPoolDomainResponse type DeleteUserPoolDomainOutput struct { _ struct{} `type:"structure"` } @@ -15913,7 +15809,6 @@ func (s DeleteUserPoolDomainOutput) GoString() string { } // Represents the request to delete a user pool. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DeleteUserPoolRequest type DeleteUserPoolInput struct { _ struct{} `type:"structure"` @@ -15955,7 +15850,6 @@ func (s *DeleteUserPoolInput) SetUserPoolId(v string) *DeleteUserPoolInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DeleteUserPoolOutput type DeleteUserPoolOutput struct { _ struct{} `type:"structure"` } @@ -15970,7 +15864,6 @@ func (s DeleteUserPoolOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DescribeIdentityProviderRequest type DescribeIdentityProviderInput struct { _ struct{} `type:"structure"` @@ -16029,7 +15922,6 @@ func (s *DescribeIdentityProviderInput) SetUserPoolId(v string) *DescribeIdentit return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DescribeIdentityProviderResponse type DescribeIdentityProviderOutput struct { _ struct{} `type:"structure"` @@ -16055,7 +15947,6 @@ func (s *DescribeIdentityProviderOutput) SetIdentityProvider(v *IdentityProvider return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DescribeResourceServerRequest type DescribeResourceServerInput struct { _ struct{} `type:"structure"` @@ -16114,7 +16005,6 @@ func (s *DescribeResourceServerInput) SetUserPoolId(v string) *DescribeResourceS return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DescribeResourceServerResponse type DescribeResourceServerOutput struct { _ struct{} `type:"structure"` @@ -16140,7 +16030,6 @@ func (s *DescribeResourceServerOutput) SetResourceServer(v *ResourceServerType) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DescribeRiskConfigurationRequest type DescribeRiskConfigurationInput struct { _ struct{} `type:"structure"` @@ -16194,7 +16083,6 @@ func (s *DescribeRiskConfigurationInput) SetUserPoolId(v string) *DescribeRiskCo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DescribeRiskConfigurationResponse type DescribeRiskConfigurationOutput struct { _ struct{} `type:"structure"` @@ -16221,7 +16109,6 @@ func (s *DescribeRiskConfigurationOutput) SetRiskConfiguration(v *RiskConfigurat } // Represents the request to describe the user import job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DescribeUserImportJobRequest type DescribeUserImportJobInput struct { _ struct{} `type:"structure"` @@ -16282,7 +16169,6 @@ func (s *DescribeUserImportJobInput) SetUserPoolId(v string) *DescribeUserImport // Represents the response from the server to the request to describe the user // import job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DescribeUserImportJobResponse type DescribeUserImportJobOutput struct { _ struct{} `type:"structure"` @@ -16307,7 +16193,6 @@ func (s *DescribeUserImportJobOutput) SetUserImportJob(v *UserImportJobType) *De } // Represents the request to describe a user pool client. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DescribeUserPoolClientRequest type DescribeUserPoolClientInput struct { _ struct{} `type:"structure"` @@ -16368,7 +16253,6 @@ func (s *DescribeUserPoolClientInput) SetUserPoolId(v string) *DescribeUserPoolC // Represents the response from the server from a request to describe the user // pool client. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DescribeUserPoolClientResponse type DescribeUserPoolClientOutput struct { _ struct{} `type:"structure"` @@ -16392,7 +16276,6 @@ func (s *DescribeUserPoolClientOutput) SetUserPoolClient(v *UserPoolClientType) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DescribeUserPoolDomainRequest type DescribeUserPoolDomainInput struct { _ struct{} `type:"structure"` @@ -16434,7 +16317,6 @@ func (s *DescribeUserPoolDomainInput) SetDomain(v string) *DescribeUserPoolDomai return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DescribeUserPoolDomainResponse type DescribeUserPoolDomainOutput struct { _ struct{} `type:"structure"` @@ -16459,7 +16341,6 @@ func (s *DescribeUserPoolDomainOutput) SetDomainDescription(v *DomainDescription } // Represents the request to describe the user pool. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DescribeUserPoolRequest type DescribeUserPoolInput struct { _ struct{} `type:"structure"` @@ -16502,7 +16383,6 @@ func (s *DescribeUserPoolInput) SetUserPoolId(v string) *DescribeUserPoolInput { } // Represents the response to describe the user pool. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DescribeUserPoolResponse type DescribeUserPoolOutput struct { _ struct{} `type:"structure"` @@ -16527,7 +16407,6 @@ func (s *DescribeUserPoolOutput) SetUserPool(v *UserPoolType) *DescribeUserPoolO } // The configuration for the user pool's device tracking. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DeviceConfigurationType type DeviceConfigurationType struct { _ struct{} `type:"structure"` @@ -16562,7 +16441,6 @@ func (s *DeviceConfigurationType) SetDeviceOnlyRememberedOnUserPrompt(v bool) *D } // The device verifier against which it will be authenticated. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DeviceSecretVerifierConfigType type DeviceSecretVerifierConfigType struct { _ struct{} `type:"structure"` @@ -16596,7 +16474,6 @@ func (s *DeviceSecretVerifierConfigType) SetSalt(v string) *DeviceSecretVerifier } // The device type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DeviceType type DeviceType struct { _ struct{} `type:"structure"` @@ -16657,7 +16534,6 @@ func (s *DeviceType) SetDeviceLastModifiedDate(v time.Time) *DeviceType { } // A container for information about a domain. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/DomainDescriptionType type DomainDescriptionType struct { _ struct{} `type:"structure"` @@ -16736,7 +16612,6 @@ func (s *DomainDescriptionType) SetVersion(v string) *DomainDescriptionType { } // The email configuration type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/EmailConfigurationType type EmailConfigurationType struct { _ struct{} `type:"structure"` @@ -16783,7 +16658,6 @@ func (s *EmailConfigurationType) SetSourceArn(v string) *EmailConfigurationType } // Specifies the user context data captured at the time of an event request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/EventContextDataType type EventContextDataType struct { _ struct{} `type:"structure"` @@ -16844,7 +16718,6 @@ func (s *EventContextDataType) SetTimezone(v string) *EventContextDataType { } // Specifies the event feedback type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/EventFeedbackType type EventFeedbackType struct { _ struct{} `type:"structure"` @@ -16891,7 +16764,6 @@ func (s *EventFeedbackType) SetProvider(v string) *EventFeedbackType { } // The event risk type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/EventRiskType type EventRiskType struct { _ struct{} `type:"structure"` @@ -16925,7 +16797,6 @@ func (s *EventRiskType) SetRiskLevel(v string) *EventRiskType { } // Represents the request to forget the device. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ForgetDeviceRequest type ForgetDeviceInput struct { _ struct{} `type:"structure"` @@ -16976,7 +16847,6 @@ func (s *ForgetDeviceInput) SetDeviceKey(v string) *ForgetDeviceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ForgetDeviceOutput type ForgetDeviceOutput struct { _ struct{} `type:"structure"` } @@ -16992,7 +16862,6 @@ func (s ForgetDeviceOutput) GoString() string { } // Represents the request to reset a user's password. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ForgotPasswordRequest type ForgotPasswordInput struct { _ struct{} `type:"structure"` @@ -17088,7 +16957,6 @@ func (s *ForgotPasswordInput) SetUsername(v string) *ForgotPasswordInput { // Respresents the response from the server regarding the request to reset a // password. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ForgotPasswordResponse type ForgotPasswordOutput struct { _ struct{} `type:"structure"` @@ -17115,7 +16983,6 @@ func (s *ForgotPasswordOutput) SetCodeDeliveryDetails(v *CodeDeliveryDetailsType // Represents the request to get the header information for the .csv file for // the user import job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GetCSVHeaderRequest type GetCSVHeaderInput struct { _ struct{} `type:"structure"` @@ -17159,7 +17026,6 @@ func (s *GetCSVHeaderInput) SetUserPoolId(v string) *GetCSVHeaderInput { // Represents the response from the server to the request to get the header // information for the .csv file for the user import job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GetCSVHeaderResponse type GetCSVHeaderOutput struct { _ struct{} `type:"structure"` @@ -17193,7 +17059,6 @@ func (s *GetCSVHeaderOutput) SetUserPoolId(v string) *GetCSVHeaderOutput { } // Represents the request to get the device. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GetDeviceRequest type GetDeviceInput struct { _ struct{} `type:"structure"` @@ -17245,7 +17110,6 @@ func (s *GetDeviceInput) SetDeviceKey(v string) *GetDeviceInput { } // Gets the device response. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GetDeviceResponse type GetDeviceOutput struct { _ struct{} `type:"structure"` @@ -17271,7 +17135,6 @@ func (s *GetDeviceOutput) SetDevice(v *DeviceType) *GetDeviceOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GetGroupRequest type GetGroupInput struct { _ struct{} `type:"structure"` @@ -17330,7 +17193,6 @@ func (s *GetGroupInput) SetUserPoolId(v string) *GetGroupInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GetGroupResponse type GetGroupOutput struct { _ struct{} `type:"structure"` @@ -17354,7 +17216,6 @@ func (s *GetGroupOutput) SetGroup(v *GroupType) *GetGroupOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GetIdentityProviderByIdentifierRequest type GetIdentityProviderByIdentifierInput struct { _ struct{} `type:"structure"` @@ -17413,7 +17274,6 @@ func (s *GetIdentityProviderByIdentifierInput) SetUserPoolId(v string) *GetIdent return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GetIdentityProviderByIdentifierResponse type GetIdentityProviderByIdentifierOutput struct { _ struct{} `type:"structure"` @@ -17439,7 +17299,6 @@ func (s *GetIdentityProviderByIdentifierOutput) SetIdentityProvider(v *IdentityP return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GetUICustomizationRequest type GetUICustomizationInput struct { _ struct{} `type:"structure"` @@ -17493,7 +17352,6 @@ func (s *GetUICustomizationInput) SetUserPoolId(v string) *GetUICustomizationInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GetUICustomizationResponse type GetUICustomizationOutput struct { _ struct{} `type:"structure"` @@ -17520,7 +17378,6 @@ func (s *GetUICustomizationOutput) SetUICustomization(v *UICustomizationType) *G } // Represents the request to get user attribute verification. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GetUserAttributeVerificationCodeRequest type GetUserAttributeVerificationCodeInput struct { _ struct{} `type:"structure"` @@ -17580,7 +17437,6 @@ func (s *GetUserAttributeVerificationCodeInput) SetAttributeName(v string) *GetU // The verification code response returned by the server response to get the // user attribute verification code. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GetUserAttributeVerificationCodeResponse type GetUserAttributeVerificationCodeOutput struct { _ struct{} `type:"structure"` @@ -17606,7 +17462,6 @@ func (s *GetUserAttributeVerificationCodeOutput) SetCodeDeliveryDetails(v *CodeD } // Represents the request to get information about the user. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GetUserRequest type GetUserInput struct { _ struct{} `type:"structure"` @@ -17648,7 +17503,6 @@ func (s *GetUserInput) SetAccessToken(v string) *GetUserInput { // Represents the response from the server from the request to get information // about the user. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GetUserResponse type GetUserOutput struct { _ struct{} `type:"structure"` @@ -17715,7 +17569,6 @@ func (s *GetUserOutput) SetUsername(v string) *GetUserOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GetUserPoolMfaConfigRequest type GetUserPoolMfaConfigInput struct { _ struct{} `type:"structure"` @@ -17757,7 +17610,6 @@ func (s *GetUserPoolMfaConfigInput) SetUserPoolId(v string) *GetUserPoolMfaConfi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GetUserPoolMfaConfigResponse type GetUserPoolMfaConfigOutput struct { _ struct{} `type:"structure"` @@ -17800,7 +17652,6 @@ func (s *GetUserPoolMfaConfigOutput) SetSoftwareTokenMfaConfiguration(v *Softwar } // Represents the request to sign out all devices. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GlobalSignOutRequest type GlobalSignOutInput struct { _ struct{} `type:"structure"` @@ -17840,7 +17691,6 @@ func (s *GlobalSignOutInput) SetAccessToken(v string) *GlobalSignOutInput { } // The response to the request to sign out all devices. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GlobalSignOutResponse type GlobalSignOutOutput struct { _ struct{} `type:"structure"` } @@ -17856,7 +17706,6 @@ func (s GlobalSignOutOutput) GoString() string { } // The group type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GroupType type GroupType struct { _ struct{} `type:"structure"` @@ -17948,7 +17797,6 @@ func (s *GroupType) SetUserPoolId(v string) *GroupType { } // The HTTP header. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/HttpHeader type HttpHeader struct { _ struct{} `type:"structure"` @@ -17982,7 +17830,6 @@ func (s *HttpHeader) SetHeaderValue(v string) *HttpHeader { } // A container for information about an identity provider. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/IdentityProviderType type IdentityProviderType struct { _ struct{} `type:"structure"` @@ -18071,7 +17918,6 @@ func (s *IdentityProviderType) SetUserPoolId(v string) *IdentityProviderType { } // Initiates the authentication request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/InitiateAuthRequest type InitiateAuthInput struct { _ struct{} `type:"structure"` @@ -18199,7 +18045,6 @@ func (s *InitiateAuthInput) SetUserContextData(v *UserContextDataType) *Initiate } // Initiates the authentication response. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/InitiateAuthResponse type InitiateAuthOutput struct { _ struct{} `type:"structure"` @@ -18288,7 +18133,6 @@ func (s *InitiateAuthOutput) SetSession(v string) *InitiateAuthOutput { } // Specifies the configuration for AWS Lambda triggers. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/LambdaConfigType type LambdaConfigType struct { _ struct{} `type:"structure"` @@ -18422,7 +18266,6 @@ func (s *LambdaConfigType) SetVerifyAuthChallengeResponse(v string) *LambdaConfi } // Represents the request to list the devices. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ListDevicesRequest type ListDevicesInput struct { _ struct{} `type:"structure"` @@ -18483,7 +18326,6 @@ func (s *ListDevicesInput) SetPaginationToken(v string) *ListDevicesInput { } // Represents the response to list devices. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ListDevicesResponse type ListDevicesOutput struct { _ struct{} `type:"structure"` @@ -18516,7 +18358,6 @@ func (s *ListDevicesOutput) SetPaginationToken(v string) *ListDevicesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ListGroupsRequest type ListGroupsInput struct { _ struct{} `type:"structure"` @@ -18580,7 +18421,6 @@ func (s *ListGroupsInput) SetUserPoolId(v string) *ListGroupsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ListGroupsResponse type ListGroupsOutput struct { _ struct{} `type:"structure"` @@ -18614,7 +18454,6 @@ func (s *ListGroupsOutput) SetNextToken(v string) *ListGroupsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ListIdentityProvidersRequest type ListIdentityProvidersInput struct { _ struct{} `type:"structure"` @@ -18680,7 +18519,6 @@ func (s *ListIdentityProvidersInput) SetUserPoolId(v string) *ListIdentityProvid return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ListIdentityProvidersResponse type ListIdentityProvidersOutput struct { _ struct{} `type:"structure"` @@ -18715,7 +18553,6 @@ func (s *ListIdentityProvidersOutput) SetProviders(v []*ProviderDescription) *Li return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ListResourceServersRequest type ListResourceServersInput struct { _ struct{} `type:"structure"` @@ -18781,7 +18618,6 @@ func (s *ListResourceServersInput) SetUserPoolId(v string) *ListResourceServersI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ListResourceServersResponse type ListResourceServersOutput struct { _ struct{} `type:"structure"` @@ -18817,7 +18653,6 @@ func (s *ListResourceServersOutput) SetResourceServers(v []*ResourceServerType) } // Represents the request to list the user import jobs. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ListUserImportJobsRequest type ListUserImportJobsInput struct { _ struct{} `type:"structure"` @@ -18891,7 +18726,6 @@ func (s *ListUserImportJobsInput) SetUserPoolId(v string) *ListUserImportJobsInp // Represents the response from the server to the request to list the user import // jobs. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ListUserImportJobsResponse type ListUserImportJobsOutput struct { _ struct{} `type:"structure"` @@ -18926,7 +18760,6 @@ func (s *ListUserImportJobsOutput) SetUserImportJobs(v []*UserImportJobType) *Li } // Represents the request to list the user pool clients. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ListUserPoolClientsRequest type ListUserPoolClientsInput struct { _ struct{} `type:"structure"` @@ -18995,7 +18828,6 @@ func (s *ListUserPoolClientsInput) SetUserPoolId(v string) *ListUserPoolClientsI } // Represents the response from the server that lists user pool clients. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ListUserPoolClientsResponse type ListUserPoolClientsOutput struct { _ struct{} `type:"structure"` @@ -19030,7 +18862,6 @@ func (s *ListUserPoolClientsOutput) SetUserPoolClients(v []*UserPoolClientDescri } // Represents the request to list user pools. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ListUserPoolsRequest type ListUserPoolsInput struct { _ struct{} `type:"structure"` @@ -19087,7 +18918,6 @@ func (s *ListUserPoolsInput) SetNextToken(v string) *ListUserPoolsInput { } // Represents the response to list user pools. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ListUserPoolsResponse type ListUserPoolsOutput struct { _ struct{} `type:"structure"` @@ -19121,7 +18951,6 @@ func (s *ListUserPoolsOutput) SetUserPools(v []*UserPoolDescriptionType) *ListUs return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ListUsersInGroupRequest type ListUsersInGroupInput struct { _ struct{} `type:"structure"` @@ -19202,7 +19031,6 @@ func (s *ListUsersInGroupInput) SetUserPoolId(v string) *ListUsersInGroupInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ListUsersInGroupResponse type ListUsersInGroupOutput struct { _ struct{} `type:"structure"` @@ -19237,7 +19065,6 @@ func (s *ListUsersInGroupOutput) SetUsers(v []*UserType) *ListUsersInGroupOutput } // Represents the request to list users. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ListUsersRequest type ListUsersInput struct { _ struct{} `type:"structure"` @@ -19363,7 +19190,6 @@ func (s *ListUsersInput) SetUserPoolId(v string) *ListUsersInput { } // The response from the request to list users. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ListUsersResponse type ListUsersOutput struct { _ struct{} `type:"structure"` @@ -19398,7 +19224,6 @@ func (s *ListUsersOutput) SetUsers(v []*UserType) *ListUsersOutput { } // Specifies the different settings for multi-factor authentication (MFA). -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/MFAOptionType type MFAOptionType struct { _ struct{} `type:"structure"` @@ -19445,7 +19270,6 @@ func (s *MFAOptionType) SetDeliveryMedium(v string) *MFAOptionType { } // The message template structure. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/MessageTemplateType type MessageTemplateType struct { _ struct{} `type:"structure"` @@ -19507,7 +19331,6 @@ func (s *MessageTemplateType) SetSMSMessage(v string) *MessageTemplateType { } // The new device metadata type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/NewDeviceMetadataType type NewDeviceMetadataType struct { _ struct{} `type:"structure"` @@ -19541,7 +19364,6 @@ func (s *NewDeviceMetadataType) SetDeviceKey(v string) *NewDeviceMetadataType { } // The notify configuration type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/NotifyConfigurationType type NotifyConfigurationType struct { _ struct{} `type:"structure"` @@ -19649,7 +19471,6 @@ func (s *NotifyConfigurationType) SetSourceArn(v string) *NotifyConfigurationTyp } // The notify email type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/NotifyEmailType type NotifyEmailType struct { _ struct{} `type:"structure"` @@ -19717,7 +19538,6 @@ func (s *NotifyEmailType) SetTextBody(v string) *NotifyEmailType { // The minimum and maximum value of an attribute that is of the number data // type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/NumberAttributeConstraintsType type NumberAttributeConstraintsType struct { _ struct{} `type:"structure"` @@ -19751,7 +19571,6 @@ func (s *NumberAttributeConstraintsType) SetMinValue(v string) *NumberAttributeC } // The password policy type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/PasswordPolicyType type PasswordPolicyType struct { _ struct{} `type:"structure"` @@ -19830,7 +19649,6 @@ func (s *PasswordPolicyType) SetRequireUppercase(v bool) *PasswordPolicyType { } // A container for identity provider details. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ProviderDescription type ProviderDescription struct { _ struct{} `type:"structure"` @@ -19882,7 +19700,6 @@ func (s *ProviderDescription) SetProviderType(v string) *ProviderDescription { } // A container for information about an identity provider for a user pool. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ProviderUserIdentifierType type ProviderUserIdentifierType struct { _ struct{} `type:"structure"` @@ -19938,7 +19755,6 @@ func (s *ProviderUserIdentifierType) SetProviderName(v string) *ProviderUserIden } // Represents the request to resend the confirmation code. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ResendConfirmationCodeRequest type ResendConfirmationCodeInput struct { _ struct{} `type:"structure"` @@ -20033,7 +19849,6 @@ func (s *ResendConfirmationCodeInput) SetUsername(v string) *ResendConfirmationC // The response from the server when the Amazon Cognito Your User Pools service // makes the request to resend a confirmation code. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ResendConfirmationCodeResponse type ResendConfirmationCodeOutput struct { _ struct{} `type:"structure"` @@ -20059,7 +19874,6 @@ func (s *ResendConfirmationCodeOutput) SetCodeDeliveryDetails(v *CodeDeliveryDet } // A resource server scope. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ResourceServerScopeType type ResourceServerScopeType struct { _ struct{} `type:"structure"` @@ -20119,7 +19933,6 @@ func (s *ResourceServerScopeType) SetScopeName(v string) *ResourceServerScopeTyp } // A container for information about a resource server for a user pool. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/ResourceServerType type ResourceServerType struct { _ struct{} `type:"structure"` @@ -20171,7 +19984,6 @@ func (s *ResourceServerType) SetUserPoolId(v string) *ResourceServerType { } // The request to respond to an authentication challenge. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/RespondToAuthChallengeRequest type RespondToAuthChallengeInput struct { _ struct{} `type:"structure"` @@ -20287,7 +20099,6 @@ func (s *RespondToAuthChallengeInput) SetUserContextData(v *UserContextDataType) } // The response to respond to the authentication challenge. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/RespondToAuthChallengeResponse type RespondToAuthChallengeOutput struct { _ struct{} `type:"structure"` @@ -20344,7 +20155,6 @@ func (s *RespondToAuthChallengeOutput) SetSession(v string) *RespondToAuthChalle } // The risk configuration type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/RiskConfigurationType type RiskConfigurationType struct { _ struct{} `type:"structure"` @@ -20416,7 +20226,6 @@ func (s *RiskConfigurationType) SetUserPoolId(v string) *RiskConfigurationType { } // The type of the configuration to override the risk decision. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/RiskExceptionConfigurationType type RiskExceptionConfigurationType struct { _ struct{} `type:"structure"` @@ -20453,7 +20262,6 @@ func (s *RiskExceptionConfigurationType) SetSkippedIPRangeList(v []*string) *Ris } // The SMS multi-factor authentication (MFA) settings type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/SMSMfaSettingsType type SMSMfaSettingsType struct { _ struct{} `type:"structure"` @@ -20487,7 +20295,6 @@ func (s *SMSMfaSettingsType) SetPreferredMfa(v bool) *SMSMfaSettingsType { } // Contains information about the schema attribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/SchemaAttributeType type SchemaAttributeType struct { _ struct{} `type:"structure"` @@ -20580,7 +20387,6 @@ func (s *SchemaAttributeType) SetStringAttributeConstraints(v *StringAttributeCo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/SetRiskConfigurationRequest type SetRiskConfigurationInput struct { _ struct{} `type:"structure"` @@ -20677,7 +20483,6 @@ func (s *SetRiskConfigurationInput) SetUserPoolId(v string) *SetRiskConfiguratio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/SetRiskConfigurationResponse type SetRiskConfigurationOutput struct { _ struct{} `type:"structure"` @@ -20703,7 +20508,6 @@ func (s *SetRiskConfigurationOutput) SetRiskConfiguration(v *RiskConfigurationTy return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/SetUICustomizationRequest type SetUICustomizationInput struct { _ struct{} `type:"structure"` @@ -20777,7 +20581,6 @@ func (s *SetUICustomizationInput) SetUserPoolId(v string) *SetUICustomizationInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/SetUICustomizationResponse type SetUICustomizationOutput struct { _ struct{} `type:"structure"` @@ -20803,7 +20606,6 @@ func (s *SetUICustomizationOutput) SetUICustomization(v *UICustomizationType) *S return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/SetUserMFAPreferenceRequest type SetUserMFAPreferenceInput struct { _ struct{} `type:"structure"` @@ -20860,7 +20662,6 @@ func (s *SetUserMFAPreferenceInput) SetSoftwareTokenMfaSettings(v *SoftwareToken return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/SetUserMFAPreferenceResponse type SetUserMFAPreferenceOutput struct { _ struct{} `type:"structure"` } @@ -20875,7 +20676,6 @@ func (s SetUserMFAPreferenceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/SetUserPoolMfaConfigRequest type SetUserPoolMfaConfigInput struct { _ struct{} `type:"structure"` @@ -20949,7 +20749,6 @@ func (s *SetUserPoolMfaConfigInput) SetUserPoolId(v string) *SetUserPoolMfaConfi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/SetUserPoolMfaConfigResponse type SetUserPoolMfaConfigOutput struct { _ struct{} `type:"structure"` @@ -20992,7 +20791,6 @@ func (s *SetUserPoolMfaConfigOutput) SetSoftwareTokenMfaConfiguration(v *Softwar } // Represents the request to set user settings. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/SetUserSettingsRequest type SetUserSettingsInput struct { _ struct{} `type:"structure"` @@ -21056,7 +20854,6 @@ func (s *SetUserSettingsInput) SetMFAOptions(v []*MFAOptionType) *SetUserSetting } // The response from the server for a set user settings request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/SetUserSettingsResponse type SetUserSettingsOutput struct { _ struct{} `type:"structure"` } @@ -21072,7 +20869,6 @@ func (s SetUserSettingsOutput) GoString() string { } // Represents the request to register a user. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/SignUpRequest type SignUpInput struct { _ struct{} `type:"structure"` @@ -21224,7 +21020,6 @@ func (s *SignUpInput) SetValidationData(v []*AttributeType) *SignUpInput { } // The response from the server for a registration request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/SignUpResponse type SignUpOutput struct { _ struct{} `type:"structure"` @@ -21272,7 +21067,6 @@ func (s *SignUpOutput) SetUserSub(v string) *SignUpOutput { } // The SMS configuration type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/SmsConfigurationType type SmsConfigurationType struct { _ struct{} `type:"structure"` @@ -21325,7 +21119,6 @@ func (s *SmsConfigurationType) SetSnsCallerArn(v string) *SmsConfigurationType { } // The SMS text message multi-factor authentication (MFA) configuration type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/SmsMfaConfigType type SmsMfaConfigType struct { _ struct{} `type:"structure"` @@ -21377,7 +21170,6 @@ func (s *SmsMfaConfigType) SetSmsConfiguration(v *SmsConfigurationType) *SmsMfaC } // The type used for enabling software token MFA at the user pool level. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/SoftwareTokenMfaConfigType type SoftwareTokenMfaConfigType struct { _ struct{} `type:"structure"` @@ -21402,7 +21194,6 @@ func (s *SoftwareTokenMfaConfigType) SetEnabled(v bool) *SoftwareTokenMfaConfigT } // The type used for enabling software token MFA at the user level. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/SoftwareTokenMfaSettingsType type SoftwareTokenMfaSettingsType struct { _ struct{} `type:"structure"` @@ -21436,7 +21227,6 @@ func (s *SoftwareTokenMfaSettingsType) SetPreferredMfa(v bool) *SoftwareTokenMfa } // Represents the request to start the user import job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/StartUserImportJobRequest type StartUserImportJobInput struct { _ struct{} `type:"structure"` @@ -21497,7 +21287,6 @@ func (s *StartUserImportJobInput) SetUserPoolId(v string) *StartUserImportJobInp // Represents the response from the server to the request to start the user // import job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/StartUserImportJobResponse type StartUserImportJobOutput struct { _ struct{} `type:"structure"` @@ -21522,7 +21311,6 @@ func (s *StartUserImportJobOutput) SetUserImportJob(v *UserImportJobType) *Start } // Represents the request to stop the user import job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/StopUserImportJobRequest type StopUserImportJobInput struct { _ struct{} `type:"structure"` @@ -21583,7 +21371,6 @@ func (s *StopUserImportJobInput) SetUserPoolId(v string) *StopUserImportJobInput // Represents the response from the server to the request to stop the user import // job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/StopUserImportJobResponse type StopUserImportJobOutput struct { _ struct{} `type:"structure"` @@ -21608,7 +21395,6 @@ func (s *StopUserImportJobOutput) SetUserImportJob(v *UserImportJobType) *StopUs } // The constraints associated with a string attribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/StringAttributeConstraintsType type StringAttributeConstraintsType struct { _ struct{} `type:"structure"` @@ -21643,7 +21429,6 @@ func (s *StringAttributeConstraintsType) SetMinLength(v string) *StringAttribute // A container for the UI customization information for a user pool's built-in // app UI. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UICustomizationType type UICustomizationType struct { _ struct{} `type:"structure"` @@ -21721,7 +21506,6 @@ func (s *UICustomizationType) SetUserPoolId(v string) *UICustomizationType { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UpdateAuthEventFeedbackRequest type UpdateAuthEventFeedbackInput struct { _ struct{} `type:"structure"` @@ -21825,7 +21609,6 @@ func (s *UpdateAuthEventFeedbackInput) SetUsername(v string) *UpdateAuthEventFee return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UpdateAuthEventFeedbackResponse type UpdateAuthEventFeedbackOutput struct { _ struct{} `type:"structure"` } @@ -21841,7 +21624,6 @@ func (s UpdateAuthEventFeedbackOutput) GoString() string { } // Represents the request to update the device status. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UpdateDeviceStatusRequest type UpdateDeviceStatusInput struct { _ struct{} `type:"structure"` @@ -21907,7 +21689,6 @@ func (s *UpdateDeviceStatusInput) SetDeviceRememberedStatus(v string) *UpdateDev } // The response to the request to update the device status. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UpdateDeviceStatusResponse type UpdateDeviceStatusOutput struct { _ struct{} `type:"structure"` } @@ -21922,7 +21703,6 @@ func (s UpdateDeviceStatusOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UpdateGroupRequest type UpdateGroupInput struct { _ struct{} `type:"structure"` @@ -22013,7 +21793,6 @@ func (s *UpdateGroupInput) SetUserPoolId(v string) *UpdateGroupInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UpdateGroupResponse type UpdateGroupOutput struct { _ struct{} `type:"structure"` @@ -22037,7 +21816,6 @@ func (s *UpdateGroupOutput) SetGroup(v *GroupType) *UpdateGroupOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UpdateIdentityProviderRequest type UpdateIdentityProviderInput struct { _ struct{} `type:"structure"` @@ -22123,7 +21901,6 @@ func (s *UpdateIdentityProviderInput) SetUserPoolId(v string) *UpdateIdentityPro return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UpdateIdentityProviderResponse type UpdateIdentityProviderOutput struct { _ struct{} `type:"structure"` @@ -22149,7 +21926,6 @@ func (s *UpdateIdentityProviderOutput) SetIdentityProvider(v *IdentityProviderTy return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UpdateResourceServerRequest type UpdateResourceServerInput struct { _ struct{} `type:"structure"` @@ -22244,7 +22020,6 @@ func (s *UpdateResourceServerInput) SetUserPoolId(v string) *UpdateResourceServe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UpdateResourceServerResponse type UpdateResourceServerOutput struct { _ struct{} `type:"structure"` @@ -22271,7 +22046,6 @@ func (s *UpdateResourceServerOutput) SetResourceServer(v *ResourceServerType) *U } // Represents the request to update user attributes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UpdateUserAttributesRequest type UpdateUserAttributesInput struct { _ struct{} `type:"structure"` @@ -22338,7 +22112,6 @@ func (s *UpdateUserAttributesInput) SetUserAttributes(v []*AttributeType) *Updat } // Represents the response from the server for the request to update user attributes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UpdateUserAttributesResponse type UpdateUserAttributesOutput struct { _ struct{} `type:"structure"` @@ -22364,7 +22137,6 @@ func (s *UpdateUserAttributesOutput) SetCodeDeliveryDetailsList(v []*CodeDeliver } // Represents the request to update the user pool client. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UpdateUserPoolClientRequest type UpdateUserPoolClientInput struct { _ struct{} `type:"structure"` @@ -22564,7 +22336,6 @@ func (s *UpdateUserPoolClientInput) SetWriteAttributes(v []*string) *UpdateUserP // Represents the response from the server to the request to update the user // pool client. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UpdateUserPoolClientResponse type UpdateUserPoolClientOutput struct { _ struct{} `type:"structure"` @@ -22590,7 +22361,6 @@ func (s *UpdateUserPoolClientOutput) SetUserPoolClient(v *UserPoolClientType) *U } // Represents the request to update the user pool. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UpdateUserPoolRequest type UpdateUserPoolInput struct { _ struct{} `type:"structure"` @@ -22828,7 +22598,6 @@ func (s *UpdateUserPoolInput) SetVerificationMessageTemplate(v *VerificationMess // Represents the response from the server when you make a request to update // the user pool. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UpdateUserPoolResponse type UpdateUserPoolOutput struct { _ struct{} `type:"structure"` } @@ -22846,7 +22615,6 @@ func (s UpdateUserPoolOutput) GoString() string { // Contextual data such as the user's device fingerprint, IP address, or location // used for evaluating the risk of an unexpected event by Amazon Cognito advanced // security. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UserContextDataType type UserContextDataType struct { _ struct{} `type:"structure"` @@ -22873,7 +22641,6 @@ func (s *UserContextDataType) SetEncodedData(v string) *UserContextDataType { } // The user import job type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UserImportJobType type UserImportJobType struct { _ struct{} `type:"structure"` @@ -23029,7 +22796,6 @@ func (s *UserImportJobType) SetUserPoolId(v string) *UserImportJobType { } // The user pool add-ons type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UserPoolAddOnsType type UserPoolAddOnsType struct { _ struct{} `type:"structure"` @@ -23069,7 +22835,6 @@ func (s *UserPoolAddOnsType) SetAdvancedSecurityMode(v string) *UserPoolAddOnsTy } // The description of the user pool client. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UserPoolClientDescription type UserPoolClientDescription struct { _ struct{} `type:"structure"` @@ -23113,7 +22878,6 @@ func (s *UserPoolClientDescription) SetUserPoolId(v string) *UserPoolClientDescr } // Contains information about a user pool client. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UserPoolClientType type UserPoolClientType struct { _ struct{} `type:"structure"` @@ -23300,7 +23064,6 @@ func (s *UserPoolClientType) SetWriteAttributes(v []*string) *UserPoolClientType } // A user pool description. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UserPoolDescriptionType type UserPoolDescriptionType struct { _ struct{} `type:"structure"` @@ -23370,7 +23133,6 @@ func (s *UserPoolDescriptionType) SetStatus(v string) *UserPoolDescriptionType { } // The policy associated with a user pool. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UserPoolPolicyType type UserPoolPolicyType struct { _ struct{} `type:"structure"` @@ -23410,7 +23172,6 @@ func (s *UserPoolPolicyType) SetPasswordPolicy(v *PasswordPolicyType) *UserPoolP } // A container for information about the user pool. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UserPoolType type UserPoolType struct { _ struct{} `type:"structure"` @@ -23679,7 +23440,6 @@ func (s *UserPoolType) SetVerificationMessageTemplate(v *VerificationMessageTemp } // The user type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/UserType type UserType struct { _ struct{} `type:"structure"` @@ -23768,7 +23528,6 @@ func (s *UserType) SetUsername(v string) *UserType { } // The template for verification messages. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/VerificationMessageTemplateType type VerificationMessageTemplateType struct { _ struct{} `type:"structure"` @@ -23863,7 +23622,6 @@ func (s *VerificationMessageTemplateType) SetSmsMessage(v string) *VerificationM return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/VerifySoftwareTokenRequest type VerifySoftwareTokenInput struct { _ struct{} `type:"structure"` @@ -23936,7 +23694,6 @@ func (s *VerifySoftwareTokenInput) SetUserCode(v string) *VerifySoftwareTokenInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/VerifySoftwareTokenResponse type VerifySoftwareTokenOutput struct { _ struct{} `type:"structure"` @@ -23971,7 +23728,6 @@ func (s *VerifySoftwareTokenOutput) SetStatus(v string) *VerifySoftwareTokenOutp } // Represents the request to verify user attributes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/VerifyUserAttributeRequest type VerifyUserAttributeInput struct { _ struct{} `type:"structure"` @@ -24046,7 +23802,6 @@ func (s *VerifyUserAttributeInput) SetCode(v string) *VerifyUserAttributeInput { // A container representing the response from the server from the request to // verify user attributes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/VerifyUserAttributeResponse type VerifyUserAttributeOutput struct { _ struct{} `type:"structure"` } diff --git a/vendor/github.com/aws/aws-sdk-go/service/configservice/api.go b/vendor/github.com/aws/aws-sdk-go/service/configservice/api.go index 971fca5f0..8999640f5 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/configservice/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/configservice/api.go @@ -2641,7 +2641,6 @@ func (c *ConfigService) StopConfigurationRecorderWithContext(ctx aws.Context, in // Indicates whether an AWS resource or AWS Config rule is compliant and provides // the number of contributors that affect the compliance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/Compliance type Compliance struct { _ struct{} `type:"structure"` @@ -2692,7 +2691,6 @@ func (s *Compliance) SetComplianceType(v string) *Compliance { // Indicates whether an AWS Config rule is compliant. A rule is compliant if // all of the resources that the rule evaluated comply with it, and it is noncompliant // if any of these resources do not comply. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ComplianceByConfigRule type ComplianceByConfigRule struct { _ struct{} `type:"structure"` @@ -2729,7 +2727,6 @@ func (s *ComplianceByConfigRule) SetConfigRuleName(v string) *ComplianceByConfig // AWS Config rules is compliant. A resource is compliant if it complies with // all of the rules that evaluate it, and it is noncompliant if it does not // comply with one or more of these rules. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ComplianceByResource type ComplianceByResource struct { _ struct{} `type:"structure"` @@ -2774,7 +2771,6 @@ func (s *ComplianceByResource) SetResourceType(v string) *ComplianceByResource { // The number of AWS resources or AWS Config rules responsible for the current // compliance of the item, up to a maximum number. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ComplianceContributorCount type ComplianceContributorCount struct { _ struct{} `type:"structure"` @@ -2809,7 +2805,6 @@ func (s *ComplianceContributorCount) SetCappedCount(v int64) *ComplianceContribu } // The number of AWS Config rules or AWS resources that are compliant and noncompliant. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ComplianceSummary type ComplianceSummary struct { _ struct{} `type:"structure"` @@ -2855,7 +2850,6 @@ func (s *ComplianceSummary) SetNonCompliantResourceCount(v *ComplianceContributo // The number of AWS resources of a specific type that are compliant or noncompliant, // up to a maximum of 100 for each compliance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ComplianceSummaryByResourceType type ComplianceSummaryByResourceType struct { _ struct{} `type:"structure"` @@ -2892,7 +2886,6 @@ func (s *ComplianceSummaryByResourceType) SetResourceType(v string) *ComplianceS // Provides status of the delivery of the snapshot or the configuration history // to the specified Amazon S3 bucket. Also provides the status of notifications // about the Amazon S3 delivery to the specified Amazon SNS topic. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ConfigExportDeliveryInfo type ConfigExportDeliveryInfo struct { _ struct{} `type:"structure"` @@ -2975,7 +2968,6 @@ func (s *ConfigExportDeliveryInfo) SetNextDeliveryTime(v time.Time) *ConfigExpor // For more information about developing and using AWS Config rules, see Evaluating // AWS Resource Configurations with AWS Config (http://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html) // in the AWS Config Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ConfigRule type ConfigRule struct { _ struct{} `type:"structure"` @@ -3139,7 +3131,6 @@ func (s *ConfigRule) SetSource(v *Source) *ConfigRule { // and the related error for the last failure. // // This action does not return status information about custom Config rules. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ConfigRuleEvaluationStatus type ConfigRuleEvaluationStatus struct { _ struct{} `type:"structure"` @@ -3303,7 +3294,6 @@ func (s *ConfigRuleEvaluationStatus) SetLastSuccessfulInvocationTime(v time.Time // // To update the deliveryFrequency with which AWS Config delivers your configuration // snapshots, use the PutDeliveryChannel action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ConfigSnapshotDeliveryProperties type ConfigSnapshotDeliveryProperties struct { _ struct{} `type:"structure"` @@ -3329,7 +3319,6 @@ func (s *ConfigSnapshotDeliveryProperties) SetDeliveryFrequency(v string) *Confi // A list that contains the status of the delivery of the configuration stream // notification to the Amazon SNS topic. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ConfigStreamDeliveryInfo type ConfigStreamDeliveryInfo struct { _ struct{} `type:"structure"` @@ -3385,7 +3374,6 @@ func (s *ConfigStreamDeliveryInfo) SetLastStatusChangeTime(v time.Time) *ConfigS } // A list that contains detailed configurations of a specified resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ConfigurationItem type ConfigurationItem struct { _ struct{} `type:"structure"` @@ -3576,7 +3564,6 @@ func (s *ConfigurationItem) SetVersion(v string) *ConfigurationItem { // An object that represents the recording of configuration changes of an AWS // resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ConfigurationRecorder type ConfigurationRecorder struct { _ struct{} `type:"structure"` @@ -3636,7 +3623,6 @@ func (s *ConfigurationRecorder) SetRoleARN(v string) *ConfigurationRecorder { } // The current status of the configuration recorder. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ConfigurationRecorderStatus type ConfigurationRecorderStatus struct { _ struct{} `type:"structure"` @@ -3723,7 +3709,6 @@ func (s *ConfigurationRecorderStatus) SetRecording(v bool) *ConfigurationRecorde return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteConfigRuleRequest type DeleteConfigRuleInput struct { _ struct{} `type:"structure"` @@ -3765,7 +3750,6 @@ func (s *DeleteConfigRuleInput) SetConfigRuleName(v string) *DeleteConfigRuleInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteConfigRuleOutput type DeleteConfigRuleOutput struct { _ struct{} `type:"structure"` } @@ -3781,7 +3765,6 @@ func (s DeleteConfigRuleOutput) GoString() string { } // The request object for the DeleteConfigurationRecorder action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteConfigurationRecorderRequest type DeleteConfigurationRecorderInput struct { _ struct{} `type:"structure"` @@ -3825,7 +3808,6 @@ func (s *DeleteConfigurationRecorderInput) SetConfigurationRecorderName(v string return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteConfigurationRecorderOutput type DeleteConfigurationRecorderOutput struct { _ struct{} `type:"structure"` } @@ -3842,7 +3824,6 @@ func (s DeleteConfigurationRecorderOutput) GoString() string { // The input for the DeleteDeliveryChannel action. The action accepts the following // data in JSON format. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteDeliveryChannelRequest type DeleteDeliveryChannelInput struct { _ struct{} `type:"structure"` @@ -3884,7 +3865,6 @@ func (s *DeleteDeliveryChannelInput) SetDeliveryChannelName(v string) *DeleteDel return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteDeliveryChannelOutput type DeleteDeliveryChannelOutput struct { _ struct{} `type:"structure"` } @@ -3899,7 +3879,6 @@ func (s DeleteDeliveryChannelOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteEvaluationResultsRequest type DeleteEvaluationResultsInput struct { _ struct{} `type:"structure"` @@ -3943,7 +3922,6 @@ func (s *DeleteEvaluationResultsInput) SetConfigRuleName(v string) *DeleteEvalua // The output when you delete the evaluation results for the specified Config // rule. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteEvaluationResultsResponse type DeleteEvaluationResultsOutput struct { _ struct{} `type:"structure"` } @@ -3959,7 +3937,6 @@ func (s DeleteEvaluationResultsOutput) GoString() string { } // The input for the DeliverConfigSnapshot action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeliverConfigSnapshotRequest type DeliverConfigSnapshotInput struct { _ struct{} `type:"structure"` @@ -4002,7 +3979,6 @@ func (s *DeliverConfigSnapshotInput) SetDeliveryChannelName(v string) *DeliverCo } // The output for the DeliverConfigSnapshot action in JSON format. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeliverConfigSnapshotResponse type DeliverConfigSnapshotOutput struct { _ struct{} `type:"structure"` @@ -4028,7 +4004,6 @@ func (s *DeliverConfigSnapshotOutput) SetConfigSnapshotId(v string) *DeliverConf // The channel through which AWS Config delivers notifications and updated configuration // states. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeliveryChannel type DeliveryChannel struct { _ struct{} `type:"structure"` @@ -4121,7 +4096,6 @@ func (s *DeliveryChannel) SetSnsTopicARN(v string) *DeliveryChannel { // The status of a specified delivery channel. // // Valid values: Success | Failure -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeliveryChannelStatus type DeliveryChannelStatus struct { _ struct{} `type:"structure"` @@ -4175,7 +4149,6 @@ func (s *DeliveryChannelStatus) SetName(v string) *DeliveryChannelStatus { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeComplianceByConfigRuleRequest type DescribeComplianceByConfigRuleInput struct { _ struct{} `type:"structure"` @@ -4220,7 +4193,6 @@ func (s *DescribeComplianceByConfigRuleInput) SetNextToken(v string) *DescribeCo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeComplianceByConfigRuleResponse type DescribeComplianceByConfigRuleOutput struct { _ struct{} `type:"structure"` @@ -4254,7 +4226,6 @@ func (s *DescribeComplianceByConfigRuleOutput) SetNextToken(v string) *DescribeC return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeComplianceByResourceRequest type DescribeComplianceByResourceInput struct { _ struct{} `type:"structure"` @@ -4339,7 +4310,6 @@ func (s *DescribeComplianceByResourceInput) SetResourceType(v string) *DescribeC return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeComplianceByResourceResponse type DescribeComplianceByResourceOutput struct { _ struct{} `type:"structure"` @@ -4374,7 +4344,6 @@ func (s *DescribeComplianceByResourceOutput) SetNextToken(v string) *DescribeCom return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigRuleEvaluationStatusRequest type DescribeConfigRuleEvaluationStatusInput struct { _ struct{} `type:"structure"` @@ -4426,7 +4395,6 @@ func (s *DescribeConfigRuleEvaluationStatusInput) SetNextToken(v string) *Descri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigRuleEvaluationStatusResponse type DescribeConfigRuleEvaluationStatusOutput struct { _ struct{} `type:"structure"` @@ -4460,7 +4428,6 @@ func (s *DescribeConfigRuleEvaluationStatusOutput) SetNextToken(v string) *Descr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigRulesRequest type DescribeConfigRulesInput struct { _ struct{} `type:"structure"` @@ -4495,7 +4462,6 @@ func (s *DescribeConfigRulesInput) SetNextToken(v string) *DescribeConfigRulesIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigRulesResponse type DescribeConfigRulesOutput struct { _ struct{} `type:"structure"` @@ -4530,7 +4496,6 @@ func (s *DescribeConfigRulesOutput) SetNextToken(v string) *DescribeConfigRulesO } // The input for the DescribeConfigurationRecorderStatus action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigurationRecorderStatusRequest type DescribeConfigurationRecorderStatusInput struct { _ struct{} `type:"structure"` @@ -4557,7 +4522,6 @@ func (s *DescribeConfigurationRecorderStatusInput) SetConfigurationRecorderNames } // The output for the DescribeConfigurationRecorderStatus action in JSON format. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigurationRecorderStatusResponse type DescribeConfigurationRecorderStatusOutput struct { _ struct{} `type:"structure"` @@ -4582,7 +4546,6 @@ func (s *DescribeConfigurationRecorderStatusOutput) SetConfigurationRecordersSta } // The input for the DescribeConfigurationRecorders action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigurationRecordersRequest type DescribeConfigurationRecordersInput struct { _ struct{} `type:"structure"` @@ -4607,7 +4570,6 @@ func (s *DescribeConfigurationRecordersInput) SetConfigurationRecorderNames(v [] } // The output for the DescribeConfigurationRecorders action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigurationRecordersResponse type DescribeConfigurationRecordersOutput struct { _ struct{} `type:"structure"` @@ -4632,7 +4594,6 @@ func (s *DescribeConfigurationRecordersOutput) SetConfigurationRecorders(v []*Co } // The input for the DeliveryChannelStatus action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeDeliveryChannelStatusRequest type DescribeDeliveryChannelStatusInput struct { _ struct{} `type:"structure"` @@ -4657,7 +4618,6 @@ func (s *DescribeDeliveryChannelStatusInput) SetDeliveryChannelNames(v []*string } // The output for the DescribeDeliveryChannelStatus action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeDeliveryChannelStatusResponse type DescribeDeliveryChannelStatusOutput struct { _ struct{} `type:"structure"` @@ -4682,7 +4642,6 @@ func (s *DescribeDeliveryChannelStatusOutput) SetDeliveryChannelsStatus(v []*Del } // The input for the DescribeDeliveryChannels action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeDeliveryChannelsRequest type DescribeDeliveryChannelsInput struct { _ struct{} `type:"structure"` @@ -4707,7 +4666,6 @@ func (s *DescribeDeliveryChannelsInput) SetDeliveryChannelNames(v []*string) *De } // The output for the DescribeDeliveryChannels action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeDeliveryChannelsResponse type DescribeDeliveryChannelsOutput struct { _ struct{} `type:"structure"` @@ -4733,7 +4691,6 @@ func (s *DescribeDeliveryChannelsOutput) SetDeliveryChannels(v []*DeliveryChanne // Identifies an AWS resource and indicates whether it complies with the AWS // Config rule that it was evaluated against. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/Evaluation type Evaluation struct { _ struct{} `type:"structure"` @@ -4849,7 +4806,6 @@ func (s *Evaluation) SetOrderingTimestamp(v time.Time) *Evaluation { // The details of an AWS Config evaluation. Provides the AWS resource that was // evaluated, the compliance of the resource, related timestamps, and supplementary // information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/EvaluationResult type EvaluationResult struct { _ struct{} `type:"structure"` @@ -4926,7 +4882,6 @@ func (s *EvaluationResult) SetResultToken(v string) *EvaluationResult { } // Uniquely identifies an evaluation result. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/EvaluationResultIdentifier type EvaluationResultIdentifier struct { _ struct{} `type:"structure"` @@ -4965,7 +4920,6 @@ func (s *EvaluationResultIdentifier) SetOrderingTimestamp(v time.Time) *Evaluati // Identifies an AWS Config rule that evaluated an AWS resource, and provides // the type and ID of the resource that the rule evaluated. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/EvaluationResultQualifier type EvaluationResultQualifier struct { _ struct{} `type:"structure"` @@ -5007,7 +4961,6 @@ func (s *EvaluationResultQualifier) SetResourceType(v string) *EvaluationResultQ return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetComplianceDetailsByConfigRuleRequest type GetComplianceDetailsByConfigRuleInput struct { _ struct{} `type:"structure"` @@ -5081,7 +5034,6 @@ func (s *GetComplianceDetailsByConfigRuleInput) SetNextToken(v string) *GetCompl return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetComplianceDetailsByConfigRuleResponse type GetComplianceDetailsByConfigRuleOutput struct { _ struct{} `type:"structure"` @@ -5116,7 +5068,6 @@ func (s *GetComplianceDetailsByConfigRuleOutput) SetNextToken(v string) *GetComp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetComplianceDetailsByResourceRequest type GetComplianceDetailsByResourceInput struct { _ struct{} `type:"structure"` @@ -5196,7 +5147,6 @@ func (s *GetComplianceDetailsByResourceInput) SetResourceType(v string) *GetComp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetComplianceDetailsByResourceResponse type GetComplianceDetailsByResourceOutput struct { _ struct{} `type:"structure"` @@ -5230,7 +5180,6 @@ func (s *GetComplianceDetailsByResourceOutput) SetNextToken(v string) *GetCompli return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetComplianceSummaryByConfigRuleInput type GetComplianceSummaryByConfigRuleInput struct { _ struct{} `type:"structure"` } @@ -5245,7 +5194,6 @@ func (s GetComplianceSummaryByConfigRuleInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetComplianceSummaryByConfigRuleResponse type GetComplianceSummaryByConfigRuleOutput struct { _ struct{} `type:"structure"` @@ -5270,7 +5218,6 @@ func (s *GetComplianceSummaryByConfigRuleOutput) SetComplianceSummary(v *Complia return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetComplianceSummaryByResourceTypeRequest type GetComplianceSummaryByResourceTypeInput struct { _ struct{} `type:"structure"` @@ -5299,7 +5246,6 @@ func (s *GetComplianceSummaryByResourceTypeInput) SetResourceTypes(v []*string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetComplianceSummaryByResourceTypeResponse type GetComplianceSummaryByResourceTypeOutput struct { _ struct{} `type:"structure"` @@ -5325,7 +5271,6 @@ func (s *GetComplianceSummaryByResourceTypeOutput) SetComplianceSummariesByResou return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetDiscoveredResourceCountsRequest type GetDiscoveredResourceCountsInput struct { _ struct{} `type:"structure"` @@ -5379,7 +5324,6 @@ func (s *GetDiscoveredResourceCountsInput) SetResourceTypes(v []*string) *GetDis return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetDiscoveredResourceCountsResponse type GetDiscoveredResourceCountsOutput struct { _ struct{} `type:"structure"` @@ -5437,7 +5381,6 @@ func (s *GetDiscoveredResourceCountsOutput) SetTotalDiscoveredResources(v int64) } // The input for the GetResourceConfigHistory action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetResourceConfigHistoryRequest type GetResourceConfigHistoryInput struct { _ struct{} `type:"structure"` @@ -5543,7 +5486,6 @@ func (s *GetResourceConfigHistoryInput) SetResourceType(v string) *GetResourceCo } // The output for the GetResourceConfigHistory action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetResourceConfigHistoryResponse type GetResourceConfigHistoryOutput struct { _ struct{} `type:"structure"` @@ -5577,7 +5519,6 @@ func (s *GetResourceConfigHistoryOutput) SetNextToken(v string) *GetResourceConf return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ListDiscoveredResourcesRequest type ListDiscoveredResourcesInput struct { _ struct{} `type:"structure"` @@ -5669,7 +5610,6 @@ func (s *ListDiscoveredResourcesInput) SetResourceType(v string) *ListDiscovered return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ListDiscoveredResourcesResponse type ListDiscoveredResourcesOutput struct { _ struct{} `type:"structure"` @@ -5704,7 +5644,6 @@ func (s *ListDiscoveredResourcesOutput) SetResourceIdentifiers(v []*ResourceIden return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutConfigRuleRequest type PutConfigRuleInput struct { _ struct{} `type:"structure"` @@ -5748,7 +5687,6 @@ func (s *PutConfigRuleInput) SetConfigRule(v *ConfigRule) *PutConfigRuleInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutConfigRuleOutput type PutConfigRuleOutput struct { _ struct{} `type:"structure"` } @@ -5764,7 +5702,6 @@ func (s PutConfigRuleOutput) GoString() string { } // The input for the PutConfigurationRecorder action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutConfigurationRecorderRequest type PutConfigurationRecorderInput struct { _ struct{} `type:"structure"` @@ -5809,7 +5746,6 @@ func (s *PutConfigurationRecorderInput) SetConfigurationRecorder(v *Configuratio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutConfigurationRecorderOutput type PutConfigurationRecorderOutput struct { _ struct{} `type:"structure"` } @@ -5825,7 +5761,6 @@ func (s PutConfigurationRecorderOutput) GoString() string { } // The input for the PutDeliveryChannel action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutDeliveryChannelRequest type PutDeliveryChannelInput struct { _ struct{} `type:"structure"` @@ -5870,7 +5805,6 @@ func (s *PutDeliveryChannelInput) SetDeliveryChannel(v *DeliveryChannel) *PutDel return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutDeliveryChannelOutput type PutDeliveryChannelOutput struct { _ struct{} `type:"structure"` } @@ -5885,7 +5819,6 @@ func (s PutDeliveryChannelOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutEvaluationsRequest type PutEvaluationsInput struct { _ struct{} `type:"structure"` @@ -5961,7 +5894,6 @@ func (s *PutEvaluationsInput) SetTestMode(v bool) *PutEvaluationsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutEvaluationsResponse type PutEvaluationsOutput struct { _ struct{} `type:"structure"` @@ -6015,7 +5947,6 @@ func (s *PutEvaluationsOutput) SetFailedEvaluations(v []*Evaluation) *PutEvaluat // For a list of supported resource types, see Supported resource types (http://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources). // // For more information, see Selecting Which Resources AWS Config Records (http://docs.aws.amazon.com/config/latest/developerguide/select-resources.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/RecordingGroup type RecordingGroup struct { _ struct{} `type:"structure"` @@ -6088,7 +6019,6 @@ func (s *RecordingGroup) SetResourceTypes(v []*string) *RecordingGroup { } // The relationship of the related resource to the main resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/Relationship type Relationship struct { _ struct{} `type:"structure"` @@ -6140,7 +6070,6 @@ func (s *Relationship) SetResourceType(v string) *Relationship { } // An object that contains the resource type and the number of resources. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ResourceCount type ResourceCount struct { _ struct{} `type:"structure"` @@ -6175,7 +6104,6 @@ func (s *ResourceCount) SetResourceType(v string) *ResourceCount { // The details that identify a resource that is discovered by AWS Config, including // the resource type, ID, and (if available) the custom resource name. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ResourceIdentifier type ResourceIdentifier struct { _ struct{} `type:"structure"` @@ -6232,7 +6160,6 @@ func (s *ResourceIdentifier) SetResourceType(v string) *ResourceIdentifier { // a scope to constrain which resources trigger an evaluation for a rule. Otherwise, // evaluations for the rule are triggered when any resource in your recording // group changes in configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/Scope type Scope struct { _ struct{} `type:"structure"` @@ -6311,7 +6238,6 @@ func (s *Scope) SetTagValue(v string) *Scope { // Provides the AWS Config rule owner (AWS or customer), the rule identifier, // and the events that trigger the evaluation of your AWS resources. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/Source type Source struct { _ struct{} `type:"structure"` @@ -6387,7 +6313,6 @@ func (s *Source) SetSourceIdentifier(v string) *Source { // you want AWS Config to run evaluations for the rule if the trigger type is // periodic. You can specify the parameter values for SourceDetail only for // custom rules. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/SourceDetail type SourceDetail struct { _ struct{} `type:"structure"` @@ -6454,7 +6379,6 @@ func (s *SourceDetail) SetMessageType(v string) *SourceDetail { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/StartConfigRulesEvaluationRequest type StartConfigRulesEvaluationInput struct { _ struct{} `type:"structure"` @@ -6492,7 +6416,6 @@ func (s *StartConfigRulesEvaluationInput) SetConfigRuleNames(v []*string) *Start } // The output when you start the evaluation for the specified Config rule. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/StartConfigRulesEvaluationResponse type StartConfigRulesEvaluationOutput struct { _ struct{} `type:"structure"` } @@ -6508,7 +6431,6 @@ func (s StartConfigRulesEvaluationOutput) GoString() string { } // The input for the StartConfigurationRecorder action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/StartConfigurationRecorderRequest type StartConfigurationRecorderInput struct { _ struct{} `type:"structure"` @@ -6551,7 +6473,6 @@ func (s *StartConfigurationRecorderInput) SetConfigurationRecorderName(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/StartConfigurationRecorderOutput type StartConfigurationRecorderOutput struct { _ struct{} `type:"structure"` } @@ -6567,7 +6488,6 @@ func (s StartConfigurationRecorderOutput) GoString() string { } // The input for the StopConfigurationRecorder action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/StopConfigurationRecorderRequest type StopConfigurationRecorderInput struct { _ struct{} `type:"structure"` @@ -6610,7 +6530,6 @@ func (s *StopConfigurationRecorderInput) SetConfigurationRecorderName(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/StopConfigurationRecorderOutput type StopConfigurationRecorderOutput struct { _ struct{} `type:"structure"` } diff --git a/vendor/github.com/aws/aws-sdk-go/service/databasemigrationservice/api.go b/vendor/github.com/aws/aws-sdk-go/service/databasemigrationservice/api.go index 8f66a79d2..22bb4d1aa 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/databasemigrationservice/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/databasemigrationservice/api.go @@ -2275,6 +2275,145 @@ func (c *DatabaseMigrationService) DescribeRefreshSchemasStatusWithContext(ctx a return out, req.Send() } +const opDescribeReplicationInstanceTaskLogs = "DescribeReplicationInstanceTaskLogs" + +// DescribeReplicationInstanceTaskLogsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeReplicationInstanceTaskLogs operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeReplicationInstanceTaskLogs for more information on using the DescribeReplicationInstanceTaskLogs +// 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 DescribeReplicationInstanceTaskLogsRequest method. +// req, resp := client.DescribeReplicationInstanceTaskLogsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeReplicationInstanceTaskLogs +func (c *DatabaseMigrationService) DescribeReplicationInstanceTaskLogsRequest(input *DescribeReplicationInstanceTaskLogsInput) (req *request.Request, output *DescribeReplicationInstanceTaskLogsOutput) { + op := &request.Operation{ + Name: opDescribeReplicationInstanceTaskLogs, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"Marker"}, + OutputTokens: []string{"Marker"}, + LimitToken: "MaxRecords", + TruncationToken: "", + }, + } + + if input == nil { + input = &DescribeReplicationInstanceTaskLogsInput{} + } + + output = &DescribeReplicationInstanceTaskLogsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeReplicationInstanceTaskLogs API operation for AWS Database Migration Service. +// +// Returns information about the task logs for the specified task. +// +// 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 Database Migration Service's +// API operation DescribeReplicationInstanceTaskLogs for usage and error information. +// +// Returned Error Codes: +// * ErrCodeResourceNotFoundFault "ResourceNotFoundFault" +// The resource could not be found. +// +// * ErrCodeInvalidResourceStateFault "InvalidResourceStateFault" +// The resource is in a state that prevents it from being used for database +// migration. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeReplicationInstanceTaskLogs +func (c *DatabaseMigrationService) DescribeReplicationInstanceTaskLogs(input *DescribeReplicationInstanceTaskLogsInput) (*DescribeReplicationInstanceTaskLogsOutput, error) { + req, out := c.DescribeReplicationInstanceTaskLogsRequest(input) + return out, req.Send() +} + +// DescribeReplicationInstanceTaskLogsWithContext is the same as DescribeReplicationInstanceTaskLogs with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeReplicationInstanceTaskLogs 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 *DatabaseMigrationService) DescribeReplicationInstanceTaskLogsWithContext(ctx aws.Context, input *DescribeReplicationInstanceTaskLogsInput, opts ...request.Option) (*DescribeReplicationInstanceTaskLogsOutput, error) { + req, out := c.DescribeReplicationInstanceTaskLogsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// DescribeReplicationInstanceTaskLogsPages iterates over the pages of a DescribeReplicationInstanceTaskLogs operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See DescribeReplicationInstanceTaskLogs 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 DescribeReplicationInstanceTaskLogs operation. +// pageNum := 0 +// err := client.DescribeReplicationInstanceTaskLogsPages(params, +// func(page *DescribeReplicationInstanceTaskLogsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *DatabaseMigrationService) DescribeReplicationInstanceTaskLogsPages(input *DescribeReplicationInstanceTaskLogsInput, fn func(*DescribeReplicationInstanceTaskLogsOutput, bool) bool) error { + return c.DescribeReplicationInstanceTaskLogsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// DescribeReplicationInstanceTaskLogsPagesWithContext same as DescribeReplicationInstanceTaskLogsPages 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 *DatabaseMigrationService) DescribeReplicationInstanceTaskLogsPagesWithContext(ctx aws.Context, input *DescribeReplicationInstanceTaskLogsInput, fn func(*DescribeReplicationInstanceTaskLogsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *DescribeReplicationInstanceTaskLogsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.DescribeReplicationInstanceTaskLogsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + cont := true + for p.Next() && cont { + cont = fn(p.Page().(*DescribeReplicationInstanceTaskLogsOutput), !p.HasNextPage()) + } + return p.Err() +} + const opDescribeReplicationInstances = "DescribeReplicationInstances" // DescribeReplicationInstancesRequest generates a "aws/request.Request" representing the @@ -3161,6 +3300,9 @@ func (c *DatabaseMigrationService) ImportCertificateRequest(input *ImportCertifi // * ErrCodeInvalidCertificateFault "InvalidCertificateFault" // The certificate was not valid. // +// * ErrCodeResourceQuotaExceededFault "ResourceQuotaExceededFault" +// The quota for this resource quota has been exceeded. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ImportCertificate func (c *DatabaseMigrationService) ImportCertificate(input *ImportCertificateInput) (*ImportCertificateOutput, error) { req, out := c.ImportCertificateRequest(input) @@ -3731,6 +3873,90 @@ func (c *DatabaseMigrationService) ModifyReplicationTaskWithContext(ctx aws.Cont return out, req.Send() } +const opRebootReplicationInstance = "RebootReplicationInstance" + +// RebootReplicationInstanceRequest generates a "aws/request.Request" representing the +// client's request for the RebootReplicationInstance operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 RebootReplicationInstance for more information on using the RebootReplicationInstance +// 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 RebootReplicationInstanceRequest method. +// req, resp := client.RebootReplicationInstanceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/RebootReplicationInstance +func (c *DatabaseMigrationService) RebootReplicationInstanceRequest(input *RebootReplicationInstanceInput) (req *request.Request, output *RebootReplicationInstanceOutput) { + op := &request.Operation{ + Name: opRebootReplicationInstance, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &RebootReplicationInstanceInput{} + } + + output = &RebootReplicationInstanceOutput{} + req = c.newRequest(op, input, output) + return +} + +// RebootReplicationInstance API operation for AWS Database Migration Service. +// +// Reboots a replication instance. Rebooting results in a momentary outage, +// until the replication instance becomes available again. +// +// 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 Database Migration Service's +// API operation RebootReplicationInstance for usage and error information. +// +// Returned Error Codes: +// * ErrCodeResourceNotFoundFault "ResourceNotFoundFault" +// The resource could not be found. +// +// * ErrCodeInvalidResourceStateFault "InvalidResourceStateFault" +// The resource is in a state that prevents it from being used for database +// migration. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/RebootReplicationInstance +func (c *DatabaseMigrationService) RebootReplicationInstance(input *RebootReplicationInstanceInput) (*RebootReplicationInstanceOutput, error) { + req, out := c.RebootReplicationInstanceRequest(input) + return out, req.Send() +} + +// RebootReplicationInstanceWithContext is the same as RebootReplicationInstance with the addition of +// the ability to pass a context and additional request options. +// +// See RebootReplicationInstance 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 *DatabaseMigrationService) RebootReplicationInstanceWithContext(ctx aws.Context, input *RebootReplicationInstanceInput, opts ...request.Option) (*RebootReplicationInstanceOutput, error) { + req, out := c.RebootReplicationInstanceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opRefreshSchemas = "RefreshSchemas" // RefreshSchemasRequest generates a "aws/request.Request" representing the @@ -4328,7 +4554,6 @@ func (c *DatabaseMigrationService) TestConnectionWithContext(ctx aws.Context, in // Describes a quota for an AWS account, for example, the number of replication // instances allowed. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/AccountQuota type AccountQuota struct { _ struct{} `type:"structure"` @@ -4370,7 +4595,6 @@ func (s *AccountQuota) SetUsed(v int64) *AccountQuota { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/AddTagsToResourceMessage type AddTagsToResourceInput struct { _ struct{} `type:"structure"` @@ -4425,7 +4649,6 @@ func (s *AddTagsToResourceInput) SetTags(v []*Tag) *AddTagsToResourceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/AddTagsToResourceResponse type AddTagsToResourceOutput struct { _ struct{} `type:"structure"` } @@ -4440,7 +4663,6 @@ func (s AddTagsToResourceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/AvailabilityZone type AvailabilityZone struct { _ struct{} `type:"structure"` @@ -4466,7 +4688,6 @@ func (s *AvailabilityZone) SetName(v string) *AvailabilityZone { // The SSL certificate that can be used to encrypt connections between the endpoints // and the replication instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/Certificate type Certificate struct { _ struct{} `type:"structure"` @@ -4574,7 +4795,6 @@ func (s *Certificate) SetValidToDate(v time.Time) *Certificate { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/Connection type Connection struct { _ struct{} `type:"structure"` @@ -4646,7 +4866,6 @@ func (s *Connection) SetStatus(v string) *Connection { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/CreateEndpointMessage type CreateEndpointInput struct { _ struct{} `type:"structure"` @@ -4675,8 +4894,8 @@ type CreateEndpointInput struct { EndpointType *string `type:"string" required:"true" enum:"ReplicationEndpointTypeValue"` // The type of engine for the endpoint. Valid values, depending on the EndPointType, - // include MYSQL, ORACLE, POSTGRES, MARIADB, AURORA, REDSHIFT, S3, SYBASE, DYNAMODB, - // MONGODB, and SQLSERVER. + // include mysql, oracle, postgres, mariadb, aurora, redshift, S3, sybase, dynamodb, + // mongodb, and sqlserver. // // EngineName is a required field EngineName *string `type:"string" required:"true"` @@ -4855,7 +5074,6 @@ func (s *CreateEndpointInput) SetUsername(v string) *CreateEndpointInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/CreateEndpointResponse type CreateEndpointOutput struct { _ struct{} `type:"structure"` @@ -4879,7 +5097,6 @@ func (s *CreateEndpointOutput) SetEndpoint(v *Endpoint) *CreateEndpointOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/CreateEventSubscriptionMessage type CreateEventSubscriptionInput struct { _ struct{} `type:"structure"` @@ -4994,7 +5211,6 @@ func (s *CreateEventSubscriptionInput) SetTags(v []*Tag) *CreateEventSubscriptio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/CreateEventSubscriptionResponse type CreateEventSubscriptionOutput struct { _ struct{} `type:"structure"` @@ -5018,7 +5234,6 @@ func (s *CreateEventSubscriptionOutput) SetEventSubscription(v *EventSubscriptio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/CreateReplicationInstanceMessage type CreateReplicationInstanceInput struct { _ struct{} `type:"structure"` @@ -5212,7 +5427,6 @@ func (s *CreateReplicationInstanceInput) SetVpcSecurityGroupIds(v []*string) *Cr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/CreateReplicationInstanceResponse type CreateReplicationInstanceOutput struct { _ struct{} `type:"structure"` @@ -5236,7 +5450,6 @@ func (s *CreateReplicationInstanceOutput) SetReplicationInstance(v *ReplicationI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/CreateReplicationSubnetGroupMessage type CreateReplicationSubnetGroupInput struct { _ struct{} `type:"structure"` @@ -5318,7 +5531,6 @@ func (s *CreateReplicationSubnetGroupInput) SetTags(v []*Tag) *CreateReplication return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/CreateReplicationSubnetGroupResponse type CreateReplicationSubnetGroupOutput struct { _ struct{} `type:"structure"` @@ -5342,7 +5554,6 @@ func (s *CreateReplicationSubnetGroupOutput) SetReplicationSubnetGroup(v *Replic return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/CreateReplicationTaskMessage type CreateReplicationTaskInput struct { _ struct{} `type:"structure"` @@ -5492,7 +5703,6 @@ func (s *CreateReplicationTaskInput) SetTargetEndpointArn(v string) *CreateRepli return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/CreateReplicationTaskResponse type CreateReplicationTaskOutput struct { _ struct{} `type:"structure"` @@ -5516,7 +5726,6 @@ func (s *CreateReplicationTaskOutput) SetReplicationTask(v *ReplicationTask) *Cr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DeleteCertificateMessage type DeleteCertificateInput struct { _ struct{} `type:"structure"` @@ -5555,7 +5764,6 @@ func (s *DeleteCertificateInput) SetCertificateArn(v string) *DeleteCertificateI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DeleteCertificateResponse type DeleteCertificateOutput struct { _ struct{} `type:"structure"` @@ -5579,7 +5787,6 @@ func (s *DeleteCertificateOutput) SetCertificate(v *Certificate) *DeleteCertific return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DeleteEndpointMessage type DeleteEndpointInput struct { _ struct{} `type:"structure"` @@ -5618,7 +5825,6 @@ func (s *DeleteEndpointInput) SetEndpointArn(v string) *DeleteEndpointInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DeleteEndpointResponse type DeleteEndpointOutput struct { _ struct{} `type:"structure"` @@ -5642,7 +5848,6 @@ func (s *DeleteEndpointOutput) SetEndpoint(v *Endpoint) *DeleteEndpointOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DeleteEventSubscriptionMessage type DeleteEventSubscriptionInput struct { _ struct{} `type:"structure"` @@ -5681,7 +5886,6 @@ func (s *DeleteEventSubscriptionInput) SetSubscriptionName(v string) *DeleteEven return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DeleteEventSubscriptionResponse type DeleteEventSubscriptionOutput struct { _ struct{} `type:"structure"` @@ -5705,7 +5909,6 @@ func (s *DeleteEventSubscriptionOutput) SetEventSubscription(v *EventSubscriptio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DeleteReplicationInstanceMessage type DeleteReplicationInstanceInput struct { _ struct{} `type:"structure"` @@ -5744,7 +5947,6 @@ func (s *DeleteReplicationInstanceInput) SetReplicationInstanceArn(v string) *De return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DeleteReplicationInstanceResponse type DeleteReplicationInstanceOutput struct { _ struct{} `type:"structure"` @@ -5768,7 +5970,6 @@ func (s *DeleteReplicationInstanceOutput) SetReplicationInstance(v *ReplicationI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DeleteReplicationSubnetGroupMessage type DeleteReplicationSubnetGroupInput struct { _ struct{} `type:"structure"` @@ -5807,7 +6008,6 @@ func (s *DeleteReplicationSubnetGroupInput) SetReplicationSubnetGroupIdentifier( return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DeleteReplicationSubnetGroupResponse type DeleteReplicationSubnetGroupOutput struct { _ struct{} `type:"structure"` } @@ -5822,7 +6022,6 @@ func (s DeleteReplicationSubnetGroupOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DeleteReplicationTaskMessage type DeleteReplicationTaskInput struct { _ struct{} `type:"structure"` @@ -5861,7 +6060,6 @@ func (s *DeleteReplicationTaskInput) SetReplicationTaskArn(v string) *DeleteRepl return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DeleteReplicationTaskResponse type DeleteReplicationTaskOutput struct { _ struct{} `type:"structure"` @@ -5885,7 +6083,6 @@ func (s *DeleteReplicationTaskOutput) SetReplicationTask(v *ReplicationTask) *De return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeAccountAttributesMessage type DescribeAccountAttributesInput struct { _ struct{} `type:"structure"` } @@ -5900,7 +6097,6 @@ func (s DescribeAccountAttributesInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeAccountAttributesResponse type DescribeAccountAttributesOutput struct { _ struct{} `type:"structure"` @@ -5924,7 +6120,6 @@ func (s *DescribeAccountAttributesOutput) SetAccountQuotas(v []*AccountQuota) *D return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeCertificatesMessage type DescribeCertificatesInput struct { _ struct{} `type:"structure"` @@ -5992,7 +6187,6 @@ func (s *DescribeCertificatesInput) SetMaxRecords(v int64) *DescribeCertificates return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeCertificatesResponse type DescribeCertificatesOutput struct { _ struct{} `type:"structure"` @@ -6026,7 +6220,6 @@ func (s *DescribeCertificatesOutput) SetMarker(v string) *DescribeCertificatesOu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeConnectionsMessage type DescribeConnectionsInput struct { _ struct{} `type:"structure"` @@ -6098,7 +6291,6 @@ func (s *DescribeConnectionsInput) SetMaxRecords(v int64) *DescribeConnectionsIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeConnectionsResponse type DescribeConnectionsOutput struct { _ struct{} `type:"structure"` @@ -6133,7 +6325,6 @@ func (s *DescribeConnectionsOutput) SetMarker(v string) *DescribeConnectionsOutp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeEndpointTypesMessage type DescribeEndpointTypesInput struct { _ struct{} `type:"structure"` @@ -6205,7 +6396,6 @@ func (s *DescribeEndpointTypesInput) SetMaxRecords(v int64) *DescribeEndpointTyp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeEndpointTypesResponse type DescribeEndpointTypesOutput struct { _ struct{} `type:"structure"` @@ -6240,7 +6430,6 @@ func (s *DescribeEndpointTypesOutput) SetSupportedEndpointTypes(v []*SupportedEn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeEndpointsMessage type DescribeEndpointsInput struct { _ struct{} `type:"structure"` @@ -6312,7 +6501,6 @@ func (s *DescribeEndpointsInput) SetMaxRecords(v int64) *DescribeEndpointsInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeEndpointsResponse type DescribeEndpointsOutput struct { _ struct{} `type:"structure"` @@ -6347,7 +6535,6 @@ func (s *DescribeEndpointsOutput) SetMarker(v string) *DescribeEndpointsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeEventCategoriesMessage type DescribeEventCategoriesInput struct { _ struct{} `type:"structure"` @@ -6402,7 +6589,6 @@ func (s *DescribeEventCategoriesInput) SetSourceType(v string) *DescribeEventCat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeEventCategoriesResponse type DescribeEventCategoriesOutput struct { _ struct{} `type:"structure"` @@ -6426,7 +6612,6 @@ func (s *DescribeEventCategoriesOutput) SetEventCategoryGroupList(v []*EventCate return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeEventSubscriptionsMessage type DescribeEventSubscriptionsInput struct { _ struct{} `type:"structure"` @@ -6505,7 +6690,6 @@ func (s *DescribeEventSubscriptionsInput) SetSubscriptionName(v string) *Describ return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeEventSubscriptionsResponse type DescribeEventSubscriptionsOutput struct { _ struct{} `type:"structure"` @@ -6540,7 +6724,6 @@ func (s *DescribeEventSubscriptionsOutput) SetMarker(v string) *DescribeEventSub return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeEventsMessage type DescribeEventsInput struct { _ struct{} `type:"structure"` @@ -6668,7 +6851,6 @@ func (s *DescribeEventsInput) SetStartTime(v time.Time) *DescribeEventsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeEventsResponse type DescribeEventsOutput struct { _ struct{} `type:"structure"` @@ -6703,7 +6885,6 @@ func (s *DescribeEventsOutput) SetMarker(v string) *DescribeEventsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeOrderableReplicationInstancesMessage type DescribeOrderableReplicationInstancesInput struct { _ struct{} `type:"structure"` @@ -6744,7 +6925,6 @@ func (s *DescribeOrderableReplicationInstancesInput) SetMaxRecords(v int64) *Des return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeOrderableReplicationInstancesResponse type DescribeOrderableReplicationInstancesOutput struct { _ struct{} `type:"structure"` @@ -6779,7 +6959,6 @@ func (s *DescribeOrderableReplicationInstancesOutput) SetOrderableReplicationIns return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeRefreshSchemasStatusMessage type DescribeRefreshSchemasStatusInput struct { _ struct{} `type:"structure"` @@ -6818,7 +6997,6 @@ func (s *DescribeRefreshSchemasStatusInput) SetEndpointArn(v string) *DescribeRe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeRefreshSchemasStatusResponse type DescribeRefreshSchemasStatusOutput struct { _ struct{} `type:"structure"` @@ -6842,7 +7020,114 @@ func (s *DescribeRefreshSchemasStatusOutput) SetRefreshSchemasStatus(v *RefreshS return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeReplicationInstancesMessage +type DescribeReplicationInstanceTaskLogsInput struct { + _ struct{} `type:"structure"` + + // An optional pagination token provided by a previous request. If this parameter + // is specified, the response includes only records beyond the marker, up to + // the value specified by MaxRecords. + Marker *string `type:"string"` + + // The maximum number of records to include in the response. If more records + // exist than the specified MaxRecords value, a pagination token called a marker + // is included in the response so that the remaining results can be retrieved. + // + // Default: 100 + // + // Constraints: Minimum 20, maximum 100. + MaxRecords *int64 `type:"integer"` + + // The Amazon Resource Name (ARN) of the replication instance. + // + // ReplicationInstanceArn is a required field + ReplicationInstanceArn *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeReplicationInstanceTaskLogsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeReplicationInstanceTaskLogsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeReplicationInstanceTaskLogsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeReplicationInstanceTaskLogsInput"} + if s.ReplicationInstanceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ReplicationInstanceArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMarker sets the Marker field's value. +func (s *DescribeReplicationInstanceTaskLogsInput) SetMarker(v string) *DescribeReplicationInstanceTaskLogsInput { + s.Marker = &v + return s +} + +// SetMaxRecords sets the MaxRecords field's value. +func (s *DescribeReplicationInstanceTaskLogsInput) SetMaxRecords(v int64) *DescribeReplicationInstanceTaskLogsInput { + s.MaxRecords = &v + return s +} + +// SetReplicationInstanceArn sets the ReplicationInstanceArn field's value. +func (s *DescribeReplicationInstanceTaskLogsInput) SetReplicationInstanceArn(v string) *DescribeReplicationInstanceTaskLogsInput { + s.ReplicationInstanceArn = &v + return s +} + +type DescribeReplicationInstanceTaskLogsOutput struct { + _ struct{} `type:"structure"` + + // An optional pagination token provided by a previous request. If this parameter + // is specified, the response includes only records beyond the marker, up to + // the value specified by MaxRecords. + Marker *string `type:"string"` + + // The Amazon Resource Name (ARN) of the replication instance. + ReplicationInstanceArn *string `type:"string"` + + // An array of replication task log metadata. Each member of the array contains + // the replication task name, ARN, and task log size (in bytes). + ReplicationInstanceTaskLogs []*ReplicationInstanceTaskLog `type:"list"` +} + +// String returns the string representation +func (s DescribeReplicationInstanceTaskLogsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeReplicationInstanceTaskLogsOutput) GoString() string { + return s.String() +} + +// SetMarker sets the Marker field's value. +func (s *DescribeReplicationInstanceTaskLogsOutput) SetMarker(v string) *DescribeReplicationInstanceTaskLogsOutput { + s.Marker = &v + return s +} + +// SetReplicationInstanceArn sets the ReplicationInstanceArn field's value. +func (s *DescribeReplicationInstanceTaskLogsOutput) SetReplicationInstanceArn(v string) *DescribeReplicationInstanceTaskLogsOutput { + s.ReplicationInstanceArn = &v + return s +} + +// SetReplicationInstanceTaskLogs sets the ReplicationInstanceTaskLogs field's value. +func (s *DescribeReplicationInstanceTaskLogsOutput) SetReplicationInstanceTaskLogs(v []*ReplicationInstanceTaskLog) *DescribeReplicationInstanceTaskLogsOutput { + s.ReplicationInstanceTaskLogs = v + return s +} + type DescribeReplicationInstancesInput struct { _ struct{} `type:"structure"` @@ -6915,7 +7200,6 @@ func (s *DescribeReplicationInstancesInput) SetMaxRecords(v int64) *DescribeRepl return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeReplicationInstancesResponse type DescribeReplicationInstancesOutput struct { _ struct{} `type:"structure"` @@ -6950,7 +7234,6 @@ func (s *DescribeReplicationInstancesOutput) SetReplicationInstances(v []*Replic return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeReplicationSubnetGroupsMessage type DescribeReplicationSubnetGroupsInput struct { _ struct{} `type:"structure"` @@ -7020,7 +7303,6 @@ func (s *DescribeReplicationSubnetGroupsInput) SetMaxRecords(v int64) *DescribeR return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeReplicationSubnetGroupsResponse type DescribeReplicationSubnetGroupsOutput struct { _ struct{} `type:"structure"` @@ -7055,7 +7337,6 @@ func (s *DescribeReplicationSubnetGroupsOutput) SetReplicationSubnetGroups(v []* return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeReplicationTaskAssessmentResultsMessage type DescribeReplicationTaskAssessmentResultsInput struct { _ struct{} `type:"structure"` @@ -7107,7 +7388,6 @@ func (s *DescribeReplicationTaskAssessmentResultsInput) SetReplicationTaskArn(v return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeReplicationTaskAssessmentResultsResponse type DescribeReplicationTaskAssessmentResultsOutput struct { _ struct{} `type:"structure"` @@ -7151,7 +7431,6 @@ func (s *DescribeReplicationTaskAssessmentResultsOutput) SetReplicationTaskAsses return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeReplicationTasksMessage type DescribeReplicationTasksInput struct { _ struct{} `type:"structure"` @@ -7224,7 +7503,6 @@ func (s *DescribeReplicationTasksInput) SetMaxRecords(v int64) *DescribeReplicat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeReplicationTasksResponse type DescribeReplicationTasksOutput struct { _ struct{} `type:"structure"` @@ -7259,7 +7537,6 @@ func (s *DescribeReplicationTasksOutput) SetReplicationTasks(v []*ReplicationTas return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeSchemasMessage type DescribeSchemasInput struct { _ struct{} `type:"structure"` @@ -7324,7 +7601,6 @@ func (s *DescribeSchemasInput) SetMaxRecords(v int64) *DescribeSchemasInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeSchemasResponse type DescribeSchemasOutput struct { _ struct{} `type:"structure"` @@ -7359,7 +7635,6 @@ func (s *DescribeSchemasOutput) SetSchemas(v []*string) *DescribeSchemasOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeTableStatisticsMessage type DescribeTableStatisticsInput struct { _ struct{} `type:"structure"` @@ -7448,7 +7723,6 @@ func (s *DescribeTableStatisticsInput) SetReplicationTaskArn(v string) *Describe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DescribeTableStatisticsResponse type DescribeTableStatisticsOutput struct { _ struct{} `type:"structure"` @@ -7492,7 +7766,6 @@ func (s *DescribeTableStatisticsOutput) SetTableStatistics(v []*TableStatistics) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/DynamoDbSettings type DynamoDbSettings struct { _ struct{} `type:"structure"` @@ -7531,7 +7804,6 @@ func (s *DynamoDbSettings) SetServiceAccessRoleArn(v string) *DynamoDbSettings { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/Endpoint type Endpoint struct { _ struct{} `type:"structure"` @@ -7557,8 +7829,8 @@ type Endpoint struct { EndpointType *string `type:"string" enum:"ReplicationEndpointTypeValue"` // The database engine name. Valid values, depending on the EndPointType, include - // MYSQL, ORACLE, POSTGRES, MARIADB, AURORA, REDSHIFT, S3, SYBASE, DYNAMODB, - // MONGODB, and SQLSERVER. + // mysql, oracle, postgres, mariadb, aurora, redshift, S3, sybase, dynamodb, + // mongodb, and sqlserver. EngineName *string `type:"string"` // Value returned by a call to CreateEndpoint that can be used for cross-account @@ -7716,7 +7988,6 @@ func (s *Endpoint) SetUsername(v string) *Endpoint { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/Event type Event struct { _ struct{} `type:"structure"` @@ -7782,7 +8053,6 @@ func (s *Event) SetSourceType(v string) *Event { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/EventCategoryGroup type EventCategoryGroup struct { _ struct{} `type:"structure"` @@ -7818,7 +8088,6 @@ func (s *EventCategoryGroup) SetSourceType(v string) *EventCategoryGroup { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/EventSubscription type EventSubscription struct { _ struct{} `type:"structure"` @@ -7926,7 +8195,6 @@ func (s *EventSubscription) SetSubscriptionCreationTime(v string) *EventSubscrip return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/Filter type Filter struct { _ struct{} `type:"structure"` @@ -7979,7 +8247,6 @@ func (s *Filter) SetValues(v []*string) *Filter { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ImportCertificateMessage type ImportCertificateInput struct { _ struct{} `type:"structure"` @@ -8048,7 +8315,6 @@ func (s *ImportCertificateInput) SetTags(v []*Tag) *ImportCertificateInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ImportCertificateResponse type ImportCertificateOutput struct { _ struct{} `type:"structure"` @@ -8072,7 +8338,6 @@ func (s *ImportCertificateOutput) SetCertificate(v *Certificate) *ImportCertific return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ListTagsForResourceMessage type ListTagsForResourceInput struct { _ struct{} `type:"structure"` @@ -8112,7 +8377,6 @@ func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResource return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ListTagsForResourceResponse type ListTagsForResourceOutput struct { _ struct{} `type:"structure"` @@ -8136,7 +8400,6 @@ func (s *ListTagsForResourceOutput) SetTagList(v []*Tag) *ListTagsForResourceOut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ModifyEndpointMessage type ModifyEndpointInput struct { _ struct{} `type:"structure"` @@ -8166,8 +8429,8 @@ type ModifyEndpointInput struct { EndpointType *string `type:"string" enum:"ReplicationEndpointTypeValue"` // The type of engine for the endpoint. Valid values, depending on the EndPointType, - // include MYSQL, ORACLE, POSTGRES, MARIADB, AURORA, REDSHIFT, S3, DYNAMODB, - // MONGODB, SYBASE, and SQLSERVER. + // include mysql, oracle, postgres, mariadb, aurora, redshift, S3, sybase, dynamodb, + // mongodb, and sqlserver. EngineName *string `type:"string"` // Additional attributes associated with the connection. To reset this parameter, @@ -8323,7 +8586,6 @@ func (s *ModifyEndpointInput) SetUsername(v string) *ModifyEndpointInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ModifyEndpointResponse type ModifyEndpointOutput struct { _ struct{} `type:"structure"` @@ -8347,7 +8609,6 @@ func (s *ModifyEndpointOutput) SetEndpoint(v *Endpoint) *ModifyEndpointOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ModifyEventSubscriptionMessage type ModifyEventSubscriptionInput struct { _ struct{} `type:"structure"` @@ -8428,7 +8689,6 @@ func (s *ModifyEventSubscriptionInput) SetSubscriptionName(v string) *ModifyEven return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ModifyEventSubscriptionResponse type ModifyEventSubscriptionOutput struct { _ struct{} `type:"structure"` @@ -8452,7 +8712,6 @@ func (s *ModifyEventSubscriptionOutput) SetEventSubscription(v *EventSubscriptio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ModifyReplicationInstanceMessage type ModifyReplicationInstanceInput struct { _ struct{} `type:"structure"` @@ -8615,7 +8874,6 @@ func (s *ModifyReplicationInstanceInput) SetVpcSecurityGroupIds(v []*string) *Mo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ModifyReplicationInstanceResponse type ModifyReplicationInstanceOutput struct { _ struct{} `type:"structure"` @@ -8639,7 +8897,6 @@ func (s *ModifyReplicationInstanceOutput) SetReplicationInstance(v *ReplicationI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ModifyReplicationSubnetGroupMessage type ModifyReplicationSubnetGroupInput struct { _ struct{} `type:"structure"` @@ -8701,7 +8958,6 @@ func (s *ModifyReplicationSubnetGroupInput) SetSubnetIds(v []*string) *ModifyRep return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ModifyReplicationSubnetGroupResponse type ModifyReplicationSubnetGroupOutput struct { _ struct{} `type:"structure"` @@ -8725,7 +8981,6 @@ func (s *ModifyReplicationSubnetGroupOutput) SetReplicationSubnetGroup(v *Replic return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ModifyReplicationTaskMessage type ModifyReplicationTaskInput struct { _ struct{} `type:"structure"` @@ -8823,7 +9078,6 @@ func (s *ModifyReplicationTaskInput) SetTableMappings(v string) *ModifyReplicati return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ModifyReplicationTaskResponse type ModifyReplicationTaskOutput struct { _ struct{} `type:"structure"` @@ -8847,7 +9101,6 @@ func (s *ModifyReplicationTaskOutput) SetReplicationTask(v *ReplicationTask) *Mo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/MongoDbSettings type MongoDbSettings struct { _ struct{} `type:"structure"` @@ -8984,7 +9237,6 @@ func (s *MongoDbSettings) SetUsername(v string) *MongoDbSettings { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/OrderableReplicationInstance type OrderableReplicationInstance struct { _ struct{} `type:"structure"` @@ -9069,7 +9321,77 @@ func (s *OrderableReplicationInstance) SetStorageType(v string) *OrderableReplic return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/RefreshSchemasMessage +type RebootReplicationInstanceInput struct { + _ struct{} `type:"structure"` + + // If this parameter is true, the reboot is conducted through a Multi-AZ failover. + // (If the instance isn't configured for Multi-AZ, then you can't specify true.) + ForceFailover *bool `type:"boolean"` + + // The Amazon Resource Name (ARN) of the replication instance. + // + // ReplicationInstanceArn is a required field + ReplicationInstanceArn *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s RebootReplicationInstanceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RebootReplicationInstanceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RebootReplicationInstanceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RebootReplicationInstanceInput"} + if s.ReplicationInstanceArn == nil { + invalidParams.Add(request.NewErrParamRequired("ReplicationInstanceArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetForceFailover sets the ForceFailover field's value. +func (s *RebootReplicationInstanceInput) SetForceFailover(v bool) *RebootReplicationInstanceInput { + s.ForceFailover = &v + return s +} + +// SetReplicationInstanceArn sets the ReplicationInstanceArn field's value. +func (s *RebootReplicationInstanceInput) SetReplicationInstanceArn(v string) *RebootReplicationInstanceInput { + s.ReplicationInstanceArn = &v + return s +} + +type RebootReplicationInstanceOutput struct { + _ struct{} `type:"structure"` + + // The replication instance that is being rebooted. + ReplicationInstance *ReplicationInstance `type:"structure"` +} + +// String returns the string representation +func (s RebootReplicationInstanceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RebootReplicationInstanceOutput) GoString() string { + return s.String() +} + +// SetReplicationInstance sets the ReplicationInstance field's value. +func (s *RebootReplicationInstanceOutput) SetReplicationInstance(v *ReplicationInstance) *RebootReplicationInstanceOutput { + s.ReplicationInstance = v + return s +} + type RefreshSchemasInput struct { _ struct{} `type:"structure"` @@ -9122,7 +9444,6 @@ func (s *RefreshSchemasInput) SetReplicationInstanceArn(v string) *RefreshSchema return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/RefreshSchemasResponse type RefreshSchemasOutput struct { _ struct{} `type:"structure"` @@ -9146,7 +9467,6 @@ func (s *RefreshSchemasOutput) SetRefreshSchemasStatus(v *RefreshSchemasStatus) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/RefreshSchemasStatus type RefreshSchemasStatus struct { _ struct{} `type:"structure"` @@ -9206,7 +9526,6 @@ func (s *RefreshSchemasStatus) SetStatus(v string) *RefreshSchemasStatus { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ReloadTablesMessage type ReloadTablesInput struct { _ struct{} `type:"structure"` @@ -9259,7 +9578,6 @@ func (s *ReloadTablesInput) SetTablesToReload(v []*TableToReload) *ReloadTablesI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ReloadTablesResponse type ReloadTablesOutput struct { _ struct{} `type:"structure"` @@ -9283,7 +9601,6 @@ func (s *ReloadTablesOutput) SetReplicationTaskArn(v string) *ReloadTablesOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/RemoveTagsFromResourceMessage type RemoveTagsFromResourceInput struct { _ struct{} `type:"structure"` @@ -9337,7 +9654,6 @@ func (s *RemoveTagsFromResourceInput) SetTagKeys(v []*string) *RemoveTagsFromRes return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/RemoveTagsFromResourceResponse type RemoveTagsFromResourceOutput struct { _ struct{} `type:"structure"` } @@ -9352,7 +9668,6 @@ func (s RemoveTagsFromResourceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ReplicationInstance type ReplicationInstance struct { _ struct{} `type:"structure"` @@ -9579,7 +9894,48 @@ func (s *ReplicationInstance) SetVpcSecurityGroups(v []*VpcSecurityGroupMembersh return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ReplicationPendingModifiedValues +// Contains metadata for a replication instance task log. +type ReplicationInstanceTaskLog struct { + _ struct{} `type:"structure"` + + // The size, in bytes, of the replication task log. + ReplicationInstanceTaskLogSize *int64 `type:"long"` + + // The Amazon Resource Name (ARN) of the replication task. + ReplicationTaskArn *string `type:"string"` + + // The name of the replication task. + ReplicationTaskName *string `type:"string"` +} + +// String returns the string representation +func (s ReplicationInstanceTaskLog) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ReplicationInstanceTaskLog) GoString() string { + return s.String() +} + +// SetReplicationInstanceTaskLogSize sets the ReplicationInstanceTaskLogSize field's value. +func (s *ReplicationInstanceTaskLog) SetReplicationInstanceTaskLogSize(v int64) *ReplicationInstanceTaskLog { + s.ReplicationInstanceTaskLogSize = &v + return s +} + +// SetReplicationTaskArn sets the ReplicationTaskArn field's value. +func (s *ReplicationInstanceTaskLog) SetReplicationTaskArn(v string) *ReplicationInstanceTaskLog { + s.ReplicationTaskArn = &v + return s +} + +// SetReplicationTaskName sets the ReplicationTaskName field's value. +func (s *ReplicationInstanceTaskLog) SetReplicationTaskName(v string) *ReplicationInstanceTaskLog { + s.ReplicationTaskName = &v + return s +} + type ReplicationPendingModifiedValues struct { _ struct{} `type:"structure"` @@ -9635,7 +9991,6 @@ func (s *ReplicationPendingModifiedValues) SetReplicationInstanceClass(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ReplicationSubnetGroup type ReplicationSubnetGroup struct { _ struct{} `type:"structure"` @@ -9695,7 +10050,6 @@ func (s *ReplicationSubnetGroup) SetVpcId(v string) *ReplicationSubnetGroup { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ReplicationTask type ReplicationTask struct { _ struct{} `type:"structure"` @@ -9846,7 +10200,6 @@ func (s *ReplicationTask) SetTargetEndpointArn(v string) *ReplicationTask { } // The task assessment report in JSON format. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ReplicationTaskAssessmentResult type ReplicationTaskAssessmentResult struct { _ struct{} `type:"structure"` @@ -9925,7 +10278,6 @@ func (s *ReplicationTaskAssessmentResult) SetS3ObjectUrl(v string) *ReplicationT return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/ReplicationTaskStats type ReplicationTaskStats struct { _ struct{} `type:"structure"` @@ -9994,7 +10346,6 @@ func (s *ReplicationTaskStats) SetTablesQueued(v int64) *ReplicationTaskStats { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/S3Settings type S3Settings struct { _ struct{} `type:"structure"` @@ -10077,7 +10428,6 @@ func (s *S3Settings) SetServiceAccessRoleArn(v string) *S3Settings { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/StartReplicationTaskAssessmentMessage type StartReplicationTaskAssessmentInput struct { _ struct{} `type:"structure"` @@ -10116,7 +10466,6 @@ func (s *StartReplicationTaskAssessmentInput) SetReplicationTaskArn(v string) *S return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/StartReplicationTaskAssessmentResponse type StartReplicationTaskAssessmentOutput struct { _ struct{} `type:"structure"` @@ -10140,7 +10489,6 @@ func (s *StartReplicationTaskAssessmentOutput) SetReplicationTask(v *Replication return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/StartReplicationTaskMessage type StartReplicationTaskInput struct { _ struct{} `type:"structure"` @@ -10202,7 +10550,6 @@ func (s *StartReplicationTaskInput) SetStartReplicationTaskType(v string) *Start return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/StartReplicationTaskResponse type StartReplicationTaskOutput struct { _ struct{} `type:"structure"` @@ -10226,7 +10573,6 @@ func (s *StartReplicationTaskOutput) SetReplicationTask(v *ReplicationTask) *Sta return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/StopReplicationTaskMessage type StopReplicationTaskInput struct { _ struct{} `type:"structure"` @@ -10265,7 +10611,6 @@ func (s *StopReplicationTaskInput) SetReplicationTaskArn(v string) *StopReplicat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/StopReplicationTaskResponse type StopReplicationTaskOutput struct { _ struct{} `type:"structure"` @@ -10289,7 +10634,6 @@ func (s *StopReplicationTaskOutput) SetReplicationTask(v *ReplicationTask) *Stop return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/Subnet type Subnet struct { _ struct{} `type:"structure"` @@ -10331,7 +10675,6 @@ func (s *Subnet) SetSubnetStatus(v string) *Subnet { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/SupportedEndpointType type SupportedEndpointType struct { _ struct{} `type:"structure"` @@ -10339,8 +10682,8 @@ type SupportedEndpointType struct { EndpointType *string `type:"string" enum:"ReplicationEndpointTypeValue"` // The database engine name. Valid values, depending on the EndPointType, include - // MYSQL, ORACLE, POSTGRES, MARIADB, AURORA, REDSHIFT, S3, SYBASE, DYNAMODB, - // MONGODB, and SQLSERVER. + // mysql, oracle, postgres, mariadb, aurora, redshift, S3, sybase, dynamodb, + // mongodb, and sqlserver. EngineName *string `type:"string"` // Indicates if Change Data Capture (CDC) is supported. @@ -10375,7 +10718,6 @@ func (s *SupportedEndpointType) SetSupportsCDC(v bool) *SupportedEndpointType { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/TableStatistics type TableStatistics struct { _ struct{} `type:"structure"` @@ -10555,7 +10897,6 @@ func (s *TableStatistics) SetValidationSuspendedRecords(v int64) *TableStatistic return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/TableToReload type TableToReload struct { _ struct{} `type:"structure"` @@ -10588,7 +10929,6 @@ func (s *TableToReload) SetTableName(v string) *TableToReload { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/Tag type Tag struct { _ struct{} `type:"structure"` @@ -10627,7 +10967,6 @@ func (s *Tag) SetValue(v string) *Tag { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/TestConnectionMessage type TestConnectionInput struct { _ struct{} `type:"structure"` @@ -10680,7 +11019,6 @@ func (s *TestConnectionInput) SetReplicationInstanceArn(v string) *TestConnectio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/TestConnectionResponse type TestConnectionOutput struct { _ struct{} `type:"structure"` @@ -10704,7 +11042,6 @@ func (s *TestConnectionOutput) SetConnection(v *Connection) *TestConnectionOutpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dms-2016-01-01/VpcSecurityGroupMembership type VpcSecurityGroupMembership struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/devicefarm/api.go b/vendor/github.com/aws/aws-sdk-go/service/devicefarm/api.go index c8cb56ee4..31a9a3328 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/devicefarm/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/devicefarm/api.go @@ -5177,7 +5177,6 @@ func (c *DeviceFarm) UpdateProjectWithContext(ctx aws.Context, input *UpdateProj } // A container for account-level settings within AWS Device Farm. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/AccountSettings type AccountSettings struct { _ struct{} `type:"structure"` @@ -5260,7 +5259,6 @@ func (s *AccountSettings) SetUnmeteredRemoteAccessDevices(v map[string]*int64) * } // Represents the output of a test. Examples of artifacts include logs and screenshots. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Artifact type Artifact struct { _ struct{} `type:"structure"` @@ -5373,7 +5371,6 @@ func (s *Artifact) SetUrl(v string) *Artifact { // Represents the amount of CPU that an app is using on a physical device. // // Note that this does not represent system-wide CPU usage. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CPU type CPU struct { _ struct{} `type:"structure"` @@ -5417,7 +5414,6 @@ func (s *CPU) SetFrequency(v string) *CPU { } // Represents entity counters. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Counters type Counters struct { _ struct{} `type:"structure"` @@ -5496,7 +5492,6 @@ func (s *Counters) SetWarned(v int64) *Counters { } // Represents a request to the create device pool operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateDevicePoolRequest type CreateDevicePoolInput struct { _ struct{} `type:"structure"` @@ -5576,7 +5571,6 @@ func (s *CreateDevicePoolInput) SetRules(v []*Rule) *CreateDevicePoolInput { } // Represents the result of a create device pool request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateDevicePoolResult type CreateDevicePoolOutput struct { _ struct{} `type:"structure"` @@ -5600,7 +5594,6 @@ func (s *CreateDevicePoolOutput) SetDevicePool(v *DevicePool) *CreateDevicePoolO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateNetworkProfileRequest type CreateNetworkProfileInput struct { _ struct{} `type:"structure"` @@ -5751,7 +5744,6 @@ func (s *CreateNetworkProfileInput) SetUplinkLossPercent(v int64) *CreateNetwork return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateNetworkProfileResult type CreateNetworkProfileOutput struct { _ struct{} `type:"structure"` @@ -5776,7 +5768,6 @@ func (s *CreateNetworkProfileOutput) SetNetworkProfile(v *NetworkProfile) *Creat } // Represents a request to the create project operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateProjectRequest type CreateProjectInput struct { _ struct{} `type:"structure"` @@ -5827,7 +5818,6 @@ func (s *CreateProjectInput) SetName(v string) *CreateProjectInput { } // Represents the result of a create project request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateProjectResult type CreateProjectOutput struct { _ struct{} `type:"structure"` @@ -5853,7 +5843,6 @@ func (s *CreateProjectOutput) SetProject(v *Project) *CreateProjectOutput { // Creates the configuration settings for a remote access session, including // the device model and type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateRemoteAccessSessionConfiguration type CreateRemoteAccessSessionConfiguration struct { _ struct{} `type:"structure"` @@ -5878,7 +5867,6 @@ func (s *CreateRemoteAccessSessionConfiguration) SetBillingMethod(v string) *Cre } // Creates and submits a request to start a remote access session. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateRemoteAccessSessionRequest type CreateRemoteAccessSessionInput struct { _ struct{} `type:"structure"` @@ -6033,7 +6021,6 @@ func (s *CreateRemoteAccessSessionInput) SetSshPublicKey(v string) *CreateRemote } // Represents the server response from a request to create a remote access session. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateRemoteAccessSessionResult type CreateRemoteAccessSessionOutput struct { _ struct{} `type:"structure"` @@ -6059,7 +6046,6 @@ func (s *CreateRemoteAccessSessionOutput) SetRemoteAccessSession(v *RemoteAccess } // Represents a request to the create upload operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateUploadRequest type CreateUploadInput struct { _ struct{} `type:"structure"` @@ -6182,7 +6168,6 @@ func (s *CreateUploadInput) SetType(v string) *CreateUploadInput { } // Represents the result of a create upload request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CreateUploadResult type CreateUploadOutput struct { _ struct{} `type:"structure"` @@ -6212,7 +6197,6 @@ func (s *CreateUploadOutput) SetUpload(v *Upload) *CreateUploadOutput { // Specify deviceHostPaths and optionally specify either iosPaths or androidPaths. // // For web app tests, you can specify both iosPaths and androidPaths. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/CustomerArtifactPaths type CustomerArtifactPaths struct { _ struct{} `type:"structure"` @@ -6258,7 +6242,6 @@ func (s *CustomerArtifactPaths) SetIosPaths(v []*string) *CustomerArtifactPaths } // Represents a request to the delete device pool operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteDevicePoolRequest type DeleteDevicePoolInput struct { _ struct{} `type:"structure"` @@ -6302,7 +6285,6 @@ func (s *DeleteDevicePoolInput) SetArn(v string) *DeleteDevicePoolInput { } // Represents the result of a delete device pool request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteDevicePoolResult type DeleteDevicePoolOutput struct { _ struct{} `type:"structure"` } @@ -6317,7 +6299,6 @@ func (s DeleteDevicePoolOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteNetworkProfileRequest type DeleteNetworkProfileInput struct { _ struct{} `type:"structure"` @@ -6359,7 +6340,6 @@ func (s *DeleteNetworkProfileInput) SetArn(v string) *DeleteNetworkProfileInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteNetworkProfileResult type DeleteNetworkProfileOutput struct { _ struct{} `type:"structure"` } @@ -6375,7 +6355,6 @@ func (s DeleteNetworkProfileOutput) GoString() string { } // Represents a request to the delete project operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteProjectRequest type DeleteProjectInput struct { _ struct{} `type:"structure"` @@ -6419,7 +6398,6 @@ func (s *DeleteProjectInput) SetArn(v string) *DeleteProjectInput { } // Represents the result of a delete project request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteProjectResult type DeleteProjectOutput struct { _ struct{} `type:"structure"` } @@ -6435,7 +6413,6 @@ func (s DeleteProjectOutput) GoString() string { } // Represents the request to delete the specified remote access session. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteRemoteAccessSessionRequest type DeleteRemoteAccessSessionInput struct { _ struct{} `type:"structure"` @@ -6480,7 +6457,6 @@ func (s *DeleteRemoteAccessSessionInput) SetArn(v string) *DeleteRemoteAccessSes // The response from the server when a request is made to delete the remote // access session. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteRemoteAccessSessionResult type DeleteRemoteAccessSessionOutput struct { _ struct{} `type:"structure"` } @@ -6496,7 +6472,6 @@ func (s DeleteRemoteAccessSessionOutput) GoString() string { } // Represents a request to the delete run operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteRunRequest type DeleteRunInput struct { _ struct{} `type:"structure"` @@ -6539,7 +6514,6 @@ func (s *DeleteRunInput) SetArn(v string) *DeleteRunInput { } // Represents the result of a delete run request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteRunResult type DeleteRunOutput struct { _ struct{} `type:"structure"` } @@ -6555,7 +6529,6 @@ func (s DeleteRunOutput) GoString() string { } // Represents a request to the delete upload operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteUploadRequest type DeleteUploadInput struct { _ struct{} `type:"structure"` @@ -6599,7 +6572,6 @@ func (s *DeleteUploadInput) SetArn(v string) *DeleteUploadInput { } // Represents the result of a delete upload request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeleteUploadResult type DeleteUploadOutput struct { _ struct{} `type:"structure"` } @@ -6615,7 +6587,6 @@ func (s DeleteUploadOutput) GoString() string { } // Represents a device type that an app is tested against. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Device type Device struct { _ struct{} `type:"structure"` @@ -6816,7 +6787,6 @@ func (s *Device) SetResolution(v *Resolution) *Device { // Represents the total (metered or unmetered) minutes used by the resource // to run tests. Contains the sum of minutes consumed by all children. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DeviceMinutes type DeviceMinutes struct { _ struct{} `type:"structure"` @@ -6862,7 +6832,6 @@ func (s *DeviceMinutes) SetUnmetered(v float64) *DeviceMinutes { } // Represents a collection of device types. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DevicePool type DevicePool struct { _ struct{} `type:"structure"` @@ -6930,7 +6899,6 @@ func (s *DevicePool) SetType(v string) *DevicePool { } // Represents a device pool compatibility result. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/DevicePoolCompatibilityResult type DevicePoolCompatibilityResult struct { _ struct{} `type:"structure"` @@ -6974,7 +6942,6 @@ func (s *DevicePoolCompatibilityResult) SetIncompatibilityMessages(v []*Incompat // Represents configuration information about a test run, such as the execution // timeout (in minutes). -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ExecutionConfiguration type ExecutionConfiguration struct { _ struct{} `type:"structure"` @@ -7019,7 +6986,6 @@ func (s *ExecutionConfiguration) SetJobTimeoutMinutes(v int64) *ExecutionConfigu } // Represents the request sent to retrieve the account settings. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetAccountSettingsRequest type GetAccountSettingsInput struct { _ struct{} `type:"structure"` } @@ -7036,7 +7002,6 @@ func (s GetAccountSettingsInput) GoString() string { // Represents the account settings return values from the GetAccountSettings // request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetAccountSettingsResult type GetAccountSettingsOutput struct { _ struct{} `type:"structure"` @@ -7061,7 +7026,6 @@ func (s *GetAccountSettingsOutput) SetAccountSettings(v *AccountSettings) *GetAc } // Represents a request to the get device request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDeviceRequest type GetDeviceInput struct { _ struct{} `type:"structure"` @@ -7104,7 +7068,6 @@ func (s *GetDeviceInput) SetArn(v string) *GetDeviceInput { } // Represents the result of a get device request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDeviceResult type GetDeviceOutput struct { _ struct{} `type:"structure"` @@ -7129,7 +7092,6 @@ func (s *GetDeviceOutput) SetDevice(v *Device) *GetDeviceOutput { } // Represents a request to the get device pool compatibility operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDevicePoolCompatibilityRequest type GetDevicePoolCompatibilityInput struct { _ struct{} `type:"structure"` @@ -7239,7 +7201,6 @@ func (s *GetDevicePoolCompatibilityInput) SetTestType(v string) *GetDevicePoolCo } // Represents the result of describe device pool compatibility request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDevicePoolCompatibilityResult type GetDevicePoolCompatibilityOutput struct { _ struct{} `type:"structure"` @@ -7273,7 +7234,6 @@ func (s *GetDevicePoolCompatibilityOutput) SetIncompatibleDevices(v []*DevicePoo } // Represents a request to the get device pool operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDevicePoolRequest type GetDevicePoolInput struct { _ struct{} `type:"structure"` @@ -7316,7 +7276,6 @@ func (s *GetDevicePoolInput) SetArn(v string) *GetDevicePoolInput { } // Represents the result of a get device pool request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetDevicePoolResult type GetDevicePoolOutput struct { _ struct{} `type:"structure"` @@ -7341,7 +7300,6 @@ func (s *GetDevicePoolOutput) SetDevicePool(v *DevicePool) *GetDevicePoolOutput } // Represents a request to the get job operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetJobRequest type GetJobInput struct { _ struct{} `type:"structure"` @@ -7384,7 +7342,6 @@ func (s *GetJobInput) SetArn(v string) *GetJobInput { } // Represents the result of a get job request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetJobResult type GetJobOutput struct { _ struct{} `type:"structure"` @@ -7408,7 +7365,6 @@ func (s *GetJobOutput) SetJob(v *Job) *GetJobOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetNetworkProfileRequest type GetNetworkProfileInput struct { _ struct{} `type:"structure"` @@ -7451,7 +7407,6 @@ func (s *GetNetworkProfileInput) SetArn(v string) *GetNetworkProfileInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetNetworkProfileResult type GetNetworkProfileOutput struct { _ struct{} `type:"structure"` @@ -7477,7 +7432,6 @@ func (s *GetNetworkProfileOutput) SetNetworkProfile(v *NetworkProfile) *GetNetwo // Represents the request to retrieve the offering status for the specified // customer or account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetOfferingStatusRequest type GetOfferingStatusInput struct { _ struct{} `type:"structure"` @@ -7516,7 +7470,6 @@ func (s *GetOfferingStatusInput) SetNextToken(v string) *GetOfferingStatusInput } // Returns the status result for a device offering. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetOfferingStatusResult type GetOfferingStatusOutput struct { _ struct{} `type:"structure"` @@ -7560,7 +7513,6 @@ func (s *GetOfferingStatusOutput) SetNextToken(v string) *GetOfferingStatusOutpu } // Represents a request to the get project operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetProjectRequest type GetProjectInput struct { _ struct{} `type:"structure"` @@ -7603,7 +7555,6 @@ func (s *GetProjectInput) SetArn(v string) *GetProjectInput { } // Represents the result of a get project request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetProjectResult type GetProjectOutput struct { _ struct{} `type:"structure"` @@ -7629,7 +7580,6 @@ func (s *GetProjectOutput) SetProject(v *Project) *GetProjectOutput { // Represents the request to get information about the specified remote access // session. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetRemoteAccessSessionRequest type GetRemoteAccessSessionInput struct { _ struct{} `type:"structure"` @@ -7674,7 +7624,6 @@ func (s *GetRemoteAccessSessionInput) SetArn(v string) *GetRemoteAccessSessionIn // Represents the response from the server that lists detailed information about // the remote access session. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetRemoteAccessSessionResult type GetRemoteAccessSessionOutput struct { _ struct{} `type:"structure"` @@ -7699,7 +7648,6 @@ func (s *GetRemoteAccessSessionOutput) SetRemoteAccessSession(v *RemoteAccessSes } // Represents a request to the get run operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetRunRequest type GetRunInput struct { _ struct{} `type:"structure"` @@ -7742,7 +7690,6 @@ func (s *GetRunInput) SetArn(v string) *GetRunInput { } // Represents the result of a get run request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetRunResult type GetRunOutput struct { _ struct{} `type:"structure"` @@ -7767,7 +7714,6 @@ func (s *GetRunOutput) SetRun(v *Run) *GetRunOutput { } // Represents a request to the get suite operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetSuiteRequest type GetSuiteInput struct { _ struct{} `type:"structure"` @@ -7810,7 +7756,6 @@ func (s *GetSuiteInput) SetArn(v string) *GetSuiteInput { } // Represents the result of a get suite request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetSuiteResult type GetSuiteOutput struct { _ struct{} `type:"structure"` @@ -7835,7 +7780,6 @@ func (s *GetSuiteOutput) SetSuite(v *Suite) *GetSuiteOutput { } // Represents a request to the get test operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetTestRequest type GetTestInput struct { _ struct{} `type:"structure"` @@ -7878,7 +7822,6 @@ func (s *GetTestInput) SetArn(v string) *GetTestInput { } // Represents the result of a get test request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetTestResult type GetTestOutput struct { _ struct{} `type:"structure"` @@ -7903,7 +7846,6 @@ func (s *GetTestOutput) SetTest(v *Test) *GetTestOutput { } // Represents a request to the get upload operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetUploadRequest type GetUploadInput struct { _ struct{} `type:"structure"` @@ -7946,7 +7888,6 @@ func (s *GetUploadInput) SetArn(v string) *GetUploadInput { } // Represents the result of a get upload request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/GetUploadResult type GetUploadOutput struct { _ struct{} `type:"structure"` @@ -7971,7 +7912,6 @@ func (s *GetUploadOutput) SetUpload(v *Upload) *GetUploadOutput { } // Represents information about incompatibility. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/IncompatibilityMessage type IncompatibilityMessage struct { _ struct{} `type:"structure"` @@ -8020,7 +7960,6 @@ func (s *IncompatibilityMessage) SetType(v string) *IncompatibilityMessage { // Represents the request to install an Android application (in .apk format) // or an iOS application (in .ipa format) as part of a remote access session. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/InstallToRemoteAccessSessionRequest type InstallToRemoteAccessSessionInput struct { _ struct{} `type:"structure"` @@ -8083,7 +8022,6 @@ func (s *InstallToRemoteAccessSessionInput) SetRemoteAccessSessionArn(v string) // Represents the response from the server after AWS Device Farm makes a request // to install to a remote access session. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/InstallToRemoteAccessSessionResult type InstallToRemoteAccessSessionOutput struct { _ struct{} `type:"structure"` @@ -8108,7 +8046,6 @@ func (s *InstallToRemoteAccessSessionOutput) SetAppUpload(v *Upload) *InstallToR } // Represents a device. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Job type Job struct { _ struct{} `type:"structure"` @@ -8300,7 +8237,6 @@ func (s *Job) SetType(v string) *Job { } // Represents a request to the list artifacts operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListArtifactsRequest type ListArtifactsInput struct { _ struct{} `type:"structure"` @@ -8378,7 +8314,6 @@ func (s *ListArtifactsInput) SetType(v string) *ListArtifactsInput { } // Represents the result of a list artifacts operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListArtifactsResult type ListArtifactsOutput struct { _ struct{} `type:"structure"` @@ -8414,7 +8349,6 @@ func (s *ListArtifactsOutput) SetNextToken(v string) *ListArtifactsOutput { } // Represents the result of a list device pools request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListDevicePoolsRequest type ListDevicePoolsInput struct { _ struct{} `type:"structure"` @@ -8486,7 +8420,6 @@ func (s *ListDevicePoolsInput) SetType(v string) *ListDevicePoolsInput { } // Represents the result of a list device pools request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListDevicePoolsResult type ListDevicePoolsOutput struct { _ struct{} `type:"structure"` @@ -8522,7 +8455,6 @@ func (s *ListDevicePoolsOutput) SetNextToken(v string) *ListDevicePoolsOutput { } // Represents the result of a list devices request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListDevicesRequest type ListDevicesInput struct { _ struct{} `type:"structure"` @@ -8573,7 +8505,6 @@ func (s *ListDevicesInput) SetNextToken(v string) *ListDevicesInput { } // Represents the result of a list devices operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListDevicesResult type ListDevicesOutput struct { _ struct{} `type:"structure"` @@ -8609,7 +8540,6 @@ func (s *ListDevicesOutput) SetNextToken(v string) *ListDevicesOutput { } // Represents a request to the list jobs operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListJobsRequest type ListJobsInput struct { _ struct{} `type:"structure"` @@ -8665,7 +8595,6 @@ func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput { } // Represents the result of a list jobs request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListJobsResult type ListJobsOutput struct { _ struct{} `type:"structure"` @@ -8700,7 +8629,6 @@ func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListNetworkProfilesRequest type ListNetworkProfilesInput struct { _ struct{} `type:"structure"` @@ -8766,7 +8694,6 @@ func (s *ListNetworkProfilesInput) SetType(v string) *ListNetworkProfilesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListNetworkProfilesResult type ListNetworkProfilesOutput struct { _ struct{} `type:"structure"` @@ -8800,7 +8727,6 @@ func (s *ListNetworkProfilesOutput) SetNextToken(v string) *ListNetworkProfilesO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListOfferingPromotionsRequest type ListOfferingPromotionsInput struct { _ struct{} `type:"structure"` @@ -8838,7 +8764,6 @@ func (s *ListOfferingPromotionsInput) SetNextToken(v string) *ListOfferingPromot return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListOfferingPromotionsResult type ListOfferingPromotionsOutput struct { _ struct{} `type:"structure"` @@ -8873,7 +8798,6 @@ func (s *ListOfferingPromotionsOutput) SetOfferingPromotions(v []*OfferingPromot } // Represents the request to list the offering transaction history. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListOfferingTransactionsRequest type ListOfferingTransactionsInput struct { _ struct{} `type:"structure"` @@ -8912,7 +8836,6 @@ func (s *ListOfferingTransactionsInput) SetNextToken(v string) *ListOfferingTran } // Returns the transaction log of the specified offerings. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListOfferingTransactionsResult type ListOfferingTransactionsOutput struct { _ struct{} `type:"structure"` @@ -8948,7 +8871,6 @@ func (s *ListOfferingTransactionsOutput) SetOfferingTransactions(v []*OfferingTr } // Represents the request to list all offerings. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListOfferingsRequest type ListOfferingsInput struct { _ struct{} `type:"structure"` @@ -8987,7 +8909,6 @@ func (s *ListOfferingsInput) SetNextToken(v string) *ListOfferingsInput { } // Represents the return values of the list of offerings. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListOfferingsResult type ListOfferingsOutput struct { _ struct{} `type:"structure"` @@ -9022,7 +8943,6 @@ func (s *ListOfferingsOutput) SetOfferings(v []*Offering) *ListOfferingsOutput { } // Represents a request to the list projects operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListProjectsRequest type ListProjectsInput struct { _ struct{} `type:"structure"` @@ -9075,7 +8995,6 @@ func (s *ListProjectsInput) SetNextToken(v string) *ListProjectsInput { } // Represents the result of a list projects request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListProjectsResult type ListProjectsOutput struct { _ struct{} `type:"structure"` @@ -9111,7 +9030,6 @@ func (s *ListProjectsOutput) SetProjects(v []*Project) *ListProjectsOutput { } // Represents the request to return information about the remote access session. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListRemoteAccessSessionsRequest type ListRemoteAccessSessionsInput struct { _ struct{} `type:"structure"` @@ -9169,7 +9087,6 @@ func (s *ListRemoteAccessSessionsInput) SetNextToken(v string) *ListRemoteAccess // Represents the response from the server after AWS Device Farm makes a request // to return information about the remote access session. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListRemoteAccessSessionsResult type ListRemoteAccessSessionsOutput struct { _ struct{} `type:"structure"` @@ -9205,7 +9122,6 @@ func (s *ListRemoteAccessSessionsOutput) SetRemoteAccessSessions(v []*RemoteAcce } // Represents a request to the list runs operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListRunsRequest type ListRunsInput struct { _ struct{} `type:"structure"` @@ -9262,7 +9178,6 @@ func (s *ListRunsInput) SetNextToken(v string) *ListRunsInput { } // Represents the result of a list runs request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListRunsResult type ListRunsOutput struct { _ struct{} `type:"structure"` @@ -9298,7 +9213,6 @@ func (s *ListRunsOutput) SetRuns(v []*Run) *ListRunsOutput { } // Represents a request to the list samples operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListSamplesRequest type ListSamplesInput struct { _ struct{} `type:"structure"` @@ -9355,7 +9269,6 @@ func (s *ListSamplesInput) SetNextToken(v string) *ListSamplesInput { } // Represents the result of a list samples request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListSamplesResult type ListSamplesOutput struct { _ struct{} `type:"structure"` @@ -9391,7 +9304,6 @@ func (s *ListSamplesOutput) SetSamples(v []*Sample) *ListSamplesOutput { } // Represents a request to the list suites operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListSuitesRequest type ListSuitesInput struct { _ struct{} `type:"structure"` @@ -9447,7 +9359,6 @@ func (s *ListSuitesInput) SetNextToken(v string) *ListSuitesInput { } // Represents the result of a list suites request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListSuitesResult type ListSuitesOutput struct { _ struct{} `type:"structure"` @@ -9483,7 +9394,6 @@ func (s *ListSuitesOutput) SetSuites(v []*Suite) *ListSuitesOutput { } // Represents a request to the list tests operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTestsRequest type ListTestsInput struct { _ struct{} `type:"structure"` @@ -9539,7 +9449,6 @@ func (s *ListTestsInput) SetNextToken(v string) *ListTestsInput { } // Represents the result of a list tests request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListTestsResult type ListTestsOutput struct { _ struct{} `type:"structure"` @@ -9575,7 +9484,6 @@ func (s *ListTestsOutput) SetTests(v []*Test) *ListTestsOutput { } // Represents a request to the list unique problems operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListUniqueProblemsRequest type ListUniqueProblemsInput struct { _ struct{} `type:"structure"` @@ -9631,7 +9539,6 @@ func (s *ListUniqueProblemsInput) SetNextToken(v string) *ListUniqueProblemsInpu } // Represents the result of a list unique problems request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListUniqueProblemsResult type ListUniqueProblemsOutput struct { _ struct{} `type:"structure"` @@ -9683,7 +9590,6 @@ func (s *ListUniqueProblemsOutput) SetUniqueProblems(v map[string][]*UniqueProbl } // Represents a request to the list uploads operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListUploadsRequest type ListUploadsInput struct { _ struct{} `type:"structure"` @@ -9740,7 +9646,6 @@ func (s *ListUploadsInput) SetNextToken(v string) *ListUploadsInput { } // Represents the result of a list uploads request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ListUploadsResult type ListUploadsOutput struct { _ struct{} `type:"structure"` @@ -9779,7 +9684,6 @@ func (s *ListUploadsOutput) SetUploads(v []*Upload) *ListUploadsOutput { // system degrees (for example 47.6204, -122.3491). // // Elevation is currently not supported. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Location type Location struct { _ struct{} `type:"structure"` @@ -9833,7 +9737,6 @@ func (s *Location) SetLongitude(v float64) *Location { } // A number representing the monetary amount for an offering or transaction. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/MonetaryAmount type MonetaryAmount struct { _ struct{} `type:"structure"` @@ -9867,7 +9770,6 @@ func (s *MonetaryAmount) SetCurrencyCode(v string) *MonetaryAmount { } // An array of settings that describes characteristics of a network profile. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/NetworkProfile type NetworkProfile struct { _ struct{} `type:"structure"` @@ -9995,7 +9897,6 @@ func (s *NetworkProfile) SetUplinkLossPercent(v int64) *NetworkProfile { } // Represents the metadata of a device offering. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Offering type Offering struct { _ struct{} `type:"structure"` @@ -10056,7 +9957,6 @@ func (s *Offering) SetType(v string) *Offering { } // Represents information about an offering promotion. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/OfferingPromotion type OfferingPromotion struct { _ struct{} `type:"structure"` @@ -10090,7 +9990,6 @@ func (s *OfferingPromotion) SetId(v string) *OfferingPromotion { } // The status of the offering. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/OfferingStatus type OfferingStatus struct { _ struct{} `type:"structure"` @@ -10142,7 +10041,6 @@ func (s *OfferingStatus) SetType(v string) *OfferingStatus { } // Represents the metadata of an offering transaction. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/OfferingTransaction type OfferingTransaction struct { _ struct{} `type:"structure"` @@ -10203,7 +10101,6 @@ func (s *OfferingTransaction) SetTransactionId(v string) *OfferingTransaction { } // Represents a specific warning or failure. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Problem type Problem struct { _ struct{} `type:"structure"` @@ -10298,7 +10195,6 @@ func (s *Problem) SetTest(v *ProblemDetail) *Problem { } // Information about a problem detail. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ProblemDetail type ProblemDetail struct { _ struct{} `type:"structure"` @@ -10333,7 +10229,6 @@ func (s *ProblemDetail) SetName(v string) *ProblemDetail { // Represents an operating-system neutral workspace for running and managing // tests. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Project type Project struct { _ struct{} `type:"structure"` @@ -10386,7 +10281,6 @@ func (s *Project) SetName(v string) *Project { } // Represents a request for a purchase offering. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/PurchaseOfferingRequest type PurchaseOfferingInput struct { _ struct{} `type:"structure"` @@ -10445,7 +10339,6 @@ func (s *PurchaseOfferingInput) SetQuantity(v int64) *PurchaseOfferingInput { } // The result of the purchase offering (e.g., success or failure). -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/PurchaseOfferingResult type PurchaseOfferingOutput struct { _ struct{} `type:"structure"` @@ -10471,7 +10364,6 @@ func (s *PurchaseOfferingOutput) SetOfferingTransaction(v *OfferingTransaction) // Represents the set of radios and their states on a device. Examples of radios // include Wi-Fi, GPS, Bluetooth, and NFC. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Radios type Radios struct { _ struct{} `type:"structure"` @@ -10523,7 +10415,6 @@ func (s *Radios) SetWifi(v bool) *Radios { } // Specifies whether charges for devices will be recurring. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/RecurringCharge type RecurringCharge struct { _ struct{} `type:"structure"` @@ -10557,7 +10448,6 @@ func (s *RecurringCharge) SetFrequency(v string) *RecurringCharge { } // Represents information about the remote access session. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/RemoteAccessSession type RemoteAccessSession struct { _ struct{} `type:"structure"` @@ -10796,7 +10686,6 @@ func (s *RemoteAccessSession) SetStopped(v time.Time) *RemoteAccessSession { } // A request representing an offering renewal. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/RenewOfferingRequest type RenewOfferingInput struct { _ struct{} `type:"structure"` @@ -10843,7 +10732,6 @@ func (s *RenewOfferingInput) SetQuantity(v int64) *RenewOfferingInput { } // The result of a renewal offering. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/RenewOfferingResult type RenewOfferingOutput struct { _ struct{} `type:"structure"` @@ -10869,7 +10757,6 @@ func (s *RenewOfferingOutput) SetOfferingTransaction(v *OfferingTransaction) *Re // Represents the screen resolution of a device in height and width, expressed // in pixels. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Resolution type Resolution struct { _ struct{} `type:"structure"` @@ -10903,7 +10790,6 @@ func (s *Resolution) SetWidth(v int64) *Resolution { } // Represents a condition for a device pool. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Rule type Rule struct { _ struct{} `type:"structure"` @@ -10973,7 +10859,6 @@ func (s *Rule) SetValue(v string) *Rule { // Represents a test run on a set of devices with a given app package, test // parameters, etc. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Run type Run struct { _ struct{} `type:"structure"` @@ -11322,7 +11207,6 @@ func (s *Run) SetWebUrl(v string) *Run { } // Represents a sample of performance data. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Sample type Sample struct { _ struct{} `type:"structure"` @@ -11408,7 +11292,6 @@ func (s *Sample) SetUrl(v string) *Sample { // Represents the settings for a run. Includes things like location, radio states, // auxiliary apps, and network profiles. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ScheduleRunConfiguration type ScheduleRunConfiguration struct { _ struct{} `type:"structure"` @@ -11520,7 +11403,6 @@ func (s *ScheduleRunConfiguration) SetRadios(v *Radios) *ScheduleRunConfiguratio } // Represents a request to the schedule run operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ScheduleRunRequest type ScheduleRunInput struct { _ struct{} `type:"structure"` @@ -11644,7 +11526,6 @@ func (s *ScheduleRunInput) SetTest(v *ScheduleRunTest) *ScheduleRunInput { } // Represents the result of a schedule run request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ScheduleRunResult type ScheduleRunOutput struct { _ struct{} `type:"structure"` @@ -11669,7 +11550,6 @@ func (s *ScheduleRunOutput) SetRun(v *Run) *ScheduleRunOutput { } // Represents additional test settings. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/ScheduleRunTest type ScheduleRunTest struct { _ struct{} `type:"structure"` @@ -11843,7 +11723,6 @@ func (s *ScheduleRunTest) SetType(v string) *ScheduleRunTest { } // Represents the request to stop the remote access session. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/StopRemoteAccessSessionRequest type StopRemoteAccessSessionInput struct { _ struct{} `type:"structure"` @@ -11887,7 +11766,6 @@ func (s *StopRemoteAccessSessionInput) SetArn(v string) *StopRemoteAccessSession // Represents the response from the server that describes the remote access // session when AWS Device Farm stops the session. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/StopRemoteAccessSessionResult type StopRemoteAccessSessionOutput struct { _ struct{} `type:"structure"` @@ -11913,7 +11791,6 @@ func (s *StopRemoteAccessSessionOutput) SetRemoteAccessSession(v *RemoteAccessSe } // Represents the request to stop a specific run. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/StopRunRequest type StopRunInput struct { _ struct{} `type:"structure"` @@ -11957,7 +11834,6 @@ func (s *StopRunInput) SetArn(v string) *StopRunInput { } // Represents the results of your stop run attempt. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/StopRunResult type StopRunOutput struct { _ struct{} `type:"structure"` @@ -11982,7 +11858,6 @@ func (s *StopRunOutput) SetRun(v *Run) *StopRunOutput { } // Represents a collection of one or more tests. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Suite type Suite struct { _ struct{} `type:"structure"` @@ -12165,7 +12040,6 @@ func (s *Suite) SetType(v string) *Suite { } // Represents a condition that is evaluated. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Test type Test struct { _ struct{} `type:"structure"` @@ -12348,7 +12222,6 @@ func (s *Test) SetType(v string) *Test { } // Represents information about free trial device minutes for an AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/TrialMinutes type TrialMinutes struct { _ struct{} `type:"structure"` @@ -12382,7 +12255,6 @@ func (s *TrialMinutes) SetTotal(v float64) *TrialMinutes { } // A collection of one or more problems, grouped by their result. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UniqueProblem type UniqueProblem struct { _ struct{} `type:"structure"` @@ -12416,7 +12288,6 @@ func (s *UniqueProblem) SetProblems(v []*Problem) *UniqueProblem { } // Represents a request to the update device pool operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateDevicePoolRequest type UpdateDevicePoolInput struct { _ struct{} `type:"structure"` @@ -12489,7 +12360,6 @@ func (s *UpdateDevicePoolInput) SetRules(v []*Rule) *UpdateDevicePoolInput { } // Represents the result of an update device pool request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateDevicePoolResult type UpdateDevicePoolOutput struct { _ struct{} `type:"structure"` @@ -12513,7 +12383,6 @@ func (s *UpdateDevicePoolOutput) SetDevicePool(v *DevicePool) *UpdateDevicePoolO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateNetworkProfileRequest type UpdateNetworkProfileInput struct { _ struct{} `type:"structure"` @@ -12660,7 +12529,6 @@ func (s *UpdateNetworkProfileInput) SetUplinkLossPercent(v int64) *UpdateNetwork return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateNetworkProfileResult type UpdateNetworkProfileOutput struct { _ struct{} `type:"structure"` @@ -12685,7 +12553,6 @@ func (s *UpdateNetworkProfileOutput) SetNetworkProfile(v *NetworkProfile) *Updat } // Represents a request to the update project operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateProjectRequest type UpdateProjectInput struct { _ struct{} `type:"structure"` @@ -12747,7 +12614,6 @@ func (s *UpdateProjectInput) SetName(v string) *UpdateProjectInput { } // Represents the result of an update project request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/UpdateProjectResult type UpdateProjectOutput struct { _ struct{} `type:"structure"` @@ -12772,7 +12638,6 @@ func (s *UpdateProjectOutput) SetProject(v *Project) *UpdateProjectOutput { } // An app or a set of one or more tests to upload or that have been uploaded. -// See also, https://docs.aws.amazon.com/goto/WebAPI/devicefarm-2015-06-23/Upload type Upload struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/directconnect/api.go b/vendor/github.com/aws/aws-sdk-go/service/directconnect/api.go index a396656ed..a48438708 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/directconnect/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/directconnect/api.go @@ -4007,7 +4007,6 @@ func (c *DirectConnect) UpdateLagWithContext(ctx aws.Context, input *UpdateLagIn } // Container for the parameters to the AllocateConnectionOnInterconnect operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/AllocateConnectionOnInterconnectRequest type AllocateConnectionOnInterconnectInput struct { _ struct{} `type:"structure"` @@ -4125,7 +4124,6 @@ func (s *AllocateConnectionOnInterconnectInput) SetVlan(v int64) *AllocateConnec } // Container for the parameters to theHostedConnection operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/AllocateHostedConnectionRequest type AllocateHostedConnectionInput struct { _ struct{} `type:"structure"` @@ -4243,7 +4241,6 @@ func (s *AllocateHostedConnectionInput) SetVlan(v int64) *AllocateHostedConnecti } // Container for the parameters to the AllocatePrivateVirtualInterface operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/AllocatePrivateVirtualInterfaceRequest type AllocatePrivateVirtualInterfaceInput struct { _ struct{} `type:"structure"` @@ -4322,7 +4319,6 @@ func (s *AllocatePrivateVirtualInterfaceInput) SetOwnerAccount(v string) *Alloca } // Container for the parameters to the AllocatePublicVirtualInterface operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/AllocatePublicVirtualInterfaceRequest type AllocatePublicVirtualInterfaceInput struct { _ struct{} `type:"structure"` @@ -4401,7 +4397,6 @@ func (s *AllocatePublicVirtualInterfaceInput) SetOwnerAccount(v string) *Allocat } // Container for the parameters to the AssociateConnectionWithLag operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/AssociateConnectionWithLagRequest type AssociateConnectionWithLagInput struct { _ struct{} `type:"structure"` @@ -4463,7 +4458,6 @@ func (s *AssociateConnectionWithLagInput) SetLagId(v string) *AssociateConnectio } // Container for the parameters to the AssociateHostedConnection operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/AssociateHostedConnectionRequest type AssociateHostedConnectionInput struct { _ struct{} `type:"structure"` @@ -4525,7 +4519,6 @@ func (s *AssociateHostedConnectionInput) SetParentConnectionId(v string) *Associ } // Container for the parameters to the AssociateVirtualInterface operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/AssociateVirtualInterfaceRequest type AssociateVirtualInterfaceInput struct { _ struct{} `type:"structure"` @@ -4587,7 +4580,6 @@ func (s *AssociateVirtualInterfaceInput) SetVirtualInterfaceId(v string) *Associ } // A structure containing information about a BGP peer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/BGPPeer type BGPPeer struct { _ struct{} `type:"structure"` @@ -4695,7 +4687,6 @@ func (s *BGPPeer) SetCustomerAddress(v string) *BGPPeer { } // Container for the parameters to the ConfirmConnection operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/ConfirmConnectionRequest type ConfirmConnectionInput struct { _ struct{} `type:"structure"` @@ -4740,7 +4731,6 @@ func (s *ConfirmConnectionInput) SetConnectionId(v string) *ConfirmConnectionInp } // The response received when ConfirmConnection is called. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/ConfirmConnectionResponse type ConfirmConnectionOutput struct { _ struct{} `type:"structure"` @@ -4786,7 +4776,6 @@ func (s *ConfirmConnectionOutput) SetConnectionState(v string) *ConfirmConnectio } // Container for the parameters to the ConfirmPrivateVirtualInterface operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/ConfirmPrivateVirtualInterfaceRequest type ConfirmPrivateVirtualInterfaceInput struct { _ struct{} `type:"structure"` @@ -4859,7 +4848,6 @@ func (s *ConfirmPrivateVirtualInterfaceInput) SetVirtualInterfaceId(v string) *C } // The response received when ConfirmPrivateVirtualInterface is called. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/ConfirmPrivateVirtualInterfaceResponse type ConfirmPrivateVirtualInterfaceOutput struct { _ struct{} `type:"structure"` @@ -4911,7 +4899,6 @@ func (s *ConfirmPrivateVirtualInterfaceOutput) SetVirtualInterfaceState(v string } // Container for the parameters to the ConfirmPublicVirtualInterface operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/ConfirmPublicVirtualInterfaceRequest type ConfirmPublicVirtualInterfaceInput struct { _ struct{} `type:"structure"` @@ -4955,7 +4942,6 @@ func (s *ConfirmPublicVirtualInterfaceInput) SetVirtualInterfaceId(v string) *Co } // The response received when ConfirmPublicVirtualInterface is called. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/ConfirmPublicVirtualInterfaceResponse type ConfirmPublicVirtualInterfaceOutput struct { _ struct{} `type:"structure"` @@ -5008,7 +4994,6 @@ func (s *ConfirmPublicVirtualInterfaceOutput) SetVirtualInterfaceState(v string) // A connection represents the physical network connection between the AWS Direct // Connect location and the customer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/Connection type Connection struct { _ struct{} `type:"structure"` @@ -5178,7 +5163,6 @@ func (s *Connection) SetVlan(v int64) *Connection { } // A structure containing a list of connections. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/Connections type Connections struct { _ struct{} `type:"structure"` @@ -5203,7 +5187,6 @@ func (s *Connections) SetConnections(v []*Connection) *Connections { } // Container for the parameters to the CreateBGPPeer operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/CreateBGPPeerRequest type CreateBGPPeerInput struct { _ struct{} `type:"structure"` @@ -5243,7 +5226,6 @@ func (s *CreateBGPPeerInput) SetVirtualInterfaceId(v string) *CreateBGPPeerInput } // The response received when CreateBGPPeer is called. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/CreateBGPPeerResponse type CreateBGPPeerOutput struct { _ struct{} `type:"structure"` @@ -5269,7 +5251,6 @@ func (s *CreateBGPPeerOutput) SetVirtualInterface(v *VirtualInterface) *CreateBG } // Container for the parameters to the CreateConnection operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/CreateConnectionRequest type CreateConnectionInput struct { _ struct{} `type:"structure"` @@ -5361,7 +5342,6 @@ func (s *CreateConnectionInput) SetLocation(v string) *CreateConnectionInput { // Container for the parameters to the CreateDirectConnectGatewayAssociation // operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/CreateDirectConnectGatewayAssociationRequest type CreateDirectConnectGatewayAssociationInput struct { _ struct{} `type:"structure"` @@ -5424,7 +5404,6 @@ func (s *CreateDirectConnectGatewayAssociationInput) SetVirtualGatewayId(v strin // Container for the response from the CreateDirectConnectGatewayAssociation // API call -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/CreateDirectConnectGatewayAssociationResult type CreateDirectConnectGatewayAssociationOutput struct { _ struct{} `type:"structure"` @@ -5449,7 +5428,6 @@ func (s *CreateDirectConnectGatewayAssociationOutput) SetDirectConnectGatewayAss } // Container for the parameters to the CreateDirectConnectGateway operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/CreateDirectConnectGatewayRequest type CreateDirectConnectGatewayInput struct { _ struct{} `type:"structure"` @@ -5508,7 +5486,6 @@ func (s *CreateDirectConnectGatewayInput) SetDirectConnectGatewayName(v string) } // Container for the response from the CreateDirectConnectGateway API call -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/CreateDirectConnectGatewayResult type CreateDirectConnectGatewayOutput struct { _ struct{} `type:"structure"` @@ -5533,7 +5510,6 @@ func (s *CreateDirectConnectGatewayOutput) SetDirectConnectGateway(v *Gateway) * } // Container for the parameters to the CreateInterconnect operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/CreateInterconnectRequest type CreateInterconnectInput struct { _ struct{} `type:"structure"` @@ -5626,7 +5602,6 @@ func (s *CreateInterconnectInput) SetLocation(v string) *CreateInterconnectInput } // Container for the parameters to the CreateLag operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/CreateLagRequest type CreateLagInput struct { _ struct{} `type:"structure"` @@ -5734,7 +5709,6 @@ func (s *CreateLagInput) SetNumberOfConnections(v int64) *CreateLagInput { } // Container for the parameters to the CreatePrivateVirtualInterface operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/CreatePrivateVirtualInterfaceRequest type CreatePrivateVirtualInterfaceInput struct { _ struct{} `type:"structure"` @@ -5800,7 +5774,6 @@ func (s *CreatePrivateVirtualInterfaceInput) SetNewPrivateVirtualInterface(v *Ne } // Container for the parameters to the CreatePublicVirtualInterface operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/CreatePublicVirtualInterfaceRequest type CreatePublicVirtualInterfaceInput struct { _ struct{} `type:"structure"` @@ -5866,7 +5839,6 @@ func (s *CreatePublicVirtualInterfaceInput) SetNewPublicVirtualInterface(v *NewP } // Container for the parameters to the DeleteBGPPeer operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DeleteBGPPeerRequest type DeleteBGPPeerInput struct { _ struct{} `type:"structure"` @@ -5917,7 +5889,6 @@ func (s *DeleteBGPPeerInput) SetVirtualInterfaceId(v string) *DeleteBGPPeerInput } // The response received when DeleteBGPPeer is called. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DeleteBGPPeerResponse type DeleteBGPPeerOutput struct { _ struct{} `type:"structure"` @@ -5943,7 +5914,6 @@ func (s *DeleteBGPPeerOutput) SetVirtualInterface(v *VirtualInterface) *DeleteBG } // Container for the parameters to the DeleteConnection operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DeleteConnectionRequest type DeleteConnectionInput struct { _ struct{} `type:"structure"` @@ -5989,7 +5959,6 @@ func (s *DeleteConnectionInput) SetConnectionId(v string) *DeleteConnectionInput // Container for the parameters to the DeleteDirectConnectGatewayAssociation // operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DeleteDirectConnectGatewayAssociationRequest type DeleteDirectConnectGatewayAssociationInput struct { _ struct{} `type:"structure"` @@ -6052,7 +6021,6 @@ func (s *DeleteDirectConnectGatewayAssociationInput) SetVirtualGatewayId(v strin // Container for the response from the DeleteDirectConnectGatewayAssociation // API call -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DeleteDirectConnectGatewayAssociationResult type DeleteDirectConnectGatewayAssociationOutput struct { _ struct{} `type:"structure"` @@ -6077,7 +6045,6 @@ func (s *DeleteDirectConnectGatewayAssociationOutput) SetDirectConnectGatewayAss } // Container for the parameters to the DeleteDirectConnectGateway operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DeleteDirectConnectGatewayRequest type DeleteDirectConnectGatewayInput struct { _ struct{} `type:"structure"` @@ -6121,7 +6088,6 @@ func (s *DeleteDirectConnectGatewayInput) SetDirectConnectGatewayId(v string) *D } // Container for the response from the DeleteDirectConnectGateway API call -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DeleteDirectConnectGatewayResult type DeleteDirectConnectGatewayOutput struct { _ struct{} `type:"structure"` @@ -6146,7 +6112,6 @@ func (s *DeleteDirectConnectGatewayOutput) SetDirectConnectGateway(v *Gateway) * } // Container for the parameters to the DeleteInterconnect operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DeleteInterconnectRequest type DeleteInterconnectInput struct { _ struct{} `type:"structure"` @@ -6188,7 +6153,6 @@ func (s *DeleteInterconnectInput) SetInterconnectId(v string) *DeleteInterconnec } // The response received when DeleteInterconnect is called. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DeleteInterconnectResponse type DeleteInterconnectOutput struct { _ struct{} `type:"structure"` @@ -6228,7 +6192,6 @@ func (s *DeleteInterconnectOutput) SetInterconnectState(v string) *DeleteInterco } // Container for the parameters to the DeleteLag operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DeleteLagRequest type DeleteLagInput struct { _ struct{} `type:"structure"` @@ -6272,7 +6235,6 @@ func (s *DeleteLagInput) SetLagId(v string) *DeleteLagInput { } // Container for the parameters to the DeleteVirtualInterface operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DeleteVirtualInterfaceRequest type DeleteVirtualInterfaceInput struct { _ struct{} `type:"structure"` @@ -6316,7 +6278,6 @@ func (s *DeleteVirtualInterfaceInput) SetVirtualInterfaceId(v string) *DeleteVir } // The response received when DeleteVirtualInterface is called. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DeleteVirtualInterfaceResponse type DeleteVirtualInterfaceOutput struct { _ struct{} `type:"structure"` @@ -6368,7 +6329,6 @@ func (s *DeleteVirtualInterfaceOutput) SetVirtualInterfaceState(v string) *Delet } // Container for the parameters to the DescribeConnectionLoa operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeConnectionLoaRequest type DescribeConnectionLoaInput struct { _ struct{} `type:"structure"` @@ -6438,7 +6398,6 @@ func (s *DescribeConnectionLoaInput) SetProviderName(v string) *DescribeConnecti } // The response received when DescribeConnectionLoa is called. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeConnectionLoaResponse type DescribeConnectionLoaOutput struct { _ struct{} `type:"structure"` @@ -6464,7 +6423,6 @@ func (s *DescribeConnectionLoaOutput) SetLoa(v *Loa) *DescribeConnectionLoaOutpu } // Container for the parameters to the DescribeConnections operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeConnectionsRequest type DescribeConnectionsInput struct { _ struct{} `type:"structure"` @@ -6494,7 +6452,6 @@ func (s *DescribeConnectionsInput) SetConnectionId(v string) *DescribeConnection } // Container for the parameters to the DescribeConnectionsOnInterconnect operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeConnectionsOnInterconnectRequest type DescribeConnectionsOnInterconnectInput struct { _ struct{} `type:"structure"` @@ -6539,7 +6496,6 @@ func (s *DescribeConnectionsOnInterconnectInput) SetInterconnectId(v string) *De // Container for the parameters to the DescribeDirectConnectGatewayAssociations // operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeDirectConnectGatewayAssociationsRequest type DescribeDirectConnectGatewayAssociationsInput struct { _ struct{} `type:"structure"` @@ -6607,7 +6563,6 @@ func (s *DescribeDirectConnectGatewayAssociationsInput) SetVirtualGatewayId(v st // Container for the response from the DescribeDirectConnectGatewayAssociations // API call -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeDirectConnectGatewayAssociationsResult type DescribeDirectConnectGatewayAssociationsOutput struct { _ struct{} `type:"structure"` @@ -6642,7 +6597,6 @@ func (s *DescribeDirectConnectGatewayAssociationsOutput) SetNextToken(v string) // Container for the parameters to the DescribeDirectConnectGatewayAttachments // operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeDirectConnectGatewayAttachmentsRequest type DescribeDirectConnectGatewayAttachmentsInput struct { _ struct{} `type:"structure"` @@ -6710,7 +6664,6 @@ func (s *DescribeDirectConnectGatewayAttachmentsInput) SetVirtualInterfaceId(v s // Container for the response from the DescribeDirectConnectGatewayAttachments // API call -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeDirectConnectGatewayAttachmentsResult type DescribeDirectConnectGatewayAttachmentsOutput struct { _ struct{} `type:"structure"` @@ -6744,7 +6697,6 @@ func (s *DescribeDirectConnectGatewayAttachmentsOutput) SetNextToken(v string) * } // Container for the parameters to the DescribeDirectConnectGateways operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeDirectConnectGatewaysRequest type DescribeDirectConnectGatewaysInput struct { _ struct{} `type:"structure"` @@ -6798,7 +6750,6 @@ func (s *DescribeDirectConnectGatewaysInput) SetNextToken(v string) *DescribeDir } // Container for the response from the DescribeDirectConnectGateways API call -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeDirectConnectGatewaysResult type DescribeDirectConnectGatewaysOutput struct { _ struct{} `type:"structure"` @@ -6832,7 +6783,6 @@ func (s *DescribeDirectConnectGatewaysOutput) SetNextToken(v string) *DescribeDi } // Container for the parameters to the DescribeHostedConnections operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeHostedConnectionsRequest type DescribeHostedConnectionsInput struct { _ struct{} `type:"structure"` @@ -6876,7 +6826,6 @@ func (s *DescribeHostedConnectionsInput) SetConnectionId(v string) *DescribeHost } // Container for the parameters to the DescribeInterconnectLoa operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeInterconnectLoaRequest type DescribeInterconnectLoaInput struct { _ struct{} `type:"structure"` @@ -6943,7 +6892,6 @@ func (s *DescribeInterconnectLoaInput) SetProviderName(v string) *DescribeInterc } // The response received when DescribeInterconnectLoa is called. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeInterconnectLoaResponse type DescribeInterconnectLoaOutput struct { _ struct{} `type:"structure"` @@ -6969,7 +6917,6 @@ func (s *DescribeInterconnectLoaOutput) SetLoa(v *Loa) *DescribeInterconnectLoaO } // Container for the parameters to the DescribeInterconnects operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeInterconnectsRequest type DescribeInterconnectsInput struct { _ struct{} `type:"structure"` @@ -6996,7 +6943,6 @@ func (s *DescribeInterconnectsInput) SetInterconnectId(v string) *DescribeInterc } // A structure containing a list of interconnects. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/Interconnects type DescribeInterconnectsOutput struct { _ struct{} `type:"structure"` @@ -7021,7 +6967,6 @@ func (s *DescribeInterconnectsOutput) SetInterconnects(v []*Interconnect) *Descr } // Container for the parameters to the DescribeLags operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeLagsRequest type DescribeLagsInput struct { _ struct{} `type:"structure"` @@ -7050,7 +6995,6 @@ func (s *DescribeLagsInput) SetLagId(v string) *DescribeLagsInput { } // A structure containing a list of LAGs. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/Lags type DescribeLagsOutput struct { _ struct{} `type:"structure"` @@ -7075,7 +7019,6 @@ func (s *DescribeLagsOutput) SetLags(v []*Lag) *DescribeLagsOutput { } // Container for the parameters to the DescribeLoa operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeLoaRequest type DescribeLoaInput struct { _ struct{} `type:"structure"` @@ -7144,7 +7087,6 @@ func (s *DescribeLoaInput) SetProviderName(v string) *DescribeLoaInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeLocationsInput type DescribeLocationsInput struct { _ struct{} `type:"structure"` } @@ -7163,7 +7105,6 @@ func (s DescribeLocationsInput) GoString() string { // to be connected. Generally, these are colocation hubs where many network // providers have equipment, and where cross connects can be delivered. Locations // include a name and facility code, and must be provided when creating a connection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/Locations type DescribeLocationsOutput struct { _ struct{} `type:"structure"` @@ -7189,7 +7130,6 @@ func (s *DescribeLocationsOutput) SetLocations(v []*Location) *DescribeLocations } // Container for the parameters to the DescribeTags operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeTagsRequest type DescribeTagsInput struct { _ struct{} `type:"structure"` @@ -7229,7 +7169,6 @@ func (s *DescribeTagsInput) SetResourceArns(v []*string) *DescribeTagsInput { } // The response received when DescribeTags is called. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeTagsResponse type DescribeTagsOutput struct { _ struct{} `type:"structure"` @@ -7253,7 +7192,6 @@ func (s *DescribeTagsOutput) SetResourceTags(v []*ResourceTag) *DescribeTagsOutp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeVirtualGatewaysInput type DescribeVirtualGatewaysInput struct { _ struct{} `type:"structure"` } @@ -7269,7 +7207,6 @@ func (s DescribeVirtualGatewaysInput) GoString() string { } // A structure containing a list of virtual private gateways. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/VirtualGateways type DescribeVirtualGatewaysOutput struct { _ struct{} `type:"structure"` @@ -7294,7 +7231,6 @@ func (s *DescribeVirtualGatewaysOutput) SetVirtualGateways(v []*VirtualGateway) } // Container for the parameters to the DescribeVirtualInterfaces operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DescribeVirtualInterfacesRequest type DescribeVirtualInterfacesInput struct { _ struct{} `type:"structure"` @@ -7337,7 +7273,6 @@ func (s *DescribeVirtualInterfacesInput) SetVirtualInterfaceId(v string) *Descri } // A structure containing a list of virtual interfaces. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/VirtualInterfaces type DescribeVirtualInterfacesOutput struct { _ struct{} `type:"structure"` @@ -7362,7 +7297,6 @@ func (s *DescribeVirtualInterfacesOutput) SetVirtualInterfaces(v []*VirtualInter } // Container for the parameters to the DisassociateConnectionFromLag operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DisassociateConnectionFromLagRequest type DisassociateConnectionFromLagInput struct { _ struct{} `type:"structure"` @@ -7425,7 +7359,6 @@ func (s *DisassociateConnectionFromLagInput) SetLagId(v string) *DisassociateCon // A direct connect gateway is an intermediate object that enables you to connect // virtual interfaces and virtual private gateways. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DirectConnectGateway type Gateway struct { _ struct{} `type:"structure"` @@ -7509,7 +7442,6 @@ func (s *Gateway) SetStateChangeError(v string) *Gateway { } // The association between a direct connect gateway and virtual private gateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DirectConnectGatewayAssociation type GatewayAssociation struct { _ struct{} `type:"structure"` @@ -7597,7 +7529,6 @@ func (s *GatewayAssociation) SetVirtualGatewayRegion(v string) *GatewayAssociati } // The association between a direct connect gateway and virtual interface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/DirectConnectGatewayAttachment type GatewayAttachment struct { _ struct{} `type:"structure"` @@ -7699,7 +7630,6 @@ func (s *GatewayAttachment) SetVirtualInterfaceRegion(v string) *GatewayAttachme // The resources of the interconnect, including bandwidth and VLAN numbers, // are shared by all of the hosted connections on the interconnect, and the // owner of the interconnect determines how these resources are assigned. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/Interconnect type Interconnect struct { _ struct{} `type:"structure"` @@ -7833,7 +7763,6 @@ func (s *Interconnect) SetRegion(v string) *Interconnect { // of physical connections. Like an interconnect, it can host other connections. // All connections in a LAG must terminate on the same physical AWS Direct Connect // endpoint, and must be the same bandwidth. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/Lag type Lag struct { _ struct{} `type:"structure"` @@ -7991,7 +7920,6 @@ func (s *Lag) SetRegion(v string) *Lag { // A structure containing the Letter of Authorization - Connecting Facility // Assignment (LOA-CFA) for a connection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/Loa type Loa struct { _ struct{} `type:"structure"` @@ -8031,7 +7959,6 @@ func (s *Loa) SetLoaContentType(v string) *Loa { // An AWS Direct Connect location where connections and interconnects can be // requested. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/Location type Location struct { _ struct{} `type:"structure"` @@ -8066,7 +7993,6 @@ func (s *Location) SetLocationName(v string) *Location { } // A structure containing information about a new BGP peer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/NewBGPPeer type NewBGPPeer struct { _ struct{} `type:"structure"` @@ -8139,7 +8065,6 @@ func (s *NewBGPPeer) SetCustomerAddress(v string) *NewBGPPeer { } // A structure containing information about a new private virtual interface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/NewPrivateVirtualInterface type NewPrivateVirtualInterface struct { _ struct{} `type:"structure"` @@ -8283,7 +8208,6 @@ func (s *NewPrivateVirtualInterface) SetVlan(v int64) *NewPrivateVirtualInterfac // A structure containing information about a private virtual interface that // will be provisioned on a connection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/NewPrivateVirtualInterfaceAllocation type NewPrivateVirtualInterfaceAllocation struct { _ struct{} `type:"structure"` @@ -8403,7 +8327,6 @@ func (s *NewPrivateVirtualInterfaceAllocation) SetVlan(v int64) *NewPrivateVirtu } // A structure containing information about a new public virtual interface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/NewPublicVirtualInterface type NewPublicVirtualInterface struct { _ struct{} `type:"structure"` @@ -8534,7 +8457,6 @@ func (s *NewPublicVirtualInterface) SetVlan(v int64) *NewPublicVirtualInterface // A structure containing information about a public virtual interface that // will be provisioned on a connection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/NewPublicVirtualInterfaceAllocation type NewPublicVirtualInterfaceAllocation struct { _ struct{} `type:"structure"` @@ -8664,7 +8586,6 @@ func (s *NewPublicVirtualInterfaceAllocation) SetVlan(v int64) *NewPublicVirtual } // The tags associated with a Direct Connect resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/ResourceTag type ResourceTag struct { _ struct{} `type:"structure"` @@ -8699,7 +8620,6 @@ func (s *ResourceTag) SetTags(v []*Tag) *ResourceTag { // A route filter prefix that the customer can advertise through Border Gateway // Protocol (BGP) over a public virtual interface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/RouteFilterPrefix type RouteFilterPrefix struct { _ struct{} `type:"structure"` @@ -8729,7 +8649,6 @@ func (s *RouteFilterPrefix) SetCidr(v string) *RouteFilterPrefix { } // Information about a tag. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/Tag type Tag struct { _ struct{} `type:"structure"` @@ -8781,7 +8700,6 @@ func (s *Tag) SetValue(v string) *Tag { } // Container for the parameters to the TagResource operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/TagResourceRequest type TagResourceInput struct { _ struct{} `type:"structure"` @@ -8850,7 +8768,6 @@ func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput { } // The response received when TagResource is called. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/TagResourceResponse type TagResourceOutput struct { _ struct{} `type:"structure"` } @@ -8866,7 +8783,6 @@ func (s TagResourceOutput) GoString() string { } // Container for the parameters to the UntagResource operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/UntagResourceRequest type UntagResourceInput struct { _ struct{} `type:"structure"` @@ -8920,7 +8836,6 @@ func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { } // The response received when UntagResource is called. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/UntagResourceResponse type UntagResourceOutput struct { _ struct{} `type:"structure"` } @@ -8936,7 +8851,6 @@ func (s UntagResourceOutput) GoString() string { } // Container for the parameters to the UpdateLag operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/UpdateLagRequest type UpdateLagInput struct { _ struct{} `type:"structure"` @@ -9009,7 +8923,6 @@ func (s *UpdateLagInput) SetMinimumLinks(v int64) *UpdateLagInput { // // Virtual private gateways can be managed using the Amazon Virtual Private // Cloud (Amazon VPC) console or the Amazon EC2 CreateVpnGateway action (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/ApiReference-query-CreateVpnGateway.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/VirtualGateway type VirtualGateway struct { _ struct{} `type:"structure"` @@ -9056,7 +8969,6 @@ func (s *VirtualGateway) SetVirtualGatewayState(v string) *VirtualGateway { // A virtual interface (VLAN) transmits the traffic between the AWS Direct Connect // location and the customer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/directconnect-2012-10-25/VirtualInterface type VirtualInterface struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/directoryservice/api.go b/vendor/github.com/aws/aws-sdk-go/service/directoryservice/api.go index ef2d0cad7..9040732ca 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/directoryservice/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/directoryservice/api.go @@ -3812,7 +3812,6 @@ func (c *DirectoryService) VerifyTrustWithContext(ctx aws.Context, input *Verify return out, req.Send() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AddIpRoutesRequest type AddIpRoutesInput struct { _ struct{} `type:"structure"` @@ -3917,7 +3916,6 @@ func (s *AddIpRoutesInput) SetUpdateSecurityGroupForDirectoryControllers(v bool) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AddIpRoutesResult type AddIpRoutesOutput struct { _ struct{} `type:"structure"` } @@ -3932,7 +3930,6 @@ func (s AddIpRoutesOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AddTagsToResourceRequest type AddTagsToResourceInput struct { _ struct{} `type:"structure"` @@ -3995,7 +3992,6 @@ func (s *AddTagsToResourceInput) SetTags(v []*Tag) *AddTagsToResourceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/AddTagsToResourceResult type AddTagsToResourceOutput struct { _ struct{} `type:"structure"` } @@ -4011,7 +4007,6 @@ func (s AddTagsToResourceOutput) GoString() string { } // Represents a named directory attribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/Attribute type Attribute struct { _ struct{} `type:"structure"` @@ -4057,7 +4052,6 @@ func (s *Attribute) SetValue(v string) *Attribute { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CancelSchemaExtensionRequest type CancelSchemaExtensionInput struct { _ struct{} `type:"structure"` @@ -4110,7 +4104,6 @@ func (s *CancelSchemaExtensionInput) SetSchemaExtensionId(v string) *CancelSchem return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CancelSchemaExtensionResult type CancelSchemaExtensionOutput struct { _ struct{} `type:"structure"` } @@ -4126,7 +4119,6 @@ func (s CancelSchemaExtensionOutput) GoString() string { } // Contains information about a computer account in a directory. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/Computer type Computer struct { _ struct{} `type:"structure"` @@ -4172,7 +4164,6 @@ func (s *Computer) SetComputerName(v string) *Computer { // Points to a remote domain with which you are setting up a trust relationship. // Conditional forwarders are required in order to set up a trust relationship // with another domain. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ConditionalForwarder type ConditionalForwarder struct { _ struct{} `type:"structure"` @@ -4220,7 +4211,6 @@ func (s *ConditionalForwarder) SetReplicationScope(v string) *ConditionalForward } // Contains the inputs for the ConnectDirectory operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ConnectDirectoryRequest type ConnectDirectoryInput struct { _ struct{} `type:"structure"` @@ -4329,7 +4319,6 @@ func (s *ConnectDirectoryInput) SetSize(v string) *ConnectDirectoryInput { } // Contains the results of the ConnectDirectory operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ConnectDirectoryResult type ConnectDirectoryOutput struct { _ struct{} `type:"structure"` @@ -4354,7 +4343,6 @@ func (s *ConnectDirectoryOutput) SetDirectoryId(v string) *ConnectDirectoryOutpu } // Contains the inputs for the CreateAlias operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateAliasRequest type CreateAliasInput struct { _ struct{} `type:"structure"` @@ -4414,7 +4402,6 @@ func (s *CreateAliasInput) SetDirectoryId(v string) *CreateAliasInput { } // Contains the results of the CreateAlias operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateAliasResult type CreateAliasOutput struct { _ struct{} `type:"structure"` @@ -4448,7 +4435,6 @@ func (s *CreateAliasOutput) SetDirectoryId(v string) *CreateAliasOutput { } // Contains the inputs for the CreateComputer operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateComputerRequest type CreateComputerInput struct { _ struct{} `type:"structure"` @@ -4556,7 +4542,6 @@ func (s *CreateComputerInput) SetPassword(v string) *CreateComputerInput { } // Contains the results for the CreateComputer operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateComputerResult type CreateComputerOutput struct { _ struct{} `type:"structure"` @@ -4583,7 +4568,6 @@ func (s *CreateComputerOutput) SetComputer(v *Computer) *CreateComputerOutput { // Initiates the creation of a conditional forwarder for your AWS Directory // Service for Microsoft Active Directory. Conditional forwarders are required // in order to set up a trust relationship with another domain. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateConditionalForwarderRequest type CreateConditionalForwarderInput struct { _ struct{} `type:"structure"` @@ -4653,7 +4637,6 @@ func (s *CreateConditionalForwarderInput) SetRemoteDomainName(v string) *CreateC } // The result of a CreateConditinalForwarder request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateConditionalForwarderResult type CreateConditionalForwarderOutput struct { _ struct{} `type:"structure"` } @@ -4669,7 +4652,6 @@ func (s CreateConditionalForwarderOutput) GoString() string { } // Contains the inputs for the CreateDirectory operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateDirectoryRequest type CreateDirectoryInput struct { _ struct{} `type:"structure"` @@ -4772,7 +4754,6 @@ func (s *CreateDirectoryInput) SetVpcSettings(v *DirectoryVpcSettings) *CreateDi } // Contains the results of the CreateDirectory operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateDirectoryResult type CreateDirectoryOutput struct { _ struct{} `type:"structure"` @@ -4797,7 +4778,6 @@ func (s *CreateDirectoryOutput) SetDirectoryId(v string) *CreateDirectoryOutput } // Creates a Microsoft AD in the AWS cloud. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateMicrosoftADRequest type CreateMicrosoftADInput struct { _ struct{} `type:"structure"` @@ -4903,7 +4883,6 @@ func (s *CreateMicrosoftADInput) SetVpcSettings(v *DirectoryVpcSettings) *Create } // Result of a CreateMicrosoftAD request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateMicrosoftADResult type CreateMicrosoftADOutput struct { _ struct{} `type:"structure"` @@ -4928,7 +4907,6 @@ func (s *CreateMicrosoftADOutput) SetDirectoryId(v string) *CreateMicrosoftADOut } // Contains the inputs for the CreateSnapshot operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateSnapshotRequest type CreateSnapshotInput struct { _ struct{} `type:"structure"` @@ -4977,7 +4955,6 @@ func (s *CreateSnapshotInput) SetName(v string) *CreateSnapshotInput { } // Contains the results of the CreateSnapshot operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateSnapshotResult type CreateSnapshotOutput struct { _ struct{} `type:"structure"` @@ -5009,7 +4986,6 @@ func (s *CreateSnapshotOutput) SetSnapshotId(v string) *CreateSnapshotOutput { // // This action initiates the creation of the AWS side of a trust relationship // between a Microsoft AD in the AWS cloud and an external domain. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateTrustRequest type CreateTrustInput struct { _ struct{} `type:"structure"` @@ -5115,7 +5091,6 @@ func (s *CreateTrustInput) SetTrustType(v string) *CreateTrustInput { } // The result of a CreateTrust request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/CreateTrustResult type CreateTrustOutput struct { _ struct{} `type:"structure"` @@ -5140,7 +5115,6 @@ func (s *CreateTrustOutput) SetTrustId(v string) *CreateTrustOutput { } // Deletes a conditional forwarder. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteConditionalForwarderRequest type DeleteConditionalForwarderInput struct { _ struct{} `type:"structure"` @@ -5195,7 +5169,6 @@ func (s *DeleteConditionalForwarderInput) SetRemoteDomainName(v string) *DeleteC } // The result of a DeleteConditionalForwarder request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteConditionalForwarderResult type DeleteConditionalForwarderOutput struct { _ struct{} `type:"structure"` } @@ -5211,7 +5184,6 @@ func (s DeleteConditionalForwarderOutput) GoString() string { } // Contains the inputs for the DeleteDirectory operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteDirectoryRequest type DeleteDirectoryInput struct { _ struct{} `type:"structure"` @@ -5251,7 +5223,6 @@ func (s *DeleteDirectoryInput) SetDirectoryId(v string) *DeleteDirectoryInput { } // Contains the results of the DeleteDirectory operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteDirectoryResult type DeleteDirectoryOutput struct { _ struct{} `type:"structure"` @@ -5276,7 +5247,6 @@ func (s *DeleteDirectoryOutput) SetDirectoryId(v string) *DeleteDirectoryOutput } // Contains the inputs for the DeleteSnapshot operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteSnapshotRequest type DeleteSnapshotInput struct { _ struct{} `type:"structure"` @@ -5316,7 +5286,6 @@ func (s *DeleteSnapshotInput) SetSnapshotId(v string) *DeleteSnapshotInput { } // Contains the results of the DeleteSnapshot operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteSnapshotResult type DeleteSnapshotOutput struct { _ struct{} `type:"structure"` @@ -5342,7 +5311,6 @@ func (s *DeleteSnapshotOutput) SetSnapshotId(v string) *DeleteSnapshotOutput { // Deletes the local side of an existing trust relationship between the Microsoft // AD in the AWS cloud and the external domain. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteTrustRequest type DeleteTrustInput struct { _ struct{} `type:"structure"` @@ -5391,7 +5359,6 @@ func (s *DeleteTrustInput) SetTrustId(v string) *DeleteTrustInput { } // The result of a DeleteTrust request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeleteTrustResult type DeleteTrustOutput struct { _ struct{} `type:"structure"` @@ -5416,7 +5383,6 @@ func (s *DeleteTrustOutput) SetTrustId(v string) *DeleteTrustOutput { } // Removes the specified directory as a publisher to the specified SNS topic. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeregisterEventTopicRequest type DeregisterEventTopicInput struct { _ struct{} `type:"structure"` @@ -5474,7 +5440,6 @@ func (s *DeregisterEventTopicInput) SetTopicName(v string) *DeregisterEventTopic } // The result of a DeregisterEventTopic request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DeregisterEventTopicResult type DeregisterEventTopicOutput struct { _ struct{} `type:"structure"` } @@ -5490,7 +5455,6 @@ func (s DeregisterEventTopicOutput) GoString() string { } // Describes a conditional forwarder. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeConditionalForwardersRequest type DescribeConditionalForwardersInput struct { _ struct{} `type:"structure"` @@ -5541,7 +5505,6 @@ func (s *DescribeConditionalForwardersInput) SetRemoteDomainNames(v []*string) * } // The result of a DescribeConditionalForwarder request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeConditionalForwardersResult type DescribeConditionalForwardersOutput struct { _ struct{} `type:"structure"` @@ -5566,7 +5529,6 @@ func (s *DescribeConditionalForwardersOutput) SetConditionalForwarders(v []*Cond } // Contains the inputs for the DescribeDirectories operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDirectoriesRequest type DescribeDirectoriesInput struct { _ struct{} `type:"structure"` @@ -5615,7 +5577,6 @@ func (s *DescribeDirectoriesInput) SetNextToken(v string) *DescribeDirectoriesIn } // Contains the results of the DescribeDirectories operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDirectoriesResult type DescribeDirectoriesOutput struct { _ struct{} `type:"structure"` @@ -5655,7 +5616,6 @@ func (s *DescribeDirectoriesOutput) SetNextToken(v string) *DescribeDirectoriesO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDomainControllersRequest type DescribeDomainControllersInput struct { _ struct{} `type:"structure"` @@ -5723,7 +5683,6 @@ func (s *DescribeDomainControllersInput) SetNextToken(v string) *DescribeDomainC return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeDomainControllersResult type DescribeDomainControllersOutput struct { _ struct{} `type:"structure"` @@ -5759,7 +5718,6 @@ func (s *DescribeDomainControllersOutput) SetNextToken(v string) *DescribeDomain } // Describes event topics. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeEventTopicsRequest type DescribeEventTopicsInput struct { _ struct{} `type:"structure"` @@ -5797,7 +5755,6 @@ func (s *DescribeEventTopicsInput) SetTopicNames(v []*string) *DescribeEventTopi } // The result of a DescribeEventTopic request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeEventTopicsResult type DescribeEventTopicsOutput struct { _ struct{} `type:"structure"` @@ -5823,7 +5780,6 @@ func (s *DescribeEventTopicsOutput) SetEventTopics(v []*EventTopic) *DescribeEve } // Contains the inputs for the DescribeSnapshots operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeSnapshotsRequest type DescribeSnapshotsInput struct { _ struct{} `type:"structure"` @@ -5878,7 +5834,6 @@ func (s *DescribeSnapshotsInput) SetSnapshotIds(v []*string) *DescribeSnapshotsI } // Contains the results of the DescribeSnapshots operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeSnapshotsResult type DescribeSnapshotsOutput struct { _ struct{} `type:"structure"` @@ -5920,7 +5875,6 @@ func (s *DescribeSnapshotsOutput) SetSnapshots(v []*Snapshot) *DescribeSnapshots // Describes the trust relationships for a particular Microsoft AD in the AWS // cloud. If no input parameters are are provided, such as directory ID or trust // ID, this request describes all the trust relationships. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeTrustsRequest type DescribeTrustsInput struct { _ struct{} `type:"structure"` @@ -5978,7 +5932,6 @@ func (s *DescribeTrustsInput) SetTrustIds(v []*string) *DescribeTrustsInput { } // The result of a DescribeTrust request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DescribeTrustsResult type DescribeTrustsOutput struct { _ struct{} `type:"structure"` @@ -6020,7 +5973,6 @@ func (s *DescribeTrustsOutput) SetTrusts(v []*Trust) *DescribeTrustsOutput { // Contains information for the ConnectDirectory operation when an AD Connector // directory is being created. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DirectoryConnectSettings type DirectoryConnectSettings struct { _ struct{} `type:"structure"` @@ -6113,7 +6065,6 @@ func (s *DirectoryConnectSettings) SetVpcId(v string) *DirectoryConnectSettings } // Contains information about an AD Connector directory. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DirectoryConnectSettingsDescription type DirectoryConnectSettingsDescription struct { _ struct{} `type:"structure"` @@ -6183,7 +6134,6 @@ func (s *DirectoryConnectSettingsDescription) SetVpcId(v string) *DirectoryConne } // Contains information about an AWS Directory Service directory. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DirectoryDescription type DirectoryDescription struct { _ struct{} `type:"structure"` @@ -6393,7 +6343,6 @@ func (s *DirectoryDescription) SetVpcSettings(v *DirectoryVpcSettingsDescription } // Contains directory limit information for a region. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DirectoryLimits type DirectoryLimits struct { _ struct{} `type:"structure"` @@ -6490,7 +6439,6 @@ func (s *DirectoryLimits) SetConnectedDirectoriesLimitReached(v bool) *Directory } // Contains VPC information for the CreateDirectory or CreateMicrosoftAD operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DirectoryVpcSettings type DirectoryVpcSettings struct { _ struct{} `type:"structure"` @@ -6546,7 +6494,6 @@ func (s *DirectoryVpcSettings) SetVpcId(v string) *DirectoryVpcSettings { } // Contains information about the directory. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DirectoryVpcSettingsDescription type DirectoryVpcSettingsDescription struct { _ struct{} `type:"structure"` @@ -6598,7 +6545,6 @@ func (s *DirectoryVpcSettingsDescription) SetVpcId(v string) *DirectoryVpcSettin } // Contains the inputs for the DisableRadius operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableRadiusRequest type DisableRadiusInput struct { _ struct{} `type:"structure"` @@ -6638,7 +6584,6 @@ func (s *DisableRadiusInput) SetDirectoryId(v string) *DisableRadiusInput { } // Contains the results of the DisableRadius operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableRadiusResult type DisableRadiusOutput struct { _ struct{} `type:"structure"` } @@ -6654,7 +6599,6 @@ func (s DisableRadiusOutput) GoString() string { } // Contains the inputs for the DisableSso operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableSsoRequest type DisableSsoInput struct { _ struct{} `type:"structure"` @@ -6728,7 +6672,6 @@ func (s *DisableSsoInput) SetUserName(v string) *DisableSsoInput { } // Contains the results of the DisableSso operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DisableSsoResult type DisableSsoOutput struct { _ struct{} `type:"structure"` } @@ -6744,7 +6687,6 @@ func (s DisableSsoOutput) GoString() string { } // Contains information about the domain controllers for a specified directory. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/DomainController type DomainController struct { _ struct{} `type:"structure"` @@ -6850,7 +6792,6 @@ func (s *DomainController) SetVpcId(v string) *DomainController { } // Contains the inputs for the EnableRadius operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableRadiusRequest type EnableRadiusInput struct { _ struct{} `type:"structure"` @@ -6909,7 +6850,6 @@ func (s *EnableRadiusInput) SetRadiusSettings(v *RadiusSettings) *EnableRadiusIn } // Contains the results of the EnableRadius operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableRadiusResult type EnableRadiusOutput struct { _ struct{} `type:"structure"` } @@ -6925,7 +6865,6 @@ func (s EnableRadiusOutput) GoString() string { } // Contains the inputs for the EnableSso operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableSsoRequest type EnableSsoInput struct { _ struct{} `type:"structure"` @@ -6999,7 +6938,6 @@ func (s *EnableSsoInput) SetUserName(v string) *EnableSsoInput { } // Contains the results of the EnableSso operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EnableSsoResult type EnableSsoOutput struct { _ struct{} `type:"structure"` } @@ -7015,7 +6953,6 @@ func (s EnableSsoOutput) GoString() string { } // Information about SNS topic and AWS Directory Service directory associations. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/EventTopic type EventTopic struct { _ struct{} `type:"structure"` @@ -7077,7 +7014,6 @@ func (s *EventTopic) SetTopicName(v string) *EventTopic { } // Contains the inputs for the GetDirectoryLimits operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/GetDirectoryLimitsRequest type GetDirectoryLimitsInput struct { _ struct{} `type:"structure"` } @@ -7093,7 +7029,6 @@ func (s GetDirectoryLimitsInput) GoString() string { } // Contains the results of the GetDirectoryLimits operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/GetDirectoryLimitsResult type GetDirectoryLimitsOutput struct { _ struct{} `type:"structure"` @@ -7119,7 +7054,6 @@ func (s *GetDirectoryLimitsOutput) SetDirectoryLimits(v *DirectoryLimits) *GetDi } // Contains the inputs for the GetSnapshotLimits operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/GetSnapshotLimitsRequest type GetSnapshotLimitsInput struct { _ struct{} `type:"structure"` @@ -7159,7 +7093,6 @@ func (s *GetSnapshotLimitsInput) SetDirectoryId(v string) *GetSnapshotLimitsInpu } // Contains the results of the GetSnapshotLimits operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/GetSnapshotLimitsResult type GetSnapshotLimitsOutput struct { _ struct{} `type:"structure"` @@ -7186,7 +7119,6 @@ func (s *GetSnapshotLimitsOutput) SetSnapshotLimits(v *SnapshotLimits) *GetSnaps // IP address block. This is often the address block of the DNS server used // for your on-premises domain. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/IpRoute type IpRoute struct { _ struct{} `type:"structure"` @@ -7222,7 +7154,6 @@ func (s *IpRoute) SetDescription(v string) *IpRoute { } // Information about one or more IP address blocks. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/IpRouteInfo type IpRouteInfo struct { _ struct{} `type:"structure"` @@ -7291,7 +7222,6 @@ func (s *IpRouteInfo) SetIpRouteStatusReason(v string) *IpRouteInfo { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListIpRoutesRequest type ListIpRoutesInput struct { _ struct{} `type:"structure"` @@ -7350,7 +7280,6 @@ func (s *ListIpRoutesInput) SetNextToken(v string) *ListIpRoutesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListIpRoutesResult type ListIpRoutesOutput struct { _ struct{} `type:"structure"` @@ -7385,7 +7314,6 @@ func (s *ListIpRoutesOutput) SetNextToken(v string) *ListIpRoutesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListSchemaExtensionsRequest type ListSchemaExtensionsInput struct { _ struct{} `type:"structure"` @@ -7444,7 +7372,6 @@ func (s *ListSchemaExtensionsInput) SetNextToken(v string) *ListSchemaExtensions return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListSchemaExtensionsResult type ListSchemaExtensionsOutput struct { _ struct{} `type:"structure"` @@ -7479,7 +7406,6 @@ func (s *ListSchemaExtensionsOutput) SetSchemaExtensionsInfo(v []*SchemaExtensio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListTagsForResourceRequest type ListTagsForResourceInput struct { _ struct{} `type:"structure"` @@ -7536,7 +7462,6 @@ func (s *ListTagsForResourceInput) SetResourceId(v string) *ListTagsForResourceI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/ListTagsForResourceResult type ListTagsForResourceOutput struct { _ struct{} `type:"structure"` @@ -7571,7 +7496,6 @@ func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput // Contains information about a Remote Authentication Dial In User Service (RADIUS) // server. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RadiusSettings type RadiusSettings struct { _ struct{} `type:"structure"` @@ -7685,7 +7609,6 @@ func (s *RadiusSettings) SetUseSameUsername(v bool) *RadiusSettings { } // Registers a new event topic. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RegisterEventTopicRequest type RegisterEventTopicInput struct { _ struct{} `type:"structure"` @@ -7743,7 +7666,6 @@ func (s *RegisterEventTopicInput) SetTopicName(v string) *RegisterEventTopicInpu } // The result of a RegisterEventTopic request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RegisterEventTopicResult type RegisterEventTopicOutput struct { _ struct{} `type:"structure"` } @@ -7758,7 +7680,6 @@ func (s RegisterEventTopicOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveIpRoutesRequest type RemoveIpRoutesInput struct { _ struct{} `type:"structure"` @@ -7811,7 +7732,6 @@ func (s *RemoveIpRoutesInput) SetDirectoryId(v string) *RemoveIpRoutesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveIpRoutesResult type RemoveIpRoutesOutput struct { _ struct{} `type:"structure"` } @@ -7826,7 +7746,6 @@ func (s RemoveIpRoutesOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveTagsFromResourceRequest type RemoveTagsFromResourceInput struct { _ struct{} `type:"structure"` @@ -7879,7 +7798,6 @@ func (s *RemoveTagsFromResourceInput) SetTagKeys(v []*string) *RemoveTagsFromRes return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RemoveTagsFromResourceResult type RemoveTagsFromResourceOutput struct { _ struct{} `type:"structure"` } @@ -7895,7 +7813,6 @@ func (s RemoveTagsFromResourceOutput) GoString() string { } // An object representing the inputs for the RestoreFromSnapshot operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RestoreFromSnapshotRequest type RestoreFromSnapshotInput struct { _ struct{} `type:"structure"` @@ -7935,7 +7852,6 @@ func (s *RestoreFromSnapshotInput) SetSnapshotId(v string) *RestoreFromSnapshotI } // Contains the results of the RestoreFromSnapshot operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/RestoreFromSnapshotResult type RestoreFromSnapshotOutput struct { _ struct{} `type:"structure"` } @@ -7951,7 +7867,6 @@ func (s RestoreFromSnapshotOutput) GoString() string { } // Information about a schema extension. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/SchemaExtensionInfo type SchemaExtensionInfo struct { _ struct{} `type:"structure"` @@ -8031,7 +7946,6 @@ func (s *SchemaExtensionInfo) SetStartDateTime(v time.Time) *SchemaExtensionInfo } // Describes a directory snapshot. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/Snapshot type Snapshot struct { _ struct{} `type:"structure"` @@ -8101,7 +8015,6 @@ func (s *Snapshot) SetType(v string) *Snapshot { } // Contains manual snapshot limit information for a directory. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/SnapshotLimits type SnapshotLimits struct { _ struct{} `type:"structure"` @@ -8143,7 +8056,6 @@ func (s *SnapshotLimits) SetManualSnapshotsLimitReached(v bool) *SnapshotLimits return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/StartSchemaExtensionRequest type StartSchemaExtensionInput struct { _ struct{} `type:"structure"` @@ -8231,7 +8143,6 @@ func (s *StartSchemaExtensionInput) SetLdifContent(v string) *StartSchemaExtensi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/StartSchemaExtensionResult type StartSchemaExtensionOutput struct { _ struct{} `type:"structure"` @@ -8256,7 +8167,6 @@ func (s *StartSchemaExtensionOutput) SetSchemaExtensionId(v string) *StartSchema } // Metadata assigned to a directory consisting of a key-value pair. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/Tag type Tag struct { _ struct{} `type:"structure"` @@ -8318,7 +8228,6 @@ func (s *Tag) SetValue(v string) *Tag { // Describes a trust relationship between an Microsoft AD in the AWS cloud and // an external domain. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/Trust type Trust struct { _ struct{} `type:"structure"` @@ -8425,7 +8334,6 @@ func (s *Trust) SetTrustType(v string) *Trust { } // Updates a conditional forwarder. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateConditionalForwarderRequest type UpdateConditionalForwarderInput struct { _ struct{} `type:"structure"` @@ -8496,7 +8404,6 @@ func (s *UpdateConditionalForwarderInput) SetRemoteDomainName(v string) *UpdateC } // The result of an UpdateConditionalForwarder request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateConditionalForwarderResult type UpdateConditionalForwarderOutput struct { _ struct{} `type:"structure"` } @@ -8511,7 +8418,6 @@ func (s UpdateConditionalForwarderOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateNumberOfDomainControllersRequest type UpdateNumberOfDomainControllersInput struct { _ struct{} `type:"structure"` @@ -8568,7 +8474,6 @@ func (s *UpdateNumberOfDomainControllersInput) SetDirectoryId(v string) *UpdateN return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateNumberOfDomainControllersResult type UpdateNumberOfDomainControllersOutput struct { _ struct{} `type:"structure"` } @@ -8584,7 +8489,6 @@ func (s UpdateNumberOfDomainControllersOutput) GoString() string { } // Contains the inputs for the UpdateRadius operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateRadiusRequest type UpdateRadiusInput struct { _ struct{} `type:"structure"` @@ -8643,7 +8547,6 @@ func (s *UpdateRadiusInput) SetRadiusSettings(v *RadiusSettings) *UpdateRadiusIn } // Contains the results of the UpdateRadius operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/UpdateRadiusResult type UpdateRadiusOutput struct { _ struct{} `type:"structure"` } @@ -8660,7 +8563,6 @@ func (s UpdateRadiusOutput) GoString() string { // Initiates the verification of an existing trust relationship between a Microsoft // AD in the AWS cloud and an external domain. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/VerifyTrustRequest type VerifyTrustInput struct { _ struct{} `type:"structure"` @@ -8700,7 +8602,6 @@ func (s *VerifyTrustInput) SetTrustId(v string) *VerifyTrustInput { } // Result of a VerifyTrust request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ds-2015-04-16/VerifyTrustResult type VerifyTrustOutput struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/api.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/api.go index 2b3343198..43abb4123 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/api.go @@ -420,23 +420,21 @@ func (c *DynamoDB) CreateBackupRequest(input *CreateBackupInput) (req *request.R // Each time you create an On-Demand Backup, the entire table data is backed // up. There is no limit to the number of on-demand backups that can be taken. // +// When you create an On-Demand Backup, a time marker of the request is cataloged, +// and the backup is created asynchronously, by applying all changes until the +// time of the request to the last full table snapshot. Backup requests are +// processed instantaneously and become available for restore within minutes. +// // You can call CreateBackup at a maximum rate of 50 times per second. // // All backups in DynamoDB work without consuming any provisioned throughput -// on the table. This results in a fast, low-cost, and scalable backup process. -// In general, the larger the table, the more time it takes to back up. The -// backup is stored in an S3 data store that is maintained and managed by DynamoDB. +// on the table. // -// Backups incorporate all writes (delete, put, update) that were completed -// within the last minute before the backup request was initiated. Backups might -// include some writes (delete, put, update) that were completed before the -// backup request was finished. -// -// For example, if you submit the backup request on 2018-12-14 at 14:25:00, -// the backup is guaranteed to contain all data committed to the table up to -// 14:24:00, and data committed after 14:26:00 will not be. The backup may or -// may not contain data modifications made between 14:24:00 and 14:26:00. On-Demand -// Backup does not support causal consistency. +// If you submit a backup request on 2018-12-14 at 14:25:00, the backup is guaranteed +// to contain all data committed to the table up to 14:24:00, and data committed +// after 14:26:00 will not be. The backup may or may not contain data modifications +// made between 14:24:00 and 14:26:00. On-Demand Backup does not support causal +// consistency. // // Along with data, the following are also included on the backups: // @@ -471,12 +469,21 @@ func (c *DynamoDB) CreateBackupRequest(input *CreateBackupInput) (req *request.R // table. The backups is either being created, deleted or restored to a table. // // * ErrCodeLimitExceededException "LimitExceededException" -// The number of concurrent table requests (cumulative number of tables in the -// CREATING, DELETING or UPDATING state) exceeds the maximum allowed of 10. +// Up to 50 CreateBackup operations are allowed per second, per account. There +// is no limit to the number of daily on-demand backups that can be taken. // -// Also, for tables with secondary indexes, only one of those tables can be -// in the CREATING state at any point in time. Do not attempt to create more -// than one such table simultaneously. +// Up to 10 simultaneous table operations are allowed per account. These operations +// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, and RestoreTableFromBackup. +// +// For tables with secondary indexes, only one of those tables can be in the +// CREATING state at any point in time. Do not attempt to create more than one +// such table simultaneously. +// +// The total limit of tables in the ACTIVE state is 250. +// +// For tables with secondary indexes, only one of those tables can be in the +// CREATING state at any point in time. Do not attempt to create more than one +// such table simultaneously. // // The total limit of tables in the ACTIVE state is 250. // @@ -573,12 +580,21 @@ func (c *DynamoDB) CreateGlobalTableRequest(input *CreateGlobalTableInput) (req // // Returned Error Codes: // * ErrCodeLimitExceededException "LimitExceededException" -// The number of concurrent table requests (cumulative number of tables in the -// CREATING, DELETING or UPDATING state) exceeds the maximum allowed of 10. +// Up to 50 CreateBackup operations are allowed per second, per account. There +// is no limit to the number of daily on-demand backups that can be taken. // -// Also, for tables with secondary indexes, only one of those tables can be -// in the CREATING state at any point in time. Do not attempt to create more -// than one such table simultaneously. +// Up to 10 simultaneous table operations are allowed per account. These operations +// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, and RestoreTableFromBackup. +// +// For tables with secondary indexes, only one of those tables can be in the +// CREATING state at any point in time. Do not attempt to create more than one +// such table simultaneously. +// +// The total limit of tables in the ACTIVE state is 250. +// +// For tables with secondary indexes, only one of those tables can be in the +// CREATING state at any point in time. Do not attempt to create more than one +// such table simultaneously. // // The total limit of tables in the ACTIVE state is 250. // @@ -688,12 +704,21 @@ func (c *DynamoDB) CreateTableRequest(input *CreateTableInput) (req *request.Req // in the CREATING state. // // * ErrCodeLimitExceededException "LimitExceededException" -// The number of concurrent table requests (cumulative number of tables in the -// CREATING, DELETING or UPDATING state) exceeds the maximum allowed of 10. +// Up to 50 CreateBackup operations are allowed per second, per account. There +// is no limit to the number of daily on-demand backups that can be taken. // -// Also, for tables with secondary indexes, only one of those tables can be -// in the CREATING state at any point in time. Do not attempt to create more -// than one such table simultaneously. +// Up to 10 simultaneous table operations are allowed per account. These operations +// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, and RestoreTableFromBackup. +// +// For tables with secondary indexes, only one of those tables can be in the +// CREATING state at any point in time. Do not attempt to create more than one +// such table simultaneously. +// +// The total limit of tables in the ACTIVE state is 250. +// +// For tables with secondary indexes, only one of those tables can be in the +// CREATING state at any point in time. Do not attempt to create more than one +// such table simultaneously. // // The total limit of tables in the ACTIVE state is 250. // @@ -786,12 +811,21 @@ func (c *DynamoDB) DeleteBackupRequest(input *DeleteBackupInput) (req *request.R // table. The backups is either being created, deleted or restored to a table. // // * ErrCodeLimitExceededException "LimitExceededException" -// The number of concurrent table requests (cumulative number of tables in the -// CREATING, DELETING or UPDATING state) exceeds the maximum allowed of 10. +// Up to 50 CreateBackup operations are allowed per second, per account. There +// is no limit to the number of daily on-demand backups that can be taken. // -// Also, for tables with secondary indexes, only one of those tables can be -// in the CREATING state at any point in time. Do not attempt to create more -// than one such table simultaneously. +// Up to 10 simultaneous table operations are allowed per account. These operations +// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, and RestoreTableFromBackup. +// +// For tables with secondary indexes, only one of those tables can be in the +// CREATING state at any point in time. Do not attempt to create more than one +// such table simultaneously. +// +// The total limit of tables in the ACTIVE state is 250. +// +// For tables with secondary indexes, only one of those tables can be in the +// CREATING state at any point in time. Do not attempt to create more than one +// such table simultaneously. // // The total limit of tables in the ACTIVE state is 250. // @@ -1012,12 +1046,21 @@ func (c *DynamoDB) DeleteTableRequest(input *DeleteTableInput) (req *request.Req // might not be specified correctly, or its status might not be ACTIVE. // // * ErrCodeLimitExceededException "LimitExceededException" -// The number of concurrent table requests (cumulative number of tables in the -// CREATING, DELETING or UPDATING state) exceeds the maximum allowed of 10. +// Up to 50 CreateBackup operations are allowed per second, per account. There +// is no limit to the number of daily on-demand backups that can be taken. // -// Also, for tables with secondary indexes, only one of those tables can be -// in the CREATING state at any point in time. Do not attempt to create more -// than one such table simultaneously. +// Up to 10 simultaneous table operations are allowed per account. These operations +// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, and RestoreTableFromBackup. +// +// For tables with secondary indexes, only one of those tables can be in the +// CREATING state at any point in time. Do not attempt to create more than one +// such table simultaneously. +// +// The total limit of tables in the ACTIVE state is 250. +// +// For tables with secondary indexes, only one of those tables can be in the +// CREATING state at any point in time. Do not attempt to create more than one +// such table simultaneously. // // The total limit of tables in the ACTIVE state is 250. // @@ -1261,7 +1304,7 @@ func (c *DynamoDB) DescribeGlobalTableRequest(input *DescribeGlobalTableInput) ( // DescribeGlobalTable API operation for Amazon DynamoDB. // -// Returns information about the global table. +// Returns information about the specified global table. // // 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 @@ -1837,8 +1880,7 @@ func (c *DynamoDB) ListGlobalTablesRequest(input *ListGlobalTablesInput) (req *r // ListGlobalTables API operation for Amazon DynamoDB. // -// Lists all the global tables. Only those global tables that have replicas -// in the region specified as input are returned. +// Lists all global tables that have a replica in the specified region. // // 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 @@ -2491,6 +2533,8 @@ func (c *DynamoDB) RestoreTableFromBackupRequest(input *RestoreTableFromBackupIn // // * Tags // +// * Stream settings +// // * Time to Live (TTL) settings // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -2515,12 +2559,21 @@ func (c *DynamoDB) RestoreTableFromBackupRequest(input *RestoreTableFromBackupIn // table. The backups is either being created, deleted or restored to a table. // // * ErrCodeLimitExceededException "LimitExceededException" -// The number of concurrent table requests (cumulative number of tables in the -// CREATING, DELETING or UPDATING state) exceeds the maximum allowed of 10. +// Up to 50 CreateBackup operations are allowed per second, per account. There +// is no limit to the number of daily on-demand backups that can be taken. // -// Also, for tables with secondary indexes, only one of those tables can be -// in the CREATING state at any point in time. Do not attempt to create more -// than one such table simultaneously. +// Up to 10 simultaneous table operations are allowed per account. These operations +// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, and RestoreTableFromBackup. +// +// For tables with secondary indexes, only one of those tables can be in the +// CREATING state at any point in time. Do not attempt to create more than one +// such table simultaneously. +// +// The total limit of tables in the ACTIVE state is 250. +// +// For tables with secondary indexes, only one of those tables can be in the +// CREATING state at any point in time. Do not attempt to create more than one +// such table simultaneously. // // The total limit of tables in the ACTIVE state is 250. // @@ -2786,12 +2839,21 @@ func (c *DynamoDB) TagResourceRequest(input *TagResourceInput) (req *request.Req // // Returned Error Codes: // * ErrCodeLimitExceededException "LimitExceededException" -// The number of concurrent table requests (cumulative number of tables in the -// CREATING, DELETING or UPDATING state) exceeds the maximum allowed of 10. +// Up to 50 CreateBackup operations are allowed per second, per account. There +// is no limit to the number of daily on-demand backups that can be taken. // -// Also, for tables with secondary indexes, only one of those tables can be -// in the CREATING state at any point in time. Do not attempt to create more -// than one such table simultaneously. +// Up to 10 simultaneous table operations are allowed per account. These operations +// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, and RestoreTableFromBackup. +// +// For tables with secondary indexes, only one of those tables can be in the +// CREATING state at any point in time. Do not attempt to create more than one +// such table simultaneously. +// +// The total limit of tables in the ACTIVE state is 250. +// +// For tables with secondary indexes, only one of those tables can be in the +// CREATING state at any point in time. Do not attempt to create more than one +// such table simultaneously. // // The total limit of tables in the ACTIVE state is 250. // @@ -2890,12 +2952,21 @@ func (c *DynamoDB) UntagResourceRequest(input *UntagResourceInput) (req *request // // Returned Error Codes: // * ErrCodeLimitExceededException "LimitExceededException" -// The number of concurrent table requests (cumulative number of tables in the -// CREATING, DELETING or UPDATING state) exceeds the maximum allowed of 10. +// Up to 50 CreateBackup operations are allowed per second, per account. There +// is no limit to the number of daily on-demand backups that can be taken. // -// Also, for tables with secondary indexes, only one of those tables can be -// in the CREATING state at any point in time. Do not attempt to create more -// than one such table simultaneously. +// Up to 10 simultaneous table operations are allowed per account. These operations +// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, and RestoreTableFromBackup. +// +// For tables with secondary indexes, only one of those tables can be in the +// CREATING state at any point in time. Do not attempt to create more than one +// such table simultaneously. +// +// The total limit of tables in the ACTIVE state is 250. +// +// For tables with secondary indexes, only one of those tables can be in the +// CREATING state at any point in time. Do not attempt to create more than one +// such table simultaneously. // // The total limit of tables in the ACTIVE state is 250. // @@ -2977,9 +3048,15 @@ func (c *DynamoDB) UpdateGlobalTableRequest(input *UpdateGlobalTableInput) (req // UpdateGlobalTable API operation for Amazon DynamoDB. // -// Adds or removes replicas to the specified global table. The global table -// should already exist to be able to use this operation. Currently, the replica -// to be added should be empty. +// Adds or removes replicas in the specified global table. The global table +// must already exist to be able to use this operation. Any replica to be added +// must be empty, must have the same name as the global table, must have the +// same key schema, must have DynamoDB Streams enabled, and cannot have any +// local secondary indexes (LSIs). +// +// Although you can use UpdateGlobalTable to add replicas and remove replicas +// in a single request, for simplicity we recommend that you issue separate +// requests for adding or removing replicas. // // 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 @@ -3213,12 +3290,21 @@ func (c *DynamoDB) UpdateTableRequest(input *UpdateTableInput) (req *request.Req // might not be specified correctly, or its status might not be ACTIVE. // // * ErrCodeLimitExceededException "LimitExceededException" -// The number of concurrent table requests (cumulative number of tables in the -// CREATING, DELETING or UPDATING state) exceeds the maximum allowed of 10. +// Up to 50 CreateBackup operations are allowed per second, per account. There +// is no limit to the number of daily on-demand backups that can be taken. // -// Also, for tables with secondary indexes, only one of those tables can be -// in the CREATING state at any point in time. Do not attempt to create more -// than one such table simultaneously. +// Up to 10 simultaneous table operations are allowed per account. These operations +// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, and RestoreTableFromBackup. +// +// For tables with secondary indexes, only one of those tables can be in the +// CREATING state at any point in time. Do not attempt to create more than one +// such table simultaneously. +// +// The total limit of tables in the ACTIVE state is 250. +// +// For tables with secondary indexes, only one of those tables can be in the +// CREATING state at any point in time. Do not attempt to create more than one +// such table simultaneously. // // The total limit of tables in the ACTIVE state is 250. // @@ -3338,12 +3424,21 @@ func (c *DynamoDB) UpdateTimeToLiveRequest(input *UpdateTimeToLiveInput) (req *r // might not be specified correctly, or its status might not be ACTIVE. // // * ErrCodeLimitExceededException "LimitExceededException" -// The number of concurrent table requests (cumulative number of tables in the -// CREATING, DELETING or UPDATING state) exceeds the maximum allowed of 10. +// Up to 50 CreateBackup operations are allowed per second, per account. There +// is no limit to the number of daily on-demand backups that can be taken. // -// Also, for tables with secondary indexes, only one of those tables can be -// in the CREATING state at any point in time. Do not attempt to create more -// than one such table simultaneously. +// Up to 10 simultaneous table operations are allowed per account. These operations +// include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, and RestoreTableFromBackup. +// +// For tables with secondary indexes, only one of those tables can be in the +// CREATING state at any point in time. Do not attempt to create more than one +// such table simultaneously. +// +// The total limit of tables in the ACTIVE state is 250. +// +// For tables with secondary indexes, only one of those tables can be in the +// CREATING state at any point in time. Do not attempt to create more than one +// such table simultaneously. // // The total limit of tables in the ACTIVE state is 250. // @@ -3373,7 +3468,6 @@ func (c *DynamoDB) UpdateTimeToLiveWithContext(ctx aws.Context, input *UpdateTim } // Represents an attribute for describing the key schema for the table and indexes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/AttributeDefinition type AttributeDefinition struct { _ struct{} `type:"structure"` @@ -3442,7 +3536,6 @@ func (s *AttributeDefinition) SetAttributeType(v string) *AttributeDefinition { // // For more information, see Data Types (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes) // in the Amazon DynamoDB Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/AttributeValue type AttributeValue struct { _ struct{} `type:"structure"` @@ -3587,7 +3680,6 @@ func (s *AttributeValue) SetSS(v []*string) *AttributeValue { // Attribute values cannot be null; string and binary type attributes must have // lengths greater than zero; and set type attributes must not be empty. Requests // with empty values will be rejected with a ValidationException exception. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/AttributeValueUpdate type AttributeValueUpdate struct { _ struct{} `type:"structure"` @@ -3661,7 +3753,7 @@ type AttributeValueUpdate struct { // Each attribute value is described as a name-value pair. The name is the data // type, and the value is the data itself. // - // For more information, see Data TYpes (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes) + // For more information, see Data Types (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes) // in the Amazon DynamoDB Developer Guide. Value *AttributeValue `type:"structure"` } @@ -3689,7 +3781,6 @@ func (s *AttributeValueUpdate) SetValue(v *AttributeValue) *AttributeValueUpdate } // Contains the description of the backup created for the table. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/BackupDescription type BackupDescription struct { _ struct{} `type:"structure"` @@ -3733,7 +3824,6 @@ func (s *BackupDescription) SetSourceTableFeatureDetails(v *SourceTableFeatureDe } // Contains the details of the backup created for the table. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/BackupDetails type BackupDetails struct { _ struct{} `type:"structure"` @@ -3802,7 +3892,6 @@ func (s *BackupDetails) SetBackupStatus(v string) *BackupDetails { } // Contains details for the backup. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/BackupSummary type BackupSummary struct { _ struct{} `type:"structure"` @@ -3890,7 +3979,6 @@ func (s *BackupSummary) SetTableName(v string) *BackupSummary { } // Represents the input of a BatchGetItem operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/BatchGetItemInput type BatchGetItemInput struct { _ struct{} `type:"structure"` @@ -4031,7 +4119,6 @@ func (s *BatchGetItemInput) SetReturnConsumedCapacity(v string) *BatchGetItemInp } // Represents the output of a BatchGetItem operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/BatchGetItemOutput type BatchGetItemOutput struct { _ struct{} `type:"structure"` @@ -4101,7 +4188,6 @@ func (s *BatchGetItemOutput) SetUnprocessedKeys(v map[string]*KeysAndAttributes) } // Represents the input of a BatchWriteItem operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/BatchWriteItemInput type BatchWriteItemInput struct { _ struct{} `type:"structure"` @@ -4204,7 +4290,6 @@ func (s *BatchWriteItemInput) SetReturnItemCollectionMetrics(v string) *BatchWri } // Represents the output of a BatchWriteItem operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/BatchWriteItemOutput type BatchWriteItemOutput struct { _ struct{} `type:"structure"` @@ -4300,7 +4385,6 @@ func (s *BatchWriteItemOutput) SetUnprocessedItems(v map[string][]*WriteRequest) // Represents the amount of provisioned throughput capacity consumed on a table // or an index. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/Capacity type Capacity struct { _ struct{} `type:"structure"` @@ -4337,7 +4421,6 @@ func (s *Capacity) SetCapacityUnits(v float64) *Capacity { // // * For a Scan operation, Condition is used in a ScanFilter, which evaluates // the scan results and returns only the desired values. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/Condition type Condition struct { _ struct{} `type:"structure"` @@ -4442,7 +4525,6 @@ func (s *Condition) SetComparisonOperator(v string) *Condition { // if the request asked for it. For more information, see Provisioned Throughput // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ProvisionedThroughputIntro.html) // in the Amazon DynamoDB Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ConsumedCapacity type ConsumedCapacity struct { _ struct{} `type:"structure"` @@ -4504,7 +4586,6 @@ func (s *ConsumedCapacity) SetTableName(v string) *ConsumedCapacity { // Represents the backup and restore settings on the table when the backup was // created. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ContinuousBackupsDescription type ContinuousBackupsDescription struct { _ struct{} `type:"structure"` @@ -4530,7 +4611,6 @@ func (s *ContinuousBackupsDescription) SetContinuousBackupsStatus(v string) *Con return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateBackupInput type CreateBackupInput struct { _ struct{} `type:"structure"` @@ -4589,7 +4669,6 @@ func (s *CreateBackupInput) SetTableName(v string) *CreateBackupInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateBackupOutput type CreateBackupOutput struct { _ struct{} `type:"structure"` @@ -4614,7 +4693,6 @@ func (s *CreateBackupOutput) SetBackupDetails(v *BackupDetails) *CreateBackupOut } // Represents a new global secondary index to be added to an existing table. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateGlobalSecondaryIndexAction type CreateGlobalSecondaryIndexAction struct { _ struct{} `type:"structure"` @@ -4728,7 +4806,6 @@ func (s *CreateGlobalSecondaryIndexAction) SetProvisionedThroughput(v *Provision return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateGlobalTableInput type CreateGlobalTableInput struct { _ struct{} `type:"structure"` @@ -4784,7 +4861,6 @@ func (s *CreateGlobalTableInput) SetReplicationGroup(v []*Replica) *CreateGlobal return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateGlobalTableOutput type CreateGlobalTableOutput struct { _ struct{} `type:"structure"` @@ -4809,7 +4885,6 @@ func (s *CreateGlobalTableOutput) SetGlobalTableDescription(v *GlobalTableDescri } // Represents a replica to be added. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateReplicaAction type CreateReplicaAction struct { _ struct{} `type:"structure"` @@ -4849,7 +4924,6 @@ func (s *CreateReplicaAction) SetRegionName(v string) *CreateReplicaAction { } // Represents the input of a CreateTable operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateTableInput type CreateTableInput struct { _ struct{} `type:"structure"` @@ -4971,6 +5045,9 @@ type CreateTableInput struct { // ProvisionedThroughput is a required field ProvisionedThroughput *ProvisionedThroughput `type:"structure" required:"true"` + // Represents the settings used to enable server-side encryption. + SSESpecification *SSESpecification `type:"structure"` + // The settings for DynamoDB Streams on the table. These settings consist of: // // * StreamEnabled - Indicates whether Streams is to be enabled (true) or @@ -5075,6 +5152,11 @@ func (s *CreateTableInput) Validate() error { invalidParams.AddNested("ProvisionedThroughput", err.(request.ErrInvalidParams)) } } + if s.SSESpecification != nil { + if err := s.SSESpecification.Validate(); err != nil { + invalidParams.AddNested("SSESpecification", err.(request.ErrInvalidParams)) + } + } if invalidParams.Len() > 0 { return invalidParams @@ -5112,6 +5194,12 @@ func (s *CreateTableInput) SetProvisionedThroughput(v *ProvisionedThroughput) *C return s } +// SetSSESpecification sets the SSESpecification field's value. +func (s *CreateTableInput) SetSSESpecification(v *SSESpecification) *CreateTableInput { + s.SSESpecification = v + return s +} + // SetStreamSpecification sets the StreamSpecification field's value. func (s *CreateTableInput) SetStreamSpecification(v *StreamSpecification) *CreateTableInput { s.StreamSpecification = v @@ -5125,7 +5213,6 @@ func (s *CreateTableInput) SetTableName(v string) *CreateTableInput { } // Represents the output of a CreateTable operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateTableOutput type CreateTableOutput struct { _ struct{} `type:"structure"` @@ -5149,7 +5236,6 @@ func (s *CreateTableOutput) SetTableDescription(v *TableDescription) *CreateTabl return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteBackupInput type DeleteBackupInput struct { _ struct{} `type:"structure"` @@ -5191,7 +5277,6 @@ func (s *DeleteBackupInput) SetBackupArn(v string) *DeleteBackupInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteBackupOutput type DeleteBackupOutput struct { _ struct{} `type:"structure"` @@ -5216,7 +5301,6 @@ func (s *DeleteBackupOutput) SetBackupDescription(v *BackupDescription) *DeleteB } // Represents a global secondary index to be deleted from an existing table. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteGlobalSecondaryIndexAction type DeleteGlobalSecondaryIndexAction struct { _ struct{} `type:"structure"` @@ -5259,7 +5343,6 @@ func (s *DeleteGlobalSecondaryIndexAction) SetIndexName(v string) *DeleteGlobalS } // Represents the input of a DeleteItem operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteItemInput type DeleteItemInput struct { _ struct{} `type:"structure"` @@ -5493,7 +5576,6 @@ func (s *DeleteItemInput) SetTableName(v string) *DeleteItemInput { } // Represents the output of a DeleteItem operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteItemOutput type DeleteItemOutput struct { _ struct{} `type:"structure"` @@ -5561,7 +5643,6 @@ func (s *DeleteItemOutput) SetItemCollectionMetrics(v *ItemCollectionMetrics) *D } // Represents a replica to be removed. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteReplicaAction type DeleteReplicaAction struct { _ struct{} `type:"structure"` @@ -5601,7 +5682,6 @@ func (s *DeleteReplicaAction) SetRegionName(v string) *DeleteReplicaAction { } // Represents a request to perform a DeleteItem operation on an item. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteRequest type DeleteRequest struct { _ struct{} `type:"structure"` @@ -5630,7 +5710,6 @@ func (s *DeleteRequest) SetKey(v map[string]*AttributeValue) *DeleteRequest { } // Represents the input of a DeleteTable operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteTableInput type DeleteTableInput struct { _ struct{} `type:"structure"` @@ -5673,7 +5752,6 @@ func (s *DeleteTableInput) SetTableName(v string) *DeleteTableInput { } // Represents the output of a DeleteTable operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DeleteTableOutput type DeleteTableOutput struct { _ struct{} `type:"structure"` @@ -5697,7 +5775,6 @@ func (s *DeleteTableOutput) SetTableDescription(v *TableDescription) *DeleteTabl return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeBackupInput type DescribeBackupInput struct { _ struct{} `type:"structure"` @@ -5739,7 +5816,6 @@ func (s *DescribeBackupInput) SetBackupArn(v string) *DescribeBackupInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeBackupOutput type DescribeBackupOutput struct { _ struct{} `type:"structure"` @@ -5763,7 +5839,6 @@ func (s *DescribeBackupOutput) SetBackupDescription(v *BackupDescription) *Descr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeContinuousBackupsInput type DescribeContinuousBackupsInput struct { _ struct{} `type:"structure"` @@ -5806,7 +5881,6 @@ func (s *DescribeContinuousBackupsInput) SetTableName(v string) *DescribeContinu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeContinuousBackupsOutput type DescribeContinuousBackupsOutput struct { _ struct{} `type:"structure"` @@ -5830,7 +5904,6 @@ func (s *DescribeContinuousBackupsOutput) SetContinuousBackupsDescription(v *Con return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeGlobalTableInput type DescribeGlobalTableInput struct { _ struct{} `type:"structure"` @@ -5872,7 +5945,6 @@ func (s *DescribeGlobalTableInput) SetGlobalTableName(v string) *DescribeGlobalT return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeGlobalTableOutput type DescribeGlobalTableOutput struct { _ struct{} `type:"structure"` @@ -5897,7 +5969,6 @@ func (s *DescribeGlobalTableOutput) SetGlobalTableDescription(v *GlobalTableDesc } // Represents the input of a DescribeLimits operation. Has no content. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeLimitsInput type DescribeLimitsInput struct { _ struct{} `type:"structure"` } @@ -5913,7 +5984,6 @@ func (s DescribeLimitsInput) GoString() string { } // Represents the output of a DescribeLimits operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeLimitsOutput type DescribeLimitsOutput struct { _ struct{} `type:"structure"` @@ -5971,7 +6041,6 @@ func (s *DescribeLimitsOutput) SetTableMaxWriteCapacityUnits(v int64) *DescribeL } // Represents the input of a DescribeTable operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeTableInput type DescribeTableInput struct { _ struct{} `type:"structure"` @@ -6014,7 +6083,6 @@ func (s *DescribeTableInput) SetTableName(v string) *DescribeTableInput { } // Represents the output of a DescribeTable operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeTableOutput type DescribeTableOutput struct { _ struct{} `type:"structure"` @@ -6038,7 +6106,6 @@ func (s *DescribeTableOutput) SetTable(v *TableDescription) *DescribeTableOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeTimeToLiveInput type DescribeTimeToLiveInput struct { _ struct{} `type:"structure"` @@ -6080,7 +6147,6 @@ func (s *DescribeTimeToLiveInput) SetTableName(v string) *DescribeTimeToLiveInpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/DescribeTimeToLiveOutput type DescribeTimeToLiveOutput struct { _ struct{} `type:"structure"` @@ -6124,7 +6190,6 @@ func (s *DescribeTimeToLiveOutput) SetTimeToLiveDescription(v *TimeToLiveDescrip // Value and Exists are incompatible with AttributeValueList and ComparisonOperator. // Note that if you use both sets of parameters at once, DynamoDB will return // a ValidationException exception. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ExpectedAttributeValue type ExpectedAttributeValue struct { _ struct{} `type:"structure"` @@ -6257,7 +6322,6 @@ func (s *ExpectedAttributeValue) SetValue(v *AttributeValue) *ExpectedAttributeV } // Represents the input of a GetItem operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/GetItemInput type GetItemInput struct { _ struct{} `type:"structure"` @@ -6429,7 +6493,6 @@ func (s *GetItemInput) SetTableName(v string) *GetItemInput { } // Represents the output of a GetItem operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/GetItemOutput type GetItemOutput struct { _ struct{} `type:"structure"` @@ -6468,7 +6531,6 @@ func (s *GetItemOutput) SetItem(v map[string]*AttributeValue) *GetItemOutput { } // Represents the properties of a global secondary index. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/GlobalSecondaryIndex type GlobalSecondaryIndex struct { _ struct{} `type:"structure"` @@ -6598,7 +6660,6 @@ func (s *GlobalSecondaryIndex) SetProvisionedThroughput(v *ProvisionedThroughput } // Represents the properties of a global secondary index. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/GlobalSecondaryIndexDescription type GlobalSecondaryIndexDescription struct { _ struct{} `type:"structure"` @@ -6736,7 +6797,6 @@ func (s *GlobalSecondaryIndexDescription) SetProvisionedThroughput(v *Provisione // Represents the properties of a global secondary index for the table when // the backup was created. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/GlobalSecondaryIndexInfo type GlobalSecondaryIndexInfo struct { _ struct{} `type:"structure"` @@ -6812,7 +6872,6 @@ func (s *GlobalSecondaryIndexInfo) SetProvisionedThroughput(v *ProvisionedThroug // index. // // * An existing global secondary index to be removed from an existing table. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/GlobalSecondaryIndexUpdate type GlobalSecondaryIndexUpdate struct { _ struct{} `type:"structure"` @@ -6892,7 +6951,6 @@ func (s *GlobalSecondaryIndexUpdate) SetUpdate(v *UpdateGlobalSecondaryIndexActi } // Represents the properties of a global table. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/GlobalTable type GlobalTable struct { _ struct{} `type:"structure"` @@ -6926,7 +6984,6 @@ func (s *GlobalTable) SetReplicationGroup(v []*Replica) *GlobalTable { } // Contains details about the global table. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/GlobalTableDescription type GlobalTableDescription struct { _ struct{} `type:"structure"` @@ -6998,7 +7055,6 @@ func (s *GlobalTableDescription) SetReplicationGroup(v []*ReplicaDescription) *G // ItemCollectionMetrics is only returned if the request asked for it. If the // table does not have any local secondary indexes, this information is not // returned in the response. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ItemCollectionMetrics type ItemCollectionMetrics struct { _ struct{} `type:"structure"` @@ -7051,7 +7107,6 @@ func (s *ItemCollectionMetrics) SetSizeEstimateRangeGB(v []*float64) *ItemCollec // A KeySchemaElement must be a scalar, top-level attribute (not a nested attribute). // The data type must be one of String, Number, or Binary. The attribute cannot // be nested within a List or a Map. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/KeySchemaElement type KeySchemaElement struct { _ struct{} `type:"structure"` @@ -7127,7 +7182,6 @@ func (s *KeySchemaElement) SetKeyType(v string) *KeySchemaElement { // with a simple primary key, you only need to provide the partition key. For // a composite primary key, you must provide both the partition key and the // sort key. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/KeysAndAttributes type KeysAndAttributes struct { _ struct{} `type:"structure"` @@ -7255,7 +7309,6 @@ func (s *KeysAndAttributes) SetProjectionExpression(v string) *KeysAndAttributes return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListBackupsInput type ListBackupsInput struct { _ struct{} `type:"structure"` @@ -7335,7 +7388,6 @@ func (s *ListBackupsInput) SetTimeRangeUpperBound(v time.Time) *ListBackupsInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListBackupsOutput type ListBackupsOutput struct { _ struct{} `type:"structure"` @@ -7368,7 +7420,6 @@ func (s *ListBackupsOutput) SetLastEvaluatedBackupArn(v string) *ListBackupsOutp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListGlobalTablesInput type ListGlobalTablesInput struct { _ struct{} `type:"structure"` @@ -7426,7 +7477,6 @@ func (s *ListGlobalTablesInput) SetRegionName(v string) *ListGlobalTablesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListGlobalTablesOutput type ListGlobalTablesOutput struct { _ struct{} `type:"structure"` @@ -7460,7 +7510,6 @@ func (s *ListGlobalTablesOutput) SetLastEvaluatedGlobalTableName(v string) *List } // Represents the input of a ListTables operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListTablesInput type ListTablesInput struct { _ struct{} `type:"structure"` @@ -7513,7 +7562,6 @@ func (s *ListTablesInput) SetLimit(v int64) *ListTablesInput { } // Represents the output of a ListTables operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListTablesOutput type ListTablesOutput struct { _ struct{} `type:"structure"` @@ -7556,7 +7604,6 @@ func (s *ListTablesOutput) SetTableNames(v []*string) *ListTablesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListTagsOfResourceInput type ListTagsOfResourceInput struct { _ struct{} `type:"structure"` @@ -7610,7 +7657,6 @@ func (s *ListTagsOfResourceInput) SetResourceArn(v string) *ListTagsOfResourceIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ListTagsOfResourceOutput type ListTagsOfResourceOutput struct { _ struct{} `type:"structure"` @@ -7646,7 +7692,6 @@ func (s *ListTagsOfResourceOutput) SetTags(v []*Tag) *ListTagsOfResourceOutput { } // Represents the properties of a local secondary index. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/LocalSecondaryIndex type LocalSecondaryIndex struct { _ struct{} `type:"structure"` @@ -7752,7 +7797,6 @@ func (s *LocalSecondaryIndex) SetProjection(v *Projection) *LocalSecondaryIndex } // Represents the properties of a local secondary index. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/LocalSecondaryIndexDescription type LocalSecondaryIndexDescription struct { _ struct{} `type:"structure"` @@ -7842,7 +7886,6 @@ func (s *LocalSecondaryIndexDescription) SetProjection(v *Projection) *LocalSeco // Represents the properties of a local secondary index for the table when the // backup was created. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/LocalSecondaryIndexInfo type LocalSecondaryIndexInfo struct { _ struct{} `type:"structure"` @@ -7903,7 +7946,6 @@ func (s *LocalSecondaryIndexInfo) SetProjection(v *Projection) *LocalSecondaryIn // Represents attributes that are copied (projected) from the table into an // index. These are in addition to the primary key attributes and index key // attributes, which are automatically projected. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/Projection type Projection struct { _ struct{} `type:"structure"` @@ -7967,7 +8009,6 @@ func (s *Projection) SetProjectionType(v string) *Projection { // For current minimum and maximum provisioned throughput values, see Limits // (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) // in the Amazon DynamoDB Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ProvisionedThroughput type ProvisionedThroughput struct { _ struct{} `type:"structure"` @@ -8034,7 +8075,6 @@ func (s *ProvisionedThroughput) SetWriteCapacityUnits(v int64) *ProvisionedThrou // Represents the provisioned throughput settings for the table, consisting // of read and write capacity units, along with data about increases and decreases. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ProvisionedThroughputDescription type ProvisionedThroughputDescription struct { _ struct{} `type:"structure"` @@ -8102,7 +8142,6 @@ func (s *ProvisionedThroughputDescription) SetWriteCapacityUnits(v int64) *Provi } // Represents the input of a PutItem operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/PutItemInput type PutItemInput struct { _ struct{} `type:"structure"` @@ -8348,7 +8387,6 @@ func (s *PutItemInput) SetTableName(v string) *PutItemInput { } // Represents the output of a PutItem operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/PutItemOutput type PutItemOutput struct { _ struct{} `type:"structure"` @@ -8416,7 +8454,6 @@ func (s *PutItemOutput) SetItemCollectionMetrics(v *ItemCollectionMetrics) *PutI } // Represents a request to perform a PutItem operation on an item. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/PutRequest type PutRequest struct { _ struct{} `type:"structure"` @@ -8447,7 +8484,6 @@ func (s *PutRequest) SetItem(v map[string]*AttributeValue) *PutRequest { } // Represents the input of a Query operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/QueryInput type QueryInput struct { _ struct{} `type:"structure"` @@ -8559,10 +8595,11 @@ type QueryInput struct { // the Query action. // // The condition must perform an equality test on a single partition key value. - // The condition can also perform one of several comparison tests on a single - // sort key value. Query can use KeyConditionExpression to retrieve one item - // with a given partition key value and sort key value, or several items that - // have the same partition key value but different sort key values. + // + // The condition can optionally perform one of several comparison tests on a + // single sort key value. This allows Query to retrieve one item with a given + // partition key value and sort key value, or several items that have the same + // partition key value but different sort key values. // // The partition key equality test is required, and must be specified in the // following format: @@ -8900,7 +8937,6 @@ func (s *QueryInput) SetTableName(v string) *QueryInput { } // Represents the output of a Query operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/QueryOutput type QueryOutput struct { _ struct{} `type:"structure"` @@ -8989,7 +9025,6 @@ func (s *QueryOutput) SetScannedCount(v int64) *QueryOutput { } // Represents the properties of a replica. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/Replica type Replica struct { _ struct{} `type:"structure"` @@ -9014,7 +9049,6 @@ func (s *Replica) SetRegionName(v string) *Replica { } // Contains the details of the replica. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ReplicaDescription type ReplicaDescription struct { _ struct{} `type:"structure"` @@ -9045,7 +9079,6 @@ func (s *ReplicaDescription) SetRegionName(v string) *ReplicaDescription { // * New parameters for an existing replica. // // * An existing replica to be removed from an existing global table. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ReplicaUpdate type ReplicaUpdate struct { _ struct{} `type:"structure"` @@ -9099,7 +9132,6 @@ func (s *ReplicaUpdate) SetDelete(v *DeleteReplicaAction) *ReplicaUpdate { } // Contains details for the restore. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/RestoreSummary type RestoreSummary struct { _ struct{} `type:"structure"` @@ -9154,7 +9186,6 @@ func (s *RestoreSummary) SetSourceTableArn(v string) *RestoreSummary { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/RestoreTableFromBackupInput type RestoreTableFromBackupInput struct { _ struct{} `type:"structure"` @@ -9213,7 +9244,6 @@ func (s *RestoreTableFromBackupInput) SetTargetTableName(v string) *RestoreTable return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/RestoreTableFromBackupOutput type RestoreTableFromBackupOutput struct { _ struct{} `type:"structure"` @@ -9237,8 +9267,79 @@ func (s *RestoreTableFromBackupOutput) SetTableDescription(v *TableDescription) return s } +// The description of the server-side encryption status on the specified table. +type SSEDescription struct { + _ struct{} `type:"structure"` + + // The current state of server-side encryption: + // + // * ENABLING - Server-side encryption is being enabled. + // + // * ENABLED - Server-side encryption is enabled. + // + // * DISABLING - Server-side encryption is being disabled. + // + // * DISABLED - Server-side encryption is disabled. + Status *string `type:"string" enum:"SSEStatus"` +} + +// String returns the string representation +func (s SSEDescription) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SSEDescription) GoString() string { + return s.String() +} + +// SetStatus sets the Status field's value. +func (s *SSEDescription) SetStatus(v string) *SSEDescription { + s.Status = &v + return s +} + +// Represents the settings used to enable server-side encryption. +type SSESpecification struct { + _ struct{} `type:"structure"` + + // Indicates whether server-side encryption is enabled (true) or disabled (false) + // on the table. + // + // Enabled is a required field + Enabled *bool `type:"boolean" required:"true"` +} + +// String returns the string representation +func (s SSESpecification) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SSESpecification) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SSESpecification) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "SSESpecification"} + if s.Enabled == nil { + invalidParams.Add(request.NewErrParamRequired("Enabled")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetEnabled sets the Enabled field's value. +func (s *SSESpecification) SetEnabled(v bool) *SSESpecification { + s.Enabled = &v + return s +} + // Represents the input of a Scan operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ScanInput type ScanInput struct { _ struct{} `type:"structure"` @@ -9629,7 +9730,6 @@ func (s *ScanInput) SetTotalSegments(v int64) *ScanInput { } // Represents the output of a Scan operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/ScanOutput type ScanOutput struct { _ struct{} `type:"structure"` @@ -9717,7 +9817,6 @@ func (s *ScanOutput) SetScannedCount(v int64) *ScanOutput { } // Contains the details of the table when the backup was created. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/SourceTableDetails type SourceTableDetails struct { _ struct{} `type:"structure"` @@ -9816,7 +9915,6 @@ func (s *SourceTableDetails) SetTableSizeBytes(v int64) *SourceTableDetails { // Contains the details of the features enabled on the table when the backup // was created. For example, LSIs, GSIs, streams, TTL. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/SourceTableFeatureDetails type SourceTableFeatureDetails struct { _ struct{} `type:"structure"` @@ -9830,6 +9928,10 @@ type SourceTableFeatureDetails struct { // at the time of backup. LocalSecondaryIndexes []*LocalSecondaryIndexInfo `type:"list"` + // The description of the server-side encryption status on the table when the + // backup was created. + SSEDescription *SSEDescription `type:"structure"` + // Stream settings on the table when the backup was created. StreamDescription *StreamSpecification `type:"structure"` @@ -9859,6 +9961,12 @@ func (s *SourceTableFeatureDetails) SetLocalSecondaryIndexes(v []*LocalSecondary return s } +// SetSSEDescription sets the SSEDescription field's value. +func (s *SourceTableFeatureDetails) SetSSEDescription(v *SSEDescription) *SourceTableFeatureDetails { + s.SSEDescription = v + return s +} + // SetStreamDescription sets the StreamDescription field's value. func (s *SourceTableFeatureDetails) SetStreamDescription(v *StreamSpecification) *SourceTableFeatureDetails { s.StreamDescription = v @@ -9872,7 +9980,6 @@ func (s *SourceTableFeatureDetails) SetTimeToLiveDescription(v *TimeToLiveDescri } // Represents the DynamoDB Streams configuration for a table in DynamoDB. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/StreamSpecification type StreamSpecification struct { _ struct{} `type:"structure"` @@ -9921,7 +10028,6 @@ func (s *StreamSpecification) SetStreamViewType(v string) *StreamSpecification { } // Represents the properties of a table. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/TableDescription type TableDescription struct { _ struct{} `type:"structure"` @@ -10096,6 +10202,9 @@ type TableDescription struct { // Contains details for the restore. RestoreSummary *RestoreSummary `type:"structure"` + // The description of the server-side encryption status on the specified table. + SSEDescription *SSEDescription `type:"structure"` + // The current DynamoDB Streams configuration for the table. StreamSpecification *StreamSpecification `type:"structure"` @@ -10195,6 +10304,12 @@ func (s *TableDescription) SetRestoreSummary(v *RestoreSummary) *TableDescriptio return s } +// SetSSEDescription sets the SSEDescription field's value. +func (s *TableDescription) SetSSEDescription(v *SSEDescription) *TableDescription { + s.SSEDescription = v + return s +} + // SetStreamSpecification sets the StreamSpecification field's value. func (s *TableDescription) SetStreamSpecification(v *StreamSpecification) *TableDescription { s.StreamSpecification = v @@ -10241,7 +10356,6 @@ func (s *TableDescription) SetTableStatus(v string) *TableDescription { // // For an overview on tagging DynamoDB resources, see Tagging for DynamoDB (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html) // in the Amazon DynamoDB Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/Tag type Tag struct { _ struct{} `type:"structure"` @@ -10299,7 +10413,6 @@ func (s *Tag) SetValue(v string) *Tag { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/TagResourceInput type TagResourceInput struct { _ struct{} `type:"structure"` @@ -10366,7 +10479,6 @@ func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/TagResourceOutput type TagResourceOutput struct { _ struct{} `type:"structure"` } @@ -10382,7 +10494,6 @@ func (s TagResourceOutput) GoString() string { } // The description of the Time to Live (TTL) status on the specified table. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/TimeToLiveDescription type TimeToLiveDescription struct { _ struct{} `type:"structure"` @@ -10417,7 +10528,6 @@ func (s *TimeToLiveDescription) SetTimeToLiveStatus(v string) *TimeToLiveDescrip // Represents the settings used to enable or disable Time to Live for the specified // table. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/TimeToLiveSpecification type TimeToLiveSpecification struct { _ struct{} `type:"structure"` @@ -10475,7 +10585,6 @@ func (s *TimeToLiveSpecification) SetEnabled(v bool) *TimeToLiveSpecification { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UntagResourceInput type UntagResourceInput struct { _ struct{} `type:"structure"` @@ -10533,7 +10642,6 @@ func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UntagResourceOutput type UntagResourceOutput struct { _ struct{} `type:"structure"` } @@ -10550,7 +10658,6 @@ func (s UntagResourceOutput) GoString() string { // Represents the new provisioned throughput settings to be applied to a global // secondary index. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateGlobalSecondaryIndexAction type UpdateGlobalSecondaryIndexAction struct { _ struct{} `type:"structure"` @@ -10616,7 +10723,6 @@ func (s *UpdateGlobalSecondaryIndexAction) SetProvisionedThroughput(v *Provision return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateGlobalTableInput type UpdateGlobalTableInput struct { _ struct{} `type:"structure"` @@ -10682,7 +10788,6 @@ func (s *UpdateGlobalTableInput) SetReplicaUpdates(v []*ReplicaUpdate) *UpdateGl return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateGlobalTableOutput type UpdateGlobalTableOutput struct { _ struct{} `type:"structure"` @@ -10707,7 +10812,6 @@ func (s *UpdateGlobalTableOutput) SetGlobalTableDescription(v *GlobalTableDescri } // Represents the input of an UpdateItem operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateItemInput type UpdateItemInput struct { _ struct{} `type:"structure"` @@ -11045,7 +11149,6 @@ func (s *UpdateItemInput) SetUpdateExpression(v string) *UpdateItemInput { } // Represents the output of an UpdateItem operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateItemOutput type UpdateItemOutput struct { _ struct{} `type:"structure"` @@ -11115,7 +11218,6 @@ func (s *UpdateItemOutput) SetItemCollectionMetrics(v *ItemCollectionMetrics) *U } // Represents the input of an UpdateTable operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateTableInput type UpdateTableInput struct { _ struct{} `type:"structure"` @@ -11236,7 +11338,6 @@ func (s *UpdateTableInput) SetTableName(v string) *UpdateTableInput { } // Represents the output of an UpdateTable operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateTableOutput type UpdateTableOutput struct { _ struct{} `type:"structure"` @@ -11261,7 +11362,6 @@ func (s *UpdateTableOutput) SetTableDescription(v *TableDescription) *UpdateTabl } // Represents the input of an UpdateTimeToLive operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateTimeToLiveInput type UpdateTimeToLiveInput struct { _ struct{} `type:"structure"` @@ -11323,7 +11423,6 @@ func (s *UpdateTimeToLiveInput) SetTimeToLiveSpecification(v *TimeToLiveSpecific return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateTimeToLiveOutput type UpdateTimeToLiveOutput struct { _ struct{} `type:"structure"` @@ -11351,7 +11450,6 @@ func (s *UpdateTimeToLiveOutput) SetTimeToLiveSpecification(v *TimeToLiveSpecifi // only request one of these operations, not both, in a single WriteRequest. // If you do need to perform both of these operations, you will need to provide // two separate WriteRequest objects. -// See also, https://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/WriteRequest type WriteRequest struct { _ struct{} `type:"structure"` @@ -11561,6 +11659,20 @@ const ( ReturnValueUpdatedNew = "UPDATED_NEW" ) +const ( + // SSEStatusEnabling is a SSEStatus enum value + SSEStatusEnabling = "ENABLING" + + // SSEStatusEnabled is a SSEStatus enum value + SSEStatusEnabled = "ENABLED" + + // SSEStatusDisabling is a SSEStatus enum value + SSEStatusDisabling = "DISABLING" + + // SSEStatusDisabled is a SSEStatus enum value + SSEStatusDisabled = "DISABLED" +) + const ( // ScalarAttributeTypeS is a ScalarAttributeType enum value ScalarAttributeTypeS = "S" diff --git a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/errors.go b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/errors.go index 41986cfd5..4f898d967 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/dynamodb/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/dynamodb/errors.go @@ -57,12 +57,21 @@ const ( // ErrCodeLimitExceededException for service response error code // "LimitExceededException". // - // The number of concurrent table requests (cumulative number of tables in the - // CREATING, DELETING or UPDATING state) exceeds the maximum allowed of 10. + // Up to 50 CreateBackup operations are allowed per second, per account. There + // is no limit to the number of daily on-demand backups that can be taken. // - // Also, for tables with secondary indexes, only one of those tables can be - // in the CREATING state at any point in time. Do not attempt to create more - // than one such table simultaneously. + // Up to 10 simultaneous table operations are allowed per account. These operations + // include CreateTable, UpdateTable, DeleteTable,UpdateTimeToLive, and RestoreTableFromBackup. + // + // For tables with secondary indexes, only one of those tables can be in the + // CREATING state at any point in time. Do not attempt to create more than one + // such table simultaneously. + // + // The total limit of tables in the ACTIVE state is 250. + // + // For tables with secondary indexes, only one of those tables can be in the + // CREATING state at any point in time. Do not attempt to create more than one + // such table simultaneously. // // The total limit of tables in the ACTIVE state is 250. ErrCodeLimitExceededException = "LimitExceededException" diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go b/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go index 1743b3449..3461bb96a 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go @@ -22266,7 +22266,6 @@ func (c *EC2) UpdateSecurityGroupRuleDescriptionsIngressWithContext(ctx aws.Cont } // Contains the parameters for accepting the quote. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptReservedInstancesExchangeQuoteRequest type AcceptReservedInstancesExchangeQuoteInput struct { _ struct{} `type:"structure"` @@ -22339,7 +22338,6 @@ func (s *AcceptReservedInstancesExchangeQuoteInput) SetTargetConfigurations(v [] } // The result of the exchange and whether it was successful. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptReservedInstancesExchangeQuoteResult type AcceptReservedInstancesExchangeQuoteOutput struct { _ struct{} `type:"structure"` @@ -22363,7 +22361,6 @@ func (s *AcceptReservedInstancesExchangeQuoteOutput) SetExchangeId(v string) *Ac return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptVpcEndpointConnectionsRequest type AcceptVpcEndpointConnectionsInput struct { _ struct{} `type:"structure"` @@ -22428,7 +22425,6 @@ func (s *AcceptVpcEndpointConnectionsInput) SetVpcEndpointIds(v []*string) *Acce return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptVpcEndpointConnectionsResult type AcceptVpcEndpointConnectionsOutput struct { _ struct{} `type:"structure"` @@ -22453,7 +22449,6 @@ func (s *AcceptVpcEndpointConnectionsOutput) SetUnsuccessful(v []*UnsuccessfulIt } // Contains the parameters for AcceptVpcPeeringConnection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptVpcPeeringConnectionRequest type AcceptVpcPeeringConnectionInput struct { _ struct{} `type:"structure"` @@ -22491,7 +22486,6 @@ func (s *AcceptVpcPeeringConnectionInput) SetVpcPeeringConnectionId(v string) *A } // Contains the output of AcceptVpcPeeringConnection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AcceptVpcPeeringConnectionResult type AcceptVpcPeeringConnectionOutput struct { _ struct{} `type:"structure"` @@ -22516,7 +22510,6 @@ func (s *AcceptVpcPeeringConnectionOutput) SetVpcPeeringConnection(v *VpcPeering } // Describes an account attribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AccountAttribute type AccountAttribute struct { _ struct{} `type:"structure"` @@ -22550,7 +22543,6 @@ func (s *AccountAttribute) SetAttributeValues(v []*AccountAttributeValue) *Accou } // Describes a value of an account attribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AccountAttributeValue type AccountAttributeValue struct { _ struct{} `type:"structure"` @@ -22575,7 +22567,6 @@ func (s *AccountAttributeValue) SetAttributeValue(v string) *AccountAttributeVal } // Describes a running instance in a Spot Fleet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ActiveInstance type ActiveInstance struct { _ struct{} `type:"structure"` @@ -22629,7 +22620,6 @@ func (s *ActiveInstance) SetSpotInstanceRequestId(v string) *ActiveInstance { } // Describes an Elastic IP address. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Address type Address struct { _ struct{} `type:"structure"` @@ -22728,7 +22718,6 @@ func (s *Address) SetTags(v []*Tag) *Address { } // Contains the parameters for AllocateAddress. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AllocateAddressRequest type AllocateAddressInput struct { _ struct{} `type:"structure"` @@ -22776,7 +22765,6 @@ func (s *AllocateAddressInput) SetDryRun(v bool) *AllocateAddressInput { } // Contains the output of AllocateAddress. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AllocateAddressResult type AllocateAddressOutput struct { _ struct{} `type:"structure"` @@ -22821,7 +22809,6 @@ func (s *AllocateAddressOutput) SetPublicIp(v string) *AllocateAddressOutput { } // Contains the parameters for AllocateHosts. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AllocateHostsRequest type AllocateHostsInput struct { _ struct{} `type:"structure"` @@ -22916,7 +22903,6 @@ func (s *AllocateHostsInput) SetQuantity(v int64) *AllocateHostsInput { } // Contains the output of AllocateHosts. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AllocateHostsResult type AllocateHostsOutput struct { _ struct{} `type:"structure"` @@ -22942,7 +22928,6 @@ func (s *AllocateHostsOutput) SetHostIds(v []*string) *AllocateHostsOutput { } // Describes a principal. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AllowedPrincipal type AllowedPrincipal struct { _ struct{} `type:"structure"` @@ -22975,7 +22960,6 @@ func (s *AllowedPrincipal) SetPrincipalType(v string) *AllowedPrincipal { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssignIpv6AddressesRequest type AssignIpv6AddressesInput struct { _ struct{} `type:"structure"` @@ -23035,7 +23019,6 @@ func (s *AssignIpv6AddressesInput) SetNetworkInterfaceId(v string) *AssignIpv6Ad return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssignIpv6AddressesResult type AssignIpv6AddressesOutput struct { _ struct{} `type:"structure"` @@ -23069,7 +23052,6 @@ func (s *AssignIpv6AddressesOutput) SetNetworkInterfaceId(v string) *AssignIpv6A } // Contains the parameters for AssignPrivateIpAddresses. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssignPrivateIpAddressesRequest type AssignPrivateIpAddressesInput struct { _ struct{} `type:"structure"` @@ -23142,7 +23124,6 @@ func (s *AssignPrivateIpAddressesInput) SetSecondaryPrivateIpAddressCount(v int6 return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssignPrivateIpAddressesOutput type AssignPrivateIpAddressesOutput struct { _ struct{} `type:"structure"` } @@ -23158,7 +23139,6 @@ func (s AssignPrivateIpAddressesOutput) GoString() string { } // Contains the parameters for AssociateAddress. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateAddressRequest type AssociateAddressInput struct { _ struct{} `type:"structure"` @@ -23251,7 +23231,6 @@ func (s *AssociateAddressInput) SetPublicIp(v string) *AssociateAddressInput { } // Contains the output of AssociateAddress. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateAddressResult type AssociateAddressOutput struct { _ struct{} `type:"structure"` @@ -23277,7 +23256,6 @@ func (s *AssociateAddressOutput) SetAssociationId(v string) *AssociateAddressOut } // Contains the parameters for AssociateDhcpOptions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateDhcpOptionsRequest type AssociateDhcpOptionsInput struct { _ struct{} `type:"structure"` @@ -23343,7 +23321,6 @@ func (s *AssociateDhcpOptionsInput) SetVpcId(v string) *AssociateDhcpOptionsInpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateDhcpOptionsOutput type AssociateDhcpOptionsOutput struct { _ struct{} `type:"structure"` } @@ -23358,7 +23335,6 @@ func (s AssociateDhcpOptionsOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateIamInstanceProfileRequest type AssociateIamInstanceProfileInput struct { _ struct{} `type:"structure"` @@ -23411,7 +23387,6 @@ func (s *AssociateIamInstanceProfileInput) SetInstanceId(v string) *AssociateIam return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateIamInstanceProfileResult type AssociateIamInstanceProfileOutput struct { _ struct{} `type:"structure"` @@ -23436,7 +23411,6 @@ func (s *AssociateIamInstanceProfileOutput) SetIamInstanceProfileAssociation(v * } // Contains the parameters for AssociateRouteTable. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateRouteTableRequest type AssociateRouteTableInput struct { _ struct{} `type:"structure"` @@ -23502,7 +23476,6 @@ func (s *AssociateRouteTableInput) SetSubnetId(v string) *AssociateRouteTableInp } // Contains the output of AssociateRouteTable. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateRouteTableResult type AssociateRouteTableOutput struct { _ struct{} `type:"structure"` @@ -23526,7 +23499,6 @@ func (s *AssociateRouteTableOutput) SetAssociationId(v string) *AssociateRouteTa return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateSubnetCidrBlockRequest type AssociateSubnetCidrBlockInput struct { _ struct{} `type:"structure"` @@ -23579,7 +23551,6 @@ func (s *AssociateSubnetCidrBlockInput) SetSubnetId(v string) *AssociateSubnetCi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateSubnetCidrBlockResult type AssociateSubnetCidrBlockOutput struct { _ struct{} `type:"structure"` @@ -23612,7 +23583,6 @@ func (s *AssociateSubnetCidrBlockOutput) SetSubnetId(v string) *AssociateSubnetC return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateVpcCidrBlockRequest type AssociateVpcCidrBlockInput struct { _ struct{} `type:"structure"` @@ -23671,7 +23641,6 @@ func (s *AssociateVpcCidrBlockInput) SetVpcId(v string) *AssociateVpcCidrBlockIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AssociateVpcCidrBlockResult type AssociateVpcCidrBlockOutput struct { _ struct{} `type:"structure"` @@ -23714,7 +23683,6 @@ func (s *AssociateVpcCidrBlockOutput) SetVpcId(v string) *AssociateVpcCidrBlockO } // Contains the parameters for AttachClassicLinkVpc. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachClassicLinkVpcRequest type AttachClassicLinkVpcInput struct { _ struct{} `type:"structure"` @@ -23795,7 +23763,6 @@ func (s *AttachClassicLinkVpcInput) SetVpcId(v string) *AttachClassicLinkVpcInpu } // Contains the output of AttachClassicLinkVpc. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachClassicLinkVpcResult type AttachClassicLinkVpcOutput struct { _ struct{} `type:"structure"` @@ -23820,7 +23787,6 @@ func (s *AttachClassicLinkVpcOutput) SetReturn(v bool) *AttachClassicLinkVpcOutp } // Contains the parameters for AttachInternetGateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachInternetGatewayRequest type AttachInternetGatewayInput struct { _ struct{} `type:"structure"` @@ -23885,7 +23851,6 @@ func (s *AttachInternetGatewayInput) SetVpcId(v string) *AttachInternetGatewayIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachInternetGatewayOutput type AttachInternetGatewayOutput struct { _ struct{} `type:"structure"` } @@ -23901,7 +23866,6 @@ func (s AttachInternetGatewayOutput) GoString() string { } // Contains the parameters for AttachNetworkInterface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachNetworkInterfaceRequest type AttachNetworkInterfaceInput struct { _ struct{} `type:"structure"` @@ -23981,7 +23945,6 @@ func (s *AttachNetworkInterfaceInput) SetNetworkInterfaceId(v string) *AttachNet } // Contains the output of AttachNetworkInterface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachNetworkInterfaceResult type AttachNetworkInterfaceOutput struct { _ struct{} `type:"structure"` @@ -24006,7 +23969,6 @@ func (s *AttachNetworkInterfaceOutput) SetAttachmentId(v string) *AttachNetworkI } // Contains the parameters for AttachVolume. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachVolumeRequest type AttachVolumeInput struct { _ struct{} `type:"structure"` @@ -24087,7 +24049,6 @@ func (s *AttachVolumeInput) SetVolumeId(v string) *AttachVolumeInput { } // Contains the parameters for AttachVpnGateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachVpnGatewayRequest type AttachVpnGatewayInput struct { _ struct{} `type:"structure"` @@ -24153,7 +24114,6 @@ func (s *AttachVpnGatewayInput) SetVpnGatewayId(v string) *AttachVpnGatewayInput } // Contains the output of AttachVpnGateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttachVpnGatewayResult type AttachVpnGatewayOutput struct { _ struct{} `type:"structure"` @@ -24178,7 +24138,6 @@ func (s *AttachVpnGatewayOutput) SetVpcAttachment(v *VpcAttachment) *AttachVpnGa } // Describes a value for a resource attribute that is a Boolean value. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttributeBooleanValue type AttributeBooleanValue struct { _ struct{} `type:"structure"` @@ -24203,7 +24162,6 @@ func (s *AttributeBooleanValue) SetValue(v bool) *AttributeBooleanValue { } // Describes a value for a resource attribute that is a String. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AttributeValue type AttributeValue struct { _ struct{} `type:"structure"` @@ -24228,7 +24186,6 @@ func (s *AttributeValue) SetValue(v string) *AttributeValue { } // Contains the parameters for AuthorizeSecurityGroupEgress. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AuthorizeSecurityGroupEgressRequest type AuthorizeSecurityGroupEgressInput struct { _ struct{} `type:"structure"` @@ -24346,7 +24303,6 @@ func (s *AuthorizeSecurityGroupEgressInput) SetToPort(v int64) *AuthorizeSecurit return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AuthorizeSecurityGroupEgressOutput type AuthorizeSecurityGroupEgressOutput struct { _ struct{} `type:"structure"` } @@ -24362,7 +24318,6 @@ func (s AuthorizeSecurityGroupEgressOutput) GoString() string { } // Contains the parameters for AuthorizeSecurityGroupIngress. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AuthorizeSecurityGroupIngressRequest type AuthorizeSecurityGroupIngressInput struct { _ struct{} `type:"structure"` @@ -24495,7 +24450,6 @@ func (s *AuthorizeSecurityGroupIngressInput) SetToPort(v int64) *AuthorizeSecuri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AuthorizeSecurityGroupIngressOutput type AuthorizeSecurityGroupIngressOutput struct { _ struct{} `type:"structure"` } @@ -24511,7 +24465,6 @@ func (s AuthorizeSecurityGroupIngressOutput) GoString() string { } // Describes an Availability Zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AvailabilityZone type AvailabilityZone struct { _ struct{} `type:"structure"` @@ -24563,7 +24516,6 @@ func (s *AvailabilityZone) SetZoneName(v string) *AvailabilityZone { } // Describes a message about an Availability Zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AvailabilityZoneMessage type AvailabilityZoneMessage struct { _ struct{} `type:"structure"` @@ -24588,7 +24540,6 @@ func (s *AvailabilityZoneMessage) SetMessage(v string) *AvailabilityZoneMessage } // The capacity information for instances launched onto the Dedicated Host. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/AvailableCapacity type AvailableCapacity struct { _ struct{} `type:"structure"` @@ -24621,7 +24572,6 @@ func (s *AvailableCapacity) SetAvailableVCpus(v int64) *AvailableCapacity { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/BlobAttributeValue type BlobAttributeValue struct { _ struct{} `type:"structure"` @@ -24646,7 +24596,6 @@ func (s *BlobAttributeValue) SetValue(v []byte) *BlobAttributeValue { } // Describes a block device mapping. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/BlockDeviceMapping type BlockDeviceMapping struct { _ struct{} `type:"structure"` @@ -24709,7 +24658,6 @@ func (s *BlockDeviceMapping) SetVirtualName(v string) *BlockDeviceMapping { } // Contains the parameters for BundleInstance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/BundleInstanceRequest type BundleInstanceInput struct { _ struct{} `type:"structure"` @@ -24783,7 +24731,6 @@ func (s *BundleInstanceInput) SetStorage(v *Storage) *BundleInstanceInput { } // Contains the output of BundleInstance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/BundleInstanceResult type BundleInstanceOutput struct { _ struct{} `type:"structure"` @@ -24808,7 +24755,6 @@ func (s *BundleInstanceOutput) SetBundleTask(v *BundleTask) *BundleInstanceOutpu } // Describes a bundle task. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/BundleTask type BundleTask struct { _ struct{} `type:"structure"` @@ -24896,7 +24842,6 @@ func (s *BundleTask) SetUpdateTime(v time.Time) *BundleTask { } // Describes an error for BundleInstance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/BundleTaskError type BundleTaskError struct { _ struct{} `type:"structure"` @@ -24930,7 +24875,6 @@ func (s *BundleTaskError) SetMessage(v string) *BundleTaskError { } // Contains the parameters for CancelBundleTask. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelBundleTaskRequest type CancelBundleTaskInput struct { _ struct{} `type:"structure"` @@ -24982,7 +24926,6 @@ func (s *CancelBundleTaskInput) SetDryRun(v bool) *CancelBundleTaskInput { } // Contains the output of CancelBundleTask. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelBundleTaskResult type CancelBundleTaskOutput struct { _ struct{} `type:"structure"` @@ -25007,7 +24950,6 @@ func (s *CancelBundleTaskOutput) SetBundleTask(v *BundleTask) *CancelBundleTaskO } // Contains the parameters for CancelConversionTask. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelConversionRequest type CancelConversionTaskInput struct { _ struct{} `type:"structure"` @@ -25067,7 +25009,6 @@ func (s *CancelConversionTaskInput) SetReasonMessage(v string) *CancelConversion return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelConversionTaskOutput type CancelConversionTaskOutput struct { _ struct{} `type:"structure"` } @@ -25083,7 +25024,6 @@ func (s CancelConversionTaskOutput) GoString() string { } // Contains the parameters for CancelExportTask. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelExportTaskRequest type CancelExportTaskInput struct { _ struct{} `type:"structure"` @@ -25122,7 +25062,6 @@ func (s *CancelExportTaskInput) SetExportTaskId(v string) *CancelExportTaskInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelExportTaskOutput type CancelExportTaskOutput struct { _ struct{} `type:"structure"` } @@ -25138,7 +25077,6 @@ func (s CancelExportTaskOutput) GoString() string { } // Contains the parameters for CancelImportTask. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelImportTaskRequest type CancelImportTaskInput struct { _ struct{} `type:"structure"` @@ -25184,7 +25122,6 @@ func (s *CancelImportTaskInput) SetImportTaskId(v string) *CancelImportTaskInput } // Contains the output for CancelImportTask. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelImportTaskResult type CancelImportTaskOutput struct { _ struct{} `type:"structure"` @@ -25227,7 +25164,6 @@ func (s *CancelImportTaskOutput) SetState(v string) *CancelImportTaskOutput { } // Contains the parameters for CancelReservedInstancesListing. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelReservedInstancesListingRequest type CancelReservedInstancesListingInput struct { _ struct{} `type:"structure"` @@ -25267,7 +25203,6 @@ func (s *CancelReservedInstancesListingInput) SetReservedInstancesListingId(v st } // Contains the output of CancelReservedInstancesListing. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelReservedInstancesListingResult type CancelReservedInstancesListingOutput struct { _ struct{} `type:"structure"` @@ -25292,7 +25227,6 @@ func (s *CancelReservedInstancesListingOutput) SetReservedInstancesListings(v [] } // Describes a Spot Fleet error. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelSpotFleetRequestsError type CancelSpotFleetRequestsError struct { _ struct{} `type:"structure"` @@ -25330,7 +25264,6 @@ func (s *CancelSpotFleetRequestsError) SetMessage(v string) *CancelSpotFleetRequ } // Describes a Spot Fleet request that was not successfully canceled. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelSpotFleetRequestsErrorItem type CancelSpotFleetRequestsErrorItem struct { _ struct{} `type:"structure"` @@ -25368,7 +25301,6 @@ func (s *CancelSpotFleetRequestsErrorItem) SetSpotFleetRequestId(v string) *Canc } // Contains the parameters for CancelSpotFleetRequests. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelSpotFleetRequestsRequest type CancelSpotFleetRequestsInput struct { _ struct{} `type:"structure"` @@ -25435,7 +25367,6 @@ func (s *CancelSpotFleetRequestsInput) SetTerminateInstances(v bool) *CancelSpot } // Contains the output of CancelSpotFleetRequests. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelSpotFleetRequestsResponse type CancelSpotFleetRequestsOutput struct { _ struct{} `type:"structure"` @@ -25469,7 +25400,6 @@ func (s *CancelSpotFleetRequestsOutput) SetUnsuccessfulFleetRequests(v []*Cancel } // Describes a Spot Fleet request that was successfully canceled. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelSpotFleetRequestsSuccessItem type CancelSpotFleetRequestsSuccessItem struct { _ struct{} `type:"structure"` @@ -25518,7 +25448,6 @@ func (s *CancelSpotFleetRequestsSuccessItem) SetSpotFleetRequestId(v string) *Ca } // Contains the parameters for CancelSpotInstanceRequests. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelSpotInstanceRequestsRequest type CancelSpotInstanceRequestsInput struct { _ struct{} `type:"structure"` @@ -25570,7 +25499,6 @@ func (s *CancelSpotInstanceRequestsInput) SetSpotInstanceRequestIds(v []*string) } // Contains the output of CancelSpotInstanceRequests. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelSpotInstanceRequestsResult type CancelSpotInstanceRequestsOutput struct { _ struct{} `type:"structure"` @@ -25595,7 +25523,6 @@ func (s *CancelSpotInstanceRequestsOutput) SetCancelledSpotInstanceRequests(v [] } // Describes a request to cancel a Spot Instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CancelledSpotInstanceRequest type CancelledSpotInstanceRequest struct { _ struct{} `type:"structure"` @@ -25629,7 +25556,6 @@ func (s *CancelledSpotInstanceRequest) SetState(v string) *CancelledSpotInstance } // Describes an IPv4 CIDR block. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CidrBlock type CidrBlock struct { _ struct{} `type:"structure"` @@ -25654,7 +25580,6 @@ func (s *CidrBlock) SetCidrBlock(v string) *CidrBlock { } // Describes the ClassicLink DNS support status of a VPC. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ClassicLinkDnsSupport type ClassicLinkDnsSupport struct { _ struct{} `type:"structure"` @@ -25688,7 +25613,6 @@ func (s *ClassicLinkDnsSupport) SetVpcId(v string) *ClassicLinkDnsSupport { } // Describes a linked EC2-Classic instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ClassicLinkInstance type ClassicLinkInstance struct { _ struct{} `type:"structure"` @@ -25740,7 +25664,6 @@ func (s *ClassicLinkInstance) SetVpcId(v string) *ClassicLinkInstance { } // Describes a Classic Load Balancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ClassicLoadBalancer type ClassicLoadBalancer struct { _ struct{} `type:"structure"` @@ -25781,7 +25704,6 @@ func (s *ClassicLoadBalancer) SetName(v string) *ClassicLoadBalancer { // Describes the Classic Load Balancers to attach to a Spot Fleet. Spot Fleet // registers the running Spot Instances with these Classic Load Balancers. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ClassicLoadBalancersConfig type ClassicLoadBalancersConfig struct { _ struct{} `type:"structure"` @@ -25834,7 +25756,6 @@ func (s *ClassicLoadBalancersConfig) SetClassicLoadBalancers(v []*ClassicLoadBal } // Describes the client-specific data. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ClientData type ClientData struct { _ struct{} `type:"structure"` @@ -25886,7 +25807,6 @@ func (s *ClientData) SetUploadStart(v time.Time) *ClientData { } // Contains the parameters for ConfirmProductInstance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ConfirmProductInstanceRequest type ConfirmProductInstanceInput struct { _ struct{} `type:"structure"` @@ -25952,7 +25872,6 @@ func (s *ConfirmProductInstanceInput) SetProductCode(v string) *ConfirmProductIn } // Contains the output of ConfirmProductInstance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ConfirmProductInstanceResult type ConfirmProductInstanceOutput struct { _ struct{} `type:"structure"` @@ -25988,7 +25907,6 @@ func (s *ConfirmProductInstanceOutput) SetReturn(v bool) *ConfirmProductInstance } // Describes a connection notification for a VPC endpoint or VPC endpoint service. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ConnectionNotification type ConnectionNotification struct { _ struct{} `type:"structure"` @@ -26068,7 +25986,6 @@ func (s *ConnectionNotification) SetVpcEndpointId(v string) *ConnectionNotificat } // Describes a conversion task. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ConversionTask type ConversionTask struct { _ struct{} `type:"structure"` @@ -26153,7 +26070,6 @@ func (s *ConversionTask) SetTags(v []*Tag) *ConversionTask { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopyFpgaImageRequest type CopyFpgaImageInput struct { _ struct{} `type:"structure"` @@ -26246,7 +26162,6 @@ func (s *CopyFpgaImageInput) SetSourceRegion(v string) *CopyFpgaImageInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopyFpgaImageResult type CopyFpgaImageOutput struct { _ struct{} `type:"structure"` @@ -26271,7 +26186,6 @@ func (s *CopyFpgaImageOutput) SetFpgaImageId(v string) *CopyFpgaImageOutput { } // Contains the parameters for CopyImage. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopyImageRequest type CopyImageInput struct { _ struct{} `type:"structure"` @@ -26400,7 +26314,6 @@ func (s *CopyImageInput) SetSourceRegion(v string) *CopyImageInput { } // Contains the output of CopyImage. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopyImageResult type CopyImageOutput struct { _ struct{} `type:"structure"` @@ -26425,7 +26338,6 @@ func (s *CopyImageOutput) SetImageId(v string) *CopyImageOutput { } // Contains the parameters for CopySnapshot. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopySnapshotRequest type CopySnapshotInput struct { _ struct{} `type:"structure"` @@ -26567,7 +26479,6 @@ func (s *CopySnapshotInput) SetSourceSnapshotId(v string) *CopySnapshotInput { } // Contains the output of CopySnapshot. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CopySnapshotResult type CopySnapshotOutput struct { _ struct{} `type:"structure"` @@ -26592,7 +26503,6 @@ func (s *CopySnapshotOutput) SetSnapshotId(v string) *CopySnapshotOutput { } // Contains the parameters for CreateCustomerGateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateCustomerGatewayRequest type CreateCustomerGatewayInput struct { _ struct{} `type:"structure"` @@ -26675,7 +26585,6 @@ func (s *CreateCustomerGatewayInput) SetType(v string) *CreateCustomerGatewayInp } // Contains the output of CreateCustomerGateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateCustomerGatewayResult type CreateCustomerGatewayOutput struct { _ struct{} `type:"structure"` @@ -26699,7 +26608,6 @@ func (s *CreateCustomerGatewayOutput) SetCustomerGateway(v *CustomerGateway) *Cr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateDefaultSubnetRequest type CreateDefaultSubnetInput struct { _ struct{} `type:"structure"` @@ -26750,7 +26658,6 @@ func (s *CreateDefaultSubnetInput) SetDryRun(v bool) *CreateDefaultSubnetInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateDefaultSubnetResult type CreateDefaultSubnetOutput struct { _ struct{} `type:"structure"` @@ -26775,7 +26682,6 @@ func (s *CreateDefaultSubnetOutput) SetSubnet(v *Subnet) *CreateDefaultSubnetOut } // Contains the parameters for CreateDefaultVpc. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateDefaultVpcRequest type CreateDefaultVpcInput struct { _ struct{} `type:"structure"` @@ -26803,7 +26709,6 @@ func (s *CreateDefaultVpcInput) SetDryRun(v bool) *CreateDefaultVpcInput { } // Contains the output of CreateDefaultVpc. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateDefaultVpcResult type CreateDefaultVpcOutput struct { _ struct{} `type:"structure"` @@ -26828,7 +26733,6 @@ func (s *CreateDefaultVpcOutput) SetVpc(v *Vpc) *CreateDefaultVpcOutput { } // Contains the parameters for CreateDhcpOptions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateDhcpOptionsRequest type CreateDhcpOptionsInput struct { _ struct{} `type:"structure"` @@ -26880,7 +26784,6 @@ func (s *CreateDhcpOptionsInput) SetDryRun(v bool) *CreateDhcpOptionsInput { } // Contains the output of CreateDhcpOptions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateDhcpOptionsResult type CreateDhcpOptionsOutput struct { _ struct{} `type:"structure"` @@ -26904,7 +26807,6 @@ func (s *CreateDhcpOptionsOutput) SetDhcpOptions(v *DhcpOptions) *CreateDhcpOpti return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateEgressOnlyInternetGatewayRequest type CreateEgressOnlyInternetGatewayInput struct { _ struct{} `type:"structure"` @@ -26965,7 +26867,6 @@ func (s *CreateEgressOnlyInternetGatewayInput) SetVpcId(v string) *CreateEgressO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateEgressOnlyInternetGatewayResult type CreateEgressOnlyInternetGatewayOutput struct { _ struct{} `type:"structure"` @@ -27000,7 +26901,6 @@ func (s *CreateEgressOnlyInternetGatewayOutput) SetEgressOnlyInternetGateway(v * } // Contains the parameters for CreateFlowLogs. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateFlowLogsRequest type CreateFlowLogsInput struct { _ struct{} `type:"structure"` @@ -27109,7 +27009,6 @@ func (s *CreateFlowLogsInput) SetTrafficType(v string) *CreateFlowLogsInput { } // Contains the output of CreateFlowLogs. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateFlowLogsResult type CreateFlowLogsOutput struct { _ struct{} `type:"structure"` @@ -27152,7 +27051,6 @@ func (s *CreateFlowLogsOutput) SetUnsuccessful(v []*UnsuccessfulItem) *CreateFlo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateFpgaImageRequest type CreateFpgaImageInput struct { _ struct{} `type:"structure"` @@ -27241,7 +27139,6 @@ func (s *CreateFpgaImageInput) SetName(v string) *CreateFpgaImageInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateFpgaImageResult type CreateFpgaImageOutput struct { _ struct{} `type:"structure"` @@ -27275,7 +27172,6 @@ func (s *CreateFpgaImageOutput) SetFpgaImageId(v string) *CreateFpgaImageOutput } // Contains the parameters for CreateImage. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateImageRequest type CreateImageInput struct { _ struct{} `type:"structure"` @@ -27375,7 +27271,6 @@ func (s *CreateImageInput) SetNoReboot(v bool) *CreateImageInput { } // Contains the output of CreateImage. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateImageResult type CreateImageOutput struct { _ struct{} `type:"structure"` @@ -27400,7 +27295,6 @@ func (s *CreateImageOutput) SetImageId(v string) *CreateImageOutput { } // Contains the parameters for CreateInstanceExportTask. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateInstanceExportTaskRequest type CreateInstanceExportTaskInput struct { _ struct{} `type:"structure"` @@ -27468,7 +27362,6 @@ func (s *CreateInstanceExportTaskInput) SetTargetEnvironment(v string) *CreateIn } // Contains the output for CreateInstanceExportTask. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateInstanceExportTaskResult type CreateInstanceExportTaskOutput struct { _ struct{} `type:"structure"` @@ -27493,7 +27386,6 @@ func (s *CreateInstanceExportTaskOutput) SetExportTask(v *ExportTask) *CreateIns } // Contains the parameters for CreateInternetGateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateInternetGatewayRequest type CreateInternetGatewayInput struct { _ struct{} `type:"structure"` @@ -27521,7 +27413,6 @@ func (s *CreateInternetGatewayInput) SetDryRun(v bool) *CreateInternetGatewayInp } // Contains the output of CreateInternetGateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateInternetGatewayResult type CreateInternetGatewayOutput struct { _ struct{} `type:"structure"` @@ -27546,7 +27437,6 @@ func (s *CreateInternetGatewayOutput) SetInternetGateway(v *InternetGateway) *Cr } // Contains the parameters for CreateKeyPair. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateKeyPairRequest type CreateKeyPairInput struct { _ struct{} `type:"structure"` @@ -27600,7 +27490,6 @@ func (s *CreateKeyPairInput) SetKeyName(v string) *CreateKeyPairInput { } // Describes a key pair. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/KeyPair type CreateKeyPairOutput struct { _ struct{} `type:"structure"` @@ -27642,7 +27531,6 @@ func (s *CreateKeyPairOutput) SetKeyName(v string) *CreateKeyPairOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateLaunchTemplateRequest type CreateLaunchTemplateInput struct { _ struct{} `type:"structure"` @@ -27734,7 +27622,6 @@ func (s *CreateLaunchTemplateInput) SetVersionDescription(v string) *CreateLaunc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateLaunchTemplateResult type CreateLaunchTemplateOutput struct { _ struct{} `type:"structure"` @@ -27758,7 +27645,6 @@ func (s *CreateLaunchTemplateOutput) SetLaunchTemplate(v *LaunchTemplate) *Creat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateLaunchTemplateVersionRequest type CreateLaunchTemplateVersionInput struct { _ struct{} `type:"structure"` @@ -27867,7 +27753,6 @@ func (s *CreateLaunchTemplateVersionInput) SetVersionDescription(v string) *Crea return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateLaunchTemplateVersionResult type CreateLaunchTemplateVersionOutput struct { _ struct{} `type:"structure"` @@ -27892,7 +27777,6 @@ func (s *CreateLaunchTemplateVersionOutput) SetLaunchTemplateVersion(v *LaunchTe } // Contains the parameters for CreateNatGateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNatGatewayRequest type CreateNatGatewayInput struct { _ struct{} `type:"structure"` @@ -27960,7 +27844,6 @@ func (s *CreateNatGatewayInput) SetSubnetId(v string) *CreateNatGatewayInput { } // Contains the output of CreateNatGateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNatGatewayResult type CreateNatGatewayOutput struct { _ struct{} `type:"structure"` @@ -27995,7 +27878,6 @@ func (s *CreateNatGatewayOutput) SetNatGateway(v *NatGateway) *CreateNatGatewayO } // Contains the parameters for CreateNetworkAclEntry. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkAclEntryRequest type CreateNetworkAclEntryInput struct { _ struct{} `type:"structure"` @@ -28150,7 +28032,6 @@ func (s *CreateNetworkAclEntryInput) SetRuleNumber(v int64) *CreateNetworkAclEnt return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkAclEntryOutput type CreateNetworkAclEntryOutput struct { _ struct{} `type:"structure"` } @@ -28166,7 +28047,6 @@ func (s CreateNetworkAclEntryOutput) GoString() string { } // Contains the parameters for CreateNetworkAcl. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkAclRequest type CreateNetworkAclInput struct { _ struct{} `type:"structure"` @@ -28218,7 +28098,6 @@ func (s *CreateNetworkAclInput) SetVpcId(v string) *CreateNetworkAclInput { } // Contains the output of CreateNetworkAcl. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkAclResult type CreateNetworkAclOutput struct { _ struct{} `type:"structure"` @@ -28243,7 +28122,6 @@ func (s *CreateNetworkAclOutput) SetNetworkAcl(v *NetworkAcl) *CreateNetworkAclO } // Contains the parameters for CreateNetworkInterface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkInterfaceRequest type CreateNetworkInterfaceInput struct { _ struct{} `type:"structure"` @@ -28385,7 +28263,6 @@ func (s *CreateNetworkInterfaceInput) SetSubnetId(v string) *CreateNetworkInterf } // Contains the output of CreateNetworkInterface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkInterfaceResult type CreateNetworkInterfaceOutput struct { _ struct{} `type:"structure"` @@ -28410,7 +28287,6 @@ func (s *CreateNetworkInterfaceOutput) SetNetworkInterface(v *NetworkInterface) } // Contains the parameters for CreateNetworkInterfacePermission. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkInterfacePermissionRequest type CreateNetworkInterfacePermissionInput struct { _ struct{} `type:"structure"` @@ -28494,7 +28370,6 @@ func (s *CreateNetworkInterfacePermissionInput) SetPermission(v string) *CreateN } // Contains the output of CreateNetworkInterfacePermission. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateNetworkInterfacePermissionResult type CreateNetworkInterfacePermissionOutput struct { _ struct{} `type:"structure"` @@ -28519,7 +28394,6 @@ func (s *CreateNetworkInterfacePermissionOutput) SetInterfacePermission(v *Netwo } // Contains the parameters for CreatePlacementGroup. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreatePlacementGroupRequest type CreatePlacementGroupInput struct { _ struct{} `type:"structure"` @@ -28587,7 +28461,6 @@ func (s *CreatePlacementGroupInput) SetStrategy(v string) *CreatePlacementGroupI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreatePlacementGroupOutput type CreatePlacementGroupOutput struct { _ struct{} `type:"structure"` } @@ -28603,7 +28476,6 @@ func (s CreatePlacementGroupOutput) GoString() string { } // Contains the parameters for CreateReservedInstancesListing. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateReservedInstancesListingRequest type CreateReservedInstancesListingInput struct { _ struct{} `type:"structure"` @@ -28691,7 +28563,6 @@ func (s *CreateReservedInstancesListingInput) SetReservedInstancesId(v string) * } // Contains the output of CreateReservedInstancesListing. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateReservedInstancesListingResult type CreateReservedInstancesListingOutput struct { _ struct{} `type:"structure"` @@ -28716,7 +28587,6 @@ func (s *CreateReservedInstancesListingOutput) SetReservedInstancesListings(v [] } // Contains the parameters for CreateRoute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateRouteRequest type CreateRouteInput struct { _ struct{} `type:"structure"` @@ -28844,7 +28714,6 @@ func (s *CreateRouteInput) SetVpcPeeringConnectionId(v string) *CreateRouteInput } // Contains the output of CreateRoute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateRouteResult type CreateRouteOutput struct { _ struct{} `type:"structure"` @@ -28869,7 +28738,6 @@ func (s *CreateRouteOutput) SetReturn(v bool) *CreateRouteOutput { } // Contains the parameters for CreateRouteTable. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateRouteTableRequest type CreateRouteTableInput struct { _ struct{} `type:"structure"` @@ -28921,7 +28789,6 @@ func (s *CreateRouteTableInput) SetVpcId(v string) *CreateRouteTableInput { } // Contains the output of CreateRouteTable. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateRouteTableResult type CreateRouteTableOutput struct { _ struct{} `type:"structure"` @@ -28946,7 +28813,6 @@ func (s *CreateRouteTableOutput) SetRouteTable(v *RouteTable) *CreateRouteTableO } // Contains the parameters for CreateSecurityGroup. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSecurityGroupRequest type CreateSecurityGroupInput struct { _ struct{} `type:"structure"` @@ -29033,7 +28899,6 @@ func (s *CreateSecurityGroupInput) SetVpcId(v string) *CreateSecurityGroupInput } // Contains the output of CreateSecurityGroup. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSecurityGroupResult type CreateSecurityGroupOutput struct { _ struct{} `type:"structure"` @@ -29058,7 +28923,6 @@ func (s *CreateSecurityGroupOutput) SetGroupId(v string) *CreateSecurityGroupOut } // Contains the parameters for CreateSnapshot. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSnapshotRequest type CreateSnapshotInput struct { _ struct{} `type:"structure"` @@ -29119,7 +28983,6 @@ func (s *CreateSnapshotInput) SetVolumeId(v string) *CreateSnapshotInput { } // Contains the parameters for CreateSpotDatafeedSubscription. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSpotDatafeedSubscriptionRequest type CreateSpotDatafeedSubscriptionInput struct { _ struct{} `type:"structure"` @@ -29180,7 +29043,6 @@ func (s *CreateSpotDatafeedSubscriptionInput) SetPrefix(v string) *CreateSpotDat } // Contains the output of CreateSpotDatafeedSubscription. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSpotDatafeedSubscriptionResult type CreateSpotDatafeedSubscriptionOutput struct { _ struct{} `type:"structure"` @@ -29205,7 +29067,6 @@ func (s *CreateSpotDatafeedSubscriptionOutput) SetSpotDatafeedSubscription(v *Sp } // Contains the parameters for CreateSubnet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSubnetRequest type CreateSubnetInput struct { _ struct{} `type:"structure"` @@ -29293,7 +29154,6 @@ func (s *CreateSubnetInput) SetVpcId(v string) *CreateSubnetInput { } // Contains the output of CreateSubnet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateSubnetResult type CreateSubnetOutput struct { _ struct{} `type:"structure"` @@ -29318,7 +29178,6 @@ func (s *CreateSubnetOutput) SetSubnet(v *Subnet) *CreateSubnetOutput { } // Contains the parameters for CreateTags. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTagsRequest type CreateTagsInput struct { _ struct{} `type:"structure"` @@ -29385,7 +29244,6 @@ func (s *CreateTagsInput) SetTags(v []*Tag) *CreateTagsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateTagsOutput type CreateTagsOutput struct { _ struct{} `type:"structure"` } @@ -29401,7 +29259,6 @@ func (s CreateTagsOutput) GoString() string { } // Contains the parameters for CreateVolume. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVolumeRequest type CreateVolumeInput struct { _ struct{} `type:"structure"` @@ -29545,7 +29402,6 @@ func (s *CreateVolumeInput) SetVolumeType(v string) *CreateVolumeInput { // Describes the user or group to be added or removed from the permissions for // a volume. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVolumePermission type CreateVolumePermission struct { _ struct{} `type:"structure"` @@ -29581,7 +29437,6 @@ func (s *CreateVolumePermission) SetUserId(v string) *CreateVolumePermission { } // Describes modifications to the permissions for a volume. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVolumePermissionModifications type CreateVolumePermissionModifications struct { _ struct{} `type:"structure"` @@ -29616,7 +29471,6 @@ func (s *CreateVolumePermissionModifications) SetRemove(v []*CreateVolumePermiss return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpointConnectionNotificationRequest type CreateVpcEndpointConnectionNotificationInput struct { _ struct{} `type:"structure"` @@ -29710,7 +29564,6 @@ func (s *CreateVpcEndpointConnectionNotificationInput) SetVpcEndpointId(v string return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpointConnectionNotificationResult type CreateVpcEndpointConnectionNotificationOutput struct { _ struct{} `type:"structure"` @@ -29745,7 +29598,6 @@ func (s *CreateVpcEndpointConnectionNotificationOutput) SetConnectionNotificatio } // Contains the parameters for CreateVpcEndpoint. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpointRequest type CreateVpcEndpointInput struct { _ struct{} `type:"structure"` @@ -29895,7 +29747,6 @@ func (s *CreateVpcEndpointInput) SetVpcId(v string) *CreateVpcEndpointInput { } // Contains the output of CreateVpcEndpoint. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpointResult type CreateVpcEndpointOutput struct { _ struct{} `type:"structure"` @@ -29929,7 +29780,6 @@ func (s *CreateVpcEndpointOutput) SetVpcEndpoint(v *VpcEndpoint) *CreateVpcEndpo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpointServiceConfigurationRequest type CreateVpcEndpointServiceConfigurationInput struct { _ struct{} `type:"structure"` @@ -30001,7 +29851,6 @@ func (s *CreateVpcEndpointServiceConfigurationInput) SetNetworkLoadBalancerArns( return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcEndpointServiceConfigurationResult type CreateVpcEndpointServiceConfigurationOutput struct { _ struct{} `type:"structure"` @@ -30036,7 +29885,6 @@ func (s *CreateVpcEndpointServiceConfigurationOutput) SetServiceConfiguration(v } // Contains the parameters for CreateVpc. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcRequest type CreateVpcInput struct { _ struct{} `type:"structure"` @@ -30117,7 +29965,6 @@ func (s *CreateVpcInput) SetInstanceTenancy(v string) *CreateVpcInput { } // Contains the output of CreateVpc. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcResult type CreateVpcOutput struct { _ struct{} `type:"structure"` @@ -30142,7 +29989,6 @@ func (s *CreateVpcOutput) SetVpc(v *Vpc) *CreateVpcOutput { } // Contains the parameters for CreateVpcPeeringConnection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcPeeringConnectionRequest type CreateVpcPeeringConnectionInput struct { _ struct{} `type:"structure"` @@ -30212,7 +30058,6 @@ func (s *CreateVpcPeeringConnectionInput) SetVpcId(v string) *CreateVpcPeeringCo } // Contains the output of CreateVpcPeeringConnection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpcPeeringConnectionResult type CreateVpcPeeringConnectionOutput struct { _ struct{} `type:"structure"` @@ -30237,7 +30082,6 @@ func (s *CreateVpcPeeringConnectionOutput) SetVpcPeeringConnection(v *VpcPeering } // Contains the parameters for CreateVpnConnection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpnConnectionRequest type CreateVpnConnectionInput struct { _ struct{} `type:"structure"` @@ -30326,7 +30170,6 @@ func (s *CreateVpnConnectionInput) SetVpnGatewayId(v string) *CreateVpnConnectio } // Contains the output of CreateVpnConnection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpnConnectionResult type CreateVpnConnectionOutput struct { _ struct{} `type:"structure"` @@ -30351,7 +30194,6 @@ func (s *CreateVpnConnectionOutput) SetVpnConnection(v *VpnConnection) *CreateVp } // Contains the parameters for CreateVpnConnectionRoute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpnConnectionRouteRequest type CreateVpnConnectionRouteInput struct { _ struct{} `type:"structure"` @@ -30404,7 +30246,6 @@ func (s *CreateVpnConnectionRouteInput) SetVpnConnectionId(v string) *CreateVpnC return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpnConnectionRouteOutput type CreateVpnConnectionRouteOutput struct { _ struct{} `type:"structure"` } @@ -30420,7 +30261,6 @@ func (s CreateVpnConnectionRouteOutput) GoString() string { } // Contains the parameters for CreateVpnGateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpnGatewayRequest type CreateVpnGatewayInput struct { _ struct{} `type:"structure"` @@ -30494,7 +30334,6 @@ func (s *CreateVpnGatewayInput) SetType(v string) *CreateVpnGatewayInput { } // Contains the output of CreateVpnGateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreateVpnGatewayResult type CreateVpnGatewayOutput struct { _ struct{} `type:"structure"` @@ -30519,7 +30358,6 @@ func (s *CreateVpnGatewayOutput) SetVpnGateway(v *VpnGateway) *CreateVpnGatewayO } // Describes the credit option for CPU usage of a T2 instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreditSpecification type CreditSpecification struct { _ struct{} `type:"structure"` @@ -30544,7 +30382,6 @@ func (s *CreditSpecification) SetCpuCredits(v string) *CreditSpecification { } // The credit option for CPU usage of a T2 instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CreditSpecificationRequest type CreditSpecificationRequest struct { _ struct{} `type:"structure"` @@ -30585,7 +30422,6 @@ func (s *CreditSpecificationRequest) SetCpuCredits(v string) *CreditSpecificatio } // Describes a customer gateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/CustomerGateway type CustomerGateway struct { _ struct{} `type:"structure"` @@ -30657,7 +30493,6 @@ func (s *CustomerGateway) SetType(v string) *CustomerGateway { } // Contains the parameters for DeleteCustomerGateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteCustomerGatewayRequest type DeleteCustomerGatewayInput struct { _ struct{} `type:"structure"` @@ -30708,7 +30543,6 @@ func (s *DeleteCustomerGatewayInput) SetDryRun(v bool) *DeleteCustomerGatewayInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteCustomerGatewayOutput type DeleteCustomerGatewayOutput struct { _ struct{} `type:"structure"` } @@ -30724,7 +30558,6 @@ func (s DeleteCustomerGatewayOutput) GoString() string { } // Contains the parameters for DeleteDhcpOptions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteDhcpOptionsRequest type DeleteDhcpOptionsInput struct { _ struct{} `type:"structure"` @@ -30775,7 +30608,6 @@ func (s *DeleteDhcpOptionsInput) SetDryRun(v bool) *DeleteDhcpOptionsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteDhcpOptionsOutput type DeleteDhcpOptionsOutput struct { _ struct{} `type:"structure"` } @@ -30790,7 +30622,6 @@ func (s DeleteDhcpOptionsOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteEgressOnlyInternetGatewayRequest type DeleteEgressOnlyInternetGatewayInput struct { _ struct{} `type:"structure"` @@ -30841,7 +30672,6 @@ func (s *DeleteEgressOnlyInternetGatewayInput) SetEgressOnlyInternetGatewayId(v return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteEgressOnlyInternetGatewayResult type DeleteEgressOnlyInternetGatewayOutput struct { _ struct{} `type:"structure"` @@ -30866,7 +30696,6 @@ func (s *DeleteEgressOnlyInternetGatewayOutput) SetReturnCode(v bool) *DeleteEgr } // Contains the parameters for DeleteFlowLogs. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteFlowLogsRequest type DeleteFlowLogsInput struct { _ struct{} `type:"structure"` @@ -30906,7 +30735,6 @@ func (s *DeleteFlowLogsInput) SetFlowLogIds(v []*string) *DeleteFlowLogsInput { } // Contains the output of DeleteFlowLogs. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteFlowLogsResult type DeleteFlowLogsOutput struct { _ struct{} `type:"structure"` @@ -30930,7 +30758,6 @@ func (s *DeleteFlowLogsOutput) SetUnsuccessful(v []*UnsuccessfulItem) *DeleteFlo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteFpgaImageRequest type DeleteFpgaImageInput struct { _ struct{} `type:"structure"` @@ -30981,7 +30808,6 @@ func (s *DeleteFpgaImageInput) SetFpgaImageId(v string) *DeleteFpgaImageInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteFpgaImageResult type DeleteFpgaImageOutput struct { _ struct{} `type:"structure"` @@ -31006,7 +30832,6 @@ func (s *DeleteFpgaImageOutput) SetReturn(v bool) *DeleteFpgaImageOutput { } // Contains the parameters for DeleteInternetGateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteInternetGatewayRequest type DeleteInternetGatewayInput struct { _ struct{} `type:"structure"` @@ -31057,7 +30882,6 @@ func (s *DeleteInternetGatewayInput) SetInternetGatewayId(v string) *DeleteInter return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteInternetGatewayOutput type DeleteInternetGatewayOutput struct { _ struct{} `type:"structure"` } @@ -31073,7 +30897,6 @@ func (s DeleteInternetGatewayOutput) GoString() string { } // Contains the parameters for DeleteKeyPair. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteKeyPairRequest type DeleteKeyPairInput struct { _ struct{} `type:"structure"` @@ -31124,7 +30947,6 @@ func (s *DeleteKeyPairInput) SetKeyName(v string) *DeleteKeyPairInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteKeyPairOutput type DeleteKeyPairOutput struct { _ struct{} `type:"structure"` } @@ -31139,7 +30961,6 @@ func (s DeleteKeyPairOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteLaunchTemplateRequest type DeleteLaunchTemplateInput struct { _ struct{} `type:"structure"` @@ -31199,7 +31020,6 @@ func (s *DeleteLaunchTemplateInput) SetLaunchTemplateName(v string) *DeleteLaunc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteLaunchTemplateResult type DeleteLaunchTemplateOutput struct { _ struct{} `type:"structure"` @@ -31223,7 +31043,6 @@ func (s *DeleteLaunchTemplateOutput) SetLaunchTemplate(v *LaunchTemplate) *Delet return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteLaunchTemplateVersionsRequest type DeleteLaunchTemplateVersionsInput struct { _ struct{} `type:"structure"` @@ -31297,7 +31116,6 @@ func (s *DeleteLaunchTemplateVersionsInput) SetVersions(v []*string) *DeleteLaun return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteLaunchTemplateVersionsResult type DeleteLaunchTemplateVersionsOutput struct { _ struct{} `type:"structure"` @@ -31331,7 +31149,6 @@ func (s *DeleteLaunchTemplateVersionsOutput) SetUnsuccessfullyDeletedLaunchTempl } // Describes a launch template version that could not be deleted. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteLaunchTemplateVersionsResponseErrorItem type DeleteLaunchTemplateVersionsResponseErrorItem struct { _ struct{} `type:"structure"` @@ -31383,7 +31200,6 @@ func (s *DeleteLaunchTemplateVersionsResponseErrorItem) SetVersionNumber(v int64 } // Describes a launch template version that was successfully deleted. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteLaunchTemplateVersionsResponseSuccessItem type DeleteLaunchTemplateVersionsResponseSuccessItem struct { _ struct{} `type:"structure"` @@ -31426,7 +31242,6 @@ func (s *DeleteLaunchTemplateVersionsResponseSuccessItem) SetVersionNumber(v int } // Contains the parameters for DeleteNatGateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNatGatewayRequest type DeleteNatGatewayInput struct { _ struct{} `type:"structure"` @@ -31466,7 +31281,6 @@ func (s *DeleteNatGatewayInput) SetNatGatewayId(v string) *DeleteNatGatewayInput } // Contains the output of DeleteNatGateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNatGatewayResult type DeleteNatGatewayOutput struct { _ struct{} `type:"structure"` @@ -31491,7 +31305,6 @@ func (s *DeleteNatGatewayOutput) SetNatGatewayId(v string) *DeleteNatGatewayOutp } // Contains the parameters for DeleteNetworkAclEntry. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkAclEntryRequest type DeleteNetworkAclEntryInput struct { _ struct{} `type:"structure"` @@ -31570,7 +31383,6 @@ func (s *DeleteNetworkAclEntryInput) SetRuleNumber(v int64) *DeleteNetworkAclEnt return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkAclEntryOutput type DeleteNetworkAclEntryOutput struct { _ struct{} `type:"structure"` } @@ -31586,7 +31398,6 @@ func (s DeleteNetworkAclEntryOutput) GoString() string { } // Contains the parameters for DeleteNetworkAcl. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkAclRequest type DeleteNetworkAclInput struct { _ struct{} `type:"structure"` @@ -31637,7 +31448,6 @@ func (s *DeleteNetworkAclInput) SetNetworkAclId(v string) *DeleteNetworkAclInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkAclOutput type DeleteNetworkAclOutput struct { _ struct{} `type:"structure"` } @@ -31653,7 +31463,6 @@ func (s DeleteNetworkAclOutput) GoString() string { } // Contains the parameters for DeleteNetworkInterface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkInterfaceRequest type DeleteNetworkInterfaceInput struct { _ struct{} `type:"structure"` @@ -31704,7 +31513,6 @@ func (s *DeleteNetworkInterfaceInput) SetNetworkInterfaceId(v string) *DeleteNet return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkInterfaceOutput type DeleteNetworkInterfaceOutput struct { _ struct{} `type:"structure"` } @@ -31720,7 +31528,6 @@ func (s DeleteNetworkInterfaceOutput) GoString() string { } // Contains the parameters for DeleteNetworkInterfacePermission. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkInterfacePermissionRequest type DeleteNetworkInterfacePermissionInput struct { _ struct{} `type:"structure"` @@ -31782,7 +31589,6 @@ func (s *DeleteNetworkInterfacePermissionInput) SetNetworkInterfacePermissionId( } // Contains the output for DeleteNetworkInterfacePermission. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteNetworkInterfacePermissionResult type DeleteNetworkInterfacePermissionOutput struct { _ struct{} `type:"structure"` @@ -31807,7 +31613,6 @@ func (s *DeleteNetworkInterfacePermissionOutput) SetReturn(v bool) *DeleteNetwor } // Contains the parameters for DeletePlacementGroup. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeletePlacementGroupRequest type DeletePlacementGroupInput struct { _ struct{} `type:"structure"` @@ -31858,7 +31663,6 @@ func (s *DeletePlacementGroupInput) SetGroupName(v string) *DeletePlacementGroup return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeletePlacementGroupOutput type DeletePlacementGroupOutput struct { _ struct{} `type:"structure"` } @@ -31874,7 +31678,6 @@ func (s DeletePlacementGroupOutput) GoString() string { } // Contains the parameters for DeleteRoute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteRouteRequest type DeleteRouteInput struct { _ struct{} `type:"structure"` @@ -31945,7 +31748,6 @@ func (s *DeleteRouteInput) SetRouteTableId(v string) *DeleteRouteInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteRouteOutput type DeleteRouteOutput struct { _ struct{} `type:"structure"` } @@ -31961,7 +31763,6 @@ func (s DeleteRouteOutput) GoString() string { } // Contains the parameters for DeleteRouteTable. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteRouteTableRequest type DeleteRouteTableInput struct { _ struct{} `type:"structure"` @@ -32012,7 +31813,6 @@ func (s *DeleteRouteTableInput) SetRouteTableId(v string) *DeleteRouteTableInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteRouteTableOutput type DeleteRouteTableOutput struct { _ struct{} `type:"structure"` } @@ -32028,7 +31828,6 @@ func (s DeleteRouteTableOutput) GoString() string { } // Contains the parameters for DeleteSecurityGroup. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSecurityGroupRequest type DeleteSecurityGroupInput struct { _ struct{} `type:"structure"` @@ -32074,7 +31873,6 @@ func (s *DeleteSecurityGroupInput) SetGroupName(v string) *DeleteSecurityGroupIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSecurityGroupOutput type DeleteSecurityGroupOutput struct { _ struct{} `type:"structure"` } @@ -32090,7 +31888,6 @@ func (s DeleteSecurityGroupOutput) GoString() string { } // Contains the parameters for DeleteSnapshot. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSnapshotRequest type DeleteSnapshotInput struct { _ struct{} `type:"structure"` @@ -32141,7 +31938,6 @@ func (s *DeleteSnapshotInput) SetSnapshotId(v string) *DeleteSnapshotInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSnapshotOutput type DeleteSnapshotOutput struct { _ struct{} `type:"structure"` } @@ -32157,7 +31953,6 @@ func (s DeleteSnapshotOutput) GoString() string { } // Contains the parameters for DeleteSpotDatafeedSubscription. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSpotDatafeedSubscriptionRequest type DeleteSpotDatafeedSubscriptionInput struct { _ struct{} `type:"structure"` @@ -32184,7 +31979,6 @@ func (s *DeleteSpotDatafeedSubscriptionInput) SetDryRun(v bool) *DeleteSpotDataf return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSpotDatafeedSubscriptionOutput type DeleteSpotDatafeedSubscriptionOutput struct { _ struct{} `type:"structure"` } @@ -32200,7 +31994,6 @@ func (s DeleteSpotDatafeedSubscriptionOutput) GoString() string { } // Contains the parameters for DeleteSubnet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSubnetRequest type DeleteSubnetInput struct { _ struct{} `type:"structure"` @@ -32251,7 +32044,6 @@ func (s *DeleteSubnetInput) SetSubnetId(v string) *DeleteSubnetInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteSubnetOutput type DeleteSubnetOutput struct { _ struct{} `type:"structure"` } @@ -32267,7 +32059,6 @@ func (s DeleteSubnetOutput) GoString() string { } // Contains the parameters for DeleteTags. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTagsRequest type DeleteTagsInput struct { _ struct{} `type:"structure"` @@ -32332,7 +32123,6 @@ func (s *DeleteTagsInput) SetTags(v []*Tag) *DeleteTagsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteTagsOutput type DeleteTagsOutput struct { _ struct{} `type:"structure"` } @@ -32348,7 +32138,6 @@ func (s DeleteTagsOutput) GoString() string { } // Contains the parameters for DeleteVolume. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVolumeRequest type DeleteVolumeInput struct { _ struct{} `type:"structure"` @@ -32399,7 +32188,6 @@ func (s *DeleteVolumeInput) SetVolumeId(v string) *DeleteVolumeInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVolumeOutput type DeleteVolumeOutput struct { _ struct{} `type:"structure"` } @@ -32414,7 +32202,6 @@ func (s DeleteVolumeOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcEndpointConnectionNotificationsRequest type DeleteVpcEndpointConnectionNotificationsInput struct { _ struct{} `type:"structure"` @@ -32465,7 +32252,6 @@ func (s *DeleteVpcEndpointConnectionNotificationsInput) SetDryRun(v bool) *Delet return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcEndpointConnectionNotificationsResult type DeleteVpcEndpointConnectionNotificationsOutput struct { _ struct{} `type:"structure"` @@ -32489,7 +32275,6 @@ func (s *DeleteVpcEndpointConnectionNotificationsOutput) SetUnsuccessful(v []*Un return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcEndpointServiceConfigurationsRequest type DeleteVpcEndpointServiceConfigurationsInput struct { _ struct{} `type:"structure"` @@ -32540,7 +32325,6 @@ func (s *DeleteVpcEndpointServiceConfigurationsInput) SetServiceIds(v []*string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcEndpointServiceConfigurationsResult type DeleteVpcEndpointServiceConfigurationsOutput struct { _ struct{} `type:"structure"` @@ -32565,7 +32349,6 @@ func (s *DeleteVpcEndpointServiceConfigurationsOutput) SetUnsuccessful(v []*Unsu } // Contains the parameters for DeleteVpcEndpoints. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcEndpointsRequest type DeleteVpcEndpointsInput struct { _ struct{} `type:"structure"` @@ -32617,7 +32400,6 @@ func (s *DeleteVpcEndpointsInput) SetVpcEndpointIds(v []*string) *DeleteVpcEndpo } // Contains the output of DeleteVpcEndpoints. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcEndpointsResult type DeleteVpcEndpointsOutput struct { _ struct{} `type:"structure"` @@ -32642,7 +32424,6 @@ func (s *DeleteVpcEndpointsOutput) SetUnsuccessful(v []*UnsuccessfulItem) *Delet } // Contains the parameters for DeleteVpc. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcRequest type DeleteVpcInput struct { _ struct{} `type:"structure"` @@ -32693,7 +32474,6 @@ func (s *DeleteVpcInput) SetVpcId(v string) *DeleteVpcInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcOutput type DeleteVpcOutput struct { _ struct{} `type:"structure"` } @@ -32709,7 +32489,6 @@ func (s DeleteVpcOutput) GoString() string { } // Contains the parameters for DeleteVpcPeeringConnection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcPeeringConnectionRequest type DeleteVpcPeeringConnectionInput struct { _ struct{} `type:"structure"` @@ -32761,7 +32540,6 @@ func (s *DeleteVpcPeeringConnectionInput) SetVpcPeeringConnectionId(v string) *D } // Contains the output of DeleteVpcPeeringConnection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpcPeeringConnectionResult type DeleteVpcPeeringConnectionOutput struct { _ struct{} `type:"structure"` @@ -32786,7 +32564,6 @@ func (s *DeleteVpcPeeringConnectionOutput) SetReturn(v bool) *DeleteVpcPeeringCo } // Contains the parameters for DeleteVpnConnection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpnConnectionRequest type DeleteVpnConnectionInput struct { _ struct{} `type:"structure"` @@ -32837,7 +32614,6 @@ func (s *DeleteVpnConnectionInput) SetVpnConnectionId(v string) *DeleteVpnConnec return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpnConnectionOutput type DeleteVpnConnectionOutput struct { _ struct{} `type:"structure"` } @@ -32853,7 +32629,6 @@ func (s DeleteVpnConnectionOutput) GoString() string { } // Contains the parameters for DeleteVpnConnectionRoute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpnConnectionRouteRequest type DeleteVpnConnectionRouteInput struct { _ struct{} `type:"structure"` @@ -32906,7 +32681,6 @@ func (s *DeleteVpnConnectionRouteInput) SetVpnConnectionId(v string) *DeleteVpnC return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpnConnectionRouteOutput type DeleteVpnConnectionRouteOutput struct { _ struct{} `type:"structure"` } @@ -32922,7 +32696,6 @@ func (s DeleteVpnConnectionRouteOutput) GoString() string { } // Contains the parameters for DeleteVpnGateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpnGatewayRequest type DeleteVpnGatewayInput struct { _ struct{} `type:"structure"` @@ -32973,7 +32746,6 @@ func (s *DeleteVpnGatewayInput) SetVpnGatewayId(v string) *DeleteVpnGatewayInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeleteVpnGatewayOutput type DeleteVpnGatewayOutput struct { _ struct{} `type:"structure"` } @@ -32989,7 +32761,6 @@ func (s DeleteVpnGatewayOutput) GoString() string { } // Contains the parameters for DeregisterImage. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeregisterImageRequest type DeregisterImageInput struct { _ struct{} `type:"structure"` @@ -33040,7 +32811,6 @@ func (s *DeregisterImageInput) SetImageId(v string) *DeregisterImageInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DeregisterImageOutput type DeregisterImageOutput struct { _ struct{} `type:"structure"` } @@ -33056,7 +32826,6 @@ func (s DeregisterImageOutput) GoString() string { } // Contains the parameters for DescribeAccountAttributes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAccountAttributesRequest type DescribeAccountAttributesInput struct { _ struct{} `type:"structure"` @@ -33093,7 +32862,6 @@ func (s *DescribeAccountAttributesInput) SetDryRun(v bool) *DescribeAccountAttri } // Contains the output of DescribeAccountAttributes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAccountAttributesResult type DescribeAccountAttributesOutput struct { _ struct{} `type:"structure"` @@ -33118,7 +32886,6 @@ func (s *DescribeAccountAttributesOutput) SetAccountAttributes(v []*AccountAttri } // Contains the parameters for DescribeAddresses. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAddressesRequest type DescribeAddressesInput struct { _ struct{} `type:"structure"` @@ -33209,7 +32976,6 @@ func (s *DescribeAddressesInput) SetPublicIps(v []*string) *DescribeAddressesInp } // Contains the output of DescribeAddresses. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAddressesResult type DescribeAddressesOutput struct { _ struct{} `type:"structure"` @@ -33234,7 +33000,6 @@ func (s *DescribeAddressesOutput) SetAddresses(v []*Address) *DescribeAddressesO } // Contains the parameters for DescribeAvailabilityZones. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAvailabilityZonesRequest type DescribeAvailabilityZonesInput struct { _ struct{} `type:"structure"` @@ -33290,7 +33055,6 @@ func (s *DescribeAvailabilityZonesInput) SetZoneNames(v []*string) *DescribeAvai } // Contains the output of DescribeAvailabiltyZones. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAvailabilityZonesResult type DescribeAvailabilityZonesOutput struct { _ struct{} `type:"structure"` @@ -33315,7 +33079,6 @@ func (s *DescribeAvailabilityZonesOutput) SetAvailabilityZones(v []*Availability } // Contains the parameters for DescribeBundleTasks. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeBundleTasksRequest type DescribeBundleTasksInput struct { _ struct{} `type:"structure"` @@ -33385,7 +33148,6 @@ func (s *DescribeBundleTasksInput) SetFilters(v []*Filter) *DescribeBundleTasksI } // Contains the output of DescribeBundleTasks. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeBundleTasksResult type DescribeBundleTasksOutput struct { _ struct{} `type:"structure"` @@ -33410,7 +33172,6 @@ func (s *DescribeBundleTasksOutput) SetBundleTasks(v []*BundleTask) *DescribeBun } // Contains the parameters for DescribeClassicLinkInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClassicLinkInstancesRequest type DescribeClassicLinkInstancesInput struct { _ struct{} `type:"structure"` @@ -33501,7 +33262,6 @@ func (s *DescribeClassicLinkInstancesInput) SetNextToken(v string) *DescribeClas } // Contains the output of DescribeClassicLinkInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeClassicLinkInstancesResult type DescribeClassicLinkInstancesOutput struct { _ struct{} `type:"structure"` @@ -33536,7 +33296,6 @@ func (s *DescribeClassicLinkInstancesOutput) SetNextToken(v string) *DescribeCla } // Contains the parameters for DescribeConversionTasks. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeConversionTasksRequest type DescribeConversionTasksInput struct { _ struct{} `type:"structure"` @@ -33573,7 +33332,6 @@ func (s *DescribeConversionTasksInput) SetDryRun(v bool) *DescribeConversionTask } // Contains the output for DescribeConversionTasks. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeConversionTasksResult type DescribeConversionTasksOutput struct { _ struct{} `type:"structure"` @@ -33598,7 +33356,6 @@ func (s *DescribeConversionTasksOutput) SetConversionTasks(v []*ConversionTask) } // Contains the parameters for DescribeCustomerGateways. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCustomerGatewaysRequest type DescribeCustomerGatewaysInput struct { _ struct{} `type:"structure"` @@ -33676,7 +33433,6 @@ func (s *DescribeCustomerGatewaysInput) SetFilters(v []*Filter) *DescribeCustome } // Contains the output of DescribeCustomerGateways. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeCustomerGatewaysResult type DescribeCustomerGatewaysOutput struct { _ struct{} `type:"structure"` @@ -33701,7 +33457,6 @@ func (s *DescribeCustomerGatewaysOutput) SetCustomerGateways(v []*CustomerGatewa } // Contains the parameters for DescribeDhcpOptions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeDhcpOptionsRequest type DescribeDhcpOptionsInput struct { _ struct{} `type:"structure"` @@ -33771,7 +33526,6 @@ func (s *DescribeDhcpOptionsInput) SetFilters(v []*Filter) *DescribeDhcpOptionsI } // Contains the output of DescribeDhcpOptions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeDhcpOptionsResult type DescribeDhcpOptionsOutput struct { _ struct{} `type:"structure"` @@ -33795,7 +33549,6 @@ func (s *DescribeDhcpOptionsOutput) SetDhcpOptions(v []*DhcpOptions) *DescribeDh return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeEgressOnlyInternetGatewaysRequest type DescribeEgressOnlyInternetGatewaysInput struct { _ struct{} `type:"structure"` @@ -33852,7 +33605,6 @@ func (s *DescribeEgressOnlyInternetGatewaysInput) SetNextToken(v string) *Descri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeEgressOnlyInternetGatewaysResult type DescribeEgressOnlyInternetGatewaysOutput struct { _ struct{} `type:"structure"` @@ -33885,7 +33637,6 @@ func (s *DescribeEgressOnlyInternetGatewaysOutput) SetNextToken(v string) *Descr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeElasticGpusRequest type DescribeElasticGpusInput struct { _ struct{} `type:"structure"` @@ -33960,7 +33711,6 @@ func (s *DescribeElasticGpusInput) SetNextToken(v string) *DescribeElasticGpusIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeElasticGpusResult type DescribeElasticGpusOutput struct { _ struct{} `type:"structure"` @@ -34006,7 +33756,6 @@ func (s *DescribeElasticGpusOutput) SetNextToken(v string) *DescribeElasticGpusO } // Contains the parameters for DescribeExportTasks. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeExportTasksRequest type DescribeExportTasksInput struct { _ struct{} `type:"structure"` @@ -34031,7 +33780,6 @@ func (s *DescribeExportTasksInput) SetExportTaskIds(v []*string) *DescribeExport } // Contains the output for DescribeExportTasks. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeExportTasksResult type DescribeExportTasksOutput struct { _ struct{} `type:"structure"` @@ -34056,7 +33804,6 @@ func (s *DescribeExportTasksOutput) SetExportTasks(v []*ExportTask) *DescribeExp } // Contains the parameters for DescribeFlowLogs. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFlowLogsRequest type DescribeFlowLogsInput struct { _ struct{} `type:"structure"` @@ -34122,7 +33869,6 @@ func (s *DescribeFlowLogsInput) SetNextToken(v string) *DescribeFlowLogsInput { } // Contains the output of DescribeFlowLogs. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFlowLogsResult type DescribeFlowLogsOutput struct { _ struct{} `type:"structure"` @@ -34156,7 +33902,6 @@ func (s *DescribeFlowLogsOutput) SetNextToken(v string) *DescribeFlowLogsOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFpgaImageAttributeRequest type DescribeFpgaImageAttributeInput struct { _ struct{} `type:"structure"` @@ -34221,7 +33966,6 @@ func (s *DescribeFpgaImageAttributeInput) SetFpgaImageId(v string) *DescribeFpga return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFpgaImageAttributeResult type DescribeFpgaImageAttributeOutput struct { _ struct{} `type:"structure"` @@ -34245,7 +33989,6 @@ func (s *DescribeFpgaImageAttributeOutput) SetFpgaImageAttribute(v *FpgaImageAtt return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFpgaImagesRequest type DescribeFpgaImagesInput struct { _ struct{} `type:"structure"` @@ -34369,7 +34112,6 @@ func (s *DescribeFpgaImagesInput) SetOwners(v []*string) *DescribeFpgaImagesInpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeFpgaImagesResult type DescribeFpgaImagesOutput struct { _ struct{} `type:"structure"` @@ -34403,7 +34145,6 @@ func (s *DescribeFpgaImagesOutput) SetNextToken(v string) *DescribeFpgaImagesOut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeHostReservationOfferingsRequest type DescribeHostReservationOfferingsInput struct { _ struct{} `type:"structure"` @@ -34487,7 +34228,6 @@ func (s *DescribeHostReservationOfferingsInput) SetOfferingId(v string) *Describ return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeHostReservationOfferingsResult type DescribeHostReservationOfferingsOutput struct { _ struct{} `type:"structure"` @@ -34521,7 +34261,6 @@ func (s *DescribeHostReservationOfferingsOutput) SetOfferingSet(v []*HostOfferin return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeHostReservationsRequest type DescribeHostReservationsInput struct { _ struct{} `type:"structure"` @@ -34582,7 +34321,6 @@ func (s *DescribeHostReservationsInput) SetNextToken(v string) *DescribeHostRese return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeHostReservationsResult type DescribeHostReservationsOutput struct { _ struct{} `type:"structure"` @@ -34617,7 +34355,6 @@ func (s *DescribeHostReservationsOutput) SetNextToken(v string) *DescribeHostRes } // Contains the parameters for DescribeHosts. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeHostsRequest type DescribeHostsInput struct { _ struct{} `type:"structure"` @@ -34689,7 +34426,6 @@ func (s *DescribeHostsInput) SetNextToken(v string) *DescribeHostsInput { } // Contains the output of DescribeHosts. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeHostsResult type DescribeHostsOutput struct { _ struct{} `type:"structure"` @@ -34723,7 +34459,6 @@ func (s *DescribeHostsOutput) SetNextToken(v string) *DescribeHostsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIamInstanceProfileAssociationsRequest type DescribeIamInstanceProfileAssociationsInput struct { _ struct{} `type:"structure"` @@ -34796,7 +34531,6 @@ func (s *DescribeIamInstanceProfileAssociationsInput) SetNextToken(v string) *De return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIamInstanceProfileAssociationsResult type DescribeIamInstanceProfileAssociationsOutput struct { _ struct{} `type:"structure"` @@ -34831,7 +34565,6 @@ func (s *DescribeIamInstanceProfileAssociationsOutput) SetNextToken(v string) *D } // Contains the parameters for DescribeIdFormat. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIdFormatRequest type DescribeIdFormatInput struct { _ struct{} `type:"structure"` @@ -34856,7 +34589,6 @@ func (s *DescribeIdFormatInput) SetResource(v string) *DescribeIdFormatInput { } // Contains the output of DescribeIdFormat. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIdFormatResult type DescribeIdFormatOutput struct { _ struct{} `type:"structure"` @@ -34881,7 +34613,6 @@ func (s *DescribeIdFormatOutput) SetStatuses(v []*IdFormat) *DescribeIdFormatOut } // Contains the parameters for DescribeIdentityIdFormat. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIdentityIdFormatRequest type DescribeIdentityIdFormatInput struct { _ struct{} `type:"structure"` @@ -34931,7 +34662,6 @@ func (s *DescribeIdentityIdFormatInput) SetResource(v string) *DescribeIdentityI } // Contains the output of DescribeIdentityIdFormat. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeIdentityIdFormatResult type DescribeIdentityIdFormatOutput struct { _ struct{} `type:"structure"` @@ -34956,7 +34686,6 @@ func (s *DescribeIdentityIdFormatOutput) SetStatuses(v []*IdFormat) *DescribeIde } // Contains the parameters for DescribeImageAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImageAttributeRequest type DescribeImageAttributeInput struct { _ struct{} `type:"structure"` @@ -35026,7 +34755,6 @@ func (s *DescribeImageAttributeInput) SetImageId(v string) *DescribeImageAttribu } // Describes an image attribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImageAttribute type DescribeImageAttributeOutput struct { _ struct{} `type:"structure"` @@ -35115,7 +34843,6 @@ func (s *DescribeImageAttributeOutput) SetSriovNetSupport(v *AttributeValue) *De } // Contains the parameters for DescribeImages. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImagesRequest type DescribeImagesInput struct { _ struct{} `type:"structure"` @@ -35267,7 +34994,6 @@ func (s *DescribeImagesInput) SetOwners(v []*string) *DescribeImagesInput { } // Contains the output of DescribeImages. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImagesResult type DescribeImagesOutput struct { _ struct{} `type:"structure"` @@ -35292,7 +35018,6 @@ func (s *DescribeImagesOutput) SetImages(v []*Image) *DescribeImagesOutput { } // Contains the parameters for DescribeImportImageTasks. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImportImageTasksRequest type DescribeImportImageTasksInput struct { _ struct{} `type:"structure"` @@ -35358,7 +35083,6 @@ func (s *DescribeImportImageTasksInput) SetNextToken(v string) *DescribeImportIm } // Contains the output for DescribeImportImageTasks. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImportImageTasksResult type DescribeImportImageTasksOutput struct { _ struct{} `type:"structure"` @@ -35394,7 +35118,6 @@ func (s *DescribeImportImageTasksOutput) SetNextToken(v string) *DescribeImportI } // Contains the parameters for DescribeImportSnapshotTasks. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImportSnapshotTasksRequest type DescribeImportSnapshotTasksInput struct { _ struct{} `type:"structure"` @@ -35459,7 +35182,6 @@ func (s *DescribeImportSnapshotTasksInput) SetNextToken(v string) *DescribeImpor } // Contains the output for DescribeImportSnapshotTasks. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeImportSnapshotTasksResult type DescribeImportSnapshotTasksOutput struct { _ struct{} `type:"structure"` @@ -35495,7 +35217,6 @@ func (s *DescribeImportSnapshotTasksOutput) SetNextToken(v string) *DescribeImpo } // Contains the parameters for DescribeInstanceAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceAttributeRequest type DescribeInstanceAttributeInput struct { _ struct{} `type:"structure"` @@ -35563,7 +35284,6 @@ func (s *DescribeInstanceAttributeInput) SetInstanceId(v string) *DescribeInstan } // Describes an instance attribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceAttribute type DescribeInstanceAttributeOutput struct { _ struct{} `type:"structure"` @@ -35718,7 +35438,6 @@ func (s *DescribeInstanceAttributeOutput) SetUserData(v *AttributeValue) *Descri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceCreditSpecificationsRequest type DescribeInstanceCreditSpecificationsInput struct { _ struct{} `type:"structure"` @@ -35790,7 +35509,6 @@ func (s *DescribeInstanceCreditSpecificationsInput) SetNextToken(v string) *Desc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceCreditSpecificationsResult type DescribeInstanceCreditSpecificationsOutput struct { _ struct{} `type:"structure"` @@ -35825,7 +35543,6 @@ func (s *DescribeInstanceCreditSpecificationsOutput) SetNextToken(v string) *Des } // Contains the parameters for DescribeInstanceStatus. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceStatusRequest type DescribeInstanceStatusInput struct { _ struct{} `type:"structure"` @@ -35942,7 +35659,6 @@ func (s *DescribeInstanceStatusInput) SetNextToken(v string) *DescribeInstanceSt } // Contains the output of DescribeInstanceStatus. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstanceStatusResult type DescribeInstanceStatusOutput struct { _ struct{} `type:"structure"` @@ -35977,7 +35693,6 @@ func (s *DescribeInstanceStatusOutput) SetNextToken(v string) *DescribeInstanceS } // Contains the parameters for DescribeInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstancesRequest type DescribeInstancesInput struct { _ struct{} `type:"structure"` @@ -36283,7 +35998,6 @@ func (s *DescribeInstancesInput) SetNextToken(v string) *DescribeInstancesInput } // Contains the output of DescribeInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInstancesResult type DescribeInstancesOutput struct { _ struct{} `type:"structure"` @@ -36318,7 +36032,6 @@ func (s *DescribeInstancesOutput) SetReservations(v []*Reservation) *DescribeIns } // Contains the parameters for DescribeInternetGateways. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInternetGatewaysRequest type DescribeInternetGatewaysInput struct { _ struct{} `type:"structure"` @@ -36389,7 +36102,6 @@ func (s *DescribeInternetGatewaysInput) SetInternetGatewayIds(v []*string) *Desc } // Contains the output of DescribeInternetGateways. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeInternetGatewaysResult type DescribeInternetGatewaysOutput struct { _ struct{} `type:"structure"` @@ -36414,7 +36126,6 @@ func (s *DescribeInternetGatewaysOutput) SetInternetGateways(v []*InternetGatewa } // Contains the parameters for DescribeKeyPairs. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeKeyPairsRequest type DescribeKeyPairsInput struct { _ struct{} `type:"structure"` @@ -36466,7 +36177,6 @@ func (s *DescribeKeyPairsInput) SetKeyNames(v []*string) *DescribeKeyPairsInput } // Contains the output of DescribeKeyPairs. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeKeyPairsResult type DescribeKeyPairsOutput struct { _ struct{} `type:"structure"` @@ -36490,7 +36200,6 @@ func (s *DescribeKeyPairsOutput) SetKeyPairs(v []*KeyPairInfo) *DescribeKeyPairs return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLaunchTemplateVersionsRequest type DescribeLaunchTemplateVersionsInput struct { _ struct{} `type:"structure"` @@ -36624,7 +36333,6 @@ func (s *DescribeLaunchTemplateVersionsInput) SetVersions(v []*string) *Describe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLaunchTemplateVersionsResult type DescribeLaunchTemplateVersionsOutput struct { _ struct{} `type:"structure"` @@ -36658,7 +36366,6 @@ func (s *DescribeLaunchTemplateVersionsOutput) SetNextToken(v string) *DescribeL return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLaunchTemplatesRequest type DescribeLaunchTemplatesInput struct { _ struct{} `type:"structure"` @@ -36748,7 +36455,6 @@ func (s *DescribeLaunchTemplatesInput) SetNextToken(v string) *DescribeLaunchTem return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeLaunchTemplatesResult type DescribeLaunchTemplatesOutput struct { _ struct{} `type:"structure"` @@ -36783,7 +36489,6 @@ func (s *DescribeLaunchTemplatesOutput) SetNextToken(v string) *DescribeLaunchTe } // Contains the parameters for DescribeMovingAddresses. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeMovingAddressesRequest type DescribeMovingAddressesInput struct { _ struct{} `type:"structure"` @@ -36855,7 +36560,6 @@ func (s *DescribeMovingAddressesInput) SetPublicIps(v []*string) *DescribeMoving } // Contains the output of DescribeMovingAddresses. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeMovingAddressesResult type DescribeMovingAddressesOutput struct { _ struct{} `type:"structure"` @@ -36890,7 +36594,6 @@ func (s *DescribeMovingAddressesOutput) SetNextToken(v string) *DescribeMovingAd } // Contains the parameters for DescribeNatGateways. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNatGatewaysRequest type DescribeNatGatewaysInput struct { _ struct{} `type:"structure"` @@ -36972,7 +36675,6 @@ func (s *DescribeNatGatewaysInput) SetNextToken(v string) *DescribeNatGatewaysIn } // Contains the output of DescribeNatGateways. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNatGatewaysResult type DescribeNatGatewaysOutput struct { _ struct{} `type:"structure"` @@ -37007,7 +36709,6 @@ func (s *DescribeNatGatewaysOutput) SetNextToken(v string) *DescribeNatGatewaysO } // Contains the parameters for DescribeNetworkAcls. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkAclsRequest type DescribeNetworkAclsInput struct { _ struct{} `type:"structure"` @@ -37109,7 +36810,6 @@ func (s *DescribeNetworkAclsInput) SetNetworkAclIds(v []*string) *DescribeNetwor } // Contains the output of DescribeNetworkAcls. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkAclsResult type DescribeNetworkAclsOutput struct { _ struct{} `type:"structure"` @@ -37134,7 +36834,6 @@ func (s *DescribeNetworkAclsOutput) SetNetworkAcls(v []*NetworkAcl) *DescribeNet } // Contains the parameters for DescribeNetworkInterfaceAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInterfaceAttributeRequest type DescribeNetworkInterfaceAttributeInput struct { _ struct{} `type:"structure"` @@ -37195,7 +36894,6 @@ func (s *DescribeNetworkInterfaceAttributeInput) SetNetworkInterfaceId(v string) } // Contains the output of DescribeNetworkInterfaceAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInterfaceAttributeResult type DescribeNetworkInterfaceAttributeOutput struct { _ struct{} `type:"structure"` @@ -37256,7 +36954,6 @@ func (s *DescribeNetworkInterfaceAttributeOutput) SetSourceDestCheck(v *Attribut } // Contains the parameters for DescribeNetworkInterfacePermissions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInterfacePermissionsRequest type DescribeNetworkInterfacePermissionsInput struct { _ struct{} `type:"structure"` @@ -37323,7 +37020,6 @@ func (s *DescribeNetworkInterfacePermissionsInput) SetNextToken(v string) *Descr } // Contains the output for DescribeNetworkInterfacePermissions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInterfacePermissionsResult type DescribeNetworkInterfacePermissionsOutput struct { _ struct{} `type:"structure"` @@ -37357,7 +37053,6 @@ func (s *DescribeNetworkInterfacePermissionsOutput) SetNextToken(v string) *Desc } // Contains the parameters for DescribeNetworkInterfaces. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInterfacesRequest type DescribeNetworkInterfacesInput struct { _ struct{} `type:"structure"` @@ -37515,7 +37210,6 @@ func (s *DescribeNetworkInterfacesInput) SetNetworkInterfaceIds(v []*string) *De } // Contains the output of DescribeNetworkInterfaces. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeNetworkInterfacesResult type DescribeNetworkInterfacesOutput struct { _ struct{} `type:"structure"` @@ -37540,7 +37234,6 @@ func (s *DescribeNetworkInterfacesOutput) SetNetworkInterfaces(v []*NetworkInter } // Contains the parameters for DescribePlacementGroups. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePlacementGroupsRequest type DescribePlacementGroupsInput struct { _ struct{} `type:"structure"` @@ -37595,7 +37288,6 @@ func (s *DescribePlacementGroupsInput) SetGroupNames(v []*string) *DescribePlace } // Contains the output of DescribePlacementGroups. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePlacementGroupsResult type DescribePlacementGroupsOutput struct { _ struct{} `type:"structure"` @@ -37620,7 +37312,6 @@ func (s *DescribePlacementGroupsOutput) SetPlacementGroups(v []*PlacementGroup) } // Contains the parameters for DescribePrefixLists. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePrefixListsRequest type DescribePrefixListsInput struct { _ struct{} `type:"structure"` @@ -37694,7 +37385,6 @@ func (s *DescribePrefixListsInput) SetPrefixListIds(v []*string) *DescribePrefix } // Contains the output of DescribePrefixLists. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePrefixListsResult type DescribePrefixListsOutput struct { _ struct{} `type:"structure"` @@ -37729,7 +37419,6 @@ func (s *DescribePrefixListsOutput) SetPrefixLists(v []*PrefixList) *DescribePre } // Contains the parameters for DescribeRegions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeRegionsRequest type DescribeRegionsInput struct { _ struct{} `type:"structure"` @@ -37779,7 +37468,6 @@ func (s *DescribeRegionsInput) SetRegionNames(v []*string) *DescribeRegionsInput } // Contains the output of DescribeRegions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeRegionsResult type DescribeRegionsOutput struct { _ struct{} `type:"structure"` @@ -37804,7 +37492,6 @@ func (s *DescribeRegionsOutput) SetRegions(v []*Region) *DescribeRegionsOutput { } // Contains the parameters for DescribeReservedInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstancesRequest type DescribeReservedInstancesInput struct { _ struct{} `type:"structure"` @@ -37924,7 +37611,6 @@ func (s *DescribeReservedInstancesInput) SetReservedInstancesIds(v []*string) *D } // Contains the parameters for DescribeReservedInstancesListings. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstancesListingsRequest type DescribeReservedInstancesListingsInput struct { _ struct{} `type:"structure"` @@ -37976,7 +37662,6 @@ func (s *DescribeReservedInstancesListingsInput) SetReservedInstancesListingId(v } // Contains the output of DescribeReservedInstancesListings. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstancesListingsResult type DescribeReservedInstancesListingsOutput struct { _ struct{} `type:"structure"` @@ -38001,7 +37686,6 @@ func (s *DescribeReservedInstancesListingsOutput) SetReservedInstancesListings(v } // Contains the parameters for DescribeReservedInstancesModifications. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstancesModificationsRequest type DescribeReservedInstancesModificationsInput struct { _ struct{} `type:"structure"` @@ -38077,7 +37761,6 @@ func (s *DescribeReservedInstancesModificationsInput) SetReservedInstancesModifi } // Contains the output of DescribeReservedInstancesModifications. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstancesModificationsResult type DescribeReservedInstancesModificationsOutput struct { _ struct{} `type:"structure"` @@ -38112,7 +37795,6 @@ func (s *DescribeReservedInstancesModificationsOutput) SetReservedInstancesModif } // Contains the parameters for DescribeReservedInstancesOfferings. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstancesOfferingsRequest type DescribeReservedInstancesOfferingsInput struct { _ struct{} `type:"structure"` @@ -38322,7 +38004,6 @@ func (s *DescribeReservedInstancesOfferingsInput) SetReservedInstancesOfferingId } // Contains the output of DescribeReservedInstancesOfferings. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstancesOfferingsResult type DescribeReservedInstancesOfferingsOutput struct { _ struct{} `type:"structure"` @@ -38357,7 +38038,6 @@ func (s *DescribeReservedInstancesOfferingsOutput) SetReservedInstancesOfferings } // Contains the output for DescribeReservedInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeReservedInstancesResult type DescribeReservedInstancesOutput struct { _ struct{} `type:"structure"` @@ -38382,7 +38062,6 @@ func (s *DescribeReservedInstancesOutput) SetReservedInstances(v []*ReservedInst } // Contains the parameters for DescribeRouteTables. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeRouteTablesRequest type DescribeRouteTablesInput struct { _ struct{} `type:"structure"` @@ -38495,7 +38174,6 @@ func (s *DescribeRouteTablesInput) SetRouteTableIds(v []*string) *DescribeRouteT } // Contains the output of DescribeRouteTables. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeRouteTablesResult type DescribeRouteTablesOutput struct { _ struct{} `type:"structure"` @@ -38520,7 +38198,6 @@ func (s *DescribeRouteTablesOutput) SetRouteTables(v []*RouteTable) *DescribeRou } // Contains the parameters for DescribeScheduledInstanceAvailability. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeScheduledInstanceAvailabilityRequest type DescribeScheduledInstanceAvailabilityInput struct { _ struct{} `type:"structure"` @@ -38650,7 +38327,6 @@ func (s *DescribeScheduledInstanceAvailabilityInput) SetRecurrence(v *ScheduledI } // Contains the output of DescribeScheduledInstanceAvailability. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeScheduledInstanceAvailabilityResult type DescribeScheduledInstanceAvailabilityOutput struct { _ struct{} `type:"structure"` @@ -38685,7 +38361,6 @@ func (s *DescribeScheduledInstanceAvailabilityOutput) SetScheduledInstanceAvaila } // Contains the parameters for DescribeScheduledInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeScheduledInstancesRequest type DescribeScheduledInstancesInput struct { _ struct{} `type:"structure"` @@ -38768,7 +38443,6 @@ func (s *DescribeScheduledInstancesInput) SetSlotStartTimeRange(v *SlotStartTime } // Contains the output of DescribeScheduledInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeScheduledInstancesResult type DescribeScheduledInstancesOutput struct { _ struct{} `type:"structure"` @@ -38802,7 +38476,6 @@ func (s *DescribeScheduledInstancesOutput) SetScheduledInstanceSet(v []*Schedule return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSecurityGroupReferencesRequest type DescribeSecurityGroupReferencesInput struct { _ struct{} `type:"structure"` @@ -38853,7 +38526,6 @@ func (s *DescribeSecurityGroupReferencesInput) SetGroupId(v []*string) *Describe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSecurityGroupReferencesResult type DescribeSecurityGroupReferencesOutput struct { _ struct{} `type:"structure"` @@ -38878,7 +38550,6 @@ func (s *DescribeSecurityGroupReferencesOutput) SetSecurityGroupReferenceSet(v [ } // Contains the parameters for DescribeSecurityGroups. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSecurityGroupsRequest type DescribeSecurityGroupsInput struct { _ struct{} `type:"structure"` @@ -39031,7 +38702,6 @@ func (s *DescribeSecurityGroupsInput) SetNextToken(v string) *DescribeSecurityGr } // Contains the output of DescribeSecurityGroups. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSecurityGroupsResult type DescribeSecurityGroupsOutput struct { _ struct{} `type:"structure"` @@ -39066,7 +38736,6 @@ func (s *DescribeSecurityGroupsOutput) SetSecurityGroups(v []*SecurityGroup) *De } // Contains the parameters for DescribeSnapshotAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSnapshotAttributeRequest type DescribeSnapshotAttributeInput struct { _ struct{} `type:"structure"` @@ -39132,7 +38801,6 @@ func (s *DescribeSnapshotAttributeInput) SetSnapshotId(v string) *DescribeSnapsh } // Contains the output of DescribeSnapshotAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSnapshotAttributeResult type DescribeSnapshotAttributeOutput struct { _ struct{} `type:"structure"` @@ -39175,7 +38843,6 @@ func (s *DescribeSnapshotAttributeOutput) SetSnapshotId(v string) *DescribeSnaps } // Contains the parameters for DescribeSnapshots. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSnapshotsRequest type DescribeSnapshotsInput struct { _ struct{} `type:"structure"` @@ -39309,7 +38976,6 @@ func (s *DescribeSnapshotsInput) SetSnapshotIds(v []*string) *DescribeSnapshotsI } // Contains the output of DescribeSnapshots. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSnapshotsResult type DescribeSnapshotsOutput struct { _ struct{} `type:"structure"` @@ -39346,7 +39012,6 @@ func (s *DescribeSnapshotsOutput) SetSnapshots(v []*Snapshot) *DescribeSnapshots } // Contains the parameters for DescribeSpotDatafeedSubscription. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotDatafeedSubscriptionRequest type DescribeSpotDatafeedSubscriptionInput struct { _ struct{} `type:"structure"` @@ -39374,7 +39039,6 @@ func (s *DescribeSpotDatafeedSubscriptionInput) SetDryRun(v bool) *DescribeSpotD } // Contains the output of DescribeSpotDatafeedSubscription. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotDatafeedSubscriptionResult type DescribeSpotDatafeedSubscriptionOutput struct { _ struct{} `type:"structure"` @@ -39399,7 +39063,6 @@ func (s *DescribeSpotDatafeedSubscriptionOutput) SetSpotDatafeedSubscription(v * } // Contains the parameters for DescribeSpotFleetInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotFleetInstancesRequest type DescribeSpotFleetInstancesInput struct { _ struct{} `type:"structure"` @@ -39471,7 +39134,6 @@ func (s *DescribeSpotFleetInstancesInput) SetSpotFleetRequestId(v string) *Descr } // Contains the output of DescribeSpotFleetInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotFleetInstancesResponse type DescribeSpotFleetInstancesOutput struct { _ struct{} `type:"structure"` @@ -39520,7 +39182,6 @@ func (s *DescribeSpotFleetInstancesOutput) SetSpotFleetRequestId(v string) *Desc } // Contains the parameters for DescribeSpotFleetRequestHistory. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotFleetRequestHistoryRequest type DescribeSpotFleetRequestHistoryInput struct { _ struct{} `type:"structure"` @@ -39615,7 +39276,6 @@ func (s *DescribeSpotFleetRequestHistoryInput) SetStartTime(v time.Time) *Descri } // Contains the output of DescribeSpotFleetRequestHistory. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotFleetRequestHistoryResponse type DescribeSpotFleetRequestHistoryOutput struct { _ struct{} `type:"structure"` @@ -39688,7 +39348,6 @@ func (s *DescribeSpotFleetRequestHistoryOutput) SetStartTime(v time.Time) *Descr } // Contains the parameters for DescribeSpotFleetRequests. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotFleetRequestsRequest type DescribeSpotFleetRequestsInput struct { _ struct{} `type:"structure"` @@ -39745,7 +39404,6 @@ func (s *DescribeSpotFleetRequestsInput) SetSpotFleetRequestIds(v []*string) *De } // Contains the output of DescribeSpotFleetRequests. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotFleetRequestsResponse type DescribeSpotFleetRequestsOutput struct { _ struct{} `type:"structure"` @@ -39782,7 +39440,6 @@ func (s *DescribeSpotFleetRequestsOutput) SetSpotFleetRequestConfigs(v []*SpotFl } // Contains the parameters for DescribeSpotInstanceRequests. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotInstanceRequestsRequest type DescribeSpotInstanceRequestsInput struct { _ struct{} `type:"structure"` @@ -39937,7 +39594,6 @@ func (s *DescribeSpotInstanceRequestsInput) SetSpotInstanceRequestIds(v []*strin } // Contains the output of DescribeSpotInstanceRequests. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotInstanceRequestsResult type DescribeSpotInstanceRequestsOutput struct { _ struct{} `type:"structure"` @@ -39962,7 +39618,6 @@ func (s *DescribeSpotInstanceRequestsOutput) SetSpotInstanceRequests(v []*SpotIn } // Contains the parameters for DescribeSpotPriceHistory. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotPriceHistoryRequest type DescribeSpotPriceHistoryInput struct { _ struct{} `type:"structure"` @@ -40082,7 +39737,6 @@ func (s *DescribeSpotPriceHistoryInput) SetStartTime(v time.Time) *DescribeSpotP } // Contains the output of DescribeSpotPriceHistory. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSpotPriceHistoryResult type DescribeSpotPriceHistoryOutput struct { _ struct{} `type:"structure"` @@ -40116,7 +39770,6 @@ func (s *DescribeSpotPriceHistoryOutput) SetSpotPriceHistory(v []*SpotPrice) *De return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeStaleSecurityGroupsRequest type DescribeStaleSecurityGroupsInput struct { _ struct{} `type:"structure"` @@ -40194,7 +39847,6 @@ func (s *DescribeStaleSecurityGroupsInput) SetVpcId(v string) *DescribeStaleSecu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeStaleSecurityGroupsResult type DescribeStaleSecurityGroupsOutput struct { _ struct{} `type:"structure"` @@ -40229,7 +39881,6 @@ func (s *DescribeStaleSecurityGroupsOutput) SetStaleSecurityGroupSet(v []*StaleS } // Contains the parameters for DescribeSubnets. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSubnetsRequest type DescribeSubnetsInput struct { _ struct{} `type:"structure"` @@ -40321,7 +39972,6 @@ func (s *DescribeSubnetsInput) SetSubnetIds(v []*string) *DescribeSubnetsInput { } // Contains the output of DescribeSubnets. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeSubnetsResult type DescribeSubnetsOutput struct { _ struct{} `type:"structure"` @@ -40346,7 +39996,6 @@ func (s *DescribeSubnetsOutput) SetSubnets(v []*Subnet) *DescribeSubnetsOutput { } // Contains the parameters for DescribeTags. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTagsRequest type DescribeTagsInput struct { _ struct{} `type:"structure"` @@ -40415,7 +40064,6 @@ func (s *DescribeTagsInput) SetNextToken(v string) *DescribeTagsInput { } // Contains the output of DescribeTags. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeTagsResult type DescribeTagsOutput struct { _ struct{} `type:"structure"` @@ -40450,7 +40098,6 @@ func (s *DescribeTagsOutput) SetTags(v []*TagDescription) *DescribeTagsOutput { } // Contains the parameters for DescribeVolumeAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumeAttributeRequest type DescribeVolumeAttributeInput struct { _ struct{} `type:"structure"` @@ -40511,7 +40158,6 @@ func (s *DescribeVolumeAttributeInput) SetVolumeId(v string) *DescribeVolumeAttr } // Contains the output of DescribeVolumeAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumeAttributeResult type DescribeVolumeAttributeOutput struct { _ struct{} `type:"structure"` @@ -40554,7 +40200,6 @@ func (s *DescribeVolumeAttributeOutput) SetVolumeId(v string) *DescribeVolumeAtt } // Contains the parameters for DescribeVolumeStatus. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumeStatusRequest type DescribeVolumeStatusInput struct { _ struct{} `type:"structure"` @@ -40660,7 +40305,6 @@ func (s *DescribeVolumeStatusInput) SetVolumeIds(v []*string) *DescribeVolumeSta } // Contains the output of DescribeVolumeStatus. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumeStatusResult type DescribeVolumeStatusOutput struct { _ struct{} `type:"structure"` @@ -40695,7 +40339,6 @@ func (s *DescribeVolumeStatusOutput) SetVolumeStatuses(v []*VolumeStatusItem) *D } // Contains the parameters for DescribeVolumes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumesRequest type DescribeVolumesInput struct { _ struct{} `type:"structure"` @@ -40818,7 +40461,6 @@ func (s *DescribeVolumesInput) SetVolumeIds(v []*string) *DescribeVolumesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumesModificationsRequest type DescribeVolumesModificationsInput struct { _ struct{} `type:"structure"` @@ -40884,7 +40526,6 @@ func (s *DescribeVolumesModificationsInput) SetVolumeIds(v []*string) *DescribeV return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumesModificationsResult type DescribeVolumesModificationsOutput struct { _ struct{} `type:"structure"` @@ -40918,7 +40559,6 @@ func (s *DescribeVolumesModificationsOutput) SetVolumesModifications(v []*Volume } // Contains the output of DescribeVolumes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVolumesResult type DescribeVolumesOutput struct { _ struct{} `type:"structure"` @@ -40955,7 +40595,6 @@ func (s *DescribeVolumesOutput) SetVolumes(v []*Volume) *DescribeVolumesOutput { } // Contains the parameters for DescribeVpcAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcAttributeRequest type DescribeVpcAttributeInput struct { _ struct{} `type:"structure"` @@ -41021,7 +40660,6 @@ func (s *DescribeVpcAttributeInput) SetVpcId(v string) *DescribeVpcAttributeInpu } // Contains the output of DescribeVpcAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcAttributeResult type DescribeVpcAttributeOutput struct { _ struct{} `type:"structure"` @@ -41068,7 +40706,6 @@ func (s *DescribeVpcAttributeOutput) SetVpcId(v string) *DescribeVpcAttributeOut } // Contains the parameters for DescribeVpcClassicLinkDnsSupport. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcClassicLinkDnsSupportRequest type DescribeVpcClassicLinkDnsSupportInput struct { _ struct{} `type:"structure"` @@ -41130,7 +40767,6 @@ func (s *DescribeVpcClassicLinkDnsSupportInput) SetVpcIds(v []*string) *Describe } // Contains the output of DescribeVpcClassicLinkDnsSupport. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcClassicLinkDnsSupportResult type DescribeVpcClassicLinkDnsSupportOutput struct { _ struct{} `type:"structure"` @@ -41164,7 +40800,6 @@ func (s *DescribeVpcClassicLinkDnsSupportOutput) SetVpcs(v []*ClassicLinkDnsSupp } // Contains the parameters for DescribeVpcClassicLink. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcClassicLinkRequest type DescribeVpcClassicLinkInput struct { _ struct{} `type:"structure"` @@ -41229,7 +40864,6 @@ func (s *DescribeVpcClassicLinkInput) SetVpcIds(v []*string) *DescribeVpcClassic } // Contains the output of DescribeVpcClassicLink. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcClassicLinkResult type DescribeVpcClassicLinkOutput struct { _ struct{} `type:"structure"` @@ -41253,7 +40887,6 @@ func (s *DescribeVpcClassicLinkOutput) SetVpcs(v []*VpcClassicLink) *DescribeVpc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointConnectionNotificationsRequest type DescribeVpcEndpointConnectionNotificationsInput struct { _ struct{} `type:"structure"` @@ -41330,7 +40963,6 @@ func (s *DescribeVpcEndpointConnectionNotificationsInput) SetNextToken(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointConnectionNotificationsResult type DescribeVpcEndpointConnectionNotificationsOutput struct { _ struct{} `type:"structure"` @@ -41364,7 +40996,6 @@ func (s *DescribeVpcEndpointConnectionNotificationsOutput) SetNextToken(v string return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointConnectionsRequest type DescribeVpcEndpointConnectionsInput struct { _ struct{} `type:"structure"` @@ -41431,7 +41062,6 @@ func (s *DescribeVpcEndpointConnectionsInput) SetNextToken(v string) *DescribeVp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointConnectionsResult type DescribeVpcEndpointConnectionsOutput struct { _ struct{} `type:"structure"` @@ -41465,7 +41095,6 @@ func (s *DescribeVpcEndpointConnectionsOutput) SetVpcEndpointConnections(v []*Vp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointServiceConfigurationsRequest type DescribeVpcEndpointServiceConfigurationsInput struct { _ struct{} `type:"structure"` @@ -41539,7 +41168,6 @@ func (s *DescribeVpcEndpointServiceConfigurationsInput) SetServiceIds(v []*strin return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointServiceConfigurationsResult type DescribeVpcEndpointServiceConfigurationsOutput struct { _ struct{} `type:"structure"` @@ -41573,7 +41201,6 @@ func (s *DescribeVpcEndpointServiceConfigurationsOutput) SetServiceConfiguration return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointServicePermissionsRequest type DescribeVpcEndpointServicePermissionsInput struct { _ struct{} `type:"structure"` @@ -41660,7 +41287,6 @@ func (s *DescribeVpcEndpointServicePermissionsInput) SetServiceId(v string) *Des return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointServicePermissionsResult type DescribeVpcEndpointServicePermissionsOutput struct { _ struct{} `type:"structure"` @@ -41695,7 +41321,6 @@ func (s *DescribeVpcEndpointServicePermissionsOutput) SetNextToken(v string) *De } // Contains the parameters for DescribeVpcEndpointServices. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointServicesRequest type DescribeVpcEndpointServicesInput struct { _ struct{} `type:"structure"` @@ -41766,7 +41391,6 @@ func (s *DescribeVpcEndpointServicesInput) SetServiceNames(v []*string) *Describ } // Contains the output of DescribeVpcEndpointServices. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointServicesResult type DescribeVpcEndpointServicesOutput struct { _ struct{} `type:"structure"` @@ -41810,7 +41434,6 @@ func (s *DescribeVpcEndpointServicesOutput) SetServiceNames(v []*string) *Descri } // Contains the parameters for DescribeVpcEndpoints. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointsRequest type DescribeVpcEndpointsInput struct { _ struct{} `type:"structure"` @@ -41888,7 +41511,6 @@ func (s *DescribeVpcEndpointsInput) SetVpcEndpointIds(v []*string) *DescribeVpcE } // Contains the output of DescribeVpcEndpoints. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcEndpointsResult type DescribeVpcEndpointsOutput struct { _ struct{} `type:"structure"` @@ -41923,7 +41545,6 @@ func (s *DescribeVpcEndpointsOutput) SetVpcEndpoints(v []*VpcEndpoint) *Describe } // Contains the parameters for DescribeVpcPeeringConnections. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcPeeringConnectionsRequest type DescribeVpcPeeringConnectionsInput struct { _ struct{} `type:"structure"` @@ -42012,7 +41633,6 @@ func (s *DescribeVpcPeeringConnectionsInput) SetVpcPeeringConnectionIds(v []*str } // Contains the output of DescribeVpcPeeringConnections. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcPeeringConnectionsResult type DescribeVpcPeeringConnectionsOutput struct { _ struct{} `type:"structure"` @@ -42037,7 +41657,6 @@ func (s *DescribeVpcPeeringConnectionsOutput) SetVpcPeeringConnections(v []*VpcP } // Contains the parameters for DescribeVpcs. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcsRequest type DescribeVpcsInput struct { _ struct{} `type:"structure"` @@ -42132,7 +41751,6 @@ func (s *DescribeVpcsInput) SetVpcIds(v []*string) *DescribeVpcsInput { } // Contains the output of DescribeVpcs. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpcsResult type DescribeVpcsOutput struct { _ struct{} `type:"structure"` @@ -42157,7 +41775,6 @@ func (s *DescribeVpcsOutput) SetVpcs(v []*Vpc) *DescribeVpcsOutput { } // Contains the parameters for DescribeVpnConnections. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpnConnectionsRequest type DescribeVpnConnectionsInput struct { _ struct{} `type:"structure"` @@ -42248,7 +41865,6 @@ func (s *DescribeVpnConnectionsInput) SetVpnConnectionIds(v []*string) *Describe } // Contains the output of DescribeVpnConnections. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpnConnectionsResult type DescribeVpnConnectionsOutput struct { _ struct{} `type:"structure"` @@ -42273,7 +41889,6 @@ func (s *DescribeVpnConnectionsOutput) SetVpnConnections(v []*VpnConnection) *De } // Contains the parameters for DescribeVpnGateways. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpnGatewaysRequest type DescribeVpnGatewaysInput struct { _ struct{} `type:"structure"` @@ -42356,7 +41971,6 @@ func (s *DescribeVpnGatewaysInput) SetVpnGatewayIds(v []*string) *DescribeVpnGat } // Contains the output of DescribeVpnGateways. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeVpnGatewaysResult type DescribeVpnGatewaysOutput struct { _ struct{} `type:"structure"` @@ -42381,7 +41995,6 @@ func (s *DescribeVpnGatewaysOutput) SetVpnGateways(v []*VpnGateway) *DescribeVpn } // Contains the parameters for DetachClassicLinkVpc. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachClassicLinkVpcRequest type DetachClassicLinkVpcInput struct { _ struct{} `type:"structure"` @@ -42447,7 +42060,6 @@ func (s *DetachClassicLinkVpcInput) SetVpcId(v string) *DetachClassicLinkVpcInpu } // Contains the output of DetachClassicLinkVpc. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachClassicLinkVpcResult type DetachClassicLinkVpcOutput struct { _ struct{} `type:"structure"` @@ -42472,7 +42084,6 @@ func (s *DetachClassicLinkVpcOutput) SetReturn(v bool) *DetachClassicLinkVpcOutp } // Contains the parameters for DetachInternetGateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachInternetGatewayRequest type DetachInternetGatewayInput struct { _ struct{} `type:"structure"` @@ -42537,7 +42148,6 @@ func (s *DetachInternetGatewayInput) SetVpcId(v string) *DetachInternetGatewayIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachInternetGatewayOutput type DetachInternetGatewayOutput struct { _ struct{} `type:"structure"` } @@ -42553,7 +42163,6 @@ func (s DetachInternetGatewayOutput) GoString() string { } // Contains the parameters for DetachNetworkInterface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachNetworkInterfaceRequest type DetachNetworkInterfaceInput struct { _ struct{} `type:"structure"` @@ -42613,7 +42222,6 @@ func (s *DetachNetworkInterfaceInput) SetForce(v bool) *DetachNetworkInterfaceIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachNetworkInterfaceOutput type DetachNetworkInterfaceOutput struct { _ struct{} `type:"structure"` } @@ -42629,7 +42237,6 @@ func (s DetachNetworkInterfaceOutput) GoString() string { } // Contains the parameters for DetachVolume. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachVolumeRequest type DetachVolumeInput struct { _ struct{} `type:"structure"` @@ -42714,7 +42321,6 @@ func (s *DetachVolumeInput) SetVolumeId(v string) *DetachVolumeInput { } // Contains the parameters for DetachVpnGateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachVpnGatewayRequest type DetachVpnGatewayInput struct { _ struct{} `type:"structure"` @@ -42779,7 +42385,6 @@ func (s *DetachVpnGatewayInput) SetVpnGatewayId(v string) *DetachVpnGatewayInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DetachVpnGatewayOutput type DetachVpnGatewayOutput struct { _ struct{} `type:"structure"` } @@ -42795,7 +42400,6 @@ func (s DetachVpnGatewayOutput) GoString() string { } // Describes a DHCP configuration option. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DhcpConfiguration type DhcpConfiguration struct { _ struct{} `type:"structure"` @@ -42829,7 +42433,6 @@ func (s *DhcpConfiguration) SetValues(v []*AttributeValue) *DhcpConfiguration { } // Describes a set of DHCP options. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DhcpOptions type DhcpOptions struct { _ struct{} `type:"structure"` @@ -42872,7 +42475,6 @@ func (s *DhcpOptions) SetTags(v []*Tag) *DhcpOptions { } // Contains the parameters for DisableVgwRoutePropagation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableVgwRoutePropagationRequest type DisableVgwRoutePropagationInput struct { _ struct{} `type:"structure"` @@ -42925,7 +42527,6 @@ func (s *DisableVgwRoutePropagationInput) SetRouteTableId(v string) *DisableVgwR return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableVgwRoutePropagationOutput type DisableVgwRoutePropagationOutput struct { _ struct{} `type:"structure"` } @@ -42941,7 +42542,6 @@ func (s DisableVgwRoutePropagationOutput) GoString() string { } // Contains the parameters for DisableVpcClassicLinkDnsSupport. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableVpcClassicLinkDnsSupportRequest type DisableVpcClassicLinkDnsSupportInput struct { _ struct{} `type:"structure"` @@ -42966,7 +42566,6 @@ func (s *DisableVpcClassicLinkDnsSupportInput) SetVpcId(v string) *DisableVpcCla } // Contains the output of DisableVpcClassicLinkDnsSupport. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableVpcClassicLinkDnsSupportResult type DisableVpcClassicLinkDnsSupportOutput struct { _ struct{} `type:"structure"` @@ -42991,7 +42590,6 @@ func (s *DisableVpcClassicLinkDnsSupportOutput) SetReturn(v bool) *DisableVpcCla } // Contains the parameters for DisableVpcClassicLink. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableVpcClassicLinkRequest type DisableVpcClassicLinkInput struct { _ struct{} `type:"structure"` @@ -43043,7 +42641,6 @@ func (s *DisableVpcClassicLinkInput) SetVpcId(v string) *DisableVpcClassicLinkIn } // Contains the output of DisableVpcClassicLink. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisableVpcClassicLinkResult type DisableVpcClassicLinkOutput struct { _ struct{} `type:"structure"` @@ -43068,7 +42665,6 @@ func (s *DisableVpcClassicLinkOutput) SetReturn(v bool) *DisableVpcClassicLinkOu } // Contains the parameters for DisassociateAddress. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateAddressRequest type DisassociateAddressInput struct { _ struct{} `type:"structure"` @@ -43113,7 +42709,6 @@ func (s *DisassociateAddressInput) SetPublicIp(v string) *DisassociateAddressInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateAddressOutput type DisassociateAddressOutput struct { _ struct{} `type:"structure"` } @@ -43128,7 +42723,6 @@ func (s DisassociateAddressOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateIamInstanceProfileRequest type DisassociateIamInstanceProfileInput struct { _ struct{} `type:"structure"` @@ -43167,7 +42761,6 @@ func (s *DisassociateIamInstanceProfileInput) SetAssociationId(v string) *Disass return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateIamInstanceProfileResult type DisassociateIamInstanceProfileOutput struct { _ struct{} `type:"structure"` @@ -43192,7 +42785,6 @@ func (s *DisassociateIamInstanceProfileOutput) SetIamInstanceProfileAssociation( } // Contains the parameters for DisassociateRouteTable. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateRouteTableRequest type DisassociateRouteTableInput struct { _ struct{} `type:"structure"` @@ -43244,7 +42836,6 @@ func (s *DisassociateRouteTableInput) SetDryRun(v bool) *DisassociateRouteTableI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateRouteTableOutput type DisassociateRouteTableOutput struct { _ struct{} `type:"structure"` } @@ -43259,7 +42850,6 @@ func (s DisassociateRouteTableOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateSubnetCidrBlockRequest type DisassociateSubnetCidrBlockInput struct { _ struct{} `type:"structure"` @@ -43298,7 +42888,6 @@ func (s *DisassociateSubnetCidrBlockInput) SetAssociationId(v string) *Disassoci return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateSubnetCidrBlockResult type DisassociateSubnetCidrBlockOutput struct { _ struct{} `type:"structure"` @@ -43331,7 +42920,6 @@ func (s *DisassociateSubnetCidrBlockOutput) SetSubnetId(v string) *DisassociateS return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateVpcCidrBlockRequest type DisassociateVpcCidrBlockInput struct { _ struct{} `type:"structure"` @@ -43370,7 +42958,6 @@ func (s *DisassociateVpcCidrBlockInput) SetAssociationId(v string) *Disassociate return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DisassociateVpcCidrBlockResult type DisassociateVpcCidrBlockOutput struct { _ struct{} `type:"structure"` @@ -43413,7 +43000,6 @@ func (s *DisassociateVpcCidrBlockOutput) SetVpcId(v string) *DisassociateVpcCidr } // Describes a disk image. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DiskImage type DiskImage struct { _ struct{} `type:"structure"` @@ -43476,7 +43062,6 @@ func (s *DiskImage) SetVolume(v *VolumeDetail) *DiskImage { } // Describes a disk image. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DiskImageDescription type DiskImageDescription struct { _ struct{} `type:"structure"` @@ -43541,7 +43126,6 @@ func (s *DiskImageDescription) SetSize(v int64) *DiskImageDescription { } // Describes a disk image. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DiskImageDetail type DiskImageDetail struct { _ struct{} `type:"structure"` @@ -43616,7 +43200,6 @@ func (s *DiskImageDetail) SetImportManifestUrl(v string) *DiskImageDetail { } // Describes a disk image volume. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DiskImageVolumeDescription type DiskImageVolumeDescription struct { _ struct{} `type:"structure"` @@ -43652,7 +43235,6 @@ func (s *DiskImageVolumeDescription) SetSize(v int64) *DiskImageVolumeDescriptio } // Describes a DNS entry. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DnsEntry type DnsEntry struct { _ struct{} `type:"structure"` @@ -43686,7 +43268,6 @@ func (s *DnsEntry) SetHostedZoneId(v string) *DnsEntry { } // Describes a block device for an EBS volume. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EbsBlockDevice type EbsBlockDevice struct { _ struct{} `type:"structure"` @@ -43796,7 +43377,6 @@ func (s *EbsBlockDevice) SetVolumeType(v string) *EbsBlockDevice { } // Describes a parameter used to set up an EBS volume in a block device mapping. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EbsInstanceBlockDevice type EbsInstanceBlockDevice struct { _ struct{} `type:"structure"` @@ -43849,7 +43429,6 @@ func (s *EbsInstanceBlockDevice) SetVolumeId(v string) *EbsInstanceBlockDevice { // Describes information used to set up an EBS volume specified in a block device // mapping. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EbsInstanceBlockDeviceSpecification type EbsInstanceBlockDeviceSpecification struct { _ struct{} `type:"structure"` @@ -43883,7 +43462,6 @@ func (s *EbsInstanceBlockDeviceSpecification) SetVolumeId(v string) *EbsInstance } // Describes an egress-only Internet gateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EgressOnlyInternetGateway type EgressOnlyInternetGateway struct { _ struct{} `type:"structure"` @@ -43917,7 +43495,6 @@ func (s *EgressOnlyInternetGateway) SetEgressOnlyInternetGatewayId(v string) *Eg } // Describes the association between an instance and an Elastic GPU. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ElasticGpuAssociation type ElasticGpuAssociation struct { _ struct{} `type:"structure"` @@ -43969,7 +43546,6 @@ func (s *ElasticGpuAssociation) SetElasticGpuId(v string) *ElasticGpuAssociation } // Describes the status of an Elastic GPU. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ElasticGpuHealth type ElasticGpuHealth struct { _ struct{} `type:"structure"` @@ -43994,7 +43570,6 @@ func (s *ElasticGpuHealth) SetStatus(v string) *ElasticGpuHealth { } // A specification for an Elastic GPU. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ElasticGpuSpecification type ElasticGpuSpecification struct { _ struct{} `type:"structure"` @@ -44034,7 +43609,6 @@ func (s *ElasticGpuSpecification) SetType(v string) *ElasticGpuSpecification { } // Describes an elastic GPU. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ElasticGpuSpecificationResponse type ElasticGpuSpecificationResponse struct { _ struct{} `type:"structure"` @@ -44059,7 +43633,6 @@ func (s *ElasticGpuSpecificationResponse) SetType(v string) *ElasticGpuSpecifica } // Describes an Elastic GPU. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ElasticGpus type ElasticGpus struct { _ struct{} `type:"structure"` @@ -44129,7 +43702,6 @@ func (s *ElasticGpus) SetInstanceId(v string) *ElasticGpus { } // Contains the parameters for EnableVgwRoutePropagation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVgwRoutePropagationRequest type EnableVgwRoutePropagationInput struct { _ struct{} `type:"structure"` @@ -44182,7 +43754,6 @@ func (s *EnableVgwRoutePropagationInput) SetRouteTableId(v string) *EnableVgwRou return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVgwRoutePropagationOutput type EnableVgwRoutePropagationOutput struct { _ struct{} `type:"structure"` } @@ -44198,7 +43769,6 @@ func (s EnableVgwRoutePropagationOutput) GoString() string { } // Contains the parameters for EnableVolumeIO. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVolumeIORequest type EnableVolumeIOInput struct { _ struct{} `type:"structure"` @@ -44249,7 +43819,6 @@ func (s *EnableVolumeIOInput) SetVolumeId(v string) *EnableVolumeIOInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVolumeIOOutput type EnableVolumeIOOutput struct { _ struct{} `type:"structure"` } @@ -44265,7 +43834,6 @@ func (s EnableVolumeIOOutput) GoString() string { } // Contains the parameters for EnableVpcClassicLinkDnsSupport. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVpcClassicLinkDnsSupportRequest type EnableVpcClassicLinkDnsSupportInput struct { _ struct{} `type:"structure"` @@ -44290,7 +43858,6 @@ func (s *EnableVpcClassicLinkDnsSupportInput) SetVpcId(v string) *EnableVpcClass } // Contains the output of EnableVpcClassicLinkDnsSupport. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVpcClassicLinkDnsSupportResult type EnableVpcClassicLinkDnsSupportOutput struct { _ struct{} `type:"structure"` @@ -44315,7 +43882,6 @@ func (s *EnableVpcClassicLinkDnsSupportOutput) SetReturn(v bool) *EnableVpcClass } // Contains the parameters for EnableVpcClassicLink. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVpcClassicLinkRequest type EnableVpcClassicLinkInput struct { _ struct{} `type:"structure"` @@ -44367,7 +43933,6 @@ func (s *EnableVpcClassicLinkInput) SetVpcId(v string) *EnableVpcClassicLinkInpu } // Contains the output of EnableVpcClassicLink. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EnableVpcClassicLinkResult type EnableVpcClassicLinkOutput struct { _ struct{} `type:"structure"` @@ -44392,7 +43957,6 @@ func (s *EnableVpcClassicLinkOutput) SetReturn(v bool) *EnableVpcClassicLinkOutp } // Describes a Spot Fleet event. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/EventInformation type EventInformation struct { _ struct{} `type:"structure"` @@ -44496,7 +44060,6 @@ func (s *EventInformation) SetInstanceId(v string) *EventInformation { } // Describes an instance export task. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportTask type ExportTask struct { _ struct{} `type:"structure"` @@ -44566,7 +44129,6 @@ func (s *ExportTask) SetStatusMessage(v string) *ExportTask { } // Describes the format and location for an instance export task. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportToS3Task type ExportToS3Task struct { _ struct{} `type:"structure"` @@ -44620,7 +44182,6 @@ func (s *ExportToS3Task) SetS3Key(v string) *ExportToS3Task { } // Describes an instance export task. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ExportToS3TaskSpecification type ExportToS3TaskSpecification struct { _ struct{} `type:"structure"` @@ -44677,7 +44238,6 @@ func (s *ExportToS3TaskSpecification) SetS3Prefix(v string) *ExportToS3TaskSpeci // A filter name and value pair that is used to return a more specific list // of results. Filters can be used to match a set of resources by various criteria, // such as tags, attributes, or IDs. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Filter type Filter struct { _ struct{} `type:"structure"` @@ -44711,7 +44271,6 @@ func (s *Filter) SetValues(v []*string) *Filter { } // Describes a launch template. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/FleetLaunchTemplateSpecification type FleetLaunchTemplateSpecification struct { _ struct{} `type:"structure"` @@ -44770,7 +44329,6 @@ func (s *FleetLaunchTemplateSpecification) SetVersion(v string) *FleetLaunchTemp } // Describes a flow log. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/FlowLog type FlowLog struct { _ struct{} `type:"structure"` @@ -44872,7 +44430,6 @@ func (s *FlowLog) SetTrafficType(v string) *FlowLog { } // Describes an Amazon FPGA image (AFI). -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/FpgaImage type FpgaImage struct { _ struct{} `type:"structure"` @@ -45014,7 +44571,6 @@ func (s *FpgaImage) SetUpdateTime(v time.Time) *FpgaImage { } // Describes an Amazon FPGA image (AFI) attribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/FpgaImageAttribute type FpgaImageAttribute struct { _ struct{} `type:"structure"` @@ -45076,7 +44632,6 @@ func (s *FpgaImageAttribute) SetProductCodes(v []*ProductCode) *FpgaImageAttribu // Describes the state of the bitstream generation process for an Amazon FPGA // image (AFI). -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/FpgaImageState type FpgaImageState struct { _ struct{} `type:"structure"` @@ -45118,7 +44673,6 @@ func (s *FpgaImageState) SetMessage(v string) *FpgaImageState { } // Contains the parameters for GetConsoleOutput. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetConsoleOutputRequest type GetConsoleOutputInput struct { _ struct{} `type:"structure"` @@ -45170,7 +44724,6 @@ func (s *GetConsoleOutputInput) SetInstanceId(v string) *GetConsoleOutputInput { } // Contains the output of GetConsoleOutput. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetConsoleOutputResult type GetConsoleOutputOutput struct { _ struct{} `type:"structure"` @@ -45214,7 +44767,6 @@ func (s *GetConsoleOutputOutput) SetTimestamp(v time.Time) *GetConsoleOutputOutp } // Contains the parameters for the request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetConsoleScreenshotRequest type GetConsoleScreenshotInput struct { _ struct{} `type:"structure"` @@ -45276,7 +44828,6 @@ func (s *GetConsoleScreenshotInput) SetWakeUp(v bool) *GetConsoleScreenshotInput } // Contains the output of the request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetConsoleScreenshotResult type GetConsoleScreenshotOutput struct { _ struct{} `type:"structure"` @@ -45309,7 +44860,6 @@ func (s *GetConsoleScreenshotOutput) SetInstanceId(v string) *GetConsoleScreensh return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetHostReservationPurchasePreviewRequest type GetHostReservationPurchasePreviewInput struct { _ struct{} `type:"structure"` @@ -45363,7 +44913,6 @@ func (s *GetHostReservationPurchasePreviewInput) SetOfferingId(v string) *GetHos return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetHostReservationPurchasePreviewResult type GetHostReservationPurchasePreviewOutput struct { _ struct{} `type:"structure"` @@ -45416,7 +44965,6 @@ func (s *GetHostReservationPurchasePreviewOutput) SetTotalUpfrontPrice(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetLaunchTemplateDataRequest type GetLaunchTemplateDataInput struct { _ struct{} `type:"structure"` @@ -45467,7 +45015,6 @@ func (s *GetLaunchTemplateDataInput) SetInstanceId(v string) *GetLaunchTemplateD return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetLaunchTemplateDataResult type GetLaunchTemplateDataOutput struct { _ struct{} `type:"structure"` @@ -45492,7 +45039,6 @@ func (s *GetLaunchTemplateDataOutput) SetLaunchTemplateData(v *ResponseLaunchTem } // Contains the parameters for GetPasswordData. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetPasswordDataRequest type GetPasswordDataInput struct { _ struct{} `type:"structure"` @@ -45544,7 +45090,6 @@ func (s *GetPasswordDataInput) SetInstanceId(v string) *GetPasswordDataInput { } // Contains the output of GetPasswordData. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetPasswordDataResult type GetPasswordDataOutput struct { _ struct{} `type:"structure"` @@ -45588,7 +45133,6 @@ func (s *GetPasswordDataOutput) SetTimestamp(v time.Time) *GetPasswordDataOutput } // Contains the parameters for GetReservedInstanceExchangeQuote. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetReservedInstancesExchangeQuoteRequest type GetReservedInstancesExchangeQuoteInput struct { _ struct{} `type:"structure"` @@ -45660,7 +45204,6 @@ func (s *GetReservedInstancesExchangeQuoteInput) SetTargetConfigurations(v []*Ta } // Contains the output of GetReservedInstancesExchangeQuote. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GetReservedInstancesExchangeQuoteResult type GetReservedInstancesExchangeQuoteOutput struct { _ struct{} `type:"structure"` @@ -45757,7 +45300,6 @@ func (s *GetReservedInstancesExchangeQuoteOutput) SetValidationFailureReason(v s } // Describes a security group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/GroupIdentifier type GroupIdentifier struct { _ struct{} `type:"structure"` @@ -45791,7 +45333,6 @@ func (s *GroupIdentifier) SetGroupName(v string) *GroupIdentifier { } // Describes an event in the history of the Spot Fleet request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/HistoryRecord type HistoryRecord struct { _ struct{} `type:"structure"` @@ -45849,7 +45390,6 @@ func (s *HistoryRecord) SetTimestamp(v time.Time) *HistoryRecord { } // Describes the properties of the Dedicated Host. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Host type Host struct { _ struct{} `type:"structure"` @@ -45949,7 +45489,6 @@ func (s *Host) SetState(v string) *Host { } // Describes an instance running on a Dedicated Host. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/HostInstance type HostInstance struct { _ struct{} `type:"structure"` @@ -45983,7 +45522,6 @@ func (s *HostInstance) SetInstanceType(v string) *HostInstance { } // Details about the Dedicated Host Reservation offering. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/HostOffering type HostOffering struct { _ struct{} `type:"structure"` @@ -46062,7 +45600,6 @@ func (s *HostOffering) SetUpfrontPrice(v string) *HostOffering { } // Describes properties of a Dedicated Host. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/HostProperties type HostProperties struct { _ struct{} `type:"structure"` @@ -46114,7 +45651,6 @@ func (s *HostProperties) SetTotalVCpus(v int64) *HostProperties { } // Details about the Dedicated Host Reservation and associated Dedicated Hosts. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/HostReservation type HostReservation struct { _ struct{} `type:"structure"` @@ -46252,7 +45788,6 @@ func (s *HostReservation) SetUpfrontPrice(v string) *HostReservation { } // Describes an IAM instance profile. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/IamInstanceProfile type IamInstanceProfile struct { _ struct{} `type:"structure"` @@ -46286,7 +45821,6 @@ func (s *IamInstanceProfile) SetId(v string) *IamInstanceProfile { } // Describes an association between an IAM instance profile and an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/IamInstanceProfileAssociation type IamInstanceProfileAssociation struct { _ struct{} `type:"structure"` @@ -46347,7 +45881,6 @@ func (s *IamInstanceProfileAssociation) SetTimestamp(v time.Time) *IamInstancePr } // Describes an IAM instance profile. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/IamInstanceProfileSpecification type IamInstanceProfileSpecification struct { _ struct{} `type:"structure"` @@ -46381,7 +45914,6 @@ func (s *IamInstanceProfileSpecification) SetName(v string) *IamInstanceProfileS } // Describes the ICMP type and code. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/IcmpTypeCode type IcmpTypeCode struct { _ struct{} `type:"structure"` @@ -46415,7 +45947,6 @@ func (s *IcmpTypeCode) SetType(v int64) *IcmpTypeCode { } // Describes the ID format for a resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/IdFormat type IdFormat struct { _ struct{} `type:"structure"` @@ -46460,7 +45991,6 @@ func (s *IdFormat) SetUseLongIds(v bool) *IdFormat { } // Describes an image. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Image type Image struct { _ struct{} `type:"structure"` @@ -46700,7 +46230,6 @@ func (s *Image) SetVirtualizationType(v string) *Image { } // Describes the disk container object for an import image task. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImageDiskContainer type ImageDiskContainer struct { _ struct{} `type:"structure"` @@ -46773,7 +46302,6 @@ func (s *ImageDiskContainer) SetUserBucket(v *UserBucket) *ImageDiskContainer { } // Contains the parameters for ImportImage. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportImageRequest type ImportImageInput struct { _ struct{} `type:"structure"` @@ -46895,7 +46423,6 @@ func (s *ImportImageInput) SetRoleName(v string) *ImportImageInput { } // Contains the output for ImportImage. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportImageResult type ImportImageOutput struct { _ struct{} `type:"structure"` @@ -47010,7 +46537,6 @@ func (s *ImportImageOutput) SetStatusMessage(v string) *ImportImageOutput { } // Describes an import image task. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportImageTask type ImportImageTask struct { _ struct{} `type:"structure"` @@ -47129,7 +46655,6 @@ func (s *ImportImageTask) SetStatusMessage(v string) *ImportImageTask { } // Contains the parameters for ImportInstance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportInstanceRequest type ImportInstanceInput struct { _ struct{} `type:"structure"` @@ -47218,7 +46743,6 @@ func (s *ImportInstanceInput) SetPlatform(v string) *ImportInstanceInput { } // Describes the launch specification for VM import. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportInstanceLaunchSpecification type ImportInstanceLaunchSpecification struct { _ struct{} `type:"structure"` @@ -47338,7 +46862,6 @@ func (s *ImportInstanceLaunchSpecification) SetUserData(v *UserData) *ImportInst } // Contains the output for ImportInstance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportInstanceResult type ImportInstanceOutput struct { _ struct{} `type:"structure"` @@ -47363,7 +46886,6 @@ func (s *ImportInstanceOutput) SetConversionTask(v *ConversionTask) *ImportInsta } // Describes an import instance task. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportInstanceTaskDetails type ImportInstanceTaskDetails struct { _ struct{} `type:"structure"` @@ -47417,7 +46939,6 @@ func (s *ImportInstanceTaskDetails) SetVolumes(v []*ImportInstanceVolumeDetailIt } // Describes an import volume task. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportInstanceVolumeDetailItem type ImportInstanceVolumeDetailItem struct { _ struct{} `type:"structure"` @@ -47506,7 +47027,6 @@ func (s *ImportInstanceVolumeDetailItem) SetVolume(v *DiskImageVolumeDescription } // Contains the parameters for ImportKeyPair. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportKeyPairRequest type ImportKeyPairInput struct { _ struct{} `type:"structure"` @@ -47575,7 +47095,6 @@ func (s *ImportKeyPairInput) SetPublicKeyMaterial(v []byte) *ImportKeyPairInput } // Contains the output of ImportKeyPair. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportKeyPairResult type ImportKeyPairOutput struct { _ struct{} `type:"structure"` @@ -47609,7 +47128,6 @@ func (s *ImportKeyPairOutput) SetKeyName(v string) *ImportKeyPairOutput { } // Contains the parameters for ImportSnapshot. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportSnapshotRequest type ImportSnapshotInput struct { _ struct{} `type:"structure"` @@ -47682,7 +47200,6 @@ func (s *ImportSnapshotInput) SetRoleName(v string) *ImportSnapshotInput { } // Contains the output for ImportSnapshot. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportSnapshotResult type ImportSnapshotOutput struct { _ struct{} `type:"structure"` @@ -47725,7 +47242,6 @@ func (s *ImportSnapshotOutput) SetSnapshotTaskDetail(v *SnapshotTaskDetail) *Imp } // Describes an import snapshot task. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportSnapshotTask type ImportSnapshotTask struct { _ struct{} `type:"structure"` @@ -47768,7 +47284,6 @@ func (s *ImportSnapshotTask) SetSnapshotTaskDetail(v *SnapshotTaskDetail) *Impor } // Contains the parameters for ImportVolume. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportVolumeRequest type ImportVolumeInput struct { _ struct{} `type:"structure"` @@ -47867,7 +47382,6 @@ func (s *ImportVolumeInput) SetVolume(v *VolumeDetail) *ImportVolumeInput { } // Contains the output for ImportVolume. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportVolumeResult type ImportVolumeOutput struct { _ struct{} `type:"structure"` @@ -47892,7 +47406,6 @@ func (s *ImportVolumeOutput) SetConversionTask(v *ConversionTask) *ImportVolumeO } // Describes an import volume task. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ImportVolumeTaskDetails type ImportVolumeTaskDetails struct { _ struct{} `type:"structure"` @@ -47961,7 +47474,6 @@ func (s *ImportVolumeTaskDetails) SetVolume(v *DiskImageVolumeDescription) *Impo } // Describes an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Instance type Instance struct { _ struct{} `type:"structure"` @@ -48350,7 +47862,6 @@ func (s *Instance) SetVpcId(v string) *Instance { } // Describes a block device mapping. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceBlockDeviceMapping type InstanceBlockDeviceMapping struct { _ struct{} `type:"structure"` @@ -48385,7 +47896,6 @@ func (s *InstanceBlockDeviceMapping) SetEbs(v *EbsInstanceBlockDevice) *Instance } // Describes a block device mapping entry. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceBlockDeviceMappingSpecification type InstanceBlockDeviceMappingSpecification struct { _ struct{} `type:"structure"` @@ -48438,7 +47948,6 @@ func (s *InstanceBlockDeviceMappingSpecification) SetVirtualName(v string) *Inst } // Information about the instance type that the Dedicated Host supports. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceCapacity type InstanceCapacity struct { _ struct{} `type:"structure"` @@ -48481,7 +47990,6 @@ func (s *InstanceCapacity) SetTotalCapacity(v int64) *InstanceCapacity { } // Describes a Reserved Instance listing state. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceCount type InstanceCount struct { _ struct{} `type:"structure"` @@ -48515,7 +48023,6 @@ func (s *InstanceCount) SetState(v string) *InstanceCount { } // Describes the credit option for CPU usage of a T2 instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceCreditSpecification type InstanceCreditSpecification struct { _ struct{} `type:"structure"` @@ -48550,7 +48057,6 @@ func (s *InstanceCreditSpecification) SetInstanceId(v string) *InstanceCreditSpe } // Describes the credit option for CPU usage of a T2 instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceCreditSpecificationRequest type InstanceCreditSpecificationRequest struct { _ struct{} `type:"structure"` @@ -48585,7 +48091,6 @@ func (s *InstanceCreditSpecificationRequest) SetInstanceId(v string) *InstanceCr } // Describes an instance to export. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceExportDetails type InstanceExportDetails struct { _ struct{} `type:"structure"` @@ -48619,7 +48124,6 @@ func (s *InstanceExportDetails) SetTargetEnvironment(v string) *InstanceExportDe } // Describes an IPv6 address. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceIpv6Address type InstanceIpv6Address struct { _ struct{} `type:"structure"` @@ -48644,7 +48148,6 @@ func (s *InstanceIpv6Address) SetIpv6Address(v string) *InstanceIpv6Address { } // Describes an IPv6 address. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceIpv6AddressRequest type InstanceIpv6AddressRequest struct { _ struct{} `type:"structure"` @@ -48669,7 +48172,6 @@ func (s *InstanceIpv6AddressRequest) SetIpv6Address(v string) *InstanceIpv6Addre } // Describes the market (purchasing) option for the instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceMarketOptionsRequest type InstanceMarketOptionsRequest struct { _ struct{} `type:"structure"` @@ -48703,7 +48205,6 @@ func (s *InstanceMarketOptionsRequest) SetSpotOptions(v *SpotMarketOptions) *Ins } // Describes the monitoring of an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceMonitoring type InstanceMonitoring struct { _ struct{} `type:"structure"` @@ -48737,7 +48238,6 @@ func (s *InstanceMonitoring) SetMonitoring(v *Monitoring) *InstanceMonitoring { } // Describes a network interface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceNetworkInterface type InstanceNetworkInterface struct { _ struct{} `type:"structure"` @@ -48889,7 +48389,6 @@ func (s *InstanceNetworkInterface) SetVpcId(v string) *InstanceNetworkInterface } // Describes association information for an Elastic IP address (IPv4). -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceNetworkInterfaceAssociation type InstanceNetworkInterfaceAssociation struct { _ struct{} `type:"structure"` @@ -48932,7 +48431,6 @@ func (s *InstanceNetworkInterfaceAssociation) SetPublicIp(v string) *InstanceNet } // Describes a network interface attachment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceNetworkInterfaceAttachment type InstanceNetworkInterfaceAttachment struct { _ struct{} `type:"structure"` @@ -48993,7 +48491,6 @@ func (s *InstanceNetworkInterfaceAttachment) SetStatus(v string) *InstanceNetwor } // Describes a network interface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceNetworkInterfaceSpecification type InstanceNetworkInterfaceSpecification struct { _ struct{} `type:"structure"` @@ -49163,7 +48660,6 @@ func (s *InstanceNetworkInterfaceSpecification) SetSubnetId(v string) *InstanceN } // Describes a private IPv4 address. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstancePrivateIpAddress type InstancePrivateIpAddress struct { _ struct{} `type:"structure"` @@ -49216,7 +48712,6 @@ func (s *InstancePrivateIpAddress) SetPrivateIpAddress(v string) *InstancePrivat } // Describes the current state of an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceState type InstanceState struct { _ struct{} `type:"structure"` @@ -49263,7 +48758,6 @@ func (s *InstanceState) SetName(v string) *InstanceState { } // Describes an instance state change. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceStateChange type InstanceStateChange struct { _ struct{} `type:"structure"` @@ -49306,7 +48800,6 @@ func (s *InstanceStateChange) SetPreviousState(v *InstanceState) *InstanceStateC } // Describes the status of an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceStatus type InstanceStatus struct { _ struct{} `type:"structure"` @@ -49380,7 +48873,6 @@ func (s *InstanceStatus) SetSystemStatus(v *InstanceStatusSummary) *InstanceStat } // Describes the instance status. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceStatusDetails type InstanceStatusDetails struct { _ struct{} `type:"structure"` @@ -49424,7 +48916,6 @@ func (s *InstanceStatusDetails) SetStatus(v string) *InstanceStatusDetails { } // Describes a scheduled event for an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceStatusEvent type InstanceStatusEvent struct { _ struct{} `type:"structure"` @@ -49480,7 +48971,6 @@ func (s *InstanceStatusEvent) SetNotBefore(v time.Time) *InstanceStatusEvent { } // Describes the status of an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InstanceStatusSummary type InstanceStatusSummary struct { _ struct{} `type:"structure"` @@ -49514,7 +49004,6 @@ func (s *InstanceStatusSummary) SetStatus(v string) *InstanceStatusSummary { } // Describes an Internet gateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InternetGateway type InternetGateway struct { _ struct{} `type:"structure"` @@ -49558,7 +49047,6 @@ func (s *InternetGateway) SetTags(v []*Tag) *InternetGateway { // Describes the attachment of a VPC to an Internet gateway or an egress-only // Internet gateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/InternetGatewayAttachment type InternetGatewayAttachment struct { _ struct{} `type:"structure"` @@ -49593,7 +49081,6 @@ func (s *InternetGatewayAttachment) SetVpcId(v string) *InternetGatewayAttachmen } // Describes a set of permissions for a security group rule. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/IpPermission type IpPermission struct { _ struct{} `type:"structure"` @@ -49687,7 +49174,6 @@ func (s *IpPermission) SetUserIdGroupPairs(v []*UserIdGroupPair) *IpPermission { } // Describes an IPv4 range. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/IpRange type IpRange struct { _ struct{} `type:"structure"` @@ -49726,7 +49212,6 @@ func (s *IpRange) SetDescription(v string) *IpRange { } // Describes an IPv6 CIDR block. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Ipv6CidrBlock type Ipv6CidrBlock struct { _ struct{} `type:"structure"` @@ -49751,7 +49236,6 @@ func (s *Ipv6CidrBlock) SetIpv6CidrBlock(v string) *Ipv6CidrBlock { } // [EC2-VPC only] Describes an IPv6 range. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Ipv6Range type Ipv6Range struct { _ struct{} `type:"structure"` @@ -49790,7 +49274,6 @@ func (s *Ipv6Range) SetDescription(v string) *Ipv6Range { } // Describes a key pair. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/KeyPairInfo type KeyPairInfo struct { _ struct{} `type:"structure"` @@ -49827,7 +49310,6 @@ func (s *KeyPairInfo) SetKeyName(v string) *KeyPairInfo { } // Describes a launch permission. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchPermission type LaunchPermission struct { _ struct{} `type:"structure"` @@ -49861,7 +49343,6 @@ func (s *LaunchPermission) SetUserId(v string) *LaunchPermission { } // Describes a launch permission modification. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchPermissionModifications type LaunchPermissionModifications struct { _ struct{} `type:"structure"` @@ -49896,7 +49377,6 @@ func (s *LaunchPermissionModifications) SetRemove(v []*LaunchPermission) *Launch } // Describes the launch specification for an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchSpecification type LaunchSpecification struct { _ struct{} `type:"structure"` @@ -50058,7 +49538,6 @@ func (s *LaunchSpecification) SetUserData(v string) *LaunchSpecification { } // Describes a launch template. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplate type LaunchTemplate struct { _ struct{} `type:"structure"` @@ -50137,7 +49616,6 @@ func (s *LaunchTemplate) SetTags(v []*Tag) *LaunchTemplate { } // Describes a block device mapping. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplateBlockDeviceMapping type LaunchTemplateBlockDeviceMapping struct { _ struct{} `type:"structure"` @@ -50190,7 +49668,6 @@ func (s *LaunchTemplateBlockDeviceMapping) SetVirtualName(v string) *LaunchTempl } // Describes a block device mapping. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplateBlockDeviceMappingRequest type LaunchTemplateBlockDeviceMappingRequest struct { _ struct{} `type:"structure"` @@ -50248,7 +49725,6 @@ func (s *LaunchTemplateBlockDeviceMappingRequest) SetVirtualName(v string) *Laun } // Describes a launch template and overrides. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplateConfig type LaunchTemplateConfig struct { _ struct{} `type:"structure"` @@ -50298,7 +49774,6 @@ func (s *LaunchTemplateConfig) SetOverrides(v []*LaunchTemplateOverrides) *Launc } // Describes a block device for an EBS volume. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplateEbsBlockDevice type LaunchTemplateEbsBlockDevice struct { _ struct{} `type:"structure"` @@ -50377,7 +49852,6 @@ func (s *LaunchTemplateEbsBlockDevice) SetVolumeType(v string) *LaunchTemplateEb } // The parameters for a block device for an EBS volume. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplateEbsBlockDeviceRequest type LaunchTemplateEbsBlockDeviceRequest struct { _ struct{} `type:"structure"` @@ -50470,7 +49944,6 @@ func (s *LaunchTemplateEbsBlockDeviceRequest) SetVolumeType(v string) *LaunchTem } // Describes an IAM instance profile. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplateIamInstanceProfileSpecification type LaunchTemplateIamInstanceProfileSpecification struct { _ struct{} `type:"structure"` @@ -50504,7 +49977,6 @@ func (s *LaunchTemplateIamInstanceProfileSpecification) SetName(v string) *Launc } // An IAM instance profile. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplateIamInstanceProfileSpecificationRequest type LaunchTemplateIamInstanceProfileSpecificationRequest struct { _ struct{} `type:"structure"` @@ -50538,7 +50010,6 @@ func (s *LaunchTemplateIamInstanceProfileSpecificationRequest) SetName(v string) } // The market (purchasing) option for the instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplateInstanceMarketOptions type LaunchTemplateInstanceMarketOptions struct { _ struct{} `type:"structure"` @@ -50572,7 +50043,6 @@ func (s *LaunchTemplateInstanceMarketOptions) SetSpotOptions(v *LaunchTemplateSp } // The market (purchasing) option for the instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplateInstanceMarketOptionsRequest type LaunchTemplateInstanceMarketOptionsRequest struct { _ struct{} `type:"structure"` @@ -50606,7 +50076,6 @@ func (s *LaunchTemplateInstanceMarketOptionsRequest) SetSpotOptions(v *LaunchTem } // Describes a network interface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplateInstanceNetworkInterfaceSpecification type LaunchTemplateInstanceNetworkInterfaceSpecification struct { _ struct{} `type:"structure"` @@ -50731,7 +50200,6 @@ func (s *LaunchTemplateInstanceNetworkInterfaceSpecification) SetSubnetId(v stri } // The parameters for a network interface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplateInstanceNetworkInterfaceSpecificationRequest type LaunchTemplateInstanceNetworkInterfaceSpecificationRequest struct { _ struct{} `type:"structure"` @@ -50878,7 +50346,6 @@ func (s *LaunchTemplateInstanceNetworkInterfaceSpecificationRequest) SetSubnetId } // Describes overrides for a launch template. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplateOverrides type LaunchTemplateOverrides struct { _ struct{} `type:"structure"` @@ -50939,7 +50406,6 @@ func (s *LaunchTemplateOverrides) SetWeightedCapacity(v float64) *LaunchTemplate } // Describes the placement of an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplatePlacement type LaunchTemplatePlacement struct { _ struct{} `type:"structure"` @@ -51010,7 +50476,6 @@ func (s *LaunchTemplatePlacement) SetTenancy(v string) *LaunchTemplatePlacement } // The placement for the instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplatePlacementRequest type LaunchTemplatePlacementRequest struct { _ struct{} `type:"structure"` @@ -51082,7 +50547,6 @@ func (s *LaunchTemplatePlacementRequest) SetTenancy(v string) *LaunchTemplatePla // The launch template to use. You must specify either the launch template ID // or launch template name in the request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplateSpecification type LaunchTemplateSpecification struct { _ struct{} `type:"structure"` @@ -51127,7 +50591,6 @@ func (s *LaunchTemplateSpecification) SetVersion(v string) *LaunchTemplateSpecif } // The options for Spot Instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplateSpotMarketOptions type LaunchTemplateSpotMarketOptions struct { _ struct{} `type:"structure"` @@ -51193,7 +50656,6 @@ func (s *LaunchTemplateSpotMarketOptions) SetValidUntil(v time.Time) *LaunchTemp } // The options for Spot Instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplateSpotMarketOptionsRequest type LaunchTemplateSpotMarketOptionsRequest struct { _ struct{} `type:"structure"` @@ -51260,7 +50722,6 @@ func (s *LaunchTemplateSpotMarketOptionsRequest) SetValidUntil(v time.Time) *Lau } // The tag specification for the launch template. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplateTagSpecification type LaunchTemplateTagSpecification struct { _ struct{} `type:"structure"` @@ -51294,7 +50755,6 @@ func (s *LaunchTemplateTagSpecification) SetTags(v []*Tag) *LaunchTemplateTagSpe } // The tags specification for the launch template. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplateTagSpecificationRequest type LaunchTemplateTagSpecificationRequest struct { _ struct{} `type:"structure"` @@ -51329,7 +50789,6 @@ func (s *LaunchTemplateTagSpecificationRequest) SetTags(v []*Tag) *LaunchTemplat } // Describes a launch template version. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplateVersion type LaunchTemplateVersion struct { _ struct{} `type:"structure"` @@ -51417,7 +50876,6 @@ func (s *LaunchTemplateVersion) SetVersionNumber(v int64) *LaunchTemplateVersion } // Describes the monitoring for the instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplatesMonitoring type LaunchTemplatesMonitoring struct { _ struct{} `type:"structure"` @@ -51443,7 +50901,6 @@ func (s *LaunchTemplatesMonitoring) SetEnabled(v bool) *LaunchTemplatesMonitorin } // Describes the monitoring for the instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LaunchTemplatesMonitoringRequest type LaunchTemplatesMonitoringRequest struct { _ struct{} `type:"structure"` @@ -51470,7 +50927,6 @@ func (s *LaunchTemplatesMonitoringRequest) SetEnabled(v bool) *LaunchTemplatesMo // Describes the Classic Load Balancers and target groups to attach to a Spot // Fleet request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LoadBalancersConfig type LoadBalancersConfig struct { _ struct{} `type:"structure"` @@ -51524,7 +50980,6 @@ func (s *LoadBalancersConfig) SetTargetGroupsConfig(v *TargetGroupsConfig) *Load } // Describes a load permission. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LoadPermission type LoadPermission struct { _ struct{} `type:"structure"` @@ -51558,7 +51013,6 @@ func (s *LoadPermission) SetUserId(v string) *LoadPermission { } // Describes modifications to the load permissions of an Amazon FPGA image (AFI). -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LoadPermissionModifications type LoadPermissionModifications struct { _ struct{} `type:"structure"` @@ -51592,7 +51046,6 @@ func (s *LoadPermissionModifications) SetRemove(v []*LoadPermissionRequest) *Loa } // Describes a load permission. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/LoadPermissionRequest type LoadPermissionRequest struct { _ struct{} `type:"structure"` @@ -51625,7 +51078,6 @@ func (s *LoadPermissionRequest) SetUserId(v string) *LoadPermissionRequest { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyFpgaImageAttributeRequest type ModifyFpgaImageAttributeInput struct { _ struct{} `type:"structure"` @@ -51752,7 +51204,6 @@ func (s *ModifyFpgaImageAttributeInput) SetUserIds(v []*string) *ModifyFpgaImage return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyFpgaImageAttributeResult type ModifyFpgaImageAttributeOutput struct { _ struct{} `type:"structure"` @@ -51777,7 +51228,6 @@ func (s *ModifyFpgaImageAttributeOutput) SetFpgaImageAttribute(v *FpgaImageAttri } // Contains the parameters for ModifyHosts. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyHostsRequest type ModifyHostsInput struct { _ struct{} `type:"structure"` @@ -51831,7 +51281,6 @@ func (s *ModifyHostsInput) SetHostIds(v []*string) *ModifyHostsInput { } // Contains the output of ModifyHosts. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyHostsResult type ModifyHostsOutput struct { _ struct{} `type:"structure"` @@ -51866,7 +51315,6 @@ func (s *ModifyHostsOutput) SetUnsuccessful(v []*UnsuccessfulItem) *ModifyHostsO } // Contains the parameters of ModifyIdFormat. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyIdFormatRequest type ModifyIdFormatInput struct { _ struct{} `type:"structure"` @@ -51919,7 +51367,6 @@ func (s *ModifyIdFormatInput) SetUseLongIds(v bool) *ModifyIdFormatInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyIdFormatOutput type ModifyIdFormatOutput struct { _ struct{} `type:"structure"` } @@ -51935,7 +51382,6 @@ func (s ModifyIdFormatOutput) GoString() string { } // Contains the parameters of ModifyIdentityIdFormat. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyIdentityIdFormatRequest type ModifyIdentityIdFormatInput struct { _ struct{} `type:"structure"` @@ -52004,7 +51450,6 @@ func (s *ModifyIdentityIdFormatInput) SetUseLongIds(v bool) *ModifyIdentityIdFor return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyIdentityIdFormatOutput type ModifyIdentityIdFormatOutput struct { _ struct{} `type:"structure"` } @@ -52020,7 +51465,6 @@ func (s ModifyIdentityIdFormatOutput) GoString() string { } // Contains the parameters for ModifyImageAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyImageAttributeRequest type ModifyImageAttributeInput struct { _ struct{} `type:"structure"` @@ -52149,7 +51593,6 @@ func (s *ModifyImageAttributeInput) SetValue(v string) *ModifyImageAttributeInpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyImageAttributeOutput type ModifyImageAttributeOutput struct { _ struct{} `type:"structure"` } @@ -52165,7 +51608,6 @@ func (s ModifyImageAttributeOutput) GoString() string { } // Contains the parameters for ModifyInstanceAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceAttributeRequest type ModifyInstanceAttributeInput struct { _ struct{} `type:"structure"` @@ -52381,7 +51823,6 @@ func (s *ModifyInstanceAttributeInput) SetValue(v string) *ModifyInstanceAttribu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceAttributeOutput type ModifyInstanceAttributeOutput struct { _ struct{} `type:"structure"` } @@ -52396,7 +51837,6 @@ func (s ModifyInstanceAttributeOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceCreditSpecificationRequest type ModifyInstanceCreditSpecificationInput struct { _ struct{} `type:"structure"` @@ -52458,7 +51898,6 @@ func (s *ModifyInstanceCreditSpecificationInput) SetInstanceCreditSpecifications return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstanceCreditSpecificationResult type ModifyInstanceCreditSpecificationOutput struct { _ struct{} `type:"structure"` @@ -52494,7 +51933,6 @@ func (s *ModifyInstanceCreditSpecificationOutput) SetUnsuccessfulInstanceCreditS } // Contains the parameters for ModifyInstancePlacement. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstancePlacementRequest type ModifyInstancePlacementInput struct { _ struct{} `type:"structure"` @@ -52561,7 +51999,6 @@ func (s *ModifyInstancePlacementInput) SetTenancy(v string) *ModifyInstancePlace } // Contains the output of ModifyInstancePlacement. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyInstancePlacementResult type ModifyInstancePlacementOutput struct { _ struct{} `type:"structure"` @@ -52585,7 +52022,6 @@ func (s *ModifyInstancePlacementOutput) SetReturn(v bool) *ModifyInstancePlaceme return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyLaunchTemplateRequest type ModifyLaunchTemplateInput struct { _ struct{} `type:"structure"` @@ -52664,7 +52100,6 @@ func (s *ModifyLaunchTemplateInput) SetLaunchTemplateName(v string) *ModifyLaunc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyLaunchTemplateResult type ModifyLaunchTemplateOutput struct { _ struct{} `type:"structure"` @@ -52689,7 +52124,6 @@ func (s *ModifyLaunchTemplateOutput) SetLaunchTemplate(v *LaunchTemplate) *Modif } // Contains the parameters for ModifyNetworkInterfaceAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyNetworkInterfaceAttributeRequest type ModifyNetworkInterfaceAttributeInput struct { _ struct{} `type:"structure"` @@ -52784,7 +52218,6 @@ func (s *ModifyNetworkInterfaceAttributeInput) SetSourceDestCheck(v *AttributeBo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyNetworkInterfaceAttributeOutput type ModifyNetworkInterfaceAttributeOutput struct { _ struct{} `type:"structure"` } @@ -52800,7 +52233,6 @@ func (s ModifyNetworkInterfaceAttributeOutput) GoString() string { } // Contains the parameters for ModifyReservedInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyReservedInstancesRequest type ModifyReservedInstancesInput struct { _ struct{} `type:"structure"` @@ -52864,7 +52296,6 @@ func (s *ModifyReservedInstancesInput) SetTargetConfigurations(v []*ReservedInst } // Contains the output of ModifyReservedInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyReservedInstancesResult type ModifyReservedInstancesOutput struct { _ struct{} `type:"structure"` @@ -52889,7 +52320,6 @@ func (s *ModifyReservedInstancesOutput) SetReservedInstancesModificationId(v str } // Contains the parameters for ModifySnapshotAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySnapshotAttributeRequest type ModifySnapshotAttributeInput struct { _ struct{} `type:"structure"` @@ -52987,7 +52417,6 @@ func (s *ModifySnapshotAttributeInput) SetUserIds(v []*string) *ModifySnapshotAt return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySnapshotAttributeOutput type ModifySnapshotAttributeOutput struct { _ struct{} `type:"structure"` } @@ -53003,7 +52432,6 @@ func (s ModifySnapshotAttributeOutput) GoString() string { } // Contains the parameters for ModifySpotFleetRequest. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySpotFleetRequestRequest type ModifySpotFleetRequestInput struct { _ struct{} `type:"structure"` @@ -53063,7 +52491,6 @@ func (s *ModifySpotFleetRequestInput) SetTargetCapacity(v int64) *ModifySpotFlee } // Contains the output of ModifySpotFleetRequest. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySpotFleetRequestResponse type ModifySpotFleetRequestOutput struct { _ struct{} `type:"structure"` @@ -53088,7 +52515,6 @@ func (s *ModifySpotFleetRequestOutput) SetReturn(v bool) *ModifySpotFleetRequest } // Contains the parameters for ModifySubnetAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySubnetAttributeRequest type ModifySubnetAttributeInput struct { _ struct{} `type:"structure"` @@ -53155,7 +52581,6 @@ func (s *ModifySubnetAttributeInput) SetSubnetId(v string) *ModifySubnetAttribut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifySubnetAttributeOutput type ModifySubnetAttributeOutput struct { _ struct{} `type:"structure"` } @@ -53171,7 +52596,6 @@ func (s ModifySubnetAttributeOutput) GoString() string { } // Contains the parameters for ModifyVolumeAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVolumeAttributeRequest type ModifyVolumeAttributeInput struct { _ struct{} `type:"structure"` @@ -53231,7 +52655,6 @@ func (s *ModifyVolumeAttributeInput) SetVolumeId(v string) *ModifyVolumeAttribut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVolumeAttributeOutput type ModifyVolumeAttributeOutput struct { _ struct{} `type:"structure"` } @@ -53246,7 +52669,6 @@ func (s ModifyVolumeAttributeOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVolumeRequest type ModifyVolumeInput struct { _ struct{} `type:"structure"` @@ -53338,7 +52760,6 @@ func (s *ModifyVolumeInput) SetVolumeType(v string) *ModifyVolumeInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVolumeResult type ModifyVolumeOutput struct { _ struct{} `type:"structure"` @@ -53363,7 +52784,6 @@ func (s *ModifyVolumeOutput) SetVolumeModification(v *VolumeModification) *Modif } // Contains the parameters for ModifyVpcAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcAttributeRequest type ModifyVpcAttributeInput struct { _ struct{} `type:"structure"` @@ -53432,7 +52852,6 @@ func (s *ModifyVpcAttributeInput) SetVpcId(v string) *ModifyVpcAttributeInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcAttributeOutput type ModifyVpcAttributeOutput struct { _ struct{} `type:"structure"` } @@ -53447,7 +52866,6 @@ func (s ModifyVpcAttributeOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpointConnectionNotificationRequest type ModifyVpcEndpointConnectionNotificationInput struct { _ struct{} `type:"structure"` @@ -53517,7 +52935,6 @@ func (s *ModifyVpcEndpointConnectionNotificationInput) SetDryRun(v bool) *Modify return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpointConnectionNotificationResult type ModifyVpcEndpointConnectionNotificationOutput struct { _ struct{} `type:"structure"` @@ -53542,7 +52959,6 @@ func (s *ModifyVpcEndpointConnectionNotificationOutput) SetReturnValue(v bool) * } // Contains the parameters for ModifyVpcEndpoint. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpointRequest type ModifyVpcEndpointInput struct { _ struct{} `type:"structure"` @@ -53679,7 +53095,6 @@ func (s *ModifyVpcEndpointInput) SetVpcEndpointId(v string) *ModifyVpcEndpointIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpointResult type ModifyVpcEndpointOutput struct { _ struct{} `type:"structure"` @@ -53703,7 +53118,6 @@ func (s *ModifyVpcEndpointOutput) SetReturn(v bool) *ModifyVpcEndpointOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpointServiceConfigurationRequest type ModifyVpcEndpointServiceConfigurationInput struct { _ struct{} `type:"structure"` @@ -53783,7 +53197,6 @@ func (s *ModifyVpcEndpointServiceConfigurationInput) SetServiceId(v string) *Mod return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpointServiceConfigurationResult type ModifyVpcEndpointServiceConfigurationOutput struct { _ struct{} `type:"structure"` @@ -53807,7 +53220,6 @@ func (s *ModifyVpcEndpointServiceConfigurationOutput) SetReturn(v bool) *ModifyV return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpointServicePermissionsRequest type ModifyVpcEndpointServicePermissionsInput struct { _ struct{} `type:"structure"` @@ -53878,7 +53290,6 @@ func (s *ModifyVpcEndpointServicePermissionsInput) SetServiceId(v string) *Modif return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcEndpointServicePermissionsResult type ModifyVpcEndpointServicePermissionsOutput struct { _ struct{} `type:"structure"` @@ -53902,7 +53313,6 @@ func (s *ModifyVpcEndpointServicePermissionsOutput) SetReturnValue(v bool) *Modi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcPeeringConnectionOptionsRequest type ModifyVpcPeeringConnectionOptionsInput struct { _ struct{} `type:"structure"` @@ -53971,7 +53381,6 @@ func (s *ModifyVpcPeeringConnectionOptionsInput) SetVpcPeeringConnectionId(v str return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcPeeringConnectionOptionsResult type ModifyVpcPeeringConnectionOptionsOutput struct { _ struct{} `type:"structure"` @@ -54005,7 +53414,6 @@ func (s *ModifyVpcPeeringConnectionOptionsOutput) SetRequesterPeeringConnectionO } // Contains the parameters for ModifyVpcTenancy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcTenancyRequest type ModifyVpcTenancyInput struct { _ struct{} `type:"structure"` @@ -54071,7 +53479,6 @@ func (s *ModifyVpcTenancyInput) SetVpcId(v string) *ModifyVpcTenancyInput { } // Contains the output of ModifyVpcTenancy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ModifyVpcTenancyResult type ModifyVpcTenancyOutput struct { _ struct{} `type:"structure"` @@ -54096,7 +53503,6 @@ func (s *ModifyVpcTenancyOutput) SetReturnValue(v bool) *ModifyVpcTenancyOutput } // Contains the parameters for MonitorInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/MonitorInstancesRequest type MonitorInstancesInput struct { _ struct{} `type:"structure"` @@ -54148,7 +53554,6 @@ func (s *MonitorInstancesInput) SetInstanceIds(v []*string) *MonitorInstancesInp } // Contains the output of MonitorInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/MonitorInstancesResult type MonitorInstancesOutput struct { _ struct{} `type:"structure"` @@ -54173,7 +53578,6 @@ func (s *MonitorInstancesOutput) SetInstanceMonitorings(v []*InstanceMonitoring) } // Describes the monitoring of an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Monitoring type Monitoring struct { _ struct{} `type:"structure"` @@ -54199,7 +53603,6 @@ func (s *Monitoring) SetState(v string) *Monitoring { } // Contains the parameters for MoveAddressToVpc. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/MoveAddressToVpcRequest type MoveAddressToVpcInput struct { _ struct{} `type:"structure"` @@ -54251,7 +53654,6 @@ func (s *MoveAddressToVpcInput) SetPublicIp(v string) *MoveAddressToVpcInput { } // Contains the output of MoveAddressToVpc. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/MoveAddressToVpcResult type MoveAddressToVpcOutput struct { _ struct{} `type:"structure"` @@ -54285,7 +53687,6 @@ func (s *MoveAddressToVpcOutput) SetStatus(v string) *MoveAddressToVpcOutput { } // Describes the status of a moving Elastic IP address. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/MovingAddressStatus type MovingAddressStatus struct { _ struct{} `type:"structure"` @@ -54320,7 +53721,6 @@ func (s *MovingAddressStatus) SetPublicIp(v string) *MovingAddressStatus { } // Describes a NAT gateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/NatGateway type NatGateway struct { _ struct{} `type:"structure"` @@ -54475,7 +53875,6 @@ func (s *NatGateway) SetVpcId(v string) *NatGateway { } // Describes the IP addresses and network interface associated with a NAT gateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/NatGatewayAddress type NatGatewayAddress struct { _ struct{} `type:"structure"` @@ -54528,7 +53927,6 @@ func (s *NatGatewayAddress) SetPublicIp(v string) *NatGatewayAddress { } // Describes a network ACL. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/NetworkAcl type NetworkAcl struct { _ struct{} `type:"structure"` @@ -54598,7 +53996,6 @@ func (s *NetworkAcl) SetVpcId(v string) *NetworkAcl { } // Describes an association between a network ACL and a subnet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/NetworkAclAssociation type NetworkAclAssociation struct { _ struct{} `type:"structure"` @@ -54641,7 +54038,6 @@ func (s *NetworkAclAssociation) SetSubnetId(v string) *NetworkAclAssociation { } // Describes an entry in a network ACL. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/NetworkAclEntry type NetworkAclEntry struct { _ struct{} `type:"structure"` @@ -54731,7 +54127,6 @@ func (s *NetworkAclEntry) SetRuleNumber(v int64) *NetworkAclEntry { } // Describes a network interface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/NetworkInterface type NetworkInterface struct { _ struct{} `type:"structure"` @@ -54929,7 +54324,6 @@ func (s *NetworkInterface) SetVpcId(v string) *NetworkInterface { } // Describes association information for an Elastic IP address (IPv4 only). -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/NetworkInterfaceAssociation type NetworkInterfaceAssociation struct { _ struct{} `type:"structure"` @@ -54990,7 +54384,6 @@ func (s *NetworkInterfaceAssociation) SetPublicIp(v string) *NetworkInterfaceAss } // Describes a network interface attachment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/NetworkInterfaceAttachment type NetworkInterfaceAttachment struct { _ struct{} `type:"structure"` @@ -55069,7 +54462,6 @@ func (s *NetworkInterfaceAttachment) SetStatus(v string) *NetworkInterfaceAttach } // Describes an attachment change. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/NetworkInterfaceAttachmentChanges type NetworkInterfaceAttachmentChanges struct { _ struct{} `type:"structure"` @@ -55103,7 +54495,6 @@ func (s *NetworkInterfaceAttachmentChanges) SetDeleteOnTermination(v bool) *Netw } // Describes an IPv6 address associated with a network interface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/NetworkInterfaceIpv6Address type NetworkInterfaceIpv6Address struct { _ struct{} `type:"structure"` @@ -55128,7 +54519,6 @@ func (s *NetworkInterfaceIpv6Address) SetIpv6Address(v string) *NetworkInterface } // Describes a permission for a network interface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/NetworkInterfacePermission type NetworkInterfacePermission struct { _ struct{} `type:"structure"` @@ -55198,7 +54588,6 @@ func (s *NetworkInterfacePermission) SetPermissionState(v *NetworkInterfacePermi } // Describes the state of a network interface permission. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/NetworkInterfacePermissionState type NetworkInterfacePermissionState struct { _ struct{} `type:"structure"` @@ -55232,7 +54621,6 @@ func (s *NetworkInterfacePermissionState) SetStatusMessage(v string) *NetworkInt } // Describes the private IPv4 address of a network interface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/NetworkInterfacePrivateIpAddress type NetworkInterfacePrivateIpAddress struct { _ struct{} `type:"structure"` @@ -55285,7 +54673,6 @@ func (s *NetworkInterfacePrivateIpAddress) SetPrivateIpAddress(v string) *Networ return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/NewDhcpConfiguration type NewDhcpConfiguration struct { _ struct{} `type:"structure"` @@ -55318,7 +54705,6 @@ func (s *NewDhcpConfiguration) SetValues(v []*string) *NewDhcpConfiguration { // Describes the data that identifies an Amazon FPGA image (AFI) on the PCI // bus. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PciId type PciId struct { _ struct{} `type:"structure"` @@ -55370,7 +54756,6 @@ func (s *PciId) SetVendorId(v string) *PciId { } // Describes the VPC peering connection options. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PeeringConnectionOptions type PeeringConnectionOptions struct { _ struct{} `type:"structure"` @@ -55416,7 +54801,6 @@ func (s *PeeringConnectionOptions) SetAllowEgressFromLocalVpcToRemoteClassicLink } // The VPC peering connection options. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PeeringConnectionOptionsRequest type PeeringConnectionOptionsRequest struct { _ struct{} `type:"structure"` @@ -55462,7 +54846,6 @@ func (s *PeeringConnectionOptionsRequest) SetAllowEgressFromLocalVpcToRemoteClas } // Describes the placement of an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Placement type Placement struct { _ struct{} `type:"structure"` @@ -55536,7 +54919,6 @@ func (s *Placement) SetTenancy(v string) *Placement { } // Describes a placement group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PlacementGroup type PlacementGroup struct { _ struct{} `type:"structure"` @@ -55579,7 +54961,6 @@ func (s *PlacementGroup) SetStrategy(v string) *PlacementGroup { } // Describes a range of ports. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PortRange type PortRange struct { _ struct{} `type:"structure"` @@ -55613,7 +54994,6 @@ func (s *PortRange) SetTo(v int64) *PortRange { } // Describes prefixes for AWS services. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PrefixList type PrefixList struct { _ struct{} `type:"structure"` @@ -55656,7 +55036,6 @@ func (s *PrefixList) SetPrefixListName(v string) *PrefixList { } // [EC2-VPC only] The ID of the prefix. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PrefixListId type PrefixListId struct { _ struct{} `type:"structure"` @@ -55694,7 +55073,6 @@ func (s *PrefixListId) SetPrefixListId(v string) *PrefixListId { } // Describes the price for a Reserved Instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PriceSchedule type PriceSchedule struct { _ struct{} `type:"structure"` @@ -55757,7 +55135,6 @@ func (s *PriceSchedule) SetTerm(v int64) *PriceSchedule { } // Describes the price for a Reserved Instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PriceScheduleSpecification type PriceScheduleSpecification struct { _ struct{} `type:"structure"` @@ -55802,7 +55179,6 @@ func (s *PriceScheduleSpecification) SetTerm(v int64) *PriceScheduleSpecificatio } // Describes a Reserved Instance offering. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PricingDetail type PricingDetail struct { _ struct{} `type:"structure"` @@ -55836,7 +55212,6 @@ func (s *PricingDetail) SetPrice(v float64) *PricingDetail { } // Describes a secondary private IPv4 address for a network interface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PrivateIpAddressSpecification type PrivateIpAddressSpecification struct { _ struct{} `type:"structure"` @@ -55886,7 +55261,6 @@ func (s *PrivateIpAddressSpecification) SetPrivateIpAddress(v string) *PrivateIp } // Describes a product code. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ProductCode type ProductCode struct { _ struct{} `type:"structure"` @@ -55920,7 +55294,6 @@ func (s *ProductCode) SetProductCodeType(v string) *ProductCode { } // Describes a virtual private gateway propagating route. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PropagatingVgw type PropagatingVgw struct { _ struct{} `type:"structure"` @@ -55947,7 +55320,6 @@ func (s *PropagatingVgw) SetGatewayId(v string) *PropagatingVgw { // Reserved. If you need to sustain traffic greater than the documented limits // (http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-nat-gateway.html), // contact us through the Support Center (https://console.aws.amazon.com/support/home?). -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ProvisionedBandwidth type ProvisionedBandwidth struct { _ struct{} `type:"structure"` @@ -56018,7 +55390,6 @@ func (s *ProvisionedBandwidth) SetStatus(v string) *ProvisionedBandwidth { } // Describes the result of the purchase. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Purchase type Purchase struct { _ struct{} `type:"structure"` @@ -56107,7 +55478,6 @@ func (s *Purchase) SetUpfrontPrice(v string) *Purchase { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PurchaseHostReservationRequest type PurchaseHostReservationInput struct { _ struct{} `type:"structure"` @@ -56197,7 +55567,6 @@ func (s *PurchaseHostReservationInput) SetOfferingId(v string) *PurchaseHostRese return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PurchaseHostReservationResult type PurchaseHostReservationOutput struct { _ struct{} `type:"structure"` @@ -56262,7 +55631,6 @@ func (s *PurchaseHostReservationOutput) SetTotalUpfrontPrice(v string) *Purchase } // Describes a request to purchase Scheduled Instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PurchaseRequest type PurchaseRequest struct { _ struct{} `type:"structure"` @@ -56316,7 +55684,6 @@ func (s *PurchaseRequest) SetPurchaseToken(v string) *PurchaseRequest { } // Contains the parameters for PurchaseReservedInstancesOffering. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PurchaseReservedInstancesOfferingRequest type PurchaseReservedInstancesOfferingInput struct { _ struct{} `type:"structure"` @@ -56393,7 +55760,6 @@ func (s *PurchaseReservedInstancesOfferingInput) SetReservedInstancesOfferingId( } // Contains the output of PurchaseReservedInstancesOffering. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PurchaseReservedInstancesOfferingResult type PurchaseReservedInstancesOfferingOutput struct { _ struct{} `type:"structure"` @@ -56418,7 +55784,6 @@ func (s *PurchaseReservedInstancesOfferingOutput) SetReservedInstancesId(v strin } // Contains the parameters for PurchaseScheduledInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PurchaseScheduledInstancesRequest type PurchaseScheduledInstancesInput struct { _ struct{} `type:"structure"` @@ -56493,7 +55858,6 @@ func (s *PurchaseScheduledInstancesInput) SetPurchaseRequests(v []*PurchaseReque } // Contains the output of PurchaseScheduledInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/PurchaseScheduledInstancesResult type PurchaseScheduledInstancesOutput struct { _ struct{} `type:"structure"` @@ -56518,7 +55882,6 @@ func (s *PurchaseScheduledInstancesOutput) SetScheduledInstanceSet(v []*Schedule } // Contains the parameters for RebootInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RebootInstancesRequest type RebootInstancesInput struct { _ struct{} `type:"structure"` @@ -56569,7 +55932,6 @@ func (s *RebootInstancesInput) SetInstanceIds(v []*string) *RebootInstancesInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RebootInstancesOutput type RebootInstancesOutput struct { _ struct{} `type:"structure"` } @@ -56585,7 +55947,6 @@ func (s RebootInstancesOutput) GoString() string { } // Describes a recurring charge. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RecurringCharge type RecurringCharge struct { _ struct{} `type:"structure"` @@ -56619,7 +55980,6 @@ func (s *RecurringCharge) SetFrequency(v string) *RecurringCharge { } // Describes a region. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Region type Region struct { _ struct{} `type:"structure"` @@ -56653,7 +56013,6 @@ func (s *Region) SetRegionName(v string) *Region { } // Contains the parameters for RegisterImage. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RegisterImageRequest type RegisterImageInput struct { _ struct{} `type:"structure"` @@ -56826,7 +56185,6 @@ func (s *RegisterImageInput) SetVirtualizationType(v string) *RegisterImageInput } // Contains the output of RegisterImage. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RegisterImageResult type RegisterImageOutput struct { _ struct{} `type:"structure"` @@ -56850,7 +56208,6 @@ func (s *RegisterImageOutput) SetImageId(v string) *RegisterImageOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectVpcEndpointConnectionsRequest type RejectVpcEndpointConnectionsInput struct { _ struct{} `type:"structure"` @@ -56915,7 +56272,6 @@ func (s *RejectVpcEndpointConnectionsInput) SetVpcEndpointIds(v []*string) *Reje return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectVpcEndpointConnectionsResult type RejectVpcEndpointConnectionsOutput struct { _ struct{} `type:"structure"` @@ -56940,7 +56296,6 @@ func (s *RejectVpcEndpointConnectionsOutput) SetUnsuccessful(v []*UnsuccessfulIt } // Contains the parameters for RejectVpcPeeringConnection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectVpcPeeringConnectionRequest type RejectVpcPeeringConnectionInput struct { _ struct{} `type:"structure"` @@ -56992,7 +56347,6 @@ func (s *RejectVpcPeeringConnectionInput) SetVpcPeeringConnectionId(v string) *R } // Contains the output of RejectVpcPeeringConnection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RejectVpcPeeringConnectionResult type RejectVpcPeeringConnectionOutput struct { _ struct{} `type:"structure"` @@ -57017,7 +56371,6 @@ func (s *RejectVpcPeeringConnectionOutput) SetReturn(v bool) *RejectVpcPeeringCo } // Contains the parameters for ReleaseAddress. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReleaseAddressRequest type ReleaseAddressInput struct { _ struct{} `type:"structure"` @@ -57062,7 +56415,6 @@ func (s *ReleaseAddressInput) SetPublicIp(v string) *ReleaseAddressInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReleaseAddressOutput type ReleaseAddressOutput struct { _ struct{} `type:"structure"` } @@ -57078,7 +56430,6 @@ func (s ReleaseAddressOutput) GoString() string { } // Contains the parameters for ReleaseHosts. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReleaseHostsRequest type ReleaseHostsInput struct { _ struct{} `type:"structure"` @@ -57118,7 +56469,6 @@ func (s *ReleaseHostsInput) SetHostIds(v []*string) *ReleaseHostsInput { } // Contains the output of ReleaseHosts. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReleaseHostsResult type ReleaseHostsOutput struct { _ struct{} `type:"structure"` @@ -57152,7 +56502,6 @@ func (s *ReleaseHostsOutput) SetUnsuccessful(v []*UnsuccessfulItem) *ReleaseHost return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceIamInstanceProfileAssociationRequest type ReplaceIamInstanceProfileAssociationInput struct { _ struct{} `type:"structure"` @@ -57205,7 +56554,6 @@ func (s *ReplaceIamInstanceProfileAssociationInput) SetIamInstanceProfile(v *Iam return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceIamInstanceProfileAssociationResult type ReplaceIamInstanceProfileAssociationOutput struct { _ struct{} `type:"structure"` @@ -57230,7 +56578,6 @@ func (s *ReplaceIamInstanceProfileAssociationOutput) SetIamInstanceProfileAssoci } // Contains the parameters for ReplaceNetworkAclAssociation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceNetworkAclAssociationRequest type ReplaceNetworkAclAssociationInput struct { _ struct{} `type:"structure"` @@ -57297,7 +56644,6 @@ func (s *ReplaceNetworkAclAssociationInput) SetNetworkAclId(v string) *ReplaceNe } // Contains the output of ReplaceNetworkAclAssociation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceNetworkAclAssociationResult type ReplaceNetworkAclAssociationOutput struct { _ struct{} `type:"structure"` @@ -57322,7 +56668,6 @@ func (s *ReplaceNetworkAclAssociationOutput) SetNewAssociationId(v string) *Repl } // Contains the parameters for ReplaceNetworkAclEntry. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceNetworkAclEntryRequest type ReplaceNetworkAclEntryInput struct { _ struct{} `type:"structure"` @@ -57475,7 +56820,6 @@ func (s *ReplaceNetworkAclEntryInput) SetRuleNumber(v int64) *ReplaceNetworkAclE return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceNetworkAclEntryOutput type ReplaceNetworkAclEntryOutput struct { _ struct{} `type:"structure"` } @@ -57491,7 +56835,6 @@ func (s ReplaceNetworkAclEntryOutput) GoString() string { } // Contains the parameters for ReplaceRoute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceRouteRequest type ReplaceRouteInput struct { _ struct{} `type:"structure"` @@ -57616,7 +56959,6 @@ func (s *ReplaceRouteInput) SetVpcPeeringConnectionId(v string) *ReplaceRouteInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceRouteOutput type ReplaceRouteOutput struct { _ struct{} `type:"structure"` } @@ -57632,7 +56974,6 @@ func (s ReplaceRouteOutput) GoString() string { } // Contains the parameters for ReplaceRouteTableAssociation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceRouteTableAssociationRequest type ReplaceRouteTableAssociationInput struct { _ struct{} `type:"structure"` @@ -57698,7 +57039,6 @@ func (s *ReplaceRouteTableAssociationInput) SetRouteTableId(v string) *ReplaceRo } // Contains the output of ReplaceRouteTableAssociation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReplaceRouteTableAssociationResult type ReplaceRouteTableAssociationOutput struct { _ struct{} `type:"structure"` @@ -57723,7 +57063,6 @@ func (s *ReplaceRouteTableAssociationOutput) SetNewAssociationId(v string) *Repl } // Contains the parameters for ReportInstanceStatus. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReportInstanceStatusRequest type ReportInstanceStatusInput struct { _ struct{} `type:"structure"` @@ -57850,7 +57189,6 @@ func (s *ReportInstanceStatusInput) SetStatus(v string) *ReportInstanceStatusInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReportInstanceStatusOutput type ReportInstanceStatusOutput struct { _ struct{} `type:"structure"` } @@ -57866,7 +57204,6 @@ func (s ReportInstanceStatusOutput) GoString() string { } // The information to include in the launch template. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RequestLaunchTemplateData type RequestLaunchTemplateData struct { _ struct{} `type:"structure"` @@ -58135,7 +57472,6 @@ func (s *RequestLaunchTemplateData) SetUserData(v string) *RequestLaunchTemplate } // Contains the parameters for RequestSpotFleet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RequestSpotFleetRequest type RequestSpotFleetInput struct { _ struct{} `type:"structure"` @@ -58192,7 +57528,6 @@ func (s *RequestSpotFleetInput) SetSpotFleetRequestConfig(v *SpotFleetRequestCon } // Contains the output of RequestSpotFleet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RequestSpotFleetResponse type RequestSpotFleetOutput struct { _ struct{} `type:"structure"` @@ -58219,7 +57554,6 @@ func (s *RequestSpotFleetOutput) SetSpotFleetRequestId(v string) *RequestSpotFle } // Contains the parameters for RequestSpotInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RequestSpotInstancesRequest type RequestSpotInstancesInput struct { _ struct{} `type:"structure"` @@ -58407,7 +57741,6 @@ func (s *RequestSpotInstancesInput) SetValidUntil(v time.Time) *RequestSpotInsta } // Contains the output of RequestSpotInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RequestSpotInstancesResult type RequestSpotInstancesOutput struct { _ struct{} `type:"structure"` @@ -58432,7 +57765,6 @@ func (s *RequestSpotInstancesOutput) SetSpotInstanceRequests(v []*SpotInstanceRe } // Describes the launch specification for an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RequestSpotLaunchSpecification type RequestSpotLaunchSpecification struct { _ struct{} `type:"structure"` @@ -58633,7 +57965,6 @@ func (s *RequestSpotLaunchSpecification) SetUserData(v string) *RequestSpotLaunc } // Describes a reservation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Reservation type Reservation struct { _ struct{} `type:"structure"` @@ -58695,7 +58026,6 @@ func (s *Reservation) SetReservationId(v string) *Reservation { } // The cost associated with the Reserved Instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReservationValue type ReservationValue struct { _ struct{} `type:"structure"` @@ -58739,7 +58069,6 @@ func (s *ReservationValue) SetRemainingUpfrontValue(v string) *ReservationValue } // Describes the limit price of a Reserved Instance offering. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReservedInstanceLimitPrice type ReservedInstanceLimitPrice struct { _ struct{} `type:"structure"` @@ -58775,7 +58104,6 @@ func (s *ReservedInstanceLimitPrice) SetCurrencyCode(v string) *ReservedInstance } // The total value of the Convertible Reserved Instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReservedInstanceReservationValue type ReservedInstanceReservationValue struct { _ struct{} `type:"structure"` @@ -58809,7 +58137,6 @@ func (s *ReservedInstanceReservationValue) SetReservedInstanceId(v string) *Rese } // Describes a Reserved Instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReservedInstances type ReservedInstances struct { _ struct{} `type:"structure"` @@ -58988,7 +58315,6 @@ func (s *ReservedInstances) SetUsagePrice(v float64) *ReservedInstances { } // Describes the configuration settings for the modified Reserved Instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReservedInstancesConfiguration type ReservedInstancesConfiguration struct { _ struct{} `type:"structure"` @@ -59051,7 +58377,6 @@ func (s *ReservedInstancesConfiguration) SetScope(v string) *ReservedInstancesCo } // Describes the ID of a Reserved Instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReservedInstancesId type ReservedInstancesId struct { _ struct{} `type:"structure"` @@ -59076,7 +58401,6 @@ func (s *ReservedInstancesId) SetReservedInstancesId(v string) *ReservedInstance } // Describes a Reserved Instance listing. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReservedInstancesListing type ReservedInstancesListing struct { _ struct{} `type:"structure"` @@ -59184,7 +58508,6 @@ func (s *ReservedInstancesListing) SetUpdateDate(v time.Time) *ReservedInstances } // Describes a Reserved Instance modification. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReservedInstancesModification type ReservedInstancesModification struct { _ struct{} `type:"structure"` @@ -59283,7 +58606,6 @@ func (s *ReservedInstancesModification) SetUpdateDate(v time.Time) *ReservedInst } // Describes the modification request/s. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReservedInstancesModificationResult type ReservedInstancesModificationResult struct { _ struct{} `type:"structure"` @@ -59319,7 +58641,6 @@ func (s *ReservedInstancesModificationResult) SetTargetConfiguration(v *Reserved } // Describes a Reserved Instance offering. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ReservedInstancesOffering type ReservedInstancesOffering struct { _ struct{} `type:"structure"` @@ -59477,7 +58798,6 @@ func (s *ReservedInstancesOffering) SetUsagePrice(v float64) *ReservedInstancesO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetFpgaImageAttributeRequest type ResetFpgaImageAttributeInput struct { _ struct{} `type:"structure"` @@ -59537,7 +58857,6 @@ func (s *ResetFpgaImageAttributeInput) SetFpgaImageId(v string) *ResetFpgaImageA return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetFpgaImageAttributeResult type ResetFpgaImageAttributeOutput struct { _ struct{} `type:"structure"` @@ -59562,7 +58881,6 @@ func (s *ResetFpgaImageAttributeOutput) SetReturn(v bool) *ResetFpgaImageAttribu } // Contains the parameters for ResetImageAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetImageAttributeRequest type ResetImageAttributeInput struct { _ struct{} `type:"structure"` @@ -59628,7 +58946,6 @@ func (s *ResetImageAttributeInput) SetImageId(v string) *ResetImageAttributeInpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetImageAttributeOutput type ResetImageAttributeOutput struct { _ struct{} `type:"structure"` } @@ -59644,7 +58961,6 @@ func (s ResetImageAttributeOutput) GoString() string { } // Contains the parameters for ResetInstanceAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetInstanceAttributeRequest type ResetInstanceAttributeInput struct { _ struct{} `type:"structure"` @@ -59712,7 +59028,6 @@ func (s *ResetInstanceAttributeInput) SetInstanceId(v string) *ResetInstanceAttr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetInstanceAttributeOutput type ResetInstanceAttributeOutput struct { _ struct{} `type:"structure"` } @@ -59728,7 +59043,6 @@ func (s ResetInstanceAttributeOutput) GoString() string { } // Contains the parameters for ResetNetworkInterfaceAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetNetworkInterfaceAttributeRequest type ResetNetworkInterfaceAttributeInput struct { _ struct{} `type:"structure"` @@ -59788,7 +59102,6 @@ func (s *ResetNetworkInterfaceAttributeInput) SetSourceDestCheck(v string) *Rese return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetNetworkInterfaceAttributeOutput type ResetNetworkInterfaceAttributeOutput struct { _ struct{} `type:"structure"` } @@ -59804,7 +59117,6 @@ func (s ResetNetworkInterfaceAttributeOutput) GoString() string { } // Contains the parameters for ResetSnapshotAttribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetSnapshotAttributeRequest type ResetSnapshotAttributeInput struct { _ struct{} `type:"structure"` @@ -59870,7 +59182,6 @@ func (s *ResetSnapshotAttributeInput) SetSnapshotId(v string) *ResetSnapshotAttr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResetSnapshotAttributeOutput type ResetSnapshotAttributeOutput struct { _ struct{} `type:"structure"` } @@ -59887,7 +59198,6 @@ func (s ResetSnapshotAttributeOutput) GoString() string { // Describes the error that's returned when you cannot delete a launch template // version. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResponseError type ResponseError struct { _ struct{} `type:"structure"` @@ -59921,7 +59231,6 @@ func (s *ResponseError) SetMessage(v string) *ResponseError { } // The information for a launch template. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ResponseLaunchTemplateData type ResponseLaunchTemplateData struct { _ struct{} `type:"structure"` @@ -60119,7 +59428,6 @@ func (s *ResponseLaunchTemplateData) SetUserData(v string) *ResponseLaunchTempla } // Contains the parameters for RestoreAddressToClassic. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RestoreAddressToClassicRequest type RestoreAddressToClassicInput struct { _ struct{} `type:"structure"` @@ -60171,7 +59479,6 @@ func (s *RestoreAddressToClassicInput) SetPublicIp(v string) *RestoreAddressToCl } // Contains the output of RestoreAddressToClassic. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RestoreAddressToClassicResult type RestoreAddressToClassicOutput struct { _ struct{} `type:"structure"` @@ -60205,7 +59512,6 @@ func (s *RestoreAddressToClassicOutput) SetStatus(v string) *RestoreAddressToCla } // Contains the parameters for RevokeSecurityGroupEgress. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RevokeSecurityGroupEgressRequest type RevokeSecurityGroupEgressInput struct { _ struct{} `type:"structure"` @@ -60323,7 +59629,6 @@ func (s *RevokeSecurityGroupEgressInput) SetToPort(v int64) *RevokeSecurityGroup return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RevokeSecurityGroupEgressOutput type RevokeSecurityGroupEgressOutput struct { _ struct{} `type:"structure"` } @@ -60339,7 +59644,6 @@ func (s RevokeSecurityGroupEgressOutput) GoString() string { } // Contains the parameters for RevokeSecurityGroupIngress. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RevokeSecurityGroupIngressRequest type RevokeSecurityGroupIngressInput struct { _ struct{} `type:"structure"` @@ -60465,7 +59769,6 @@ func (s *RevokeSecurityGroupIngressInput) SetToPort(v int64) *RevokeSecurityGrou return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RevokeSecurityGroupIngressOutput type RevokeSecurityGroupIngressOutput struct { _ struct{} `type:"structure"` } @@ -60481,7 +59784,6 @@ func (s RevokeSecurityGroupIngressOutput) GoString() string { } // Describes a route in a route table. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Route type Route struct { _ struct{} `type:"structure"` @@ -60614,7 +59916,6 @@ func (s *Route) SetVpcPeeringConnectionId(v string) *Route { } // Describes a route table. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RouteTable type RouteTable struct { _ struct{} `type:"structure"` @@ -60684,7 +59985,6 @@ func (s *RouteTable) SetVpcId(v string) *RouteTable { } // Describes an association between a route table and a subnet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RouteTableAssociation type RouteTableAssociation struct { _ struct{} `type:"structure"` @@ -60736,7 +60036,6 @@ func (s *RouteTableAssociation) SetSubnetId(v string) *RouteTableAssociation { } // Contains the parameters for RunInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RunInstancesRequest type RunInstancesInput struct { _ struct{} `type:"structure"` @@ -61159,7 +60458,6 @@ func (s *RunInstancesInput) SetUserData(v string) *RunInstancesInput { } // Describes the monitoring of an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RunInstancesMonitoringEnabled type RunInstancesMonitoringEnabled struct { _ struct{} `type:"structure"` @@ -61200,7 +60498,6 @@ func (s *RunInstancesMonitoringEnabled) SetEnabled(v bool) *RunInstancesMonitori } // Contains the parameters for RunScheduledInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RunScheduledInstancesRequest type RunScheduledInstancesInput struct { _ struct{} `type:"structure"` @@ -61293,7 +60590,6 @@ func (s *RunScheduledInstancesInput) SetScheduledInstanceId(v string) *RunSchedu } // Contains the output of RunScheduledInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/RunScheduledInstancesResult type RunScheduledInstancesOutput struct { _ struct{} `type:"structure"` @@ -61319,7 +60615,6 @@ func (s *RunScheduledInstancesOutput) SetInstanceIdSet(v []*string) *RunSchedule // Describes the storage parameters for S3 and S3 buckets for an instance store-backed // AMI. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/S3Storage type S3Storage struct { _ struct{} `type:"structure"` @@ -61387,7 +60682,6 @@ func (s *S3Storage) SetUploadPolicySignature(v string) *S3Storage { } // Describes a Scheduled Instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ScheduledInstance type ScheduledInstance struct { _ struct{} `type:"structure"` @@ -61538,7 +60832,6 @@ func (s *ScheduledInstance) SetTotalScheduledInstanceHours(v int64) *ScheduledIn } // Describes a schedule that is available for your Scheduled Instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ScheduledInstanceAvailability type ScheduledInstanceAvailability struct { _ struct{} `type:"structure"` @@ -61672,7 +60965,6 @@ func (s *ScheduledInstanceAvailability) SetTotalScheduledInstanceHours(v int64) } // Describes the recurring schedule for a Scheduled Instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ScheduledInstanceRecurrence type ScheduledInstanceRecurrence struct { _ struct{} `type:"structure"` @@ -61737,7 +61029,6 @@ func (s *ScheduledInstanceRecurrence) SetOccurrenceUnit(v string) *ScheduledInst } // Describes the recurring schedule for a Scheduled Instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ScheduledInstanceRecurrenceRequest type ScheduledInstanceRecurrenceRequest struct { _ struct{} `type:"structure"` @@ -61805,7 +61096,6 @@ func (s *ScheduledInstanceRecurrenceRequest) SetOccurrenceUnit(v string) *Schedu } // Describes a block device mapping for a Scheduled Instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ScheduledInstancesBlockDeviceMapping type ScheduledInstancesBlockDeviceMapping struct { _ struct{} `type:"structure"` @@ -61868,7 +61158,6 @@ func (s *ScheduledInstancesBlockDeviceMapping) SetVirtualName(v string) *Schedul } // Describes an EBS volume for a Scheduled Instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ScheduledInstancesEbs type ScheduledInstancesEbs struct { _ struct{} `type:"structure"` @@ -61957,7 +61246,6 @@ func (s *ScheduledInstancesEbs) SetVolumeType(v string) *ScheduledInstancesEbs { } // Describes an IAM instance profile for a Scheduled Instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ScheduledInstancesIamInstanceProfile type ScheduledInstancesIamInstanceProfile struct { _ struct{} `type:"structure"` @@ -61991,7 +61279,6 @@ func (s *ScheduledInstancesIamInstanceProfile) SetName(v string) *ScheduledInsta } // Describes an IPv6 address. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ScheduledInstancesIpv6Address type ScheduledInstancesIpv6Address struct { _ struct{} `type:"structure"` @@ -62020,7 +61307,6 @@ func (s *ScheduledInstancesIpv6Address) SetIpv6Address(v string) *ScheduledInsta // If you are launching the Scheduled Instance in EC2-VPC, you must specify // the ID of the subnet. You can specify the subnet using either SubnetId or // NetworkInterface. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ScheduledInstancesLaunchSpecification type ScheduledInstancesLaunchSpecification struct { _ struct{} `type:"structure"` @@ -62183,7 +61469,6 @@ func (s *ScheduledInstancesLaunchSpecification) SetUserData(v string) *Scheduled } // Describes whether monitoring is enabled for a Scheduled Instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ScheduledInstancesMonitoring type ScheduledInstancesMonitoring struct { _ struct{} `type:"structure"` @@ -62208,7 +61493,6 @@ func (s *ScheduledInstancesMonitoring) SetEnabled(v bool) *ScheduledInstancesMon } // Describes a network interface for a Scheduled Instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ScheduledInstancesNetworkInterface type ScheduledInstancesNetworkInterface struct { _ struct{} `type:"structure"` @@ -62337,7 +61621,6 @@ func (s *ScheduledInstancesNetworkInterface) SetSubnetId(v string) *ScheduledIns } // Describes the placement for a Scheduled Instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ScheduledInstancesPlacement type ScheduledInstancesPlacement struct { _ struct{} `type:"structure"` @@ -62371,7 +61654,6 @@ func (s *ScheduledInstancesPlacement) SetGroupName(v string) *ScheduledInstances } // Describes a private IPv4 address for a Scheduled Instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ScheduledInstancesPrivateIpAddressConfig type ScheduledInstancesPrivateIpAddressConfig struct { _ struct{} `type:"structure"` @@ -62406,7 +61688,6 @@ func (s *ScheduledInstancesPrivateIpAddressConfig) SetPrivateIpAddress(v string) } // Describes a security group -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SecurityGroup type SecurityGroup struct { _ struct{} `type:"structure"` @@ -62494,7 +61775,6 @@ func (s *SecurityGroup) SetVpcId(v string) *SecurityGroup { } // Describes a security group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SecurityGroupIdentifier type SecurityGroupIdentifier struct { _ struct{} `type:"structure"` @@ -62528,7 +61808,6 @@ func (s *SecurityGroupIdentifier) SetGroupName(v string) *SecurityGroupIdentifie } // Describes a VPC with a security group that references your security group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SecurityGroupReference type SecurityGroupReference struct { _ struct{} `type:"structure"` @@ -62575,7 +61854,6 @@ func (s *SecurityGroupReference) SetVpcPeeringConnectionId(v string) *SecurityGr } // Describes a service configuration for a VPC endpoint service. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ServiceConfiguration type ServiceConfiguration struct { _ struct{} `type:"structure"` @@ -62673,7 +61951,6 @@ func (s *ServiceConfiguration) SetServiceType(v []*ServiceTypeDetail) *ServiceCo } // Describes a VPC endpoint service. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ServiceDetail type ServiceDetail struct { _ struct{} `type:"structure"` @@ -62762,7 +62039,6 @@ func (s *ServiceDetail) SetVpcEndpointPolicySupported(v bool) *ServiceDetail { } // Describes the type of service for a VPC endpoint. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/ServiceTypeDetail type ServiceTypeDetail struct { _ struct{} `type:"structure"` @@ -62788,7 +62064,6 @@ func (s *ServiceTypeDetail) SetServiceType(v string) *ServiceTypeDetail { // Describes the time period for a Scheduled Instance to start its first schedule. // The time period must span less than one day. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SlotDateTimeRangeRequest type SlotDateTimeRangeRequest struct { _ struct{} `type:"structure"` @@ -62844,7 +62119,6 @@ func (s *SlotDateTimeRangeRequest) SetLatestTime(v time.Time) *SlotDateTimeRange } // Describes the time period for a Scheduled Instance to start its first schedule. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SlotStartTimeRangeRequest type SlotStartTimeRangeRequest struct { _ struct{} `type:"structure"` @@ -62878,7 +62152,6 @@ func (s *SlotStartTimeRangeRequest) SetLatestTime(v time.Time) *SlotStartTimeRan } // Describes a snapshot. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Snapshot type Snapshot struct { _ struct{} `type:"structure"` @@ -63036,7 +62309,6 @@ func (s *Snapshot) SetVolumeSize(v int64) *Snapshot { } // Describes the snapshot created from the imported disk. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SnapshotDetail type SnapshotDetail struct { _ struct{} `type:"structure"` @@ -63142,7 +62414,6 @@ func (s *SnapshotDetail) SetUserBucket(v *UserBucketDetails) *SnapshotDetail { } // The disk container object for the import snapshot request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SnapshotDiskContainer type SnapshotDiskContainer struct { _ struct{} `type:"structure"` @@ -63197,7 +62468,6 @@ func (s *SnapshotDiskContainer) SetUserBucket(v *UserBucket) *SnapshotDiskContai } // Details about the import snapshot task. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SnapshotTaskDetail type SnapshotTaskDetail struct { _ struct{} `type:"structure"` @@ -63294,7 +62564,6 @@ func (s *SnapshotTaskDetail) SetUserBucket(v *UserBucketDetails) *SnapshotTaskDe } // Describes the data feed for a Spot Instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SpotDatafeedSubscription type SpotDatafeedSubscription struct { _ struct{} `type:"structure"` @@ -63355,7 +62624,6 @@ func (s *SpotDatafeedSubscription) SetState(v string) *SpotDatafeedSubscription } // Describes the launch specification for one or more Spot Instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SpotFleetLaunchSpecification type SpotFleetLaunchSpecification struct { _ struct{} `type:"structure"` @@ -63577,7 +62845,6 @@ func (s *SpotFleetLaunchSpecification) SetWeightedCapacity(v float64) *SpotFleet } // Describes whether monitoring is enabled. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SpotFleetMonitoring type SpotFleetMonitoring struct { _ struct{} `type:"structure"` @@ -63604,7 +62871,6 @@ func (s *SpotFleetMonitoring) SetEnabled(v bool) *SpotFleetMonitoring { } // Describes a Spot Fleet request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SpotFleetRequestConfig type SpotFleetRequestConfig struct { _ struct{} `type:"structure"` @@ -63677,7 +62943,6 @@ func (s *SpotFleetRequestConfig) SetSpotFleetRequestState(v string) *SpotFleetRe } // Describes the configuration of a Spot Fleet request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SpotFleetRequestConfigData type SpotFleetRequestConfigData struct { _ struct{} `type:"structure"` @@ -63912,7 +63177,6 @@ func (s *SpotFleetRequestConfigData) SetValidUntil(v time.Time) *SpotFleetReques } // The tags for a Spot Fleet resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SpotFleetTagSpecification type SpotFleetTagSpecification struct { _ struct{} `type:"structure"` @@ -63947,7 +63211,6 @@ func (s *SpotFleetTagSpecification) SetTags(v []*Tag) *SpotFleetTagSpecification } // Describes a Spot Instance request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SpotInstanceRequest type SpotInstanceRequest struct { _ struct{} `type:"structure"` @@ -64148,7 +63411,6 @@ func (s *SpotInstanceRequest) SetValidUntil(v time.Time) *SpotInstanceRequest { } // Describes a Spot Instance state change. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SpotInstanceStateFault type SpotInstanceStateFault struct { _ struct{} `type:"structure"` @@ -64182,7 +63444,6 @@ func (s *SpotInstanceStateFault) SetMessage(v string) *SpotInstanceStateFault { } // Describes the status of a Spot Instance request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SpotInstanceStatus type SpotInstanceStatus struct { _ struct{} `type:"structure"` @@ -64227,7 +63488,6 @@ func (s *SpotInstanceStatus) SetUpdateTime(v time.Time) *SpotInstanceStatus { } // The options for Spot Instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SpotMarketOptions type SpotMarketOptions struct { _ struct{} `type:"structure"` @@ -64295,7 +63555,6 @@ func (s *SpotMarketOptions) SetValidUntil(v time.Time) *SpotMarketOptions { } // Describes Spot Instance placement. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SpotPlacement type SpotPlacement struct { _ struct{} `type:"structure"` @@ -64344,7 +63603,6 @@ func (s *SpotPlacement) SetTenancy(v string) *SpotPlacement { // Describes the maximum price per hour that you are willing to pay for a Spot // Instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SpotPrice type SpotPrice struct { _ struct{} `type:"structure"` @@ -64405,7 +63663,6 @@ func (s *SpotPrice) SetTimestamp(v time.Time) *SpotPrice { } // Describes a stale rule in a security group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StaleIpPermission type StaleIpPermission struct { _ struct{} `type:"structure"` @@ -64480,7 +63737,6 @@ func (s *StaleIpPermission) SetUserIdGroupPairs(v []*UserIdGroupPair) *StaleIpPe } // Describes a stale security group (a security group that contains stale rules). -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StaleSecurityGroup type StaleSecurityGroup struct { _ struct{} `type:"structure"` @@ -64552,7 +63808,6 @@ func (s *StaleSecurityGroup) SetVpcId(v string) *StaleSecurityGroup { } // Contains the parameters for StartInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StartInstancesRequest type StartInstancesInput struct { _ struct{} `type:"structure"` @@ -64613,7 +63868,6 @@ func (s *StartInstancesInput) SetInstanceIds(v []*string) *StartInstancesInput { } // Contains the output of StartInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StartInstancesResult type StartInstancesOutput struct { _ struct{} `type:"structure"` @@ -64638,7 +63892,6 @@ func (s *StartInstancesOutput) SetStartingInstances(v []*InstanceStateChange) *S } // Describes a state change. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StateReason type StateReason struct { _ struct{} `type:"structure"` @@ -64701,7 +63954,6 @@ func (s *StateReason) SetMessage(v string) *StateReason { } // Contains the parameters for StopInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StopInstancesRequest type StopInstancesInput struct { _ struct{} `type:"structure"` @@ -64767,7 +64019,6 @@ func (s *StopInstancesInput) SetInstanceIds(v []*string) *StopInstancesInput { } // Contains the output of StopInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StopInstancesResult type StopInstancesOutput struct { _ struct{} `type:"structure"` @@ -64792,7 +64043,6 @@ func (s *StopInstancesOutput) SetStoppingInstances(v []*InstanceStateChange) *St } // Describes the storage location for an instance store-backed AMI. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Storage type Storage struct { _ struct{} `type:"structure"` @@ -64817,7 +64067,6 @@ func (s *Storage) SetS3(v *S3Storage) *Storage { } // Describes a storage location in Amazon S3. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/StorageLocation type StorageLocation struct { _ struct{} `type:"structure"` @@ -64851,7 +64100,6 @@ func (s *StorageLocation) SetKey(v string) *StorageLocation { } // Describes a subnet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Subnet type Subnet struct { _ struct{} `type:"structure"` @@ -64969,7 +64217,6 @@ func (s *Subnet) SetVpcId(v string) *Subnet { } // Describes the state of a CIDR block. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SubnetCidrBlockState type SubnetCidrBlockState struct { _ struct{} `type:"structure"` @@ -65003,7 +64250,6 @@ func (s *SubnetCidrBlockState) SetStatusMessage(v string) *SubnetCidrBlockState } // Describes an IPv6 CIDR block associated with a subnet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SubnetIpv6CidrBlockAssociation type SubnetIpv6CidrBlockAssociation struct { _ struct{} `type:"structure"` @@ -65047,7 +64293,6 @@ func (s *SubnetIpv6CidrBlockAssociation) SetIpv6CidrBlockState(v *SubnetCidrBloc // Describes the T2 instance whose credit option for CPU usage was successfully // modified. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/SuccessfulInstanceCreditSpecificationItem type SuccessfulInstanceCreditSpecificationItem struct { _ struct{} `type:"structure"` @@ -65072,7 +64317,6 @@ func (s *SuccessfulInstanceCreditSpecificationItem) SetInstanceId(v string) *Suc } // Describes a tag. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Tag type Tag struct { _ struct{} `type:"structure"` @@ -65112,7 +64356,6 @@ func (s *Tag) SetValue(v string) *Tag { } // Describes a tag. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/TagDescription type TagDescription struct { _ struct{} `type:"structure"` @@ -65164,7 +64407,6 @@ func (s *TagDescription) SetValue(v string) *TagDescription { } // The tags to apply to a resource when the resource is being created. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/TagSpecification type TagSpecification struct { _ struct{} `type:"structure"` @@ -65199,7 +64441,6 @@ func (s *TagSpecification) SetTags(v []*Tag) *TagSpecification { } // Information about the Convertible Reserved Instance offering. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/TargetConfiguration type TargetConfiguration struct { _ struct{} `type:"structure"` @@ -65234,7 +64475,6 @@ func (s *TargetConfiguration) SetOfferingId(v string) *TargetConfiguration { } // Details about the target configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/TargetConfigurationRequest type TargetConfigurationRequest struct { _ struct{} `type:"structure"` @@ -65284,7 +64524,6 @@ func (s *TargetConfigurationRequest) SetOfferingId(v string) *TargetConfiguratio } // Describes a load balancer target group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/TargetGroup type TargetGroup struct { _ struct{} `type:"structure"` @@ -65325,7 +64564,6 @@ func (s *TargetGroup) SetArn(v string) *TargetGroup { // Describes the target groups to attach to a Spot Fleet. Spot Fleet registers // the running Spot Instances with these target groups. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/TargetGroupsConfig type TargetGroupsConfig struct { _ struct{} `type:"structure"` @@ -65378,7 +64616,6 @@ func (s *TargetGroupsConfig) SetTargetGroups(v []*TargetGroup) *TargetGroupsConf } // The total value of the new Convertible Reserved Instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/TargetReservationValue type TargetReservationValue struct { _ struct{} `type:"structure"` @@ -65415,7 +64652,6 @@ func (s *TargetReservationValue) SetTargetConfiguration(v *TargetConfiguration) } // Contains the parameters for TerminateInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/TerminateInstancesRequest type TerminateInstancesInput struct { _ struct{} `type:"structure"` @@ -65470,7 +64706,6 @@ func (s *TerminateInstancesInput) SetInstanceIds(v []*string) *TerminateInstance } // Contains the output of TerminateInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/TerminateInstancesResult type TerminateInstancesOutput struct { _ struct{} `type:"structure"` @@ -65494,7 +64729,6 @@ func (s *TerminateInstancesOutput) SetTerminatingInstances(v []*InstanceStateCha return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnassignIpv6AddressesRequest type UnassignIpv6AddressesInput struct { _ struct{} `type:"structure"` @@ -65547,7 +64781,6 @@ func (s *UnassignIpv6AddressesInput) SetNetworkInterfaceId(v string) *UnassignIp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnassignIpv6AddressesResult type UnassignIpv6AddressesOutput struct { _ struct{} `type:"structure"` @@ -65581,7 +64814,6 @@ func (s *UnassignIpv6AddressesOutput) SetUnassignedIpv6Addresses(v []*string) *U } // Contains the parameters for UnassignPrivateIpAddresses. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnassignPrivateIpAddressesRequest type UnassignPrivateIpAddressesInput struct { _ struct{} `type:"structure"` @@ -65635,7 +64867,6 @@ func (s *UnassignPrivateIpAddressesInput) SetPrivateIpAddresses(v []*string) *Un return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnassignPrivateIpAddressesOutput type UnassignPrivateIpAddressesOutput struct { _ struct{} `type:"structure"` } @@ -65651,7 +64882,6 @@ func (s UnassignPrivateIpAddressesOutput) GoString() string { } // Contains the parameters for UnmonitorInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnmonitorInstancesRequest type UnmonitorInstancesInput struct { _ struct{} `type:"structure"` @@ -65703,7 +64933,6 @@ func (s *UnmonitorInstancesInput) SetInstanceIds(v []*string) *UnmonitorInstance } // Contains the output of UnmonitorInstances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnmonitorInstancesResult type UnmonitorInstancesOutput struct { _ struct{} `type:"structure"` @@ -65728,7 +64957,6 @@ func (s *UnmonitorInstancesOutput) SetInstanceMonitorings(v []*InstanceMonitorin } // Describes the T2 instance whose credit option for CPU usage was not modified. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnsuccessfulInstanceCreditSpecificationItem type UnsuccessfulInstanceCreditSpecificationItem struct { _ struct{} `type:"structure"` @@ -65764,7 +64992,6 @@ func (s *UnsuccessfulInstanceCreditSpecificationItem) SetInstanceId(v string) *U // Information about the error for the T2 instance whose credit option for CPU // usage was not modified. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnsuccessfulInstanceCreditSpecificationItemError type UnsuccessfulInstanceCreditSpecificationItemError struct { _ struct{} `type:"structure"` @@ -65798,7 +65025,6 @@ func (s *UnsuccessfulInstanceCreditSpecificationItemError) SetMessage(v string) } // Information about items that were not successfully processed in a batch call. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnsuccessfulItem type UnsuccessfulItem struct { _ struct{} `type:"structure"` @@ -65835,7 +65061,6 @@ func (s *UnsuccessfulItem) SetResourceId(v string) *UnsuccessfulItem { // Information about the error that occurred. For more information about errors, // see Error Codes (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/errors-overview.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UnsuccessfulItemError type UnsuccessfulItemError struct { _ struct{} `type:"structure"` @@ -65873,7 +65098,6 @@ func (s *UnsuccessfulItemError) SetMessage(v string) *UnsuccessfulItemError { } // Contains the parameters for UpdateSecurityGroupRuleDescriptionsEgress. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UpdateSecurityGroupRuleDescriptionsEgressRequest type UpdateSecurityGroupRuleDescriptionsEgressInput struct { _ struct{} `type:"structure"` @@ -65946,7 +65170,6 @@ func (s *UpdateSecurityGroupRuleDescriptionsEgressInput) SetIpPermissions(v []*I } // Contains the output of UpdateSecurityGroupRuleDescriptionsEgress. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UpdateSecurityGroupRuleDescriptionsEgressResult type UpdateSecurityGroupRuleDescriptionsEgressOutput struct { _ struct{} `type:"structure"` @@ -65971,7 +65194,6 @@ func (s *UpdateSecurityGroupRuleDescriptionsEgressOutput) SetReturn(v bool) *Upd } // Contains the parameters for UpdateSecurityGroupRuleDescriptionsIngress. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UpdateSecurityGroupRuleDescriptionsIngressRequest type UpdateSecurityGroupRuleDescriptionsIngressInput struct { _ struct{} `type:"structure"` @@ -66044,7 +65266,6 @@ func (s *UpdateSecurityGroupRuleDescriptionsIngressInput) SetIpPermissions(v []* } // Contains the output of UpdateSecurityGroupRuleDescriptionsIngress. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UpdateSecurityGroupRuleDescriptionsIngressResult type UpdateSecurityGroupRuleDescriptionsIngressOutput struct { _ struct{} `type:"structure"` @@ -66069,7 +65290,6 @@ func (s *UpdateSecurityGroupRuleDescriptionsIngressOutput) SetReturn(v bool) *Up } // Describes the S3 bucket for the disk image. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UserBucket type UserBucket struct { _ struct{} `type:"structure"` @@ -66103,7 +65323,6 @@ func (s *UserBucket) SetS3Key(v string) *UserBucket { } // Describes the S3 bucket for the disk image. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UserBucketDetails type UserBucketDetails struct { _ struct{} `type:"structure"` @@ -66137,7 +65356,6 @@ func (s *UserBucketDetails) SetS3Key(v string) *UserBucketDetails { } // Describes the user data for an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UserData type UserData struct { _ struct{} `type:"structure"` @@ -66164,7 +65382,6 @@ func (s *UserData) SetData(v string) *UserData { } // Describes a security group and AWS account ID pair. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/UserIdGroupPair type UserIdGroupPair struct { _ struct{} `type:"structure"` @@ -66259,7 +65476,6 @@ func (s *UserIdGroupPair) SetVpcPeeringConnectionId(v string) *UserIdGroupPair { } // Describes telemetry for a VPN tunnel. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VgwTelemetry type VgwTelemetry struct { _ struct{} `type:"structure"` @@ -66321,7 +65537,6 @@ func (s *VgwTelemetry) SetStatusMessage(v string) *VgwTelemetry { } // Describes a volume. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Volume type Volume struct { _ struct{} `type:"structure"` @@ -66460,7 +65675,6 @@ func (s *Volume) SetVolumeType(v string) *Volume { } // Describes volume attachment details. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VolumeAttachment type VolumeAttachment struct { _ struct{} `type:"structure"` @@ -66530,7 +65744,6 @@ func (s *VolumeAttachment) SetVolumeId(v string) *VolumeAttachment { } // Describes an EBS volume. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VolumeDetail type VolumeDetail struct { _ struct{} `type:"structure"` @@ -66572,7 +65785,6 @@ func (s *VolumeDetail) SetSize(v int64) *VolumeDetail { // Describes the modification status of an EBS volume. // // If the volume has never been modified, some element values will be null. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VolumeModification type VolumeModification struct { _ struct{} `type:"structure"` @@ -66697,7 +65909,6 @@ func (s *VolumeModification) SetVolumeId(v string) *VolumeModification { } // Describes a volume status operation code. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VolumeStatusAction type VolumeStatusAction struct { _ struct{} `type:"structure"` @@ -66749,7 +65960,6 @@ func (s *VolumeStatusAction) SetEventType(v string) *VolumeStatusAction { } // Describes a volume status. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VolumeStatusDetails type VolumeStatusDetails struct { _ struct{} `type:"structure"` @@ -66783,7 +65993,6 @@ func (s *VolumeStatusDetails) SetStatus(v string) *VolumeStatusDetails { } // Describes a volume status event. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VolumeStatusEvent type VolumeStatusEvent struct { _ struct{} `type:"structure"` @@ -66844,7 +66053,6 @@ func (s *VolumeStatusEvent) SetNotBefore(v time.Time) *VolumeStatusEvent { } // Describes the status of a volume. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VolumeStatusInfo type VolumeStatusInfo struct { _ struct{} `type:"structure"` @@ -66878,7 +66086,6 @@ func (s *VolumeStatusInfo) SetStatus(v string) *VolumeStatusInfo { } // Describes the volume status. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VolumeStatusItem type VolumeStatusItem struct { _ struct{} `type:"structure"` @@ -66939,7 +66146,6 @@ func (s *VolumeStatusItem) SetVolumeStatus(v *VolumeStatusInfo) *VolumeStatusIte } // Describes a VPC. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/Vpc type Vpc struct { _ struct{} `type:"structure"` @@ -67037,7 +66243,6 @@ func (s *Vpc) SetVpcId(v string) *Vpc { } // Describes an attachment between a virtual private gateway and a VPC. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpcAttachment type VpcAttachment struct { _ struct{} `type:"structure"` @@ -67071,7 +66276,6 @@ func (s *VpcAttachment) SetVpcId(v string) *VpcAttachment { } // Describes an IPv4 CIDR block associated with a VPC. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpcCidrBlockAssociation type VpcCidrBlockAssociation struct { _ struct{} `type:"structure"` @@ -67114,7 +66318,6 @@ func (s *VpcCidrBlockAssociation) SetCidrBlockState(v *VpcCidrBlockState) *VpcCi } // Describes the state of a CIDR block. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpcCidrBlockState type VpcCidrBlockState struct { _ struct{} `type:"structure"` @@ -67148,7 +66351,6 @@ func (s *VpcCidrBlockState) SetStatusMessage(v string) *VpcCidrBlockState { } // Describes whether a VPC is enabled for ClassicLink. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpcClassicLink type VpcClassicLink struct { _ struct{} `type:"structure"` @@ -67191,7 +66393,6 @@ func (s *VpcClassicLink) SetVpcId(v string) *VpcClassicLink { } // Describes a VPC endpoint. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpcEndpoint type VpcEndpoint struct { _ struct{} `type:"structure"` @@ -67326,7 +66527,6 @@ func (s *VpcEndpoint) SetVpcId(v string) *VpcEndpoint { } // Describes a VPC endpoint connection to a service. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpcEndpointConnection type VpcEndpointConnection struct { _ struct{} `type:"structure"` @@ -67387,7 +66587,6 @@ func (s *VpcEndpointConnection) SetVpcEndpointState(v string) *VpcEndpointConnec } // Describes an IPv6 CIDR block associated with a VPC. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpcIpv6CidrBlockAssociation type VpcIpv6CidrBlockAssociation struct { _ struct{} `type:"structure"` @@ -67430,7 +66629,6 @@ func (s *VpcIpv6CidrBlockAssociation) SetIpv6CidrBlockState(v *VpcCidrBlockState } // Describes a VPC peering connection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpcPeeringConnection type VpcPeeringConnection struct { _ struct{} `type:"structure"` @@ -67502,7 +66700,6 @@ func (s *VpcPeeringConnection) SetVpcPeeringConnectionId(v string) *VpcPeeringCo } // Describes the VPC peering connection options. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpcPeeringConnectionOptionsDescription type VpcPeeringConnectionOptionsDescription struct { _ struct{} `type:"structure"` @@ -67548,7 +66745,6 @@ func (s *VpcPeeringConnectionOptionsDescription) SetAllowEgressFromLocalVpcToRem } // Describes the status of a VPC peering connection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpcPeeringConnectionStateReason type VpcPeeringConnectionStateReason struct { _ struct{} `type:"structure"` @@ -67582,7 +66778,6 @@ func (s *VpcPeeringConnectionStateReason) SetMessage(v string) *VpcPeeringConnec } // Describes a VPC in a VPC peering connection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpcPeeringConnectionVpcInfo type VpcPeeringConnectionVpcInfo struct { _ struct{} `type:"structure"` @@ -67662,7 +66857,6 @@ func (s *VpcPeeringConnectionVpcInfo) SetVpcId(v string) *VpcPeeringConnectionVp } // Describes a VPN connection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpnConnection type VpnConnection struct { _ struct{} `type:"structure"` @@ -67783,7 +66977,6 @@ func (s *VpnConnection) SetVpnGatewayId(v string) *VpnConnection { } // Describes VPN connection options. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpnConnectionOptions type VpnConnectionOptions struct { _ struct{} `type:"structure"` @@ -67809,7 +67002,6 @@ func (s *VpnConnectionOptions) SetStaticRoutesOnly(v bool) *VpnConnectionOptions } // Describes VPN connection options. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpnConnectionOptionsSpecification type VpnConnectionOptionsSpecification struct { _ struct{} `type:"structure"` @@ -67847,7 +67039,6 @@ func (s *VpnConnectionOptionsSpecification) SetTunnelOptions(v []*VpnTunnelOptio } // Describes a virtual private gateway. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpnGateway type VpnGateway struct { _ struct{} `type:"structure"` @@ -67927,7 +67118,6 @@ func (s *VpnGateway) SetVpnGatewayId(v string) *VpnGateway { } // Describes a static route for a VPN connection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpnStaticRoute type VpnStaticRoute struct { _ struct{} `type:"structure"` @@ -67970,7 +67160,6 @@ func (s *VpnStaticRoute) SetState(v string) *VpnStaticRoute { } // The tunnel options for a VPN connection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/VpnTunnelOptionsSpecification type VpnTunnelOptionsSpecification struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/ecr/api.go b/vendor/github.com/aws/aws-sdk-go/service/ecr/api.go index 984aec965..bf9630e4c 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ecr/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ecr/api.go @@ -2236,7 +2236,6 @@ func (c *ECR) UploadLayerPartWithContext(ctx aws.Context, input *UploadLayerPart } // An object representing authorization data for an Amazon ECR registry. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/AuthorizationData type AuthorizationData struct { _ struct{} `type:"structure"` @@ -2283,7 +2282,6 @@ func (s *AuthorizationData) SetProxyEndpoint(v string) *AuthorizationData { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/BatchCheckLayerAvailabilityRequest type BatchCheckLayerAvailabilityInput struct { _ struct{} `type:"structure"` @@ -2352,7 +2350,6 @@ func (s *BatchCheckLayerAvailabilityInput) SetRepositoryName(v string) *BatchChe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/BatchCheckLayerAvailabilityResponse type BatchCheckLayerAvailabilityOutput struct { _ struct{} `type:"structure"` @@ -2388,7 +2385,6 @@ func (s *BatchCheckLayerAvailabilityOutput) SetLayers(v []*Layer) *BatchCheckLay // Deletes specified images within a specified repository. Images are specified // with either the imageTag or imageDigest. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/BatchDeleteImageRequest type BatchDeleteImageInput struct { _ struct{} `type:"structure"` @@ -2458,7 +2454,6 @@ func (s *BatchDeleteImageInput) SetRepositoryName(v string) *BatchDeleteImageInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/BatchDeleteImageResponse type BatchDeleteImageOutput struct { _ struct{} `type:"structure"` @@ -2491,7 +2486,6 @@ func (s *BatchDeleteImageOutput) SetImageIds(v []*ImageIdentifier) *BatchDeleteI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/BatchGetImageRequest type BatchGetImageInput struct { _ struct{} `type:"structure"` @@ -2576,7 +2570,6 @@ func (s *BatchGetImageInput) SetRepositoryName(v string) *BatchGetImageInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/BatchGetImageResponse type BatchGetImageOutput struct { _ struct{} `type:"structure"` @@ -2609,7 +2602,6 @@ func (s *BatchGetImageOutput) SetImages(v []*Image) *BatchGetImageOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/CompleteLayerUploadRequest type CompleteLayerUploadInput struct { _ struct{} `type:"structure"` @@ -2693,7 +2685,6 @@ func (s *CompleteLayerUploadInput) SetUploadId(v string) *CompleteLayerUploadInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/CompleteLayerUploadResponse type CompleteLayerUploadOutput struct { _ struct{} `type:"structure"` @@ -2744,7 +2735,6 @@ func (s *CompleteLayerUploadOutput) SetUploadId(v string) *CompleteLayerUploadOu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/CreateRepositoryRequest type CreateRepositoryInput struct { _ struct{} `type:"structure"` @@ -2788,7 +2778,6 @@ func (s *CreateRepositoryInput) SetRepositoryName(v string) *CreateRepositoryInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/CreateRepositoryResponse type CreateRepositoryOutput struct { _ struct{} `type:"structure"` @@ -2812,7 +2801,6 @@ func (s *CreateRepositoryOutput) SetRepository(v *Repository) *CreateRepositoryO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteLifecyclePolicyRequest type DeleteLifecyclePolicyInput struct { _ struct{} `type:"structure"` @@ -2865,7 +2853,6 @@ func (s *DeleteLifecyclePolicyInput) SetRepositoryName(v string) *DeleteLifecycl return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteLifecyclePolicyResponse type DeleteLifecyclePolicyOutput struct { _ struct{} `type:"structure"` @@ -2916,7 +2903,6 @@ func (s *DeleteLifecyclePolicyOutput) SetRepositoryName(v string) *DeleteLifecyc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteRepositoryRequest type DeleteRepositoryInput struct { _ struct{} `type:"structure"` @@ -2977,7 +2963,6 @@ func (s *DeleteRepositoryInput) SetRepositoryName(v string) *DeleteRepositoryInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteRepositoryResponse type DeleteRepositoryOutput struct { _ struct{} `type:"structure"` @@ -3001,7 +2986,6 @@ func (s *DeleteRepositoryOutput) SetRepository(v *Repository) *DeleteRepositoryO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteRepositoryPolicyRequest type DeleteRepositoryPolicyInput struct { _ struct{} `type:"structure"` @@ -3055,7 +3039,6 @@ func (s *DeleteRepositoryPolicyInput) SetRepositoryName(v string) *DeleteReposit return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DeleteRepositoryPolicyResponse type DeleteRepositoryPolicyOutput struct { _ struct{} `type:"structure"` @@ -3098,7 +3081,6 @@ func (s *DeleteRepositoryPolicyOutput) SetRepositoryName(v string) *DeleteReposi } // An object representing a filter on a DescribeImages operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeImagesFilter type DescribeImagesFilter struct { _ struct{} `type:"structure"` @@ -3123,7 +3105,6 @@ func (s *DescribeImagesFilter) SetTagStatus(v string) *DescribeImagesFilter { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeImagesRequest type DescribeImagesInput struct { _ struct{} `type:"structure"` @@ -3228,7 +3209,6 @@ func (s *DescribeImagesInput) SetRepositoryName(v string) *DescribeImagesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeImagesResponse type DescribeImagesOutput struct { _ struct{} `type:"structure"` @@ -3264,7 +3244,6 @@ func (s *DescribeImagesOutput) SetNextToken(v string) *DescribeImagesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeRepositoriesRequest type DescribeRepositoriesInput struct { _ struct{} `type:"structure"` @@ -3347,7 +3326,6 @@ func (s *DescribeRepositoriesInput) SetRepositoryNames(v []*string) *DescribeRep return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/DescribeRepositoriesResponse type DescribeRepositoriesOutput struct { _ struct{} `type:"structure"` @@ -3383,7 +3361,6 @@ func (s *DescribeRepositoriesOutput) SetRepositories(v []*Repository) *DescribeR return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetAuthorizationTokenRequest type GetAuthorizationTokenInput struct { _ struct{} `type:"structure"` @@ -3422,7 +3399,6 @@ func (s *GetAuthorizationTokenInput) SetRegistryIds(v []*string) *GetAuthorizati return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetAuthorizationTokenResponse type GetAuthorizationTokenOutput struct { _ struct{} `type:"structure"` @@ -3447,7 +3423,6 @@ func (s *GetAuthorizationTokenOutput) SetAuthorizationData(v []*AuthorizationDat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetDownloadUrlForLayerRequest type GetDownloadUrlForLayerInput struct { _ struct{} `type:"structure"` @@ -3513,7 +3488,6 @@ func (s *GetDownloadUrlForLayerInput) SetRepositoryName(v string) *GetDownloadUr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetDownloadUrlForLayerResponse type GetDownloadUrlForLayerOutput struct { _ struct{} `type:"structure"` @@ -3546,7 +3520,6 @@ func (s *GetDownloadUrlForLayerOutput) SetLayerDigest(v string) *GetDownloadUrlF return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetLifecyclePolicyRequest type GetLifecyclePolicyInput struct { _ struct{} `type:"structure"` @@ -3598,7 +3571,6 @@ func (s *GetLifecyclePolicyInput) SetRepositoryName(v string) *GetLifecyclePolic return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetLifecyclePolicyResponse type GetLifecyclePolicyOutput struct { _ struct{} `type:"structure"` @@ -3649,7 +3621,6 @@ func (s *GetLifecyclePolicyOutput) SetRepositoryName(v string) *GetLifecyclePoli return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetLifecyclePolicyPreviewRequest type GetLifecyclePolicyPreviewInput struct { _ struct{} `type:"structure"` @@ -3755,7 +3726,6 @@ func (s *GetLifecyclePolicyPreviewInput) SetRepositoryName(v string) *GetLifecyc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetLifecyclePolicyPreviewResponse type GetLifecyclePolicyPreviewOutput struct { _ struct{} `type:"structure"` @@ -3836,7 +3806,6 @@ func (s *GetLifecyclePolicyPreviewOutput) SetSummary(v *LifecyclePolicyPreviewSu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetRepositoryPolicyRequest type GetRepositoryPolicyInput struct { _ struct{} `type:"structure"` @@ -3888,7 +3857,6 @@ func (s *GetRepositoryPolicyInput) SetRepositoryName(v string) *GetRepositoryPol return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/GetRepositoryPolicyResponse type GetRepositoryPolicyOutput struct { _ struct{} `type:"structure"` @@ -3931,7 +3899,6 @@ func (s *GetRepositoryPolicyOutput) SetRepositoryName(v string) *GetRepositoryPo } // An object representing an Amazon ECR image. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/Image type Image struct { _ struct{} `type:"structure"` @@ -3983,7 +3950,6 @@ func (s *Image) SetRepositoryName(v string) *Image { } // An object that describes an image returned by a DescribeImages operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/ImageDetail type ImageDetail struct { _ struct{} `type:"structure"` @@ -4059,7 +4025,6 @@ func (s *ImageDetail) SetRepositoryName(v string) *ImageDetail { } // An object representing an Amazon ECR image failure. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/ImageFailure type ImageFailure struct { _ struct{} `type:"structure"` @@ -4102,7 +4067,6 @@ func (s *ImageFailure) SetImageId(v *ImageIdentifier) *ImageFailure { } // An object with identifying information for an Amazon ECR image. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/ImageIdentifier type ImageIdentifier struct { _ struct{} `type:"structure"` @@ -4135,7 +4099,6 @@ func (s *ImageIdentifier) SetImageTag(v string) *ImageIdentifier { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/InitiateLayerUploadRequest type InitiateLayerUploadInput struct { _ struct{} `type:"structure"` @@ -4187,7 +4150,6 @@ func (s *InitiateLayerUploadInput) SetRepositoryName(v string) *InitiateLayerUpl return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/InitiateLayerUploadResponse type InitiateLayerUploadOutput struct { _ struct{} `type:"structure"` @@ -4223,7 +4185,6 @@ func (s *InitiateLayerUploadOutput) SetUploadId(v string) *InitiateLayerUploadOu } // An object representing an Amazon ECR image layer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/Layer type Layer struct { _ struct{} `type:"structure"` @@ -4276,7 +4237,6 @@ func (s *Layer) SetMediaType(v string) *Layer { } // An object representing an Amazon ECR image layer failure. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/LayerFailure type LayerFailure struct { _ struct{} `type:"structure"` @@ -4319,7 +4279,6 @@ func (s *LayerFailure) SetLayerDigest(v string) *LayerFailure { } // The filter for the lifecycle policy preview. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/LifecyclePolicyPreviewFilter type LifecyclePolicyPreviewFilter struct { _ struct{} `type:"structure"` @@ -4344,7 +4303,6 @@ func (s *LifecyclePolicyPreviewFilter) SetTagStatus(v string) *LifecyclePolicyPr } // The result of the lifecycle policy preview. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/LifecyclePolicyPreviewResult type LifecyclePolicyPreviewResult struct { _ struct{} `type:"structure"` @@ -4406,7 +4364,6 @@ func (s *LifecyclePolicyPreviewResult) SetImageTags(v []*string) *LifecyclePolic } // The summary of the lifecycle policy preview request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/LifecyclePolicyPreviewSummary type LifecyclePolicyPreviewSummary struct { _ struct{} `type:"structure"` @@ -4431,7 +4388,6 @@ func (s *LifecyclePolicyPreviewSummary) SetExpiringImageTotalCount(v int64) *Lif } // The type of action to be taken. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/LifecyclePolicyRuleAction type LifecyclePolicyRuleAction struct { _ struct{} `type:"structure"` @@ -4456,7 +4412,6 @@ func (s *LifecyclePolicyRuleAction) SetType(v string) *LifecyclePolicyRuleAction } // An object representing a filter on a ListImages operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/ListImagesFilter type ListImagesFilter struct { _ struct{} `type:"structure"` @@ -4481,7 +4436,6 @@ func (s *ListImagesFilter) SetTagStatus(v string) *ListImagesFilter { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/ListImagesRequest type ListImagesInput struct { _ struct{} `type:"structure"` @@ -4576,7 +4530,6 @@ func (s *ListImagesInput) SetRepositoryName(v string) *ListImagesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/ListImagesResponse type ListImagesOutput struct { _ struct{} `type:"structure"` @@ -4612,7 +4565,6 @@ func (s *ListImagesOutput) SetNextToken(v string) *ListImagesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutImageRequest type PutImageInput struct { _ struct{} `type:"structure"` @@ -4689,7 +4641,6 @@ func (s *PutImageInput) SetRepositoryName(v string) *PutImageInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutImageResponse type PutImageOutput struct { _ struct{} `type:"structure"` @@ -4713,7 +4664,6 @@ func (s *PutImageOutput) SetImage(v *Image) *PutImageOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutLifecyclePolicyRequest type PutLifecyclePolicyInput struct { _ struct{} `type:"structure"` @@ -4782,7 +4732,6 @@ func (s *PutLifecyclePolicyInput) SetRepositoryName(v string) *PutLifecyclePolic return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/PutLifecyclePolicyResponse type PutLifecyclePolicyOutput struct { _ struct{} `type:"structure"` @@ -4825,7 +4774,6 @@ func (s *PutLifecyclePolicyOutput) SetRepositoryName(v string) *PutLifecyclePoli } // An object representing a repository. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/Repository type Repository struct { _ struct{} `type:"structure"` @@ -4889,7 +4837,6 @@ func (s *Repository) SetRepositoryUri(v string) *Repository { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/SetRepositoryPolicyRequest type SetRepositoryPolicyInput struct { _ struct{} `type:"structure"` @@ -4966,7 +4913,6 @@ func (s *SetRepositoryPolicyInput) SetRepositoryName(v string) *SetRepositoryPol return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/SetRepositoryPolicyResponse type SetRepositoryPolicyOutput struct { _ struct{} `type:"structure"` @@ -5008,7 +4954,6 @@ func (s *SetRepositoryPolicyOutput) SetRepositoryName(v string) *SetRepositoryPo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/StartLifecyclePolicyPreviewRequest type StartLifecyclePolicyPreviewInput struct { _ struct{} `type:"structure"` @@ -5073,7 +5018,6 @@ func (s *StartLifecyclePolicyPreviewInput) SetRepositoryName(v string) *StartLif return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/StartLifecyclePolicyPreviewResponse type StartLifecyclePolicyPreviewOutput struct { _ struct{} `type:"structure"` @@ -5124,7 +5068,6 @@ func (s *StartLifecyclePolicyPreviewOutput) SetStatus(v string) *StartLifecycleP return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/UploadLayerPartRequest type UploadLayerPartInput struct { _ struct{} `type:"structure"` @@ -5235,7 +5178,6 @@ func (s *UploadLayerPartInput) SetUploadId(v string) *UploadLayerPartInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecr-2015-09-21/UploadLayerPartResponse type UploadLayerPartOutput struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/ecs/api.go b/vendor/github.com/aws/aws-sdk-go/service/ecs/api.go index 1b467b893..7a7b33abb 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ecs/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ecs/api.go @@ -3565,7 +3565,6 @@ func (c *ECS) UpdateServiceWithContext(ctx aws.Context, input *UpdateServiceInpu } // An object representing a container instance or task attachment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Attachment type Attachment struct { _ struct{} `type:"structure"` @@ -3620,7 +3619,6 @@ func (s *Attachment) SetType(v string) *Attachment { } // An object representing a change in state for a task attachment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/AttachmentStateChange type AttachmentStateChange struct { _ struct{} `type:"structure"` @@ -3677,7 +3675,6 @@ func (s *AttachmentStateChange) SetStatus(v string) *AttachmentStateChange { // enable you to extend the Amazon ECS data model by adding custom metadata // to your resources. For more information, see Attributes (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html#attributes) // in the Amazon Elastic Container Service Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Attribute type Attribute struct { _ struct{} `type:"structure"` @@ -3750,7 +3747,6 @@ func (s *Attribute) SetValue(v string) *Attribute { } // An object representing the networking details for a task or service. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/AwsVpcConfiguration type AwsVpcConfiguration struct { _ struct{} `type:"structure"` @@ -3813,7 +3809,6 @@ func (s *AwsVpcConfiguration) SetSubnets(v []*string) *AwsVpcConfiguration { // task requests. Each account receives a default cluster the first time you // use the Amazon ECS service, but you may also create other clusters. Clusters // may contain more than one instance type simultaneously. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Cluster type Cluster struct { _ struct{} `type:"structure"` @@ -3924,7 +3919,6 @@ func (s *Cluster) SetStatus(v string) *Cluster { } // A Docker container that is part of a task. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Container type Container struct { _ struct{} `type:"structure"` @@ -4014,7 +4008,6 @@ func (s *Container) SetTaskArn(v string) *Container { // Container definitions are used in task definitions to describe the different // containers that are launched as part of a task. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ContainerDefinition type ContainerDefinition struct { _ struct{} `type:"structure"` @@ -4630,7 +4623,6 @@ func (s *ContainerDefinition) SetWorkingDirectory(v string) *ContainerDefinition // An EC2 instance that is running the Amazon ECS agent and has been registered // with a cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ContainerInstance type ContainerInstance struct { _ struct{} `type:"structure"` @@ -4799,7 +4791,6 @@ func (s *ContainerInstance) SetVersionInfo(v *VersionInfo) *ContainerInstance { } // The overrides that should be sent to a container. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ContainerOverride type ContainerOverride struct { _ struct{} `type:"structure"` @@ -4881,7 +4872,6 @@ func (s *ContainerOverride) SetName(v string) *ContainerOverride { } // An object representing a change in state for a container. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ContainerStateChange type ContainerStateChange struct { _ struct{} `type:"structure"` @@ -4942,7 +4932,6 @@ func (s *ContainerStateChange) SetStatus(v string) *ContainerStateChange { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateClusterRequest type CreateClusterInput struct { _ struct{} `type:"structure"` @@ -4968,7 +4957,6 @@ func (s *CreateClusterInput) SetClusterName(v string) *CreateClusterInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateClusterResponse type CreateClusterOutput struct { _ struct{} `type:"structure"` @@ -4992,7 +4980,6 @@ func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateServiceRequest type CreateServiceInput struct { _ struct{} `type:"structure"` @@ -5224,7 +5211,6 @@ func (s *CreateServiceInput) SetTaskDefinition(v string) *CreateServiceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/CreateServiceResponse type CreateServiceOutput struct { _ struct{} `type:"structure"` @@ -5248,7 +5234,6 @@ func (s *CreateServiceOutput) SetService(v *Service) *CreateServiceOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAttributesRequest type DeleteAttributesInput struct { _ struct{} `type:"structure"` @@ -5311,7 +5296,6 @@ func (s *DeleteAttributesInput) SetCluster(v string) *DeleteAttributesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteAttributesResponse type DeleteAttributesOutput struct { _ struct{} `type:"structure"` @@ -5335,7 +5319,6 @@ func (s *DeleteAttributesOutput) SetAttributes(v []*Attribute) *DeleteAttributes return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteClusterRequest type DeleteClusterInput struct { _ struct{} `type:"structure"` @@ -5374,7 +5357,6 @@ func (s *DeleteClusterInput) SetCluster(v string) *DeleteClusterInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteClusterResponse type DeleteClusterOutput struct { _ struct{} `type:"structure"` @@ -5398,7 +5380,6 @@ func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteServiceRequest type DeleteServiceInput struct { _ struct{} `type:"structure"` @@ -5448,7 +5429,6 @@ func (s *DeleteServiceInput) SetService(v string) *DeleteServiceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeleteServiceResponse type DeleteServiceOutput struct { _ struct{} `type:"structure"` @@ -5473,7 +5453,6 @@ func (s *DeleteServiceOutput) SetService(v *Service) *DeleteServiceOutput { } // The details of an Amazon ECS service deployment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Deployment type Deployment struct { _ struct{} `type:"structure"` @@ -5594,7 +5573,6 @@ func (s *Deployment) SetUpdatedAt(v time.Time) *Deployment { // Optional deployment parameters that control how many tasks run during the // deployment and the ordering of stopping and starting tasks. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeploymentConfiguration type DeploymentConfiguration struct { _ struct{} `type:"structure"` @@ -5634,7 +5612,6 @@ func (s *DeploymentConfiguration) SetMinimumHealthyPercent(v int64) *DeploymentC return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstanceRequest type DeregisterContainerInstanceInput struct { _ struct{} `type:"structure"` @@ -5708,7 +5685,6 @@ func (s *DeregisterContainerInstanceInput) SetForce(v bool) *DeregisterContainer return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterContainerInstanceResponse type DeregisterContainerInstanceOutput struct { _ struct{} `type:"structure"` @@ -5732,7 +5708,6 @@ func (s *DeregisterContainerInstanceOutput) SetContainerInstance(v *ContainerIns return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterTaskDefinitionRequest type DeregisterTaskDefinitionInput struct { _ struct{} `type:"structure"` @@ -5772,7 +5747,6 @@ func (s *DeregisterTaskDefinitionInput) SetTaskDefinition(v string) *DeregisterT return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DeregisterTaskDefinitionResponse type DeregisterTaskDefinitionOutput struct { _ struct{} `type:"structure"` @@ -5796,7 +5770,6 @@ func (s *DeregisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *D return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClustersRequest type DescribeClustersInput struct { _ struct{} `type:"structure"` @@ -5847,7 +5820,6 @@ func (s *DescribeClustersInput) SetInclude(v []*string) *DescribeClustersInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeClustersResponse type DescribeClustersOutput struct { _ struct{} `type:"structure"` @@ -5880,7 +5852,6 @@ func (s *DescribeClustersOutput) SetFailures(v []*Failure) *DescribeClustersOutp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeContainerInstancesRequest type DescribeContainerInstancesInput struct { _ struct{} `type:"structure"` @@ -5930,7 +5901,6 @@ func (s *DescribeContainerInstancesInput) SetContainerInstances(v []*string) *De return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeContainerInstancesResponse type DescribeContainerInstancesOutput struct { _ struct{} `type:"structure"` @@ -5963,7 +5933,6 @@ func (s *DescribeContainerInstancesOutput) SetFailures(v []*Failure) *DescribeCo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeServicesRequest type DescribeServicesInput struct { _ struct{} `type:"structure"` @@ -6014,7 +5983,6 @@ func (s *DescribeServicesInput) SetServices(v []*string) *DescribeServicesInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeServicesResponse type DescribeServicesOutput struct { _ struct{} `type:"structure"` @@ -6047,7 +6015,6 @@ func (s *DescribeServicesOutput) SetServices(v []*Service) *DescribeServicesOutp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskDefinitionRequest type DescribeTaskDefinitionInput struct { _ struct{} `type:"structure"` @@ -6088,7 +6055,6 @@ func (s *DescribeTaskDefinitionInput) SetTaskDefinition(v string) *DescribeTaskD return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTaskDefinitionResponse type DescribeTaskDefinitionOutput struct { _ struct{} `type:"structure"` @@ -6112,7 +6078,6 @@ func (s *DescribeTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *Des return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTasksRequest type DescribeTasksInput struct { _ struct{} `type:"structure"` @@ -6162,7 +6127,6 @@ func (s *DescribeTasksInput) SetTasks(v []*string) *DescribeTasksInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DescribeTasksResponse type DescribeTasksOutput struct { _ struct{} `type:"structure"` @@ -6196,7 +6160,6 @@ func (s *DescribeTasksOutput) SetTasks(v []*Task) *DescribeTasksOutput { } // An object representing a container instance host device. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Device type Device struct { _ struct{} `type:"structure"` @@ -6254,7 +6217,6 @@ func (s *Device) SetPermissions(v []*string) *Device { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpointRequest type DiscoverPollEndpointInput struct { _ struct{} `type:"structure"` @@ -6291,7 +6253,6 @@ func (s *DiscoverPollEndpointInput) SetContainerInstance(v string) *DiscoverPoll return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/DiscoverPollEndpointResponse type DiscoverPollEndpointOutput struct { _ struct{} `type:"structure"` @@ -6325,7 +6286,6 @@ func (s *DiscoverPollEndpointOutput) SetTelemetryEndpoint(v string) *DiscoverPol } // A failed resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Failure type Failure struct { _ struct{} `type:"structure"` @@ -6360,7 +6320,6 @@ func (s *Failure) SetReason(v string) *Failure { // Hostnames and IP address entries that are added to the /etc/hosts file of // a container via the extraHosts parameter of its ContainerDefinition. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/HostEntry type HostEntry struct { _ struct{} `type:"structure"` @@ -6414,7 +6373,6 @@ func (s *HostEntry) SetIpAddress(v string) *HostEntry { } // Details on a container instance host volume. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/HostVolumeProperties type HostVolumeProperties struct { _ struct{} `type:"structure"` @@ -6454,7 +6412,6 @@ func (s *HostVolumeProperties) SetSourcePath(v string) *HostVolumeProperties { // in the Docker run reference. For more detailed information on these Linux // capabilities, see the capabilities(7) (http://man7.org/linux/man-pages/man7/capabilities.7.html) // Linux manual page. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/KernelCapabilities type KernelCapabilities struct { _ struct{} `type:"structure"` @@ -6514,7 +6471,6 @@ func (s *KernelCapabilities) SetDrop(v []*string) *KernelCapabilities { } // A key and value pair object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/KeyValuePair type KeyValuePair struct { _ struct{} `type:"structure"` @@ -6550,7 +6506,6 @@ func (s *KeyValuePair) SetValue(v string) *KeyValuePair { } // Linux-specific options that are applied to the container, such as Linux KernelCapabilities. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/LinuxParameters type LinuxParameters struct { _ struct{} `type:"structure"` @@ -6621,7 +6576,6 @@ func (s *LinuxParameters) SetInitProcessEnabled(v bool) *LinuxParameters { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributesRequest type ListAttributesInput struct { _ struct{} `type:"structure"` @@ -6719,7 +6673,6 @@ func (s *ListAttributesInput) SetTargetType(v string) *ListAttributesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListAttributesResponse type ListAttributesOutput struct { _ struct{} `type:"structure"` @@ -6755,7 +6708,6 @@ func (s *ListAttributesOutput) SetNextToken(v string) *ListAttributesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClustersRequest type ListClustersInput struct { _ struct{} `type:"structure"` @@ -6800,7 +6752,6 @@ func (s *ListClustersInput) SetNextToken(v string) *ListClustersInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListClustersResponse type ListClustersOutput struct { _ struct{} `type:"structure"` @@ -6837,7 +6788,6 @@ func (s *ListClustersOutput) SetNextToken(v string) *ListClustersOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstancesRequest type ListContainerInstancesInput struct { _ struct{} `type:"structure"` @@ -6919,7 +6869,6 @@ func (s *ListContainerInstancesInput) SetStatus(v string) *ListContainerInstance return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListContainerInstancesResponse type ListContainerInstancesOutput struct { _ struct{} `type:"structure"` @@ -6956,7 +6905,6 @@ func (s *ListContainerInstancesOutput) SetNextToken(v string) *ListContainerInst return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServicesRequest type ListServicesInput struct { _ struct{} `type:"structure"` @@ -7021,7 +6969,6 @@ func (s *ListServicesInput) SetNextToken(v string) *ListServicesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListServicesResponse type ListServicesOutput struct { _ struct{} `type:"structure"` @@ -7058,7 +7005,6 @@ func (s *ListServicesOutput) SetServiceArns(v []*string) *ListServicesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamiliesRequest type ListTaskDefinitionFamiliesInput struct { _ struct{} `type:"structure"` @@ -7130,7 +7076,6 @@ func (s *ListTaskDefinitionFamiliesInput) SetStatus(v string) *ListTaskDefinitio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionFamiliesResponse type ListTaskDefinitionFamiliesOutput struct { _ struct{} `type:"structure"` @@ -7167,7 +7112,6 @@ func (s *ListTaskDefinitionFamiliesOutput) SetNextToken(v string) *ListTaskDefin return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionsRequest type ListTaskDefinitionsInput struct { _ struct{} `type:"structure"` @@ -7250,7 +7194,6 @@ func (s *ListTaskDefinitionsInput) SetStatus(v string) *ListTaskDefinitionsInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTaskDefinitionsResponse type ListTaskDefinitionsOutput struct { _ struct{} `type:"structure"` @@ -7287,7 +7230,6 @@ func (s *ListTaskDefinitionsOutput) SetTaskDefinitionArns(v []*string) *ListTask return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasksRequest type ListTasksInput struct { _ struct{} `type:"structure"` @@ -7411,7 +7353,6 @@ func (s *ListTasksInput) SetStartedBy(v string) *ListTasksInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ListTasksResponse type ListTasksOutput struct { _ struct{} `type:"structure"` @@ -7448,7 +7389,6 @@ func (s *ListTasksOutput) SetTaskArns(v []*string) *ListTasksOutput { } // Details on a load balancer that is used with a service. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/LoadBalancer type LoadBalancer struct { _ struct{} `type:"structure"` @@ -7505,7 +7445,6 @@ func (s *LoadBalancer) SetTargetGroupArn(v string) *LoadBalancer { } // Log configuration options to send to a custom log driver for the container. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/LogConfiguration type LogConfiguration struct { _ struct{} `type:"structure"` @@ -7575,7 +7514,6 @@ func (s *LogConfiguration) SetOptions(v map[string]*string) *LogConfiguration { } // Details on a volume mount point that is used in a container definition. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/MountPoint type MountPoint struct { _ struct{} `type:"structure"` @@ -7623,7 +7561,6 @@ func (s *MountPoint) SetSourceVolume(v string) *MountPoint { // instance. After a task reaches the RUNNING status, manual and automatic host // and container port assignments are visible in the networkBindings section // of DescribeTasks API responses. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/NetworkBinding type NetworkBinding struct { _ struct{} `type:"structure"` @@ -7675,7 +7612,6 @@ func (s *NetworkBinding) SetProtocol(v string) *NetworkBinding { } // An object representing the network configuration for a task or service. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/NetworkConfiguration type NetworkConfiguration struct { _ struct{} `type:"structure"` @@ -7716,7 +7652,6 @@ func (s *NetworkConfiguration) SetAwsvpcConfiguration(v *AwsVpcConfiguration) *N // An object representing the Elastic Network Interface for tasks that use the // awsvpc network mode. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/NetworkInterface type NetworkInterface struct { _ struct{} `type:"structure"` @@ -7761,7 +7696,6 @@ func (s *NetworkInterface) SetPrivateIpv4Address(v string) *NetworkInterface { // An object representing a constraint on task placement. For more information, // see Task Placement Constraints (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html) // in the Amazon Elastic Container Service Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PlacementConstraint type PlacementConstraint struct { _ struct{} `type:"structure"` @@ -7803,7 +7737,6 @@ func (s *PlacementConstraint) SetType(v string) *PlacementConstraint { // The task placement strategy for a task or service. For more information, // see Task Placement Strategies (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-strategies.html) // in the Amazon Elastic Container Service Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PlacementStrategy type PlacementStrategy struct { _ struct{} `type:"structure"` @@ -7858,7 +7791,6 @@ func (s *PlacementStrategy) SetType(v string) *PlacementStrategy { // After a task reaches the RUNNING status, manual and automatic host and container // port assignments are visible in the networkBindings section of DescribeTasks // API responses. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PortMapping type PortMapping struct { _ struct{} `type:"structure"` @@ -7939,7 +7871,6 @@ func (s *PortMapping) SetProtocol(v string) *PortMapping { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributesRequest type PutAttributesInput struct { _ struct{} `type:"structure"` @@ -8001,7 +7932,6 @@ func (s *PutAttributesInput) SetCluster(v string) *PutAttributesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/PutAttributesResponse type PutAttributesOutput struct { _ struct{} `type:"structure"` @@ -8025,7 +7955,6 @@ func (s *PutAttributesOutput) SetAttributes(v []*Attribute) *PutAttributesOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstanceRequest type RegisterContainerInstanceInput struct { _ struct{} `type:"structure"` @@ -8129,7 +8058,6 @@ func (s *RegisterContainerInstanceInput) SetVersionInfo(v *VersionInfo) *Registe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterContainerInstanceResponse type RegisterContainerInstanceOutput struct { _ struct{} `type:"structure"` @@ -8153,7 +8081,6 @@ func (s *RegisterContainerInstanceOutput) SetContainerInstance(v *ContainerInsta return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinitionRequest type RegisterTaskDefinitionInput struct { _ struct{} `type:"structure"` @@ -8371,7 +8298,6 @@ func (s *RegisterTaskDefinitionInput) SetVolumes(v []*Volume) *RegisterTaskDefin return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RegisterTaskDefinitionResponse type RegisterTaskDefinitionOutput struct { _ struct{} `type:"structure"` @@ -8396,7 +8322,6 @@ func (s *RegisterTaskDefinitionOutput) SetTaskDefinition(v *TaskDefinition) *Reg } // Describes the resources available for a container instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Resource type Resource struct { _ struct{} `type:"structure"` @@ -8468,7 +8393,6 @@ func (s *Resource) SetType(v string) *Resource { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTaskRequest type RunTaskInput struct { _ struct{} `type:"structure"` @@ -8632,7 +8556,6 @@ func (s *RunTaskInput) SetTaskDefinition(v string) *RunTaskInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/RunTaskResponse type RunTaskOutput struct { _ struct{} `type:"structure"` @@ -8667,7 +8590,6 @@ func (s *RunTaskOutput) SetTasks(v []*Task) *RunTaskOutput { } // Details on a service within a cluster -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Service type Service struct { _ struct{} `type:"structure"` @@ -8883,7 +8805,6 @@ func (s *Service) SetTaskDefinition(v string) *Service { } // Details on an event associated with a service. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/ServiceEvent type ServiceEvent struct { _ struct{} `type:"structure"` @@ -8925,7 +8846,6 @@ func (s *ServiceEvent) SetMessage(v string) *ServiceEvent { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTaskRequest type StartTaskInput struct { _ struct{} `type:"structure"` @@ -9052,7 +8972,6 @@ func (s *StartTaskInput) SetTaskDefinition(v string) *StartTaskInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StartTaskResponse type StartTaskOutput struct { _ struct{} `type:"structure"` @@ -9086,7 +9005,6 @@ func (s *StartTaskOutput) SetTasks(v []*Task) *StartTaskOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTaskRequest type StopTaskInput struct { _ struct{} `type:"structure"` @@ -9148,7 +9066,6 @@ func (s *StopTaskInput) SetTask(v string) *StopTaskInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/StopTaskResponse type StopTaskOutput struct { _ struct{} `type:"structure"` @@ -9172,7 +9089,6 @@ func (s *StopTaskOutput) SetTask(v *Task) *StopTaskOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChangeRequest type SubmitContainerStateChangeInput struct { _ struct{} `type:"structure"` @@ -9251,7 +9167,6 @@ func (s *SubmitContainerStateChangeInput) SetTask(v string) *SubmitContainerStat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitContainerStateChangeResponse type SubmitContainerStateChangeOutput struct { _ struct{} `type:"structure"` @@ -9275,7 +9190,6 @@ func (s *SubmitContainerStateChangeOutput) SetAcknowledgment(v string) *SubmitCo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChangeRequest type SubmitTaskStateChangeInput struct { _ struct{} `type:"structure"` @@ -9392,7 +9306,6 @@ func (s *SubmitTaskStateChangeInput) SetTask(v string) *SubmitTaskStateChangeInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/SubmitTaskStateChangeResponse type SubmitTaskStateChangeOutput struct { _ struct{} `type:"structure"` @@ -9417,7 +9330,6 @@ func (s *SubmitTaskStateChangeOutput) SetAcknowledgment(v string) *SubmitTaskSta } // Details on a task in a cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Task type Task struct { _ struct{} `type:"structure"` @@ -9712,7 +9624,6 @@ func (s *Task) SetVersion(v int64) *Task { } // Details of a task definition. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TaskDefinition type TaskDefinition struct { _ struct{} `type:"structure"` @@ -9960,7 +9871,6 @@ func (s *TaskDefinition) SetVolumes(v []*Volume) *TaskDefinition { // // For more information, see Task Placement Constraints (http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html) // in the Amazon Elastic Container Service Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TaskDefinitionPlacementConstraint type TaskDefinitionPlacementConstraint struct { _ struct{} `type:"structure"` @@ -9998,7 +9908,6 @@ func (s *TaskDefinitionPlacementConstraint) SetType(v string) *TaskDefinitionPla } // The overrides associated with a task. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/TaskOverride type TaskOverride struct { _ struct{} `type:"structure"` @@ -10044,7 +9953,6 @@ func (s *TaskOverride) SetTaskRoleArn(v string) *TaskOverride { } // The ulimit settings to pass to the container. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Ulimit type Ulimit struct { _ struct{} `type:"structure"` @@ -10111,7 +10019,6 @@ func (s *Ulimit) SetSoftLimit(v int64) *Ulimit { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgentRequest type UpdateContainerAgentInput struct { _ struct{} `type:"structure"` @@ -10162,7 +10069,6 @@ func (s *UpdateContainerAgentInput) SetContainerInstance(v string) *UpdateContai return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerAgentResponse type UpdateContainerAgentOutput struct { _ struct{} `type:"structure"` @@ -10186,7 +10092,6 @@ func (s *UpdateContainerAgentOutput) SetContainerInstance(v *ContainerInstance) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesStateRequest type UpdateContainerInstancesStateInput struct { _ struct{} `type:"structure"` @@ -10250,7 +10155,6 @@ func (s *UpdateContainerInstancesStateInput) SetStatus(v string) *UpdateContaine return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateContainerInstancesStateResponse type UpdateContainerInstancesStateOutput struct { _ struct{} `type:"structure"` @@ -10283,7 +10187,6 @@ func (s *UpdateContainerInstancesStateOutput) SetFailures(v []*Failure) *UpdateC return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServiceRequest type UpdateServiceInput struct { _ struct{} `type:"structure"` @@ -10424,7 +10327,6 @@ func (s *UpdateServiceInput) SetTaskDefinition(v string) *UpdateServiceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/UpdateServiceResponse type UpdateServiceOutput struct { _ struct{} `type:"structure"` @@ -10450,7 +10352,6 @@ func (s *UpdateServiceOutput) SetService(v *Service) *UpdateServiceOutput { // The Docker and Amazon ECS container agent version information about a container // instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/VersionInfo type VersionInfo struct { _ struct{} `type:"structure"` @@ -10494,7 +10395,6 @@ func (s *VersionInfo) SetDockerVersion(v string) *VersionInfo { } // A data volume used in a task definition. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/Volume type Volume struct { _ struct{} `type:"structure"` @@ -10539,7 +10439,6 @@ func (s *Volume) SetName(v string) *Volume { } // Details on a data volume from another container in the same task definition. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ecs-2014-11-13/VolumeFrom type VolumeFrom struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/efs/api.go b/vendor/github.com/aws/aws-sdk-go/service/efs/api.go index 964a1c4c2..413b0b2c6 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/efs/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/efs/api.go @@ -1296,7 +1296,6 @@ func (c *EFS) ModifyMountTargetSecurityGroupsWithContext(ctx aws.Context, input return out, req.Send() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/CreateFileSystemRequest type CreateFileSystemInput struct { _ struct{} `type:"structure"` @@ -1393,7 +1392,6 @@ func (s *CreateFileSystemInput) SetPerformanceMode(v string) *CreateFileSystemIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/CreateMountTargetRequest type CreateMountTargetInput struct { _ struct{} `type:"structure"` @@ -1465,7 +1463,6 @@ func (s *CreateMountTargetInput) SetSubnetId(v string) *CreateMountTargetInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/CreateTagsRequest type CreateTagsInput struct { _ struct{} `type:"structure"` @@ -1529,7 +1526,6 @@ func (s *CreateTagsInput) SetTags(v []*Tag) *CreateTagsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/CreateTagsOutput type CreateTagsOutput struct { _ struct{} `type:"structure"` } @@ -1544,7 +1540,6 @@ func (s CreateTagsOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DeleteFileSystemRequest type DeleteFileSystemInput struct { _ struct{} `type:"structure"` @@ -1583,7 +1578,6 @@ func (s *DeleteFileSystemInput) SetFileSystemId(v string) *DeleteFileSystemInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DeleteFileSystemOutput type DeleteFileSystemOutput struct { _ struct{} `type:"structure"` } @@ -1598,7 +1592,6 @@ func (s DeleteFileSystemOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DeleteMountTargetRequest type DeleteMountTargetInput struct { _ struct{} `type:"structure"` @@ -1637,7 +1630,6 @@ func (s *DeleteMountTargetInput) SetMountTargetId(v string) *DeleteMountTargetIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DeleteMountTargetOutput type DeleteMountTargetOutput struct { _ struct{} `type:"structure"` } @@ -1652,7 +1644,6 @@ func (s DeleteMountTargetOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DeleteTagsRequest type DeleteTagsInput struct { _ struct{} `type:"structure"` @@ -1705,7 +1696,6 @@ func (s *DeleteTagsInput) SetTagKeys(v []*string) *DeleteTagsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DeleteTagsOutput type DeleteTagsOutput struct { _ struct{} `type:"structure"` } @@ -1720,7 +1710,6 @@ func (s DeleteTagsOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeFileSystemsRequest type DescribeFileSystemsInput struct { _ struct{} `type:"structure"` @@ -1795,7 +1784,6 @@ func (s *DescribeFileSystemsInput) SetMaxItems(v int64) *DescribeFileSystemsInpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeFileSystemsResponse type DescribeFileSystemsOutput struct { _ struct{} `type:"structure"` @@ -1838,7 +1826,6 @@ func (s *DescribeFileSystemsOutput) SetNextMarker(v string) *DescribeFileSystems return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeMountTargetSecurityGroupsRequest type DescribeMountTargetSecurityGroupsInput struct { _ struct{} `type:"structure"` @@ -1877,7 +1864,6 @@ func (s *DescribeMountTargetSecurityGroupsInput) SetMountTargetId(v string) *Des return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeMountTargetSecurityGroupsResponse type DescribeMountTargetSecurityGroupsOutput struct { _ struct{} `type:"structure"` @@ -1903,7 +1889,6 @@ func (s *DescribeMountTargetSecurityGroupsOutput) SetSecurityGroups(v []*string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeMountTargetsRequest type DescribeMountTargetsInput struct { _ struct{} `type:"structure"` @@ -1972,7 +1957,6 @@ func (s *DescribeMountTargetsInput) SetMountTargetId(v string) *DescribeMountTar return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeMountTargetsResponse type DescribeMountTargetsOutput struct { _ struct{} `type:"structure"` @@ -2018,7 +2002,6 @@ func (s *DescribeMountTargetsOutput) SetNextMarker(v string) *DescribeMountTarge return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeTagsRequest type DescribeTagsInput struct { _ struct{} `type:"structure"` @@ -2081,7 +2064,6 @@ func (s *DescribeTagsInput) SetMaxItems(v int64) *DescribeTagsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/DescribeTagsResponse type DescribeTagsOutput struct { _ struct{} `type:"structure"` @@ -2129,7 +2111,6 @@ func (s *DescribeTagsOutput) SetTags(v []*Tag) *DescribeTagsOutput { } // Description of the file system. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/FileSystemDescription type FileSystemDescription struct { _ struct{} `type:"structure"` @@ -2280,7 +2261,6 @@ func (s *FileSystemDescription) SetSizeInBytes(v *FileSystemSize) *FileSystemDes // if the file system is not modified for a period longer than a couple of hours. // Otherwise, the value is not necessarily the exact size the file system was // at any instant in time. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/FileSystemSize type FileSystemSize struct { _ struct{} `type:"structure"` @@ -2316,7 +2296,6 @@ func (s *FileSystemSize) SetValue(v int64) *FileSystemSize { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/ModifyMountTargetSecurityGroupsRequest type ModifyMountTargetSecurityGroupsInput struct { _ struct{} `type:"structure"` @@ -2364,7 +2343,6 @@ func (s *ModifyMountTargetSecurityGroupsInput) SetSecurityGroups(v []*string) *M return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/ModifyMountTargetSecurityGroupsOutput type ModifyMountTargetSecurityGroupsOutput struct { _ struct{} `type:"structure"` } @@ -2380,7 +2358,6 @@ func (s ModifyMountTargetSecurityGroupsOutput) GoString() string { } // Provides a description of a mount target. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/MountTargetDescription type MountTargetDescription struct { _ struct{} `type:"structure"` @@ -2469,7 +2446,6 @@ func (s *MountTargetDescription) SetSubnetId(v string) *MountTargetDescription { // A tag is a key-value pair. Allowed characters: letters, whitespace, and numbers, // representable in UTF-8, and the following characters: + - = . _ : / -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticfilesystem-2015-02-01/Tag type Tag struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/elasticache/api.go b/vendor/github.com/aws/aws-sdk-go/service/elasticache/api.go index 29c8c5d7d..a1ad3a61b 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/elasticache/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/elasticache/api.go @@ -4715,7 +4715,6 @@ func (c *ElastiCache) TestFailoverWithContext(ctx aws.Context, input *TestFailov } // Represents the input of an AddTagsToResource operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/AddTagsToResourceMessage type AddTagsToResourceInput struct { _ struct{} `type:"structure"` @@ -4776,7 +4775,6 @@ func (s *AddTagsToResourceInput) SetTags(v []*Tag) *AddTagsToResourceInput { } // Represents the input of an AuthorizeCacheSecurityGroupIngress operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/AuthorizeCacheSecurityGroupIngressMessage type AuthorizeCacheSecurityGroupIngressInput struct { _ struct{} `type:"structure"` @@ -4846,7 +4844,6 @@ func (s *AuthorizeCacheSecurityGroupIngressInput) SetEC2SecurityGroupOwnerId(v s return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/AuthorizeCacheSecurityGroupIngressResult type AuthorizeCacheSecurityGroupIngressOutput struct { _ struct{} `type:"structure"` @@ -4877,7 +4874,6 @@ func (s *AuthorizeCacheSecurityGroupIngressOutput) SetCacheSecurityGroup(v *Cach } // Describes an Availability Zone in which the cluster is launched. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/AvailabilityZone type AvailabilityZone struct { _ struct{} `type:"structure"` @@ -4902,7 +4898,6 @@ func (s *AvailabilityZone) SetName(v string) *AvailabilityZone { } // Contains all of the attributes of a specific cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CacheCluster type CacheCluster struct { _ struct{} `type:"structure"` @@ -5258,7 +5253,6 @@ func (s *CacheCluster) SetTransitEncryptionEnabled(v bool) *CacheCluster { } // Provides all of the details about a particular cache engine version. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CacheEngineVersion type CacheEngineVersion struct { _ struct{} `type:"structure"` @@ -5380,7 +5374,6 @@ func (s *CacheEngineVersion) SetEngineVersion(v string) *CacheEngineVersion { // Product Features and Details (http://aws.amazon.com/elasticache/details) // and either Cache Node Type-Specific Parameters for Memcached (http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Memcached.html#ParameterGroups.Memcached.NodeSpecific) // or Cache Node Type-Specific Parameters for Redis (http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/CacheParameterGroups.Redis.html#ParameterGroups.Redis.NodeSpecific). -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CacheNode type CacheNode struct { _ struct{} `type:"structure"` @@ -5464,7 +5457,6 @@ func (s *CacheNode) SetSourceCacheNodeId(v string) *CacheNode { // A parameter that has a different value for each cache node type it is applied // to. For example, in a Redis cluster, a cache.m1.large cache node type would // have a larger maxmemory value than a cache.m1.small type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CacheNodeTypeSpecificParameter type CacheNodeTypeSpecificParameter struct { _ struct{} `type:"structure"` @@ -5566,7 +5558,6 @@ func (s *CacheNodeTypeSpecificParameter) SetSource(v string) *CacheNodeTypeSpeci } // A value that applies only to a certain cache node type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CacheNodeTypeSpecificValue type CacheNodeTypeSpecificValue struct { _ struct{} `type:"structure"` @@ -5600,7 +5591,6 @@ func (s *CacheNodeTypeSpecificValue) SetValue(v string) *CacheNodeTypeSpecificVa } // Represents the output of a CreateCacheParameterGroup operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CacheParameterGroup type CacheParameterGroup struct { _ struct{} `type:"structure"` @@ -5650,7 +5640,6 @@ func (s *CacheParameterGroup) SetDescription(v string) *CacheParameterGroup { // * ModifyCacheParameterGroup // // * ResetCacheParameterGroup -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CacheParameterGroupNameMessage type CacheParameterGroupNameMessage struct { _ struct{} `type:"structure"` @@ -5675,7 +5664,6 @@ func (s *CacheParameterGroupNameMessage) SetCacheParameterGroupName(v string) *C } // Status of the cache parameter group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CacheParameterGroupStatus type CacheParameterGroupStatus struct { _ struct{} `type:"structure"` @@ -5725,7 +5713,6 @@ func (s *CacheParameterGroupStatus) SetParameterApplyStatus(v string) *CachePara // * CreateCacheSecurityGroup // // * RevokeCacheSecurityGroupIngress -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CacheSecurityGroup type CacheSecurityGroup struct { _ struct{} `type:"structure"` @@ -5778,7 +5765,6 @@ func (s *CacheSecurityGroup) SetOwnerId(v string) *CacheSecurityGroup { } // Represents a cluster's status within a particular cache security group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CacheSecurityGroupMembership type CacheSecurityGroupMembership struct { _ struct{} `type:"structure"` @@ -5818,7 +5804,6 @@ func (s *CacheSecurityGroupMembership) SetStatus(v string) *CacheSecurityGroupMe // * CreateCacheSubnetGroup // // * ModifyCacheSubnetGroup -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CacheSubnetGroup type CacheSubnetGroup struct { _ struct{} `type:"structure"` @@ -5871,7 +5856,6 @@ func (s *CacheSubnetGroup) SetVpcId(v string) *CacheSubnetGroup { } // Represents the input of a CopySnapshotMessage operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CopySnapshotMessage type CopySnapshotInput struct { _ struct{} `type:"structure"` @@ -5944,7 +5928,6 @@ func (s *CopySnapshotInput) SetTargetSnapshotName(v string) *CopySnapshotInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CopySnapshotResult type CopySnapshotOutput struct { _ struct{} `type:"structure"` @@ -5970,7 +5953,6 @@ func (s *CopySnapshotOutput) SetSnapshot(v *Snapshot) *CopySnapshotOutput { } // Represents the input of a CreateCacheCluster operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CreateCacheClusterMessage type CreateCacheClusterInput struct { _ struct{} `type:"structure"` @@ -6417,7 +6399,6 @@ func (s *CreateCacheClusterInput) SetTags(v []*Tag) *CreateCacheClusterInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CreateCacheClusterResult type CreateCacheClusterOutput struct { _ struct{} `type:"structure"` @@ -6442,7 +6423,6 @@ func (s *CreateCacheClusterOutput) SetCacheCluster(v *CacheCluster) *CreateCache } // Represents the input of a CreateCacheParameterGroup operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CreateCacheParameterGroupMessage type CreateCacheParameterGroupInput struct { _ struct{} `type:"structure"` @@ -6512,7 +6492,6 @@ func (s *CreateCacheParameterGroupInput) SetDescription(v string) *CreateCachePa return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CreateCacheParameterGroupResult type CreateCacheParameterGroupOutput struct { _ struct{} `type:"structure"` @@ -6537,7 +6516,6 @@ func (s *CreateCacheParameterGroupOutput) SetCacheParameterGroup(v *CacheParamet } // Represents the input of a CreateCacheSecurityGroup operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CreateCacheSecurityGroupMessage type CreateCacheSecurityGroupInput struct { _ struct{} `type:"structure"` @@ -6596,7 +6574,6 @@ func (s *CreateCacheSecurityGroupInput) SetDescription(v string) *CreateCacheSec return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CreateCacheSecurityGroupResult type CreateCacheSecurityGroupOutput struct { _ struct{} `type:"structure"` @@ -6627,7 +6604,6 @@ func (s *CreateCacheSecurityGroupOutput) SetCacheSecurityGroup(v *CacheSecurityG } // Represents the input of a CreateCacheSubnetGroup operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CreateCacheSubnetGroupMessage type CreateCacheSubnetGroupInput struct { _ struct{} `type:"structure"` @@ -6698,7 +6674,6 @@ func (s *CreateCacheSubnetGroupInput) SetSubnetIds(v []*string) *CreateCacheSubn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CreateCacheSubnetGroupResult type CreateCacheSubnetGroupOutput struct { _ struct{} `type:"structure"` @@ -6727,7 +6702,6 @@ func (s *CreateCacheSubnetGroupOutput) SetCacheSubnetGroup(v *CacheSubnetGroup) } // Represents the input of a CreateReplicationGroup operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CreateReplicationGroupMessage type CreateReplicationGroupInput struct { _ struct{} `type:"structure"` @@ -7253,7 +7227,6 @@ func (s *CreateReplicationGroupInput) SetTransitEncryptionEnabled(v bool) *Creat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CreateReplicationGroupResult type CreateReplicationGroupOutput struct { _ struct{} `type:"structure"` @@ -7278,7 +7251,6 @@ func (s *CreateReplicationGroupOutput) SetReplicationGroup(v *ReplicationGroup) } // Represents the input of a CreateSnapshot operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CreateSnapshotMessage type CreateSnapshotInput struct { _ struct{} `type:"structure"` @@ -7337,7 +7309,6 @@ func (s *CreateSnapshotInput) SetSnapshotName(v string) *CreateSnapshotInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CreateSnapshotResult type CreateSnapshotOutput struct { _ struct{} `type:"structure"` @@ -7363,7 +7334,6 @@ func (s *CreateSnapshotOutput) SetSnapshot(v *Snapshot) *CreateSnapshotOutput { } // Represents the input of a DeleteCacheCluster operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DeleteCacheClusterMessage type DeleteCacheClusterInput struct { _ struct{} `type:"structure"` @@ -7414,7 +7384,6 @@ func (s *DeleteCacheClusterInput) SetFinalSnapshotIdentifier(v string) *DeleteCa return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DeleteCacheClusterResult type DeleteCacheClusterOutput struct { _ struct{} `type:"structure"` @@ -7439,7 +7408,6 @@ func (s *DeleteCacheClusterOutput) SetCacheCluster(v *CacheCluster) *DeleteCache } // Represents the input of a DeleteCacheParameterGroup operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DeleteCacheParameterGroupMessage type DeleteCacheParameterGroupInput struct { _ struct{} `type:"structure"` @@ -7480,7 +7448,6 @@ func (s *DeleteCacheParameterGroupInput) SetCacheParameterGroupName(v string) *D return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DeleteCacheParameterGroupOutput type DeleteCacheParameterGroupOutput struct { _ struct{} `type:"structure"` } @@ -7496,7 +7463,6 @@ func (s DeleteCacheParameterGroupOutput) GoString() string { } // Represents the input of a DeleteCacheSecurityGroup operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DeleteCacheSecurityGroupMessage type DeleteCacheSecurityGroupInput struct { _ struct{} `type:"structure"` @@ -7537,7 +7503,6 @@ func (s *DeleteCacheSecurityGroupInput) SetCacheSecurityGroupName(v string) *Del return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DeleteCacheSecurityGroupOutput type DeleteCacheSecurityGroupOutput struct { _ struct{} `type:"structure"` } @@ -7553,7 +7518,6 @@ func (s DeleteCacheSecurityGroupOutput) GoString() string { } // Represents the input of a DeleteCacheSubnetGroup operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DeleteCacheSubnetGroupMessage type DeleteCacheSubnetGroupInput struct { _ struct{} `type:"structure"` @@ -7594,7 +7558,6 @@ func (s *DeleteCacheSubnetGroupInput) SetCacheSubnetGroupName(v string) *DeleteC return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DeleteCacheSubnetGroupOutput type DeleteCacheSubnetGroupOutput struct { _ struct{} `type:"structure"` } @@ -7610,7 +7573,6 @@ func (s DeleteCacheSubnetGroupOutput) GoString() string { } // Represents the input of a DeleteReplicationGroup operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DeleteReplicationGroupMessage type DeleteReplicationGroupInput struct { _ struct{} `type:"structure"` @@ -7672,7 +7634,6 @@ func (s *DeleteReplicationGroupInput) SetRetainPrimaryCluster(v bool) *DeleteRep return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DeleteReplicationGroupResult type DeleteReplicationGroupOutput struct { _ struct{} `type:"structure"` @@ -7697,7 +7658,6 @@ func (s *DeleteReplicationGroupOutput) SetReplicationGroup(v *ReplicationGroup) } // Represents the input of a DeleteSnapshot operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DeleteSnapshotMessage type DeleteSnapshotInput struct { _ struct{} `type:"structure"` @@ -7736,7 +7696,6 @@ func (s *DeleteSnapshotInput) SetSnapshotName(v string) *DeleteSnapshotInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DeleteSnapshotResult type DeleteSnapshotOutput struct { _ struct{} `type:"structure"` @@ -7762,7 +7721,6 @@ func (s *DeleteSnapshotOutput) SetSnapshot(v *Snapshot) *DeleteSnapshotOutput { } // Represents the input of a DescribeCacheClusters operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DescribeCacheClustersMessage type DescribeCacheClustersInput struct { _ struct{} `type:"structure"` @@ -7836,7 +7794,6 @@ func (s *DescribeCacheClustersInput) SetShowCacheNodeInfo(v bool) *DescribeCache } // Represents the output of a DescribeCacheClusters operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CacheClusterMessage type DescribeCacheClustersOutput struct { _ struct{} `type:"structure"` @@ -7871,7 +7828,6 @@ func (s *DescribeCacheClustersOutput) SetMarker(v string) *DescribeCacheClusters } // Represents the input of a DescribeCacheEngineVersions operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DescribeCacheEngineVersionsMessage type DescribeCacheEngineVersionsInput struct { _ struct{} `type:"structure"` @@ -7962,7 +7918,6 @@ func (s *DescribeCacheEngineVersionsInput) SetMaxRecords(v int64) *DescribeCache } // Represents the output of a DescribeCacheEngineVersions operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CacheEngineVersionMessage type DescribeCacheEngineVersionsOutput struct { _ struct{} `type:"structure"` @@ -7997,7 +7952,6 @@ func (s *DescribeCacheEngineVersionsOutput) SetMarker(v string) *DescribeCacheEn } // Represents the input of a DescribeCacheParameterGroups operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DescribeCacheParameterGroupsMessage type DescribeCacheParameterGroupsInput struct { _ struct{} `type:"structure"` @@ -8048,7 +8002,6 @@ func (s *DescribeCacheParameterGroupsInput) SetMaxRecords(v int64) *DescribeCach } // Represents the output of a DescribeCacheParameterGroups operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CacheParameterGroupsMessage type DescribeCacheParameterGroupsOutput struct { _ struct{} `type:"structure"` @@ -8083,7 +8036,6 @@ func (s *DescribeCacheParameterGroupsOutput) SetMarker(v string) *DescribeCacheP } // Represents the input of a DescribeCacheParameters operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DescribeCacheParametersMessage type DescribeCacheParametersInput struct { _ struct{} `type:"structure"` @@ -8160,7 +8112,6 @@ func (s *DescribeCacheParametersInput) SetSource(v string) *DescribeCacheParamet } // Represents the output of a DescribeCacheParameters operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CacheParameterGroupDetails type DescribeCacheParametersOutput struct { _ struct{} `type:"structure"` @@ -8204,7 +8155,6 @@ func (s *DescribeCacheParametersOutput) SetParameters(v []*Parameter) *DescribeC } // Represents the input of a DescribeCacheSecurityGroups operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DescribeCacheSecurityGroupsMessage type DescribeCacheSecurityGroupsInput struct { _ struct{} `type:"structure"` @@ -8255,7 +8205,6 @@ func (s *DescribeCacheSecurityGroupsInput) SetMaxRecords(v int64) *DescribeCache } // Represents the output of a DescribeCacheSecurityGroups operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CacheSecurityGroupMessage type DescribeCacheSecurityGroupsOutput struct { _ struct{} `type:"structure"` @@ -8290,7 +8239,6 @@ func (s *DescribeCacheSecurityGroupsOutput) SetMarker(v string) *DescribeCacheSe } // Represents the input of a DescribeCacheSubnetGroups operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DescribeCacheSubnetGroupsMessage type DescribeCacheSubnetGroupsInput struct { _ struct{} `type:"structure"` @@ -8341,7 +8289,6 @@ func (s *DescribeCacheSubnetGroupsInput) SetMaxRecords(v int64) *DescribeCacheSu } // Represents the output of a DescribeCacheSubnetGroups operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/CacheSubnetGroupMessage type DescribeCacheSubnetGroupsOutput struct { _ struct{} `type:"structure"` @@ -8376,7 +8323,6 @@ func (s *DescribeCacheSubnetGroupsOutput) SetMarker(v string) *DescribeCacheSubn } // Represents the input of a DescribeEngineDefaultParameters operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DescribeEngineDefaultParametersMessage type DescribeEngineDefaultParametersInput struct { _ struct{} `type:"structure"` @@ -8443,7 +8389,6 @@ func (s *DescribeEngineDefaultParametersInput) SetMaxRecords(v int64) *DescribeE return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DescribeEngineDefaultParametersResult type DescribeEngineDefaultParametersOutput struct { _ struct{} `type:"structure"` @@ -8468,7 +8413,6 @@ func (s *DescribeEngineDefaultParametersOutput) SetEngineDefaults(v *EngineDefau } // Represents the input of a DescribeEvents operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DescribeEventsMessage type DescribeEventsInput struct { _ struct{} `type:"structure"` @@ -8563,7 +8507,6 @@ func (s *DescribeEventsInput) SetStartTime(v time.Time) *DescribeEventsInput { } // Represents the output of a DescribeEvents operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/EventsMessage type DescribeEventsOutput struct { _ struct{} `type:"structure"` @@ -8598,7 +8541,6 @@ func (s *DescribeEventsOutput) SetMarker(v string) *DescribeEventsOutput { } // Represents the input of a DescribeReplicationGroups operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DescribeReplicationGroupsMessage type DescribeReplicationGroupsInput struct { _ struct{} `type:"structure"` @@ -8653,7 +8595,6 @@ func (s *DescribeReplicationGroupsInput) SetReplicationGroupId(v string) *Descri } // Represents the output of a DescribeReplicationGroups operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ReplicationGroupMessage type DescribeReplicationGroupsOutput struct { _ struct{} `type:"structure"` @@ -8688,7 +8629,6 @@ func (s *DescribeReplicationGroupsOutput) SetReplicationGroups(v []*ReplicationG } // Represents the input of a DescribeReservedCacheNodes operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DescribeReservedCacheNodesMessage type DescribeReservedCacheNodesInput struct { _ struct{} `type:"structure"` @@ -8851,7 +8791,6 @@ func (s *DescribeReservedCacheNodesInput) SetReservedCacheNodesOfferingId(v stri } // Represents the input of a DescribeReservedCacheNodesOfferings operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DescribeReservedCacheNodesOfferingsMessage type DescribeReservedCacheNodesOfferingsInput struct { _ struct{} `type:"structure"` @@ -9006,7 +8945,6 @@ func (s *DescribeReservedCacheNodesOfferingsInput) SetReservedCacheNodesOffering } // Represents the output of a DescribeReservedCacheNodesOfferings operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ReservedCacheNodesOfferingMessage type DescribeReservedCacheNodesOfferingsOutput struct { _ struct{} `type:"structure"` @@ -9041,7 +8979,6 @@ func (s *DescribeReservedCacheNodesOfferingsOutput) SetReservedCacheNodesOfferin } // Represents the output of a DescribeReservedCacheNodes operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ReservedCacheNodeMessage type DescribeReservedCacheNodesOutput struct { _ struct{} `type:"structure"` @@ -9076,7 +9013,6 @@ func (s *DescribeReservedCacheNodesOutput) SetReservedCacheNodes(v []*ReservedCa } // Represents the input of a DescribeSnapshotsMessage operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DescribeSnapshotsMessage type DescribeSnapshotsInput struct { _ struct{} `type:"structure"` @@ -9170,7 +9106,6 @@ func (s *DescribeSnapshotsInput) SetSnapshotSource(v string) *DescribeSnapshotsI } // Represents the output of a DescribeSnapshots operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/DescribeSnapshotsListMessage type DescribeSnapshotsOutput struct { _ struct{} `type:"structure"` @@ -9207,7 +9142,6 @@ func (s *DescribeSnapshotsOutput) SetSnapshots(v []*Snapshot) *DescribeSnapshots } // Provides ownership and status information for an Amazon EC2 security group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/EC2SecurityGroup type EC2SecurityGroup struct { _ struct{} `type:"structure"` @@ -9251,7 +9185,6 @@ func (s *EC2SecurityGroup) SetStatus(v string) *EC2SecurityGroup { // Represents the information required for client programs to connect to a cache // node. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/Endpoint type Endpoint struct { _ struct{} `type:"structure"` @@ -9285,7 +9218,6 @@ func (s *Endpoint) SetPort(v int64) *Endpoint { } // Represents the output of a DescribeEngineDefaultParameters operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/EngineDefaults type EngineDefaults struct { _ struct{} `type:"structure"` @@ -9343,7 +9275,6 @@ func (s *EngineDefaults) SetParameters(v []*Parameter) *EngineDefaults { // Represents a single occurrence of something interesting within the system. // Some examples of events are creating a cluster, adding or removing a cache // node, or rebooting a node. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/Event type Event struct { _ struct{} `type:"structure"` @@ -9397,7 +9328,6 @@ func (s *Event) SetSourceType(v string) *Event { } // The input parameters for the ListAllowedNodeTypeModifications operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ListAllowedNodeTypeModificationsMessage type ListAllowedNodeTypeModificationsInput struct { _ struct{} `type:"structure"` @@ -9441,7 +9371,6 @@ func (s *ListAllowedNodeTypeModificationsInput) SetReplicationGroupId(v string) // Represents the allowed node types you can use to modify your cluster or replication // group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/AllowedNodeTypeModificationsMessage type ListAllowedNodeTypeModificationsOutput struct { _ struct{} `type:"structure"` @@ -9471,7 +9400,6 @@ func (s *ListAllowedNodeTypeModificationsOutput) SetScaleUpModifications(v []*st } // The input parameters for the ListTagsForResource operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ListTagsForResourceMessage type ListTagsForResourceInput struct { _ struct{} `type:"structure"` @@ -9516,7 +9444,6 @@ func (s *ListTagsForResourceInput) SetResourceName(v string) *ListTagsForResourc } // Represents the input of a ModifyCacheCluster operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ModifyCacheClusterMessage type ModifyCacheClusterInput struct { _ struct{} `type:"structure"` @@ -9883,7 +9810,6 @@ func (s *ModifyCacheClusterInput) SetSnapshotWindow(v string) *ModifyCacheCluste return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ModifyCacheClusterResult type ModifyCacheClusterOutput struct { _ struct{} `type:"structure"` @@ -9908,7 +9834,6 @@ func (s *ModifyCacheClusterOutput) SetCacheCluster(v *CacheCluster) *ModifyCache } // Represents the input of a ModifyCacheParameterGroup operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ModifyCacheParameterGroupMessage type ModifyCacheParameterGroupInput struct { _ struct{} `type:"structure"` @@ -9964,7 +9889,6 @@ func (s *ModifyCacheParameterGroupInput) SetParameterNameValues(v []*ParameterNa } // Represents the input of a ModifyCacheSubnetGroup operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ModifyCacheSubnetGroupMessage type ModifyCacheSubnetGroupInput struct { _ struct{} `type:"structure"` @@ -10026,7 +9950,6 @@ func (s *ModifyCacheSubnetGroupInput) SetSubnetIds(v []*string) *ModifyCacheSubn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ModifyCacheSubnetGroupResult type ModifyCacheSubnetGroupOutput struct { _ struct{} `type:"structure"` @@ -10055,7 +9978,6 @@ func (s *ModifyCacheSubnetGroupOutput) SetCacheSubnetGroup(v *CacheSubnetGroup) } // Represents the input of a ModifyReplicationGroups operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ModifyReplicationGroupMessage type ModifyReplicationGroupInput struct { _ struct{} `type:"structure"` @@ -10333,7 +10255,6 @@ func (s *ModifyReplicationGroupInput) SetSnapshottingClusterId(v string) *Modify return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ModifyReplicationGroupResult type ModifyReplicationGroupOutput struct { _ struct{} `type:"structure"` @@ -10358,7 +10279,6 @@ func (s *ModifyReplicationGroupOutput) SetReplicationGroup(v *ReplicationGroup) } // Represents the input for a ModifyReplicationGroupShardConfiguration operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ModifyReplicationGroupShardConfigurationMessage type ModifyReplicationGroupShardConfigurationInput struct { _ struct{} `type:"structure"` @@ -10457,7 +10377,6 @@ func (s *ModifyReplicationGroupShardConfigurationInput) SetReshardingConfigurati return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ModifyReplicationGroupShardConfigurationResult type ModifyReplicationGroupShardConfigurationOutput struct { _ struct{} `type:"structure"` @@ -10484,7 +10403,6 @@ func (s *ModifyReplicationGroupShardConfigurationOutput) SetReplicationGroup(v * // Represents a collection of cache nodes in a replication group. One node in // the node group is the read/write primary node. All the other nodes are read-only // Replica nodes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/NodeGroup type NodeGroup struct { _ struct{} `type:"structure"` @@ -10551,7 +10469,6 @@ func (s *NodeGroup) SetStatus(v string) *NodeGroup { // Node group (shard) configuration options. Each node group (shard) configuration // has the following: Slots, PrimaryAvailabilityZone, ReplicaAvailabilityZones, // ReplicaCount. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/NodeGroupConfiguration type NodeGroupConfiguration struct { _ struct{} `type:"structure"` @@ -10609,7 +10526,6 @@ func (s *NodeGroupConfiguration) SetSlots(v string) *NodeGroupConfiguration { } // Represents a single node within a node group (shard). -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/NodeGroupMember type NodeGroupMember struct { _ struct{} `type:"structure"` @@ -10672,7 +10588,6 @@ func (s *NodeGroupMember) SetReadEndpoint(v *Endpoint) *NodeGroupMember { } // Represents an individual cache node in a snapshot of a cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/NodeSnapshot type NodeSnapshot struct { _ struct{} `type:"structure"` @@ -10754,7 +10669,6 @@ func (s *NodeSnapshot) SetSnapshotCreateTime(v time.Time) *NodeSnapshot { // Describes a notification topic and its status. Notification topics are used // for publishing ElastiCache events to subscribers using Amazon Simple Notification // Service (SNS). -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/NotificationConfiguration type NotificationConfiguration struct { _ struct{} `type:"structure"` @@ -10789,7 +10703,6 @@ func (s *NotificationConfiguration) SetTopicStatus(v string) *NotificationConfig // Describes an individual setting that controls some aspect of ElastiCache // behavior. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/Parameter type Parameter struct { _ struct{} `type:"structure"` @@ -10891,7 +10804,6 @@ func (s *Parameter) SetSource(v string) *Parameter { } // Describes a name-value pair that is used to update the value of a parameter. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ParameterNameValue type ParameterNameValue struct { _ struct{} `type:"structure"` @@ -10926,7 +10838,6 @@ func (s *ParameterNameValue) SetParameterValue(v string) *ParameterNameValue { // A group of settings that are applied to the cluster in the future, or that // are currently being applied. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/PendingModifiedValues type PendingModifiedValues struct { _ struct{} `type:"structure"` @@ -10982,7 +10893,6 @@ func (s *PendingModifiedValues) SetNumCacheNodes(v int64) *PendingModifiedValues } // Represents the input of a PurchaseReservedCacheNodesOffering operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/PurchaseReservedCacheNodesOfferingMessage type PurchaseReservedCacheNodesOfferingInput struct { _ struct{} `type:"structure"` @@ -11049,7 +10959,6 @@ func (s *PurchaseReservedCacheNodesOfferingInput) SetReservedCacheNodesOfferingI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/PurchaseReservedCacheNodesOfferingResult type PurchaseReservedCacheNodesOfferingOutput struct { _ struct{} `type:"structure"` @@ -11074,7 +10983,6 @@ func (s *PurchaseReservedCacheNodesOfferingOutput) SetReservedCacheNode(v *Reser } // Represents the input of a RebootCacheCluster operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/RebootCacheClusterMessage type RebootCacheClusterInput struct { _ struct{} `type:"structure"` @@ -11128,7 +11036,6 @@ func (s *RebootCacheClusterInput) SetCacheNodeIdsToReboot(v []*string) *RebootCa return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/RebootCacheClusterResult type RebootCacheClusterOutput struct { _ struct{} `type:"structure"` @@ -11154,7 +11061,6 @@ func (s *RebootCacheClusterOutput) SetCacheCluster(v *CacheCluster) *RebootCache // Contains the specific price and frequency of a recurring charges for a reserved // cache node, or for a reserved cache node offering. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/RecurringCharge type RecurringCharge struct { _ struct{} `type:"structure"` @@ -11188,7 +11094,6 @@ func (s *RecurringCharge) SetRecurringChargeFrequency(v string) *RecurringCharge } // Represents the input of a RemoveTagsFromResource operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/RemoveTagsFromResourceMessage type RemoveTagsFromResourceInput struct { _ struct{} `type:"structure"` @@ -11247,7 +11152,6 @@ func (s *RemoveTagsFromResourceInput) SetTagKeys(v []*string) *RemoveTagsFromRes } // Contains all of the attributes of a specific Redis replication group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ReplicationGroup type ReplicationGroup struct { _ struct{} `type:"structure"` @@ -11457,7 +11361,6 @@ func (s *ReplicationGroup) SetTransitEncryptionEnabled(v bool) *ReplicationGroup // The settings to be applied to the Redis replication group, either immediately // or during the next maintenance window. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ReplicationGroupPendingModifiedValues type ReplicationGroupPendingModifiedValues struct { _ struct{} `type:"structure"` @@ -11511,7 +11414,6 @@ func (s *ReplicationGroupPendingModifiedValues) SetResharding(v *ReshardingStatu } // Represents the output of a PurchaseReservedCacheNodesOffering operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ReservedCacheNode type ReservedCacheNode struct { _ struct{} `type:"structure"` @@ -11692,7 +11594,6 @@ func (s *ReservedCacheNode) SetUsagePrice(v float64) *ReservedCacheNode { } // Describes all of the attributes of a reserved cache node offering. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ReservedCacheNodesOffering type ReservedCacheNodesOffering struct { _ struct{} `type:"structure"` @@ -11837,7 +11738,6 @@ func (s *ReservedCacheNodesOffering) SetUsagePrice(v float64) *ReservedCacheNode } // Represents the input of a ResetCacheParameterGroup operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ResetCacheParameterGroupMessage type ResetCacheParameterGroupInput struct { _ struct{} `type:"structure"` @@ -11902,7 +11802,6 @@ func (s *ResetCacheParameterGroupInput) SetResetAllParameters(v bool) *ResetCach // A list of PreferredAvailabilityZones objects that specifies the configuration // of a node group in the resharded cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ReshardingConfiguration type ReshardingConfiguration struct { _ struct{} `type:"structure"` @@ -11927,7 +11826,6 @@ func (s *ReshardingConfiguration) SetPreferredAvailabilityZones(v []*string) *Re } // The status of an online resharding operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/ReshardingStatus type ReshardingStatus struct { _ struct{} `type:"structure"` @@ -11952,7 +11850,6 @@ func (s *ReshardingStatus) SetSlotMigration(v *SlotMigration) *ReshardingStatus } // Represents the input of a RevokeCacheSecurityGroupIngress operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/RevokeCacheSecurityGroupIngressMessage type RevokeCacheSecurityGroupIngressInput struct { _ struct{} `type:"structure"` @@ -12021,7 +11918,6 @@ func (s *RevokeCacheSecurityGroupIngressInput) SetEC2SecurityGroupOwnerId(v stri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/RevokeCacheSecurityGroupIngressResult type RevokeCacheSecurityGroupIngressOutput struct { _ struct{} `type:"structure"` @@ -12052,7 +11948,6 @@ func (s *RevokeCacheSecurityGroupIngressOutput) SetCacheSecurityGroup(v *CacheSe } // Represents a single cache security group and its status. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/SecurityGroupMembership type SecurityGroupMembership struct { _ struct{} `type:"structure"` @@ -12088,7 +11983,6 @@ func (s *SecurityGroupMembership) SetStatus(v string) *SecurityGroupMembership { } // Represents the progress of an online resharding operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/SlotMigration type SlotMigration struct { _ struct{} `type:"structure"` @@ -12114,7 +12008,6 @@ func (s *SlotMigration) SetProgressPercentage(v float64) *SlotMigration { // Represents a copy of an entire Redis cluster as of the time when the snapshot // was taken. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/Snapshot type Snapshot struct { _ struct{} `type:"structure"` @@ -12455,7 +12348,6 @@ func (s *Snapshot) SetVpcId(v string) *Snapshot { // Represents the subnet associated with a cluster. This parameter refers to // subnets defined in Amazon Virtual Private Cloud (Amazon VPC) and used with // ElastiCache. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/Subnet type Subnet struct { _ struct{} `type:"structure"` @@ -12491,7 +12383,6 @@ func (s *Subnet) SetSubnetIdentifier(v string) *Subnet { // A cost allocation Tag that can be added to an ElastiCache cluster or replication // group. Tags are composed of a Key/Value pair. A tag with a null Value is // permitted. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/Tag type Tag struct { _ struct{} `type:"structure"` @@ -12526,7 +12417,6 @@ func (s *Tag) SetValue(v string) *Tag { // Represents the output from the AddTagsToResource, ListTagsForResource, and // RemoveTagsFromResource operations. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/TagListMessage type TagListMessage struct { _ struct{} `type:"structure"` @@ -12550,7 +12440,6 @@ func (s *TagListMessage) SetTagList(v []*Tag) *TagListMessage { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/TestFailoverMessage type TestFailoverInput struct { _ struct{} `type:"structure"` @@ -12606,7 +12495,6 @@ func (s *TestFailoverInput) SetReplicationGroupId(v string) *TestFailoverInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticache-2015-02-02/TestFailoverResult type TestFailoverOutput struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/elasticbeanstalk/api.go b/vendor/github.com/aws/aws-sdk-go/service/elasticbeanstalk/api.go index 73f46a687..14f972572 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/elasticbeanstalk/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/elasticbeanstalk/api.go @@ -3719,7 +3719,6 @@ func (c *ElasticBeanstalk) ValidateConfigurationSettingsWithContext(ctx aws.Cont return out, req.Send() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/AbortEnvironmentUpdateMessage type AbortEnvironmentUpdateInput struct { _ struct{} `type:"structure"` @@ -3767,7 +3766,6 @@ func (s *AbortEnvironmentUpdateInput) SetEnvironmentName(v string) *AbortEnviron return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/AbortEnvironmentUpdateOutput type AbortEnvironmentUpdateOutput struct { _ struct{} `type:"structure"` } @@ -3783,7 +3781,6 @@ func (s AbortEnvironmentUpdateOutput) GoString() string { } // Describes the properties of an application. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ApplicationDescription type ApplicationDescription struct { _ struct{} `type:"structure"` @@ -3862,7 +3859,6 @@ func (s *ApplicationDescription) SetVersions(v []*string) *ApplicationDescriptio } // Result message containing a single description of an application. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ApplicationDescriptionMessage type ApplicationDescriptionMessage struct { _ struct{} `type:"structure"` @@ -3887,7 +3883,6 @@ func (s *ApplicationDescriptionMessage) SetApplication(v *ApplicationDescription } // Application request metrics for an AWS Elastic Beanstalk environment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ApplicationMetrics type ApplicationMetrics struct { _ struct{} `type:"structure"` @@ -3948,7 +3943,6 @@ func (s *ApplicationMetrics) SetStatusCodes(v *StatusCodes) *ApplicationMetrics // that Elastic Beanstalk assumes in order to apply lifecycle settings. The // version lifecycle configuration defines lifecycle settings for application // versions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ApplicationResourceLifecycleConfig type ApplicationResourceLifecycleConfig struct { _ struct{} `type:"structure"` @@ -3997,7 +3991,6 @@ func (s *ApplicationResourceLifecycleConfig) SetVersionLifecycleConfig(v *Applic } // Describes the properties of an application version. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ApplicationVersionDescription type ApplicationVersionDescription struct { _ struct{} `type:"structure"` @@ -4096,7 +4089,6 @@ func (s *ApplicationVersionDescription) SetVersionLabel(v string) *ApplicationVe } // Result message wrapping a single description of an application version. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ApplicationVersionDescriptionMessage type ApplicationVersionDescriptionMessage struct { _ struct{} `type:"structure"` @@ -4127,7 +4119,6 @@ func (s *ApplicationVersionDescriptionMessage) SetApplicationVersion(v *Applicat // When Elastic Beanstalk deletes an application version from its database, // you can no longer deploy that version to an environment. The source bundle // remains in S3 unless you configure the rule to delete it. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ApplicationVersionLifecycleConfig type ApplicationVersionLifecycleConfig struct { _ struct{} `type:"structure"` @@ -4183,7 +4174,6 @@ func (s *ApplicationVersionLifecycleConfig) SetMaxCountRule(v *MaxCountRule) *Ap } // Request to execute a scheduled managed action immediately. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ApplyEnvironmentManagedActionRequest type ApplyEnvironmentManagedActionInput struct { _ struct{} `type:"structure"` @@ -4241,7 +4231,6 @@ func (s *ApplyEnvironmentManagedActionInput) SetEnvironmentName(v string) *Apply } // The result message containing information about the managed action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ApplyEnvironmentManagedActionResult type ApplyEnvironmentManagedActionOutput struct { _ struct{} `type:"structure"` @@ -4293,7 +4282,6 @@ func (s *ApplyEnvironmentManagedActionOutput) SetStatus(v string) *ApplyEnvironm } // Describes an Auto Scaling launch configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/AutoScalingGroup type AutoScalingGroup struct { _ struct{} `type:"structure"` @@ -4318,7 +4306,6 @@ func (s *AutoScalingGroup) SetName(v string) *AutoScalingGroup { } // Settings for an AWS CodeBuild build. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/BuildConfiguration type BuildConfiguration struct { _ struct{} `type:"structure"` @@ -4412,7 +4399,6 @@ func (s *BuildConfiguration) SetTimeoutInMinutes(v int64) *BuildConfiguration { } // The builder used to build the custom platform. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/Builder type Builder struct { _ struct{} `type:"structure"` @@ -4437,7 +4423,6 @@ func (s *Builder) SetARN(v string) *Builder { } // CPU utilization metrics for an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/CPUUtilization type CPUUtilization struct { _ struct{} `type:"structure"` @@ -4523,7 +4508,6 @@ func (s *CPUUtilization) SetUser(v float64) *CPUUtilization { } // Results message indicating whether a CNAME is available. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/CheckDNSAvailabilityMessage type CheckDNSAvailabilityInput struct { _ struct{} `type:"structure"` @@ -4566,7 +4550,6 @@ func (s *CheckDNSAvailabilityInput) SetCNAMEPrefix(v string) *CheckDNSAvailabili } // Indicates if the specified CNAME is available. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/CheckDNSAvailabilityResultMessage type CheckDNSAvailabilityOutput struct { _ struct{} `type:"structure"` @@ -4605,7 +4588,6 @@ func (s *CheckDNSAvailabilityOutput) SetFullyQualifiedCNAME(v string) *CheckDNSA } // Request to create or update a group of environments. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ComposeEnvironmentsMessage type ComposeEnvironmentsInput struct { _ struct{} `type:"structure"` @@ -4672,7 +4654,6 @@ func (s *ComposeEnvironmentsInput) SetVersionLabels(v []*string) *ComposeEnviron } // Describes the possible values for a configuration option. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ConfigurationOptionDescription type ConfigurationOptionDescription struct { _ struct{} `type:"structure"` @@ -4829,7 +4810,6 @@ func (s *ConfigurationOptionDescription) SetValueType(v string) *ConfigurationOp // its current value. For a list of possible option values, go to Option Values // (http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html) // in the AWS Elastic Beanstalk Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ConfigurationOptionSetting type ConfigurationOptionSetting struct { _ struct{} `type:"structure"` @@ -4894,7 +4874,6 @@ func (s *ConfigurationOptionSetting) SetValue(v string) *ConfigurationOptionSett } // Describes the settings for a configuration set. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ConfigurationSettingsDescription type ConfigurationSettingsDescription struct { _ struct{} `type:"structure"` @@ -5013,7 +4992,6 @@ func (s *ConfigurationSettingsDescription) SetTemplateName(v string) *Configurat } // Request to create an application. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/CreateApplicationMessage type CreateApplicationInput struct { _ struct{} `type:"structure"` @@ -5082,7 +5060,6 @@ func (s *CreateApplicationInput) SetResourceLifecycleConfig(v *ApplicationResour return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/CreateApplicationVersionMessage type CreateApplicationVersionInput struct { _ struct{} `type:"structure"` @@ -5227,7 +5204,6 @@ func (s *CreateApplicationVersionInput) SetVersionLabel(v string) *CreateApplica } // Request to create a configuration template. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/CreateConfigurationTemplateMessage type CreateConfigurationTemplateInput struct { _ struct{} `type:"structure"` @@ -5387,7 +5363,6 @@ func (s *CreateConfigurationTemplateInput) SetTemplateName(v string) *CreateConf return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/CreateEnvironmentMessage type CreateEnvironmentInput struct { _ struct{} `type:"structure"` @@ -5615,7 +5590,6 @@ func (s *CreateEnvironmentInput) SetVersionLabel(v string) *CreateEnvironmentInp } // Request to create a new platform version. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/CreatePlatformVersionRequest type CreatePlatformVersionInput struct { _ struct{} `type:"structure"` @@ -5713,7 +5687,6 @@ func (s *CreatePlatformVersionInput) SetPlatformVersion(v string) *CreatePlatfor return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/CreatePlatformVersionResult type CreatePlatformVersionOutput struct { _ struct{} `type:"structure"` @@ -5746,7 +5719,6 @@ func (s *CreatePlatformVersionOutput) SetPlatformSummary(v *PlatformSummary) *Cr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/CreateStorageLocationInput type CreateStorageLocationInput struct { _ struct{} `type:"structure"` } @@ -5762,7 +5734,6 @@ func (s CreateStorageLocationInput) GoString() string { } // Results of a CreateStorageLocationResult call. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/CreateStorageLocationResultMessage type CreateStorageLocationOutput struct { _ struct{} `type:"structure"` @@ -5787,7 +5758,6 @@ func (s *CreateStorageLocationOutput) SetS3Bucket(v string) *CreateStorageLocati } // A custom AMI available to platforms. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/CustomAmi type CustomAmi struct { _ struct{} `type:"structure"` @@ -5821,7 +5791,6 @@ func (s *CustomAmi) SetVirtualizationType(v string) *CustomAmi { } // Request to delete an application. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DeleteApplicationMessage type DeleteApplicationInput struct { _ struct{} `type:"structure"` @@ -5873,7 +5842,6 @@ func (s *DeleteApplicationInput) SetTerminateEnvByForce(v bool) *DeleteApplicati return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DeleteApplicationOutput type DeleteApplicationOutput struct { _ struct{} `type:"structure"` } @@ -5889,7 +5857,6 @@ func (s DeleteApplicationOutput) GoString() string { } // Request to delete an application version. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DeleteApplicationVersionMessage type DeleteApplicationVersionInput struct { _ struct{} `type:"structure"` @@ -5959,7 +5926,6 @@ func (s *DeleteApplicationVersionInput) SetVersionLabel(v string) *DeleteApplica return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DeleteApplicationVersionOutput type DeleteApplicationVersionOutput struct { _ struct{} `type:"structure"` } @@ -5975,7 +5941,6 @@ func (s DeleteApplicationVersionOutput) GoString() string { } // Request to delete a configuration template. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DeleteConfigurationTemplateMessage type DeleteConfigurationTemplateInput struct { _ struct{} `type:"structure"` @@ -6034,7 +5999,6 @@ func (s *DeleteConfigurationTemplateInput) SetTemplateName(v string) *DeleteConf return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DeleteConfigurationTemplateOutput type DeleteConfigurationTemplateOutput struct { _ struct{} `type:"structure"` } @@ -6050,7 +6014,6 @@ func (s DeleteConfigurationTemplateOutput) GoString() string { } // Request to delete a draft environment configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DeleteEnvironmentConfigurationMessage type DeleteEnvironmentConfigurationInput struct { _ struct{} `type:"structure"` @@ -6109,7 +6072,6 @@ func (s *DeleteEnvironmentConfigurationInput) SetEnvironmentName(v string) *Dele return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DeleteEnvironmentConfigurationOutput type DeleteEnvironmentConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -6124,7 +6086,6 @@ func (s DeleteEnvironmentConfigurationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DeletePlatformVersionRequest type DeletePlatformVersionInput struct { _ struct{} `type:"structure"` @@ -6148,7 +6109,6 @@ func (s *DeletePlatformVersionInput) SetPlatformArn(v string) *DeletePlatformVer return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DeletePlatformVersionResult type DeletePlatformVersionOutput struct { _ struct{} `type:"structure"` @@ -6173,7 +6133,6 @@ func (s *DeletePlatformVersionOutput) SetPlatformSummary(v *PlatformSummary) *De } // Information about an application version deployment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/Deployment type Deployment struct { _ struct{} `type:"structure"` @@ -6234,7 +6193,6 @@ func (s *Deployment) SetVersionLabel(v string) *Deployment { } // Request to describe application versions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DescribeApplicationVersionsMessage type DescribeApplicationVersionsInput struct { _ struct{} `type:"structure"` @@ -6310,7 +6268,6 @@ func (s *DescribeApplicationVersionsInput) SetVersionLabels(v []*string) *Descri } // Result message wrapping a list of application version descriptions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ApplicationVersionDescriptionsMessage type DescribeApplicationVersionsOutput struct { _ struct{} `type:"structure"` @@ -6345,7 +6302,6 @@ func (s *DescribeApplicationVersionsOutput) SetNextToken(v string) *DescribeAppl } // Request to describe one or more applications. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DescribeApplicationsMessage type DescribeApplicationsInput struct { _ struct{} `type:"structure"` @@ -6371,7 +6327,6 @@ func (s *DescribeApplicationsInput) SetApplicationNames(v []*string) *DescribeAp } // Result message containing a list of application descriptions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ApplicationDescriptionsMessage type DescribeApplicationsOutput struct { _ struct{} `type:"structure"` @@ -6396,7 +6351,6 @@ func (s *DescribeApplicationsOutput) SetApplications(v []*ApplicationDescription } // Result message containing a list of application version descriptions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DescribeConfigurationOptionsMessage type DescribeConfigurationOptionsInput struct { _ struct{} `type:"structure"` @@ -6498,7 +6452,6 @@ func (s *DescribeConfigurationOptionsInput) SetTemplateName(v string) *DescribeC } // Describes the settings for a specified configuration set. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ConfigurationOptionsDescription type DescribeConfigurationOptionsOutput struct { _ struct{} `type:"structure"` @@ -6542,7 +6495,6 @@ func (s *DescribeConfigurationOptionsOutput) SetSolutionStackName(v string) *Des // Result message containing all of the configuration settings for a specified // solution stack or configuration template. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DescribeConfigurationSettingsMessage type DescribeConfigurationSettingsInput struct { _ struct{} `type:"structure"` @@ -6619,7 +6571,6 @@ func (s *DescribeConfigurationSettingsInput) SetTemplateName(v string) *Describe } // The results from a request to change the configuration settings of an environment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ConfigurationSettingsDescriptions type DescribeConfigurationSettingsOutput struct { _ struct{} `type:"structure"` @@ -6644,7 +6595,6 @@ func (s *DescribeConfigurationSettingsOutput) SetConfigurationSettings(v []*Conf } // See the example below to learn how to create a request body. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DescribeEnvironmentHealthRequest type DescribeEnvironmentHealthInput struct { _ struct{} `type:"structure"` @@ -6705,7 +6655,6 @@ func (s *DescribeEnvironmentHealthInput) SetEnvironmentName(v string) *DescribeE } // Health details for an AWS Elastic Beanstalk environment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DescribeEnvironmentHealthResult type DescribeEnvironmentHealthOutput struct { _ struct{} `type:"structure"` @@ -6797,7 +6746,6 @@ func (s *DescribeEnvironmentHealthOutput) SetStatus(v string) *DescribeEnvironme } // Request to list completed and failed managed actions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DescribeEnvironmentManagedActionHistoryRequest type DescribeEnvironmentManagedActionHistoryInput struct { _ struct{} `type:"structure"` @@ -6862,7 +6810,6 @@ func (s *DescribeEnvironmentManagedActionHistoryInput) SetNextToken(v string) *D } // A result message containing a list of completed and failed managed actions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DescribeEnvironmentManagedActionHistoryResult type DescribeEnvironmentManagedActionHistoryOutput struct { _ struct{} `type:"structure"` @@ -6897,7 +6844,6 @@ func (s *DescribeEnvironmentManagedActionHistoryOutput) SetNextToken(v string) * } // Request to list an environment's upcoming and in-progress managed actions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DescribeEnvironmentManagedActionsRequest type DescribeEnvironmentManagedActionsInput struct { _ struct{} `type:"structure"` @@ -6940,7 +6886,6 @@ func (s *DescribeEnvironmentManagedActionsInput) SetStatus(v string) *DescribeEn } // The result message containing a list of managed actions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DescribeEnvironmentManagedActionsResult type DescribeEnvironmentManagedActionsOutput struct { _ struct{} `type:"structure"` @@ -6965,7 +6910,6 @@ func (s *DescribeEnvironmentManagedActionsOutput) SetManagedActions(v []*Managed } // Request to describe the resources in an environment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DescribeEnvironmentResourcesMessage type DescribeEnvironmentResourcesInput struct { _ struct{} `type:"structure"` @@ -7020,7 +6964,6 @@ func (s *DescribeEnvironmentResourcesInput) SetEnvironmentName(v string) *Descri } // Result message containing a list of environment resource descriptions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/EnvironmentResourceDescriptionsMessage type DescribeEnvironmentResourcesOutput struct { _ struct{} `type:"structure"` @@ -7045,7 +6988,6 @@ func (s *DescribeEnvironmentResourcesOutput) SetEnvironmentResources(v *Environm } // Request to describe one or more environments. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DescribeEnvironmentsMessage type DescribeEnvironmentsInput struct { _ struct{} `type:"structure"` @@ -7170,7 +7112,6 @@ func (s *DescribeEnvironmentsInput) SetVersionLabel(v string) *DescribeEnvironme } // Request to retrieve a list of events for an environment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DescribeEventsMessage type DescribeEventsInput struct { _ struct{} `type:"structure"` @@ -7329,7 +7270,6 @@ func (s *DescribeEventsInput) SetVersionLabel(v string) *DescribeEventsInput { } // Result message wrapping a list of event descriptions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/EventDescriptionsMessage type DescribeEventsOutput struct { _ struct{} `type:"structure"` @@ -7364,7 +7304,6 @@ func (s *DescribeEventsOutput) SetNextToken(v string) *DescribeEventsOutput { } // Parameters for a call to DescribeInstancesHealth. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DescribeInstancesHealthRequest type DescribeInstancesHealthInput struct { _ struct{} `type:"structure"` @@ -7434,7 +7373,6 @@ func (s *DescribeInstancesHealthInput) SetNextToken(v string) *DescribeInstances // Detailed health information about the Amazon EC2 instances in an AWS Elastic // Beanstalk environment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DescribeInstancesHealthResult type DescribeInstancesHealthOutput struct { _ struct{} `type:"structure"` @@ -7476,7 +7414,6 @@ func (s *DescribeInstancesHealthOutput) SetRefreshedAt(v time.Time) *DescribeIns return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DescribePlatformVersionRequest type DescribePlatformVersionInput struct { _ struct{} `type:"structure"` @@ -7500,7 +7437,6 @@ func (s *DescribePlatformVersionInput) SetPlatformArn(v string) *DescribePlatfor return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/DescribePlatformVersionResult type DescribePlatformVersionOutput struct { _ struct{} `type:"structure"` @@ -7525,7 +7461,6 @@ func (s *DescribePlatformVersionOutput) SetPlatformDescription(v *PlatformDescri } // Describes the properties of an environment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/EnvironmentDescription type EnvironmentDescription struct { _ struct{} `type:"structure"` @@ -7756,7 +7691,6 @@ func (s *EnvironmentDescription) SetVersionLabel(v string) *EnvironmentDescripti } // Result message containing a list of environment descriptions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/EnvironmentDescriptionsMessage type EnvironmentDescriptionsMessage struct { _ struct{} `type:"structure"` @@ -7791,7 +7725,6 @@ func (s *EnvironmentDescriptionsMessage) SetNextToken(v string) *EnvironmentDesc } // The information retrieved from the Amazon EC2 instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/EnvironmentInfoDescription type EnvironmentInfoDescription struct { _ struct{} `type:"structure"` @@ -7847,7 +7780,6 @@ func (s *EnvironmentInfoDescription) SetSampleTimestamp(v time.Time) *Environmen // to another environment in the same group. See Environment Manifest (env.yaml) // (http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environment-cfg-manifest.html) // for details. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/EnvironmentLink type EnvironmentLink struct { _ struct{} `type:"structure"` @@ -7881,7 +7813,6 @@ func (s *EnvironmentLink) SetLinkName(v string) *EnvironmentLink { } // Describes the AWS resources in use by this environment. This data is live. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/EnvironmentResourceDescription type EnvironmentResourceDescription struct { _ struct{} `type:"structure"` @@ -7961,7 +7892,6 @@ func (s *EnvironmentResourceDescription) SetTriggers(v []*Trigger) *EnvironmentR // Describes the AWS resources in use by this environment. This data is not // live data. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/EnvironmentResourcesDescription type EnvironmentResourcesDescription struct { _ struct{} `type:"structure"` @@ -7986,7 +7916,6 @@ func (s *EnvironmentResourcesDescription) SetLoadBalancer(v *LoadBalancerDescrip } // Describes the properties of an environment tier -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/EnvironmentTier type EnvironmentTier struct { _ struct{} `type:"structure"` @@ -8029,7 +7958,6 @@ func (s *EnvironmentTier) SetVersion(v string) *EnvironmentTier { } // Describes an event. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/EventDescription type EventDescription struct { _ struct{} `type:"structure"` @@ -8126,7 +8054,6 @@ func (s *EventDescription) SetVersionLabel(v string) *EventDescription { } // The description of an Amazon EC2 instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/Instance type Instance struct { _ struct{} `type:"structure"` @@ -8152,7 +8079,6 @@ func (s *Instance) SetId(v string) *Instance { // Represents summary information about the health of an instance. For more // information, see Health Colors and Statuses (http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/health-enhanced-status.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/InstanceHealthSummary type InstanceHealthSummary struct { _ struct{} `type:"structure"` @@ -8247,7 +8173,6 @@ func (s *InstanceHealthSummary) SetWarning(v int64) *InstanceHealthSummary { // Represents the average latency for the slowest X percent of requests over // the last 10 seconds. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/Latency type Latency struct { _ struct{} `type:"structure"` @@ -8343,7 +8268,6 @@ func (s *Latency) SetP999(v float64) *Latency { } // Describes an Auto Scaling launch configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/LaunchConfiguration type LaunchConfiguration struct { _ struct{} `type:"structure"` @@ -8367,7 +8291,6 @@ func (s *LaunchConfiguration) SetName(v string) *LaunchConfiguration { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ListAvailableSolutionStacksInput type ListAvailableSolutionStacksInput struct { _ struct{} `type:"structure"` } @@ -8383,7 +8306,6 @@ func (s ListAvailableSolutionStacksInput) GoString() string { } // A list of available AWS Elastic Beanstalk solution stacks. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ListAvailableSolutionStacksResultMessage type ListAvailableSolutionStacksOutput struct { _ struct{} `type:"structure"` @@ -8416,7 +8338,6 @@ func (s *ListAvailableSolutionStacksOutput) SetSolutionStacks(v []*string) *List return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ListPlatformVersionsRequest type ListPlatformVersionsInput struct { _ struct{} `type:"structure"` @@ -8473,7 +8394,6 @@ func (s *ListPlatformVersionsInput) SetNextToken(v string) *ListPlatformVersions return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ListPlatformVersionsResult type ListPlatformVersionsOutput struct { _ struct{} `type:"structure"` @@ -8507,7 +8427,6 @@ func (s *ListPlatformVersionsOutput) SetPlatformSummaryList(v []*PlatformSummary return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ListTagsForResourceMessage type ListTagsForResourceInput struct { _ struct{} `type:"structure"` @@ -8548,7 +8467,6 @@ func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResource return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ResourceTagsDescriptionMessage type ListTagsForResourceOutput struct { _ struct{} `type:"structure"` @@ -8582,7 +8500,6 @@ func (s *ListTagsForResourceOutput) SetResourceTags(v []*Tag) *ListTagsForResour } // Describes the properties of a Listener for the LoadBalancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/Listener type Listener struct { _ struct{} `type:"structure"` @@ -8616,7 +8533,6 @@ func (s *Listener) SetProtocol(v string) *Listener { } // Describes a LoadBalancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/LoadBalancer type LoadBalancer struct { _ struct{} `type:"structure"` @@ -8641,7 +8557,6 @@ func (s *LoadBalancer) SetName(v string) *LoadBalancer { } // Describes the details of a LoadBalancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/LoadBalancerDescription type LoadBalancerDescription struct { _ struct{} `type:"structure"` @@ -8684,7 +8599,6 @@ func (s *LoadBalancerDescription) SetLoadBalancerName(v string) *LoadBalancerDes } // The record of an upcoming or in-progress managed action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ManagedAction type ManagedAction struct { _ struct{} `type:"structure"` @@ -8747,7 +8661,6 @@ func (s *ManagedAction) SetWindowStartTime(v time.Time) *ManagedAction { } // The record of a completed or failed managed action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ManagedActionHistoryItem type ManagedActionHistoryItem struct { _ struct{} `type:"structure"` @@ -8836,7 +8749,6 @@ func (s *ManagedActionHistoryItem) SetStatus(v string) *ManagedActionHistoryItem // A lifecycle rule that deletes application versions after the specified number // of days. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/MaxAgeRule type MaxAgeRule struct { _ struct{} `type:"structure"` @@ -8896,7 +8808,6 @@ func (s *MaxAgeRule) SetMaxAgeInDays(v int64) *MaxAgeRule { // A lifecycle rule that deletes the oldest application version when the maximum // count is exceeded. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/MaxCountRule type MaxCountRule struct { _ struct{} `type:"structure"` @@ -8956,7 +8867,6 @@ func (s *MaxCountRule) SetMaxCount(v int64) *MaxCountRule { // A regular expression representing a restriction on a string configuration // option value. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/OptionRestrictionRegex type OptionRestrictionRegex struct { _ struct{} `type:"structure"` @@ -8991,7 +8901,6 @@ func (s *OptionRestrictionRegex) SetPattern(v string) *OptionRestrictionRegex { } // A specification identifying an individual configuration option. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/OptionSpecification type OptionSpecification struct { _ struct{} `type:"structure"` @@ -9047,7 +8956,6 @@ func (s *OptionSpecification) SetResourceName(v string) *OptionSpecification { } // Detailed information about a platform. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/PlatformDescription type PlatformDescription struct { _ struct{} `type:"structure"` @@ -9229,7 +9137,6 @@ func (s *PlatformDescription) SetSupportedTierList(v []*string) *PlatformDescrip // The filter is evaluated as the expression: // // TypeOperatorValues[i] -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/PlatformFilter type PlatformFilter struct { _ struct{} `type:"structure"` @@ -9278,7 +9185,6 @@ func (s *PlatformFilter) SetValues(v []*string) *PlatformFilter { } // A framework supported by the custom platform. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/PlatformFramework type PlatformFramework struct { _ struct{} `type:"structure"` @@ -9312,7 +9218,6 @@ func (s *PlatformFramework) SetVersion(v string) *PlatformFramework { } // A programming language supported by the platform. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/PlatformProgrammingLanguage type PlatformProgrammingLanguage struct { _ struct{} `type:"structure"` @@ -9346,7 +9251,6 @@ func (s *PlatformProgrammingLanguage) SetVersion(v string) *PlatformProgrammingL } // Detailed information about a platform. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/PlatformSummary type PlatformSummary struct { _ struct{} `type:"structure"` @@ -9435,7 +9339,6 @@ func (s *PlatformSummary) SetSupportedTierList(v []*string) *PlatformSummary { } // Describes a queue. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/Queue type Queue struct { _ struct{} `type:"structure"` @@ -9468,7 +9371,6 @@ func (s *Queue) SetURL(v string) *Queue { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/RebuildEnvironmentMessage type RebuildEnvironmentInput struct { _ struct{} `type:"structure"` @@ -9522,7 +9424,6 @@ func (s *RebuildEnvironmentInput) SetEnvironmentName(v string) *RebuildEnvironme return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/RebuildEnvironmentOutput type RebuildEnvironmentOutput struct { _ struct{} `type:"structure"` } @@ -9539,7 +9440,6 @@ func (s RebuildEnvironmentOutput) GoString() string { // Request to retrieve logs from an environment and store them in your Elastic // Beanstalk storage bucket. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/RequestEnvironmentInfoMessage type RequestEnvironmentInfoInput struct { _ struct{} `type:"structure"` @@ -9613,7 +9513,6 @@ func (s *RequestEnvironmentInfoInput) SetInfoType(v string) *RequestEnvironmentI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/RequestEnvironmentInfoOutput type RequestEnvironmentInfoOutput struct { _ struct{} `type:"structure"` } @@ -9628,7 +9527,6 @@ func (s RequestEnvironmentInfoOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/RestartAppServerMessage type RestartAppServerInput struct { _ struct{} `type:"structure"` @@ -9682,7 +9580,6 @@ func (s *RestartAppServerInput) SetEnvironmentName(v string) *RestartAppServerIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/RestartAppServerOutput type RestartAppServerOutput struct { _ struct{} `type:"structure"` } @@ -9698,7 +9595,6 @@ func (s RestartAppServerOutput) GoString() string { } // Request to download logs retrieved with RequestEnvironmentInfo. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/RetrieveEnvironmentInfoMessage type RetrieveEnvironmentInfoInput struct { _ struct{} `type:"structure"` @@ -9771,7 +9667,6 @@ func (s *RetrieveEnvironmentInfoInput) SetInfoType(v string) *RetrieveEnvironmen } // Result message containing a description of the requested environment info. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/RetrieveEnvironmentInfoResultMessage type RetrieveEnvironmentInfoOutput struct { _ struct{} `type:"structure"` @@ -9796,7 +9691,6 @@ func (s *RetrieveEnvironmentInfoOutput) SetEnvironmentInfo(v []*EnvironmentInfoD } // The bucket and key of an item stored in Amazon S3. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/S3Location type S3Location struct { _ struct{} `type:"structure"` @@ -9831,7 +9725,6 @@ func (s *S3Location) SetS3Key(v string) *S3Location { // Detailed health information about an Amazon EC2 instance in your Elastic // Beanstalk environment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/SingleInstanceHealth type SingleInstanceHealth struct { _ struct{} `type:"structure"` @@ -9941,7 +9834,6 @@ func (s *SingleInstanceHealth) SetSystem(v *SystemStatus) *SingleInstanceHealth } // Describes the solution stack. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/SolutionStackDescription type SolutionStackDescription struct { _ struct{} `type:"structure"` @@ -9975,7 +9867,6 @@ func (s *SolutionStackDescription) SetSolutionStackName(v string) *SolutionStack } // Location of the source code for an application version. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/SourceBuildInformation type SourceBuildInformation struct { _ struct{} `type:"structure"` @@ -10061,7 +9952,6 @@ func (s *SourceBuildInformation) SetSourceType(v string) *SourceBuildInformation } // A specification for an environment configuration -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/SourceConfiguration type SourceConfiguration struct { _ struct{} `type:"structure"` @@ -10113,7 +10003,6 @@ func (s *SourceConfiguration) SetTemplateName(v string) *SourceConfiguration { // Represents the percentage of requests over the last 10 seconds that resulted // in each type of status code response. For more information, see Status Code // Definitions (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/StatusCodes type StatusCodes struct { _ struct{} `type:"structure"` @@ -10169,7 +10058,6 @@ func (s *StatusCodes) SetStatus5xx(v int64) *StatusCodes { } // Swaps the CNAMEs of two environments. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/SwapEnvironmentCNAMEsMessage type SwapEnvironmentCNAMEsInput struct { _ struct{} `type:"structure"` @@ -10252,7 +10140,6 @@ func (s *SwapEnvironmentCNAMEsInput) SetSourceEnvironmentName(v string) *SwapEnv return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/SwapEnvironmentCNAMEsOutput type SwapEnvironmentCNAMEsOutput struct { _ struct{} `type:"structure"` } @@ -10268,7 +10155,6 @@ func (s SwapEnvironmentCNAMEsOutput) GoString() string { } // CPU utilization and load average metrics for an Amazon EC2 instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/SystemStatus type SystemStatus struct { _ struct{} `type:"structure"` @@ -10303,7 +10189,6 @@ func (s *SystemStatus) SetLoadAverage(v []*float64) *SystemStatus { } // Describes a tag applied to a resource in an environment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/Tag type Tag struct { _ struct{} `type:"structure"` @@ -10353,7 +10238,6 @@ func (s *Tag) SetValue(v string) *Tag { } // Request to terminate an environment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/TerminateEnvironmentMessage type TerminateEnvironmentInput struct { _ struct{} `type:"structure"` @@ -10440,7 +10324,6 @@ func (s *TerminateEnvironmentInput) SetTerminateResources(v bool) *TerminateEnvi } // Describes a trigger. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/Trigger type Trigger struct { _ struct{} `type:"structure"` @@ -10465,7 +10348,6 @@ func (s *Trigger) SetName(v string) *Trigger { } // Request to update an application. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/UpdateApplicationMessage type UpdateApplicationInput struct { _ struct{} `type:"structure"` @@ -10519,7 +10401,6 @@ func (s *UpdateApplicationInput) SetDescription(v string) *UpdateApplicationInpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/UpdateApplicationResourceLifecycleMessage type UpdateApplicationResourceLifecycleInput struct { _ struct{} `type:"structure"` @@ -10580,7 +10461,6 @@ func (s *UpdateApplicationResourceLifecycleInput) SetResourceLifecycleConfig(v * return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ApplicationResourceLifecycleDescriptionMessage type UpdateApplicationResourceLifecycleOutput struct { _ struct{} `type:"structure"` @@ -10613,7 +10493,6 @@ func (s *UpdateApplicationResourceLifecycleOutput) SetResourceLifecycleConfig(v return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/UpdateApplicationVersionMessage type UpdateApplicationVersionInput struct { _ struct{} `type:"structure"` @@ -10688,7 +10567,6 @@ func (s *UpdateApplicationVersionInput) SetVersionLabel(v string) *UpdateApplica } // The result message containing the options for the specified solution stack. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/UpdateConfigurationTemplateMessage type UpdateConfigurationTemplateInput struct { _ struct{} `type:"structure"` @@ -10805,7 +10683,6 @@ func (s *UpdateConfigurationTemplateInput) SetTemplateName(v string) *UpdateConf } // Request to update an environment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/UpdateEnvironmentMessage type UpdateEnvironmentInput struct { _ struct{} `type:"structure"` @@ -11001,7 +10878,6 @@ func (s *UpdateEnvironmentInput) SetVersionLabel(v string) *UpdateEnvironmentInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/UpdateTagsForResourceMessage type UpdateTagsForResourceInput struct { _ struct{} `type:"structure"` @@ -11074,7 +10950,6 @@ func (s *UpdateTagsForResourceInput) SetTagsToRemove(v []*string) *UpdateTagsFor return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/UpdateTagsForResourceOutput type UpdateTagsForResourceOutput struct { _ struct{} `type:"structure"` } @@ -11090,7 +10965,6 @@ func (s UpdateTagsForResourceOutput) GoString() string { } // A list of validation messages for a specified configuration template. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ValidateConfigurationSettingsMessage type ValidateConfigurationSettingsInput struct { _ struct{} `type:"structure"` @@ -11186,7 +11060,6 @@ func (s *ValidateConfigurationSettingsInput) SetTemplateName(v string) *Validate } // Provides a list of validation messages. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ConfigurationSettingsValidationMessages type ValidateConfigurationSettingsOutput struct { _ struct{} `type:"structure"` @@ -11211,7 +11084,6 @@ func (s *ValidateConfigurationSettingsOutput) SetMessages(v []*ValidationMessage } // An error or warning for a desired configuration option value. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticbeanstalk-2010-12-01/ValidationMessage type ValidationMessage struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/elb/api.go b/vendor/github.com/aws/aws-sdk-go/service/elb/api.go index 521a88d8a..66658a1a6 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/elb/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/elb/api.go @@ -2727,7 +2727,6 @@ func (c *ELB) SetLoadBalancerPoliciesOfListenerWithContext(ctx aws.Context, inpu } // Information about the AccessLog attribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/AccessLog type AccessLog struct { _ struct{} `type:"structure"` @@ -2799,7 +2798,6 @@ func (s *AccessLog) SetS3BucketPrefix(v string) *AccessLog { } // Contains the parameters for AddTags. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/AddTagsInput type AddTagsInput struct { _ struct{} `type:"structure"` @@ -2866,7 +2864,6 @@ func (s *AddTagsInput) SetTags(v []*Tag) *AddTagsInput { } // Contains the output of AddTags. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/AddTagsOutput type AddTagsOutput struct { _ struct{} `type:"structure"` } @@ -2882,7 +2879,6 @@ func (s AddTagsOutput) GoString() string { } // This data type is reserved. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/AdditionalAttribute type AdditionalAttribute struct { _ struct{} `type:"structure"` @@ -2916,7 +2912,6 @@ func (s *AdditionalAttribute) SetValue(v string) *AdditionalAttribute { } // Information about a policy for application-controlled session stickiness. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/AppCookieStickinessPolicy type AppCookieStickinessPolicy struct { _ struct{} `type:"structure"` @@ -2951,7 +2946,6 @@ func (s *AppCookieStickinessPolicy) SetPolicyName(v string) *AppCookieStickiness } // Contains the parameters for ApplySecurityGroupsToLoadBalancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/ApplySecurityGroupsToLoadBalancerInput type ApplySecurityGroupsToLoadBalancerInput struct { _ struct{} `type:"structure"` @@ -3006,7 +3000,6 @@ func (s *ApplySecurityGroupsToLoadBalancerInput) SetSecurityGroups(v []*string) } // Contains the output of ApplySecurityGroupsToLoadBalancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/ApplySecurityGroupsToLoadBalancerOutput type ApplySecurityGroupsToLoadBalancerOutput struct { _ struct{} `type:"structure"` @@ -3031,7 +3024,6 @@ func (s *ApplySecurityGroupsToLoadBalancerOutput) SetSecurityGroups(v []*string) } // Contains the parameters for AttachLoaBalancerToSubnets. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/AttachLoadBalancerToSubnetsInput type AttachLoadBalancerToSubnetsInput struct { _ struct{} `type:"structure"` @@ -3086,7 +3078,6 @@ func (s *AttachLoadBalancerToSubnetsInput) SetSubnets(v []*string) *AttachLoadBa } // Contains the output of AttachLoadBalancerToSubnets. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/AttachLoadBalancerToSubnetsOutput type AttachLoadBalancerToSubnetsOutput struct { _ struct{} `type:"structure"` @@ -3111,7 +3102,6 @@ func (s *AttachLoadBalancerToSubnetsOutput) SetSubnets(v []*string) *AttachLoadB } // Information about the configuration of an EC2 instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/BackendServerDescription type BackendServerDescription struct { _ struct{} `type:"structure"` @@ -3145,7 +3135,6 @@ func (s *BackendServerDescription) SetPolicyNames(v []*string) *BackendServerDes } // Contains the parameters for ConfigureHealthCheck. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/ConfigureHealthCheckInput type ConfigureHealthCheckInput struct { _ struct{} `type:"structure"` @@ -3204,7 +3193,6 @@ func (s *ConfigureHealthCheckInput) SetLoadBalancerName(v string) *ConfigureHeal } // Contains the output of ConfigureHealthCheck. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/ConfigureHealthCheckOutput type ConfigureHealthCheckOutput struct { _ struct{} `type:"structure"` @@ -3229,7 +3217,6 @@ func (s *ConfigureHealthCheckOutput) SetHealthCheck(v *HealthCheck) *ConfigureHe } // Information about the ConnectionDraining attribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/ConnectionDraining type ConnectionDraining struct { _ struct{} `type:"structure"` @@ -3279,7 +3266,6 @@ func (s *ConnectionDraining) SetTimeout(v int64) *ConnectionDraining { } // Information about the ConnectionSettings attribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/ConnectionSettings type ConnectionSettings struct { _ struct{} `type:"structure"` @@ -3323,7 +3309,6 @@ func (s *ConnectionSettings) SetIdleTimeout(v int64) *ConnectionSettings { } // Contains the parameters for CreateAppCookieStickinessPolicy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateAppCookieStickinessPolicyInput type CreateAppCookieStickinessPolicyInput struct { _ struct{} `type:"structure"` @@ -3393,7 +3378,6 @@ func (s *CreateAppCookieStickinessPolicyInput) SetPolicyName(v string) *CreateAp } // Contains the output for CreateAppCookieStickinessPolicy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateAppCookieStickinessPolicyOutput type CreateAppCookieStickinessPolicyOutput struct { _ struct{} `type:"structure"` } @@ -3409,7 +3393,6 @@ func (s CreateAppCookieStickinessPolicyOutput) GoString() string { } // Contains the parameters for CreateLBCookieStickinessPolicy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateLBCookieStickinessPolicyInput type CreateLBCookieStickinessPolicyInput struct { _ struct{} `type:"structure"` @@ -3477,7 +3460,6 @@ func (s *CreateLBCookieStickinessPolicyInput) SetPolicyName(v string) *CreateLBC } // Contains the output for CreateLBCookieStickinessPolicy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateLBCookieStickinessPolicyOutput type CreateLBCookieStickinessPolicyOutput struct { _ struct{} `type:"structure"` } @@ -3493,7 +3475,6 @@ func (s CreateLBCookieStickinessPolicyOutput) GoString() string { } // Contains the parameters for CreateLoadBalancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateAccessPointInput type CreateLoadBalancerInput struct { _ struct{} `type:"structure"` @@ -3641,7 +3622,6 @@ func (s *CreateLoadBalancerInput) SetTags(v []*Tag) *CreateLoadBalancerInput { } // Contains the parameters for CreateLoadBalancerListeners. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateLoadBalancerListenerInput type CreateLoadBalancerListenersInput struct { _ struct{} `type:"structure"` @@ -3705,7 +3685,6 @@ func (s *CreateLoadBalancerListenersInput) SetLoadBalancerName(v string) *Create } // Contains the parameters for CreateLoadBalancerListener. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateLoadBalancerListenerOutput type CreateLoadBalancerListenersOutput struct { _ struct{} `type:"structure"` } @@ -3721,7 +3700,6 @@ func (s CreateLoadBalancerListenersOutput) GoString() string { } // Contains the output for CreateLoadBalancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateAccessPointOutput type CreateLoadBalancerOutput struct { _ struct{} `type:"structure"` @@ -3746,7 +3724,6 @@ func (s *CreateLoadBalancerOutput) SetDNSName(v string) *CreateLoadBalancerOutpu } // Contains the parameters for CreateLoadBalancerPolicy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateLoadBalancerPolicyInput type CreateLoadBalancerPolicyInput struct { _ struct{} `type:"structure"` @@ -3824,7 +3801,6 @@ func (s *CreateLoadBalancerPolicyInput) SetPolicyTypeName(v string) *CreateLoadB } // Contains the output of CreateLoadBalancerPolicy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CreateLoadBalancerPolicyOutput type CreateLoadBalancerPolicyOutput struct { _ struct{} `type:"structure"` } @@ -3840,7 +3816,6 @@ func (s CreateLoadBalancerPolicyOutput) GoString() string { } // Information about the CrossZoneLoadBalancing attribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/CrossZoneLoadBalancing type CrossZoneLoadBalancing struct { _ struct{} `type:"structure"` @@ -3880,7 +3855,6 @@ func (s *CrossZoneLoadBalancing) SetEnabled(v bool) *CrossZoneLoadBalancing { } // Contains the parameters for DeleteLoadBalancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DeleteAccessPointInput type DeleteLoadBalancerInput struct { _ struct{} `type:"structure"` @@ -3920,7 +3894,6 @@ func (s *DeleteLoadBalancerInput) SetLoadBalancerName(v string) *DeleteLoadBalan } // Contains the parameters for DeleteLoadBalancerListeners. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DeleteLoadBalancerListenerInput type DeleteLoadBalancerListenersInput struct { _ struct{} `type:"structure"` @@ -3974,7 +3947,6 @@ func (s *DeleteLoadBalancerListenersInput) SetLoadBalancerPorts(v []*int64) *Del } // Contains the output of DeleteLoadBalancerListeners. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DeleteLoadBalancerListenerOutput type DeleteLoadBalancerListenersOutput struct { _ struct{} `type:"structure"` } @@ -3990,7 +3962,6 @@ func (s DeleteLoadBalancerListenersOutput) GoString() string { } // Contains the output of DeleteLoadBalancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DeleteAccessPointOutput type DeleteLoadBalancerOutput struct { _ struct{} `type:"structure"` } @@ -4006,7 +3977,6 @@ func (s DeleteLoadBalancerOutput) GoString() string { } // Contains the parameters for DeleteLoadBalancerPolicy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DeleteLoadBalancerPolicyInput type DeleteLoadBalancerPolicyInput struct { _ struct{} `type:"structure"` @@ -4060,7 +4030,6 @@ func (s *DeleteLoadBalancerPolicyInput) SetPolicyName(v string) *DeleteLoadBalan } // Contains the output of DeleteLoadBalancerPolicy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DeleteLoadBalancerPolicyOutput type DeleteLoadBalancerPolicyOutput struct { _ struct{} `type:"structure"` } @@ -4076,7 +4045,6 @@ func (s DeleteLoadBalancerPolicyOutput) GoString() string { } // Contains the parameters for DeregisterInstancesFromLoadBalancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DeregisterEndPointsInput type DeregisterInstancesFromLoadBalancerInput struct { _ struct{} `type:"structure"` @@ -4130,7 +4098,6 @@ func (s *DeregisterInstancesFromLoadBalancerInput) SetLoadBalancerName(v string) } // Contains the output of DeregisterInstancesFromLoadBalancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DeregisterEndPointsOutput type DeregisterInstancesFromLoadBalancerOutput struct { _ struct{} `type:"structure"` @@ -4154,7 +4121,6 @@ func (s *DeregisterInstancesFromLoadBalancerOutput) SetInstances(v []*Instance) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeAccountLimitsInput type DescribeAccountLimitsInput struct { _ struct{} `type:"structure"` @@ -4201,7 +4167,6 @@ func (s *DescribeAccountLimitsInput) SetPageSize(v int64) *DescribeAccountLimits return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeAccountLimitsOutput type DescribeAccountLimitsOutput struct { _ struct{} `type:"structure"` @@ -4236,7 +4201,6 @@ func (s *DescribeAccountLimitsOutput) SetNextMarker(v string) *DescribeAccountLi } // Contains the parameters for DescribeInstanceHealth. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeEndPointStateInput type DescribeInstanceHealthInput struct { _ struct{} `type:"structure"` @@ -4285,7 +4249,6 @@ func (s *DescribeInstanceHealthInput) SetLoadBalancerName(v string) *DescribeIns } // Contains the output for DescribeInstanceHealth. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeEndPointStateOutput type DescribeInstanceHealthOutput struct { _ struct{} `type:"structure"` @@ -4310,7 +4273,6 @@ func (s *DescribeInstanceHealthOutput) SetInstanceStates(v []*InstanceState) *De } // Contains the parameters for DescribeLoadBalancerAttributes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeLoadBalancerAttributesInput type DescribeLoadBalancerAttributesInput struct { _ struct{} `type:"structure"` @@ -4350,7 +4312,6 @@ func (s *DescribeLoadBalancerAttributesInput) SetLoadBalancerName(v string) *Des } // Contains the output of DescribeLoadBalancerAttributes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeLoadBalancerAttributesOutput type DescribeLoadBalancerAttributesOutput struct { _ struct{} `type:"structure"` @@ -4375,7 +4336,6 @@ func (s *DescribeLoadBalancerAttributesOutput) SetLoadBalancerAttributes(v *Load } // Contains the parameters for DescribeLoadBalancerPolicies. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeLoadBalancerPoliciesInput type DescribeLoadBalancerPoliciesInput struct { _ struct{} `type:"structure"` @@ -4409,7 +4369,6 @@ func (s *DescribeLoadBalancerPoliciesInput) SetPolicyNames(v []*string) *Describ } // Contains the output of DescribeLoadBalancerPolicies. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeLoadBalancerPoliciesOutput type DescribeLoadBalancerPoliciesOutput struct { _ struct{} `type:"structure"` @@ -4434,7 +4393,6 @@ func (s *DescribeLoadBalancerPoliciesOutput) SetPolicyDescriptions(v []*PolicyDe } // Contains the parameters for DescribeLoadBalancerPolicyTypes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeLoadBalancerPolicyTypesInput type DescribeLoadBalancerPolicyTypesInput struct { _ struct{} `type:"structure"` @@ -4460,7 +4418,6 @@ func (s *DescribeLoadBalancerPolicyTypesInput) SetPolicyTypeNames(v []*string) * } // Contains the output of DescribeLoadBalancerPolicyTypes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeLoadBalancerPolicyTypesOutput type DescribeLoadBalancerPolicyTypesOutput struct { _ struct{} `type:"structure"` @@ -4485,7 +4442,6 @@ func (s *DescribeLoadBalancerPolicyTypesOutput) SetPolicyTypeDescriptions(v []*P } // Contains the parameters for DescribeLoadBalancers. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeAccessPointsInput type DescribeLoadBalancersInput struct { _ struct{} `type:"structure"` @@ -4543,7 +4499,6 @@ func (s *DescribeLoadBalancersInput) SetPageSize(v int64) *DescribeLoadBalancers } // Contains the parameters for DescribeLoadBalancers. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeAccessPointsOutput type DescribeLoadBalancersOutput struct { _ struct{} `type:"structure"` @@ -4578,7 +4533,6 @@ func (s *DescribeLoadBalancersOutput) SetNextMarker(v string) *DescribeLoadBalan } // Contains the parameters for DescribeTags. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeTagsInput type DescribeTagsInput struct { _ struct{} `type:"structure"` @@ -4621,7 +4575,6 @@ func (s *DescribeTagsInput) SetLoadBalancerNames(v []*string) *DescribeTagsInput } // Contains the output for DescribeTags. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DescribeTagsOutput type DescribeTagsOutput struct { _ struct{} `type:"structure"` @@ -4646,7 +4599,6 @@ func (s *DescribeTagsOutput) SetTagDescriptions(v []*TagDescription) *DescribeTa } // Contains the parameters for DetachLoadBalancerFromSubnets. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DetachLoadBalancerFromSubnetsInput type DetachLoadBalancerFromSubnetsInput struct { _ struct{} `type:"structure"` @@ -4700,7 +4652,6 @@ func (s *DetachLoadBalancerFromSubnetsInput) SetSubnets(v []*string) *DetachLoad } // Contains the output of DetachLoadBalancerFromSubnets. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/DetachLoadBalancerFromSubnetsOutput type DetachLoadBalancerFromSubnetsOutput struct { _ struct{} `type:"structure"` @@ -4725,7 +4676,6 @@ func (s *DetachLoadBalancerFromSubnetsOutput) SetSubnets(v []*string) *DetachLoa } // Contains the parameters for DisableAvailabilityZonesForLoadBalancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/RemoveAvailabilityZonesInput type DisableAvailabilityZonesForLoadBalancerInput struct { _ struct{} `type:"structure"` @@ -4779,7 +4729,6 @@ func (s *DisableAvailabilityZonesForLoadBalancerInput) SetLoadBalancerName(v str } // Contains the output for DisableAvailabilityZonesForLoadBalancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/RemoveAvailabilityZonesOutput type DisableAvailabilityZonesForLoadBalancerOutput struct { _ struct{} `type:"structure"` @@ -4804,7 +4753,6 @@ func (s *DisableAvailabilityZonesForLoadBalancerOutput) SetAvailabilityZones(v [ } // Contains the parameters for EnableAvailabilityZonesForLoadBalancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/AddAvailabilityZonesInput type EnableAvailabilityZonesForLoadBalancerInput struct { _ struct{} `type:"structure"` @@ -4858,7 +4806,6 @@ func (s *EnableAvailabilityZonesForLoadBalancerInput) SetLoadBalancerName(v stri } // Contains the output of EnableAvailabilityZonesForLoadBalancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/AddAvailabilityZonesOutput type EnableAvailabilityZonesForLoadBalancerOutput struct { _ struct{} `type:"structure"` @@ -4883,7 +4830,6 @@ func (s *EnableAvailabilityZonesForLoadBalancerOutput) SetAvailabilityZones(v [] } // Information about a health check. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/HealthCheck type HealthCheck struct { _ struct{} `type:"structure"` @@ -5014,7 +4960,6 @@ func (s *HealthCheck) SetUnhealthyThreshold(v int64) *HealthCheck { } // The ID of an EC2 instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/Instance type Instance struct { _ struct{} `type:"structure"` @@ -5039,7 +4984,6 @@ func (s *Instance) SetInstanceId(v string) *Instance { } // Information about the state of an EC2 instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/InstanceState type InstanceState struct { _ struct{} `type:"structure"` @@ -5124,7 +5068,6 @@ func (s *InstanceState) SetState(v string) *InstanceState { } // Information about a policy for duration-based session stickiness. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/LBCookieStickinessPolicy type LBCookieStickinessPolicy struct { _ struct{} `type:"structure"` @@ -5161,7 +5104,6 @@ func (s *LBCookieStickinessPolicy) SetPolicyName(v string) *LBCookieStickinessPo } // Information about an Elastic Load Balancing resource limit for your AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/Limit type Limit struct { _ struct{} `type:"structure"` @@ -5203,7 +5145,6 @@ func (s *Limit) SetName(v string) *Limit { // For information about the protocols and the ports supported by Elastic Load // Balancing, see Listeners for Your Classic Load Balancer (http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-listener-config.html) // in the Classic Load Balancer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/Listener type Listener struct { _ struct{} `type:"structure"` @@ -5305,7 +5246,6 @@ func (s *Listener) SetSSLCertificateId(v string) *Listener { } // The policies enabled for a listener. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/ListenerDescription type ListenerDescription struct { _ struct{} `type:"structure"` @@ -5339,7 +5279,6 @@ func (s *ListenerDescription) SetPolicyNames(v []*string) *ListenerDescription { } // The attributes for a load balancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/LoadBalancerAttributes type LoadBalancerAttributes struct { _ struct{} `type:"structure"` @@ -5448,7 +5387,6 @@ func (s *LoadBalancerAttributes) SetCrossZoneLoadBalancing(v *CrossZoneLoadBalan } // Information about a load balancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/LoadBalancerDescription type LoadBalancerDescription struct { _ struct{} `type:"structure"` @@ -5621,7 +5559,6 @@ func (s *LoadBalancerDescription) SetVPCId(v string) *LoadBalancerDescription { } // Contains the parameters for ModifyLoadBalancerAttributes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/ModifyLoadBalancerAttributesInput type ModifyLoadBalancerAttributesInput struct { _ struct{} `type:"structure"` @@ -5680,7 +5617,6 @@ func (s *ModifyLoadBalancerAttributesInput) SetLoadBalancerName(v string) *Modif } // Contains the output of ModifyLoadBalancerAttributes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/ModifyLoadBalancerAttributesOutput type ModifyLoadBalancerAttributesOutput struct { _ struct{} `type:"structure"` @@ -5714,7 +5650,6 @@ func (s *ModifyLoadBalancerAttributesOutput) SetLoadBalancerName(v string) *Modi } // The policies for a load balancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/Policies type Policies struct { _ struct{} `type:"structure"` @@ -5757,7 +5692,6 @@ func (s *Policies) SetOtherPolicies(v []*string) *Policies { } // Information about a policy attribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/PolicyAttribute type PolicyAttribute struct { _ struct{} `type:"structure"` @@ -5791,7 +5725,6 @@ func (s *PolicyAttribute) SetAttributeValue(v string) *PolicyAttribute { } // Information about a policy attribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/PolicyAttributeDescription type PolicyAttributeDescription struct { _ struct{} `type:"structure"` @@ -5825,7 +5758,6 @@ func (s *PolicyAttributeDescription) SetAttributeValue(v string) *PolicyAttribut } // Information about a policy attribute type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/PolicyAttributeTypeDescription type PolicyAttributeTypeDescription struct { _ struct{} `type:"structure"` @@ -5896,7 +5828,6 @@ func (s *PolicyAttributeTypeDescription) SetDescription(v string) *PolicyAttribu } // Information about a policy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/PolicyDescription type PolicyDescription struct { _ struct{} `type:"structure"` @@ -5939,7 +5870,6 @@ func (s *PolicyDescription) SetPolicyTypeName(v string) *PolicyDescription { } // Information about a policy type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/PolicyTypeDescription type PolicyTypeDescription struct { _ struct{} `type:"structure"` @@ -5983,7 +5913,6 @@ func (s *PolicyTypeDescription) SetPolicyTypeName(v string) *PolicyTypeDescripti } // Contains the parameters for RegisterInstancesWithLoadBalancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/RegisterEndPointsInput type RegisterInstancesWithLoadBalancerInput struct { _ struct{} `type:"structure"` @@ -6037,7 +5966,6 @@ func (s *RegisterInstancesWithLoadBalancerInput) SetLoadBalancerName(v string) * } // Contains the output of RegisterInstancesWithLoadBalancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/RegisterEndPointsOutput type RegisterInstancesWithLoadBalancerOutput struct { _ struct{} `type:"structure"` @@ -6062,7 +5990,6 @@ func (s *RegisterInstancesWithLoadBalancerOutput) SetInstances(v []*Instance) *R } // Contains the parameters for RemoveTags. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/RemoveTagsInput type RemoveTagsInput struct { _ struct{} `type:"structure"` @@ -6130,7 +6057,6 @@ func (s *RemoveTagsInput) SetTags(v []*TagKeyOnly) *RemoveTagsInput { } // Contains the output of RemoveTags. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/RemoveTagsOutput type RemoveTagsOutput struct { _ struct{} `type:"structure"` } @@ -6146,7 +6072,6 @@ func (s RemoveTagsOutput) GoString() string { } // Contains the parameters for SetLoadBalancerListenerSSLCertificate. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/SetLoadBalancerListenerSSLCertificateInput type SetLoadBalancerListenerSSLCertificateInput struct { _ struct{} `type:"structure"` @@ -6214,7 +6139,6 @@ func (s *SetLoadBalancerListenerSSLCertificateInput) SetSSLCertificateId(v strin } // Contains the output of SetLoadBalancerListenerSSLCertificate. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/SetLoadBalancerListenerSSLCertificateOutput type SetLoadBalancerListenerSSLCertificateOutput struct { _ struct{} `type:"structure"` } @@ -6230,7 +6154,6 @@ func (s SetLoadBalancerListenerSSLCertificateOutput) GoString() string { } // Contains the parameters for SetLoadBalancerPoliciesForBackendServer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/SetLoadBalancerPoliciesForBackendServerInput type SetLoadBalancerPoliciesForBackendServerInput struct { _ struct{} `type:"structure"` @@ -6299,7 +6222,6 @@ func (s *SetLoadBalancerPoliciesForBackendServerInput) SetPolicyNames(v []*strin } // Contains the output of SetLoadBalancerPoliciesForBackendServer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/SetLoadBalancerPoliciesForBackendServerOutput type SetLoadBalancerPoliciesForBackendServerOutput struct { _ struct{} `type:"structure"` } @@ -6315,7 +6237,6 @@ func (s SetLoadBalancerPoliciesForBackendServerOutput) GoString() string { } // Contains the parameters for SetLoadBalancePoliciesOfListener. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/SetLoadBalancerPoliciesOfListenerInput type SetLoadBalancerPoliciesOfListenerInput struct { _ struct{} `type:"structure"` @@ -6385,7 +6306,6 @@ func (s *SetLoadBalancerPoliciesOfListenerInput) SetPolicyNames(v []*string) *Se } // Contains the output of SetLoadBalancePoliciesOfListener. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/SetLoadBalancerPoliciesOfListenerOutput type SetLoadBalancerPoliciesOfListenerOutput struct { _ struct{} `type:"structure"` } @@ -6401,7 +6321,6 @@ func (s SetLoadBalancerPoliciesOfListenerOutput) GoString() string { } // Information about a source security group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/SourceSecurityGroup type SourceSecurityGroup struct { _ struct{} `type:"structure"` @@ -6435,7 +6354,6 @@ func (s *SourceSecurityGroup) SetOwnerAlias(v string) *SourceSecurityGroup { } // Information about a tag. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/Tag type Tag struct { _ struct{} `type:"structure"` @@ -6487,7 +6405,6 @@ func (s *Tag) SetValue(v string) *Tag { } // The tags associated with a load balancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/TagDescription type TagDescription struct { _ struct{} `type:"structure"` @@ -6521,7 +6438,6 @@ func (s *TagDescription) SetTags(v []*Tag) *TagDescription { } // The key of a tag. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancing-2012-06-01/TagKeyOnly type TagKeyOnly struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/elbv2/api.go b/vendor/github.com/aws/aws-sdk-go/service/elbv2/api.go index 6e79ddf97..359bc6c45 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/elbv2/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/elbv2/api.go @@ -3312,7 +3312,6 @@ func (c *ELBV2) SetSubnetsWithContext(ctx aws.Context, input *SetSubnetsInput, o } // Information about an action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/Action type Action struct { _ struct{} `type:"structure"` @@ -3365,7 +3364,6 @@ func (s *Action) SetType(v string) *Action { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/AddListenerCertificatesInput type AddListenerCertificatesInput struct { _ struct{} `type:"structure"` @@ -3418,7 +3416,6 @@ func (s *AddListenerCertificatesInput) SetListenerArn(v string) *AddListenerCert return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/AddListenerCertificatesOutput type AddListenerCertificatesOutput struct { _ struct{} `type:"structure"` @@ -3442,7 +3439,6 @@ func (s *AddListenerCertificatesOutput) SetCertificates(v []*Certificate) *AddLi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/AddTagsInput type AddTagsInput struct { _ struct{} `type:"structure"` @@ -3508,7 +3504,6 @@ func (s *AddTagsInput) SetTags(v []*Tag) *AddTagsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/AddTagsOutput type AddTagsOutput struct { _ struct{} `type:"structure"` } @@ -3524,7 +3519,6 @@ func (s AddTagsOutput) GoString() string { } // Information about an Availability Zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/AvailabilityZone type AvailabilityZone struct { _ struct{} `type:"structure"` @@ -3567,7 +3561,6 @@ func (s *AvailabilityZone) SetZoneName(v string) *AvailabilityZone { } // Information about an SSL server certificate. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/Certificate type Certificate struct { _ struct{} `type:"structure"` @@ -3601,7 +3594,6 @@ func (s *Certificate) SetIsDefault(v bool) *Certificate { } // Information about a cipher used in a policy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/Cipher type Cipher struct { _ struct{} `type:"structure"` @@ -3634,7 +3626,6 @@ func (s *Cipher) SetPriority(v int64) *Cipher { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateListenerInput type CreateListenerInput struct { _ struct{} `type:"structure"` @@ -3752,7 +3743,6 @@ func (s *CreateListenerInput) SetSslPolicy(v string) *CreateListenerInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateListenerOutput type CreateListenerOutput struct { _ struct{} `type:"structure"` @@ -3776,7 +3766,6 @@ func (s *CreateListenerOutput) SetListeners(v []*Listener) *CreateListenerOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateLoadBalancerInput type CreateLoadBalancerInput struct { _ struct{} `type:"structure"` @@ -3921,7 +3910,6 @@ func (s *CreateLoadBalancerInput) SetType(v string) *CreateLoadBalancerInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateLoadBalancerOutput type CreateLoadBalancerOutput struct { _ struct{} `type:"structure"` @@ -3945,7 +3933,6 @@ func (s *CreateLoadBalancerOutput) SetLoadBalancers(v []*LoadBalancer) *CreateLo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateRuleInput type CreateRuleInput struct { _ struct{} `type:"structure"` @@ -4068,7 +4055,6 @@ func (s *CreateRuleInput) SetPriority(v int64) *CreateRuleInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateRuleOutput type CreateRuleOutput struct { _ struct{} `type:"structure"` @@ -4092,7 +4078,6 @@ func (s *CreateRuleOutput) SetRules(v []*Rule) *CreateRuleOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateTargetGroupInput type CreateTargetGroupInput struct { _ struct{} `type:"structure"` @@ -4312,7 +4297,6 @@ func (s *CreateTargetGroupInput) SetVpcId(v string) *CreateTargetGroupInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/CreateTargetGroupOutput type CreateTargetGroupOutput struct { _ struct{} `type:"structure"` @@ -4336,7 +4320,6 @@ func (s *CreateTargetGroupOutput) SetTargetGroups(v []*TargetGroup) *CreateTarge return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DeleteListenerInput type DeleteListenerInput struct { _ struct{} `type:"structure"` @@ -4375,7 +4358,6 @@ func (s *DeleteListenerInput) SetListenerArn(v string) *DeleteListenerInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DeleteListenerOutput type DeleteListenerOutput struct { _ struct{} `type:"structure"` } @@ -4390,7 +4372,6 @@ func (s DeleteListenerOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DeleteLoadBalancerInput type DeleteLoadBalancerInput struct { _ struct{} `type:"structure"` @@ -4429,7 +4410,6 @@ func (s *DeleteLoadBalancerInput) SetLoadBalancerArn(v string) *DeleteLoadBalanc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DeleteLoadBalancerOutput type DeleteLoadBalancerOutput struct { _ struct{} `type:"structure"` } @@ -4444,7 +4424,6 @@ func (s DeleteLoadBalancerOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DeleteRuleInput type DeleteRuleInput struct { _ struct{} `type:"structure"` @@ -4483,7 +4462,6 @@ func (s *DeleteRuleInput) SetRuleArn(v string) *DeleteRuleInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DeleteRuleOutput type DeleteRuleOutput struct { _ struct{} `type:"structure"` } @@ -4498,7 +4476,6 @@ func (s DeleteRuleOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DeleteTargetGroupInput type DeleteTargetGroupInput struct { _ struct{} `type:"structure"` @@ -4537,7 +4514,6 @@ func (s *DeleteTargetGroupInput) SetTargetGroupArn(v string) *DeleteTargetGroupI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DeleteTargetGroupOutput type DeleteTargetGroupOutput struct { _ struct{} `type:"structure"` } @@ -4552,7 +4528,6 @@ func (s DeleteTargetGroupOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DeregisterTargetsInput type DeregisterTargetsInput struct { _ struct{} `type:"structure"` @@ -4616,7 +4591,6 @@ func (s *DeregisterTargetsInput) SetTargets(v []*TargetDescription) *DeregisterT return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DeregisterTargetsOutput type DeregisterTargetsOutput struct { _ struct{} `type:"structure"` } @@ -4631,7 +4605,6 @@ func (s DeregisterTargetsOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeAccountLimitsInput type DescribeAccountLimitsInput struct { _ struct{} `type:"structure"` @@ -4678,7 +4651,6 @@ func (s *DescribeAccountLimitsInput) SetPageSize(v int64) *DescribeAccountLimits return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeAccountLimitsOutput type DescribeAccountLimitsOutput struct { _ struct{} `type:"structure"` @@ -4712,7 +4684,6 @@ func (s *DescribeAccountLimitsOutput) SetNextMarker(v string) *DescribeAccountLi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeListenerCertificatesInput type DescribeListenerCertificatesInput struct { _ struct{} `type:"structure"` @@ -4773,7 +4744,6 @@ func (s *DescribeListenerCertificatesInput) SetPageSize(v int64) *DescribeListen return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeListenerCertificatesOutput type DescribeListenerCertificatesOutput struct { _ struct{} `type:"structure"` @@ -4807,7 +4777,6 @@ func (s *DescribeListenerCertificatesOutput) SetNextMarker(v string) *DescribeLi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeListenersInput type DescribeListenersInput struct { _ struct{} `type:"structure"` @@ -4872,7 +4841,6 @@ func (s *DescribeListenersInput) SetPageSize(v int64) *DescribeListenersInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeListenersOutput type DescribeListenersOutput struct { _ struct{} `type:"structure"` @@ -4906,7 +4874,6 @@ func (s *DescribeListenersOutput) SetNextMarker(v string) *DescribeListenersOutp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeLoadBalancerAttributesInput type DescribeLoadBalancerAttributesInput struct { _ struct{} `type:"structure"` @@ -4945,7 +4912,6 @@ func (s *DescribeLoadBalancerAttributesInput) SetLoadBalancerArn(v string) *Desc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeLoadBalancerAttributesOutput type DescribeLoadBalancerAttributesOutput struct { _ struct{} `type:"structure"` @@ -4969,7 +4935,6 @@ func (s *DescribeLoadBalancerAttributesOutput) SetAttributes(v []*LoadBalancerAt return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeLoadBalancersInput type DescribeLoadBalancersInput struct { _ struct{} `type:"structure"` @@ -5035,7 +5000,6 @@ func (s *DescribeLoadBalancersInput) SetPageSize(v int64) *DescribeLoadBalancers return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeLoadBalancersOutput type DescribeLoadBalancersOutput struct { _ struct{} `type:"structure"` @@ -5069,7 +5033,6 @@ func (s *DescribeLoadBalancersOutput) SetNextMarker(v string) *DescribeLoadBalan return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeRulesInput type DescribeRulesInput struct { _ struct{} `type:"structure"` @@ -5134,7 +5097,6 @@ func (s *DescribeRulesInput) SetRuleArns(v []*string) *DescribeRulesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeRulesOutput type DescribeRulesOutput struct { _ struct{} `type:"structure"` @@ -5168,7 +5130,6 @@ func (s *DescribeRulesOutput) SetRules(v []*Rule) *DescribeRulesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeSSLPoliciesInput type DescribeSSLPoliciesInput struct { _ struct{} `type:"structure"` @@ -5224,7 +5185,6 @@ func (s *DescribeSSLPoliciesInput) SetPageSize(v int64) *DescribeSSLPoliciesInpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeSSLPoliciesOutput type DescribeSSLPoliciesOutput struct { _ struct{} `type:"structure"` @@ -5258,7 +5218,6 @@ func (s *DescribeSSLPoliciesOutput) SetSslPolicies(v []*SslPolicy) *DescribeSSLP return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTagsInput type DescribeTagsInput struct { _ struct{} `type:"structure"` @@ -5297,7 +5256,6 @@ func (s *DescribeTagsInput) SetResourceArns(v []*string) *DescribeTagsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTagsOutput type DescribeTagsOutput struct { _ struct{} `type:"structure"` @@ -5321,7 +5279,6 @@ func (s *DescribeTagsOutput) SetTagDescriptions(v []*TagDescription) *DescribeTa return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTargetGroupAttributesInput type DescribeTargetGroupAttributesInput struct { _ struct{} `type:"structure"` @@ -5360,7 +5317,6 @@ func (s *DescribeTargetGroupAttributesInput) SetTargetGroupArn(v string) *Descri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTargetGroupAttributesOutput type DescribeTargetGroupAttributesOutput struct { _ struct{} `type:"structure"` @@ -5384,7 +5340,6 @@ func (s *DescribeTargetGroupAttributesOutput) SetAttributes(v []*TargetGroupAttr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTargetGroupsInput type DescribeTargetGroupsInput struct { _ struct{} `type:"structure"` @@ -5458,7 +5413,6 @@ func (s *DescribeTargetGroupsInput) SetTargetGroupArns(v []*string) *DescribeTar return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTargetGroupsOutput type DescribeTargetGroupsOutput struct { _ struct{} `type:"structure"` @@ -5492,7 +5446,6 @@ func (s *DescribeTargetGroupsOutput) SetTargetGroups(v []*TargetGroup) *Describe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTargetHealthInput type DescribeTargetHealthInput struct { _ struct{} `type:"structure"` @@ -5550,7 +5503,6 @@ func (s *DescribeTargetHealthInput) SetTargets(v []*TargetDescription) *Describe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/DescribeTargetHealthOutput type DescribeTargetHealthOutput struct { _ struct{} `type:"structure"` @@ -5575,7 +5527,6 @@ func (s *DescribeTargetHealthOutput) SetTargetHealthDescriptions(v []*TargetHeal } // Information about an Elastic Load Balancing resource limit for your AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/Limit type Limit struct { _ struct{} `type:"structure"` @@ -5623,7 +5574,6 @@ func (s *Limit) SetName(v string) *Limit { } // Information about a listener. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/Listener type Listener struct { _ struct{} `type:"structure"` @@ -5704,7 +5654,6 @@ func (s *Listener) SetSslPolicy(v string) *Listener { } // Information about a load balancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/LoadBalancer type LoadBalancer struct { _ struct{} `type:"structure"` @@ -5838,7 +5787,6 @@ func (s *LoadBalancer) SetVpcId(v string) *LoadBalancer { } // Information about a static IP address for a load balancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/LoadBalancerAddress type LoadBalancerAddress struct { _ struct{} `type:"structure"` @@ -5872,7 +5820,6 @@ func (s *LoadBalancerAddress) SetIpAddress(v string) *LoadBalancerAddress { } // Information about a load balancer attribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/LoadBalancerAttribute type LoadBalancerAttribute struct { _ struct{} `type:"structure"` @@ -5926,7 +5873,6 @@ func (s *LoadBalancerAttribute) SetValue(v string) *LoadBalancerAttribute { } // Information about the state of the load balancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/LoadBalancerState type LoadBalancerState struct { _ struct{} `type:"structure"` @@ -5962,7 +5908,6 @@ func (s *LoadBalancerState) SetReason(v string) *LoadBalancerState { } // Information to use when checking for a successful response from a target. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/Matcher type Matcher struct { _ struct{} `type:"structure"` @@ -6007,7 +5952,6 @@ func (s *Matcher) SetHttpCode(v string) *Matcher { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyListenerInput type ModifyListenerInput struct { _ struct{} `type:"structure"` @@ -6110,7 +6054,6 @@ func (s *ModifyListenerInput) SetSslPolicy(v string) *ModifyListenerInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyListenerOutput type ModifyListenerOutput struct { _ struct{} `type:"structure"` @@ -6134,7 +6077,6 @@ func (s *ModifyListenerOutput) SetListeners(v []*Listener) *ModifyListenerOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyLoadBalancerAttributesInput type ModifyLoadBalancerAttributesInput struct { _ struct{} `type:"structure"` @@ -6187,7 +6129,6 @@ func (s *ModifyLoadBalancerAttributesInput) SetLoadBalancerArn(v string) *Modify return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyLoadBalancerAttributesOutput type ModifyLoadBalancerAttributesOutput struct { _ struct{} `type:"structure"` @@ -6211,7 +6152,6 @@ func (s *ModifyLoadBalancerAttributesOutput) SetAttributes(v []*LoadBalancerAttr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyRuleInput type ModifyRuleInput struct { _ struct{} `type:"structure"` @@ -6278,7 +6218,6 @@ func (s *ModifyRuleInput) SetRuleArn(v string) *ModifyRuleInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyRuleOutput type ModifyRuleOutput struct { _ struct{} `type:"structure"` @@ -6302,7 +6241,6 @@ func (s *ModifyRuleOutput) SetRules(v []*Rule) *ModifyRuleOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyTargetGroupAttributesInput type ModifyTargetGroupAttributesInput struct { _ struct{} `type:"structure"` @@ -6355,7 +6293,6 @@ func (s *ModifyTargetGroupAttributesInput) SetTargetGroupArn(v string) *ModifyTa return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyTargetGroupAttributesOutput type ModifyTargetGroupAttributesOutput struct { _ struct{} `type:"structure"` @@ -6379,7 +6316,6 @@ func (s *ModifyTargetGroupAttributesOutput) SetAttributes(v []*TargetGroupAttrib return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyTargetGroupInput type ModifyTargetGroupInput struct { _ struct{} `type:"structure"` @@ -6520,7 +6456,6 @@ func (s *ModifyTargetGroupInput) SetUnhealthyThresholdCount(v int64) *ModifyTarg return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/ModifyTargetGroupOutput type ModifyTargetGroupOutput struct { _ struct{} `type:"structure"` @@ -6544,7 +6479,6 @@ func (s *ModifyTargetGroupOutput) SetTargetGroups(v []*TargetGroup) *ModifyTarge return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RegisterTargetsInput type RegisterTargetsInput struct { _ struct{} `type:"structure"` @@ -6607,7 +6541,6 @@ func (s *RegisterTargetsInput) SetTargets(v []*TargetDescription) *RegisterTarge return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RegisterTargetsOutput type RegisterTargetsOutput struct { _ struct{} `type:"structure"` } @@ -6622,7 +6555,6 @@ func (s RegisterTargetsOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RemoveListenerCertificatesInput type RemoveListenerCertificatesInput struct { _ struct{} `type:"structure"` @@ -6675,7 +6607,6 @@ func (s *RemoveListenerCertificatesInput) SetListenerArn(v string) *RemoveListen return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RemoveListenerCertificatesOutput type RemoveListenerCertificatesOutput struct { _ struct{} `type:"structure"` } @@ -6690,7 +6621,6 @@ func (s RemoveListenerCertificatesOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RemoveTagsInput type RemoveTagsInput struct { _ struct{} `type:"structure"` @@ -6743,7 +6673,6 @@ func (s *RemoveTagsInput) SetTagKeys(v []*string) *RemoveTagsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RemoveTagsOutput type RemoveTagsOutput struct { _ struct{} `type:"structure"` } @@ -6759,7 +6688,6 @@ func (s RemoveTagsOutput) GoString() string { } // Information about a rule. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/Rule type Rule struct { _ struct{} `type:"structure"` @@ -6820,7 +6748,6 @@ func (s *Rule) SetRuleArn(v string) *Rule { } // Information about a condition for a rule. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RuleCondition type RuleCondition struct { _ struct{} `type:"structure"` @@ -6882,7 +6809,6 @@ func (s *RuleCondition) SetValues(v []*string) *RuleCondition { } // Information about the priorities for the rules for a listener. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/RulePriorityPair type RulePriorityPair struct { _ struct{} `type:"structure"` @@ -6928,7 +6854,6 @@ func (s *RulePriorityPair) SetRuleArn(v string) *RulePriorityPair { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetIpAddressTypeInput type SetIpAddressTypeInput struct { _ struct{} `type:"structure"` @@ -6983,7 +6908,6 @@ func (s *SetIpAddressTypeInput) SetLoadBalancerArn(v string) *SetIpAddressTypeIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetIpAddressTypeOutput type SetIpAddressTypeOutput struct { _ struct{} `type:"structure"` @@ -7007,7 +6931,6 @@ func (s *SetIpAddressTypeOutput) SetIpAddressType(v string) *SetIpAddressTypeOut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetRulePrioritiesInput type SetRulePrioritiesInput struct { _ struct{} `type:"structure"` @@ -7056,7 +6979,6 @@ func (s *SetRulePrioritiesInput) SetRulePriorities(v []*RulePriorityPair) *SetRu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetRulePrioritiesOutput type SetRulePrioritiesOutput struct { _ struct{} `type:"structure"` @@ -7080,7 +7002,6 @@ func (s *SetRulePrioritiesOutput) SetRules(v []*Rule) *SetRulePrioritiesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSecurityGroupsInput type SetSecurityGroupsInput struct { _ struct{} `type:"structure"` @@ -7133,7 +7054,6 @@ func (s *SetSecurityGroupsInput) SetSecurityGroups(v []*string) *SetSecurityGrou return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSecurityGroupsOutput type SetSecurityGroupsOutput struct { _ struct{} `type:"structure"` @@ -7157,7 +7077,6 @@ func (s *SetSecurityGroupsOutput) SetSecurityGroupIds(v []*string) *SetSecurityG return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSubnetsInput type SetSubnetsInput struct { _ struct{} `type:"structure"` @@ -7226,7 +7145,6 @@ func (s *SetSubnetsInput) SetSubnets(v []*string) *SetSubnetsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SetSubnetsOutput type SetSubnetsOutput struct { _ struct{} `type:"structure"` @@ -7251,7 +7169,6 @@ func (s *SetSubnetsOutput) SetAvailabilityZones(v []*AvailabilityZone) *SetSubne } // Information about a policy used for SSL negotiation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SslPolicy type SslPolicy struct { _ struct{} `type:"structure"` @@ -7294,7 +7211,6 @@ func (s *SslPolicy) SetSslProtocols(v []*string) *SslPolicy { } // Information about a subnet mapping. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/SubnetMapping type SubnetMapping struct { _ struct{} `type:"structure"` @@ -7328,7 +7244,6 @@ func (s *SubnetMapping) SetSubnetId(v string) *SubnetMapping { } // Information about a tag. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/Tag type Tag struct { _ struct{} `type:"structure"` @@ -7380,7 +7295,6 @@ func (s *Tag) SetValue(v string) *Tag { } // The tags associated with a resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/TagDescription type TagDescription struct { _ struct{} `type:"structure"` @@ -7414,7 +7328,6 @@ func (s *TagDescription) SetTags(v []*Tag) *TagDescription { } // Information about a target. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/TargetDescription type TargetDescription struct { _ struct{} `type:"structure"` @@ -7486,7 +7399,6 @@ func (s *TargetDescription) SetPort(v int64) *TargetDescription { } // Information about a target group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/TargetGroup type TargetGroup struct { _ struct{} `type:"structure"` @@ -7644,7 +7556,6 @@ func (s *TargetGroup) SetVpcId(v string) *TargetGroup { } // Information about a target group attribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/TargetGroupAttribute type TargetGroupAttribute struct { _ struct{} `type:"structure"` @@ -7695,7 +7606,6 @@ func (s *TargetGroupAttribute) SetValue(v string) *TargetGroupAttribute { } // Information about the current health of a target. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/TargetHealth type TargetHealth struct { _ struct{} `type:"structure"` @@ -7782,7 +7692,6 @@ func (s *TargetHealth) SetState(v string) *TargetHealth { } // Information about the health of a target. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticloadbalancingv2-2015-12-01/TargetHealthDescription type TargetHealthDescription struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/emr/api.go b/vendor/github.com/aws/aws-sdk-go/service/emr/api.go index b24fd4c5d..b9b47e6e6 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/emr/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/emr/api.go @@ -2684,7 +2684,6 @@ func (c *EMR) TerminateJobFlowsWithContext(ctx aws.Context, input *TerminateJobF return out, req.Send() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceFleetInput type AddInstanceFleetInput struct { _ struct{} `type:"structure"` @@ -2742,7 +2741,6 @@ func (s *AddInstanceFleetInput) SetInstanceFleet(v *InstanceFleetConfig) *AddIns return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceFleetOutput type AddInstanceFleetOutput struct { _ struct{} `type:"structure"` @@ -2776,7 +2774,6 @@ func (s *AddInstanceFleetOutput) SetInstanceFleetId(v string) *AddInstanceFleetO } // Input to an AddInstanceGroups call. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceGroupsInput type AddInstanceGroupsInput struct { _ struct{} `type:"structure"` @@ -2840,7 +2837,6 @@ func (s *AddInstanceGroupsInput) SetJobFlowId(v string) *AddInstanceGroupsInput } // Output from an AddInstanceGroups call. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddInstanceGroupsOutput type AddInstanceGroupsOutput struct { _ struct{} `type:"structure"` @@ -2874,7 +2870,6 @@ func (s *AddInstanceGroupsOutput) SetJobFlowId(v string) *AddInstanceGroupsOutpu } // The input argument to the AddJobFlowSteps operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddJobFlowStepsInput type AddJobFlowStepsInput struct { _ struct{} `type:"structure"` @@ -2939,7 +2934,6 @@ func (s *AddJobFlowStepsInput) SetSteps(v []*StepConfig) *AddJobFlowStepsInput { } // The output for the AddJobFlowSteps operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddJobFlowStepsOutput type AddJobFlowStepsOutput struct { _ struct{} `type:"structure"` @@ -2964,7 +2958,6 @@ func (s *AddJobFlowStepsOutput) SetStepIds(v []*string) *AddJobFlowStepsOutput { } // This input identifies a cluster and a list of tags to attach. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddTagsInput type AddTagsInput struct { _ struct{} `type:"structure"` @@ -3022,7 +3015,6 @@ func (s *AddTagsInput) SetTags(v []*Tag) *AddTagsInput { } // This output indicates the result of adding tags to a resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AddTagsOutput type AddTagsOutput struct { _ struct{} `type:"structure"` } @@ -3055,7 +3047,6 @@ func (s AddTagsOutput) GoString() string { // In Amazon EMR releases 4.x and later, the only accepted parameter is the // application name. To pass arguments to applications, you supply a configuration // for each application. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/Application type Application struct { _ struct{} `type:"structure"` @@ -3111,7 +3102,6 @@ func (s *Application) SetVersion(v string) *Application { // in an Amazon EMR cluster. An automatic scaling policy defines how an instance // group dynamically adds and terminates EC2 instances in response to the value // of a CloudWatch metric. See PutAutoScalingPolicy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AutoScalingPolicy type AutoScalingPolicy struct { _ struct{} `type:"structure"` @@ -3185,7 +3175,6 @@ func (s *AutoScalingPolicy) SetRules(v []*ScalingRule) *AutoScalingPolicy { // in an Amazon EMR cluster. The automatic scaling policy defines how an instance // group dynamically adds and terminates EC2 instances in response to the value // of a CloudWatch metric. See PutAutoScalingPolicy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AutoScalingPolicyDescription type AutoScalingPolicyDescription struct { _ struct{} `type:"structure"` @@ -3230,7 +3219,6 @@ func (s *AutoScalingPolicyDescription) SetStatus(v *AutoScalingPolicyStatus) *Au } // The reason for an AutoScalingPolicyStatus change. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AutoScalingPolicyStateChangeReason type AutoScalingPolicyStateChangeReason struct { _ struct{} `type:"structure"` @@ -3268,7 +3256,6 @@ func (s *AutoScalingPolicyStateChangeReason) SetMessage(v string) *AutoScalingPo } // The status of an automatic scaling policy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/AutoScalingPolicyStatus type AutoScalingPolicyStatus struct { _ struct{} `type:"structure"` @@ -3302,7 +3289,6 @@ func (s *AutoScalingPolicyStatus) SetStateChangeReason(v *AutoScalingPolicyState } // Configuration of a bootstrap action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/BootstrapActionConfig type BootstrapActionConfig struct { _ struct{} `type:"structure"` @@ -3361,7 +3347,6 @@ func (s *BootstrapActionConfig) SetScriptBootstrapAction(v *ScriptBootstrapActio } // Reports the configuration of a bootstrap action in a cluster (job flow). -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/BootstrapActionDetail type BootstrapActionDetail struct { _ struct{} `type:"structure"` @@ -3387,7 +3372,6 @@ func (s *BootstrapActionDetail) SetBootstrapActionConfig(v *BootstrapActionConfi // Specification of the status of a CancelSteps request. Available only in Amazon // EMR version 4.8.0 and later, excluding version 5.0.0. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CancelStepsInfo type CancelStepsInfo struct { _ struct{} `type:"structure"` @@ -3430,7 +3414,6 @@ func (s *CancelStepsInfo) SetStepId(v string) *CancelStepsInfo { } // The input argument to the CancelSteps operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CancelStepsInput type CancelStepsInput struct { _ struct{} `type:"structure"` @@ -3466,7 +3449,6 @@ func (s *CancelStepsInput) SetStepIds(v []*string) *CancelStepsInput { } // The output for the CancelSteps operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CancelStepsOutput type CancelStepsOutput struct { _ struct{} `type:"structure"` @@ -3494,7 +3476,6 @@ func (s *CancelStepsOutput) SetCancelStepsInfoList(v []*CancelStepsInfo) *Cancel // The definition of a CloudWatch metric alarm, which determines when an automatic // scaling activity is triggered. When the defined alarm conditions are satisfied, // scaling activity begins. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CloudWatchAlarmDefinition type CloudWatchAlarmDefinition struct { _ struct{} `type:"structure"` @@ -3629,7 +3610,6 @@ func (s *CloudWatchAlarmDefinition) SetUnit(v string) *CloudWatchAlarmDefinition } // The detailed description of the cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/Cluster type Cluster struct { _ struct{} `type:"structure"` @@ -3911,7 +3891,6 @@ func (s *Cluster) SetVisibleToAllUsers(v bool) *Cluster { } // The reason that the cluster changed to its current state. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ClusterStateChangeReason type ClusterStateChangeReason struct { _ struct{} `type:"structure"` @@ -3945,7 +3924,6 @@ func (s *ClusterStateChangeReason) SetMessage(v string) *ClusterStateChangeReaso } // The detailed status of the cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ClusterStatus type ClusterStatus struct { _ struct{} `type:"structure"` @@ -3989,7 +3967,6 @@ func (s *ClusterStatus) SetTimeline(v *ClusterTimeline) *ClusterStatus { } // The summary description of the cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ClusterSummary type ClusterSummary struct { _ struct{} `type:"structure"` @@ -4046,7 +4023,6 @@ func (s *ClusterSummary) SetStatus(v *ClusterStatus) *ClusterSummary { } // Represents the timeline of the cluster's lifecycle. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ClusterTimeline type ClusterTimeline struct { _ struct{} `type:"structure"` @@ -4089,7 +4065,6 @@ func (s *ClusterTimeline) SetReadyDateTime(v time.Time) *ClusterTimeline { } // An entity describing an executable that runs on a cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/Command type Command struct { _ struct{} `type:"structure"` @@ -4139,7 +4114,6 @@ func (s *Command) SetScriptPath(v string) *Command { // and optional nested configurations. A classification refers to an application-specific // configuration file. Properties are the settings you want to change in that // file. For more information, see Configuring Applications (http://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/Configuration type Configuration struct { _ struct{} `type:"structure"` @@ -4181,7 +4155,6 @@ func (s *Configuration) SetProperties(v map[string]*string) *Configuration { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateSecurityConfigurationInput type CreateSecurityConfigurationInput struct { _ struct{} `type:"structure"` @@ -4236,7 +4209,6 @@ func (s *CreateSecurityConfigurationInput) SetSecurityConfiguration(v string) *C return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/CreateSecurityConfigurationOutput type CreateSecurityConfigurationOutput struct { _ struct{} `type:"structure"` @@ -4273,7 +4245,6 @@ func (s *CreateSecurityConfigurationOutput) SetName(v string) *CreateSecurityCon return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteSecurityConfigurationInput type DeleteSecurityConfigurationInput struct { _ struct{} `type:"structure"` @@ -4312,7 +4283,6 @@ func (s *DeleteSecurityConfigurationInput) SetName(v string) *DeleteSecurityConf return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DeleteSecurityConfigurationOutput type DeleteSecurityConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -4328,7 +4298,6 @@ func (s DeleteSecurityConfigurationOutput) GoString() string { } // This input determines which cluster to describe. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeClusterInput type DescribeClusterInput struct { _ struct{} `type:"structure"` @@ -4368,7 +4337,6 @@ func (s *DescribeClusterInput) SetClusterId(v string) *DescribeClusterInput { } // This output contains the description of the cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeClusterOutput type DescribeClusterOutput struct { _ struct{} `type:"structure"` @@ -4393,7 +4361,6 @@ func (s *DescribeClusterOutput) SetCluster(v *Cluster) *DescribeClusterOutput { } // The input for the DescribeJobFlows operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeJobFlowsInput type DescribeJobFlowsInput struct { _ struct{} `type:"structure"` @@ -4445,7 +4412,6 @@ func (s *DescribeJobFlowsInput) SetJobFlowStates(v []*string) *DescribeJobFlowsI } // The output for the DescribeJobFlows operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeJobFlowsOutput type DescribeJobFlowsOutput struct { _ struct{} `type:"structure"` @@ -4469,7 +4435,6 @@ func (s *DescribeJobFlowsOutput) SetJobFlows(v []*JobFlowDetail) *DescribeJobFlo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeSecurityConfigurationInput type DescribeSecurityConfigurationInput struct { _ struct{} `type:"structure"` @@ -4508,7 +4473,6 @@ func (s *DescribeSecurityConfigurationInput) SetName(v string) *DescribeSecurity return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeSecurityConfigurationOutput type DescribeSecurityConfigurationOutput struct { _ struct{} `type:"structure"` @@ -4551,7 +4515,6 @@ func (s *DescribeSecurityConfigurationOutput) SetSecurityConfiguration(v string) } // This input determines which step to describe. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStepInput type DescribeStepInput struct { _ struct{} `type:"structure"` @@ -4605,7 +4568,6 @@ func (s *DescribeStepInput) SetStepId(v string) *DescribeStepInput { } // This output contains the description of the cluster step. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/DescribeStepOutput type DescribeStepOutput struct { _ struct{} `type:"structure"` @@ -4631,7 +4593,6 @@ func (s *DescribeStepOutput) SetStep(v *Step) *DescribeStepOutput { // Configuration of requested EBS block device associated with the instance // group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/EbsBlockDevice type EbsBlockDevice struct { _ struct{} `type:"structure"` @@ -4667,7 +4628,6 @@ func (s *EbsBlockDevice) SetVolumeSpecification(v *VolumeSpecification) *EbsBloc // Configuration of requested EBS block device associated with the instance // group with count of volumes that will be associated to every instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/EbsBlockDeviceConfig type EbsBlockDeviceConfig struct { _ struct{} `type:"structure"` @@ -4723,7 +4683,6 @@ func (s *EbsBlockDeviceConfig) SetVolumesPerInstance(v int64) *EbsBlockDeviceCon } // The Amazon EBS configuration of a cluster instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/EbsConfiguration type EbsConfiguration struct { _ struct{} `type:"structure"` @@ -4777,7 +4736,6 @@ func (s *EbsConfiguration) SetEbsOptimized(v bool) *EbsConfiguration { } // EBS block device that's attached to an EC2 instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/EbsVolume type EbsVolume struct { _ struct{} `type:"structure"` @@ -4812,7 +4770,6 @@ func (s *EbsVolume) SetVolumeId(v string) *EbsVolume { // Provides information about the EC2 instances in a cluster grouped by category. // For example, key name, subnet ID, IAM instance profile, and so on. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/Ec2InstanceAttributes type Ec2InstanceAttributes struct { _ struct{} `type:"structure"` @@ -4954,7 +4911,6 @@ func (s *Ec2InstanceAttributes) SetServiceAccessSecurityGroup(v string) *Ec2Inst // The details of the step failure. The service attempts to detect the root // cause for many common failures. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/FailureDetails type FailureDetails struct { _ struct{} `type:"structure"` @@ -5004,7 +4960,6 @@ func (s *FailureDetails) SetReason(v string) *FailureDetails { // A job flow step consisting of a JAR file whose main function will be executed. // The main function submits a job for Hadoop to execute and waits for the job // to finish or fail. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/HadoopJarStepConfig type HadoopJarStepConfig struct { _ struct{} `type:"structure"` @@ -5076,7 +5031,6 @@ func (s *HadoopJarStepConfig) SetProperties(v []*KeyValue) *HadoopJarStepConfig // A cluster step consisting of a JAR file whose main function will be executed. // The main function submits a job for Hadoop to execute and waits for the job // to finish or fail. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/HadoopStepConfig type HadoopStepConfig struct { _ struct{} `type:"structure"` @@ -5131,7 +5085,6 @@ func (s *HadoopStepConfig) SetProperties(v map[string]*string) *HadoopStepConfig } // Represents an EC2 instance provisioned as part of cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/Instance type Instance struct { _ struct{} `type:"structure"` @@ -5261,7 +5214,6 @@ func (s *Instance) SetStatus(v *InstanceStatus) *Instance { // // The instance fleet configuration is available only in Amazon EMR versions // 4.8.0 and later, excluding 5.0.x versions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceFleet type InstanceFleet struct { _ struct{} `type:"structure"` @@ -5410,7 +5362,6 @@ func (s *InstanceFleet) SetTargetSpotCapacity(v int64) *InstanceFleet { // // The instance fleet configuration is available only in Amazon EMR versions // 4.8.0 and later, excluding 5.0.x versions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceFleetConfig type InstanceFleetConfig struct { _ struct{} `type:"structure"` @@ -5544,7 +5495,6 @@ func (s *InstanceFleetConfig) SetTargetSpotCapacity(v int64) *InstanceFleetConfi // // The instance fleet configuration is available only in Amazon EMR versions // 4.8.0 and later, excluding 5.0.x versions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceFleetModifyConfig type InstanceFleetModifyConfig struct { _ struct{} `type:"structure"` @@ -5608,7 +5558,6 @@ func (s *InstanceFleetModifyConfig) SetTargetSpotCapacity(v int64) *InstanceFlee // // The instance fleet configuration is available only in Amazon EMR versions // 4.8.0 and later, excluding 5.0.x versions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceFleetProvisioningSpecifications type InstanceFleetProvisioningSpecifications struct { _ struct{} `type:"structure"` @@ -5657,7 +5606,6 @@ func (s *InstanceFleetProvisioningSpecifications) SetSpotSpecification(v *SpotPr // // The instance fleet configuration is available only in Amazon EMR versions // 4.8.0 and later, excluding 5.0.x versions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceFleetStateChangeReason type InstanceFleetStateChangeReason struct { _ struct{} `type:"structure"` @@ -5694,7 +5642,6 @@ func (s *InstanceFleetStateChangeReason) SetMessage(v string) *InstanceFleetStat // // The instance fleet configuration is available only in Amazon EMR versions // 4.8.0 and later, excluding 5.0.x versions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceFleetStatus type InstanceFleetStatus struct { _ struct{} `type:"structure"` @@ -5762,7 +5709,6 @@ func (s *InstanceFleetStatus) SetTimeline(v *InstanceFleetTimeline) *InstanceFle // // The instance fleet configuration is available only in Amazon EMR versions // 4.8.0 and later, excluding 5.0.x versions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceFleetTimeline type InstanceFleetTimeline struct { _ struct{} `type:"structure"` @@ -5806,7 +5752,6 @@ func (s *InstanceFleetTimeline) SetReadyDateTime(v time.Time) *InstanceFleetTime // This entity represents an instance group, which is a group of instances that // have common purpose. For example, CORE instance group is used for HDFS. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceGroup type InstanceGroup struct { _ struct{} `type:"structure"` @@ -5959,7 +5904,6 @@ func (s *InstanceGroup) SetStatus(v *InstanceGroupStatus) *InstanceGroup { } // Configuration defining a new instance group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceGroupConfig type InstanceGroupConfig struct { _ struct{} `type:"structure"` @@ -6103,7 +6047,6 @@ func (s *InstanceGroupConfig) SetName(v string) *InstanceGroupConfig { } // Detailed information about an instance group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceGroupDetail type InstanceGroupDetail struct { _ struct{} `type:"structure"` @@ -6261,7 +6204,6 @@ func (s *InstanceGroupDetail) SetState(v string) *InstanceGroupDetail { } // Modify an instance group size. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceGroupModifyConfig type InstanceGroupModifyConfig struct { _ struct{} `type:"structure"` @@ -6329,7 +6271,6 @@ func (s *InstanceGroupModifyConfig) SetShrinkPolicy(v *ShrinkPolicy) *InstanceGr } // The status change reason details for the instance group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceGroupStateChangeReason type InstanceGroupStateChangeReason struct { _ struct{} `type:"structure"` @@ -6363,7 +6304,6 @@ func (s *InstanceGroupStateChangeReason) SetMessage(v string) *InstanceGroupStat } // The details of the instance group status. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceGroupStatus type InstanceGroupStatus struct { _ struct{} `type:"structure"` @@ -6406,7 +6346,6 @@ func (s *InstanceGroupStatus) SetTimeline(v *InstanceGroupTimeline) *InstanceGro } // The timeline of the instance group lifecycle. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceGroupTimeline type InstanceGroupTimeline struct { _ struct{} `type:"structure"` @@ -6450,7 +6389,6 @@ func (s *InstanceGroupTimeline) SetReadyDateTime(v time.Time) *InstanceGroupTime // Custom policy for requesting termination protection or termination of specific // instances when shrinking an instance group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceResizePolicy type InstanceResizePolicy struct { _ struct{} `type:"structure"` @@ -6494,7 +6432,6 @@ func (s *InstanceResizePolicy) SetInstancesToTerminate(v []*string) *InstanceRes } // The details of the status change reason for the instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceStateChangeReason type InstanceStateChangeReason struct { _ struct{} `type:"structure"` @@ -6528,7 +6465,6 @@ func (s *InstanceStateChangeReason) SetMessage(v string) *InstanceStateChangeRea } // The instance status details. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceStatus type InstanceStatus struct { _ struct{} `type:"structure"` @@ -6571,7 +6507,6 @@ func (s *InstanceStatus) SetTimeline(v *InstanceTimeline) *InstanceStatus { } // The timeline of the instance lifecycle. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceTimeline type InstanceTimeline struct { _ struct{} `type:"structure"` @@ -6620,7 +6555,6 @@ func (s *InstanceTimeline) SetReadyDateTime(v time.Time) *InstanceTimeline { // // The instance fleet configuration is available only in Amazon EMR versions // 4.8.0 and later, excluding 5.0.x versions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceTypeConfig type InstanceTypeConfig struct { _ struct{} `type:"structure"` @@ -6727,7 +6661,6 @@ func (s *InstanceTypeConfig) SetWeightedCapacity(v int64) *InstanceTypeConfig { // // The instance fleet configuration is available only in Amazon EMR versions // 4.8.0 and later, excluding 5.0.x versions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/InstanceTypeSpecification type InstanceTypeSpecification struct { _ struct{} `type:"structure"` @@ -6815,7 +6748,6 @@ func (s *InstanceTypeSpecification) SetWeightedCapacity(v int64) *InstanceTypeSp } // A description of a cluster (job flow). -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/JobFlowDetail type JobFlowDetail struct { _ struct{} `type:"structure"` @@ -6991,7 +6923,6 @@ func (s *JobFlowDetail) SetVisibleToAllUsers(v bool) *JobFlowDetail { } // Describes the status of the cluster (job flow). -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/JobFlowExecutionStatusDetail type JobFlowExecutionStatusDetail struct { _ struct{} `type:"structure"` @@ -7070,7 +7001,6 @@ func (s *JobFlowExecutionStatusDetail) SetState(v string) *JobFlowExecutionStatu // InstanceFleets, which is the recommended configuration. They cannot be used // together. You may also have MasterInstanceType, SlaveInstanceType, and InstanceCount // (all three must be present), but we don't recommend this configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/JobFlowInstancesConfig type JobFlowInstancesConfig struct { _ struct{} `type:"structure"` @@ -7304,7 +7234,6 @@ func (s *JobFlowInstancesConfig) SetTerminationProtected(v bool) *JobFlowInstanc // Specify the type of Amazon EC2 instances that the cluster (job flow) runs // on. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/JobFlowInstancesDetail type JobFlowInstancesDetail struct { _ struct{} `type:"structure"` @@ -7459,7 +7388,6 @@ func (s *JobFlowInstancesDetail) SetTerminationProtected(v bool) *JobFlowInstanc // using a security configuration. For more information see Use Kerberos Authentication // (http://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html) // in the EMR Management Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/KerberosAttributes type KerberosAttributes struct { _ struct{} `type:"structure"` @@ -7546,7 +7474,6 @@ func (s *KerberosAttributes) SetRealm(v string) *KerberosAttributes { } // A key value pair. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/KeyValue type KeyValue struct { _ struct{} `type:"structure"` @@ -7580,7 +7507,6 @@ func (s *KeyValue) SetValue(v string) *KeyValue { } // This input determines which bootstrap actions to retrieve. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListBootstrapActionsInput type ListBootstrapActionsInput struct { _ struct{} `type:"structure"` @@ -7629,7 +7555,6 @@ func (s *ListBootstrapActionsInput) SetMarker(v string) *ListBootstrapActionsInp } // This output contains the bootstrap actions detail. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListBootstrapActionsOutput type ListBootstrapActionsOutput struct { _ struct{} `type:"structure"` @@ -7664,7 +7589,6 @@ func (s *ListBootstrapActionsOutput) SetMarker(v string) *ListBootstrapActionsOu // This input determines how the ListClusters action filters the list of clusters // that it returns. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListClustersInput type ListClustersInput struct { _ struct{} `type:"structure"` @@ -7717,7 +7641,6 @@ func (s *ListClustersInput) SetMarker(v string) *ListClustersInput { // This contains a ClusterSummaryList with the cluster details; for example, // the cluster IDs, names, and status. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListClustersOutput type ListClustersOutput struct { _ struct{} `type:"structure"` @@ -7750,7 +7673,6 @@ func (s *ListClustersOutput) SetMarker(v string) *ListClustersOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceFleetsInput type ListInstanceFleetsInput struct { _ struct{} `type:"structure"` @@ -7798,7 +7720,6 @@ func (s *ListInstanceFleetsInput) SetMarker(v string) *ListInstanceFleetsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceFleetsOutput type ListInstanceFleetsOutput struct { _ struct{} `type:"structure"` @@ -7832,7 +7753,6 @@ func (s *ListInstanceFleetsOutput) SetMarker(v string) *ListInstanceFleetsOutput } // This input determines which instance groups to retrieve. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceGroupsInput type ListInstanceGroupsInput struct { _ struct{} `type:"structure"` @@ -7881,7 +7801,6 @@ func (s *ListInstanceGroupsInput) SetMarker(v string) *ListInstanceGroupsInput { } // This input determines which instance groups to retrieve. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstanceGroupsOutput type ListInstanceGroupsOutput struct { _ struct{} `type:"structure"` @@ -7915,7 +7834,6 @@ func (s *ListInstanceGroupsOutput) SetMarker(v string) *ListInstanceGroupsOutput } // This input determines which instances to list. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstancesInput type ListInstancesInput struct { _ struct{} `type:"structure"` @@ -8010,7 +7928,6 @@ func (s *ListInstancesInput) SetMarker(v string) *ListInstancesInput { } // This output contains the list of instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListInstancesOutput type ListInstancesOutput struct { _ struct{} `type:"structure"` @@ -8043,7 +7960,6 @@ func (s *ListInstancesOutput) SetMarker(v string) *ListInstancesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSecurityConfigurationsInput type ListSecurityConfigurationsInput struct { _ struct{} `type:"structure"` @@ -8067,7 +7983,6 @@ func (s *ListSecurityConfigurationsInput) SetMarker(v string) *ListSecurityConfi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListSecurityConfigurationsOutput type ListSecurityConfigurationsOutput struct { _ struct{} `type:"structure"` @@ -8103,7 +8018,6 @@ func (s *ListSecurityConfigurationsOutput) SetSecurityConfigurations(v []*Securi } // This input determines which steps to list. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStepsInput type ListStepsInput struct { _ struct{} `type:"structure"` @@ -8171,7 +8085,6 @@ func (s *ListStepsInput) SetStepStates(v []*string) *ListStepsInput { // This output contains the list of steps returned in reverse order. This means // that the last step is the first element in the list. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ListStepsOutput type ListStepsOutput struct { _ struct{} `type:"structure"` @@ -8209,7 +8122,6 @@ func (s *ListStepsOutput) SetSteps(v []*StepSummary) *ListStepsOutput { // Key is JobFlowID and Value is a variable representing the cluster ID, which // is ${emr.clusterId}. This enables the rule to bootstrap when the cluster // ID becomes available. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/MetricDimension type MetricDimension struct { _ struct{} `type:"structure"` @@ -8242,7 +8154,6 @@ func (s *MetricDimension) SetValue(v string) *MetricDimension { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceFleetInput type ModifyInstanceFleetInput struct { _ struct{} `type:"structure"` @@ -8300,7 +8211,6 @@ func (s *ModifyInstanceFleetInput) SetInstanceFleet(v *InstanceFleetModifyConfig return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceFleetOutput type ModifyInstanceFleetOutput struct { _ struct{} `type:"structure"` } @@ -8316,7 +8226,6 @@ func (s ModifyInstanceFleetOutput) GoString() string { } // Change the size of some instance groups. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceGroupsInput type ModifyInstanceGroupsInput struct { _ struct{} `type:"structure"` @@ -8369,7 +8278,6 @@ func (s *ModifyInstanceGroupsInput) SetInstanceGroups(v []*InstanceGroupModifyCo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ModifyInstanceGroupsOutput type ModifyInstanceGroupsOutput struct { _ struct{} `type:"structure"` } @@ -8385,7 +8293,6 @@ func (s ModifyInstanceGroupsOutput) GoString() string { } // The Amazon EC2 Availability Zone configuration of the cluster (job flow). -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PlacementType type PlacementType struct { _ struct{} `type:"structure"` @@ -8426,7 +8333,6 @@ func (s *PlacementType) SetAvailabilityZones(v []*string) *PlacementType { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoScalingPolicyInput type PutAutoScalingPolicyInput struct { _ struct{} `type:"structure"` @@ -8500,7 +8406,6 @@ func (s *PutAutoScalingPolicyInput) SetInstanceGroupId(v string) *PutAutoScaling return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/PutAutoScalingPolicyOutput type PutAutoScalingPolicyOutput struct { _ struct{} `type:"structure"` @@ -8543,7 +8448,6 @@ func (s *PutAutoScalingPolicyOutput) SetInstanceGroupId(v string) *PutAutoScalin return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoScalingPolicyInput type RemoveAutoScalingPolicyInput struct { _ struct{} `type:"structure"` @@ -8597,7 +8501,6 @@ func (s *RemoveAutoScalingPolicyInput) SetInstanceGroupId(v string) *RemoveAutoS return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveAutoScalingPolicyOutput type RemoveAutoScalingPolicyOutput struct { _ struct{} `type:"structure"` } @@ -8613,7 +8516,6 @@ func (s RemoveAutoScalingPolicyOutput) GoString() string { } // This input identifies a cluster and a list of tags to remove. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveTagsInput type RemoveTagsInput struct { _ struct{} `type:"structure"` @@ -8668,7 +8570,6 @@ func (s *RemoveTagsInput) SetTagKeys(v []*string) *RemoveTagsInput { } // This output indicates the result of removing tags from a resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RemoveTagsOutput type RemoveTagsOutput struct { _ struct{} `type:"structure"` } @@ -8684,7 +8585,6 @@ func (s RemoveTagsOutput) GoString() string { } // Input to the RunJobFlow operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RunJobFlowInput type RunJobFlowInput struct { _ struct{} `type:"structure"` @@ -9051,7 +8951,6 @@ func (s *RunJobFlowInput) SetVisibleToAllUsers(v bool) *RunJobFlowInput { } // The result of the RunJobFlow operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/RunJobFlowOutput type RunJobFlowOutput struct { _ struct{} `type:"structure"` @@ -9077,7 +8976,6 @@ func (s *RunJobFlowOutput) SetJobFlowId(v string) *RunJobFlowOutput { // The type of adjustment the automatic scaling activity makes when triggered, // and the periodicity of the adjustment. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ScalingAction type ScalingAction struct { _ struct{} `type:"structure"` @@ -9135,7 +9033,6 @@ func (s *ScalingAction) SetSimpleScalingPolicyConfiguration(v *SimpleScalingPoli // The upper and lower EC2 instance limits for an automatic scaling policy. // Automatic scaling activities triggered by automatic scaling rules will not // cause an instance group to grow above or below these limits. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ScalingConstraints type ScalingConstraints struct { _ struct{} `type:"structure"` @@ -9196,7 +9093,6 @@ func (s *ScalingConstraints) SetMinCapacity(v int64) *ScalingConstraints { // CloudWatch metric alarm that triggers activity, how EC2 instances are added // or removed, and the periodicity of adjustments. The automatic scaling policy // for an instance group can comprise one or more automatic scaling rules. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ScalingRule type ScalingRule struct { _ struct{} `type:"structure"` @@ -9285,7 +9181,6 @@ func (s *ScalingRule) SetTrigger(v *ScalingTrigger) *ScalingRule { } // The conditions that trigger an automatic scaling activity. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ScalingTrigger type ScalingTrigger struct { _ struct{} `type:"structure"` @@ -9331,7 +9226,6 @@ func (s *ScalingTrigger) SetCloudWatchAlarmDefinition(v *CloudWatchAlarmDefiniti } // Configuration of the script to run during a bootstrap action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ScriptBootstrapActionConfig type ScriptBootstrapActionConfig struct { _ struct{} `type:"structure"` @@ -9381,7 +9275,6 @@ func (s *ScriptBootstrapActionConfig) SetPath(v string) *ScriptBootstrapActionCo } // The creation date and time, and name, of a security configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SecurityConfigurationSummary type SecurityConfigurationSummary struct { _ struct{} `type:"structure"` @@ -9415,7 +9308,6 @@ func (s *SecurityConfigurationSummary) SetName(v string) *SecurityConfigurationS } // The input argument to the TerminationProtection operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetTerminationProtectionInput type SetTerminationProtectionInput struct { _ struct{} `type:"structure"` @@ -9472,7 +9364,6 @@ func (s *SetTerminationProtectionInput) SetTerminationProtected(v bool) *SetTerm return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetTerminationProtectionOutput type SetTerminationProtectionOutput struct { _ struct{} `type:"structure"` } @@ -9488,7 +9379,6 @@ func (s SetTerminationProtectionOutput) GoString() string { } // The input to the SetVisibleToAllUsers action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetVisibleToAllUsersInput type SetVisibleToAllUsersInput struct { _ struct{} `type:"structure"` @@ -9545,7 +9435,6 @@ func (s *SetVisibleToAllUsersInput) SetVisibleToAllUsers(v bool) *SetVisibleToAl return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SetVisibleToAllUsersOutput type SetVisibleToAllUsersOutput struct { _ struct{} `type:"structure"` } @@ -9562,7 +9451,6 @@ func (s SetVisibleToAllUsersOutput) GoString() string { // Policy for customizing shrink operations. Allows configuration of decommissioning // timeout and targeted instance shrinking. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/ShrinkPolicy type ShrinkPolicy struct { _ struct{} `type:"structure"` @@ -9600,7 +9488,6 @@ func (s *ShrinkPolicy) SetInstanceResizePolicy(v *InstanceResizePolicy) *ShrinkP // An automatic scaling configuration, which describes how the policy adds or // removes instances, the cooldown period, and the number of EC2 instances that // will be added each time the CloudWatch metric alarm condition is satisfied. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SimpleScalingPolicyConfiguration type SimpleScalingPolicyConfiguration struct { _ struct{} `type:"structure"` @@ -9680,7 +9567,6 @@ func (s *SimpleScalingPolicyConfiguration) SetScalingAdjustment(v int64) *Simple // // The instance fleet configuration is available only in Amazon EMR versions // 4.8.0 and later, excluding 5.0.x versions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SpotProvisioningSpecification type SpotProvisioningSpecification struct { _ struct{} `type:"structure"` @@ -9757,7 +9643,6 @@ func (s *SpotProvisioningSpecification) SetTimeoutDurationMinutes(v int64) *Spot } // This represents a step in a cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/Step type Step struct { _ struct{} `type:"structure"` @@ -9819,7 +9704,6 @@ func (s *Step) SetStatus(v *StepStatus) *Step { } // Specification of a cluster (job flow) step. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StepConfig type StepConfig struct { _ struct{} `type:"structure"` @@ -9887,7 +9771,6 @@ func (s *StepConfig) SetName(v string) *StepConfig { } // Combines the execution state and configuration of a step. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StepDetail type StepDetail struct { _ struct{} `type:"structure"` @@ -9925,7 +9808,6 @@ func (s *StepDetail) SetStepConfig(v *StepConfig) *StepDetail { } // The execution state of a step. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StepExecutionStatusDetail type StepExecutionStatusDetail struct { _ struct{} `type:"structure"` @@ -9990,7 +9872,6 @@ func (s *StepExecutionStatusDetail) SetState(v string) *StepExecutionStatusDetai } // The details of the step state change reason. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StepStateChangeReason type StepStateChangeReason struct { _ struct{} `type:"structure"` @@ -10025,7 +9906,6 @@ func (s *StepStateChangeReason) SetMessage(v string) *StepStateChangeReason { } // The execution status details of the cluster step. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StepStatus type StepStatus struct { _ struct{} `type:"structure"` @@ -10078,7 +9958,6 @@ func (s *StepStatus) SetTimeline(v *StepTimeline) *StepStatus { } // The summary of the cluster step. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StepSummary type StepSummary struct { _ struct{} `type:"structure"` @@ -10140,7 +10019,6 @@ func (s *StepSummary) SetStatus(v *StepStatus) *StepSummary { } // The timeline of the cluster step lifecycle. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/StepTimeline type StepTimeline struct { _ struct{} `type:"structure"` @@ -10185,7 +10063,6 @@ func (s *StepTimeline) SetStartDateTime(v time.Time) *StepTimeline { // The list of supported product configurations which allow user-supplied arguments. // EMR accepts these arguments and forwards them to the corresponding installation // script as bootstrap action arguments. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/SupportedProductConfig type SupportedProductConfig struct { _ struct{} `type:"structure"` @@ -10222,7 +10099,6 @@ func (s *SupportedProductConfig) SetName(v string) *SupportedProductConfig { // with an Amazon EMR resource. Tags make it easier to associate clusters in // various ways, such as grouping clusters to track your Amazon EMR resource // allocation costs. For more information, see Tag Clusters (http://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-tags.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/Tag type Tag struct { _ struct{} `type:"structure"` @@ -10258,7 +10134,6 @@ func (s *Tag) SetValue(v string) *Tag { } // Input to the TerminateJobFlows operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/TerminateJobFlowsInput type TerminateJobFlowsInput struct { _ struct{} `type:"structure"` @@ -10297,7 +10172,6 @@ func (s *TerminateJobFlowsInput) SetJobFlowIds(v []*string) *TerminateJobFlowsIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/TerminateJobFlowsOutput type TerminateJobFlowsOutput struct { _ struct{} `type:"structure"` } @@ -10314,7 +10188,6 @@ func (s TerminateJobFlowsOutput) GoString() string { // EBS volume specifications such as volume type, IOPS, and size (GiB) that // will be requested for the EBS volume attached to an EC2 instance in the cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31/VolumeSpecification type VolumeSpecification struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/firehose/api.go b/vendor/github.com/aws/aws-sdk-go/service/firehose/api.go index ff22c6876..c4f0a8add 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/firehose/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/firehose/api.go @@ -790,7 +790,6 @@ func (c *Firehose) UpdateDestinationWithContext(ctx aws.Context, input *UpdateDe // Describes hints for the buffering to perform before delivering data to the // destination. Please note that these options are treated as hints, and therefore // Kinesis Firehose may choose to use different values when it is optimal. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/BufferingHints type BufferingHints struct { _ struct{} `type:"structure"` @@ -846,7 +845,6 @@ func (s *BufferingHints) SetSizeInMBs(v int64) *BufferingHints { } // Describes the Amazon CloudWatch logging options for your delivery stream. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/CloudWatchLoggingOptions type CloudWatchLoggingOptions struct { _ struct{} `type:"structure"` @@ -891,7 +889,6 @@ func (s *CloudWatchLoggingOptions) SetLogStreamName(v string) *CloudWatchLogging } // Describes a COPY command for Amazon Redshift. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/CopyCommand type CopyCommand struct { _ struct{} `type:"structure"` @@ -970,7 +967,6 @@ func (s *CopyCommand) SetDataTableName(v string) *CopyCommand { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/CreateDeliveryStreamInput type CreateDeliveryStreamInput struct { _ struct{} `type:"structure"` @@ -1113,7 +1109,6 @@ func (s *CreateDeliveryStreamInput) SetSplunkDestinationConfiguration(v *SplunkD return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/CreateDeliveryStreamOutput type CreateDeliveryStreamOutput struct { _ struct{} `type:"structure"` @@ -1137,7 +1132,6 @@ func (s *CreateDeliveryStreamOutput) SetDeliveryStreamARN(v string) *CreateDeliv return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/DeleteDeliveryStreamInput type DeleteDeliveryStreamInput struct { _ struct{} `type:"structure"` @@ -1179,7 +1173,6 @@ func (s *DeleteDeliveryStreamInput) SetDeliveryStreamName(v string) *DeleteDeliv return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/DeleteDeliveryStreamOutput type DeleteDeliveryStreamOutput struct { _ struct{} `type:"structure"` } @@ -1195,7 +1188,6 @@ func (s DeleteDeliveryStreamOutput) GoString() string { } // Contains information about a delivery stream. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/DeliveryStreamDescription type DeliveryStreamDescription struct { _ struct{} `type:"structure"` @@ -1323,7 +1315,6 @@ func (s *DeliveryStreamDescription) SetVersionId(v string) *DeliveryStreamDescri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/DescribeDeliveryStreamInput type DescribeDeliveryStreamInput struct { _ struct{} `type:"structure"` @@ -1391,7 +1382,6 @@ func (s *DescribeDeliveryStreamInput) SetLimit(v int64) *DescribeDeliveryStreamI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/DescribeDeliveryStreamOutput type DescribeDeliveryStreamOutput struct { _ struct{} `type:"structure"` @@ -1418,7 +1408,6 @@ func (s *DescribeDeliveryStreamOutput) SetDeliveryStreamDescription(v *DeliveryS } // Describes the destination for a delivery stream. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/DestinationDescription type DestinationDescription struct { _ struct{} `type:"structure"` @@ -1491,7 +1480,6 @@ func (s *DestinationDescription) SetSplunkDestinationDescription(v *SplunkDestin // Describes the buffering to perform before delivering data to the Amazon ES // destination. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/ElasticsearchBufferingHints type ElasticsearchBufferingHints struct { _ struct{} `type:"structure"` @@ -1547,7 +1535,6 @@ func (s *ElasticsearchBufferingHints) SetSizeInMBs(v int64) *ElasticsearchBuffer } // Describes the configuration of a destination in Amazon ES. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/ElasticsearchDestinationConfiguration type ElasticsearchDestinationConfiguration struct { _ struct{} `type:"structure"` @@ -1740,7 +1727,6 @@ func (s *ElasticsearchDestinationConfiguration) SetTypeName(v string) *Elasticse } // The destination description in Amazon ES. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/ElasticsearchDestinationDescription type ElasticsearchDestinationDescription struct { _ struct{} `type:"structure"` @@ -1855,7 +1841,6 @@ func (s *ElasticsearchDestinationDescription) SetTypeName(v string) *Elasticsear } // Describes an update for a destination in Amazon ES. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/ElasticsearchDestinationUpdate type ElasticsearchDestinationUpdate struct { _ struct{} `type:"structure"` @@ -2008,7 +1993,6 @@ func (s *ElasticsearchDestinationUpdate) SetTypeName(v string) *ElasticsearchDes // Configures retry behavior in case Kinesis Firehose is unable to deliver documents // to Amazon ES. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/ElasticsearchRetryOptions type ElasticsearchRetryOptions struct { _ struct{} `type:"structure"` @@ -2037,7 +2021,6 @@ func (s *ElasticsearchRetryOptions) SetDurationInSeconds(v int64) *Elasticsearch } // Describes the encryption for a destination in Amazon S3. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/EncryptionConfiguration type EncryptionConfiguration struct { _ struct{} `type:"structure"` @@ -2087,7 +2070,6 @@ func (s *EncryptionConfiguration) SetNoEncryptionConfig(v string) *EncryptionCon } // Describes the configuration of a destination in Amazon S3. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/ExtendedS3DestinationConfiguration type ExtendedS3DestinationConfiguration struct { _ struct{} `type:"structure"` @@ -2244,7 +2226,6 @@ func (s *ExtendedS3DestinationConfiguration) SetS3BackupMode(v string) *Extended } // Describes a destination in Amazon S3. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/ExtendedS3DestinationDescription type ExtendedS3DestinationDescription struct { _ struct{} `type:"structure"` @@ -2365,7 +2346,6 @@ func (s *ExtendedS3DestinationDescription) SetS3BackupMode(v string) *ExtendedS3 } // Describes an update for a destination in Amazon S3. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/ExtendedS3DestinationUpdate type ExtendedS3DestinationUpdate struct { _ struct{} `type:"structure"` @@ -2512,7 +2492,6 @@ func (s *ExtendedS3DestinationUpdate) SetS3BackupUpdate(v *S3DestinationUpdate) } // Describes an encryption key for a destination in Amazon S3. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/KMSEncryptionConfig type KMSEncryptionConfig struct { _ struct{} `type:"structure"` @@ -2557,7 +2536,6 @@ func (s *KMSEncryptionConfig) SetAWSKMSKeyARN(v string) *KMSEncryptionConfig { // The stream and role ARNs for a Kinesis stream used as the source for a delivery // stream. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/KinesisStreamSourceConfiguration type KinesisStreamSourceConfiguration struct { _ struct{} `type:"structure"` @@ -2618,7 +2596,6 @@ func (s *KinesisStreamSourceConfiguration) SetRoleARN(v string) *KinesisStreamSo // Details about a Kinesis stream used as the source for a Kinesis Firehose // delivery stream. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/KinesisStreamSourceDescription type KinesisStreamSourceDescription struct { _ struct{} `type:"structure"` @@ -2661,7 +2638,6 @@ func (s *KinesisStreamSourceDescription) SetRoleARN(v string) *KinesisStreamSour return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/ListDeliveryStreamsInput type ListDeliveryStreamsInput struct { _ struct{} `type:"structure"` @@ -2727,7 +2703,6 @@ func (s *ListDeliveryStreamsInput) SetLimit(v int64) *ListDeliveryStreamsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/ListDeliveryStreamsOutput type ListDeliveryStreamsOutput struct { _ struct{} `type:"structure"` @@ -2765,7 +2740,6 @@ func (s *ListDeliveryStreamsOutput) SetHasMoreDeliveryStreams(v bool) *ListDeliv } // Describes a data processing configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/ProcessingConfiguration type ProcessingConfiguration struct { _ struct{} `type:"structure"` @@ -2819,7 +2793,6 @@ func (s *ProcessingConfiguration) SetProcessors(v []*Processor) *ProcessingConfi } // Describes a data processor. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/Processor type Processor struct { _ struct{} `type:"structure"` @@ -2878,7 +2851,6 @@ func (s *Processor) SetType(v string) *Processor { } // Describes the processor parameter. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/ProcessorParameter type ProcessorParameter struct { _ struct{} `type:"structure"` @@ -2934,7 +2906,6 @@ func (s *ProcessorParameter) SetParameterValue(v string) *ProcessorParameter { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/PutRecordBatchInput type PutRecordBatchInput struct { _ struct{} `type:"structure"` @@ -3003,7 +2974,6 @@ func (s *PutRecordBatchInput) SetRecords(v []*Record) *PutRecordBatchInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/PutRecordBatchOutput type PutRecordBatchOutput struct { _ struct{} `type:"structure"` @@ -3045,7 +3015,6 @@ func (s *PutRecordBatchOutput) SetRequestResponses(v []*PutRecordBatchResponseEn // If the record is successfully added to your delivery stream, it receives // a record ID. If the record fails to be added to your delivery stream, the // result includes an error code and an error message. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/PutRecordBatchResponseEntry type PutRecordBatchResponseEntry struct { _ struct{} `type:"structure"` @@ -3087,7 +3056,6 @@ func (s *PutRecordBatchResponseEntry) SetRecordId(v string) *PutRecordBatchRespo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/PutRecordInput type PutRecordInput struct { _ struct{} `type:"structure"` @@ -3148,7 +3116,6 @@ func (s *PutRecordInput) SetRecord(v *Record) *PutRecordInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/PutRecordOutput type PutRecordOutput struct { _ struct{} `type:"structure"` @@ -3175,7 +3142,6 @@ func (s *PutRecordOutput) SetRecordId(v string) *PutRecordOutput { } // The unit of data in a delivery stream. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/Record type Record struct { _ struct{} `type:"structure"` @@ -3218,7 +3184,6 @@ func (s *Record) SetData(v []byte) *Record { } // Describes the configuration of a destination in Amazon Redshift. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/RedshiftDestinationConfiguration type RedshiftDestinationConfiguration struct { _ struct{} `type:"structure"` @@ -3411,7 +3376,6 @@ func (s *RedshiftDestinationConfiguration) SetUsername(v string) *RedshiftDestin } // Describes a destination in Amazon Redshift. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/RedshiftDestinationDescription type RedshiftDestinationDescription struct { _ struct{} `type:"structure"` @@ -3528,7 +3492,6 @@ func (s *RedshiftDestinationDescription) SetUsername(v string) *RedshiftDestinat } // Describes an update for a destination in Amazon Redshift. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/RedshiftDestinationUpdate type RedshiftDestinationUpdate struct { _ struct{} `type:"structure"` @@ -3691,7 +3654,6 @@ func (s *RedshiftDestinationUpdate) SetUsername(v string) *RedshiftDestinationUp // Configures retry behavior in case Kinesis Firehose is unable to deliver documents // to Amazon Redshift. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/RedshiftRetryOptions type RedshiftRetryOptions struct { _ struct{} `type:"structure"` @@ -3720,7 +3682,6 @@ func (s *RedshiftRetryOptions) SetDurationInSeconds(v int64) *RedshiftRetryOptio } // Describes the configuration of a destination in Amazon S3. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/S3DestinationConfiguration type S3DestinationConfiguration struct { _ struct{} `type:"structure"` @@ -3845,7 +3806,6 @@ func (s *S3DestinationConfiguration) SetRoleARN(v string) *S3DestinationConfigur } // Describes a destination in Amazon S3. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/S3DestinationDescription type S3DestinationDescription struct { _ struct{} `type:"structure"` @@ -3940,7 +3900,6 @@ func (s *S3DestinationDescription) SetRoleARN(v string) *S3DestinationDescriptio } // Describes an update for a destination in Amazon S3. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/S3DestinationUpdate type S3DestinationUpdate struct { _ struct{} `type:"structure"` @@ -4056,7 +4015,6 @@ func (s *S3DestinationUpdate) SetRoleARN(v string) *S3DestinationUpdate { // Details about a Kinesis stream used as the source for a Kinesis Firehose // delivery stream. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/SourceDescription type SourceDescription struct { _ struct{} `type:"structure"` @@ -4081,7 +4039,6 @@ func (s *SourceDescription) SetKinesisStreamSourceDescription(v *KinesisStreamSo } // Describes the configuration of a destination in Splunk. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/SplunkDestinationConfiguration type SplunkDestinationConfiguration struct { _ struct{} `type:"structure"` @@ -4231,7 +4188,6 @@ func (s *SplunkDestinationConfiguration) SetS3Configuration(v *S3DestinationConf } // Describes a destination in Splunk. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/SplunkDestinationDescription type SplunkDestinationDescription struct { _ struct{} `type:"structure"` @@ -4338,7 +4294,6 @@ func (s *SplunkDestinationDescription) SetS3DestinationDescription(v *S3Destinat } // Describes an update for a destination in Splunk. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/SplunkDestinationUpdate type SplunkDestinationUpdate struct { _ struct{} `type:"structure"` @@ -4469,7 +4424,6 @@ func (s *SplunkDestinationUpdate) SetS3Update(v *S3DestinationUpdate) *SplunkDes // Configures retry behavior in case Kinesis Firehose is unable to deliver documents // to Splunk or if it doesn't receive an acknowledgment from Splunk. -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/SplunkRetryOptions type SplunkRetryOptions struct { _ struct{} `type:"structure"` @@ -4496,7 +4450,6 @@ func (s *SplunkRetryOptions) SetDurationInSeconds(v int64) *SplunkRetryOptions { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/UpdateDestinationInput type UpdateDestinationInput struct { _ struct{} `type:"structure"` @@ -4647,7 +4600,6 @@ func (s *UpdateDestinationInput) SetSplunkDestinationUpdate(v *SplunkDestination return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/UpdateDestinationOutput type UpdateDestinationOutput struct { _ struct{} `type:"structure"` } diff --git a/vendor/github.com/aws/aws-sdk-go/service/gamelift/api.go b/vendor/github.com/aws/aws-sdk-go/service/gamelift/api.go index 7aa602357..0e7ff5fbe 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/gamelift/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/gamelift/api.go @@ -309,24 +309,43 @@ func (c *GameLift) CreateBuildRequest(input *CreateBuildInput) (req *request.Req // CreateBuild API operation for Amazon GameLift. // -// Creates a new Amazon GameLift build from a set of game server binary files -// stored in an Amazon Simple Storage Service (Amazon S3) location. To use this -// API call, create a .zip file containing all of the files for the build and -// store it in an Amazon S3 bucket under your AWS account. For help on packaging -// your build files and creating a build, see Uploading Your Game to Amazon -// GameLift (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-intro.html). +// Creates a new Amazon GameLift build record for your game server binary files +// and points to the location of your game server build files in an Amazon Simple +// Storage Service (Amazon S3) location. // -// Use this API action ONLY if you are storing your game build files in an Amazon -// S3 bucket. To create a build using files stored locally, use the CLI command -// upload-build (http://docs.aws.amazon.com/cli/latest/reference/gamelift/upload-build.html), -// which uploads the build files from a file location you specify. +// Game server binaries must be combined into a .zip file for use with Amazon +// GameLift. See Uploading Your Game (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-intro.html) +// for more information. // -// To create a new build using CreateBuild, identify the storage location and -// operating system of your game build. You also have the option of specifying -// a build name and version. If successful, this action creates a new build -// record with an unique build ID and in INITIALIZED status. Use the API call -// DescribeBuild to check the status of your build. A build must be in READY -// status before it can be used to create fleets to host your game. +// To create new builds quickly and easily, use the AWS CLI command upload-build +// (http://docs.aws.amazon.com/cli/latest/reference/gamelift/upload-build.html). +// This helper command uploads your build and creates a new build record in +// one step, and automatically handles the necessary permissions. See Upload +// Build Files to Amazon GameLift (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-cli-uploading.html) +// for more help. +// +// The CreateBuild operation should be used only when you need to manually upload +// your build files, as in the following scenarios: +// +// * Store a build file in an Amazon S3 bucket under your own AWS account. +// To use this option, you must first give Amazon GameLift access to that +// Amazon S3 bucket. See Create a Build with Files in Amazon S3 (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-cli-uploading.html#gamelift-build-cli-uploading-create-build) +// for detailed help. To create a new build record using files in your Amazon +// S3 bucket, call CreateBuild and specify a build name, operating system, +// and the storage location of your game build. +// +// * Upload a build file directly to Amazon GameLift's Amazon S3 account. +// To use this option, you first call CreateBuild with a build name and operating +// system. This action creates a new build record and returns an Amazon S3 +// storage location (bucket and key only) and temporary access credentials. +// Use the credentials to manually upload your build file to the storage +// location (see the Amazon S3 topic Uploading Objects (http://docs.aws.amazon.com/AmazonS3/latest/dev/UploadingObjects.html)). +// You can upload files to a location only once. +// +// If successful, this operation creates a new build record with a unique build +// ID and places it in INITIALIZED status. You can use DescribeBuild to check +// the status of your build. A build must be in READY status before it can be +// used to create fleets. // // Build-related operations include: // @@ -2773,7 +2792,7 @@ func (c *GameLift) DescribeBuildRequest(input *DescribeBuildInput) (req *request // DescribeBuild API operation for Amazon GameLift. // -// Retrieves properties for a build. To get a build record, specify a build +// Retrieves properties for a build. To request a build record, specify a build // ID. If successful, an object containing the build properties is returned. // // Build-related operations include: @@ -4320,19 +4339,18 @@ func (c *GameLift) DescribeMatchmakingRequest(input *DescribeMatchmakingInput) ( // DescribeMatchmaking API operation for Amazon GameLift. // -// Retrieves a set of one or more matchmaking tickets. Use this operation to -// retrieve ticket information, including status and--once a successful match -// is made--acquire connection information for the resulting new game session. +// Retrieves one or more matchmaking tickets. Use this operation to retrieve +// ticket information, including status and--once a successful match is made--acquire +// connection information for the resulting new game session. // // You can use this operation to track the progress of matchmaking requests // (through polling) as an alternative to using event notifications. See more // details on tracking matchmaking requests through polling or notifications // in StartMatchmaking. // -// You can request data for a one or a list of ticket IDs. If the request is -// successful, a ticket object is returned for each requested ID. When specifying -// a list of ticket IDs, objects are returned only for tickets that currently -// exist. +// To request matchmaking tickets, provide a list of up to 10 ticket IDs. If +// the request is successful, a ticket object is returned for each requested +// ID that currently exists. // // Matchmaking-related operations include: // @@ -6005,9 +6023,13 @@ func (c *GameLift) RequestUploadCredentialsRequest(input *RequestUploadCredentia // RequestUploadCredentials API operation for Amazon GameLift. // -// This API call is not currently in use. Retrieves a fresh set of upload credentials -// and the assigned Amazon S3 storage location for a specific build. Valid credentials -// are required to upload your game build files to Amazon S3. +// Retrieves a fresh set of credentials for use when uploading a new set of +// game build files to Amazon GameLift's Amazon S3. This is done as part of +// the build creation process; see CreateBuild. +// +// To request new credentials, specify the build ID as returned with an initial +// CreateBuild request. If successful, a new set of credentials are returned, +// along with the S3 storage location associated with the build ID. // // 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 @@ -6212,14 +6234,9 @@ func (c *GameLift) SearchGameSessionsRequest(input *SearchGameSessionsInput) (re // SearchGameSessions API operation for Amazon GameLift. // -// Retrieves a set of game sessions that match a set of search criteria and -// sorts them in a specified order. A game session search is limited to a single -// fleet. Search results include only game sessions that are in ACTIVE status. -// If you need to retrieve game sessions with a status other than active, use -// DescribeGameSessions. If you need to retrieve the protection policy for each -// game session, use DescribeGameSessionDetails. -// -// You can search or sort by the following game session attributes: +// Retrieves all active game sessions that match a set of search criteria and +// sorts them in a specified order. You can search or sort by the following +// game session attributes: // // * gameSessionId -- Unique identifier for the game session. You can use // either a GameSessionId or GameSessionArn value. @@ -6229,6 +6246,17 @@ func (c *GameLift) SearchGameSessionsRequest(input *SearchGameSessionsInput) (re // with UpdateGameSession. Game session names do not need to be unique to // a game session. // +// * gameSessionProperties -- Custom data defined in a game session's GameProperty +// parameter. GameProperty values are stored as key:value pairs; the filter +// expression must indicate the key and a string to search the data values +// for. For example, to search for game sessions with custom data containing +// the key:value pair "gameMode:brawl", specify the following: gameSessionProperties.gameMode +// = "brawl". All custom data values are searched as strings. +// +// * maximumSessions -- Maximum number of player sessions allowed for a game +// session. This value is set when requesting a new game session with CreateGameSession +// or updating with UpdateGameSession. +// // * creationTimeMillis -- Value indicating when a game session was created. // It is expressed in Unix time as milliseconds. // @@ -6236,26 +6264,26 @@ func (c *GameLift) SearchGameSessionsRequest(input *SearchGameSessionsInput) (re // session. This value changes rapidly as players join the session or drop // out. // -// * maximumSessions -- Maximum number of player sessions allowed for a game -// session. This value is set when requesting a new game session with CreateGameSession -// or updating with UpdateGameSession. -// // * hasAvailablePlayerSessions -- Boolean value indicating whether a game -// session has reached its maximum number of players. When searching with -// this attribute, the search value must be true or false. It is highly recommended +// session has reached its maximum number of players. It is highly recommended // that all search requests include this filter attribute to optimize search // performance and return only sessions that players can join. // -// To search or sort, specify either a fleet ID or an alias ID, and provide -// a search filter expression, a sort expression, or both. Use the pagination -// parameters to retrieve results as a set of sequential pages. If successful, -// a collection of GameSession objects matching the request is returned. -// // Returned values for playerSessionCount and hasAvailablePlayerSessions change // quickly as players join sessions and others drop out. Results should be considered // a snapshot in time. Be sure to refresh search results often, and handle sessions // that fill up before a player can join. // +// To search or sort, specify either a fleet ID or an alias ID, and provide +// a search filter expression, a sort expression, or both. If successful, a +// collection of GameSession objects matching the request is returned. Use the +// pagination parameters to retrieve results as a set of sequential pages. +// +// You can search for game sessions one fleet at a time only. To find game sessions +// across multiple fleets, you must search each fleet separately and combine +// the results. This search feature finds only game sessions that are in ACTIVE +// status. To locate games in statuses other than active, use DescribeGameSessionDetails. +// // Game-session-related operations include: // // * CreateGameSession @@ -6485,6 +6513,132 @@ func (c *GameLift) StartGameSessionPlacementWithContext(ctx aws.Context, input * return out, req.Send() } +const opStartMatchBackfill = "StartMatchBackfill" + +// StartMatchBackfillRequest generates a "aws/request.Request" representing the +// client's request for the StartMatchBackfill operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 StartMatchBackfill for more information on using the StartMatchBackfill +// 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 StartMatchBackfillRequest method. +// req, resp := client.StartMatchBackfillRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StartMatchBackfill +func (c *GameLift) StartMatchBackfillRequest(input *StartMatchBackfillInput) (req *request.Request, output *StartMatchBackfillOutput) { + op := &request.Operation{ + Name: opStartMatchBackfill, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &StartMatchBackfillInput{} + } + + output = &StartMatchBackfillOutput{} + req = c.newRequest(op, input, output) + return +} + +// StartMatchBackfill API operation for Amazon GameLift. +// +// Finds new players to fill open slots in an existing game session. This operation +// can be used to add players to matched games that start with fewer than the +// maximum number of players or to replace players when they drop out. By backfilling +// with the same matchmaker used to create the original match, you ensure that +// new players meet the match criteria and maintain a consistent experience +// throughout the game session. You can backfill a match anytime after a game +// session has been created. +// +// To request a match backfill, specify a unique ticket ID, the existing game +// session's ARN, a matchmaking configuration, and a set of data that describes +// all current players in the game session. If successful, a match backfill +// ticket is created and returned with status set to QUEUED. The ticket is placed +// in the matchmaker's ticket pool and processed. Track the status of the ticket +// to respond as needed. For more detail how to set up backfilling, see Set +// up Match Backfilling (http://docs.aws.amazon.com/gamelift/latest/developerguide/match-backfill.html). +// +// The process of finding backfill matches is essentially identical to the initial +// matchmaking process. The matchmaker searches the pool and groups tickets +// together to form potential matches, allowing only one backfill ticket per +// potential match. Once the a match is formed, the matchmaker creates player +// sessions for the new players. All tickets in the match are updated with the +// game session's connection information, and the GameSession object is updated +// to include matchmaker data on the new players. For more detail on how match +// backfill requests are processed, see How Amazon GameLift FlexMatch Works +// (http://docs.aws.amazon.com/gamelift/latest/developerguide/match-intro.html). +// +// Matchmaking-related operations include: +// +// * StartMatchmaking +// +// * DescribeMatchmaking +// +// * StopMatchmaking +// +// * AcceptMatch +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon GameLift's +// API operation StartMatchBackfill for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidRequestException "InvalidRequestException" +// One or more parameter values in the request are invalid. Correct the invalid +// parameter values before retrying. +// +// * ErrCodeNotFoundException "NotFoundException" +// A service resource associated with the request could not be found. Clients +// should not retry such requests. +// +// * ErrCodeInternalServiceException "InternalServiceException" +// The service encountered an unrecoverable internal failure while processing +// the request. Clients can retry such requests immediately or after a waiting +// period. +// +// * ErrCodeUnsupportedRegionException "UnsupportedRegionException" +// The requested operation is not supported in the region specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StartMatchBackfill +func (c *GameLift) StartMatchBackfill(input *StartMatchBackfillInput) (*StartMatchBackfillOutput, error) { + req, out := c.StartMatchBackfillRequest(input) + return out, req.Send() +} + +// StartMatchBackfillWithContext is the same as StartMatchBackfill with the addition of +// the ability to pass a context and additional request options. +// +// See StartMatchBackfill 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 *GameLift) StartMatchBackfillWithContext(ctx aws.Context, input *StartMatchBackfillInput, opts ...request.Option) (*StartMatchBackfillOutput, error) { + req, out := c.StartMatchBackfillRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opStartMatchmaking = "StartMatchmaking" // StartMatchmakingRequest generates a "aws/request.Request" representing the @@ -8161,7 +8315,6 @@ func (c *GameLift) ValidateMatchmakingRuleSetWithContext(ctx aws.Context, input } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/AcceptMatchInput type AcceptMatchInput struct { _ struct{} `type:"structure"` @@ -8233,7 +8386,6 @@ func (s *AcceptMatchInput) SetTicketId(v string) *AcceptMatchInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/AcceptMatchOutput type AcceptMatchOutput struct { _ struct{} `type:"structure"` } @@ -8263,7 +8415,6 @@ func (s AcceptMatchOutput) GoString() string { // * DeleteAlias // // * ResolveAlias -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/Alias type Alias struct { _ struct{} `type:"structure"` @@ -8344,11 +8495,10 @@ func (s *Alias) SetRoutingStrategy(v *RoutingStrategy) *Alias { return s } -// Values for use in Player attribute type:value pairs. This object lets you +// Values for use in Player attribute key:value pairs. This object lets you // specify an attribute value using any of the valid data types: string, number, // string array or data map. Each AttributeValue object can use only one of // the available properties. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/AttributeValue type AttributeValue struct { _ struct{} `type:"structure"` @@ -8358,8 +8508,8 @@ type AttributeValue struct { // For single string values. Maximum string length is 100 characters. S *string `min:"1" type:"string"` - // For a map of up to 10 type:value pairs. Maximum length for each string value - // is 100 characters. + // For a map of up to 10 data type:value pairs. Maximum length for each string + // value is 100 characters. SDM map[string]*float64 `type:"map"` // For a list of up to 10 strings. Maximum length for each string is 100 characters. @@ -8418,7 +8568,6 @@ func (s *AttributeValue) SetSL(v []*string) *AttributeValue { // Temporary access credentials used for uploading game build files to Amazon // GameLift. They are valid for a limited time. If they expire before you upload // your game build, get a new set by calling RequestUploadCredentials. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/AwsCredentials type AwsCredentials struct { _ struct{} `type:"structure"` @@ -8474,7 +8623,6 @@ func (s *AwsCredentials) SetSessionToken(v string) *AwsCredentials { // * UpdateBuild // // * DeleteBuild -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/Build type Build struct { _ struct{} `type:"structure"` @@ -8571,7 +8719,6 @@ func (s *Build) SetVersion(v string) *Build { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateAliasInput type CreateAliasInput struct { _ struct{} `type:"structure"` @@ -8641,7 +8788,6 @@ func (s *CreateAliasInput) SetRoutingStrategy(v *RoutingStrategy) *CreateAliasIn } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateAliasOutput type CreateAliasOutput struct { _ struct{} `type:"structure"` @@ -8666,7 +8812,6 @@ func (s *CreateAliasOutput) SetAlias(v *Alias) *CreateAliasOutput { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateBuildInput type CreateBuildInput struct { _ struct{} `type:"structure"` @@ -8677,15 +8822,17 @@ type CreateBuildInput struct { // Operating system that the game server binaries are built to run on. This // value determines the type of fleet resources that you can use for this build. // If your game build contains multiple executables, they all must run on the - // same operating system. + // same operating system. If an operating system is not specified when creating + // a build, Amazon GameLift uses the default value (WINDOWS_2012). This value + // cannot be changed later. OperatingSystem *string `type:"string" enum:"OperatingSystem"` - // Amazon S3 location of the game build files to be uploaded. The S3 bucket - // must be owned by the same AWS account that you're using to manage Amazon - // GameLift. It also must in the same region that you want to create a new build - // in. Before calling CreateBuild with this location, you must allow Amazon - // GameLift to access your Amazon S3 bucket (see Create a Build with Files in - // Amazon S3 (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-cli-uploading.html#gamelift-build-cli-uploading-create-build)). + // Information indicating where your game build files are stored. Use this parameter + // only when creating a build with files stored in an Amazon S3 bucket that + // you own. The storage location must specify an Amazon S3 bucket name and key, + // as well as a role ARN that you set up to allow Amazon GameLift to access + // your Amazon S3 bucket. The S3 bucket must be in the same region that you + // want to create a new build in. StorageLocation *S3Location `type:"structure"` // Version that is associated with this build. Version strings do not need to @@ -8749,17 +8896,19 @@ func (s *CreateBuildInput) SetVersion(v string) *CreateBuildInput { } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateBuildOutput type CreateBuildOutput struct { _ struct{} `type:"structure"` // The newly created build record, including a unique build ID and status. Build *Build `type:"structure"` - // Amazon S3 location specified in the request. + // Amazon S3 location for your game build file, including bucket name and key. StorageLocation *S3Location `type:"structure"` - // This element is not currently in use. + // This element is returned only when the operation is called without a storage + // location. It contains credentials to use when you are uploading a build file + // to an Amazon S3 bucket that is owned by Amazon GameLift. Credentials have + // a limited life span. To refresh these credentials, call RequestUploadCredentials. UploadCredentials *AwsCredentials `type:"structure"` } @@ -8792,7 +8941,6 @@ func (s *CreateBuildOutput) SetUploadCredentials(v *AwsCredentials) *CreateBuild } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateFleetInput type CreateFleetInput struct { _ struct{} `type:"structure"` @@ -8828,9 +8976,10 @@ type CreateFleetInput struct { // See more information in the Server API Reference (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api-ref.html#gamelift-sdk-server-api-ref-dataypes-process). LogPaths []*string `type:"list"` - // Names of metric groups to add this fleet to. Use an existing metric group - // name to add this fleet to the group. Or use a new name to create a new metric - // group. A fleet can only be included in one metric group at a time. + // Name of a metric group to add this fleet to. A metric group tracks metrics + // across all fleets in the group. Use an existing metric group name to add + // this fleet to the group, or use a new name to create a new metric group. + // A fleet can only be included in one metric group at a time. MetricGroups []*string `type:"list"` // Descriptive label that is associated with a fleet. Fleet names do not need @@ -9040,7 +9189,6 @@ func (s *CreateFleetInput) SetServerLaunchPath(v string) *CreateFleetInput { } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateFleetOutput type CreateFleetOutput struct { _ struct{} `type:"structure"` @@ -9065,7 +9213,6 @@ func (s *CreateFleetOutput) SetFleetAttributes(v *FleetAttributes) *CreateFleetO } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateGameSessionInput type CreateGameSessionInput struct { _ struct{} `type:"structure"` @@ -9083,16 +9230,14 @@ type CreateGameSessionInput struct { // reference either a fleet ID or alias ID, but not both. FleetId *string `type:"string"` - // Set of developer-defined properties for a game session, formatted as a set - // of type:value pairs. These properties are included in the GameSession object, - // which is passed to the game server with a request to start a new game session - // (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // Set of custom properties for a game session, formatted as key:value pairs. + // These properties are passed to a game server process in the GameSession object + // with a request to start a new game session (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). GameProperties []*GameProperty `type:"list"` - // Set of developer-defined game session properties, formatted as a single string - // value. This data is included in the GameSession object, which is passed to - // the game server with a request to start a new game session (see Start a Game - // Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // Set of custom game session properties, formatted as a single string value. + // This data is passed to a game server process in the GameSession object with + // a request to start a new game session (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). GameSessionData *string `min:"1" type:"string"` // This parameter is no longer preferred. Please use IdempotencyToken instead. @@ -9226,7 +9371,6 @@ func (s *CreateGameSessionInput) SetName(v string) *CreateGameSessionInput { } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateGameSessionOutput type CreateGameSessionOutput struct { _ struct{} `type:"structure"` @@ -9251,7 +9395,6 @@ func (s *CreateGameSessionOutput) SetGameSession(v *GameSession) *CreateGameSess } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateGameSessionQueueInput type CreateGameSessionQueueInput struct { _ struct{} `type:"structure"` @@ -9345,7 +9488,6 @@ func (s *CreateGameSessionQueueInput) SetTimeoutInSeconds(v int64) *CreateGameSe } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateGameSessionQueueOutput type CreateGameSessionQueueOutput struct { _ struct{} `type:"structure"` @@ -9370,7 +9512,6 @@ func (s *CreateGameSessionQueueOutput) SetGameSessionQueue(v *GameSessionQueue) } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateMatchmakingConfigurationInput type CreateMatchmakingConfigurationInput struct { _ struct{} `type:"structure"` @@ -9397,18 +9538,16 @@ type CreateMatchmakingConfigurationInput struct { // Meaningful description of the matchmaking configuration. Description *string `min:"1" type:"string"` - // Set of developer-defined properties for a game session, formatted as a set - // of type:value pairs. These properties are included in the GameSession object, - // which is passed to the game server with a request to start a new game session - // (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // Set of custom properties for a game session, formatted as key:value pairs. + // These properties are passed to a game server process in the GameSession object + // with a request to start a new game session (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). // This information is added to the new GameSession object that is created for // a successful match. GameProperties []*GameProperty `type:"list"` - // Set of developer-defined game session properties, formatted as a single string - // value. This data is included in the GameSession object, which is passed to - // the game server with a request to start a new game session (see Start a Game - // Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // Set of custom game session properties, formatted as a single string value. + // This data is passed to a game server process in the GameSession object with + // a request to start a new game session (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). // This information is added to the new GameSession object that is created for // a successful match. GameSessionData *string `min:"1" type:"string"` @@ -9581,7 +9720,6 @@ func (s *CreateMatchmakingConfigurationInput) SetRuleSetName(v string) *CreateMa } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateMatchmakingConfigurationOutput type CreateMatchmakingConfigurationOutput struct { _ struct{} `type:"structure"` @@ -9606,7 +9744,6 @@ func (s *CreateMatchmakingConfigurationOutput) SetConfiguration(v *MatchmakingCo } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateMatchmakingRuleSetInput type CreateMatchmakingRuleSetInput struct { _ struct{} `type:"structure"` @@ -9668,7 +9805,6 @@ func (s *CreateMatchmakingRuleSetInput) SetRuleSetBody(v string) *CreateMatchmak } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateMatchmakingRuleSetOutput type CreateMatchmakingRuleSetOutput struct { _ struct{} `type:"structure"` @@ -9695,7 +9831,6 @@ func (s *CreateMatchmakingRuleSetOutput) SetRuleSet(v *MatchmakingRuleSet) *Crea } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreatePlayerSessionInput type CreatePlayerSessionInput struct { _ struct{} `type:"structure"` @@ -9768,7 +9903,6 @@ func (s *CreatePlayerSessionInput) SetPlayerId(v string) *CreatePlayerSessionInp } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreatePlayerSessionOutput type CreatePlayerSessionOutput struct { _ struct{} `type:"structure"` @@ -9793,7 +9927,6 @@ func (s *CreatePlayerSessionOutput) SetPlayerSession(v *PlayerSession) *CreatePl } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreatePlayerSessionsInput type CreatePlayerSessionsInput struct { _ struct{} `type:"structure"` @@ -9865,7 +9998,6 @@ func (s *CreatePlayerSessionsInput) SetPlayerIds(v []*string) *CreatePlayerSessi } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreatePlayerSessionsOutput type CreatePlayerSessionsOutput struct { _ struct{} `type:"structure"` @@ -9890,7 +10022,6 @@ func (s *CreatePlayerSessionsOutput) SetPlayerSessions(v []*PlayerSession) *Crea } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateVpcPeeringAuthorizationInput type CreateVpcPeeringAuthorizationInput struct { _ struct{} `type:"structure"` @@ -9955,7 +10086,6 @@ func (s *CreateVpcPeeringAuthorizationInput) SetPeerVpcId(v string) *CreateVpcPe } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateVpcPeeringAuthorizationOutput type CreateVpcPeeringAuthorizationOutput struct { _ struct{} `type:"structure"` @@ -9980,7 +10110,6 @@ func (s *CreateVpcPeeringAuthorizationOutput) SetVpcPeeringAuthorization(v *VpcP } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateVpcPeeringConnectionInput type CreateVpcPeeringConnectionInput struct { _ struct{} `type:"structure"` @@ -10059,7 +10188,6 @@ func (s *CreateVpcPeeringConnectionInput) SetPeerVpcId(v string) *CreateVpcPeeri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/CreateVpcPeeringConnectionOutput type CreateVpcPeeringConnectionOutput struct { _ struct{} `type:"structure"` } @@ -10075,7 +10203,6 @@ func (s CreateVpcPeeringConnectionOutput) GoString() string { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteAliasInput type DeleteAliasInput struct { _ struct{} `type:"structure"` @@ -10114,7 +10241,6 @@ func (s *DeleteAliasInput) SetAliasId(v string) *DeleteAliasInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteAliasOutput type DeleteAliasOutput struct { _ struct{} `type:"structure"` } @@ -10130,7 +10256,6 @@ func (s DeleteAliasOutput) GoString() string { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteBuildInput type DeleteBuildInput struct { _ struct{} `type:"structure"` @@ -10169,7 +10294,6 @@ func (s *DeleteBuildInput) SetBuildId(v string) *DeleteBuildInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteBuildOutput type DeleteBuildOutput struct { _ struct{} `type:"structure"` } @@ -10185,7 +10309,6 @@ func (s DeleteBuildOutput) GoString() string { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteFleetInput type DeleteFleetInput struct { _ struct{} `type:"structure"` @@ -10224,7 +10347,6 @@ func (s *DeleteFleetInput) SetFleetId(v string) *DeleteFleetInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteFleetOutput type DeleteFleetOutput struct { _ struct{} `type:"structure"` } @@ -10240,7 +10362,6 @@ func (s DeleteFleetOutput) GoString() string { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteGameSessionQueueInput type DeleteGameSessionQueueInput struct { _ struct{} `type:"structure"` @@ -10283,7 +10404,6 @@ func (s *DeleteGameSessionQueueInput) SetName(v string) *DeleteGameSessionQueueI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteGameSessionQueueOutput type DeleteGameSessionQueueOutput struct { _ struct{} `type:"structure"` } @@ -10299,7 +10419,6 @@ func (s DeleteGameSessionQueueOutput) GoString() string { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteMatchmakingConfigurationInput type DeleteMatchmakingConfigurationInput struct { _ struct{} `type:"structure"` @@ -10341,7 +10460,6 @@ func (s *DeleteMatchmakingConfigurationInput) SetName(v string) *DeleteMatchmaki return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteMatchmakingConfigurationOutput type DeleteMatchmakingConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -10357,7 +10475,6 @@ func (s DeleteMatchmakingConfigurationOutput) GoString() string { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteScalingPolicyInput type DeleteScalingPolicyInput struct { _ struct{} `type:"structure"` @@ -10414,7 +10531,6 @@ func (s *DeleteScalingPolicyInput) SetName(v string) *DeleteScalingPolicyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteScalingPolicyOutput type DeleteScalingPolicyOutput struct { _ struct{} `type:"structure"` } @@ -10430,7 +10546,6 @@ func (s DeleteScalingPolicyOutput) GoString() string { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteVpcPeeringAuthorizationInput type DeleteVpcPeeringAuthorizationInput struct { _ struct{} `type:"structure"` @@ -10494,7 +10609,6 @@ func (s *DeleteVpcPeeringAuthorizationInput) SetPeerVpcId(v string) *DeleteVpcPe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteVpcPeeringAuthorizationOutput type DeleteVpcPeeringAuthorizationOutput struct { _ struct{} `type:"structure"` } @@ -10510,7 +10624,6 @@ func (s DeleteVpcPeeringAuthorizationOutput) GoString() string { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteVpcPeeringConnectionInput type DeleteVpcPeeringConnectionInput struct { _ struct{} `type:"structure"` @@ -10568,7 +10681,6 @@ func (s *DeleteVpcPeeringConnectionInput) SetVpcPeeringConnectionId(v string) *D return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DeleteVpcPeeringConnectionOutput type DeleteVpcPeeringConnectionOutput struct { _ struct{} `type:"structure"` } @@ -10584,7 +10696,6 @@ func (s DeleteVpcPeeringConnectionOutput) GoString() string { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeAliasInput type DescribeAliasInput struct { _ struct{} `type:"structure"` @@ -10624,7 +10735,6 @@ func (s *DescribeAliasInput) SetAliasId(v string) *DescribeAliasInput { } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeAliasOutput type DescribeAliasOutput struct { _ struct{} `type:"structure"` @@ -10649,7 +10759,6 @@ func (s *DescribeAliasOutput) SetAlias(v *Alias) *DescribeAliasOutput { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeBuildInput type DescribeBuildInput struct { _ struct{} `type:"structure"` @@ -10689,7 +10798,6 @@ func (s *DescribeBuildInput) SetBuildId(v string) *DescribeBuildInput { } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeBuildOutput type DescribeBuildOutput struct { _ struct{} `type:"structure"` @@ -10714,7 +10822,6 @@ func (s *DescribeBuildOutput) SetBuild(v *Build) *DescribeBuildOutput { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeEC2InstanceLimitsInput type DescribeEC2InstanceLimitsInput struct { _ struct{} `type:"structure"` @@ -10744,7 +10851,6 @@ func (s *DescribeEC2InstanceLimitsInput) SetEC2InstanceType(v string) *DescribeE } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeEC2InstanceLimitsOutput type DescribeEC2InstanceLimitsOutput struct { _ struct{} `type:"structure"` @@ -10770,7 +10876,6 @@ func (s *DescribeEC2InstanceLimitsOutput) SetEC2InstanceLimits(v []*EC2InstanceL } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetAttributesInput type DescribeFleetAttributesInput struct { _ struct{} `type:"structure"` @@ -10838,7 +10943,6 @@ func (s *DescribeFleetAttributesInput) SetNextToken(v string) *DescribeFleetAttr } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetAttributesOutput type DescribeFleetAttributesOutput struct { _ struct{} `type:"structure"` @@ -10875,7 +10979,6 @@ func (s *DescribeFleetAttributesOutput) SetNextToken(v string) *DescribeFleetAtt } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetCapacityInput type DescribeFleetCapacityInput struct { _ struct{} `type:"structure"` @@ -10943,7 +11046,6 @@ func (s *DescribeFleetCapacityInput) SetNextToken(v string) *DescribeFleetCapaci } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetCapacityOutput type DescribeFleetCapacityOutput struct { _ struct{} `type:"structure"` @@ -10981,7 +11083,6 @@ func (s *DescribeFleetCapacityOutput) SetNextToken(v string) *DescribeFleetCapac } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetEventsInput type DescribeFleetEventsInput struct { _ struct{} `type:"structure"` @@ -11071,7 +11172,6 @@ func (s *DescribeFleetEventsInput) SetStartTime(v time.Time) *DescribeFleetEvent } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetEventsOutput type DescribeFleetEventsOutput struct { _ struct{} `type:"structure"` @@ -11107,7 +11207,6 @@ func (s *DescribeFleetEventsOutput) SetNextToken(v string) *DescribeFleetEventsO } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetPortSettingsInput type DescribeFleetPortSettingsInput struct { _ struct{} `type:"structure"` @@ -11147,7 +11246,6 @@ func (s *DescribeFleetPortSettingsInput) SetFleetId(v string) *DescribeFleetPort } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetPortSettingsOutput type DescribeFleetPortSettingsOutput struct { _ struct{} `type:"structure"` @@ -11172,7 +11270,6 @@ func (s *DescribeFleetPortSettingsOutput) SetInboundPermissions(v []*IpPermissio } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetUtilizationInput type DescribeFleetUtilizationInput struct { _ struct{} `type:"structure"` @@ -11240,7 +11337,6 @@ func (s *DescribeFleetUtilizationInput) SetNextToken(v string) *DescribeFleetUti } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeFleetUtilizationOutput type DescribeFleetUtilizationOutput struct { _ struct{} `type:"structure"` @@ -11277,7 +11373,6 @@ func (s *DescribeFleetUtilizationOutput) SetNextToken(v string) *DescribeFleetUt } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionDetailsInput type DescribeGameSessionDetailsInput struct { _ struct{} `type:"structure"` @@ -11376,7 +11471,6 @@ func (s *DescribeGameSessionDetailsInput) SetStatusFilter(v string) *DescribeGam } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionDetailsOutput type DescribeGameSessionDetailsOutput struct { _ struct{} `type:"structure"` @@ -11413,7 +11507,6 @@ func (s *DescribeGameSessionDetailsOutput) SetNextToken(v string) *DescribeGameS } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionPlacementInput type DescribeGameSessionPlacementInput struct { _ struct{} `type:"structure"` @@ -11456,7 +11549,6 @@ func (s *DescribeGameSessionPlacementInput) SetPlacementId(v string) *DescribeGa } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionPlacementOutput type DescribeGameSessionPlacementOutput struct { _ struct{} `type:"structure"` @@ -11481,7 +11573,6 @@ func (s *DescribeGameSessionPlacementOutput) SetGameSessionPlacement(v *GameSess } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionQueuesInput type DescribeGameSessionQueuesInput struct { _ struct{} `type:"structure"` @@ -11544,7 +11635,6 @@ func (s *DescribeGameSessionQueuesInput) SetNextToken(v string) *DescribeGameSes } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionQueuesOutput type DescribeGameSessionQueuesOutput struct { _ struct{} `type:"structure"` @@ -11580,7 +11670,6 @@ func (s *DescribeGameSessionQueuesOutput) SetNextToken(v string) *DescribeGameSe } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionsInput type DescribeGameSessionsInput struct { _ struct{} `type:"structure"` @@ -11679,7 +11768,6 @@ func (s *DescribeGameSessionsInput) SetStatusFilter(v string) *DescribeGameSessi } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeGameSessionsOutput type DescribeGameSessionsOutput struct { _ struct{} `type:"structure"` @@ -11716,7 +11804,6 @@ func (s *DescribeGameSessionsOutput) SetNextToken(v string) *DescribeGameSession } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeInstancesInput type DescribeInstancesInput struct { _ struct{} `type:"structure"` @@ -11793,7 +11880,6 @@ func (s *DescribeInstancesInput) SetNextToken(v string) *DescribeInstancesInput } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeInstancesOutput type DescribeInstancesOutput struct { _ struct{} `type:"structure"` @@ -11829,7 +11915,6 @@ func (s *DescribeInstancesOutput) SetNextToken(v string) *DescribeInstancesOutpu } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeMatchmakingConfigurationsInput type DescribeMatchmakingConfigurationsInput struct { _ struct{} `type:"structure"` @@ -11905,7 +11990,6 @@ func (s *DescribeMatchmakingConfigurationsInput) SetRuleSetName(v string) *Descr } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeMatchmakingConfigurationsOutput type DescribeMatchmakingConfigurationsOutput struct { _ struct{} `type:"structure"` @@ -11941,12 +12025,10 @@ func (s *DescribeMatchmakingConfigurationsOutput) SetNextToken(v string) *Descri } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeMatchmakingInput type DescribeMatchmakingInput struct { _ struct{} `type:"structure"` - // Unique identifier for a matchmaking ticket. To request all existing tickets, - // leave this parameter empty. + // Unique identifier for a matchmaking ticket. You can include up to 10 ID values. // // TicketIds is a required field TicketIds []*string `type:"list" required:"true"` @@ -11982,7 +12064,6 @@ func (s *DescribeMatchmakingInput) SetTicketIds(v []*string) *DescribeMatchmakin } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeMatchmakingOutput type DescribeMatchmakingOutput struct { _ struct{} `type:"structure"` @@ -12007,7 +12088,6 @@ func (s *DescribeMatchmakingOutput) SetTicketList(v []*MatchmakingTicket) *Descr } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeMatchmakingRuleSetsInput type DescribeMatchmakingRuleSetsInput struct { _ struct{} `type:"structure"` @@ -12073,7 +12153,6 @@ func (s *DescribeMatchmakingRuleSetsInput) SetNextToken(v string) *DescribeMatch } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeMatchmakingRuleSetsOutput type DescribeMatchmakingRuleSetsOutput struct { _ struct{} `type:"structure"` @@ -12111,7 +12190,6 @@ func (s *DescribeMatchmakingRuleSetsOutput) SetRuleSets(v []*MatchmakingRuleSet) } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribePlayerSessionsInput type DescribePlayerSessionsInput struct { _ struct{} `type:"structure"` @@ -12224,7 +12302,6 @@ func (s *DescribePlayerSessionsInput) SetPlayerSessionStatusFilter(v string) *De } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribePlayerSessionsOutput type DescribePlayerSessionsOutput struct { _ struct{} `type:"structure"` @@ -12261,7 +12338,6 @@ func (s *DescribePlayerSessionsOutput) SetPlayerSessions(v []*PlayerSession) *De } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeRuntimeConfigurationInput type DescribeRuntimeConfigurationInput struct { _ struct{} `type:"structure"` @@ -12301,7 +12377,6 @@ func (s *DescribeRuntimeConfigurationInput) SetFleetId(v string) *DescribeRuntim } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeRuntimeConfigurationOutput type DescribeRuntimeConfigurationOutput struct { _ struct{} `type:"structure"` @@ -12327,7 +12402,6 @@ func (s *DescribeRuntimeConfigurationOutput) SetRuntimeConfiguration(v *RuntimeC } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeScalingPoliciesInput type DescribeScalingPoliciesInput struct { _ struct{} `type:"structure"` @@ -12419,7 +12493,6 @@ func (s *DescribeScalingPoliciesInput) SetStatusFilter(v string) *DescribeScalin } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeScalingPoliciesOutput type DescribeScalingPoliciesOutput struct { _ struct{} `type:"structure"` @@ -12454,7 +12527,6 @@ func (s *DescribeScalingPoliciesOutput) SetScalingPolicies(v []*ScalingPolicy) * return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeVpcPeeringAuthorizationsInput type DescribeVpcPeeringAuthorizationsInput struct { _ struct{} `type:"structure"` } @@ -12469,7 +12541,6 @@ func (s DescribeVpcPeeringAuthorizationsInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeVpcPeeringAuthorizationsOutput type DescribeVpcPeeringAuthorizationsOutput struct { _ struct{} `type:"structure"` @@ -12495,7 +12566,6 @@ func (s *DescribeVpcPeeringAuthorizationsOutput) SetVpcPeeringAuthorizations(v [ } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeVpcPeeringConnectionsInput type DescribeVpcPeeringConnectionsInput struct { _ struct{} `type:"structure"` @@ -12520,7 +12590,6 @@ func (s *DescribeVpcPeeringConnectionsInput) SetFleetId(v string) *DescribeVpcPe } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DescribeVpcPeeringConnectionsOutput type DescribeVpcPeeringConnectionsOutput struct { _ struct{} `type:"structure"` @@ -12546,7 +12615,6 @@ func (s *DescribeVpcPeeringConnectionsOutput) SetVpcPeeringConnections(v []*VpcP // Player information for use when creating player sessions using a game session // placement request with StartGameSessionPlacement. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/DesiredPlayerSession type DesiredPlayerSession struct { _ struct{} `type:"structure"` @@ -12645,7 +12713,6 @@ func (s *DesiredPlayerSession) SetPlayerId(v string) *DesiredPlayerSession { // DescribeEC2InstanceLimits // // * DeleteFleet -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/EC2InstanceCounts type EC2InstanceCounts struct { _ struct{} `type:"structure"` @@ -12727,7 +12794,6 @@ func (s *EC2InstanceCounts) SetTERMINATING(v int64) *EC2InstanceCounts { // Maximum number of instances allowed based on the Amazon Elastic Compute Cloud // (Amazon EC2) instance type. Instance limits can be retrieved by calling DescribeEC2InstanceLimits. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/EC2InstanceLimit type EC2InstanceLimit struct { _ struct{} `type:"structure"` @@ -12777,7 +12843,6 @@ func (s *EC2InstanceLimit) SetInstanceLimit(v int64) *EC2InstanceLimit { // Log entry describing an event that involves Amazon GameLift resources (such // as a fleet). In addition to tracking activity, event codes and messages can // provide additional information for troubleshooting and debugging problems. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/Event type Event struct { _ struct{} `type:"structure"` @@ -12985,7 +13050,6 @@ func (s *Event) SetResourceId(v string) *Event { // DescribeEC2InstanceLimits // // * DeleteFleet -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/FleetAttributes type FleetAttributes struct { _ struct{} `type:"structure"` @@ -13228,7 +13292,6 @@ func (s *FleetAttributes) SetTerminationTime(v time.Time) *FleetAttributes { // DescribeEC2InstanceLimits // // * DeleteFleet -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/FleetCapacity type FleetCapacity struct { _ struct{} `type:"structure"` @@ -13320,7 +13383,6 @@ func (s *FleetCapacity) SetInstanceType(v string) *FleetCapacity { // DescribeEC2InstanceLimits // // * DeleteFleet -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/FleetUtilization type FleetUtilization struct { _ struct{} `type:"structure"` @@ -13391,7 +13453,6 @@ func (s *FleetUtilization) SetMaximumPlayerSessionCount(v int64) *FleetUtilizati // when initiating a new game session; the server process uses the properties // as appropriate. For more information, see the Amazon GameLift Developer // Guide (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-client-api.html#gamelift-sdk-client-api-create). -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GameProperty type GameProperty struct { _ struct{} `type:"structure"` @@ -13474,7 +13535,6 @@ func (s *GameProperty) SetValue(v string) *GameProperty { // DescribeGameSessionPlacement // // StopGameSessionPlacement -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GameSession type GameSession struct { _ struct{} `type:"structure"` @@ -13493,16 +13553,15 @@ type GameSession struct { // Unique identifier for a fleet that the game session is running on. FleetId *string `type:"string"` - // Set of developer-defined properties for a game session, formatted as a set - // of type:value pairs. These properties are included in the GameSession object, - // which is passed to the game server with a request to start a new game session - // (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // Set of custom properties for a game session, formatted as key:value pairs. + // These properties are passed to a game server process in the GameSession object + // with a request to start a new game session (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // You can search for active game sessions based on this custom data with SearchGameSessions. GameProperties []*GameProperty `type:"list"` - // Set of developer-defined game session properties, formatted as a single string - // value. This data is included in the GameSession object, which is passed to - // the game server with a request to start a new game session (see Start a Game - // Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // Set of custom game session properties, formatted as a single string value. + // This data is passed to a game server process in the GameSession object with + // a request to start a new game session (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). GameSessionData *string `min:"1" type:"string"` // Unique identifier for the game session. A game session ARN has the following @@ -13514,6 +13573,15 @@ type GameSession struct { // an app needs both the IP address and port number. IpAddress *string `type:"string"` + // Information about the matchmaking process that was used to create the game + // session. It is in JSON syntax, formated as a string. In addition the matchmaking + // configuration used, it contains data on all players assigned to the match, + // including player attributes and team assignments. For more details on matchmaker + // data, see Match Data (http://docs.aws.amazon.com/gamelift/latest/developerguide/match-server.html#match-server-data). + // Matchmaker data is useful when requesting match backfills, and is updated + // whenever new players are added during a successful backfill (see StartMatchBackfill). + MatchmakerData *string `min:"1" type:"string"` + // Maximum number of players that can be connected simultaneously to the game // session. MaximumPlayerSessionCount *int64 `type:"integer"` @@ -13596,6 +13664,12 @@ func (s *GameSession) SetIpAddress(v string) *GameSession { return s } +// SetMatchmakerData sets the MatchmakerData field's value. +func (s *GameSession) SetMatchmakerData(v string) *GameSession { + s.MatchmakerData = &v + return s +} + // SetMaximumPlayerSessionCount sets the MaximumPlayerSessionCount field's value. func (s *GameSession) SetMaximumPlayerSessionCount(v int64) *GameSession { s.MaximumPlayerSessionCount = &v @@ -13638,7 +13712,6 @@ func (s *GameSession) SetTerminationTime(v time.Time) *GameSession { // the game session endpoint and player sessions for each player in the original // matchmaking request, is added to the MatchmakingTicket, which can be retrieved // by calling DescribeMatchmaking. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GameSessionConnectionInfo type GameSessionConnectionInfo struct { _ struct{} `type:"structure"` @@ -13694,7 +13767,6 @@ func (s *GameSessionConnectionInfo) SetPort(v int64) *GameSessionConnectionInfo } // A game session's properties plus the protection policy currently in force. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GameSessionDetail type GameSessionDetail struct { _ struct{} `type:"structure"` @@ -13744,7 +13816,6 @@ func (s *GameSessionDetail) SetProtectionPolicy(v string) *GameSessionDetail { // * DescribeGameSessionPlacement // // * StopGameSessionPlacement -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GameSessionPlacement type GameSessionPlacement struct { _ struct{} `type:"structure"` @@ -13752,10 +13823,9 @@ type GameSessionPlacement struct { // out. EndTime *time.Time `type:"timestamp" timestampFormat:"unix"` - // Set of developer-defined properties for a game session, formatted as a set - // of type:value pairs. These properties are included in the GameSession object, - // which is passed to the game server with a request to start a new game session - // (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // Set of custom properties for a game session, formatted as key:value pairs. + // These properties are passed to a game server process in the GameSession object + // with a request to start a new game session (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). GameProperties []*GameProperty `type:"list"` // Identifier for the game session created by this placement request. This value @@ -13764,10 +13834,9 @@ type GameSessionPlacement struct { // GameSessionId value as needed. GameSessionArn *string `min:"1" type:"string"` - // Set of developer-defined game session properties, formatted as a single string - // value. This data is included in the GameSession object, which is passed to - // the game server with a request to start a new game session (see Start a Game - // Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // Set of custom game session properties, formatted as a single string value. + // This data is passed to a game server process in the GameSession object with + // a request to start a new game session (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). GameSessionData *string `min:"1" type:"string"` // Unique identifier for the game session. This value is set once the new game @@ -13792,6 +13861,14 @@ type GameSessionPlacement struct { // the new game session is placed (placement status is FULFILLED). IpAddress *string `type:"string"` + // Information on the matchmaking process for this game. Data is in JSON syntax, + // formated as a string. It identifies the matchmaking configuration used to + // create the match, and contains data on all players assigned to the match, + // including player attributes and team assignments. For more details on matchmaker + // data, see http://docs.aws.amazon.com/gamelift/latest/developerguide/match-server.html#match-server-data + // (http://docs.aws.amazon.com/gamelift/latest/developerguide/match-server.html#match-server-data). + MatchmakerData *string `min:"1" type:"string"` + // Maximum number of players that can be connected simultaneously to the game // session. MaximumPlayerSessionCount *int64 `type:"integer"` @@ -13900,6 +13977,12 @@ func (s *GameSessionPlacement) SetIpAddress(v string) *GameSessionPlacement { return s } +// SetMatchmakerData sets the MatchmakerData field's value. +func (s *GameSessionPlacement) SetMatchmakerData(v string) *GameSessionPlacement { + s.MatchmakerData = &v + return s +} + // SetMaximumPlayerSessionCount sets the MaximumPlayerSessionCount field's value. func (s *GameSessionPlacement) SetMaximumPlayerSessionCount(v int64) *GameSessionPlacement { s.MaximumPlayerSessionCount = &v @@ -13968,7 +14051,6 @@ func (s *GameSessionPlacement) SetStatus(v string) *GameSessionPlacement { // * UpdateGameSessionQueue // // * DeleteGameSessionQueue -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GameSessionQueue type GameSessionQueue struct { _ struct{} `type:"structure"` @@ -14055,7 +14137,6 @@ func (s *GameSessionQueue) SetTimeoutInSeconds(v int64) *GameSessionQueue { // * UpdateGameSessionQueue // // * DeleteGameSessionQueue -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GameSessionQueueDestination type GameSessionQueueDestination struct { _ struct{} `type:"structure"` @@ -14095,7 +14176,6 @@ func (s *GameSessionQueueDestination) SetDestinationArn(v string) *GameSessionQu } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GetGameSessionLogUrlInput type GetGameSessionLogUrlInput struct { _ struct{} `type:"structure"` @@ -14138,7 +14218,6 @@ func (s *GetGameSessionLogUrlInput) SetGameSessionId(v string) *GetGameSessionLo } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GetGameSessionLogUrlOutput type GetGameSessionLogUrlOutput struct { _ struct{} `type:"structure"` @@ -14163,7 +14242,6 @@ func (s *GetGameSessionLogUrlOutput) SetPreSignedUrl(v string) *GetGameSessionLo } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GetInstanceAccessInput type GetInstanceAccessInput struct { _ struct{} `type:"structure"` @@ -14221,7 +14299,6 @@ func (s *GetInstanceAccessInput) SetInstanceId(v string) *GetInstanceAccessInput } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/GetInstanceAccessOutput type GetInstanceAccessOutput struct { _ struct{} `type:"structure"` @@ -14248,7 +14325,6 @@ func (s *GetInstanceAccessOutput) SetInstanceAccess(v *InstanceAccess) *GetInsta // Properties that describe an instance of a virtual computing resource that // hosts one or more game servers. A fleet may contain zero or more instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/Instance type Instance struct { _ struct{} `type:"structure"` @@ -14341,7 +14417,6 @@ func (s *Instance) SetType(v string) *Instance { // Information required to remotely connect to a fleet instance. Access is requested // by calling GetInstanceAccess. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/InstanceAccess type InstanceAccess struct { _ struct{} `type:"structure"` @@ -14404,7 +14479,6 @@ func (s *InstanceAccess) SetOperatingSystem(v string) *InstanceAccess { // Set of credentials required to remotely access a fleet instance. Access credentials // are requested by calling GetInstanceAccess and returned in an InstanceAccess // object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/InstanceCredentials type InstanceCredentials struct { _ struct{} `type:"structure"` @@ -14444,7 +14518,6 @@ func (s *InstanceCredentials) SetUserName(v string) *InstanceCredentials { // is assigned a unique combination of IP address and port number, which must // fall into the fleet's allowed ranges. This combination is included in the // GameSession object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/IpPermission type IpPermission struct { _ struct{} `type:"structure"` @@ -14535,7 +14608,6 @@ func (s *IpPermission) SetToPort(v int64) *IpPermission { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ListAliasesInput type ListAliasesInput struct { _ struct{} `type:"structure"` @@ -14621,7 +14693,6 @@ func (s *ListAliasesInput) SetRoutingStrategyType(v string) *ListAliasesInput { } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ListAliasesOutput type ListAliasesOutput struct { _ struct{} `type:"structure"` @@ -14657,7 +14728,6 @@ func (s *ListAliasesOutput) SetNextToken(v string) *ListAliasesOutput { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ListBuildsInput type ListBuildsInput struct { _ struct{} `type:"structure"` @@ -14733,7 +14803,6 @@ func (s *ListBuildsInput) SetStatus(v string) *ListBuildsInput { } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ListBuildsOutput type ListBuildsOutput struct { _ struct{} `type:"structure"` @@ -14769,7 +14838,6 @@ func (s *ListBuildsOutput) SetNextToken(v string) *ListBuildsOutput { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ListFleetsInput type ListFleetsInput struct { _ struct{} `type:"structure"` @@ -14833,7 +14901,6 @@ func (s *ListFleetsInput) SetNextToken(v string) *ListFleetsInput { } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ListFleetsOutput type ListFleetsOutput struct { _ struct{} `type:"structure"` @@ -14876,7 +14943,6 @@ func (s *ListFleetsOutput) SetNextToken(v string) *ListFleetsOutput { // // When players connect to the match's game session, they must include both // player ID and player session ID in order to claim their assigned player slot. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/MatchedPlayerSession type MatchedPlayerSession struct { _ struct{} `type:"structure"` @@ -14911,7 +14977,6 @@ func (s *MatchedPlayerSession) SetPlayerSessionId(v string) *MatchedPlayerSessio // Guidelines for use with FlexMatch to match players into games. All matchmaking // requests must specify a matchmaking configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/MatchmakingConfiguration type MatchmakingConfiguration struct { _ struct{} `type:"structure"` @@ -14940,18 +15005,16 @@ type MatchmakingConfiguration struct { // Descriptive label that is associated with matchmaking configuration. Description *string `min:"1" type:"string"` - // Set of developer-defined properties for a game session, formatted as a set - // of type:value pairs. These properties are included in the GameSession object, - // which is passed to the game server with a request to start a new game session - // (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // Set of custom properties for a game session, formatted as key:value pairs. + // These properties are passed to a game server process in the GameSession object + // with a request to start a new game session (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). // This information is added to the new GameSession object that is created for // a successful match. GameProperties []*GameProperty `type:"list"` - // Set of developer-defined game session properties, formatted as a single string - // value. This data is included in the GameSession object, which is passed to - // the game server with a request to start a new game session (see Start a Game - // Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // Set of custom game session properties, formatted as a single string value. + // This data is passed to a game server process in the GameSession object with + // a request to start a new game session (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). // This information is added to the new GameSession object that is created for // a successful match. GameSessionData *string `min:"1" type:"string"` @@ -15074,8 +15137,8 @@ func (s *MatchmakingConfiguration) SetRuleSetName(v string) *MatchmakingConfigur // sets are used in MatchmakingConfiguration objects. // // A rule set may define the following elements for a match. For detailed information -// and examples showing how to construct a rule set, see Create Matchmaking -// Rules for Your Game (http://docs.aws.amazon.com/gamelift/latest/developerguide/match-rules.html). +// and examples showing how to construct a rule set, see Build a FlexMatch Rule +// Set (http://docs.aws.amazon.com/gamelift/latest/developerguide/match-rulesets.html). // // * Teams -- Required. A rule set must define one or multiple teams for // the match and set minimum and maximum team sizes. For example, a rule @@ -15090,17 +15153,19 @@ func (s *MatchmakingConfiguration) SetRuleSetName(v string) *MatchmakingConfigur // // * Rules -- Optional. Rules define how to evaluate potential players for // a match based on player attributes. A rule might specify minimum requirements -// for individual players--such as each player must meet a certain skill -// level, or may describe an entire group--such as all teams must be evenly -// matched or have at least one player in a certain role. +// for individual players, teams, or entire matches. For example, a rule +// might require each player to meet a certain skill level, each team to +// have at least one player in a certain role, or the match to have a minimum +// average skill level. or may describe an entire group--such as all teams +// must be evenly matched or have at least one player in a certain role. +// // // * Expansions -- Optional. Expansions allow you to relax the rules after -// a period of time if no acceptable matches are found. This feature lets +// a period of time when no acceptable matches are found. This feature lets // you balance getting players into games in a reasonable amount of time // instead of making them wait indefinitely for the best possible match. // For example, you might use an expansion to increase the maximum skill // variance between players after 30 seconds. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/MatchmakingRuleSet type MatchmakingRuleSet struct { _ struct{} `type:"structure"` @@ -15150,7 +15215,6 @@ func (s *MatchmakingRuleSet) SetRuleSetName(v string) *MatchmakingRuleSet { // is uniquely identified by a ticket ID, supplied by the requester, when creating // a matchmaking request with StartMatchmaking. Tickets can be retrieved by // calling DescribeMatchmaking with the ticket ID. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/MatchmakingTicket type MatchmakingTicket struct { _ struct{} `type:"structure"` @@ -15202,14 +15266,16 @@ type MatchmakingTicket struct { // information for players. // // * FAILED -- The matchmaking request was not completed. Tickets with players - // who fail to accept a proposed match are placed in FAILED status; new matchmaking - // requests can be submitted for these players. + // who fail to accept a proposed match are placed in FAILED status. // // * CANCELLED -- The matchmaking request was canceled with a call to StopMatchmaking. // - // * TIMED_OUT -- The matchmaking request was not completed within the duration - // specified in the matchmaking configuration. Matchmaking requests that - // time out can be resubmitted. + // * TIMED_OUT -- The matchmaking request was not successful within the duration + // specified in the matchmaking configuration. + // + // Matchmaking requests that fail to successfully complete (statuses FAILED, + // CANCELLED, TIMED_OUT) can be resubmitted as new requests with new ticket + // IDs. Status *string `type:"string" enum:"MatchmakingConfigurationStatus"` // Additional information about the current status. @@ -15314,7 +15380,6 @@ func (s *MatchmakingTicket) SetTicketId(v string) *MatchmakingTicket { // DescribeGameSessionPlacement // // StopGameSessionPlacement -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/PlacedPlayerSession type PlacedPlayerSession struct { _ struct{} `type:"structure"` @@ -15350,7 +15415,6 @@ func (s *PlacedPlayerSession) SetPlayerSessionId(v string) *PlacedPlayerSession // Represents a player in matchmaking. When starting a matchmaking request, // a player has a player ID, attributes, and may have latency data. Team information // is added after a match has been successfully completed. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/Player type Player struct { _ struct{} `type:"structure"` @@ -15365,9 +15429,9 @@ type Player struct { // is not matchable. LatencyInMs map[string]*int64 `type:"map"` - // Collection of name:value pairs containing player information for use in matchmaking. - // Player attribute names need to match playerAttributes names in the rule set - // being used. Example: "PlayerAttributes": {"skill": {"N": "23"}, "gameMode": + // Collection of key:value pairs containing player information for use in matchmaking. + // Player attribute keys must match the playerAttributes used in a matchmaking + // rule set. Example: "PlayerAttributes": {"skill": {"N": "23"}, "gameMode": // {"S": "deathmatch"}}. PlayerAttributes map[string]*AttributeValue `type:"map"` @@ -15445,7 +15509,6 @@ func (s *Player) SetTeam(v string) *Player { // region. The relative difference between a player's latency values for multiple // regions are used to determine which fleets are best suited to place a new // game session for the player. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/PlayerLatency type PlayerLatency struct { _ struct{} `type:"structure"` @@ -15519,7 +15582,6 @@ func (s *PlayerLatency) SetRegionIdentifier(v string) *PlayerLatency { // * UpdateGameSessionQueue // // * DeleteGameSessionQueue -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/PlayerLatencyPolicy type PlayerLatencyPolicy struct { _ struct{} `type:"structure"` @@ -15582,7 +15644,6 @@ func (s *PlayerLatencyPolicy) SetPolicyDurationSeconds(v int64) *PlayerLatencyPo // DescribeGameSessionPlacement // // StopGameSessionPlacement -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/PlayerSession type PlayerSession struct { _ struct{} `type:"structure"` @@ -15707,7 +15768,6 @@ func (s *PlayerSession) SetTerminationTime(v time.Time) *PlayerSession { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/PutScalingPolicyInput type PutScalingPolicyInput struct { _ struct{} `type:"structure"` @@ -15885,7 +15945,6 @@ func (s *PutScalingPolicyInput) SetThreshold(v float64) *PutScalingPolicyInput { } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/PutScalingPolicyOutput type PutScalingPolicyOutput struct { _ struct{} `type:"structure"` @@ -15911,7 +15970,6 @@ func (s *PutScalingPolicyOutput) SetName(v string) *PutScalingPolicyOutput { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/RequestUploadCredentialsInput type RequestUploadCredentialsInput struct { _ struct{} `type:"structure"` @@ -15951,7 +16009,6 @@ func (s *RequestUploadCredentialsInput) SetBuildId(v string) *RequestUploadCrede } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/RequestUploadCredentialsOutput type RequestUploadCredentialsOutput struct { _ struct{} `type:"structure"` @@ -15987,7 +16044,6 @@ func (s *RequestUploadCredentialsOutput) SetUploadCredentials(v *AwsCredentials) } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ResolveAliasInput type ResolveAliasInput struct { _ struct{} `type:"structure"` @@ -16027,7 +16083,6 @@ func (s *ResolveAliasInput) SetAliasId(v string) *ResolveAliasInput { } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ResolveAliasOutput type ResolveAliasOutput struct { _ struct{} `type:"structure"` @@ -16062,7 +16117,6 @@ func (s *ResolveAliasOutput) SetFleetId(v string) *ResolveAliasOutput { // minutes, on receiving a CreateGameSession request, Amazon GameLift checks // that the player (identified by CreatorId) has created fewer than 10 game // sessions in the past 60 minutes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ResourceCreationLimitPolicy type ResourceCreationLimitPolicy struct { _ struct{} `type:"structure"` @@ -16141,7 +16195,6 @@ func (s *ResourceCreationLimitPolicy) SetPolicyPeriodInMinutes(v int64) *Resourc // DescribeEC2InstanceLimits // // * DeleteFleet -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/RoutingStrategy type RoutingStrategy struct { _ struct{} `type:"structure"` @@ -16257,7 +16310,6 @@ func (s *RoutingStrategy) SetType(v string) *RoutingStrategy { // DescribeEC2InstanceLimits // // * DeleteFleet -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/RuntimeConfiguration type RuntimeConfiguration struct { _ struct{} `type:"structure"` @@ -16337,7 +16389,6 @@ func (s *RuntimeConfiguration) SetServerProcesses(v []*ServerProcess) *RuntimeCo // be stored for access by Amazon GameLift. This location is specified in a // CreateBuild request. For more details, see the Create a Build with Files // in Amazon S3 (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-build-cli-uploading.html#gamelift-build-cli-uploading-create-build). -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/S3Location type S3Location struct { _ struct{} `type:"structure"` @@ -16445,7 +16496,6 @@ func (s *S3Location) SetRoleArn(v string) *S3Location { // DescribeEC2InstanceLimits // // * DeleteFleet -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ScalingPolicy type ScalingPolicy struct { _ struct{} `type:"structure"` @@ -16592,7 +16642,6 @@ func (s *ScalingPolicy) SetThreshold(v float64) *ScalingPolicy { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/SearchGameSessionsInput type SearchGameSessionsInput struct { _ struct{} `type:"structure"` @@ -16609,17 +16658,17 @@ type SearchGameSessionsInput struct { // consists of the following: // // * Operand -- Name of a game session attribute. Valid values are gameSessionName, - // gameSessionId, creationTimeMillis, playerSessionCount, maximumSessions, - // hasAvailablePlayerSessions. + // gameSessionId, gameSessionProperties, maximumSessions, creationTimeMillis, + // playerSessionCount, hasAvailablePlayerSessions. // // * Comparator -- Valid comparators are: =, <>, <, >, <=, >=. // - // * Value -- Value to be searched for. Values can be numbers, boolean values - // (true/false) or strings. String values are case sensitive, enclosed in - // single quotes. Special characters must be escaped. Boolean and string - // values can only be used with the comparators = and <>. For example, the - // following filter expression searches on gameSessionName: "FilterExpression": - // "gameSessionName = 'Matt\\'s Awesome Game 1'". + // * Value -- Value to be searched for. Values may be numbers, boolean values + // (true/false) or strings depending on the operand. String values are case + // sensitive and must be enclosed in single quotes. Special characters must + // be escaped. Boolean and string values can only be used with the comparators + // = and <>. For example, the following filter expression searches on gameSessionName: + // "FilterExpression": "gameSessionName = 'Matt\\'s Awesome Game 1'". // // To chain multiple conditions in a single expression, use the logical keywords // AND, OR, and NOT and parentheses as needed. For example: x AND y AND NOT @@ -16661,8 +16710,8 @@ type SearchGameSessionsInput struct { // consists of the following elements: // // * Operand -- Name of a game session attribute. Valid values are gameSessionName, - // gameSessionId, creationTimeMillis, playerSessionCount, maximumSessions, - // hasAvailablePlayerSessions. + // gameSessionId, gameSessionProperties, maximumSessions, creationTimeMillis, + // playerSessionCount, hasAvailablePlayerSessions. // // * Order -- Valid sort orders are ASC (ascending) and DESC (descending). // @@ -16741,7 +16790,6 @@ func (s *SearchGameSessionsInput) SetSortExpression(v string) *SearchGameSession } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/SearchGameSessionsOutput type SearchGameSessionsOutput struct { _ struct{} `type:"structure"` @@ -16782,7 +16830,6 @@ func (s *SearchGameSessionsOutput) SetNextToken(v string) *SearchGameSessionsOut // optional launch parameters, and the number of server processes with this // configuration to maintain concurrently on the instance. Server process configurations // make up a fleet's RuntimeConfiguration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ServerProcess type ServerProcess struct { _ struct{} `type:"structure"` @@ -16860,23 +16907,20 @@ func (s *ServerProcess) SetParameters(v string) *ServerProcess { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StartGameSessionPlacementInput type StartGameSessionPlacementInput struct { _ struct{} `type:"structure"` // Set of information on each player to create a player session for. DesiredPlayerSessions []*DesiredPlayerSession `type:"list"` - // Set of developer-defined properties for a game session, formatted as a set - // of type:value pairs. These properties are included in the GameSession object, - // which is passed to the game server with a request to start a new game session - // (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // Set of custom properties for a game session, formatted as key:value pairs. + // These properties are passed to a game server process in the GameSession object + // with a request to start a new game session (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). GameProperties []*GameProperty `type:"list"` - // Set of developer-defined game session properties, formatted as a single string - // value. This data is included in the GameSession object, which is passed to - // the game server with a request to start a new game session (see Start a Game - // Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // Set of custom game session properties, formatted as a single string value. + // This data is passed to a game server process in the GameSession object with + // a request to start a new game session (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). GameSessionData *string `min:"1" type:"string"` // Descriptive label that is associated with a game session. Session names do @@ -17028,7 +17072,6 @@ func (s *StartGameSessionPlacementInput) SetPlayerLatencies(v []*PlayerLatency) } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StartGameSessionPlacementOutput type StartGameSessionPlacementOutput struct { _ struct{} `type:"structure"` @@ -17055,7 +17098,147 @@ func (s *StartGameSessionPlacementOutput) SetGameSessionPlacement(v *GameSession } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StartMatchmakingInput +type StartMatchBackfillInput struct { + _ struct{} `type:"structure"` + + // Name of the matchmaker to use for this request. The name of the matchmaker + // that was used with the original game session is listed in the GameSession + // object, MatchmakerData property. This property contains a matchmaking configuration + // ARN value, which includes the matchmaker name. (In the ARN value "arn:aws:gamelift:us-west-2:111122223333:matchmakingconfiguration/MM-4v4", + // the matchmaking configuration name is "MM-4v4".) Use only the name for this + // parameter. + // + // ConfigurationName is a required field + ConfigurationName *string `min:"1" type:"string" required:"true"` + + // Amazon Resource Name (ARN (http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html)) + // that is assigned to a game session and uniquely identifies it. + // + // GameSessionArn is a required field + GameSessionArn *string `min:"1" type:"string" required:"true"` + + // Match information on all players that are currently assigned to the game + // session. This information is used by the matchmaker to find new players and + // add them to the existing game. + // + // * PlayerID, PlayerAttributes, Team -- This information is maintained in + // the GameSession object, MatchmakerData property, for all players who are + // currently assigned to the game session. The matchmaker data is in JSON + // syntax, formatted as a string. For more details, see Match Data (http://docs.aws.amazon.com/gamelift/latest/developerguide/match-server.html#match-server-data). + // + // + // * LatencyInMs -- If the matchmaker uses player latency, include a latency + // value, in milliseconds, for the region that the game session is currently + // in. Do not include latency values for any other region. + // + // Players is a required field + Players []*Player `type:"list" required:"true"` + + // Unique identifier for a matchmaking ticket. If no ticket ID is specified + // here, Amazon GameLift will generate one in the form of a UUID. Use this identifier + // to track the match backfill ticket status and retrieve match results. + TicketId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s StartMatchBackfillInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StartMatchBackfillInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartMatchBackfillInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StartMatchBackfillInput"} + if s.ConfigurationName == nil { + invalidParams.Add(request.NewErrParamRequired("ConfigurationName")) + } + if s.ConfigurationName != nil && len(*s.ConfigurationName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ConfigurationName", 1)) + } + if s.GameSessionArn == nil { + invalidParams.Add(request.NewErrParamRequired("GameSessionArn")) + } + if s.GameSessionArn != nil && len(*s.GameSessionArn) < 1 { + invalidParams.Add(request.NewErrParamMinLen("GameSessionArn", 1)) + } + if s.Players == nil { + invalidParams.Add(request.NewErrParamRequired("Players")) + } + if s.TicketId != nil && len(*s.TicketId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("TicketId", 1)) + } + if s.Players != nil { + for i, v := range s.Players { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Players", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetConfigurationName sets the ConfigurationName field's value. +func (s *StartMatchBackfillInput) SetConfigurationName(v string) *StartMatchBackfillInput { + s.ConfigurationName = &v + return s +} + +// SetGameSessionArn sets the GameSessionArn field's value. +func (s *StartMatchBackfillInput) SetGameSessionArn(v string) *StartMatchBackfillInput { + s.GameSessionArn = &v + return s +} + +// SetPlayers sets the Players field's value. +func (s *StartMatchBackfillInput) SetPlayers(v []*Player) *StartMatchBackfillInput { + s.Players = v + return s +} + +// SetTicketId sets the TicketId field's value. +func (s *StartMatchBackfillInput) SetTicketId(v string) *StartMatchBackfillInput { + s.TicketId = &v + return s +} + +// Represents the returned data in response to a request action. +type StartMatchBackfillOutput struct { + _ struct{} `type:"structure"` + + // Ticket representing the backfill matchmaking request. This object includes + // the information in the request, ticket status, and match results as generated + // during the matchmaking process. + MatchmakingTicket *MatchmakingTicket `type:"structure"` +} + +// String returns the string representation +func (s StartMatchBackfillOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StartMatchBackfillOutput) GoString() string { + return s.String() +} + +// SetMatchmakingTicket sets the MatchmakingTicket field's value. +func (s *StartMatchBackfillOutput) SetMatchmakingTicket(v *MatchmakingTicket) *StartMatchBackfillOutput { + s.MatchmakingTicket = v + return s +} + +// Represents the input for a request action. type StartMatchmakingInput struct { _ struct{} `type:"structure"` @@ -17073,8 +17256,9 @@ type StartMatchmakingInput struct { // Players is a required field Players []*Player `type:"list" required:"true"` - // Unique identifier for a matchmaking ticket. Use this identifier to track - // the matchmaking ticket status and retrieve match results. + // Unique identifier for a matchmaking ticket. If no ticket ID is specified + // here, Amazon GameLift will generate one in the form of a UUID. Use this identifier + // to track the matchmaking ticket status and retrieve match results. TicketId *string `min:"1" type:"string"` } @@ -17139,7 +17323,6 @@ func (s *StartMatchmakingInput) SetTicketId(v string) *StartMatchmakingInput { } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StartMatchmakingOutput type StartMatchmakingOutput struct { _ struct{} `type:"structure"` @@ -17166,7 +17349,6 @@ func (s *StartMatchmakingOutput) SetMatchmakingTicket(v *MatchmakingTicket) *Sta } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StopGameSessionPlacementInput type StopGameSessionPlacementInput struct { _ struct{} `type:"structure"` @@ -17209,7 +17391,6 @@ func (s *StopGameSessionPlacementInput) SetPlacementId(v string) *StopGameSessio } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StopGameSessionPlacementOutput type StopGameSessionPlacementOutput struct { _ struct{} `type:"structure"` @@ -17235,7 +17416,6 @@ func (s *StopGameSessionPlacementOutput) SetGameSessionPlacement(v *GameSessionP } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StopMatchmakingInput type StopMatchmakingInput struct { _ struct{} `type:"structure"` @@ -17277,7 +17457,6 @@ func (s *StopMatchmakingInput) SetTicketId(v string) *StopMatchmakingInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/StopMatchmakingOutput type StopMatchmakingOutput struct { _ struct{} `type:"structure"` } @@ -17293,7 +17472,6 @@ func (s StopMatchmakingOutput) GoString() string { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateAliasInput type UpdateAliasInput struct { _ struct{} `type:"structure"` @@ -17367,7 +17545,6 @@ func (s *UpdateAliasInput) SetRoutingStrategy(v *RoutingStrategy) *UpdateAliasIn } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateAliasOutput type UpdateAliasOutput struct { _ struct{} `type:"structure"` @@ -17392,7 +17569,6 @@ func (s *UpdateAliasOutput) SetAlias(v *Alias) *UpdateAliasOutput { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateBuildInput type UpdateBuildInput struct { _ struct{} `type:"structure"` @@ -17458,7 +17634,6 @@ func (s *UpdateBuildInput) SetVersion(v string) *UpdateBuildInput { } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateBuildOutput type UpdateBuildOutput struct { _ struct{} `type:"structure"` @@ -17483,7 +17658,6 @@ func (s *UpdateBuildOutput) SetBuild(v *Build) *UpdateBuildOutput { } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateFleetAttributesInput type UpdateFleetAttributesInput struct { _ struct{} `type:"structure"` @@ -17588,7 +17762,6 @@ func (s *UpdateFleetAttributesInput) SetResourceCreationLimitPolicy(v *ResourceC } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateFleetAttributesOutput type UpdateFleetAttributesOutput struct { _ struct{} `type:"structure"` @@ -17613,7 +17786,6 @@ func (s *UpdateFleetAttributesOutput) SetFleetId(v string) *UpdateFleetAttribute } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateFleetCapacityInput type UpdateFleetCapacityInput struct { _ struct{} `type:"structure"` @@ -17682,7 +17854,6 @@ func (s *UpdateFleetCapacityInput) SetMinSize(v int64) *UpdateFleetCapacityInput } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateFleetCapacityOutput type UpdateFleetCapacityOutput struct { _ struct{} `type:"structure"` @@ -17707,7 +17878,6 @@ func (s *UpdateFleetCapacityOutput) SetFleetId(v string) *UpdateFleetCapacityOut } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateFleetPortSettingsInput type UpdateFleetPortSettingsInput struct { _ struct{} `type:"structure"` @@ -17785,7 +17955,6 @@ func (s *UpdateFleetPortSettingsInput) SetInboundPermissionRevocations(v []*IpPe } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateFleetPortSettingsOutput type UpdateFleetPortSettingsOutput struct { _ struct{} `type:"structure"` @@ -17810,7 +17979,6 @@ func (s *UpdateFleetPortSettingsOutput) SetFleetId(v string) *UpdateFleetPortSet } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateGameSessionInput type UpdateGameSessionInput struct { _ struct{} `type:"structure"` @@ -17900,7 +18068,6 @@ func (s *UpdateGameSessionInput) SetProtectionPolicy(v string) *UpdateGameSessio } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateGameSessionOutput type UpdateGameSessionOutput struct { _ struct{} `type:"structure"` @@ -17925,7 +18092,6 @@ func (s *UpdateGameSessionOutput) SetGameSession(v *GameSession) *UpdateGameSess } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateGameSessionQueueInput type UpdateGameSessionQueueInput struct { _ struct{} `type:"structure"` @@ -18019,7 +18185,6 @@ func (s *UpdateGameSessionQueueInput) SetTimeoutInSeconds(v int64) *UpdateGameSe } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateGameSessionQueueOutput type UpdateGameSessionQueueOutput struct { _ struct{} `type:"structure"` @@ -18044,7 +18209,6 @@ func (s *UpdateGameSessionQueueOutput) SetGameSessionQueue(v *GameSessionQueue) } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateMatchmakingConfigurationInput type UpdateMatchmakingConfigurationInput struct { _ struct{} `type:"structure"` @@ -18069,18 +18233,16 @@ type UpdateMatchmakingConfigurationInput struct { // Descriptive label that is associated with matchmaking configuration. Description *string `min:"1" type:"string"` - // Set of developer-defined properties for a game session, formatted as a set - // of type:value pairs. These properties are included in the GameSession object, - // which is passed to the game server with a request to start a new game session - // (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // Set of custom properties for a game session, formatted as key:value pairs. + // These properties are passed to a game server process in the GameSession object + // with a request to start a new game session (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). // This information is added to the new GameSession object that is created for // a successful match. GameProperties []*GameProperty `type:"list"` - // Set of developer-defined game session properties, formatted as a single string - // value. This data is included in the GameSession object, which is passed to - // the game server with a request to start a new game session (see Start a Game - // Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). + // Set of custom game session properties, formatted as a single string value. + // This data is passed to a game server process in the GameSession object with + // a request to start a new game session (see Start a Game Session (http://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-sdk-server-api.html#gamelift-sdk-server-startsession)). // This information is added to the new GameSession object that is created for // a successful match. GameSessionData *string `min:"1" type:"string"` @@ -18236,7 +18398,6 @@ func (s *UpdateMatchmakingConfigurationInput) SetRuleSetName(v string) *UpdateMa } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateMatchmakingConfigurationOutput type UpdateMatchmakingConfigurationOutput struct { _ struct{} `type:"structure"` @@ -18261,7 +18422,6 @@ func (s *UpdateMatchmakingConfigurationOutput) SetConfiguration(v *MatchmakingCo } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateRuntimeConfigurationInput type UpdateRuntimeConfigurationInput struct { _ struct{} `type:"structure"` @@ -18325,7 +18485,6 @@ func (s *UpdateRuntimeConfigurationInput) SetRuntimeConfiguration(v *RuntimeConf } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/UpdateRuntimeConfigurationOutput type UpdateRuntimeConfigurationOutput struct { _ struct{} `type:"structure"` @@ -18351,7 +18510,6 @@ func (s *UpdateRuntimeConfigurationOutput) SetRuntimeConfiguration(v *RuntimeCon } // Represents the input for a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ValidateMatchmakingRuleSetInput type ValidateMatchmakingRuleSetInput struct { _ struct{} `type:"structure"` @@ -18394,7 +18552,6 @@ func (s *ValidateMatchmakingRuleSetInput) SetRuleSetBody(v string) *ValidateMatc } // Represents the returned data in response to a request action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/ValidateMatchmakingRuleSetOutput type ValidateMatchmakingRuleSetOutput struct { _ struct{} `type:"structure"` @@ -18436,7 +18593,6 @@ func (s *ValidateMatchmakingRuleSetOutput) SetValid(v bool) *ValidateMatchmaking // * DescribeVpcPeeringConnections // // * DeleteVpcPeeringConnection -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/VpcPeeringAuthorization type VpcPeeringAuthorization struct { _ struct{} `type:"structure"` @@ -18519,7 +18675,6 @@ func (s *VpcPeeringAuthorization) SetPeerVpcId(v string) *VpcPeeringAuthorizatio // * DescribeVpcPeeringConnections // // * DeleteVpcPeeringConnection -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/VpcPeeringConnection type VpcPeeringConnection struct { _ struct{} `type:"structure"` @@ -18601,9 +18756,8 @@ func (s *VpcPeeringConnection) SetVpcPeeringConnectionId(v string) *VpcPeeringCo // Represents status information for a VPC peering connection. Status is associated // with a VpcPeeringConnection object. Status codes and messages are provided -// from EC2 (). (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_VpcPeeringConnectionStateReason.html) +// from EC2 (see VpcPeeringConnectionStateReason (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_VpcPeeringConnectionStateReason.html)). // Connection status information is also communicated as a fleet Event. -// See also, https://docs.aws.amazon.com/goto/WebAPI/gamelift-2015-10-01/VpcPeeringConnectionStatus type VpcPeeringConnectionStatus struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/gamelift/doc.go b/vendor/github.com/aws/aws-sdk-go/service/gamelift/doc.go index d73c39d65..2f8437e32 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/gamelift/doc.go +++ b/vendor/github.com/aws/aws-sdk-go/service/gamelift/doc.go @@ -4,11 +4,11 @@ // requests to Amazon GameLift. // // Amazon GameLift is a managed service for developers who need a scalable, -// dedicated server solution for their multiplayer games. Amazon GameLift provides -// tools for the following tasks: (1) acquire computing resources and deploy -// game servers, (2) scale game server capacity to meet player demand, (3) host -// game sessions and manage player access, and (4) track in-depth metrics on -// player usage and server performance. +// dedicated server solution for their multiplayer games. Use Amazon GameLift +// for these tasks: (1) set up computing resources and deploy your game servers, +// (2) run game sessions and get players into games, (3) automatically scale +// your resources to meet player demand and manage costs, and (4) track in-depth +// metrics on game server performance and player usage. // // The Amazon GameLift service API includes two important function sets: // @@ -43,13 +43,13 @@ // a subset of key API actions, which can be called from either the AWS CLI // or programmatically. See Testing an Integration (http://docs.aws.amazon.com/gamelift/latest/developerguide/integration-testing-local.html). // -// MORE RESOURCES +// Learn more // -// * Amazon GameLift Developer Guide (http://docs.aws.amazon.com/gamelift/latest/developerguide/) -// -- Learn more about Amazon GameLift features and how to use them. +// * Developer Guide (http://docs.aws.amazon.com/gamelift/latest/developerguide/) +// -- Read about Amazon GameLift features and how to use them. // -// * Lumberyard and Amazon GameLift Tutorials (https://gamedev.amazon.com/forums/tutorials) -// -- Get started fast with walkthroughs and sample projects. +// * Tutorials (https://gamedev.amazon.com/forums/tutorials) -- Get started +// fast with walkthroughs and sample projects. // // * GameDev Blog (http://aws.amazon.com/blogs/gamedev/) -- Stay up to date // with new features and techniques. @@ -57,9 +57,10 @@ // * GameDev Forums (https://gamedev.amazon.com/forums/spaces/123/gamelift-discussion.html) // -- Connect with the GameDev community. // -// * Amazon GameLift Document History (http://docs.aws.amazon.com/gamelift/latest/developerguide/doc-history.html) -// -- See changes to the Amazon GameLift service, SDKs, and documentation, -// as well as links to release notes. +// * Release notes (http://aws.amazon.com/releasenotes/Amazon-GameLift/) +// and document history (http://docs.aws.amazon.com/gamelift/latest/developerguide/doc-history.html) +// -- Stay current with updates to the Amazon GameLift service, SDKs, and +// documentation. // // API SUMMARY // @@ -103,6 +104,9 @@ // AcceptMatch -- Register that a player accepts a proposed match, for matches // that require player acceptance. // +// StartMatchBackfill - Request additional player matches to fill empty slots +// in an existing game session. +// // StopMatchmaking -- Cancel a matchmaking request. // // * Manage game session data @@ -141,8 +145,8 @@ // * Manage game builds // // CreateBuild -- Create a new build using files stored in an Amazon S3 bucket. -// (Update uploading permissions with RequestUploadCredentials.) To create -// a build and upload files from a local path, use the AWS CLI command upload-build. +// To create a build and upload files from a local path, use the AWS CLI +// command upload-build. // // ListBuilds -- Get a list of all builds uploaded to a Amazon GameLift region. // diff --git a/vendor/github.com/aws/aws-sdk-go/service/glue/api.go b/vendor/github.com/aws/aws-sdk-go/service/glue/api.go index 96398b1f2..3e172586c 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/glue/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/glue/api.go @@ -668,8 +668,9 @@ func (c *Glue) CreateClassifierRequest(input *CreateClassifierInput) (req *reque // CreateClassifier API operation for AWS Glue. // -// Creates a classifier in the user's account. This may be either a GrokClassifier -// or an XMLClassifier. +// Creates a classifier in the user's account. This may be a GrokClassifier, +// an XMLClassifier, or abbrev JsonClassifier, depending on which field of the +// request is present. // // 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 @@ -6659,7 +6660,8 @@ func (c *Glue) UpdateClassifierRequest(input *UpdateClassifierInput) (req *reque // UpdateClassifier API operation for AWS Glue. // -// Modifies an existing classifier (either a GrokClassifier or an XMLClassifier). +// Modifies an existing classifier (a GrokClassifier, XMLClassifier, or JsonClassifier, +// depending on which field is present). // // 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 @@ -7603,7 +7605,6 @@ func (c *Glue) UpdateUserDefinedFunctionWithContext(ctx aws.Context, input *Upda } // Defines an action to be initiated by a trigger. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/Action type Action struct { _ struct{} `type:"structure"` @@ -7660,7 +7661,6 @@ func (s *Action) SetJobName(v string) *Action { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchCreatePartitionRequest type BatchCreatePartitionInput struct { _ struct{} `type:"structure"` @@ -7756,7 +7756,6 @@ func (s *BatchCreatePartitionInput) SetTableName(v string) *BatchCreatePartition return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchCreatePartitionResponse type BatchCreatePartitionOutput struct { _ struct{} `type:"structure"` @@ -7780,7 +7779,6 @@ func (s *BatchCreatePartitionOutput) SetErrors(v []*PartitionError) *BatchCreate return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchDeleteConnectionRequest type BatchDeleteConnectionInput struct { _ struct{} `type:"structure"` @@ -7832,7 +7830,6 @@ func (s *BatchDeleteConnectionInput) SetConnectionNameList(v []*string) *BatchDe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchDeleteConnectionResponse type BatchDeleteConnectionOutput struct { _ struct{} `type:"structure"` @@ -7866,7 +7863,6 @@ func (s *BatchDeleteConnectionOutput) SetSucceeded(v []*string) *BatchDeleteConn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchDeletePartitionRequest type BatchDeletePartitionInput struct { _ struct{} `type:"structure"` @@ -7962,7 +7958,6 @@ func (s *BatchDeletePartitionInput) SetTableName(v string) *BatchDeletePartition return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchDeletePartitionResponse type BatchDeletePartitionOutput struct { _ struct{} `type:"structure"` @@ -7986,7 +7981,6 @@ func (s *BatchDeletePartitionOutput) SetErrors(v []*PartitionError) *BatchDelete return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchDeleteTableRequest type BatchDeleteTableInput struct { _ struct{} `type:"structure"` @@ -8056,7 +8050,6 @@ func (s *BatchDeleteTableInput) SetTablesToDelete(v []*string) *BatchDeleteTable return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchDeleteTableResponse type BatchDeleteTableOutput struct { _ struct{} `type:"structure"` @@ -8080,7 +8073,6 @@ func (s *BatchDeleteTableOutput) SetErrors(v []*TableError) *BatchDeleteTableOut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchDeleteTableVersionRequest type BatchDeleteTableVersionInput struct { _ struct{} `type:"structure"` @@ -8167,7 +8159,6 @@ func (s *BatchDeleteTableVersionInput) SetVersionIds(v []*string) *BatchDeleteTa return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchDeleteTableVersionResponse type BatchDeleteTableVersionOutput struct { _ struct{} `type:"structure"` @@ -8191,7 +8182,6 @@ func (s *BatchDeleteTableVersionOutput) SetErrors(v []*TableVersionError) *Batch return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchGetPartitionRequest type BatchGetPartitionInput struct { _ struct{} `type:"structure"` @@ -8287,7 +8277,6 @@ func (s *BatchGetPartitionInput) SetTableName(v string) *BatchGetPartitionInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchGetPartitionResponse type BatchGetPartitionOutput struct { _ struct{} `type:"structure"` @@ -8322,7 +8311,6 @@ func (s *BatchGetPartitionOutput) SetUnprocessedKeys(v []*PartitionValueList) *B } // Records an error that occurred when attempting to stop a specified JobRun. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchStopJobRunError type BatchStopJobRunError struct { _ struct{} `type:"structure"` @@ -8364,7 +8352,6 @@ func (s *BatchStopJobRunError) SetJobRunId(v string) *BatchStopJobRunError { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchStopJobRunRequest type BatchStopJobRunInput struct { _ struct{} `type:"structure"` @@ -8423,7 +8410,6 @@ func (s *BatchStopJobRunInput) SetJobRunIds(v []*string) *BatchStopJobRunInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchStopJobRunResponse type BatchStopJobRunOutput struct { _ struct{} `type:"structure"` @@ -8458,7 +8444,6 @@ func (s *BatchStopJobRunOutput) SetSuccessfulSubmissions(v []*BatchStopJobRunSuc } // Records a successful request to stop a specified JobRun. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/BatchStopJobRunSuccessfulSubmission type BatchStopJobRunSuccessfulSubmission struct { _ struct{} `type:"structure"` @@ -8492,7 +8477,6 @@ func (s *BatchStopJobRunSuccessfulSubmission) SetJobRunId(v string) *BatchStopJo } // Specifies a table definition in the Data Catalog. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CatalogEntry type CatalogEntry struct { _ struct{} `type:"structure"` @@ -8552,7 +8536,6 @@ func (s *CatalogEntry) SetTableName(v string) *CatalogEntry { } // A structure containing migration status information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CatalogImportStatus type CatalogImportStatus struct { _ struct{} `type:"structure"` @@ -8600,15 +8583,17 @@ func (s *CatalogImportStatus) SetImportedBy(v string) *CatalogImportStatus { // file is in a format it can handle, and if it is, the classifier creates a // schema in the form of a StructType object that matches that data format. // -// A classifier can be either a grok classifier or an XML classifier, specified -// in one or the other field of the Classifier object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/Classifier +// A classifier can be a grok classifier, an XML classifier, or a JSON classifier, +// asspecified in one of the fields in the Classifier object. type Classifier struct { _ struct{} `type:"structure"` // A GrokClassifier object. GrokClassifier *GrokClassifier `type:"structure"` + // A JsonClassifier object. + JsonClassifier *JsonClassifier `type:"structure"` + // An XMLClassifier object. XMLClassifier *XMLClassifier `type:"structure"` } @@ -8629,6 +8614,12 @@ func (s *Classifier) SetGrokClassifier(v *GrokClassifier) *Classifier { return s } +// SetJsonClassifier sets the JsonClassifier field's value. +func (s *Classifier) SetJsonClassifier(v *JsonClassifier) *Classifier { + s.JsonClassifier = v + return s +} + // SetXMLClassifier sets the XMLClassifier field's value. func (s *Classifier) SetXMLClassifier(v *XMLClassifier) *Classifier { s.XMLClassifier = v @@ -8636,7 +8627,6 @@ func (s *Classifier) SetXMLClassifier(v *XMLClassifier) *Classifier { } // Represents a directional edge in a directed acyclic graph (DAG). -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CodeGenEdge type CodeGenEdge struct { _ struct{} `type:"structure"` @@ -8705,7 +8695,6 @@ func (s *CodeGenEdge) SetTargetParameter(v string) *CodeGenEdge { } // Represents a node in a directed acyclic graph (DAG) -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CodeGenNode type CodeGenNode struct { _ struct{} `type:"structure"` @@ -8795,7 +8784,6 @@ func (s *CodeGenNode) SetNodeType(v string) *CodeGenNode { } // An argument or property of a node. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CodeGenNodeArg type CodeGenNodeArg struct { _ struct{} `type:"structure"` @@ -8858,7 +8846,6 @@ func (s *CodeGenNodeArg) SetValue(v string) *CodeGenNodeArg { } // A column in a Table. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/Column type Column struct { _ struct{} `type:"structure"` @@ -8919,7 +8906,6 @@ func (s *Column) SetType(v string) *Column { } // Defines a condition under which a trigger fires. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/Condition type Condition struct { _ struct{} `type:"structure"` @@ -8977,7 +8963,6 @@ func (s *Condition) SetState(v string) *Condition { } // Defines a connection to a data source. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/Connection type Connection struct { _ struct{} `type:"structure"` @@ -9076,7 +9061,6 @@ func (s *Connection) SetPhysicalConnectionRequirements(v *PhysicalConnectionRequ } // A structure used to specify a connection to create or update. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/ConnectionInput type ConnectionInput struct { _ struct{} `type:"structure"` @@ -9181,7 +9165,6 @@ func (s *ConnectionInput) SetPhysicalConnectionRequirements(v *PhysicalConnectio } // Specifies the connections used by a job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/ConnectionsList type ConnectionsList struct { _ struct{} `type:"structure"` @@ -9208,7 +9191,6 @@ func (s *ConnectionsList) SetConnections(v []*string) *ConnectionsList { // Specifies a crawler program that examines a data source and uses classifiers // to try to determine its schema. If successful, the crawler records metadata // concerning the data source in the AWS Glue Data Catalog. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/Crawler type Crawler struct { _ struct{} `type:"structure"` @@ -9380,7 +9362,6 @@ func (s *Crawler) SetVersion(v int64) *Crawler { } // Metrics for a specified crawler. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CrawlerMetrics type CrawlerMetrics struct { _ struct{} `type:"structure"` @@ -9469,7 +9450,6 @@ func (s *CrawlerMetrics) SetTimeLeftSeconds(v float64) *CrawlerMetrics { } // Specifies data stores to crawl. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CrawlerTargets type CrawlerTargets struct { _ struct{} `type:"structure"` @@ -9502,13 +9482,15 @@ func (s *CrawlerTargets) SetS3Targets(v []*S3Target) *CrawlerTargets { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateClassifierRequest type CreateClassifierInput struct { _ struct{} `type:"structure"` // A GrokClassifier object specifying the classifier to create. GrokClassifier *CreateGrokClassifierRequest `type:"structure"` + // A JsonClassifier object specifying the classifier to create. + JsonClassifier *CreateJsonClassifierRequest `type:"structure"` + // An XMLClassifier object specifying the classifier to create. XMLClassifier *CreateXMLClassifierRequest `type:"structure"` } @@ -9531,6 +9513,11 @@ func (s *CreateClassifierInput) Validate() error { invalidParams.AddNested("GrokClassifier", err.(request.ErrInvalidParams)) } } + if s.JsonClassifier != nil { + if err := s.JsonClassifier.Validate(); err != nil { + invalidParams.AddNested("JsonClassifier", err.(request.ErrInvalidParams)) + } + } if s.XMLClassifier != nil { if err := s.XMLClassifier.Validate(); err != nil { invalidParams.AddNested("XMLClassifier", err.(request.ErrInvalidParams)) @@ -9549,13 +9536,18 @@ func (s *CreateClassifierInput) SetGrokClassifier(v *CreateGrokClassifierRequest return s } +// SetJsonClassifier sets the JsonClassifier field's value. +func (s *CreateClassifierInput) SetJsonClassifier(v *CreateJsonClassifierRequest) *CreateClassifierInput { + s.JsonClassifier = v + return s +} + // SetXMLClassifier sets the XMLClassifier field's value. func (s *CreateClassifierInput) SetXMLClassifier(v *CreateXMLClassifierRequest) *CreateClassifierInput { s.XMLClassifier = v return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateClassifierResponse type CreateClassifierOutput struct { _ struct{} `type:"structure"` } @@ -9570,7 +9562,6 @@ func (s CreateClassifierOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateConnectionRequest type CreateConnectionInput struct { _ struct{} `type:"structure"` @@ -9627,7 +9618,6 @@ func (s *CreateConnectionInput) SetConnectionInput(v *ConnectionInput) *CreateCo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateConnectionResponse type CreateConnectionOutput struct { _ struct{} `type:"structure"` } @@ -9642,7 +9632,6 @@ func (s CreateConnectionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateCrawlerRequest type CreateCrawlerInput struct { _ struct{} `type:"structure"` @@ -9795,7 +9784,6 @@ func (s *CreateCrawlerInput) SetTargets(v *CrawlerTargets) *CreateCrawlerInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateCrawlerResponse type CreateCrawlerOutput struct { _ struct{} `type:"structure"` } @@ -9810,7 +9798,6 @@ func (s CreateCrawlerOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateDatabaseRequest type CreateDatabaseInput struct { _ struct{} `type:"structure"` @@ -9867,7 +9854,6 @@ func (s *CreateDatabaseInput) SetDatabaseInput(v *DatabaseInput) *CreateDatabase return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateDatabaseResponse type CreateDatabaseOutput struct { _ struct{} `type:"structure"` } @@ -9882,7 +9868,6 @@ func (s CreateDatabaseOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateDevEndpointRequest type CreateDevEndpointInput struct { _ struct{} `type:"structure"` @@ -10001,7 +9986,6 @@ func (s *CreateDevEndpointInput) SetSubnetId(v string) *CreateDevEndpointInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateDevEndpointResponse type CreateDevEndpointOutput struct { _ struct{} `type:"structure"` @@ -10145,7 +10129,6 @@ func (s *CreateDevEndpointOutput) SetZeppelinRemoteSparkInterpreterPort(v int64) } // Specifies a grok classifier for CreateClassifier to create. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateGrokClassifierRequest type CreateGrokClassifierRequest struct { _ struct{} `type:"structure"` @@ -10228,7 +10211,6 @@ func (s *CreateGrokClassifierRequest) SetName(v string) *CreateGrokClassifierReq return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateJobRequest type CreateJobInput struct { _ struct{} `type:"structure"` @@ -10377,7 +10359,6 @@ func (s *CreateJobInput) SetRole(v string) *CreateJobInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateJobResponse type CreateJobOutput struct { _ struct{} `type:"structure"` @@ -10401,7 +10382,64 @@ func (s *CreateJobOutput) SetName(v string) *CreateJobOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreatePartitionRequest +// Specifies a JSON classifier for CreateClassifier to create. +type CreateJsonClassifierRequest struct { + _ struct{} `type:"structure"` + + // A JsonPath string defining the JSON data for the classifier to classify. + // AWS Glue supports a subset of JsonPath, as described in Writing JsonPath + // Custom Classifiers (https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html#custom-classifier-json). + // + // JsonPath is a required field + JsonPath *string `type:"string" required:"true"` + + // The name of the classifier. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateJsonClassifierRequest) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateJsonClassifierRequest) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateJsonClassifierRequest) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateJsonClassifierRequest"} + if s.JsonPath == nil { + invalidParams.Add(request.NewErrParamRequired("JsonPath")) + } + 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 +} + +// SetJsonPath sets the JsonPath field's value. +func (s *CreateJsonClassifierRequest) SetJsonPath(v string) *CreateJsonClassifierRequest { + s.JsonPath = &v + return s +} + +// SetName sets the Name field's value. +func (s *CreateJsonClassifierRequest) SetName(v string) *CreateJsonClassifierRequest { + s.Name = &v + return s +} + type CreatePartitionInput struct { _ struct{} `type:"structure"` @@ -10492,7 +10530,6 @@ func (s *CreatePartitionInput) SetTableName(v string) *CreatePartitionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreatePartitionResponse type CreatePartitionOutput struct { _ struct{} `type:"structure"` } @@ -10507,7 +10544,6 @@ func (s CreatePartitionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateScriptRequest type CreateScriptInput struct { _ struct{} `type:"structure"` @@ -10579,7 +10615,6 @@ func (s *CreateScriptInput) SetLanguage(v string) *CreateScriptInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateScriptResponse type CreateScriptOutput struct { _ struct{} `type:"structure"` @@ -10612,7 +10647,6 @@ func (s *CreateScriptOutput) SetScalaCode(v string) *CreateScriptOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateTableRequest type CreateTableInput struct { _ struct{} `type:"structure"` @@ -10687,7 +10721,6 @@ func (s *CreateTableInput) SetTableInput(v *TableInput) *CreateTableInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateTableResponse type CreateTableOutput struct { _ struct{} `type:"structure"` } @@ -10702,7 +10735,6 @@ func (s CreateTableOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateTriggerRequest type CreateTriggerInput struct { _ struct{} `type:"structure"` @@ -10821,7 +10853,6 @@ func (s *CreateTriggerInput) SetType(v string) *CreateTriggerInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateTriggerResponse type CreateTriggerOutput struct { _ struct{} `type:"structure"` @@ -10845,7 +10876,6 @@ func (s *CreateTriggerOutput) SetName(v string) *CreateTriggerOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateUserDefinedFunctionRequest type CreateUserDefinedFunctionInput struct { _ struct{} `type:"structure"` @@ -10919,7 +10949,6 @@ func (s *CreateUserDefinedFunctionInput) SetFunctionInput(v *UserDefinedFunction return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateUserDefinedFunctionResponse type CreateUserDefinedFunctionOutput struct { _ struct{} `type:"structure"` } @@ -10935,7 +10964,6 @@ func (s CreateUserDefinedFunctionOutput) GoString() string { } // Specifies an XML classifier for CreateClassifier to create. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/CreateXMLClassifierRequest type CreateXMLClassifierRequest struct { _ struct{} `type:"structure"` @@ -11006,7 +11034,6 @@ func (s *CreateXMLClassifierRequest) SetRowTag(v string) *CreateXMLClassifierReq // The Database object represents a logical grouping of tables that may reside // in a Hive metastore or an RDBMS. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/Database type Database struct { _ struct{} `type:"structure"` @@ -11070,7 +11097,6 @@ func (s *Database) SetParameters(v map[string]*string) *Database { } // The structure used to create or update a database. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DatabaseInput type DatabaseInput struct { _ struct{} `type:"structure"` @@ -11143,7 +11169,6 @@ func (s *DatabaseInput) SetParameters(v map[string]*string) *DatabaseInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteClassifierRequest type DeleteClassifierInput struct { _ struct{} `type:"structure"` @@ -11185,7 +11210,6 @@ func (s *DeleteClassifierInput) SetName(v string) *DeleteClassifierInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteClassifierResponse type DeleteClassifierOutput struct { _ struct{} `type:"structure"` } @@ -11200,7 +11224,6 @@ func (s DeleteClassifierOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteConnectionRequest type DeleteConnectionInput struct { _ struct{} `type:"structure"` @@ -11255,7 +11278,6 @@ func (s *DeleteConnectionInput) SetConnectionName(v string) *DeleteConnectionInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteConnectionResponse type DeleteConnectionOutput struct { _ struct{} `type:"structure"` } @@ -11270,7 +11292,6 @@ func (s DeleteConnectionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteCrawlerRequest type DeleteCrawlerInput struct { _ struct{} `type:"structure"` @@ -11312,7 +11333,6 @@ func (s *DeleteCrawlerInput) SetName(v string) *DeleteCrawlerInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteCrawlerResponse type DeleteCrawlerOutput struct { _ struct{} `type:"structure"` } @@ -11327,7 +11347,6 @@ func (s DeleteCrawlerOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteDatabaseRequest type DeleteDatabaseInput struct { _ struct{} `type:"structure"` @@ -11383,7 +11402,6 @@ func (s *DeleteDatabaseInput) SetName(v string) *DeleteDatabaseInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteDatabaseResponse type DeleteDatabaseOutput struct { _ struct{} `type:"structure"` } @@ -11398,7 +11416,6 @@ func (s DeleteDatabaseOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteDevEndpointRequest type DeleteDevEndpointInput struct { _ struct{} `type:"structure"` @@ -11437,7 +11454,6 @@ func (s *DeleteDevEndpointInput) SetEndpointName(v string) *DeleteDevEndpointInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteDevEndpointResponse type DeleteDevEndpointOutput struct { _ struct{} `type:"structure"` } @@ -11452,7 +11468,6 @@ func (s DeleteDevEndpointOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteJobRequest type DeleteJobInput struct { _ struct{} `type:"structure"` @@ -11494,7 +11509,6 @@ func (s *DeleteJobInput) SetJobName(v string) *DeleteJobInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteJobResponse type DeleteJobOutput struct { _ struct{} `type:"structure"` @@ -11518,7 +11532,6 @@ func (s *DeleteJobOutput) SetJobName(v string) *DeleteJobOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeletePartitionRequest type DeletePartitionInput struct { _ struct{} `type:"structure"` @@ -11604,7 +11617,6 @@ func (s *DeletePartitionInput) SetTableName(v string) *DeletePartitionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeletePartitionResponse type DeletePartitionOutput struct { _ struct{} `type:"structure"` } @@ -11619,7 +11631,6 @@ func (s DeletePartitionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteTableRequest type DeleteTableInput struct { _ struct{} `type:"structure"` @@ -11693,7 +11704,6 @@ func (s *DeleteTableInput) SetName(v string) *DeleteTableInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteTableResponse type DeleteTableOutput struct { _ struct{} `type:"structure"` } @@ -11708,7 +11718,6 @@ func (s DeleteTableOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteTableVersionRequest type DeleteTableVersionInput struct { _ struct{} `type:"structure"` @@ -11798,7 +11807,6 @@ func (s *DeleteTableVersionInput) SetVersionId(v string) *DeleteTableVersionInpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteTableVersionResponse type DeleteTableVersionOutput struct { _ struct{} `type:"structure"` } @@ -11813,7 +11821,6 @@ func (s DeleteTableVersionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteTriggerRequest type DeleteTriggerInput struct { _ struct{} `type:"structure"` @@ -11855,7 +11862,6 @@ func (s *DeleteTriggerInput) SetName(v string) *DeleteTriggerInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteTriggerResponse type DeleteTriggerOutput struct { _ struct{} `type:"structure"` @@ -11879,7 +11885,6 @@ func (s *DeleteTriggerOutput) SetName(v string) *DeleteTriggerOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteUserDefinedFunctionRequest type DeleteUserDefinedFunctionInput struct { _ struct{} `type:"structure"` @@ -11951,7 +11956,6 @@ func (s *DeleteUserDefinedFunctionInput) SetFunctionName(v string) *DeleteUserDe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DeleteUserDefinedFunctionResponse type DeleteUserDefinedFunctionOutput struct { _ struct{} `type:"structure"` } @@ -11967,7 +11971,6 @@ func (s DeleteUserDefinedFunctionOutput) GoString() string { } // A development endpoint where a developer can remotely debug ETL scripts. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DevEndpoint type DevEndpoint struct { _ struct{} `type:"structure"` @@ -12155,7 +12158,6 @@ func (s *DevEndpoint) SetZeppelinRemoteSparkInterpreterPort(v int64) *DevEndpoin } // Custom libraries to be loaded into a DevEndpoint. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/DevEndpointCustomLibraries type DevEndpointCustomLibraries struct { _ struct{} `type:"structure"` @@ -12199,7 +12201,6 @@ func (s *DevEndpointCustomLibraries) SetExtraPythonLibsS3Path(v string) *DevEndp } // Contains details about an error. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/ErrorDetail type ErrorDetail struct { _ struct{} `type:"structure"` @@ -12233,7 +12234,6 @@ func (s *ErrorDetail) SetErrorMessage(v string) *ErrorDetail { } // An execution property of a job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/ExecutionProperty type ExecutionProperty struct { _ struct{} `type:"structure"` @@ -12259,7 +12259,6 @@ func (s *ExecutionProperty) SetMaxConcurrentRuns(v int64) *ExecutionProperty { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetCatalogImportStatusRequest type GetCatalogImportStatusInput struct { _ struct{} `type:"structure"` @@ -12297,7 +12296,6 @@ func (s *GetCatalogImportStatusInput) SetCatalogId(v string) *GetCatalogImportSt return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetCatalogImportStatusResponse type GetCatalogImportStatusOutput struct { _ struct{} `type:"structure"` @@ -12321,7 +12319,6 @@ func (s *GetCatalogImportStatusOutput) SetImportStatus(v *CatalogImportStatus) * return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetClassifierRequest type GetClassifierInput struct { _ struct{} `type:"structure"` @@ -12363,7 +12360,6 @@ func (s *GetClassifierInput) SetName(v string) *GetClassifierInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetClassifierResponse type GetClassifierOutput struct { _ struct{} `type:"structure"` @@ -12387,7 +12383,6 @@ func (s *GetClassifierOutput) SetClassifier(v *Classifier) *GetClassifierOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetClassifiersRequest type GetClassifiersInput struct { _ struct{} `type:"structure"` @@ -12433,7 +12428,6 @@ func (s *GetClassifiersInput) SetNextToken(v string) *GetClassifiersInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetClassifiersResponse type GetClassifiersOutput struct { _ struct{} `type:"structure"` @@ -12466,7 +12460,6 @@ func (s *GetClassifiersOutput) SetNextToken(v string) *GetClassifiersOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetConnectionRequest type GetConnectionInput struct { _ struct{} `type:"structure"` @@ -12521,7 +12514,6 @@ func (s *GetConnectionInput) SetName(v string) *GetConnectionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetConnectionResponse type GetConnectionOutput struct { _ struct{} `type:"structure"` @@ -12546,7 +12538,6 @@ func (s *GetConnectionOutput) SetConnection(v *Connection) *GetConnectionOutput } // Filters the connection definitions returned by the GetConnections API. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetConnectionsFilter type GetConnectionsFilter struct { _ struct{} `type:"structure"` @@ -12581,7 +12572,6 @@ func (s *GetConnectionsFilter) SetMatchCriteria(v []*string) *GetConnectionsFilt return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetConnectionsRequest type GetConnectionsInput struct { _ struct{} `type:"structure"` @@ -12649,7 +12639,6 @@ func (s *GetConnectionsInput) SetNextToken(v string) *GetConnectionsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetConnectionsResponse type GetConnectionsOutput struct { _ struct{} `type:"structure"` @@ -12683,7 +12672,6 @@ func (s *GetConnectionsOutput) SetNextToken(v string) *GetConnectionsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetCrawlerRequest type GetCrawlerInput struct { _ struct{} `type:"structure"` @@ -12725,7 +12713,6 @@ func (s *GetCrawlerInput) SetName(v string) *GetCrawlerInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetCrawlerMetricsRequest type GetCrawlerMetricsInput struct { _ struct{} `type:"structure"` @@ -12780,7 +12767,6 @@ func (s *GetCrawlerMetricsInput) SetNextToken(v string) *GetCrawlerMetricsInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetCrawlerMetricsResponse type GetCrawlerMetricsOutput struct { _ struct{} `type:"structure"` @@ -12814,7 +12800,6 @@ func (s *GetCrawlerMetricsOutput) SetNextToken(v string) *GetCrawlerMetricsOutpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetCrawlerResponse type GetCrawlerOutput struct { _ struct{} `type:"structure"` @@ -12838,7 +12823,6 @@ func (s *GetCrawlerOutput) SetCrawler(v *Crawler) *GetCrawlerOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetCrawlersRequest type GetCrawlersInput struct { _ struct{} `type:"structure"` @@ -12884,7 +12868,6 @@ func (s *GetCrawlersInput) SetNextToken(v string) *GetCrawlersInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetCrawlersResponse type GetCrawlersOutput struct { _ struct{} `type:"structure"` @@ -12918,7 +12901,6 @@ func (s *GetCrawlersOutput) SetNextToken(v string) *GetCrawlersOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetDatabaseRequest type GetDatabaseInput struct { _ struct{} `type:"structure"` @@ -12974,7 +12956,6 @@ func (s *GetDatabaseInput) SetName(v string) *GetDatabaseInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetDatabaseResponse type GetDatabaseOutput struct { _ struct{} `type:"structure"` @@ -12998,7 +12979,6 @@ func (s *GetDatabaseOutput) SetDatabase(v *Database) *GetDatabaseOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetDatabasesRequest type GetDatabasesInput struct { _ struct{} `type:"structure"` @@ -13057,7 +13037,6 @@ func (s *GetDatabasesInput) SetNextToken(v string) *GetDatabasesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetDatabasesResponse type GetDatabasesOutput struct { _ struct{} `type:"structure"` @@ -13093,7 +13072,6 @@ func (s *GetDatabasesOutput) SetNextToken(v string) *GetDatabasesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetDataflowGraphRequest type GetDataflowGraphInput struct { _ struct{} `type:"structure"` @@ -13117,7 +13095,6 @@ func (s *GetDataflowGraphInput) SetPythonScript(v string) *GetDataflowGraphInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetDataflowGraphResponse type GetDataflowGraphOutput struct { _ struct{} `type:"structure"` @@ -13150,7 +13127,6 @@ func (s *GetDataflowGraphOutput) SetDagNodes(v []*CodeGenNode) *GetDataflowGraph return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetDevEndpointRequest type GetDevEndpointInput struct { _ struct{} `type:"structure"` @@ -13189,7 +13165,6 @@ func (s *GetDevEndpointInput) SetEndpointName(v string) *GetDevEndpointInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetDevEndpointResponse type GetDevEndpointOutput struct { _ struct{} `type:"structure"` @@ -13213,7 +13188,6 @@ func (s *GetDevEndpointOutput) SetDevEndpoint(v *DevEndpoint) *GetDevEndpointOut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetDevEndpointsRequest type GetDevEndpointsInput struct { _ struct{} `type:"structure"` @@ -13259,7 +13233,6 @@ func (s *GetDevEndpointsInput) SetNextToken(v string) *GetDevEndpointsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetDevEndpointsResponse type GetDevEndpointsOutput struct { _ struct{} `type:"structure"` @@ -13292,7 +13265,6 @@ func (s *GetDevEndpointsOutput) SetNextToken(v string) *GetDevEndpointsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetJobRequest type GetJobInput struct { _ struct{} `type:"structure"` @@ -13334,7 +13306,6 @@ func (s *GetJobInput) SetJobName(v string) *GetJobInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetJobResponse type GetJobOutput struct { _ struct{} `type:"structure"` @@ -13358,7 +13329,6 @@ func (s *GetJobOutput) SetJob(v *Job) *GetJobOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetJobRunRequest type GetJobRunInput struct { _ struct{} `type:"structure"` @@ -13426,7 +13396,6 @@ func (s *GetJobRunInput) SetRunId(v string) *GetJobRunInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetJobRunResponse type GetJobRunOutput struct { _ struct{} `type:"structure"` @@ -13450,7 +13419,6 @@ func (s *GetJobRunOutput) SetJobRun(v *JobRun) *GetJobRunOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetJobRunsRequest type GetJobRunsInput struct { _ struct{} `type:"structure"` @@ -13513,7 +13481,6 @@ func (s *GetJobRunsInput) SetNextToken(v string) *GetJobRunsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetJobRunsResponse type GetJobRunsOutput struct { _ struct{} `type:"structure"` @@ -13546,7 +13513,6 @@ func (s *GetJobRunsOutput) SetNextToken(v string) *GetJobRunsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetJobsRequest type GetJobsInput struct { _ struct{} `type:"structure"` @@ -13592,7 +13558,6 @@ func (s *GetJobsInput) SetNextToken(v string) *GetJobsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetJobsResponse type GetJobsOutput struct { _ struct{} `type:"structure"` @@ -13625,7 +13590,6 @@ func (s *GetJobsOutput) SetNextToken(v string) *GetJobsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetMappingRequest type GetMappingInput struct { _ struct{} `type:"structure"` @@ -13702,7 +13666,6 @@ func (s *GetMappingInput) SetSource(v *CatalogEntry) *GetMappingInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetMappingResponse type GetMappingOutput struct { _ struct{} `type:"structure"` @@ -13728,7 +13691,6 @@ func (s *GetMappingOutput) SetMapping(v []*MappingEntry) *GetMappingOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetPartitionRequest type GetPartitionInput struct { _ struct{} `type:"structure"` @@ -13814,7 +13776,6 @@ func (s *GetPartitionInput) SetTableName(v string) *GetPartitionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetPartitionResponse type GetPartitionOutput struct { _ struct{} `type:"structure"` @@ -13838,7 +13799,6 @@ func (s *GetPartitionOutput) SetPartition(v *Partition) *GetPartitionOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetPartitionsRequest type GetPartitionsInput struct { _ struct{} `type:"structure"` @@ -13954,7 +13914,6 @@ func (s *GetPartitionsInput) SetTableName(v string) *GetPartitionsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetPartitionsResponse type GetPartitionsOutput struct { _ struct{} `type:"structure"` @@ -13988,7 +13947,6 @@ func (s *GetPartitionsOutput) SetPartitions(v []*Partition) *GetPartitionsOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetPlanRequest type GetPlanInput struct { _ struct{} `type:"structure"` @@ -14088,7 +14046,6 @@ func (s *GetPlanInput) SetSource(v *CatalogEntry) *GetPlanInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetPlanResponse type GetPlanOutput struct { _ struct{} `type:"structure"` @@ -14121,7 +14078,6 @@ func (s *GetPlanOutput) SetScalaCode(v string) *GetPlanOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTableRequest type GetTableInput struct { _ struct{} `type:"structure"` @@ -14195,7 +14151,6 @@ func (s *GetTableInput) SetName(v string) *GetTableInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTableResponse type GetTableOutput struct { _ struct{} `type:"structure"` @@ -14219,7 +14174,6 @@ func (s *GetTableOutput) SetTable(v *Table) *GetTableOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTableVersionRequest type GetTableVersionInput struct { _ struct{} `type:"structure"` @@ -14304,7 +14258,6 @@ func (s *GetTableVersionInput) SetVersionId(v string) *GetTableVersionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTableVersionResponse type GetTableVersionOutput struct { _ struct{} `type:"structure"` @@ -14328,7 +14281,6 @@ func (s *GetTableVersionOutput) SetTableVersion(v *TableVersion) *GetTableVersio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTableVersionsRequest type GetTableVersionsInput struct { _ struct{} `type:"structure"` @@ -14422,7 +14374,6 @@ func (s *GetTableVersionsInput) SetTableName(v string) *GetTableVersionsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTableVersionsResponse type GetTableVersionsOutput struct { _ struct{} `type:"structure"` @@ -14456,7 +14407,6 @@ func (s *GetTableVersionsOutput) SetTableVersions(v []*TableVersion) *GetTableVe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTablesRequest type GetTablesInput struct { _ struct{} `type:"structure"` @@ -14543,7 +14493,6 @@ func (s *GetTablesInput) SetNextToken(v string) *GetTablesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTablesResponse type GetTablesOutput struct { _ struct{} `type:"structure"` @@ -14576,7 +14525,6 @@ func (s *GetTablesOutput) SetTableList(v []*Table) *GetTablesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTriggerRequest type GetTriggerInput struct { _ struct{} `type:"structure"` @@ -14618,7 +14566,6 @@ func (s *GetTriggerInput) SetName(v string) *GetTriggerInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTriggerResponse type GetTriggerOutput struct { _ struct{} `type:"structure"` @@ -14642,7 +14589,6 @@ func (s *GetTriggerOutput) SetTrigger(v *Trigger) *GetTriggerOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTriggersRequest type GetTriggersInput struct { _ struct{} `type:"structure"` @@ -14702,7 +14648,6 @@ func (s *GetTriggersInput) SetNextToken(v string) *GetTriggersInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetTriggersResponse type GetTriggersOutput struct { _ struct{} `type:"structure"` @@ -14735,7 +14680,6 @@ func (s *GetTriggersOutput) SetTriggers(v []*Trigger) *GetTriggersOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetUserDefinedFunctionRequest type GetUserDefinedFunctionInput struct { _ struct{} `type:"structure"` @@ -14807,7 +14751,6 @@ func (s *GetUserDefinedFunctionInput) SetFunctionName(v string) *GetUserDefinedF return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetUserDefinedFunctionResponse type GetUserDefinedFunctionOutput struct { _ struct{} `type:"structure"` @@ -14831,7 +14774,6 @@ func (s *GetUserDefinedFunctionOutput) SetUserDefinedFunction(v *UserDefinedFunc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetUserDefinedFunctionsRequest type GetUserDefinedFunctionsInput struct { _ struct{} `type:"structure"` @@ -14925,7 +14867,6 @@ func (s *GetUserDefinedFunctionsInput) SetPattern(v string) *GetUserDefinedFunct return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GetUserDefinedFunctionsResponse type GetUserDefinedFunctionsOutput struct { _ struct{} `type:"structure"` @@ -14960,7 +14901,6 @@ func (s *GetUserDefinedFunctionsOutput) SetUserDefinedFunctions(v []*UserDefined } // A classifier that uses grok patterns. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/GrokClassifier type GrokClassifier struct { _ struct{} `type:"structure"` @@ -15047,7 +14987,6 @@ func (s *GrokClassifier) SetVersion(v int64) *GrokClassifier { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/ImportCatalogToGlueRequest type ImportCatalogToGlueInput struct { _ struct{} `type:"structure"` @@ -15085,7 +15024,6 @@ func (s *ImportCatalogToGlueInput) SetCatalogId(v string) *ImportCatalogToGlueIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/ImportCatalogToGlueResponse type ImportCatalogToGlueOutput struct { _ struct{} `type:"structure"` } @@ -15101,7 +15039,6 @@ func (s ImportCatalogToGlueOutput) GoString() string { } // Specifies a JDBC data store to crawl. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/JdbcTarget type JdbcTarget struct { _ struct{} `type:"structure"` @@ -15145,7 +15082,6 @@ func (s *JdbcTarget) SetPath(v string) *JdbcTarget { } // Specifies a job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/Job type Job struct { _ struct{} `type:"structure"` @@ -15285,7 +15221,6 @@ func (s *Job) SetRole(v string) *Job { } // Defines a point which a job can resume processing. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/JobBookmarkEntry type JobBookmarkEntry struct { _ struct{} `type:"structure"` @@ -15346,7 +15281,6 @@ func (s *JobBookmarkEntry) SetVersion(v int64) *JobBookmarkEntry { } // Specifies code that executes a job. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/JobCommand type JobCommand struct { _ struct{} `type:"structure"` @@ -15380,7 +15314,6 @@ func (s *JobCommand) SetScriptLocation(v string) *JobCommand { } // Contains information about a job run. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/JobRun type JobRun struct { _ struct{} `type:"structure"` @@ -15531,7 +15464,6 @@ func (s *JobRun) SetTriggerName(v string) *JobRun { // Specifies information used to update an existing job. Note that the previous // job definition will be completely overwritten by this information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/JobUpdate type JobUpdate struct { _ struct{} `type:"structure"` @@ -15643,8 +15575,73 @@ func (s *JobUpdate) SetRole(v string) *JobUpdate { return s } +// A classifier for JSON content. +type JsonClassifier struct { + _ struct{} `type:"structure"` + + // The time this classifier was registered. + CreationTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // A JsonPath string defining the JSON data for the classifier to classify. + // AWS Glue supports a subset of JsonPath, as described in Writing JsonPath + // Custom Classifiers (https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html#custom-classifier-json). + // + // JsonPath is a required field + JsonPath *string `type:"string" required:"true"` + + // The time this classifier was last updated. + LastUpdated *time.Time `type:"timestamp" timestampFormat:"unix"` + + // The name of the classifier. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` + + // The version of this classifier. + Version *int64 `type:"long"` +} + +// String returns the string representation +func (s JsonClassifier) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s JsonClassifier) GoString() string { + return s.String() +} + +// SetCreationTime sets the CreationTime field's value. +func (s *JsonClassifier) SetCreationTime(v time.Time) *JsonClassifier { + s.CreationTime = &v + return s +} + +// SetJsonPath sets the JsonPath field's value. +func (s *JsonClassifier) SetJsonPath(v string) *JsonClassifier { + s.JsonPath = &v + return s +} + +// SetLastUpdated sets the LastUpdated field's value. +func (s *JsonClassifier) SetLastUpdated(v time.Time) *JsonClassifier { + s.LastUpdated = &v + return s +} + +// SetName sets the Name field's value. +func (s *JsonClassifier) SetName(v string) *JsonClassifier { + s.Name = &v + return s +} + +// SetVersion sets the Version field's value. +func (s *JsonClassifier) SetVersion(v int64) *JsonClassifier { + s.Version = &v + return s +} + // Status and error information about the most recent crawl. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/LastCrawlInfo type LastCrawlInfo struct { _ struct{} `type:"structure"` @@ -15714,7 +15711,6 @@ func (s *LastCrawlInfo) SetStatus(v string) *LastCrawlInfo { } // The location of resources. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/Location type Location struct { _ struct{} `type:"structure"` @@ -15778,7 +15774,6 @@ func (s *Location) SetS3(v []*CodeGenNodeArg) *Location { } // Defines a mapping. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/MappingEntry type MappingEntry struct { _ struct{} `type:"structure"` @@ -15848,7 +15843,6 @@ func (s *MappingEntry) SetTargetType(v string) *MappingEntry { } // Specifies the sort order of a sorted column. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/Order type Order struct { _ struct{} `type:"structure"` @@ -15906,7 +15900,6 @@ func (s *Order) SetSortOrder(v int64) *Order { } // Represents a slice of table data. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/Partition type Partition struct { _ struct{} `type:"structure"` @@ -15994,7 +15987,6 @@ func (s *Partition) SetValues(v []*string) *Partition { } // Contains information about a partition error. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/PartitionError type PartitionError struct { _ struct{} `type:"structure"` @@ -16028,7 +16020,6 @@ func (s *PartitionError) SetPartitionValues(v []*string) *PartitionError { } // The structure used to create and update a partion. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/PartitionInput type PartitionInput struct { _ struct{} `type:"structure"` @@ -16104,7 +16095,6 @@ func (s *PartitionInput) SetValues(v []*string) *PartitionInput { } // Contains a list of values defining partitions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/PartitionValueList type PartitionValueList struct { _ struct{} `type:"structure"` @@ -16144,7 +16134,6 @@ func (s *PartitionValueList) SetValues(v []*string) *PartitionValueList { } // Specifies the physical requirements for a connection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/PhysicalConnectionRequirements type PhysicalConnectionRequirements struct { _ struct{} `type:"structure"` @@ -16204,7 +16193,6 @@ func (s *PhysicalConnectionRequirements) SetSubnetId(v string) *PhysicalConnecti // A job run that was used in the predicate of a conditional trigger that triggered // this job run. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/Predecessor type Predecessor struct { _ struct{} `type:"structure"` @@ -16238,7 +16226,6 @@ func (s *Predecessor) SetRunId(v string) *Predecessor { } // Defines the predicate of the trigger, which determines when it fires. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/Predicate type Predicate struct { _ struct{} `type:"structure"` @@ -16291,7 +16278,6 @@ func (s *Predicate) SetLogical(v string) *Predicate { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/ResetJobBookmarkRequest type ResetJobBookmarkInput struct { _ struct{} `type:"structure"` @@ -16330,7 +16316,6 @@ func (s *ResetJobBookmarkInput) SetJobName(v string) *ResetJobBookmarkInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/ResetJobBookmarkResponse type ResetJobBookmarkOutput struct { _ struct{} `type:"structure"` @@ -16355,7 +16340,6 @@ func (s *ResetJobBookmarkOutput) SetJobBookmarkEntry(v *JobBookmarkEntry) *Reset } // URIs for function resources. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/ResourceUri type ResourceUri struct { _ struct{} `type:"structure"` @@ -16402,7 +16386,6 @@ func (s *ResourceUri) SetUri(v string) *ResourceUri { } // Specifies a data store in Amazon S3. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/S3Target type S3Target struct { _ struct{} `type:"structure"` @@ -16437,7 +16420,6 @@ func (s *S3Target) SetPath(v string) *S3Target { } // A scheduling object using a cron statement to schedule an event. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/Schedule type Schedule struct { _ struct{} `type:"structure"` @@ -16474,7 +16456,6 @@ func (s *Schedule) SetState(v string) *Schedule { } // Crawler policy for update and deletion behavior. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/SchemaChangePolicy type SchemaChangePolicy struct { _ struct{} `type:"structure"` @@ -16509,7 +16490,6 @@ func (s *SchemaChangePolicy) SetUpdateBehavior(v string) *SchemaChangePolicy { // Defines a non-overlapping region of a table's partitions, allowing multiple // requests to be executed in parallel. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/Segment type Segment struct { _ struct{} `type:"structure"` @@ -16569,7 +16549,6 @@ func (s *Segment) SetTotalSegments(v int64) *Segment { // Information about a serialization/deserialization program (SerDe) which serves // as an extractor and loader. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/SerDeInfo type SerDeInfo struct { _ struct{} `type:"structure"` @@ -16629,7 +16608,6 @@ func (s *SerDeInfo) SetSerializationLibrary(v string) *SerDeInfo { // Specifies skewed values in a table. Skewed are ones that occur with very // high frequency. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/SkewedInfo type SkewedInfo struct { _ struct{} `type:"structure"` @@ -16671,7 +16649,6 @@ func (s *SkewedInfo) SetSkewedColumnValues(v []*string) *SkewedInfo { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StartCrawlerRequest type StartCrawlerInput struct { _ struct{} `type:"structure"` @@ -16713,7 +16690,6 @@ func (s *StartCrawlerInput) SetName(v string) *StartCrawlerInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StartCrawlerResponse type StartCrawlerOutput struct { _ struct{} `type:"structure"` } @@ -16728,7 +16704,6 @@ func (s StartCrawlerOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StartCrawlerScheduleRequest type StartCrawlerScheduleInput struct { _ struct{} `type:"structure"` @@ -16770,7 +16745,6 @@ func (s *StartCrawlerScheduleInput) SetCrawlerName(v string) *StartCrawlerSchedu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StartCrawlerScheduleResponse type StartCrawlerScheduleOutput struct { _ struct{} `type:"structure"` } @@ -16785,7 +16759,6 @@ func (s StartCrawlerScheduleOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StartJobRunRequest type StartJobRunInput struct { _ struct{} `type:"structure"` @@ -16873,7 +16846,6 @@ func (s *StartJobRunInput) SetJobRunId(v string) *StartJobRunInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StartJobRunResponse type StartJobRunOutput struct { _ struct{} `type:"structure"` @@ -16897,7 +16869,6 @@ func (s *StartJobRunOutput) SetJobRunId(v string) *StartJobRunOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StartTriggerRequest type StartTriggerInput struct { _ struct{} `type:"structure"` @@ -16939,7 +16910,6 @@ func (s *StartTriggerInput) SetName(v string) *StartTriggerInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StartTriggerResponse type StartTriggerOutput struct { _ struct{} `type:"structure"` @@ -16963,7 +16933,6 @@ func (s *StartTriggerOutput) SetName(v string) *StartTriggerOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StopCrawlerRequest type StopCrawlerInput struct { _ struct{} `type:"structure"` @@ -17005,7 +16974,6 @@ func (s *StopCrawlerInput) SetName(v string) *StopCrawlerInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StopCrawlerResponse type StopCrawlerOutput struct { _ struct{} `type:"structure"` } @@ -17020,7 +16988,6 @@ func (s StopCrawlerOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StopCrawlerScheduleRequest type StopCrawlerScheduleInput struct { _ struct{} `type:"structure"` @@ -17062,7 +17029,6 @@ func (s *StopCrawlerScheduleInput) SetCrawlerName(v string) *StopCrawlerSchedule return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StopCrawlerScheduleResponse type StopCrawlerScheduleOutput struct { _ struct{} `type:"structure"` } @@ -17077,7 +17043,6 @@ func (s StopCrawlerScheduleOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StopTriggerRequest type StopTriggerInput struct { _ struct{} `type:"structure"` @@ -17119,7 +17084,6 @@ func (s *StopTriggerInput) SetName(v string) *StopTriggerInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StopTriggerResponse type StopTriggerOutput struct { _ struct{} `type:"structure"` @@ -17144,7 +17108,6 @@ func (s *StopTriggerOutput) SetName(v string) *StopTriggerOutput { } // Describes the physical storage of table data. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/StorageDescriptor type StorageDescriptor struct { _ struct{} `type:"structure"` @@ -17309,7 +17272,6 @@ func (s *StorageDescriptor) SetStoredAsSubDirectories(v bool) *StorageDescriptor } // Represents a collection of related data organized in columns and rows. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/Table type Table struct { _ struct{} `type:"structure"` @@ -17475,7 +17437,6 @@ func (s *Table) SetViewOriginalText(v string) *Table { } // An error record for table operations. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/TableError type TableError struct { _ struct{} `type:"structure"` @@ -17509,7 +17470,6 @@ func (s *TableError) SetTableName(v string) *TableError { } // Structure used to create or update the table. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/TableInput type TableInput struct { _ struct{} `type:"structure"` @@ -17672,7 +17632,6 @@ func (s *TableInput) SetViewOriginalText(v string) *TableInput { } // Specifies a version of a table. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/TableVersion type TableVersion struct { _ struct{} `type:"structure"` @@ -17706,7 +17665,6 @@ func (s *TableVersion) SetVersionId(v string) *TableVersion { } // An error record for table-version operations. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/TableVersionError type TableVersionError struct { _ struct{} `type:"structure"` @@ -17749,7 +17707,6 @@ func (s *TableVersionError) SetVersionId(v string) *TableVersionError { } // Information about a specific trigger. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/Trigger type Trigger struct { _ struct{} `type:"structure"` @@ -17841,7 +17798,6 @@ func (s *Trigger) SetType(v string) *Trigger { // A structure used to provide information used to update a trigger. This object // will update the the previous trigger definition by overwriting it completely. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/TriggerUpdate type TriggerUpdate struct { _ struct{} `type:"structure"` @@ -17932,13 +17888,15 @@ func (s *TriggerUpdate) SetSchedule(v string) *TriggerUpdate { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateClassifierRequest type UpdateClassifierInput struct { _ struct{} `type:"structure"` // A GrokClassifier object with updated fields. GrokClassifier *UpdateGrokClassifierRequest `type:"structure"` + // A JsonClassifier object with updated fields. + JsonClassifier *UpdateJsonClassifierRequest `type:"structure"` + // An XMLClassifier object with updated fields. XMLClassifier *UpdateXMLClassifierRequest `type:"structure"` } @@ -17961,6 +17919,11 @@ func (s *UpdateClassifierInput) Validate() error { invalidParams.AddNested("GrokClassifier", err.(request.ErrInvalidParams)) } } + if s.JsonClassifier != nil { + if err := s.JsonClassifier.Validate(); err != nil { + invalidParams.AddNested("JsonClassifier", err.(request.ErrInvalidParams)) + } + } if s.XMLClassifier != nil { if err := s.XMLClassifier.Validate(); err != nil { invalidParams.AddNested("XMLClassifier", err.(request.ErrInvalidParams)) @@ -17979,13 +17942,18 @@ func (s *UpdateClassifierInput) SetGrokClassifier(v *UpdateGrokClassifierRequest return s } +// SetJsonClassifier sets the JsonClassifier field's value. +func (s *UpdateClassifierInput) SetJsonClassifier(v *UpdateJsonClassifierRequest) *UpdateClassifierInput { + s.JsonClassifier = v + return s +} + // SetXMLClassifier sets the XMLClassifier field's value. func (s *UpdateClassifierInput) SetXMLClassifier(v *UpdateXMLClassifierRequest) *UpdateClassifierInput { s.XMLClassifier = v return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateClassifierResponse type UpdateClassifierOutput struct { _ struct{} `type:"structure"` } @@ -18000,7 +17968,6 @@ func (s UpdateClassifierOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateConnectionRequest type UpdateConnectionInput struct { _ struct{} `type:"structure"` @@ -18074,7 +18041,6 @@ func (s *UpdateConnectionInput) SetName(v string) *UpdateConnectionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateConnectionResponse type UpdateConnectionOutput struct { _ struct{} `type:"structure"` } @@ -18089,7 +18055,6 @@ func (s UpdateConnectionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateCrawlerRequest type UpdateCrawlerInput struct { _ struct{} `type:"structure"` @@ -18106,7 +18071,7 @@ type UpdateCrawlerInput struct { // table, rather than detect this information separately for each partition. // Use the following JSON string to specify that behavior: // - // Example:  '{ "Version": 1.0, "CrawlerOutput": { "Partitions": { "AddOrUpdateBehavior": + // Example: '{ "Version": 1.0, "CrawlerOutput": { "Partitions": { "AddOrUpdateBehavior": // "InheritFromTable" } } }' Configuration *string `type:"string"` @@ -18227,7 +18192,6 @@ func (s *UpdateCrawlerInput) SetTargets(v *CrawlerTargets) *UpdateCrawlerInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateCrawlerResponse type UpdateCrawlerOutput struct { _ struct{} `type:"structure"` } @@ -18242,7 +18206,6 @@ func (s UpdateCrawlerOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateCrawlerScheduleRequest type UpdateCrawlerScheduleInput struct { _ struct{} `type:"structure"` @@ -18296,7 +18259,6 @@ func (s *UpdateCrawlerScheduleInput) SetSchedule(v string) *UpdateCrawlerSchedul return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateCrawlerScheduleResponse type UpdateCrawlerScheduleOutput struct { _ struct{} `type:"structure"` } @@ -18311,7 +18273,6 @@ func (s UpdateCrawlerScheduleOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateDatabaseRequest type UpdateDatabaseInput struct { _ struct{} `type:"structure"` @@ -18387,7 +18348,6 @@ func (s *UpdateDatabaseInput) SetName(v string) *UpdateDatabaseInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateDatabaseResponse type UpdateDatabaseOutput struct { _ struct{} `type:"structure"` } @@ -18402,7 +18362,6 @@ func (s UpdateDatabaseOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateDevEndpointRequest type UpdateDevEndpointInput struct { _ struct{} `type:"structure"` @@ -18469,7 +18428,6 @@ func (s *UpdateDevEndpointInput) SetUpdateEtlLibraries(v bool) *UpdateDevEndpoin return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateDevEndpointResponse type UpdateDevEndpointOutput struct { _ struct{} `type:"structure"` } @@ -18485,7 +18443,6 @@ func (s UpdateDevEndpointOutput) GoString() string { } // Specifies a grok classifier to update when passed to UpdateClassifier. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateGrokClassifierRequest type UpdateGrokClassifierRequest struct { _ struct{} `type:"structure"` @@ -18558,7 +18515,6 @@ func (s *UpdateGrokClassifierRequest) SetName(v string) *UpdateGrokClassifierReq return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateJobRequest type UpdateJobInput struct { _ struct{} `type:"structure"` @@ -18614,7 +18570,6 @@ func (s *UpdateJobInput) SetJobUpdate(v *JobUpdate) *UpdateJobInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateJobResponse type UpdateJobOutput struct { _ struct{} `type:"structure"` @@ -18638,7 +18593,59 @@ func (s *UpdateJobOutput) SetJobName(v string) *UpdateJobOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdatePartitionRequest +// Specifies a JSON classifier to be updated. +type UpdateJsonClassifierRequest struct { + _ struct{} `type:"structure"` + + // A JsonPath string defining the JSON data for the classifier to classify. + // AWS Glue supports a subset of JsonPath, as described in Writing JsonPath + // Custom Classifiers (https://docs.aws.amazon.com/glue/latest/dg/custom-classifier.html#custom-classifier-json). + JsonPath *string `type:"string"` + + // The name of the classifier. + // + // Name is a required field + Name *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateJsonClassifierRequest) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateJsonClassifierRequest) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateJsonClassifierRequest) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateJsonClassifierRequest"} + 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 +} + +// SetJsonPath sets the JsonPath field's value. +func (s *UpdateJsonClassifierRequest) SetJsonPath(v string) *UpdateJsonClassifierRequest { + s.JsonPath = &v + return s +} + +// SetName sets the Name field's value. +func (s *UpdateJsonClassifierRequest) SetName(v string) *UpdateJsonClassifierRequest { + s.Name = &v + return s +} + type UpdatePartitionInput struct { _ struct{} `type:"structure"` @@ -18743,7 +18750,6 @@ func (s *UpdatePartitionInput) SetTableName(v string) *UpdatePartitionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdatePartitionResponse type UpdatePartitionOutput struct { _ struct{} `type:"structure"` } @@ -18758,7 +18764,6 @@ func (s UpdatePartitionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateTableRequest type UpdateTableInput struct { _ struct{} `type:"structure"` @@ -18844,7 +18849,6 @@ func (s *UpdateTableInput) SetTableInput(v *TableInput) *UpdateTableInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateTableResponse type UpdateTableOutput struct { _ struct{} `type:"structure"` } @@ -18859,7 +18863,6 @@ func (s UpdateTableOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateTriggerRequest type UpdateTriggerInput struct { _ struct{} `type:"structure"` @@ -18920,7 +18923,6 @@ func (s *UpdateTriggerInput) SetTriggerUpdate(v *TriggerUpdate) *UpdateTriggerIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateTriggerResponse type UpdateTriggerOutput struct { _ struct{} `type:"structure"` @@ -18944,7 +18946,6 @@ func (s *UpdateTriggerOutput) SetTrigger(v *Trigger) *UpdateTriggerOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateUserDefinedFunctionRequest type UpdateUserDefinedFunctionInput struct { _ struct{} `type:"structure"` @@ -19035,7 +19036,6 @@ func (s *UpdateUserDefinedFunctionInput) SetFunctionName(v string) *UpdateUserDe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateUserDefinedFunctionResponse type UpdateUserDefinedFunctionOutput struct { _ struct{} `type:"structure"` } @@ -19051,7 +19051,6 @@ func (s UpdateUserDefinedFunctionOutput) GoString() string { } // Specifies an XML classifier to be updated. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UpdateXMLClassifierRequest type UpdateXMLClassifierRequest struct { _ struct{} `type:"structure"` @@ -19116,7 +19115,6 @@ func (s *UpdateXMLClassifierRequest) SetRowTag(v string) *UpdateXMLClassifierReq } // Represents the equivalent of a Hive user-defined function (UDF) definition. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UserDefinedFunction type UserDefinedFunction struct { _ struct{} `type:"structure"` @@ -19186,7 +19184,6 @@ func (s *UserDefinedFunction) SetResourceUris(v []*ResourceUri) *UserDefinedFunc } // A structure used to create or updata a user-defined function. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/UserDefinedFunctionInput type UserDefinedFunctionInput struct { _ struct{} `type:"structure"` @@ -19276,7 +19273,6 @@ func (s *UserDefinedFunctionInput) SetResourceUris(v []*ResourceUri) *UserDefine } // A classifier for XML content. -// See also, https://docs.aws.amazon.com/goto/WebAPI/glue-2017-03-31/XMLClassifier type XMLClassifier struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/guardduty/api.go b/vendor/github.com/aws/aws-sdk-go/service/guardduty/api.go index a7016cf83..ac7f4ae93 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/guardduty/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/guardduty/api.go @@ -3405,7 +3405,6 @@ func (c *GuardDuty) UpdateThreatIntelSetWithContext(ctx aws.Context, input *Upda } // AcceptInvitation request body. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/AcceptInvitationRequest type AcceptInvitationInput struct { _ struct{} `type:"structure"` @@ -3460,7 +3459,6 @@ func (s *AcceptInvitationInput) SetMasterId(v string) *AcceptInvitationInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/AcceptInvitationResponse type AcceptInvitationOutput struct { _ struct{} `type:"structure"` } @@ -3477,7 +3475,6 @@ func (s AcceptInvitationOutput) GoString() string { // The IAM access key details (IAM user information) of a user that engaged // in the activity that prompted GuardDuty to generate a finding. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/AccessKeyDetails type AccessKeyDetails struct { _ struct{} `type:"structure"` @@ -3529,7 +3526,6 @@ func (s *AccessKeyDetails) SetUserType(v string) *AccessKeyDetails { } // An object containing the member's accountId and email address. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/AccountDetail type AccountDetail struct { _ struct{} `type:"structure"` @@ -3563,7 +3559,6 @@ func (s *AccountDetail) SetEmail(v string) *AccountDetail { } // Information about the activity described in a finding. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/Action type Action struct { _ struct{} `type:"structure"` @@ -3615,7 +3610,6 @@ func (s *Action) SetNetworkConnectionAction(v *NetworkConnectionAction) *Action } // Archive Findings Request -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ArchiveFindingsRequest type ArchiveFindingsInput struct { _ struct{} `type:"structure"` @@ -3661,7 +3655,6 @@ func (s *ArchiveFindingsInput) SetFindingIds(v []*string) *ArchiveFindingsInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ArchiveFindingsResponse type ArchiveFindingsOutput struct { _ struct{} `type:"structure"` } @@ -3677,7 +3670,6 @@ func (s ArchiveFindingsOutput) GoString() string { } // Information about the AWS_API_CALL action described in this finding. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/AwsApiCallAction type AwsApiCallAction struct { _ struct{} `type:"structure"` @@ -3738,7 +3730,6 @@ func (s *AwsApiCallAction) SetServiceName(v string) *AwsApiCallAction { } // City information of the remote IP address. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/City type City struct { _ struct{} `type:"structure"` @@ -3764,7 +3755,6 @@ func (s *City) SetCityName(v string) *City { // Finding attribute (for example, accountId) for which conditions and values // must be specified when querying findings. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/Condition type Condition struct { _ struct{} `type:"structure"` @@ -3840,7 +3830,6 @@ func (s *Condition) SetNeq(v []*string) *Condition { } // Country information of the remote IP address. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/Country type Country struct { _ struct{} `type:"structure"` @@ -3874,7 +3863,6 @@ func (s *Country) SetCountryName(v string) *Country { } // Create Detector Request -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreateDetectorRequest type CreateDetectorInput struct { _ struct{} `type:"structure"` @@ -3899,7 +3887,6 @@ func (s *CreateDetectorInput) SetEnable(v bool) *CreateDetectorInput { } // CreateDetector response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreateDetectorResponse type CreateDetectorOutput struct { _ struct{} `type:"structure"` @@ -3924,7 +3911,6 @@ func (s *CreateDetectorOutput) SetDetectorId(v string) *CreateDetectorOutput { } // Create IP Set Request -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreateIPSetRequest type CreateIPSetInput struct { _ struct{} `type:"structure"` @@ -4001,7 +3987,6 @@ func (s *CreateIPSetInput) SetName(v string) *CreateIPSetInput { } // CreateIPSet response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreateIPSetResponse type CreateIPSetOutput struct { _ struct{} `type:"structure"` @@ -4026,7 +4011,6 @@ func (s *CreateIPSetOutput) SetIpSetId(v string) *CreateIPSetOutput { } // CreateMembers body -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreateMembersRequest type CreateMembersInput struct { _ struct{} `type:"structure"` @@ -4074,7 +4058,6 @@ func (s *CreateMembersInput) SetDetectorId(v string) *CreateMembersInput { } // CreateMembers response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreateMembersResponse type CreateMembersOutput struct { _ struct{} `type:"structure"` @@ -4100,7 +4083,6 @@ func (s *CreateMembersOutput) SetUnprocessedAccounts(v []*UnprocessedAccount) *C } // Create Sample Findings Request -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreateSampleFindingsRequest type CreateSampleFindingsInput struct { _ struct{} `type:"structure"` @@ -4146,7 +4128,6 @@ func (s *CreateSampleFindingsInput) SetFindingTypes(v []*string) *CreateSampleFi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreateSampleFindingsResponse type CreateSampleFindingsOutput struct { _ struct{} `type:"structure"` } @@ -4162,7 +4143,6 @@ func (s CreateSampleFindingsOutput) GoString() string { } // Create Threat Intel Set Request -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreateThreatIntelSetRequest type CreateThreatIntelSetInput struct { _ struct{} `type:"structure"` @@ -4238,7 +4218,6 @@ func (s *CreateThreatIntelSetInput) SetName(v string) *CreateThreatIntelSetInput } // CreateThreatIntelSet response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/CreateThreatIntelSetResponse type CreateThreatIntelSetOutput struct { _ struct{} `type:"structure"` @@ -4263,7 +4242,6 @@ func (s *CreateThreatIntelSetOutput) SetThreatIntelSetId(v string) *CreateThreat } // DeclineInvitations request body. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DeclineInvitationsRequest type DeclineInvitationsInput struct { _ struct{} `type:"structure"` @@ -4289,7 +4267,6 @@ func (s *DeclineInvitationsInput) SetAccountIds(v []*string) *DeclineInvitations } // DeclineInvitations response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DeclineInvitationsResponse type DeclineInvitationsOutput struct { _ struct{} `type:"structure"` @@ -4314,7 +4291,6 @@ func (s *DeclineInvitationsOutput) SetUnprocessedAccounts(v []*UnprocessedAccoun return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DeleteDetectorRequest type DeleteDetectorInput struct { _ struct{} `type:"structure"` @@ -4351,7 +4327,6 @@ func (s *DeleteDetectorInput) SetDetectorId(v string) *DeleteDetectorInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DeleteDetectorResponse type DeleteDetectorOutput struct { _ struct{} `type:"structure"` } @@ -4366,7 +4341,6 @@ func (s DeleteDetectorOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DeleteIPSetRequest type DeleteIPSetInput struct { _ struct{} `type:"structure"` @@ -4415,7 +4389,6 @@ func (s *DeleteIPSetInput) SetIpSetId(v string) *DeleteIPSetInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DeleteIPSetResponse type DeleteIPSetOutput struct { _ struct{} `type:"structure"` } @@ -4431,7 +4404,6 @@ func (s DeleteIPSetOutput) GoString() string { } // DeleteInvitations request body. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DeleteInvitationsRequest type DeleteInvitationsInput struct { _ struct{} `type:"structure"` @@ -4457,7 +4429,6 @@ func (s *DeleteInvitationsInput) SetAccountIds(v []*string) *DeleteInvitationsIn } // DeleteInvitations response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DeleteInvitationsResponse type DeleteInvitationsOutput struct { _ struct{} `type:"structure"` @@ -4483,7 +4454,6 @@ func (s *DeleteInvitationsOutput) SetUnprocessedAccounts(v []*UnprocessedAccount } // DeleteMembers request body. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DeleteMembersRequest type DeleteMembersInput struct { _ struct{} `type:"structure"` @@ -4530,7 +4500,6 @@ func (s *DeleteMembersInput) SetDetectorId(v string) *DeleteMembersInput { } // DeleteMembers response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DeleteMembersResponse type DeleteMembersOutput struct { _ struct{} `type:"structure"` @@ -4555,7 +4524,6 @@ func (s *DeleteMembersOutput) SetUnprocessedAccounts(v []*UnprocessedAccount) *D return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DeleteThreatIntelSetRequest type DeleteThreatIntelSetInput struct { _ struct{} `type:"structure"` @@ -4604,7 +4572,6 @@ func (s *DeleteThreatIntelSetInput) SetThreatIntelSetId(v string) *DeleteThreatI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DeleteThreatIntelSetResponse type DeleteThreatIntelSetOutput struct { _ struct{} `type:"structure"` } @@ -4619,7 +4586,6 @@ func (s DeleteThreatIntelSetOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DisassociateFromMasterAccountRequest type DisassociateFromMasterAccountInput struct { _ struct{} `type:"structure"` @@ -4656,7 +4622,6 @@ func (s *DisassociateFromMasterAccountInput) SetDetectorId(v string) *Disassocia return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DisassociateFromMasterAccountResponse type DisassociateFromMasterAccountOutput struct { _ struct{} `type:"structure"` } @@ -4672,7 +4637,6 @@ func (s DisassociateFromMasterAccountOutput) GoString() string { } // DisassociateMembers request body. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DisassociateMembersRequest type DisassociateMembersInput struct { _ struct{} `type:"structure"` @@ -4720,7 +4684,6 @@ func (s *DisassociateMembersInput) SetDetectorId(v string) *DisassociateMembersI } // DisassociateMembers response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DisassociateMembersResponse type DisassociateMembersOutput struct { _ struct{} `type:"structure"` @@ -4746,7 +4709,6 @@ func (s *DisassociateMembersOutput) SetUnprocessedAccounts(v []*UnprocessedAccou } // Information about the DNS_REQUEST action described in this finding. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DnsRequestAction type DnsRequestAction struct { _ struct{} `type:"structure"` @@ -4771,7 +4733,6 @@ func (s *DnsRequestAction) SetDomain(v string) *DnsRequestAction { } // Domain information for the AWS API call. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/DomainDetails type DomainDetails struct { _ struct{} `type:"structure"` } @@ -4787,7 +4748,6 @@ func (s DomainDetails) GoString() string { } // Representation of a abnormal or suspicious activity. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/Finding type Finding struct { _ struct{} `type:"structure"` @@ -4941,7 +4901,6 @@ func (s *Finding) SetUpdatedAt(v string) *Finding { } // Represents the criteria used for querying findings. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/FindingCriteria type FindingCriteria struct { _ struct{} `type:"structure"` @@ -4967,7 +4926,6 @@ func (s *FindingCriteria) SetCriterion(v map[string]*Condition) *FindingCriteria } // Finding statistics object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/FindingStatistics type FindingStatistics struct { _ struct{} `type:"structure"` @@ -4992,7 +4950,6 @@ func (s *FindingStatistics) SetCountBySeverity(v map[string]*int64) *FindingStat } // Location information of the remote IP address. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GeoLocation type GeoLocation struct { _ struct{} `type:"structure"` @@ -5025,7 +4982,6 @@ func (s *GeoLocation) SetLon(v float64) *GeoLocation { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetDetectorRequest type GetDetectorInput struct { _ struct{} `type:"structure"` @@ -5063,7 +5019,6 @@ func (s *GetDetectorInput) SetDetectorId(v string) *GetDetectorInput { } // GetDetector response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetDetectorResponse type GetDetectorOutput struct { _ struct{} `type:"structure"` @@ -5115,7 +5070,6 @@ func (s *GetDetectorOutput) SetUpdatedAt(v string) *GetDetectorOutput { } // Get Findings Request -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetFindingsRequest type GetFindingsInput struct { _ struct{} `type:"structure"` @@ -5171,7 +5125,6 @@ func (s *GetFindingsInput) SetSortCriteria(v *SortCriteria) *GetFindingsInput { } // GetFindings response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetFindingsResponse type GetFindingsOutput struct { _ struct{} `type:"structure"` @@ -5196,7 +5149,6 @@ func (s *GetFindingsOutput) SetFindings(v []*Finding) *GetFindingsOutput { } // Get Findings Statistics Request -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetFindingsStatisticsRequest type GetFindingsStatisticsInput struct { _ struct{} `type:"structure"` @@ -5252,7 +5204,6 @@ func (s *GetFindingsStatisticsInput) SetFindingStatisticTypes(v []*string) *GetF } // GetFindingsStatistics response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetFindingsStatisticsResponse type GetFindingsStatisticsOutput struct { _ struct{} `type:"structure"` @@ -5276,7 +5227,6 @@ func (s *GetFindingsStatisticsOutput) SetFindingStatistics(v *FindingStatistics) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetIPSetRequest type GetIPSetInput struct { _ struct{} `type:"structure"` @@ -5326,7 +5276,6 @@ func (s *GetIPSetInput) SetIpSetId(v string) *GetIPSetInput { } // GetIPSet response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetIPSetResponse type GetIPSetOutput struct { _ struct{} `type:"structure"` @@ -5379,7 +5328,6 @@ func (s *GetIPSetOutput) SetStatus(v string) *GetIPSetOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetInvitationsCountRequest type GetInvitationsCountInput struct { _ struct{} `type:"structure"` } @@ -5395,7 +5343,6 @@ func (s GetInvitationsCountInput) GoString() string { } // GetInvitationsCount response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetInvitationsCountResponse type GetInvitationsCountOutput struct { _ struct{} `type:"structure"` @@ -5419,7 +5366,6 @@ func (s *GetInvitationsCountOutput) SetInvitationsCount(v int64) *GetInvitations return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetMasterAccountRequest type GetMasterAccountInput struct { _ struct{} `type:"structure"` @@ -5457,7 +5403,6 @@ func (s *GetMasterAccountInput) SetDetectorId(v string) *GetMasterAccountInput { } // GetMasterAccount response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetMasterAccountResponse type GetMasterAccountOutput struct { _ struct{} `type:"structure"` @@ -5482,7 +5427,6 @@ func (s *GetMasterAccountOutput) SetMaster(v *Master) *GetMasterAccountOutput { } // GetMembers request body. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetMembersRequest type GetMembersInput struct { _ struct{} `type:"structure"` @@ -5529,7 +5473,6 @@ func (s *GetMembersInput) SetDetectorId(v string) *GetMembersInput { } // GetMembers response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetMembersResponse type GetMembersOutput struct { _ struct{} `type:"structure"` @@ -5563,7 +5506,6 @@ func (s *GetMembersOutput) SetUnprocessedAccounts(v []*UnprocessedAccount) *GetM return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetThreatIntelSetRequest type GetThreatIntelSetInput struct { _ struct{} `type:"structure"` @@ -5613,7 +5555,6 @@ func (s *GetThreatIntelSetInput) SetThreatIntelSetId(v string) *GetThreatIntelSe } // GetThreatIntelSet response object -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/GetThreatIntelSetResponse type GetThreatIntelSetOutput struct { _ struct{} `type:"structure"` @@ -5666,7 +5607,6 @@ func (s *GetThreatIntelSetOutput) SetStatus(v string) *GetThreatIntelSetOutput { } // The profile information of the EC2 instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/IamInstanceProfile type IamInstanceProfile struct { _ struct{} `type:"structure"` @@ -5701,7 +5641,6 @@ func (s *IamInstanceProfile) SetId(v string) *IamInstanceProfile { // The information about the EC2 instance associated with the activity that // prompted GuardDuty to generate a finding. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/InstanceDetails type InstanceDetails struct { _ struct{} `type:"structure"` @@ -5816,7 +5755,6 @@ func (s *InstanceDetails) SetTags(v []*Tag) *InstanceDetails { } // Invitation from an AWS account to become the current account's master. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/Invitation type Invitation struct { _ struct{} `type:"structure"` @@ -5868,7 +5806,6 @@ func (s *Invitation) SetRelationshipStatus(v string) *Invitation { } // InviteMembers request body. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/InviteMembersRequest type InviteMembersInput struct { _ struct{} `type:"structure"` @@ -5926,7 +5863,6 @@ func (s *InviteMembersInput) SetMessage(v string) *InviteMembersInput { } // InviteMembers response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/InviteMembersResponse type InviteMembersOutput struct { _ struct{} `type:"structure"` @@ -5951,7 +5887,6 @@ func (s *InviteMembersOutput) SetUnprocessedAccounts(v []*UnprocessedAccount) *I return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListDetectorsRequest type ListDetectorsInput struct { _ struct{} `type:"structure"` @@ -5998,7 +5933,6 @@ func (s *ListDetectorsInput) SetNextToken(v string) *ListDetectorsInput { } // ListDetectors response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListDetectorsResponse type ListDetectorsOutput struct { _ struct{} `type:"structure"` @@ -6035,7 +5969,6 @@ func (s *ListDetectorsOutput) SetNextToken(v string) *ListDetectorsOutput { } // List Findings Request -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListFindingsRequest type ListFindingsInput struct { _ struct{} `type:"structure"` @@ -6116,7 +6049,6 @@ func (s *ListFindingsInput) SetSortCriteria(v *SortCriteria) *ListFindingsInput } // ListFindings response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListFindingsResponse type ListFindingsOutput struct { _ struct{} `type:"structure"` @@ -6152,7 +6084,6 @@ func (s *ListFindingsOutput) SetNextToken(v string) *ListFindingsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListIPSetsRequest type ListIPSetsInput struct { _ struct{} `type:"structure"` @@ -6211,7 +6142,6 @@ func (s *ListIPSetsInput) SetNextToken(v string) *ListIPSetsInput { } // ListIPSets response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListIPSetsResponse type ListIPSetsOutput struct { _ struct{} `type:"structure"` @@ -6247,7 +6177,6 @@ func (s *ListIPSetsOutput) SetNextToken(v string) *ListIPSetsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListInvitationsRequest type ListInvitationsInput struct { _ struct{} `type:"structure"` @@ -6294,7 +6223,6 @@ func (s *ListInvitationsInput) SetNextToken(v string) *ListInvitationsInput { } // ListInvitations response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListInvitationsResponse type ListInvitationsOutput struct { _ struct{} `type:"structure"` @@ -6330,7 +6258,6 @@ func (s *ListInvitationsOutput) SetNextToken(v string) *ListInvitationsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListMembersRequest type ListMembersInput struct { _ struct{} `type:"structure"` @@ -6397,7 +6324,6 @@ func (s *ListMembersInput) SetOnlyAssociated(v string) *ListMembersInput { } // ListMembers response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListMembersResponse type ListMembersOutput struct { _ struct{} `type:"structure"` @@ -6433,7 +6359,6 @@ func (s *ListMembersOutput) SetNextToken(v string) *ListMembersOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListThreatIntelSetsRequest type ListThreatIntelSetsInput struct { _ struct{} `type:"structure"` @@ -6492,7 +6417,6 @@ func (s *ListThreatIntelSetsInput) SetNextToken(v string) *ListThreatIntelSetsIn } // ListThreatIntelSets response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ListThreatIntelSetsResponse type ListThreatIntelSetsOutput struct { _ struct{} `type:"structure"` @@ -6529,7 +6453,6 @@ func (s *ListThreatIntelSetsOutput) SetThreatIntelSetIds(v []*string) *ListThrea } // Local port information of the connection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/LocalPortDetails type LocalPortDetails struct { _ struct{} `type:"structure"` @@ -6563,7 +6486,6 @@ func (s *LocalPortDetails) SetPortName(v string) *LocalPortDetails { } // Contains details about the master account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/Master type Master struct { _ struct{} `type:"structure"` @@ -6615,7 +6537,6 @@ func (s *Master) SetRelationshipStatus(v string) *Master { } // Contains details about the member account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/Member type Member struct { _ struct{} `type:"structure"` @@ -6694,7 +6615,6 @@ func (s *Member) SetUpdatedAt(v string) *Member { } // Information about the NETWORK_CONNECTION action described in this finding. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/NetworkConnectionAction type NetworkConnectionAction struct { _ struct{} `type:"structure"` @@ -6764,7 +6684,6 @@ func (s *NetworkConnectionAction) SetRemotePortDetails(v *RemotePortDetails) *Ne } // The network interface information of the EC2 instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/NetworkInterface type NetworkInterface struct { _ struct{} `type:"structure"` @@ -6861,7 +6780,6 @@ func (s *NetworkInterface) SetVpcId(v string) *NetworkInterface { } // ISP Organization information of the remote IP address. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/Organization type Organization struct { _ struct{} `type:"structure"` @@ -6913,7 +6831,6 @@ func (s *Organization) SetOrg(v string) *Organization { } // Other private IP address information of the EC2 instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/PrivateIpAddressDetails type PrivateIpAddressDetails struct { _ struct{} `type:"structure"` @@ -6947,7 +6864,6 @@ func (s *PrivateIpAddressDetails) SetPrivateIpAddress(v string) *PrivateIpAddres } // The product code of the EC2 instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/ProductCode type ProductCode struct { _ struct{} `type:"structure"` @@ -6981,7 +6897,6 @@ func (s *ProductCode) SetProductType(v string) *ProductCode { } // Remote IP information of the connection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/RemoteIpDetails type RemoteIpDetails struct { _ struct{} `type:"structure"` @@ -7042,7 +6957,6 @@ func (s *RemoteIpDetails) SetOrganization(v *Organization) *RemoteIpDetails { } // Remote port information of the connection. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/RemotePortDetails type RemotePortDetails struct { _ struct{} `type:"structure"` @@ -7077,7 +6991,6 @@ func (s *RemotePortDetails) SetPortName(v string) *RemotePortDetails { // The AWS resource associated with the activity that prompted GuardDuty to // generate a finding. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/Resource type Resource struct { _ struct{} `type:"structure"` @@ -7122,7 +7035,6 @@ func (s *Resource) SetResourceType(v string) *Resource { } // Security groups associated with the EC2 instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/SecurityGroup type SecurityGroup struct { _ struct{} `type:"structure"` @@ -7156,7 +7068,6 @@ func (s *SecurityGroup) SetGroupName(v string) *SecurityGroup { } // Additional information assigned to the generated finding by GuardDuty. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/Service type Service struct { _ struct{} `type:"structure"` @@ -7255,7 +7166,6 @@ func (s *Service) SetUserFeedback(v string) *Service { } // Represents the criteria used for sorting findings. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/SortCriteria type SortCriteria struct { _ struct{} `type:"structure"` @@ -7290,7 +7200,6 @@ func (s *SortCriteria) SetOrderBy(v string) *SortCriteria { } // StartMonitoringMembers request body. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/StartMonitoringMembersRequest type StartMonitoringMembersInput struct { _ struct{} `type:"structure"` @@ -7338,7 +7247,6 @@ func (s *StartMonitoringMembersInput) SetDetectorId(v string) *StartMonitoringMe } // StartMonitoringMembers response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/StartMonitoringMembersResponse type StartMonitoringMembersOutput struct { _ struct{} `type:"structure"` @@ -7364,7 +7272,6 @@ func (s *StartMonitoringMembersOutput) SetUnprocessedAccounts(v []*UnprocessedAc } // StopMonitoringMembers request body. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/StopMonitoringMembersRequest type StopMonitoringMembersInput struct { _ struct{} `type:"structure"` @@ -7412,7 +7319,6 @@ func (s *StopMonitoringMembersInput) SetDetectorId(v string) *StopMonitoringMemb } // StopMonitoringMembers response object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/StopMonitoringMembersResponse type StopMonitoringMembersOutput struct { _ struct{} `type:"structure"` @@ -7438,7 +7344,6 @@ func (s *StopMonitoringMembersOutput) SetUnprocessedAccounts(v []*UnprocessedAcc } // A tag of the EC2 instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/Tag type Tag struct { _ struct{} `type:"structure"` @@ -7472,7 +7377,6 @@ func (s *Tag) SetValue(v string) *Tag { } // Unrchive Findings Request -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/UnarchiveFindingsRequest type UnarchiveFindingsInput struct { _ struct{} `type:"structure"` @@ -7518,7 +7422,6 @@ func (s *UnarchiveFindingsInput) SetFindingIds(v []*string) *UnarchiveFindingsIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/UnarchiveFindingsResponse type UnarchiveFindingsOutput struct { _ struct{} `type:"structure"` } @@ -7535,7 +7438,6 @@ func (s UnarchiveFindingsOutput) GoString() string { // An object containing the unprocessed account and a result string explaining // why it was unprocessed. -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/UnprocessedAccount type UnprocessedAccount struct { _ struct{} `type:"structure"` @@ -7569,7 +7471,6 @@ func (s *UnprocessedAccount) SetResult(v string) *UnprocessedAccount { } // Update Detector Request -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/UpdateDetectorRequest type UpdateDetectorInput struct { _ struct{} `type:"structure"` @@ -7616,7 +7517,6 @@ func (s *UpdateDetectorInput) SetEnable(v bool) *UpdateDetectorInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/UpdateDetectorResponse type UpdateDetectorOutput struct { _ struct{} `type:"structure"` } @@ -7632,7 +7532,6 @@ func (s UpdateDetectorOutput) GoString() string { } // Update findings feedback body -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/UpdateFindingsFeedbackRequest type UpdateFindingsFeedbackInput struct { _ struct{} `type:"structure"` @@ -7696,7 +7595,6 @@ func (s *UpdateFindingsFeedbackInput) SetFindingIds(v []*string) *UpdateFindings return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/UpdateFindingsFeedbackResponse type UpdateFindingsFeedbackOutput struct { _ struct{} `type:"structure"` } @@ -7712,7 +7610,6 @@ func (s UpdateFindingsFeedbackOutput) GoString() string { } // Update IP Set Request -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/UpdateIPSetRequest type UpdateIPSetInput struct { _ struct{} `type:"structure"` @@ -7788,7 +7685,6 @@ func (s *UpdateIPSetInput) SetName(v string) *UpdateIPSetInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/UpdateIPSetResponse type UpdateIPSetOutput struct { _ struct{} `type:"structure"` } @@ -7804,7 +7700,6 @@ func (s UpdateIPSetOutput) GoString() string { } // Update Threat Intel Set Request -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/UpdateThreatIntelSetRequest type UpdateThreatIntelSetInput struct { _ struct{} `type:"structure"` @@ -7882,7 +7777,6 @@ func (s *UpdateThreatIntelSetInput) SetThreatIntelSetId(v string) *UpdateThreatI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/guardduty-2017-11-28/UpdateThreatIntelSetResponse type UpdateThreatIntelSetOutput struct { _ struct{} `type:"structure"` } diff --git a/vendor/github.com/aws/aws-sdk-go/service/iam/api.go b/vendor/github.com/aws/aws-sdk-go/service/iam/api.go index b6da52721..f7878f23e 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/iam/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/iam/api.go @@ -13331,7 +13331,6 @@ func (c *IAM) UploadSigningCertificateWithContext(ctx aws.Context, input *Upload // You can get a secret access key only when you first create an access key; // you cannot recover the secret access key later. If you lose a secret access // key, you must create a new access key. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AccessKey type AccessKey struct { _ struct{} `type:"structure"` @@ -13404,7 +13403,6 @@ func (s *AccessKey) SetUserName(v string) *AccessKey { // // This data type is used as a response element in the GetAccessKeyLastUsed // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AccessKeyLastUsed type AccessKeyLastUsed struct { _ struct{} `type:"structure"` @@ -13482,7 +13480,6 @@ func (s *AccessKeyLastUsed) SetServiceName(v string) *AccessKeyLastUsed { // Contains information about an AWS access key, without its secret key. // // This data type is used as a response element in the ListAccessKeys action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AccessKeyMetadata type AccessKeyMetadata struct { _ struct{} `type:"structure"` @@ -13534,7 +13531,6 @@ func (s *AccessKeyMetadata) SetUserName(v string) *AccessKeyMetadata { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddClientIDToOpenIDConnectProviderRequest type AddClientIDToOpenIDConnectProviderInput struct { _ struct{} `type:"structure"` @@ -13596,7 +13592,6 @@ func (s *AddClientIDToOpenIDConnectProviderInput) SetOpenIDConnectProviderArn(v return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddClientIDToOpenIDConnectProviderOutput type AddClientIDToOpenIDConnectProviderOutput struct { _ struct{} `type:"structure"` } @@ -13611,7 +13606,6 @@ func (s AddClientIDToOpenIDConnectProviderOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddRoleToInstanceProfileRequest type AddRoleToInstanceProfileInput struct { _ struct{} `type:"structure"` @@ -13678,7 +13672,6 @@ func (s *AddRoleToInstanceProfileInput) SetRoleName(v string) *AddRoleToInstance return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddRoleToInstanceProfileOutput type AddRoleToInstanceProfileOutput struct { _ struct{} `type:"structure"` } @@ -13693,7 +13686,6 @@ func (s AddRoleToInstanceProfileOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddUserToGroupRequest type AddUserToGroupInput struct { _ struct{} `type:"structure"` @@ -13760,7 +13752,6 @@ func (s *AddUserToGroupInput) SetUserName(v string) *AddUserToGroupInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AddUserToGroupOutput type AddUserToGroupOutput struct { _ struct{} `type:"structure"` } @@ -13775,7 +13766,6 @@ func (s AddUserToGroupOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachGroupPolicyRequest type AttachGroupPolicyInput struct { _ struct{} `type:"structure"` @@ -13842,7 +13832,6 @@ func (s *AttachGroupPolicyInput) SetPolicyArn(v string) *AttachGroupPolicyInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachGroupPolicyOutput type AttachGroupPolicyOutput struct { _ struct{} `type:"structure"` } @@ -13857,7 +13846,6 @@ func (s AttachGroupPolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachRolePolicyRequest type AttachRolePolicyInput struct { _ struct{} `type:"structure"` @@ -13924,7 +13912,6 @@ func (s *AttachRolePolicyInput) SetRoleName(v string) *AttachRolePolicyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachRolePolicyOutput type AttachRolePolicyOutput struct { _ struct{} `type:"structure"` } @@ -13939,7 +13926,6 @@ func (s AttachRolePolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachUserPolicyRequest type AttachUserPolicyInput struct { _ struct{} `type:"structure"` @@ -14006,7 +13992,6 @@ func (s *AttachUserPolicyInput) SetUserName(v string) *AttachUserPolicyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachUserPolicyOutput type AttachUserPolicyOutput struct { _ struct{} `type:"structure"` } @@ -14031,7 +14016,6 @@ func (s AttachUserPolicyOutput) GoString() string { // For more information about managed policies, refer to Managed Policies and // Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) // in the Using IAM guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachedPolicy type AttachedPolicy struct { _ struct{} `type:"structure"` @@ -14068,7 +14052,6 @@ func (s *AttachedPolicy) SetPolicyName(v string) *AttachedPolicy { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ChangePasswordRequest type ChangePasswordInput struct { _ struct{} `type:"structure"` @@ -14137,7 +14120,6 @@ func (s *ChangePasswordInput) SetOldPassword(v string) *ChangePasswordInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ChangePasswordOutput type ChangePasswordOutput struct { _ struct{} `type:"structure"` } @@ -14159,7 +14141,6 @@ func (s ChangePasswordOutput) GoString() string { // // This data type is used as an input parameter to SimulateCustomPolicy and // SimulateCustomPolicy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ContextEntry type ContextEntry struct { _ struct{} `type:"structure"` @@ -14218,7 +14199,6 @@ func (s *ContextEntry) SetContextKeyValues(v []*string) *ContextEntry { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateAccessKeyRequest type CreateAccessKeyInput struct { _ struct{} `type:"structure"` @@ -14260,7 +14240,6 @@ func (s *CreateAccessKeyInput) SetUserName(v string) *CreateAccessKeyInput { } // Contains the response to a successful CreateAccessKey request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateAccessKeyResponse type CreateAccessKeyOutput struct { _ struct{} `type:"structure"` @@ -14286,7 +14265,6 @@ func (s *CreateAccessKeyOutput) SetAccessKey(v *AccessKey) *CreateAccessKeyOutpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateAccountAliasRequest type CreateAccountAliasInput struct { _ struct{} `type:"structure"` @@ -14333,7 +14311,6 @@ func (s *CreateAccountAliasInput) SetAccountAlias(v string) *CreateAccountAliasI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateAccountAliasOutput type CreateAccountAliasOutput struct { _ struct{} `type:"structure"` } @@ -14348,7 +14325,6 @@ func (s CreateAccountAliasOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateGroupRequest type CreateGroupInput struct { _ struct{} `type:"structure"` @@ -14420,7 +14396,6 @@ func (s *CreateGroupInput) SetPath(v string) *CreateGroupInput { } // Contains the response to a successful CreateGroup request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateGroupResponse type CreateGroupOutput struct { _ struct{} `type:"structure"` @@ -14446,7 +14421,6 @@ func (s *CreateGroupOutput) SetGroup(v *Group) *CreateGroupOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateInstanceProfileRequest type CreateInstanceProfileInput struct { _ struct{} `type:"structure"` @@ -14516,7 +14490,6 @@ func (s *CreateInstanceProfileInput) SetPath(v string) *CreateInstanceProfileInp } // Contains the response to a successful CreateInstanceProfile request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateInstanceProfileResponse type CreateInstanceProfileOutput struct { _ struct{} `type:"structure"` @@ -14542,7 +14515,6 @@ func (s *CreateInstanceProfileOutput) SetInstanceProfile(v *InstanceProfile) *Cr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateLoginProfileRequest type CreateLoginProfileInput struct { _ struct{} `type:"structure"` @@ -14625,7 +14597,6 @@ func (s *CreateLoginProfileInput) SetUserName(v string) *CreateLoginProfileInput } // Contains the response to a successful CreateLoginProfile request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateLoginProfileResponse type CreateLoginProfileOutput struct { _ struct{} `type:"structure"` @@ -14651,7 +14622,6 @@ func (s *CreateLoginProfileOutput) SetLoginProfile(v *LoginProfile) *CreateLogin return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateOpenIDConnectProviderRequest type CreateOpenIDConnectProviderInput struct { _ struct{} `type:"structure"` @@ -14753,7 +14723,6 @@ func (s *CreateOpenIDConnectProviderInput) SetUrl(v string) *CreateOpenIDConnect } // Contains the response to a successful CreateOpenIDConnectProvider request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateOpenIDConnectProviderResponse type CreateOpenIDConnectProviderOutput struct { _ struct{} `type:"structure"` @@ -14778,7 +14747,6 @@ func (s *CreateOpenIDConnectProviderOutput) SetOpenIDConnectProviderArn(v string return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreatePolicyRequest type CreatePolicyInput struct { _ struct{} `type:"structure"` @@ -14886,7 +14854,6 @@ func (s *CreatePolicyInput) SetPolicyName(v string) *CreatePolicyInput { } // Contains the response to a successful CreatePolicy request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreatePolicyResponse type CreatePolicyOutput struct { _ struct{} `type:"structure"` @@ -14910,7 +14877,6 @@ func (s *CreatePolicyOutput) SetPolicy(v *Policy) *CreatePolicyOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreatePolicyVersionRequest type CreatePolicyVersionInput struct { _ struct{} `type:"structure"` @@ -15000,7 +14966,6 @@ func (s *CreatePolicyVersionInput) SetSetAsDefault(v bool) *CreatePolicyVersionI } // Contains the response to a successful CreatePolicyVersion request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreatePolicyVersionResponse type CreatePolicyVersionOutput struct { _ struct{} `type:"structure"` @@ -15024,7 +14989,6 @@ func (s *CreatePolicyVersionOutput) SetPolicyVersion(v *PolicyVersion) *CreatePo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateRoleRequest type CreateRoleInput struct { _ struct{} `type:"structure"` @@ -15131,7 +15095,6 @@ func (s *CreateRoleInput) SetRoleName(v string) *CreateRoleInput { } // Contains the response to a successful CreateRole request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateRoleResponse type CreateRoleOutput struct { _ struct{} `type:"structure"` @@ -15157,7 +15120,6 @@ func (s *CreateRoleOutput) SetRole(v *Role) *CreateRoleOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateSAMLProviderRequest type CreateSAMLProviderInput struct { _ struct{} `type:"structure"` @@ -15228,7 +15190,6 @@ func (s *CreateSAMLProviderInput) SetSAMLMetadataDocument(v string) *CreateSAMLP } // Contains the response to a successful CreateSAMLProvider request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateSAMLProviderResponse type CreateSAMLProviderOutput struct { _ struct{} `type:"structure"` @@ -15252,7 +15213,6 @@ func (s *CreateSAMLProviderOutput) SetSAMLProviderArn(v string) *CreateSAMLProvi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateServiceLinkedRoleRequest type CreateServiceLinkedRoleInput struct { _ struct{} `type:"structure"` @@ -15320,7 +15280,6 @@ func (s *CreateServiceLinkedRoleInput) SetDescription(v string) *CreateServiceLi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateServiceLinkedRoleResponse type CreateServiceLinkedRoleOutput struct { _ struct{} `type:"structure"` @@ -15344,7 +15303,6 @@ func (s *CreateServiceLinkedRoleOutput) SetRole(v *Role) *CreateServiceLinkedRol return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateServiceSpecificCredentialRequest type CreateServiceSpecificCredentialInput struct { _ struct{} `type:"structure"` @@ -15408,7 +15366,6 @@ func (s *CreateServiceSpecificCredentialInput) SetUserName(v string) *CreateServ return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateServiceSpecificCredentialResponse type CreateServiceSpecificCredentialOutput struct { _ struct{} `type:"structure"` @@ -15437,7 +15394,6 @@ func (s *CreateServiceSpecificCredentialOutput) SetServiceSpecificCredential(v * return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateUserRequest type CreateUserInput struct { _ struct{} `type:"structure"` @@ -15509,7 +15465,6 @@ func (s *CreateUserInput) SetUserName(v string) *CreateUserInput { } // Contains the response to a successful CreateUser request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateUserResponse type CreateUserOutput struct { _ struct{} `type:"structure"` @@ -15533,7 +15488,6 @@ func (s *CreateUserOutput) SetUser(v *User) *CreateUserOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateVirtualMFADeviceRequest type CreateVirtualMFADeviceInput struct { _ struct{} `type:"structure"` @@ -15604,7 +15558,6 @@ func (s *CreateVirtualMFADeviceInput) SetVirtualMFADeviceName(v string) *CreateV } // Contains the response to a successful CreateVirtualMFADevice request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateVirtualMFADeviceResponse type CreateVirtualMFADeviceOutput struct { _ struct{} `type:"structure"` @@ -15630,7 +15583,6 @@ func (s *CreateVirtualMFADeviceOutput) SetVirtualMFADevice(v *VirtualMFADevice) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeactivateMFADeviceRequest type DeactivateMFADeviceInput struct { _ struct{} `type:"structure"` @@ -15698,7 +15650,6 @@ func (s *DeactivateMFADeviceInput) SetUserName(v string) *DeactivateMFADeviceInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeactivateMFADeviceOutput type DeactivateMFADeviceOutput struct { _ struct{} `type:"structure"` } @@ -15713,7 +15664,6 @@ func (s DeactivateMFADeviceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccessKeyRequest type DeleteAccessKeyInput struct { _ struct{} `type:"structure"` @@ -15776,7 +15726,6 @@ func (s *DeleteAccessKeyInput) SetUserName(v string) *DeleteAccessKeyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccessKeyOutput type DeleteAccessKeyOutput struct { _ struct{} `type:"structure"` } @@ -15791,7 +15740,6 @@ func (s DeleteAccessKeyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccountAliasRequest type DeleteAccountAliasInput struct { _ struct{} `type:"structure"` @@ -15838,7 +15786,6 @@ func (s *DeleteAccountAliasInput) SetAccountAlias(v string) *DeleteAccountAliasI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccountAliasOutput type DeleteAccountAliasOutput struct { _ struct{} `type:"structure"` } @@ -15853,7 +15800,6 @@ func (s DeleteAccountAliasOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccountPasswordPolicyInput type DeleteAccountPasswordPolicyInput struct { _ struct{} `type:"structure"` } @@ -15868,7 +15814,6 @@ func (s DeleteAccountPasswordPolicyInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteAccountPasswordPolicyOutput type DeleteAccountPasswordPolicyOutput struct { _ struct{} `type:"structure"` } @@ -15883,7 +15828,6 @@ func (s DeleteAccountPasswordPolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteGroupRequest type DeleteGroupInput struct { _ struct{} `type:"structure"` @@ -15929,7 +15873,6 @@ func (s *DeleteGroupInput) SetGroupName(v string) *DeleteGroupInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteGroupOutput type DeleteGroupOutput struct { _ struct{} `type:"structure"` } @@ -15944,7 +15887,6 @@ func (s DeleteGroupOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteGroupPolicyRequest type DeleteGroupPolicyInput struct { _ struct{} `type:"structure"` @@ -16012,7 +15954,6 @@ func (s *DeleteGroupPolicyInput) SetPolicyName(v string) *DeleteGroupPolicyInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteGroupPolicyOutput type DeleteGroupPolicyOutput struct { _ struct{} `type:"structure"` } @@ -16027,7 +15968,6 @@ func (s DeleteGroupPolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteInstanceProfileRequest type DeleteInstanceProfileInput struct { _ struct{} `type:"structure"` @@ -16073,7 +16013,6 @@ func (s *DeleteInstanceProfileInput) SetInstanceProfileName(v string) *DeleteIns return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteInstanceProfileOutput type DeleteInstanceProfileOutput struct { _ struct{} `type:"structure"` } @@ -16088,7 +16027,6 @@ func (s DeleteInstanceProfileOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteLoginProfileRequest type DeleteLoginProfileInput struct { _ struct{} `type:"structure"` @@ -16134,7 +16072,6 @@ func (s *DeleteLoginProfileInput) SetUserName(v string) *DeleteLoginProfileInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteLoginProfileOutput type DeleteLoginProfileOutput struct { _ struct{} `type:"structure"` } @@ -16149,7 +16086,6 @@ func (s DeleteLoginProfileOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteOpenIDConnectProviderRequest type DeleteOpenIDConnectProviderInput struct { _ struct{} `type:"structure"` @@ -16193,7 +16129,6 @@ func (s *DeleteOpenIDConnectProviderInput) SetOpenIDConnectProviderArn(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteOpenIDConnectProviderOutput type DeleteOpenIDConnectProviderOutput struct { _ struct{} `type:"structure"` } @@ -16208,7 +16143,6 @@ func (s DeleteOpenIDConnectProviderOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeletePolicyRequest type DeletePolicyInput struct { _ struct{} `type:"structure"` @@ -16254,7 +16188,6 @@ func (s *DeletePolicyInput) SetPolicyArn(v string) *DeletePolicyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeletePolicyOutput type DeletePolicyOutput struct { _ struct{} `type:"structure"` } @@ -16269,7 +16202,6 @@ func (s DeletePolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeletePolicyVersionRequest type DeletePolicyVersionInput struct { _ struct{} `type:"structure"` @@ -16339,7 +16271,6 @@ func (s *DeletePolicyVersionInput) SetVersionId(v string) *DeletePolicyVersionIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeletePolicyVersionOutput type DeletePolicyVersionOutput struct { _ struct{} `type:"structure"` } @@ -16354,7 +16285,6 @@ func (s DeletePolicyVersionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteRoleRequest type DeleteRoleInput struct { _ struct{} `type:"structure"` @@ -16400,7 +16330,6 @@ func (s *DeleteRoleInput) SetRoleName(v string) *DeleteRoleInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteRoleOutput type DeleteRoleOutput struct { _ struct{} `type:"structure"` } @@ -16415,7 +16344,6 @@ func (s DeleteRoleOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteRolePolicyRequest type DeleteRolePolicyInput struct { _ struct{} `type:"structure"` @@ -16483,7 +16411,6 @@ func (s *DeleteRolePolicyInput) SetRoleName(v string) *DeleteRolePolicyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteRolePolicyOutput type DeleteRolePolicyOutput struct { _ struct{} `type:"structure"` } @@ -16498,7 +16425,6 @@ func (s DeleteRolePolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSAMLProviderRequest type DeleteSAMLProviderInput struct { _ struct{} `type:"structure"` @@ -16540,7 +16466,6 @@ func (s *DeleteSAMLProviderInput) SetSAMLProviderArn(v string) *DeleteSAMLProvid return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSAMLProviderOutput type DeleteSAMLProviderOutput struct { _ struct{} `type:"structure"` } @@ -16555,7 +16480,6 @@ func (s DeleteSAMLProviderOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSSHPublicKeyRequest type DeleteSSHPublicKeyInput struct { _ struct{} `type:"structure"` @@ -16622,7 +16546,6 @@ func (s *DeleteSSHPublicKeyInput) SetUserName(v string) *DeleteSSHPublicKeyInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSSHPublicKeyOutput type DeleteSSHPublicKeyOutput struct { _ struct{} `type:"structure"` } @@ -16637,7 +16560,6 @@ func (s DeleteSSHPublicKeyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServerCertificateRequest type DeleteServerCertificateInput struct { _ struct{} `type:"structure"` @@ -16683,7 +16605,6 @@ func (s *DeleteServerCertificateInput) SetServerCertificateName(v string) *Delet return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServerCertificateOutput type DeleteServerCertificateOutput struct { _ struct{} `type:"structure"` } @@ -16698,7 +16619,6 @@ func (s DeleteServerCertificateOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServiceLinkedRoleRequest type DeleteServiceLinkedRoleInput struct { _ struct{} `type:"structure"` @@ -16740,7 +16660,6 @@ func (s *DeleteServiceLinkedRoleInput) SetRoleName(v string) *DeleteServiceLinke return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServiceLinkedRoleResponse type DeleteServiceLinkedRoleOutput struct { _ struct{} `type:"structure"` @@ -16767,7 +16686,6 @@ func (s *DeleteServiceLinkedRoleOutput) SetDeletionTaskId(v string) *DeleteServi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServiceSpecificCredentialRequest type DeleteServiceSpecificCredentialInput struct { _ struct{} `type:"structure"` @@ -16832,7 +16750,6 @@ func (s *DeleteServiceSpecificCredentialInput) SetUserName(v string) *DeleteServ return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteServiceSpecificCredentialOutput type DeleteServiceSpecificCredentialOutput struct { _ struct{} `type:"structure"` } @@ -16847,7 +16764,6 @@ func (s DeleteServiceSpecificCredentialOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSigningCertificateRequest type DeleteSigningCertificateInput struct { _ struct{} `type:"structure"` @@ -16909,7 +16825,6 @@ func (s *DeleteSigningCertificateInput) SetUserName(v string) *DeleteSigningCert return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteSigningCertificateOutput type DeleteSigningCertificateOutput struct { _ struct{} `type:"structure"` } @@ -16924,7 +16839,6 @@ func (s DeleteSigningCertificateOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteUserRequest type DeleteUserInput struct { _ struct{} `type:"structure"` @@ -16970,7 +16884,6 @@ func (s *DeleteUserInput) SetUserName(v string) *DeleteUserInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteUserOutput type DeleteUserOutput struct { _ struct{} `type:"structure"` } @@ -16985,7 +16898,6 @@ func (s DeleteUserOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteUserPolicyRequest type DeleteUserPolicyInput struct { _ struct{} `type:"structure"` @@ -17053,7 +16965,6 @@ func (s *DeleteUserPolicyInput) SetUserName(v string) *DeleteUserPolicyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteUserPolicyOutput type DeleteUserPolicyOutput struct { _ struct{} `type:"structure"` } @@ -17068,7 +16979,6 @@ func (s DeleteUserPolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteVirtualMFADeviceRequest type DeleteVirtualMFADeviceInput struct { _ struct{} `type:"structure"` @@ -17115,7 +17025,6 @@ func (s *DeleteVirtualMFADeviceInput) SetSerialNumber(v string) *DeleteVirtualMF return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteVirtualMFADeviceOutput type DeleteVirtualMFADeviceOutput struct { _ struct{} `type:"structure"` } @@ -17134,7 +17043,6 @@ func (s DeleteVirtualMFADeviceOutput) GoString() string { // // This data type is used as a response element in the GetServiceLinkedRoleDeletionStatus // operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeletionTaskFailureReasonType type DeletionTaskFailureReasonType struct { _ struct{} `type:"structure"` @@ -17172,7 +17080,6 @@ func (s *DeletionTaskFailureReasonType) SetRoleUsageList(v []*RoleUsageType) *De return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachGroupPolicyRequest type DetachGroupPolicyInput struct { _ struct{} `type:"structure"` @@ -17239,7 +17146,6 @@ func (s *DetachGroupPolicyInput) SetPolicyArn(v string) *DetachGroupPolicyInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachGroupPolicyOutput type DetachGroupPolicyOutput struct { _ struct{} `type:"structure"` } @@ -17254,7 +17160,6 @@ func (s DetachGroupPolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachRolePolicyRequest type DetachRolePolicyInput struct { _ struct{} `type:"structure"` @@ -17321,7 +17226,6 @@ func (s *DetachRolePolicyInput) SetRoleName(v string) *DetachRolePolicyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachRolePolicyOutput type DetachRolePolicyOutput struct { _ struct{} `type:"structure"` } @@ -17336,7 +17240,6 @@ func (s DetachRolePolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachUserPolicyRequest type DetachUserPolicyInput struct { _ struct{} `type:"structure"` @@ -17403,7 +17306,6 @@ func (s *DetachUserPolicyInput) SetUserName(v string) *DetachUserPolicyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DetachUserPolicyOutput type DetachUserPolicyOutput struct { _ struct{} `type:"structure"` } @@ -17418,7 +17320,6 @@ func (s DetachUserPolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/EnableMFADeviceRequest type EnableMFADeviceInput struct { _ struct{} `type:"structure"` @@ -17538,7 +17439,6 @@ func (s *EnableMFADeviceInput) SetUserName(v string) *EnableMFADeviceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/EnableMFADeviceOutput type EnableMFADeviceOutput struct { _ struct{} `type:"structure"` } @@ -17557,7 +17457,6 @@ func (s EnableMFADeviceOutput) GoString() string { // // This data type is used by the return parameter of SimulateCustomPolicy and // SimulatePrincipalPolicy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/EvaluationResult type EvaluationResult struct { _ struct{} `type:"structure"` @@ -17666,7 +17565,6 @@ func (s *EvaluationResult) SetResourceSpecificResults(v []*ResourceSpecificResul return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GenerateCredentialReportInput type GenerateCredentialReportInput struct { _ struct{} `type:"structure"` } @@ -17682,7 +17580,6 @@ func (s GenerateCredentialReportInput) GoString() string { } // Contains the response to a successful GenerateCredentialReport request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GenerateCredentialReportResponse type GenerateCredentialReportOutput struct { _ struct{} `type:"structure"` @@ -17715,7 +17612,6 @@ func (s *GenerateCredentialReportOutput) SetState(v string) *GenerateCredentialR return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccessKeyLastUsedRequest type GetAccessKeyLastUsedInput struct { _ struct{} `type:"structure"` @@ -17764,7 +17660,6 @@ func (s *GetAccessKeyLastUsedInput) SetAccessKeyId(v string) *GetAccessKeyLastUs // Contains the response to a successful GetAccessKeyLastUsed request. It is // also returned as a member of the AccessKeyMetaData structure returned by // the ListAccessKeys action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccessKeyLastUsedResponse type GetAccessKeyLastUsedOutput struct { _ struct{} `type:"structure"` @@ -17797,7 +17692,6 @@ func (s *GetAccessKeyLastUsedOutput) SetUserName(v string) *GetAccessKeyLastUsed return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccountAuthorizationDetailsRequest type GetAccountAuthorizationDetailsInput struct { _ struct{} `type:"structure"` @@ -17873,7 +17767,6 @@ func (s *GetAccountAuthorizationDetailsInput) SetMaxItems(v int64) *GetAccountAu } // Contains the response to a successful GetAccountAuthorizationDetails request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccountAuthorizationDetailsResponse type GetAccountAuthorizationDetailsOutput struct { _ struct{} `type:"structure"` @@ -17948,7 +17841,6 @@ func (s *GetAccountAuthorizationDetailsOutput) SetUserDetailList(v []*UserDetail return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccountPasswordPolicyInput type GetAccountPasswordPolicyInput struct { _ struct{} `type:"structure"` } @@ -17964,7 +17856,6 @@ func (s GetAccountPasswordPolicyInput) GoString() string { } // Contains the response to a successful GetAccountPasswordPolicy request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccountPasswordPolicyResponse type GetAccountPasswordPolicyOutput struct { _ struct{} `type:"structure"` @@ -17990,7 +17881,6 @@ func (s *GetAccountPasswordPolicyOutput) SetPasswordPolicy(v *PasswordPolicy) *G return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccountSummaryInput type GetAccountSummaryInput struct { _ struct{} `type:"structure"` } @@ -18006,7 +17896,6 @@ func (s GetAccountSummaryInput) GoString() string { } // Contains the response to a successful GetAccountSummary request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetAccountSummaryResponse type GetAccountSummaryOutput struct { _ struct{} `type:"structure"` @@ -18031,7 +17920,6 @@ func (s *GetAccountSummaryOutput) SetSummaryMap(v map[string]*int64) *GetAccount return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetContextKeysForCustomPolicyRequest type GetContextKeysForCustomPolicyInput struct { _ struct{} `type:"structure"` @@ -18081,7 +17969,6 @@ func (s *GetContextKeysForCustomPolicyInput) SetPolicyInputList(v []*string) *Ge // Contains the response to a successful GetContextKeysForPrincipalPolicy or // GetContextKeysForCustomPolicy request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetContextKeysForPolicyResponse type GetContextKeysForPolicyResponse struct { _ struct{} `type:"structure"` @@ -18105,7 +17992,6 @@ func (s *GetContextKeysForPolicyResponse) SetContextKeyNames(v []*string) *GetCo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetContextKeysForPrincipalPolicyRequest type GetContextKeysForPrincipalPolicyInput struct { _ struct{} `type:"structure"` @@ -18174,7 +18060,6 @@ func (s *GetContextKeysForPrincipalPolicyInput) SetPolicySourceArn(v string) *Ge return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetCredentialReportInput type GetCredentialReportInput struct { _ struct{} `type:"structure"` } @@ -18190,7 +18075,6 @@ func (s GetCredentialReportInput) GoString() string { } // Contains the response to a successful GetCredentialReport request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetCredentialReportResponse type GetCredentialReportOutput struct { _ struct{} `type:"structure"` @@ -18235,7 +18119,6 @@ func (s *GetCredentialReportOutput) SetReportFormat(v string) *GetCredentialRepo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetGroupRequest type GetGroupInput struct { _ struct{} `type:"structure"` @@ -18317,7 +18200,6 @@ func (s *GetGroupInput) SetMaxItems(v int64) *GetGroupInput { } // Contains the response to a successful GetGroup request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetGroupResponse type GetGroupOutput struct { _ struct{} `type:"structure"` @@ -18378,7 +18260,6 @@ func (s *GetGroupOutput) SetUsers(v []*User) *GetGroupOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetGroupPolicyRequest type GetGroupPolicyInput struct { _ struct{} `type:"structure"` @@ -18446,7 +18327,6 @@ func (s *GetGroupPolicyInput) SetPolicyName(v string) *GetGroupPolicyInput { } // Contains the response to a successful GetGroupPolicy request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetGroupPolicyResponse type GetGroupPolicyOutput struct { _ struct{} `type:"structure"` @@ -18494,7 +18374,6 @@ func (s *GetGroupPolicyOutput) SetPolicyName(v string) *GetGroupPolicyOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetInstanceProfileRequest type GetInstanceProfileInput struct { _ struct{} `type:"structure"` @@ -18541,7 +18420,6 @@ func (s *GetInstanceProfileInput) SetInstanceProfileName(v string) *GetInstanceP } // Contains the response to a successful GetInstanceProfile request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetInstanceProfileResponse type GetInstanceProfileOutput struct { _ struct{} `type:"structure"` @@ -18567,7 +18445,6 @@ func (s *GetInstanceProfileOutput) SetInstanceProfile(v *InstanceProfile) *GetIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetLoginProfileRequest type GetLoginProfileInput struct { _ struct{} `type:"structure"` @@ -18614,7 +18491,6 @@ func (s *GetLoginProfileInput) SetUserName(v string) *GetLoginProfileInput { } // Contains the response to a successful GetLoginProfile request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetLoginProfileResponse type GetLoginProfileOutput struct { _ struct{} `type:"structure"` @@ -18640,7 +18516,6 @@ func (s *GetLoginProfileOutput) SetLoginProfile(v *LoginProfile) *GetLoginProfil return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetOpenIDConnectProviderRequest type GetOpenIDConnectProviderInput struct { _ struct{} `type:"structure"` @@ -18689,7 +18564,6 @@ func (s *GetOpenIDConnectProviderInput) SetOpenIDConnectProviderArn(v string) *G } // Contains the response to a successful GetOpenIDConnectProvider request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetOpenIDConnectProviderResponse type GetOpenIDConnectProviderOutput struct { _ struct{} `type:"structure"` @@ -18744,7 +18618,6 @@ func (s *GetOpenIDConnectProviderOutput) SetUrl(v string) *GetOpenIDConnectProvi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetPolicyRequest type GetPolicyInput struct { _ struct{} `type:"structure"` @@ -18792,7 +18665,6 @@ func (s *GetPolicyInput) SetPolicyArn(v string) *GetPolicyInput { } // Contains the response to a successful GetPolicy request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetPolicyResponse type GetPolicyOutput struct { _ struct{} `type:"structure"` @@ -18816,7 +18688,6 @@ func (s *GetPolicyOutput) SetPolicy(v *Policy) *GetPolicyOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetPolicyVersionRequest type GetPolicyVersionInput struct { _ struct{} `type:"structure"` @@ -18883,7 +18754,6 @@ func (s *GetPolicyVersionInput) SetVersionId(v string) *GetPolicyVersionInput { } // Contains the response to a successful GetPolicyVersion request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetPolicyVersionResponse type GetPolicyVersionOutput struct { _ struct{} `type:"structure"` @@ -18907,7 +18777,6 @@ func (s *GetPolicyVersionOutput) SetPolicyVersion(v *PolicyVersion) *GetPolicyVe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetRoleRequest type GetRoleInput struct { _ struct{} `type:"structure"` @@ -18954,7 +18823,6 @@ func (s *GetRoleInput) SetRoleName(v string) *GetRoleInput { } // Contains the response to a successful GetRole request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetRoleResponse type GetRoleOutput struct { _ struct{} `type:"structure"` @@ -18980,7 +18848,6 @@ func (s *GetRoleOutput) SetRole(v *Role) *GetRoleOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetRolePolicyRequest type GetRolePolicyInput struct { _ struct{} `type:"structure"` @@ -19048,7 +18915,6 @@ func (s *GetRolePolicyInput) SetRoleName(v string) *GetRolePolicyInput { } // Contains the response to a successful GetRolePolicy request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetRolePolicyResponse type GetRolePolicyOutput struct { _ struct{} `type:"structure"` @@ -19096,7 +18962,6 @@ func (s *GetRolePolicyOutput) SetRoleName(v string) *GetRolePolicyOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetSAMLProviderRequest type GetSAMLProviderInput struct { _ struct{} `type:"structure"` @@ -19144,7 +19009,6 @@ func (s *GetSAMLProviderInput) SetSAMLProviderArn(v string) *GetSAMLProviderInpu } // Contains the response to a successful GetSAMLProvider request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetSAMLProviderResponse type GetSAMLProviderOutput struct { _ struct{} `type:"structure"` @@ -19186,7 +19050,6 @@ func (s *GetSAMLProviderOutput) SetValidUntil(v time.Time) *GetSAMLProviderOutpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetSSHPublicKeyRequest type GetSSHPublicKeyInput struct { _ struct{} `type:"structure"` @@ -19270,7 +19133,6 @@ func (s *GetSSHPublicKeyInput) SetUserName(v string) *GetSSHPublicKeyInput { } // Contains the response to a successful GetSSHPublicKey request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetSSHPublicKeyResponse type GetSSHPublicKeyOutput struct { _ struct{} `type:"structure"` @@ -19294,7 +19156,6 @@ func (s *GetSSHPublicKeyOutput) SetSSHPublicKey(v *SSHPublicKey) *GetSSHPublicKe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetServerCertificateRequest type GetServerCertificateInput struct { _ struct{} `type:"structure"` @@ -19341,7 +19202,6 @@ func (s *GetServerCertificateInput) SetServerCertificateName(v string) *GetServe } // Contains the response to a successful GetServerCertificate request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetServerCertificateResponse type GetServerCertificateOutput struct { _ struct{} `type:"structure"` @@ -19367,7 +19227,6 @@ func (s *GetServerCertificateOutput) SetServerCertificate(v *ServerCertificate) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetServiceLinkedRoleDeletionStatusRequest type GetServiceLinkedRoleDeletionStatusInput struct { _ struct{} `type:"structure"` @@ -19410,7 +19269,6 @@ func (s *GetServiceLinkedRoleDeletionStatusInput) SetDeletionTaskId(v string) *G return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetServiceLinkedRoleDeletionStatusResponse type GetServiceLinkedRoleDeletionStatusOutput struct { _ struct{} `type:"structure"` @@ -19445,7 +19303,6 @@ func (s *GetServiceLinkedRoleDeletionStatusOutput) SetStatus(v string) *GetServi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetUserRequest type GetUserInput struct { _ struct{} `type:"structure"` @@ -19488,7 +19345,6 @@ func (s *GetUserInput) SetUserName(v string) *GetUserInput { } // Contains the response to a successful GetUser request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetUserResponse type GetUserOutput struct { _ struct{} `type:"structure"` @@ -19514,7 +19370,6 @@ func (s *GetUserOutput) SetUser(v *User) *GetUserOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetUserPolicyRequest type GetUserPolicyInput struct { _ struct{} `type:"structure"` @@ -19582,7 +19437,6 @@ func (s *GetUserPolicyInput) SetUserName(v string) *GetUserPolicyInput { } // Contains the response to a successful GetUserPolicy request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetUserPolicyResponse type GetUserPolicyOutput struct { _ struct{} `type:"structure"` @@ -19639,7 +19493,6 @@ func (s *GetUserPolicyOutput) SetUserName(v string) *GetUserPolicyOutput { // * GetGroup // // * ListGroups -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/Group type Group struct { _ struct{} `type:"structure"` @@ -19720,7 +19573,6 @@ func (s *Group) SetPath(v string) *Group { // // This data type is used as a response element in the GetAccountAuthorizationDetails // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GroupDetail type GroupDetail struct { _ struct{} `type:"structure"` @@ -19818,7 +19670,6 @@ func (s *GroupDetail) SetPath(v string) *GroupDetail { // * ListInstanceProfiles // // * ListInstanceProfilesForRole -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/InstanceProfile type InstanceProfile struct { _ struct{} `type:"structure"` @@ -19906,7 +19757,6 @@ func (s *InstanceProfile) SetRoles(v []*Role) *InstanceProfile { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAccessKeysRequest type ListAccessKeysInput struct { _ struct{} `type:"structure"` @@ -19983,7 +19833,6 @@ func (s *ListAccessKeysInput) SetUserName(v string) *ListAccessKeysInput { } // Contains the response to a successful ListAccessKeys request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAccessKeysResponse type ListAccessKeysOutput struct { _ struct{} `type:"structure"` @@ -20033,7 +19882,6 @@ func (s *ListAccessKeysOutput) SetMarker(v string) *ListAccessKeysOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAccountAliasesRequest type ListAccountAliasesInput struct { _ struct{} `type:"structure"` @@ -20094,7 +19942,6 @@ func (s *ListAccountAliasesInput) SetMaxItems(v int64) *ListAccountAliasesInput } // Contains the response to a successful ListAccountAliases request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAccountAliasesResponse type ListAccountAliasesOutput struct { _ struct{} `type:"structure"` @@ -20145,7 +19992,6 @@ func (s *ListAccountAliasesOutput) SetMarker(v string) *ListAccountAliasesOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedGroupPoliciesRequest type ListAttachedGroupPoliciesInput struct { _ struct{} `type:"structure"` @@ -20244,7 +20090,6 @@ func (s *ListAttachedGroupPoliciesInput) SetPathPrefix(v string) *ListAttachedGr } // Contains the response to a successful ListAttachedGroupPolicies request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedGroupPoliciesResponse type ListAttachedGroupPoliciesOutput struct { _ struct{} `type:"structure"` @@ -20292,7 +20137,6 @@ func (s *ListAttachedGroupPoliciesOutput) SetMarker(v string) *ListAttachedGroup return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedRolePoliciesRequest type ListAttachedRolePoliciesInput struct { _ struct{} `type:"structure"` @@ -20390,7 +20234,6 @@ func (s *ListAttachedRolePoliciesInput) SetRoleName(v string) *ListAttachedRoleP } // Contains the response to a successful ListAttachedRolePolicies request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedRolePoliciesResponse type ListAttachedRolePoliciesOutput struct { _ struct{} `type:"structure"` @@ -20438,7 +20281,6 @@ func (s *ListAttachedRolePoliciesOutput) SetMarker(v string) *ListAttachedRolePo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedUserPoliciesRequest type ListAttachedUserPoliciesInput struct { _ struct{} `type:"structure"` @@ -20536,7 +20378,6 @@ func (s *ListAttachedUserPoliciesInput) SetUserName(v string) *ListAttachedUserP } // Contains the response to a successful ListAttachedUserPolicies request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListAttachedUserPoliciesResponse type ListAttachedUserPoliciesOutput struct { _ struct{} `type:"structure"` @@ -20584,7 +20425,6 @@ func (s *ListAttachedUserPoliciesOutput) SetMarker(v string) *ListAttachedUserPo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListEntitiesForPolicyRequest type ListEntitiesForPolicyInput struct { _ struct{} `type:"structure"` @@ -20699,7 +20539,6 @@ func (s *ListEntitiesForPolicyInput) SetPolicyArn(v string) *ListEntitiesForPoli } // Contains the response to a successful ListEntitiesForPolicy request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListEntitiesForPolicyResponse type ListEntitiesForPolicyOutput struct { _ struct{} `type:"structure"` @@ -20765,7 +20604,6 @@ func (s *ListEntitiesForPolicyOutput) SetPolicyUsers(v []*PolicyUser) *ListEntit return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroupPoliciesRequest type ListGroupPoliciesInput struct { _ struct{} `type:"structure"` @@ -20847,7 +20685,6 @@ func (s *ListGroupPoliciesInput) SetMaxItems(v int64) *ListGroupPoliciesInput { } // Contains the response to a successful ListGroupPolicies request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroupPoliciesResponse type ListGroupPoliciesOutput struct { _ struct{} `type:"structure"` @@ -20901,7 +20738,6 @@ func (s *ListGroupPoliciesOutput) SetPolicyNames(v []*string) *ListGroupPolicies return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroupsForUserRequest type ListGroupsForUserInput struct { _ struct{} `type:"structure"` @@ -20983,7 +20819,6 @@ func (s *ListGroupsForUserInput) SetUserName(v string) *ListGroupsForUserInput { } // Contains the response to a successful ListGroupsForUser request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroupsForUserResponse type ListGroupsForUserOutput struct { _ struct{} `type:"structure"` @@ -21033,7 +20868,6 @@ func (s *ListGroupsForUserOutput) SetMarker(v string) *ListGroupsForUserOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroupsRequest type ListGroupsInput struct { _ struct{} `type:"structure"` @@ -21114,7 +20948,6 @@ func (s *ListGroupsInput) SetPathPrefix(v string) *ListGroupsInput { } // Contains the response to a successful ListGroups request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListGroupsResponse type ListGroupsOutput struct { _ struct{} `type:"structure"` @@ -21164,7 +20997,6 @@ func (s *ListGroupsOutput) SetMarker(v string) *ListGroupsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListInstanceProfilesForRoleRequest type ListInstanceProfilesForRoleInput struct { _ struct{} `type:"structure"` @@ -21246,7 +21078,6 @@ func (s *ListInstanceProfilesForRoleInput) SetRoleName(v string) *ListInstancePr } // Contains the response to a successful ListInstanceProfilesForRole request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListInstanceProfilesForRoleResponse type ListInstanceProfilesForRoleOutput struct { _ struct{} `type:"structure"` @@ -21296,7 +21127,6 @@ func (s *ListInstanceProfilesForRoleOutput) SetMarker(v string) *ListInstancePro return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListInstanceProfilesRequest type ListInstanceProfilesInput struct { _ struct{} `type:"structure"` @@ -21378,7 +21208,6 @@ func (s *ListInstanceProfilesInput) SetPathPrefix(v string) *ListInstanceProfile } // Contains the response to a successful ListInstanceProfiles request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListInstanceProfilesResponse type ListInstanceProfilesOutput struct { _ struct{} `type:"structure"` @@ -21428,7 +21257,6 @@ func (s *ListInstanceProfilesOutput) SetMarker(v string) *ListInstanceProfilesOu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListMFADevicesRequest type ListMFADevicesInput struct { _ struct{} `type:"structure"` @@ -21505,7 +21333,6 @@ func (s *ListMFADevicesInput) SetUserName(v string) *ListMFADevicesInput { } // Contains the response to a successful ListMFADevices request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListMFADevicesResponse type ListMFADevicesOutput struct { _ struct{} `type:"structure"` @@ -21555,7 +21382,6 @@ func (s *ListMFADevicesOutput) SetMarker(v string) *ListMFADevicesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListOpenIDConnectProvidersRequest type ListOpenIDConnectProvidersInput struct { _ struct{} `type:"structure"` } @@ -21571,7 +21397,6 @@ func (s ListOpenIDConnectProvidersInput) GoString() string { } // Contains the response to a successful ListOpenIDConnectProviders request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListOpenIDConnectProvidersResponse type ListOpenIDConnectProvidersOutput struct { _ struct{} `type:"structure"` @@ -21595,7 +21420,6 @@ func (s *ListOpenIDConnectProvidersOutput) SetOpenIDConnectProviderList(v []*Ope return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListPoliciesRequest type ListPoliciesInput struct { _ struct{} `type:"structure"` @@ -21699,7 +21523,6 @@ func (s *ListPoliciesInput) SetScope(v string) *ListPoliciesInput { } // Contains the response to a successful ListPolicies request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListPoliciesResponse type ListPoliciesOutput struct { _ struct{} `type:"structure"` @@ -21747,7 +21570,6 @@ func (s *ListPoliciesOutput) SetPolicies(v []*Policy) *ListPoliciesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListPolicyVersionsRequest type ListPolicyVersionsInput struct { _ struct{} `type:"structure"` @@ -21829,7 +21651,6 @@ func (s *ListPolicyVersionsInput) SetPolicyArn(v string) *ListPolicyVersionsInpu } // Contains the response to a successful ListPolicyVersions request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListPolicyVersionsResponse type ListPolicyVersionsOutput struct { _ struct{} `type:"structure"` @@ -21881,7 +21702,6 @@ func (s *ListPolicyVersionsOutput) SetVersions(v []*PolicyVersion) *ListPolicyVe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListRolePoliciesRequest type ListRolePoliciesInput struct { _ struct{} `type:"structure"` @@ -21963,7 +21783,6 @@ func (s *ListRolePoliciesInput) SetRoleName(v string) *ListRolePoliciesInput { } // Contains the response to a successful ListRolePolicies request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListRolePoliciesResponse type ListRolePoliciesOutput struct { _ struct{} `type:"structure"` @@ -22013,7 +21832,6 @@ func (s *ListRolePoliciesOutput) SetPolicyNames(v []*string) *ListRolePoliciesOu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListRolesRequest type ListRolesInput struct { _ struct{} `type:"structure"` @@ -22094,7 +21912,6 @@ func (s *ListRolesInput) SetPathPrefix(v string) *ListRolesInput { } // Contains the response to a successful ListRoles request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListRolesResponse type ListRolesOutput struct { _ struct{} `type:"structure"` @@ -22144,7 +21961,6 @@ func (s *ListRolesOutput) SetRoles(v []*Role) *ListRolesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSAMLProvidersRequest type ListSAMLProvidersInput struct { _ struct{} `type:"structure"` } @@ -22160,7 +21976,6 @@ func (s ListSAMLProvidersInput) GoString() string { } // Contains the response to a successful ListSAMLProviders request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSAMLProvidersResponse type ListSAMLProvidersOutput struct { _ struct{} `type:"structure"` @@ -22184,7 +21999,6 @@ func (s *ListSAMLProvidersOutput) SetSAMLProviderList(v []*SAMLProviderListEntry return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSSHPublicKeysRequest type ListSSHPublicKeysInput struct { _ struct{} `type:"structure"` @@ -22263,7 +22077,6 @@ func (s *ListSSHPublicKeysInput) SetUserName(v string) *ListSSHPublicKeysInput { } // Contains the response to a successful ListSSHPublicKeys request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSSHPublicKeysResponse type ListSSHPublicKeysOutput struct { _ struct{} `type:"structure"` @@ -22311,7 +22124,6 @@ func (s *ListSSHPublicKeysOutput) SetSSHPublicKeys(v []*SSHPublicKeyMetadata) *L return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListServerCertificatesRequest type ListServerCertificatesInput struct { _ struct{} `type:"structure"` @@ -22393,7 +22205,6 @@ func (s *ListServerCertificatesInput) SetPathPrefix(v string) *ListServerCertifi } // Contains the response to a successful ListServerCertificates request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListServerCertificatesResponse type ListServerCertificatesOutput struct { _ struct{} `type:"structure"` @@ -22443,7 +22254,6 @@ func (s *ListServerCertificatesOutput) SetServerCertificateMetadataList(v []*Ser return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListServiceSpecificCredentialsRequest type ListServiceSpecificCredentialsInput struct { _ struct{} `type:"structure"` @@ -22496,7 +22306,6 @@ func (s *ListServiceSpecificCredentialsInput) SetUserName(v string) *ListService return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListServiceSpecificCredentialsResponse type ListServiceSpecificCredentialsOutput struct { _ struct{} `type:"structure"` @@ -22520,7 +22329,6 @@ func (s *ListServiceSpecificCredentialsOutput) SetServiceSpecificCredentials(v [ return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSigningCertificatesRequest type ListSigningCertificatesInput struct { _ struct{} `type:"structure"` @@ -22597,7 +22405,6 @@ func (s *ListSigningCertificatesInput) SetUserName(v string) *ListSigningCertifi } // Contains the response to a successful ListSigningCertificates request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListSigningCertificatesResponse type ListSigningCertificatesOutput struct { _ struct{} `type:"structure"` @@ -22647,7 +22454,6 @@ func (s *ListSigningCertificatesOutput) SetMarker(v string) *ListSigningCertific return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListUserPoliciesRequest type ListUserPoliciesInput struct { _ struct{} `type:"structure"` @@ -22729,7 +22535,6 @@ func (s *ListUserPoliciesInput) SetUserName(v string) *ListUserPoliciesInput { } // Contains the response to a successful ListUserPolicies request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListUserPoliciesResponse type ListUserPoliciesOutput struct { _ struct{} `type:"structure"` @@ -22779,7 +22584,6 @@ func (s *ListUserPoliciesOutput) SetPolicyNames(v []*string) *ListUserPoliciesOu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListUsersRequest type ListUsersInput struct { _ struct{} `type:"structure"` @@ -22861,7 +22665,6 @@ func (s *ListUsersInput) SetPathPrefix(v string) *ListUsersInput { } // Contains the response to a successful ListUsers request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListUsersResponse type ListUsersOutput struct { _ struct{} `type:"structure"` @@ -22911,7 +22714,6 @@ func (s *ListUsersOutput) SetUsers(v []*User) *ListUsersOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListVirtualMFADevicesRequest type ListVirtualMFADevicesInput struct { _ struct{} `type:"structure"` @@ -22983,7 +22785,6 @@ func (s *ListVirtualMFADevicesInput) SetMaxItems(v int64) *ListVirtualMFADevices } // Contains the response to a successful ListVirtualMFADevices request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ListVirtualMFADevicesResponse type ListVirtualMFADevicesOutput struct { _ struct{} `type:"structure"` @@ -23038,7 +22839,6 @@ func (s *ListVirtualMFADevicesOutput) SetVirtualMFADevices(v []*VirtualMFADevice // // This data type is used as a response element in the CreateLoginProfile and // GetLoginProfile actions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/LoginProfile type LoginProfile struct { _ struct{} `type:"structure"` @@ -23088,7 +22888,6 @@ func (s *LoginProfile) SetUserName(v string) *LoginProfile { // Contains information about an MFA device. // // This data type is used as a response element in the ListMFADevices action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/MFADevice type MFADevice struct { _ struct{} `type:"structure"` @@ -23147,7 +22946,6 @@ func (s *MFADevice) SetUserName(v string) *MFADevice { // For more information about managed policies, see Managed Policies and Inline // Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) // in the Using IAM guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ManagedPolicyDetail type ManagedPolicyDetail struct { _ struct{} `type:"structure"` @@ -23285,7 +23083,6 @@ func (s *ManagedPolicyDetail) SetUpdateDate(v time.Time) *ManagedPolicyDetail { } // Contains the Amazon Resource Name (ARN) for an IAM OpenID Connect provider. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/OpenIDConnectProviderListEntry type OpenIDConnectProviderListEntry struct { _ struct{} `type:"structure"` @@ -23314,7 +23111,6 @@ func (s *OpenIDConnectProviderListEntry) SetArn(v string) *OpenIDConnectProvider } // Contains information about AWS Organizations's affect on a policy simulation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/OrganizationsDecisionDetail type OrganizationsDecisionDetail struct { _ struct{} `type:"structure"` @@ -23343,7 +23139,6 @@ func (s *OrganizationsDecisionDetail) SetAllowedByOrganizations(v bool) *Organiz // // This data type is used as a response element in the GetAccountPasswordPolicy // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PasswordPolicy type PasswordPolicy struct { _ struct{} `type:"structure"` @@ -23460,7 +23255,6 @@ func (s *PasswordPolicy) SetRequireUppercaseCharacters(v bool) *PasswordPolicy { // For more information about managed policies, refer to Managed Policies and // Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) // in the Using IAM guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/Policy type Policy struct { _ struct{} `type:"structure"` @@ -23590,7 +23384,6 @@ func (s *Policy) SetUpdateDate(v time.Time) *Policy { // // This data type is used as a response element in the GetAccountAuthorizationDetails // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PolicyDetail type PolicyDetail struct { _ struct{} `type:"structure"` @@ -23631,7 +23424,6 @@ func (s *PolicyDetail) SetPolicyName(v string) *PolicyDetail { // For more information about managed policies, refer to Managed Policies and // Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) // in the Using IAM guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PolicyGroup type PolicyGroup struct { _ struct{} `type:"structure"` @@ -23674,7 +23466,6 @@ func (s *PolicyGroup) SetGroupName(v string) *PolicyGroup { // For more information about managed policies, refer to Managed Policies and // Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) // in the Using IAM guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PolicyRole type PolicyRole struct { _ struct{} `type:"structure"` @@ -23717,7 +23508,6 @@ func (s *PolicyRole) SetRoleName(v string) *PolicyRole { // For more information about managed policies, refer to Managed Policies and // Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) // in the Using IAM guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PolicyUser type PolicyUser struct { _ struct{} `type:"structure"` @@ -23761,7 +23551,6 @@ func (s *PolicyUser) SetUserName(v string) *PolicyUser { // For more information about managed policies, refer to Managed Policies and // Inline Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-vs-inline.html) // in the Using IAM guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PolicyVersion type PolicyVersion struct { _ struct{} `type:"structure"` @@ -23824,7 +23613,6 @@ func (s *PolicyVersion) SetVersionId(v string) *PolicyVersion { // document. // // This data type is used as a member of the Statement type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/Position type Position struct { _ struct{} `type:"structure"` @@ -23857,7 +23645,6 @@ func (s *Position) SetLine(v int64) *Position { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutGroupPolicyRequest type PutGroupPolicyInput struct { _ struct{} `type:"structure"` @@ -23948,7 +23735,6 @@ func (s *PutGroupPolicyInput) SetPolicyName(v string) *PutGroupPolicyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutGroupPolicyOutput type PutGroupPolicyOutput struct { _ struct{} `type:"structure"` } @@ -23963,7 +23749,6 @@ func (s PutGroupPolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutRolePolicyRequest type PutRolePolicyInput struct { _ struct{} `type:"structure"` @@ -24054,7 +23839,6 @@ func (s *PutRolePolicyInput) SetRoleName(v string) *PutRolePolicyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutRolePolicyOutput type PutRolePolicyOutput struct { _ struct{} `type:"structure"` } @@ -24069,7 +23853,6 @@ func (s PutRolePolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutUserPolicyRequest type PutUserPolicyInput struct { _ struct{} `type:"structure"` @@ -24160,7 +23943,6 @@ func (s *PutUserPolicyInput) SetUserName(v string) *PutUserPolicyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutUserPolicyOutput type PutUserPolicyOutput struct { _ struct{} `type:"structure"` } @@ -24175,7 +23957,6 @@ func (s PutUserPolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveClientIDFromOpenIDConnectProviderRequest type RemoveClientIDFromOpenIDConnectProviderInput struct { _ struct{} `type:"structure"` @@ -24241,7 +24022,6 @@ func (s *RemoveClientIDFromOpenIDConnectProviderInput) SetOpenIDConnectProviderA return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveClientIDFromOpenIDConnectProviderOutput type RemoveClientIDFromOpenIDConnectProviderOutput struct { _ struct{} `type:"structure"` } @@ -24256,7 +24036,6 @@ func (s RemoveClientIDFromOpenIDConnectProviderOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveRoleFromInstanceProfileRequest type RemoveRoleFromInstanceProfileInput struct { _ struct{} `type:"structure"` @@ -24323,7 +24102,6 @@ func (s *RemoveRoleFromInstanceProfileInput) SetRoleName(v string) *RemoveRoleFr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveRoleFromInstanceProfileOutput type RemoveRoleFromInstanceProfileOutput struct { _ struct{} `type:"structure"` } @@ -24338,7 +24116,6 @@ func (s RemoveRoleFromInstanceProfileOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveUserFromGroupRequest type RemoveUserFromGroupInput struct { _ struct{} `type:"structure"` @@ -24405,7 +24182,6 @@ func (s *RemoveUserFromGroupInput) SetUserName(v string) *RemoveUserFromGroupInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RemoveUserFromGroupOutput type RemoveUserFromGroupOutput struct { _ struct{} `type:"structure"` } @@ -24420,7 +24196,6 @@ func (s RemoveUserFromGroupOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ResetServiceSpecificCredentialRequest type ResetServiceSpecificCredentialInput struct { _ struct{} `type:"structure"` @@ -24484,7 +24259,6 @@ func (s *ResetServiceSpecificCredentialInput) SetUserName(v string) *ResetServic return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ResetServiceSpecificCredentialResponse type ResetServiceSpecificCredentialOutput struct { _ struct{} `type:"structure"` @@ -24516,7 +24290,6 @@ func (s *ResetServiceSpecificCredentialOutput) SetServiceSpecificCredential(v *S // resource. // // This data type is used by a member of the EvaluationResult data type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ResourceSpecificResult type ResourceSpecificResult struct { _ struct{} `type:"structure"` @@ -24596,7 +24369,6 @@ func (s *ResourceSpecificResult) SetMissingContextValues(v []*string) *ResourceS return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ResyncMFADeviceRequest type ResyncMFADeviceInput struct { _ struct{} `type:"structure"` @@ -24701,7 +24473,6 @@ func (s *ResyncMFADeviceInput) SetUserName(v string) *ResyncMFADeviceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ResyncMFADeviceOutput type ResyncMFADeviceOutput struct { _ struct{} `type:"structure"` } @@ -24718,7 +24489,6 @@ func (s ResyncMFADeviceOutput) GoString() string { // Contains information about an IAM role. This structure is returned as a response // element in several APIs that interact with roles. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/Role type Role struct { _ struct{} `type:"structure"` @@ -24817,7 +24587,6 @@ func (s *Role) SetRoleName(v string) *Role { // // This data type is used as a response element in the GetAccountAuthorizationDetails // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RoleDetail type RoleDetail struct { _ struct{} `type:"structure"` @@ -24928,7 +24697,6 @@ func (s *RoleDetail) SetRolePolicyList(v []*PolicyDetail) *RoleDetail { // // This data type is used as a response element in the GetServiceLinkedRoleDeletionStatus // operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RoleUsageType type RoleUsageType struct { _ struct{} `type:"structure"` @@ -24962,7 +24730,6 @@ func (s *RoleUsageType) SetResources(v []*string) *RoleUsageType { } // Contains the list of SAML providers for this account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SAMLProviderListEntry type SAMLProviderListEntry struct { _ struct{} `type:"structure"` @@ -25008,7 +24775,6 @@ func (s *SAMLProviderListEntry) SetValidUntil(v time.Time) *SAMLProviderListEntr // // This data type is used as a response element in the GetSSHPublicKey and UploadSSHPublicKey // actions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SSHPublicKey type SSHPublicKey struct { _ struct{} `type:"structure"` @@ -25092,7 +24858,6 @@ func (s *SSHPublicKey) SetUserName(v string) *SSHPublicKey { // Contains information about an SSH public key, without the key's body or fingerprint. // // This data type is used as a response element in the ListSSHPublicKeys action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SSHPublicKeyMetadata type SSHPublicKeyMetadata struct { _ struct{} `type:"structure"` @@ -25157,7 +24922,6 @@ func (s *SSHPublicKeyMetadata) SetUserName(v string) *SSHPublicKeyMetadata { // // This data type is used as a response element in the GetServerCertificate // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ServerCertificate type ServerCertificate struct { _ struct{} `type:"structure"` @@ -25209,7 +24973,6 @@ func (s *ServerCertificate) SetServerCertificateMetadata(v *ServerCertificateMet // // This data type is used as a response element in the UploadServerCertificate // and ListServerCertificates actions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ServerCertificateMetadata type ServerCertificateMetadata struct { _ struct{} `type:"structure"` @@ -25294,7 +25057,6 @@ func (s *ServerCertificateMetadata) SetUploadDate(v time.Time) *ServerCertificat } // Contains the details of a service specific credential. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ServiceSpecificCredential type ServiceSpecificCredential struct { _ struct{} `type:"structure"` @@ -25392,7 +25154,6 @@ func (s *ServiceSpecificCredential) SetUserName(v string) *ServiceSpecificCreden } // Contains additional details about a service-specific credential. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/ServiceSpecificCredentialMetadata type ServiceSpecificCredentialMetadata struct { _ struct{} `type:"structure"` @@ -25475,7 +25236,6 @@ func (s *ServiceSpecificCredentialMetadata) SetUserName(v string) *ServiceSpecif return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SetDefaultPolicyVersionRequest type SetDefaultPolicyVersionInput struct { _ struct{} `type:"structure"` @@ -25540,7 +25300,6 @@ func (s *SetDefaultPolicyVersionInput) SetVersionId(v string) *SetDefaultPolicyV return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SetDefaultPolicyVersionOutput type SetDefaultPolicyVersionOutput struct { _ struct{} `type:"structure"` } @@ -25559,7 +25318,6 @@ func (s SetDefaultPolicyVersionOutput) GoString() string { // // This data type is used as a response element in the UploadSigningCertificate // and ListSigningCertificates actions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SigningCertificate type SigningCertificate struct { _ struct{} `type:"structure"` @@ -25628,7 +25386,6 @@ func (s *SigningCertificate) SetUserName(v string) *SigningCertificate { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SimulateCustomPolicyRequest type SimulateCustomPolicyInput struct { _ struct{} `type:"structure"` @@ -25887,7 +25644,6 @@ func (s *SimulateCustomPolicyInput) SetResourcePolicy(v string) *SimulateCustomP // Contains the response to a successful SimulatePrincipalPolicy or SimulateCustomPolicy // request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SimulatePolicyResponse type SimulatePolicyResponse struct { _ struct{} `type:"structure"` @@ -25935,7 +25691,6 @@ func (s *SimulatePolicyResponse) SetMarker(v string) *SimulatePolicyResponse { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/SimulatePrincipalPolicyRequest type SimulatePrincipalPolicyInput struct { _ struct{} `type:"structure"` @@ -26220,7 +25975,6 @@ func (s *SimulatePrincipalPolicyInput) SetResourcePolicy(v string) *SimulatePrin // // This data type is used by the MatchedStatements member of the EvaluationResult // type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/Statement type Statement struct { _ struct{} `type:"structure"` @@ -26271,7 +26025,6 @@ func (s *Statement) SetStartPosition(v *Position) *Statement { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAccessKeyRequest type UpdateAccessKeyInput struct { _ struct{} `type:"structure"` @@ -26349,7 +26102,6 @@ func (s *UpdateAccessKeyInput) SetUserName(v string) *UpdateAccessKeyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAccessKeyOutput type UpdateAccessKeyOutput struct { _ struct{} `type:"structure"` } @@ -26364,7 +26116,6 @@ func (s UpdateAccessKeyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAccountPasswordPolicyRequest type UpdateAccountPasswordPolicyInput struct { _ struct{} `type:"structure"` @@ -26509,7 +26260,6 @@ func (s *UpdateAccountPasswordPolicyInput) SetRequireUppercaseCharacters(v bool) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAccountPasswordPolicyOutput type UpdateAccountPasswordPolicyOutput struct { _ struct{} `type:"structure"` } @@ -26524,7 +26274,6 @@ func (s UpdateAccountPasswordPolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAssumeRolePolicyRequest type UpdateAssumeRolePolicyInput struct { _ struct{} `type:"structure"` @@ -26594,7 +26343,6 @@ func (s *UpdateAssumeRolePolicyInput) SetRoleName(v string) *UpdateAssumeRolePol return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateAssumeRolePolicyOutput type UpdateAssumeRolePolicyOutput struct { _ struct{} `type:"structure"` } @@ -26609,7 +26357,6 @@ func (s UpdateAssumeRolePolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateGroupRequest type UpdateGroupInput struct { _ struct{} `type:"structure"` @@ -26690,7 +26437,6 @@ func (s *UpdateGroupInput) SetNewPath(v string) *UpdateGroupInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateGroupOutput type UpdateGroupOutput struct { _ struct{} `type:"structure"` } @@ -26705,7 +26451,6 @@ func (s UpdateGroupOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateLoginProfileRequest type UpdateLoginProfileInput struct { _ struct{} `type:"structure"` @@ -26782,7 +26527,6 @@ func (s *UpdateLoginProfileInput) SetUserName(v string) *UpdateLoginProfileInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateLoginProfileOutput type UpdateLoginProfileOutput struct { _ struct{} `type:"structure"` } @@ -26797,7 +26541,6 @@ func (s UpdateLoginProfileOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateOpenIDConnectProviderThumbprintRequest type UpdateOpenIDConnectProviderThumbprintInput struct { _ struct{} `type:"structure"` @@ -26860,7 +26603,6 @@ func (s *UpdateOpenIDConnectProviderThumbprintInput) SetThumbprintList(v []*stri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateOpenIDConnectProviderThumbprintOutput type UpdateOpenIDConnectProviderThumbprintOutput struct { _ struct{} `type:"structure"` } @@ -26875,7 +26617,6 @@ func (s UpdateOpenIDConnectProviderThumbprintOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateRoleDescriptionRequest type UpdateRoleDescriptionInput struct { _ struct{} `type:"structure"` @@ -26931,7 +26672,6 @@ func (s *UpdateRoleDescriptionInput) SetRoleName(v string) *UpdateRoleDescriptio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateRoleDescriptionResponse type UpdateRoleDescriptionOutput struct { _ struct{} `type:"structure"` @@ -26955,7 +26695,6 @@ func (s *UpdateRoleDescriptionOutput) SetRole(v *Role) *UpdateRoleDescriptionOut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSAMLProviderRequest type UpdateSAMLProviderInput struct { _ struct{} `type:"structure"` @@ -27023,7 +26762,6 @@ func (s *UpdateSAMLProviderInput) SetSAMLProviderArn(v string) *UpdateSAMLProvid } // Contains the response to a successful UpdateSAMLProvider request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSAMLProviderResponse type UpdateSAMLProviderOutput struct { _ struct{} `type:"structure"` @@ -27047,7 +26785,6 @@ func (s *UpdateSAMLProviderOutput) SetSAMLProviderArn(v string) *UpdateSAMLProvi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSSHPublicKeyRequest type UpdateSSHPublicKeyInput struct { _ struct{} `type:"structure"` @@ -27130,7 +26867,6 @@ func (s *UpdateSSHPublicKeyInput) SetUserName(v string) *UpdateSSHPublicKeyInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSSHPublicKeyOutput type UpdateSSHPublicKeyOutput struct { _ struct{} `type:"structure"` } @@ -27145,7 +26881,6 @@ func (s UpdateSSHPublicKeyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateServerCertificateRequest type UpdateServerCertificateInput struct { _ struct{} `type:"structure"` @@ -27228,7 +26963,6 @@ func (s *UpdateServerCertificateInput) SetServerCertificateName(v string) *Updat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateServerCertificateOutput type UpdateServerCertificateOutput struct { _ struct{} `type:"structure"` } @@ -27243,7 +26977,6 @@ func (s UpdateServerCertificateOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateServiceSpecificCredentialRequest type UpdateServiceSpecificCredentialInput struct { _ struct{} `type:"structure"` @@ -27321,7 +27054,6 @@ func (s *UpdateServiceSpecificCredentialInput) SetUserName(v string) *UpdateServ return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateServiceSpecificCredentialOutput type UpdateServiceSpecificCredentialOutput struct { _ struct{} `type:"structure"` } @@ -27336,7 +27068,6 @@ func (s UpdateServiceSpecificCredentialOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSigningCertificateRequest type UpdateSigningCertificateInput struct { _ struct{} `type:"structure"` @@ -27414,7 +27145,6 @@ func (s *UpdateSigningCertificateInput) SetUserName(v string) *UpdateSigningCert return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateSigningCertificateOutput type UpdateSigningCertificateOutput struct { _ struct{} `type:"structure"` } @@ -27429,7 +27159,6 @@ func (s UpdateSigningCertificateOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateUserRequest type UpdateUserInput struct { _ struct{} `type:"structure"` @@ -27512,7 +27241,6 @@ func (s *UpdateUserInput) SetUserName(v string) *UpdateUserInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UpdateUserOutput type UpdateUserOutput struct { _ struct{} `type:"structure"` } @@ -27527,7 +27255,6 @@ func (s UpdateUserOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadSSHPublicKeyRequest type UploadSSHPublicKeyInput struct { _ struct{} `type:"structure"` @@ -27599,7 +27326,6 @@ func (s *UploadSSHPublicKeyInput) SetUserName(v string) *UploadSSHPublicKeyInput } // Contains the response to a successful UploadSSHPublicKey request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadSSHPublicKeyResponse type UploadSSHPublicKeyOutput struct { _ struct{} `type:"structure"` @@ -27623,7 +27349,6 @@ func (s *UploadSSHPublicKeyOutput) SetSSHPublicKey(v *SSHPublicKey) *UploadSSHPu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadServerCertificateRequest type UploadServerCertificateInput struct { _ struct{} `type:"structure"` @@ -27765,7 +27490,6 @@ func (s *UploadServerCertificateInput) SetServerCertificateName(v string) *Uploa } // Contains the response to a successful UploadServerCertificate request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadServerCertificateResponse type UploadServerCertificateOutput struct { _ struct{} `type:"structure"` @@ -27790,7 +27514,6 @@ func (s *UploadServerCertificateOutput) SetServerCertificateMetadata(v *ServerCe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadSigningCertificateRequest type UploadSigningCertificateInput struct { _ struct{} `type:"structure"` @@ -27856,7 +27579,6 @@ func (s *UploadSigningCertificateInput) SetUserName(v string) *UploadSigningCert } // Contains the response to a successful UploadSigningCertificate request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UploadSigningCertificateResponse type UploadSigningCertificateOutput struct { _ struct{} `type:"structure"` @@ -27891,7 +27613,6 @@ func (s *UploadSigningCertificateOutput) SetCertificate(v *SigningCertificate) * // * GetUser // // * ListUsers -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/User type User struct { _ struct{} `type:"structure"` @@ -28000,7 +27721,6 @@ func (s *User) SetUserName(v string) *User { // // This data type is used as a response element in the GetAccountAuthorizationDetails // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UserDetail type UserDetail struct { _ struct{} `type:"structure"` @@ -28097,7 +27817,6 @@ func (s *UserDetail) SetUserPolicyList(v []*PolicyDetail) *UserDetail { } // Contains information about a virtual MFA device. -// See also, https://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/VirtualMFADevice type VirtualMFADevice struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/inspector/api.go b/vendor/github.com/aws/aws-sdk-go/service/inspector/api.go index fe34c261b..0376ef0c2 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/inspector/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/inspector/api.go @@ -3481,7 +3481,6 @@ func (c *Inspector) UpdateAssessmentTargetWithContext(ctx aws.Context, input *Up return out, req.Send() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AddAttributesToFindingsRequest type AddAttributesToFindingsInput struct { _ struct{} `type:"structure"` @@ -3547,7 +3546,6 @@ func (s *AddAttributesToFindingsInput) SetFindingArns(v []*string) *AddAttribute return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AddAttributesToFindingsResponse type AddAttributesToFindingsOutput struct { _ struct{} `type:"structure"` @@ -3577,7 +3575,6 @@ func (s *AddAttributesToFindingsOutput) SetFailedItems(v map[string]*FailedItemD // Used in the exception error that is thrown if you start an assessment run // for an assessment target that includes an EC2 instance that is already participating // in another started assessment run. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AgentAlreadyRunningAssessment type AgentAlreadyRunningAssessment struct { _ struct{} `type:"structure"` @@ -3617,7 +3614,6 @@ func (s *AgentAlreadyRunningAssessment) SetAssessmentRunArn(v string) *AgentAlre // Contains information about an Amazon Inspector agent. This data type is used // as a request parameter in the ListAssessmentRunAgents action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AgentFilter type AgentFilter struct { _ struct{} `type:"structure"` @@ -3672,7 +3668,6 @@ func (s *AgentFilter) SetAgentHealths(v []*string) *AgentFilter { } // Used as a response element in the PreviewAgents action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AgentPreview type AgentPreview struct { _ struct{} `type:"structure"` @@ -3768,7 +3763,6 @@ func (s *AgentPreview) SetOperatingSystem(v string) *AgentPreview { // of the assessment run . // // Used as the response element in the DescribeAssessmentRuns action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AssessmentRun type AssessmentRun struct { _ struct{} `type:"structure"` @@ -3950,7 +3944,6 @@ func (s *AssessmentRun) SetUserAttributesForFindings(v []*Attribute) *Assessment // Contains information about an Amazon Inspector agent. This data type is used // as a response element in the ListAssessmentRunAgents action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AssessmentRunAgent type AssessmentRunAgent struct { _ struct{} `type:"structure"` @@ -4040,7 +4033,6 @@ func (s *AssessmentRunAgent) SetTelemetryMetadata(v []*TelemetryMetadata) *Asses } // Used as the request parameter in the ListAssessmentRuns action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AssessmentRunFilter type AssessmentRunFilter struct { _ struct{} `type:"structure"` @@ -4153,7 +4145,6 @@ func (s *AssessmentRunFilter) SetStates(v []*string) *AssessmentRunFilter { } // Used as one of the elements of the AssessmentRun data type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AssessmentRunNotification type AssessmentRunNotification struct { _ struct{} `type:"structure"` @@ -4229,7 +4220,6 @@ func (s *AssessmentRunNotification) SetSnsTopicArn(v string) *AssessmentRunNotif } // Used as one of the elements of the AssessmentRun data type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AssessmentRunStateChange type AssessmentRunStateChange struct { _ struct{} `type:"structure"` @@ -4268,7 +4258,6 @@ func (s *AssessmentRunStateChange) SetStateChangedAt(v time.Time) *AssessmentRun // Contains information about an Amazon Inspector application. This data type // is used as the response element in the DescribeAssessmentTargets action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AssessmentTarget type AssessmentTarget struct { _ struct{} `type:"structure"` @@ -4340,7 +4329,6 @@ func (s *AssessmentTarget) SetUpdatedAt(v time.Time) *AssessmentTarget { } // Used as the request parameter in the ListAssessmentTargets action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AssessmentTargetFilter type AssessmentTargetFilter struct { _ struct{} `type:"structure"` @@ -4382,7 +4370,6 @@ func (s *AssessmentTargetFilter) SetAssessmentTargetNamePattern(v string) *Asses // Contains information about an Amazon Inspector assessment template. This // data type is used as the response element in the DescribeAssessmentTemplates // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AssessmentTemplate type AssessmentTemplate struct { _ struct{} `type:"structure"` @@ -4501,7 +4488,6 @@ func (s *AssessmentTemplate) SetUserAttributesForFindings(v []*Attribute) *Asses } // Used as the request parameter in the ListAssessmentTemplates action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AssessmentTemplateFilter type AssessmentTemplateFilter struct { _ struct{} `type:"structure"` @@ -4568,7 +4554,6 @@ func (s *AssessmentTemplateFilter) SetRulesPackageArns(v []*string) *AssessmentT } // A collection of attributes of the host from which the finding is generated. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/AssetAttributes type AssetAttributes struct { _ struct{} `type:"structure"` @@ -4643,7 +4628,6 @@ func (s *AssetAttributes) SetSchemaVersion(v int64) *AssetAttributes { // This data type is used as a request parameter in the AddAttributesToFindings // and CreateAssessmentTemplate actions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/Attribute type Attribute struct { _ struct{} `type:"structure"` @@ -4697,7 +4681,6 @@ func (s *Attribute) SetValue(v string) *Attribute { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/CreateAssessmentTargetRequest type CreateAssessmentTargetInput struct { _ struct{} `type:"structure"` @@ -4758,7 +4741,6 @@ func (s *CreateAssessmentTargetInput) SetResourceGroupArn(v string) *CreateAsses return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/CreateAssessmentTargetResponse type CreateAssessmentTargetOutput struct { _ struct{} `type:"structure"` @@ -4784,7 +4766,6 @@ func (s *CreateAssessmentTargetOutput) SetAssessmentTargetArn(v string) *CreateA return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/CreateAssessmentTemplateRequest type CreateAssessmentTemplateInput struct { _ struct{} `type:"structure"` @@ -4902,7 +4883,6 @@ func (s *CreateAssessmentTemplateInput) SetUserAttributesForFindings(v []*Attrib return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/CreateAssessmentTemplateResponse type CreateAssessmentTemplateOutput struct { _ struct{} `type:"structure"` @@ -4928,7 +4908,6 @@ func (s *CreateAssessmentTemplateOutput) SetAssessmentTemplateArn(v string) *Cre return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/CreateResourceGroupRequest type CreateResourceGroupInput struct { _ struct{} `type:"structure"` @@ -4982,7 +4961,6 @@ func (s *CreateResourceGroupInput) SetResourceGroupTags(v []*ResourceGroupTag) * return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/CreateResourceGroupResponse type CreateResourceGroupOutput struct { _ struct{} `type:"structure"` @@ -5008,7 +4986,6 @@ func (s *CreateResourceGroupOutput) SetResourceGroupArn(v string) *CreateResourc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DeleteAssessmentRunRequest type DeleteAssessmentRunInput struct { _ struct{} `type:"structure"` @@ -5050,7 +5027,6 @@ func (s *DeleteAssessmentRunInput) SetAssessmentRunArn(v string) *DeleteAssessme return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DeleteAssessmentRunOutput type DeleteAssessmentRunOutput struct { _ struct{} `type:"structure"` } @@ -5065,7 +5041,6 @@ func (s DeleteAssessmentRunOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DeleteAssessmentTargetRequest type DeleteAssessmentTargetInput struct { _ struct{} `type:"structure"` @@ -5107,7 +5082,6 @@ func (s *DeleteAssessmentTargetInput) SetAssessmentTargetArn(v string) *DeleteAs return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DeleteAssessmentTargetOutput type DeleteAssessmentTargetOutput struct { _ struct{} `type:"structure"` } @@ -5122,7 +5096,6 @@ func (s DeleteAssessmentTargetOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DeleteAssessmentTemplateRequest type DeleteAssessmentTemplateInput struct { _ struct{} `type:"structure"` @@ -5164,7 +5137,6 @@ func (s *DeleteAssessmentTemplateInput) SetAssessmentTemplateArn(v string) *Dele return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DeleteAssessmentTemplateOutput type DeleteAssessmentTemplateOutput struct { _ struct{} `type:"structure"` } @@ -5179,7 +5151,6 @@ func (s DeleteAssessmentTemplateOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeAssessmentRunsRequest type DescribeAssessmentRunsInput struct { _ struct{} `type:"structure"` @@ -5221,7 +5192,6 @@ func (s *DescribeAssessmentRunsInput) SetAssessmentRunArns(v []*string) *Describ return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeAssessmentRunsResponse type DescribeAssessmentRunsOutput struct { _ struct{} `type:"structure"` @@ -5259,7 +5229,6 @@ func (s *DescribeAssessmentRunsOutput) SetFailedItems(v map[string]*FailedItemDe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeAssessmentTargetsRequest type DescribeAssessmentTargetsInput struct { _ struct{} `type:"structure"` @@ -5301,7 +5270,6 @@ func (s *DescribeAssessmentTargetsInput) SetAssessmentTargetArns(v []*string) *D return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeAssessmentTargetsResponse type DescribeAssessmentTargetsOutput struct { _ struct{} `type:"structure"` @@ -5339,7 +5307,6 @@ func (s *DescribeAssessmentTargetsOutput) SetFailedItems(v map[string]*FailedIte return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeAssessmentTemplatesRequest type DescribeAssessmentTemplatesInput struct { _ struct{} `type:"structure"` @@ -5379,7 +5346,6 @@ func (s *DescribeAssessmentTemplatesInput) SetAssessmentTemplateArns(v []*string return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeAssessmentTemplatesResponse type DescribeAssessmentTemplatesOutput struct { _ struct{} `type:"structure"` @@ -5417,7 +5383,6 @@ func (s *DescribeAssessmentTemplatesOutput) SetFailedItems(v map[string]*FailedI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeCrossAccountAccessRoleInput type DescribeCrossAccountAccessRoleInput struct { _ struct{} `type:"structure"` } @@ -5432,7 +5397,6 @@ func (s DescribeCrossAccountAccessRoleInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeCrossAccountAccessRoleResponse type DescribeCrossAccountAccessRoleOutput struct { _ struct{} `type:"structure"` @@ -5482,7 +5446,6 @@ func (s *DescribeCrossAccountAccessRoleOutput) SetValid(v bool) *DescribeCrossAc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeFindingsRequest type DescribeFindingsInput struct { _ struct{} `type:"structure"` @@ -5534,7 +5497,6 @@ func (s *DescribeFindingsInput) SetLocale(v string) *DescribeFindingsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeFindingsResponse type DescribeFindingsOutput struct { _ struct{} `type:"structure"` @@ -5572,7 +5534,6 @@ func (s *DescribeFindingsOutput) SetFindings(v []*Finding) *DescribeFindingsOutp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeResourceGroupsRequest type DescribeResourceGroupsInput struct { _ struct{} `type:"structure"` @@ -5614,7 +5575,6 @@ func (s *DescribeResourceGroupsInput) SetResourceGroupArns(v []*string) *Describ return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeResourceGroupsResponse type DescribeResourceGroupsOutput struct { _ struct{} `type:"structure"` @@ -5652,7 +5612,6 @@ func (s *DescribeResourceGroupsOutput) SetResourceGroups(v []*ResourceGroup) *De return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeRulesPackagesRequest type DescribeRulesPackagesInput struct { _ struct{} `type:"structure"` @@ -5703,7 +5662,6 @@ func (s *DescribeRulesPackagesInput) SetRulesPackageArns(v []*string) *DescribeR return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DescribeRulesPackagesResponse type DescribeRulesPackagesOutput struct { _ struct{} `type:"structure"` @@ -5742,7 +5700,6 @@ func (s *DescribeRulesPackagesOutput) SetRulesPackages(v []*RulesPackage) *Descr } // This data type is used in the AssessmentTemplateFilter data type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/DurationRange type DurationRange struct { _ struct{} `type:"structure"` @@ -5793,7 +5750,6 @@ func (s *DurationRange) SetMinSeconds(v int64) *DurationRange { } // This data type is used in the Subscription data type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/EventSubscription type EventSubscription struct { _ struct{} `type:"structure"` @@ -5832,7 +5788,6 @@ func (s *EventSubscription) SetSubscribedAt(v time.Time) *EventSubscription { } // Includes details about the failed items. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/FailedItemDetails type FailedItemDetails struct { _ struct{} `type:"structure"` @@ -5872,7 +5827,6 @@ func (s *FailedItemDetails) SetRetryable(v bool) *FailedItemDetails { // Contains information about an Amazon Inspector finding. This data type is // used as the response element in the DescribeFindings action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/Finding type Finding struct { _ struct{} `type:"structure"` @@ -6060,7 +6014,6 @@ func (s *Finding) SetUserAttributes(v []*Attribute) *Finding { } // This data type is used as a request parameter in the ListFindings action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/FindingFilter type FindingFilter struct { _ struct{} `type:"structure"` @@ -6191,7 +6144,6 @@ func (s *FindingFilter) SetUserAttributes(v []*Attribute) *FindingFilter { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/GetAssessmentReportRequest type GetAssessmentReportInput struct { _ struct{} `type:"structure"` @@ -6265,7 +6217,6 @@ func (s *GetAssessmentReportInput) SetReportType(v string) *GetAssessmentReportI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/GetAssessmentReportResponse type GetAssessmentReportOutput struct { _ struct{} `type:"structure"` @@ -6301,7 +6252,6 @@ func (s *GetAssessmentReportOutput) SetUrl(v string) *GetAssessmentReportOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/GetTelemetryMetadataRequest type GetTelemetryMetadataInput struct { _ struct{} `type:"structure"` @@ -6344,7 +6294,6 @@ func (s *GetTelemetryMetadataInput) SetAssessmentRunArn(v string) *GetTelemetryM return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/GetTelemetryMetadataResponse type GetTelemetryMetadataOutput struct { _ struct{} `type:"structure"` @@ -6370,7 +6319,6 @@ func (s *GetTelemetryMetadataOutput) SetTelemetryMetadata(v []*TelemetryMetadata return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentRunAgentsRequest type ListAssessmentRunAgentsInput struct { _ struct{} `type:"structure"` @@ -6456,7 +6404,6 @@ func (s *ListAssessmentRunAgentsInput) SetNextToken(v string) *ListAssessmentRun return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentRunAgentsResponse type ListAssessmentRunAgentsOutput struct { _ struct{} `type:"structure"` @@ -6494,7 +6441,6 @@ func (s *ListAssessmentRunAgentsOutput) SetNextToken(v string) *ListAssessmentRu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentRunsRequest type ListAssessmentRunsInput struct { _ struct{} `type:"structure"` @@ -6573,7 +6519,6 @@ func (s *ListAssessmentRunsInput) SetNextToken(v string) *ListAssessmentRunsInpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentRunsResponse type ListAssessmentRunsOutput struct { _ struct{} `type:"structure"` @@ -6612,7 +6557,6 @@ func (s *ListAssessmentRunsOutput) SetNextToken(v string) *ListAssessmentRunsOut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentTargetsRequest type ListAssessmentTargetsInput struct { _ struct{} `type:"structure"` @@ -6681,7 +6625,6 @@ func (s *ListAssessmentTargetsInput) SetNextToken(v string) *ListAssessmentTarge return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentTargetsResponse type ListAssessmentTargetsOutput struct { _ struct{} `type:"structure"` @@ -6720,7 +6663,6 @@ func (s *ListAssessmentTargetsOutput) SetNextToken(v string) *ListAssessmentTarg return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentTemplatesRequest type ListAssessmentTemplatesInput struct { _ struct{} `type:"structure"` @@ -6799,7 +6741,6 @@ func (s *ListAssessmentTemplatesInput) SetNextToken(v string) *ListAssessmentTem return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListAssessmentTemplatesResponse type ListAssessmentTemplatesOutput struct { _ struct{} `type:"structure"` @@ -6837,7 +6778,6 @@ func (s *ListAssessmentTemplatesOutput) SetNextToken(v string) *ListAssessmentTe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListEventSubscriptionsRequest type ListEventSubscriptionsInput struct { _ struct{} `type:"structure"` @@ -6900,7 +6840,6 @@ func (s *ListEventSubscriptionsInput) SetResourceArn(v string) *ListEventSubscri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListEventSubscriptionsResponse type ListEventSubscriptionsOutput struct { _ struct{} `type:"structure"` @@ -6938,7 +6877,6 @@ func (s *ListEventSubscriptionsOutput) SetSubscriptions(v []*Subscription) *List return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListFindingsRequest type ListFindingsInput struct { _ struct{} `type:"structure"` @@ -7017,7 +6955,6 @@ func (s *ListFindingsInput) SetNextToken(v string) *ListFindingsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListFindingsResponse type ListFindingsOutput struct { _ struct{} `type:"structure"` @@ -7055,7 +6992,6 @@ func (s *ListFindingsOutput) SetNextToken(v string) *ListFindingsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListRulesPackagesRequest type ListRulesPackagesInput struct { _ struct{} `type:"structure"` @@ -7105,7 +7041,6 @@ func (s *ListRulesPackagesInput) SetNextToken(v string) *ListRulesPackagesInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListRulesPackagesResponse type ListRulesPackagesOutput struct { _ struct{} `type:"structure"` @@ -7143,7 +7078,6 @@ func (s *ListRulesPackagesOutput) SetRulesPackageArns(v []*string) *ListRulesPac return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListTagsForResourceRequest type ListTagsForResourceInput struct { _ struct{} `type:"structure"` @@ -7185,7 +7119,6 @@ func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResource return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ListTagsForResourceResponse type ListTagsForResourceOutput struct { _ struct{} `type:"structure"` @@ -7211,7 +7144,6 @@ func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/PreviewAgentsRequest type PreviewAgentsInput struct { _ struct{} `type:"structure"` @@ -7278,7 +7210,6 @@ func (s *PreviewAgentsInput) SetPreviewAgentsArn(v string) *PreviewAgentsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/PreviewAgentsResponse type PreviewAgentsOutput struct { _ struct{} `type:"structure"` @@ -7316,7 +7247,6 @@ func (s *PreviewAgentsOutput) SetNextToken(v string) *PreviewAgentsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/RegisterCrossAccountAccessRoleRequest type RegisterCrossAccountAccessRoleInput struct { _ struct{} `type:"structure"` @@ -7359,7 +7289,6 @@ func (s *RegisterCrossAccountAccessRoleInput) SetRoleArn(v string) *RegisterCros return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/RegisterCrossAccountAccessRoleOutput type RegisterCrossAccountAccessRoleOutput struct { _ struct{} `type:"structure"` } @@ -7374,7 +7303,6 @@ func (s RegisterCrossAccountAccessRoleOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/RemoveAttributesFromFindingsRequest type RemoveAttributesFromFindingsInput struct { _ struct{} `type:"structure"` @@ -7430,7 +7358,6 @@ func (s *RemoveAttributesFromFindingsInput) SetFindingArns(v []*string) *RemoveA return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/RemoveAttributesFromFindingsResponse type RemoveAttributesFromFindingsOutput struct { _ struct{} `type:"structure"` @@ -7461,7 +7388,6 @@ func (s *RemoveAttributesFromFindingsOutput) SetFailedItems(v map[string]*Failed // set of tags that, when queried, identify the AWS resources that make up the // assessment target. This data type is used as the response element in the // DescribeResourceGroups action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ResourceGroup type ResourceGroup struct { _ struct{} `type:"structure"` @@ -7511,7 +7437,6 @@ func (s *ResourceGroup) SetTags(v []*ResourceGroupTag) *ResourceGroup { } // This data type is used as one of the elements of the ResourceGroup data type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/ResourceGroupTag type ResourceGroupTag struct { _ struct{} `type:"structure"` @@ -7567,7 +7492,6 @@ func (s *ResourceGroupTag) SetValue(v string) *ResourceGroupTag { // Contains information about an Amazon Inspector rules package. This data type // is used as the response element in the DescribeRulesPackages action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/RulesPackage type RulesPackage struct { _ struct{} `type:"structure"` @@ -7636,7 +7560,6 @@ func (s *RulesPackage) SetVersion(v string) *RulesPackage { } // This data type is used in the Finding data type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/InspectorServiceAttributes type ServiceAttributes struct { _ struct{} `type:"structure"` @@ -7680,7 +7603,6 @@ func (s *ServiceAttributes) SetSchemaVersion(v int64) *ServiceAttributes { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/SetTagsForResourceRequest type SetTagsForResourceInput struct { _ struct{} `type:"structure"` @@ -7742,7 +7664,6 @@ func (s *SetTagsForResourceInput) SetTags(v []*Tag) *SetTagsForResourceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/SetTagsForResourceOutput type SetTagsForResourceOutput struct { _ struct{} `type:"structure"` } @@ -7757,7 +7678,6 @@ func (s SetTagsForResourceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/StartAssessmentRunRequest type StartAssessmentRunInput struct { _ struct{} `type:"structure"` @@ -7813,7 +7733,6 @@ func (s *StartAssessmentRunInput) SetAssessmentTemplateArn(v string) *StartAsses return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/StartAssessmentRunResponse type StartAssessmentRunOutput struct { _ struct{} `type:"structure"` @@ -7839,7 +7758,6 @@ func (s *StartAssessmentRunOutput) SetAssessmentRunArn(v string) *StartAssessmen return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/StopAssessmentRunRequest type StopAssessmentRunInput struct { _ struct{} `type:"structure"` @@ -7894,7 +7812,6 @@ func (s *StopAssessmentRunInput) SetStopAction(v string) *StopAssessmentRunInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/StopAssessmentRunOutput type StopAssessmentRunOutput struct { _ struct{} `type:"structure"` } @@ -7909,7 +7826,6 @@ func (s StopAssessmentRunOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/SubscribeToEventRequest type SubscribeToEventInput struct { _ struct{} `type:"structure"` @@ -7983,7 +7899,6 @@ func (s *SubscribeToEventInput) SetTopicArn(v string) *SubscribeToEventInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/SubscribeToEventOutput type SubscribeToEventOutput struct { _ struct{} `type:"structure"` } @@ -8000,7 +7915,6 @@ func (s SubscribeToEventOutput) GoString() string { // This data type is used as a response element in the ListEventSubscriptions // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/Subscription type Subscription struct { _ struct{} `type:"structure"` @@ -8053,7 +7967,6 @@ func (s *Subscription) SetTopicArn(v string) *Subscription { // A key and value pair. This data type is used as a request parameter in the // SetTagsForResource action and a response element in the ListTagsForResource // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/Tag type Tag struct { _ struct{} `type:"structure"` @@ -8110,7 +8023,6 @@ func (s *Tag) SetValue(v string) *Tag { // The metadata about the Amazon Inspector application data metrics collected // by the agent. This data type is used as the response element in the GetTelemetryMetadata // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/TelemetryMetadata type TelemetryMetadata struct { _ struct{} `type:"structure"` @@ -8157,7 +8069,6 @@ func (s *TelemetryMetadata) SetMessageType(v string) *TelemetryMetadata { } // This data type is used in the AssessmentRunFilter data type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/TimestampRange type TimestampRange struct { _ struct{} `type:"structure"` @@ -8190,7 +8101,6 @@ func (s *TimestampRange) SetEndDate(v time.Time) *TimestampRange { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/UnsubscribeFromEventRequest type UnsubscribeFromEventInput struct { _ struct{} `type:"structure"` @@ -8264,7 +8174,6 @@ func (s *UnsubscribeFromEventInput) SetTopicArn(v string) *UnsubscribeFromEventI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/UnsubscribeFromEventOutput type UnsubscribeFromEventOutput struct { _ struct{} `type:"structure"` } @@ -8279,7 +8188,6 @@ func (s UnsubscribeFromEventOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/UpdateAssessmentTargetRequest type UpdateAssessmentTargetInput struct { _ struct{} `type:"structure"` @@ -8356,7 +8264,6 @@ func (s *UpdateAssessmentTargetInput) SetResourceGroupArn(v string) *UpdateAsses return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/inspector-2016-02-16/UpdateAssessmentTargetOutput type UpdateAssessmentTargetOutput struct { _ struct{} `type:"structure"` } diff --git a/vendor/github.com/aws/aws-sdk-go/service/kinesis/api.go b/vendor/github.com/aws/aws-sdk-go/service/kinesis/api.go index 0c67198a1..3d6e3cd12 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/kinesis/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/kinesis/api.go @@ -59,12 +59,14 @@ func (c *Kinesis) AddTagsToStreamRequest(input *AddTagsToStreamInput) (req *requ // AddTagsToStream API operation for Amazon Kinesis. // -// Adds or updates tags for the specified Kinesis stream. Each stream can have -// up to 10 tags. +// Adds or updates tags for the specified Kinesis data stream. Each stream can +// have up to 10 tags. // // If tags have already been assigned to the stream, AddTagsToStream overwrites // any existing tags that correspond to the specified tag keys. // +// AddTagsToStream has a limit of five transactions per second per account. +// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -157,28 +159,28 @@ func (c *Kinesis) CreateStreamRequest(input *CreateStreamInput) (req *request.Re // CreateStream API operation for Amazon Kinesis. // -// Creates a Kinesis stream. A stream captures and transports data records that -// are continuously emitted from different data sources or producers. Scale-out +// Creates a Kinesis data stream. A stream captures and transports data records +// that are continuously emitted from different data sources or producers. Scale-out // within a stream is explicitly supported by means of shards, which are uniquely // identified groups of data records in a stream. // // You specify and control the number of shards that a stream is composed of. -// Each shard can support reads up to 5 transactions per second, up to a maximum -// data read total of 2 MB per second. Each shard can support writes up to 1,000 -// records per second, up to a maximum data write total of 1 MB per second. -// I the amount of data input increases or decreases, you can add or remove -// shards. +// Each shard can support reads up to five transactions per second, up to a +// maximum data read total of 2 MB per second. Each shard can support writes +// up to 1,000 records per second, up to a maximum data write total of 1 MB +// per second. If the amount of data input increases or decreases, you can add +// or remove shards. // // The stream name identifies the stream. The name is scoped to the AWS account -// used by the application. It is also scoped by region. That is, two streams +// used by the application. It is also scoped by AWS Region. That is, two streams // in two different accounts can have the same name, and two streams in the -// same account, but in two different regions, can have the same name. +// same account, but in two different Regions, can have the same name. // // CreateStream is an asynchronous operation. Upon receiving a CreateStream -// request, Kinesis Streams immediately returns and sets the stream status to -// CREATING. After the stream is created, Kinesis Streams sets the stream status -// to ACTIVE. You should perform read and write operations only on an ACTIVE -// stream. +// request, Kinesis Data Streams immediately returns and sets the stream status +// to CREATING. After the stream is created, Kinesis Data Streams sets the stream +// status to ACTIVE. You should perform read and write operations only on an +// ACTIVE stream. // // You receive a LimitExceededException when making a CreateStream request when // you try to do one of the following: @@ -187,14 +189,15 @@ func (c *Kinesis) CreateStreamRequest(input *CreateStreamInput) (req *request.Re // // * Create more shards than are authorized for your account. // -// For the default shard limit for an AWS account, see Streams Limits (http://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) -// in the Amazon Kinesis Streams Developer Guide. To increase this limit, contact -// AWS Support (http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html). +// For the default shard limit for an AWS account, see Amazon Kinesis Data Streams +// Limits (http://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) +// in the Amazon Kinesis Data Streams Developer Guide. To increase this limit, +// contact AWS Support (http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html). // // You can use DescribeStream to check the stream status, which is returned // in StreamStatus. // -// CreateStream has a limit of 5 transactions per second per account. +// CreateStream has a limit of five transactions per second per account. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -284,9 +287,9 @@ func (c *Kinesis) DecreaseStreamRetentionPeriodRequest(input *DecreaseStreamRete // DecreaseStreamRetentionPeriod API operation for Amazon Kinesis. // -// Decreases the Kinesis stream's retention period, which is the length of time -// data records are accessible after they are added to the stream. The minimum -// value of a stream's retention period is 24 hours. +// Decreases the Kinesis data stream's retention period, which is the length +// of time data records are accessible after they are added to the stream. The +// minimum value of a stream's retention period is 24 hours. // // This operation may result in lost data. For example, if the stream's retention // period is 48 hours and is decreased to 24 hours, any data already in the @@ -308,6 +311,10 @@ func (c *Kinesis) DecreaseStreamRetentionPeriodRequest(input *DecreaseStreamRete // The requested resource could not be found. The stream might not be specified // correctly. // +// * ErrCodeLimitExceededException "LimitExceededException" +// The requested resource exceeds the maximum number allowed, or the number +// of concurrent stream requests exceeds the maximum number allowed. +// // * ErrCodeInvalidArgumentException "InvalidArgumentException" // A specified parameter exceeds its restrictions, is not supported, or can't // be used. For more information, see the returned message. @@ -380,16 +387,16 @@ func (c *Kinesis) DeleteStreamRequest(input *DeleteStreamInput) (req *request.Re // DeleteStream API operation for Amazon Kinesis. // -// Deletes a Kinesis stream and all its shards and data. You must shut down -// any applications that are operating on the stream before you delete the stream. -// If an application attempts to operate on a deleted stream, it receives the -// exception ResourceNotFoundException. +// Deletes a Kinesis data stream and all its shards and data. You must shut +// down any applications that are operating on the stream before you delete +// the stream. If an application attempts to operate on a deleted stream, it +// receives the exception ResourceNotFoundException. // // If the stream is in the ACTIVE state, you can delete it. After a DeleteStream -// request, the specified stream is in the DELETING state until Kinesis Streams -// completes the deletion. +// request, the specified stream is in the DELETING state until Kinesis Data +// Streams completes the deletion. // -// Note: Kinesis Streams might continue to accept data read and write operations, +// Note: Kinesis Data Streams might continue to accept data read and write operations, // such as PutRecord, PutRecords, and GetRecords, on a stream in the DELETING // state until the stream deletion is complete. // @@ -399,7 +406,7 @@ func (c *Kinesis) DeleteStreamRequest(input *DeleteStreamInput) (req *request.Re // You can use the DescribeStream operation to check the state of the stream, // which is returned in StreamStatus. // -// DeleteStream has a limit of 5 transactions per second per account. +// DeleteStream has a limit of five transactions per second per account. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -488,7 +495,7 @@ func (c *Kinesis) DescribeLimitsRequest(input *DescribeLimitsInput) (req *reques // If you update your account limits, the old limits might be returned for a // few minutes. // -// This operation has a limit of 1 transaction per second per account. +// This operation has a limit of one transaction per second per account. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -574,7 +581,7 @@ func (c *Kinesis) DescribeStreamRequest(input *DescribeStreamInput) (req *reques // DescribeStream API operation for Amazon Kinesis. // -// Describes the specified Kinesis stream. +// Describes the specified Kinesis data stream. // // The information returned includes the stream name, Amazon Resource Name (ARN), // creation time, enhanced metric configuration, and shard map. The shard map @@ -586,7 +593,7 @@ func (c *Kinesis) DescribeStreamRequest(input *DescribeStreamInput) (req *reques // // You can limit the number of shards returned by each call. For more information, // see Retrieving Shards from a Stream (http://docs.aws.amazon.com/kinesis/latest/dev/kinesis-using-sdk-java-retrieve-shards.html) -// in the Amazon Kinesis Streams Developer Guide. +// in the Amazon Kinesis Data Streams Developer Guide. // // There are no guarantees about the chronological order shards returned. To // process shards in chronological order, use the ID of the parent shard to @@ -726,7 +733,7 @@ func (c *Kinesis) DescribeStreamSummaryRequest(input *DescribeStreamSummaryInput // DescribeStreamSummary API operation for Amazon Kinesis. // -// Provides a summarized description of the specified Kinesis stream without +// Provides a summarized description of the specified Kinesis data stream without // the shard list. // // The information returned includes the stream name, Amazon Resource Name (ARN), @@ -907,7 +914,7 @@ func (c *Kinesis) EnableEnhancedMonitoringRequest(input *EnableEnhancedMonitorin // EnableEnhancedMonitoring API operation for Amazon Kinesis. // -// Enables enhanced Kinesis stream monitoring for shard-level metrics. +// Enables enhanced Kinesis data stream monitoring for shard-level metrics. // // 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 @@ -999,7 +1006,7 @@ func (c *Kinesis) GetRecordsRequest(input *GetRecordsInput) (req *request.Reques // GetRecords API operation for Amazon Kinesis. // -// Gets data records from a Kinesis stream's shard. +// Gets data records from a Kinesis data stream's shard. // // Specify a shard iterator using the ShardIterator parameter. The shard iterator // specifies the position in the shard from which you want to start reading @@ -1009,10 +1016,11 @@ func (c *Kinesis) GetRecordsRequest(input *GetRecordsInput) (req *request.Reques // records. // // You can scale by provisioning multiple shards per stream while considering -// service limits (for more information, see Streams Limits (http://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) -// in the Amazon Kinesis Streams Developer Guide). Your application should have -// one thread per shard, each reading continuously from its stream. To read -// from a stream continually, call GetRecords in a loop. Use GetShardIterator +// service limits (for more information, see Amazon Kinesis Data Streams Limits +// (http://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) +// in the Amazon Kinesis Data Streams Developer Guide). Your application should +// have one thread per shard, each reading continuously from its stream. To +// read from a stream continually, call GetRecords in a loop. Use GetShardIterator // to get the shard iterator to specify in the first GetRecords call. GetRecords // returns a new shard iterator in NextShardIterator. Specify the shard iterator // returned in NextShardIterator in subsequent calls to GetRecords. If the shard @@ -1030,17 +1038,17 @@ func (c *Kinesis) GetRecordsRequest(input *GetRecordsInput) (req *request.Reques // The size of the data returned by GetRecords varies depending on the utilization // of the shard. The maximum size of data that GetRecords can return is 10 MB. // If a call returns this amount of data, subsequent calls made within the next -// 5 seconds throw ProvisionedThroughputExceededException. If there is insufficient -// provisioned throughput on the shard, subsequent calls made within the next -// 1 second throw ProvisionedThroughputExceededException. GetRecords won't return -// any data when it throws an exception. For this reason, we recommend that -// you wait one second between calls to GetRecords; however, it's possible that -// the application will get exceptions for longer than 1 second. +// five seconds throw ProvisionedThroughputExceededException. If there is insufficient +// provisioned throughput on the stream, subsequent calls made within the next +// one second throw ProvisionedThroughputExceededException. GetRecords won't +// return any data when it throws an exception. For this reason, we recommend +// that you wait one second between calls to GetRecords; however, it's possible +// that the application will get exceptions for longer than 1 second. // // To detect whether the application is falling behind in processing, you can // use the MillisBehindLatest response attribute. You can also monitor the stream // using CloudWatch metrics and other mechanisms (see Monitoring (http://docs.aws.amazon.com/kinesis/latest/dev/monitoring.html) -// in the Amazon Kinesis Streams Developer Guide). +// in the Amazon Kinesis Data Streams Developer Guide). // // Each Amazon Kinesis record includes a value, ApproximateArrivalTimestamp, // that is set when a stream successfully receives and stores a record. This @@ -1072,8 +1080,8 @@ func (c *Kinesis) GetRecordsRequest(input *GetRecordsInput) (req *request.Reques // The request rate for the stream is too high, or the requested data is too // large for the available throughput. Reduce the frequency or size of your // requests. For more information, see Streams Limits (http://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) -// in the Amazon Kinesis Streams Developer Guide, and Error Retries and Exponential -// Backoff in AWS (http://docs.aws.amazon.com/general/latest/gr/api-retries.html) +// in the Amazon Kinesis Data Streams Developer Guide, and Error Retries and +// Exponential Backoff in AWS (http://docs.aws.amazon.com/general/latest/gr/api-retries.html) // in the AWS General Reference. // // * ErrCodeExpiredIteratorException "ExpiredIteratorException" @@ -1202,14 +1210,14 @@ func (c *Kinesis) GetShardIteratorRequest(input *GetShardIteratorInput) (req *re // If a GetShardIterator request is made too often, you receive a ProvisionedThroughputExceededException. // For more information about throughput limits, see GetRecords, and Streams // Limits (http://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) -// in the Amazon Kinesis Streams Developer Guide. +// in the Amazon Kinesis Data Streams Developer Guide. // // If the shard is closed, GetShardIterator returns a valid iterator for the // last sequence number of the shard. A shard can be closed as a result of using // SplitShard or MergeShards. // -// GetShardIterator has a limit of 5 transactions per second per account per -// open shard. +// GetShardIterator has a limit of five transactions per second per account +// per open shard. // // 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 @@ -1231,8 +1239,8 @@ func (c *Kinesis) GetShardIteratorRequest(input *GetShardIteratorInput) (req *re // The request rate for the stream is too high, or the requested data is too // large for the available throughput. Reduce the frequency or size of your // requests. For more information, see Streams Limits (http://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) -// in the Amazon Kinesis Streams Developer Guide, and Error Retries and Exponential -// Backoff in AWS (http://docs.aws.amazon.com/general/latest/gr/api-retries.html) +// in the Amazon Kinesis Data Streams Developer Guide, and Error Retries and +// Exponential Backoff in AWS (http://docs.aws.amazon.com/general/latest/gr/api-retries.html) // in the AWS General Reference. // // See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/GetShardIterator @@ -1303,7 +1311,7 @@ func (c *Kinesis) IncreaseStreamRetentionPeriodRequest(input *IncreaseStreamRete // IncreaseStreamRetentionPeriod API operation for Amazon Kinesis. // -// Increases the Amazon Kinesis stream's retention period, which is the length +// Increases the Kinesis data stream's retention period, which is the length // of time data records are accessible after they are added to the stream. The // maximum value of a stream's retention period is 168 hours (7 days). // @@ -1331,6 +1339,10 @@ func (c *Kinesis) IncreaseStreamRetentionPeriodRequest(input *IncreaseStreamRete // The requested resource could not be found. The stream might not be specified // correctly. // +// * ErrCodeLimitExceededException "LimitExceededException" +// The requested resource exceeds the maximum number allowed, or the number +// of concurrent stream requests exceeds the maximum number allowed. +// // * ErrCodeInvalidArgumentException "InvalidArgumentException" // A specified parameter exceeds its restrictions, is not supported, or can't // be used. For more information, see the returned message. @@ -1357,6 +1369,108 @@ func (c *Kinesis) IncreaseStreamRetentionPeriodWithContext(ctx aws.Context, inpu return out, req.Send() } +const opListShards = "ListShards" + +// ListShardsRequest generates a "aws/request.Request" representing the +// client's request for the ListShards operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 ListShards for more information on using the ListShards +// 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 ListShardsRequest method. +// req, resp := client.ListShardsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/ListShards +func (c *Kinesis) ListShardsRequest(input *ListShardsInput) (req *request.Request, output *ListShardsOutput) { + op := &request.Operation{ + Name: opListShards, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListShardsInput{} + } + + output = &ListShardsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListShards API operation for Amazon Kinesis. +// +// Lists the shards in a stream and provides information about each shard. +// +// This API is a new operation that is used by the Amazon Kinesis Client Library +// (KCL). If you have a fine-grained IAM policy that only allows specific operations, +// you must update your policy to allow calls to this API. For more information, +// see Controlling Access to Amazon Kinesis Data Streams Resources Using IAM +// (https://docs.aws.amazon.com/streams/latest/dev/controlling-access.html). +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Kinesis's +// API operation ListShards for usage and error information. +// +// Returned Error Codes: +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The requested resource could not be found. The stream might not be specified +// correctly. +// +// * ErrCodeInvalidArgumentException "InvalidArgumentException" +// A specified parameter exceeds its restrictions, is not supported, or can't +// be used. For more information, see the returned message. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// The requested resource exceeds the maximum number allowed, or the number +// of concurrent stream requests exceeds the maximum number allowed. +// +// * ErrCodeExpiredNextTokenException "ExpiredNextTokenException" +// The pagination token passed to the ListShards operation is expired. For more +// information, see ListShardsInput$NextToken. +// +// * ErrCodeResourceInUseException "ResourceInUseException" +// The resource is not available for this operation. For successful operation, +// the resource must be in the ACTIVE state. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/ListShards +func (c *Kinesis) ListShards(input *ListShardsInput) (*ListShardsOutput, error) { + req, out := c.ListShardsRequest(input) + return out, req.Send() +} + +// ListShardsWithContext is the same as ListShards with the addition of +// the ability to pass a context and additional request options. +// +// See ListShards 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 *Kinesis) ListShardsWithContext(ctx aws.Context, input *ListShardsInput, opts ...request.Option) (*ListShardsOutput, error) { + req, out := c.ListShardsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListStreams = "ListStreams" // ListStreamsRequest generates a "aws/request.Request" representing the @@ -1407,12 +1521,12 @@ func (c *Kinesis) ListStreamsRequest(input *ListStreamsInput) (req *request.Requ // ListStreams API operation for Amazon Kinesis. // -// Lists your Kinesis streams. +// Lists your Kinesis data streams. // // The number of streams may be too large to return from a single call to ListStreams. // You can limit the number of returned streams using the Limit parameter. If -// you do not specify a value for the Limit parameter, Kinesis Streams uses -// the default limit, which is currently 10. +// you do not specify a value for the Limit parameter, Kinesis Data Streams +// uses the default limit, which is currently 10. // // You can detect if there are more streams available to list by using the HasMoreStreams // flag from the returned output. If there are more streams available, you can @@ -1422,7 +1536,7 @@ func (c *Kinesis) ListStreamsRequest(input *ListStreamsInput) (req *request.Requ // request is then added to the list. You can continue this process until all // the stream names have been collected in the list. // -// ListStreams has a limit of 5 transactions per second per account. +// ListStreams has a limit of five transactions per second per account. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1552,7 +1666,8 @@ func (c *Kinesis) ListTagsForStreamRequest(input *ListTagsForStreamInput) (req * // ListTagsForStream API operation for Amazon Kinesis. // -// Lists the tags for the specified Kinesis stream. +// Lists the tags for the specified Kinesis data stream. This operation has +// a limit of five transactions per second per account. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1642,20 +1757,21 @@ func (c *Kinesis) MergeShardsRequest(input *MergeShardsInput) (req *request.Requ // MergeShards API operation for Amazon Kinesis. // -// Merges two adjacent shards in a Kinesis stream and combines them into a single -// shard to reduce the stream's capacity to ingest and transport data. Two shards -// are considered adjacent if the union of the hash key ranges for the two shards -// form a contiguous set with no gaps. For example, if you have two shards, -// one with a hash key range of 276...381 and the other with a hash key range -// of 382...454, then you could merge these two shards into a single shard that -// would have a hash key range of 276...454. After the merge, the single child -// shard receives data for all hash key values covered by the two parent shards. +// Merges two adjacent shards in a Kinesis data stream and combines them into +// a single shard to reduce the stream's capacity to ingest and transport data. +// Two shards are considered adjacent if the union of the hash key ranges for +// the two shards form a contiguous set with no gaps. For example, if you have +// two shards, one with a hash key range of 276...381 and the other with a hash +// key range of 382...454, then you could merge these two shards into a single +// shard that would have a hash key range of 276...454. After the merge, the +// single child shard receives data for all hash key values covered by the two +// parent shards. // // MergeShards is called when there is a need to reduce the overall capacity // of a stream because of excess capacity that is not being used. You must specify // the shard to be merged and the adjacent shard for a stream. For more information // about merging shards, see Merge Two Shards (http://docs.aws.amazon.com/kinesis/latest/dev/kinesis-using-sdk-java-resharding-merge.html) -// in the Amazon Kinesis Streams Developer Guide. +// in the Amazon Kinesis Data Streams Developer Guide. // // If the stream is in the ACTIVE state, you can call MergeShards. If a stream // is in the CREATING, UPDATING, or DELETING state, MergeShards returns a ResourceInUseException. @@ -1665,18 +1781,18 @@ func (c *Kinesis) MergeShardsRequest(input *MergeShardsInput) (req *request.Requ // in StreamStatus. // // MergeShards is an asynchronous operation. Upon receiving a MergeShards request, -// Amazon Kinesis immediately returns a response and sets the StreamStatus to -// UPDATING. After the operation is completed, Amazon Kinesis sets the StreamStatus -// to ACTIVE. Read and write operations continue to work while the stream is -// in the UPDATING state. +// Amazon Kinesis Data Streams immediately returns a response and sets the StreamStatus +// to UPDATING. After the operation is completed, Kinesis Data Streams sets +// the StreamStatus to ACTIVE. Read and write operations continue to work while +// the stream is in the UPDATING state. // // You use DescribeStream to determine the shard IDs that are specified in the // MergeShards request. // // If you try to operate on too many streams in parallel using CreateStream, -// DeleteStream, MergeShards or SplitShard, you will receive a LimitExceededException. +// DeleteStream, MergeShards, or SplitShard, you receive a LimitExceededException. // -// MergeShards has a limit of 5 transactions per second per account. +// MergeShards has a limit of five transactions per second per account. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1768,7 +1884,7 @@ func (c *Kinesis) PutRecordRequest(input *PutRecordInput) (req *request.Request, // PutRecord API operation for Amazon Kinesis. // -// Writes a single data record into an Amazon Kinesis stream. Call PutRecord +// Writes a single data record into an Amazon Kinesis data stream. Call PutRecord // to send data into the stream for real-time ingestion and subsequent processing, // one record at a time. Each shard can support writes up to 1,000 records per // second, up to a maximum data write total of 1 MB per second. @@ -1779,10 +1895,10 @@ func (c *Kinesis) PutRecordRequest(input *PutRecordInput) (req *request.Request, // The data blob can be any type of data; for example, a segment from a log // file, geographic/location data, website clickstream data, and so on. // -// The partition key is used by Kinesis Streams to distribute data across shards. -// Kinesis Streams segregates the data records that belong to a stream into -// multiple shards, using the partition key associated with each data record -// to determine the shard to which a given data record belongs. +// The partition key is used by Kinesis Data Streams to distribute data across +// shards. Kinesis Data Streams segregates the data records that belong to a +// stream into multiple shards, using the partition key associated with each +// data record to determine the shard to which a given data record belongs. // // Partition keys are Unicode strings, with a maximum length limit of 256 characters // for each key. An MD5 hash function is used to map partition keys to 128-bit @@ -1790,7 +1906,7 @@ func (c *Kinesis) PutRecordRequest(input *PutRecordInput) (req *request.Request, // key ranges of the shards. You can override hashing the partition key to determine // the shard by explicitly specifying a hash value using the ExplicitHashKey // parameter. For more information, see Adding Data to a Stream (http://docs.aws.amazon.com/kinesis/latest/dev/developing-producers-with-sdk.html#kinesis-using-sdk-java-add-data-to-stream) -// in the Amazon Kinesis Streams Developer Guide. +// in the Amazon Kinesis Data Streams Developer Guide. // // PutRecord returns the shard ID of where the data record was placed and the // sequence number that was assigned to the data record. @@ -1799,7 +1915,7 @@ func (c *Kinesis) PutRecordRequest(input *PutRecordInput) (req *request.Request, // stream, not across all shards within a stream. To guarantee strictly increasing // ordering, write serially to a shard and use the SequenceNumberForOrdering // parameter. For more information, see Adding Data to a Stream (http://docs.aws.amazon.com/kinesis/latest/dev/developing-producers-with-sdk.html#kinesis-using-sdk-java-add-data-to-stream) -// in the Amazon Kinesis Streams Developer Guide. +// in the Amazon Kinesis Data Streams Developer Guide. // // If a PutRecord request cannot be processed because of insufficient provisioned // throughput on the shard involved in the request, PutRecord throws ProvisionedThroughputExceededException. @@ -1828,8 +1944,8 @@ func (c *Kinesis) PutRecordRequest(input *PutRecordInput) (req *request.Request, // The request rate for the stream is too high, or the requested data is too // large for the available throughput. Reduce the frequency or size of your // requests. For more information, see Streams Limits (http://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) -// in the Amazon Kinesis Streams Developer Guide, and Error Retries and Exponential -// Backoff in AWS (http://docs.aws.amazon.com/general/latest/gr/api-retries.html) +// in the Amazon Kinesis Data Streams Developer Guide, and Error Retries and +// Exponential Backoff in AWS (http://docs.aws.amazon.com/general/latest/gr/api-retries.html) // in the AWS General Reference. // // * ErrCodeKMSDisabledException "KMSDisabledException" @@ -1924,9 +2040,9 @@ func (c *Kinesis) PutRecordsRequest(input *PutRecordsInput) (req *request.Reques // PutRecords API operation for Amazon Kinesis. // -// Writes multiple data records into a Kinesis stream in a single call (also -// referred to as a PutRecords request). Use this operation to send data into -// the stream for data ingestion and processing. +// Writes multiple data records into a Kinesis data stream in a single call +// (also referred to as a PutRecords request). Use this operation to send data +// into the stream for data ingestion and processing. // // Each PutRecords request can support up to 500 records. Each record in the // request can be as large as 1 MB, up to a limit of 5 MB for the entire request, @@ -1941,19 +2057,19 @@ func (c *Kinesis) PutRecordsRequest(input *PutRecordsInput) (req *request.Reques // The data blob can be any type of data; for example, a segment from a log // file, geographic/location data, website clickstream data, and so on. // -// The partition key is used by Kinesis Streams as input to a hash function +// The partition key is used by Kinesis Data Streams as input to a hash function // that maps the partition key and associated data to a specific shard. An MD5 // hash function is used to map partition keys to 128-bit integer values and // to map associated data records to shards. As a result of this hashing mechanism, // all data records with the same partition key map to the same shard within // the stream. For more information, see Adding Data to a Stream (http://docs.aws.amazon.com/kinesis/latest/dev/developing-producers-with-sdk.html#kinesis-using-sdk-java-add-data-to-stream) -// in the Amazon Kinesis Streams Developer Guide. +// in the Amazon Kinesis Data Streams Developer Guide. // // Each record in the Records array may include an optional parameter, ExplicitHashKey, // which overrides the partition key to shard mapping. This parameter allows // a data producer to determine explicitly the shard where the record is stored. // For more information, see Adding Multiple Records with PutRecords (http://docs.aws.amazon.com/kinesis/latest/dev/developing-producers-with-sdk.html#kinesis-using-sdk-java-putrecords) -// in the Amazon Kinesis Streams Developer Guide. +// in the Amazon Kinesis Data Streams Developer Guide. // // The PutRecords response includes an array of response Records. Each record // in the response array directly correlates with a record in the request array @@ -1962,8 +2078,8 @@ func (c *Kinesis) PutRecordsRequest(input *PutRecordsInput) (req *request.Reques // the request array. // // The response Records array includes both successfully and unsuccessfully -// processed records. Amazon Kinesis attempts to process all records in each -// PutRecords request. A single record failure does not stop the processing +// processed records. Kinesis Data Streams attempts to process all records in +// each PutRecords request. A single record failure does not stop the processing // of subsequent records. // // A successfully processed record includes ShardId and SequenceNumber values. @@ -1978,7 +2094,7 @@ func (c *Kinesis) PutRecordsRequest(input *PutRecordsInput) (req *request.Reques // exception including the account ID, stream name, and shard ID of the record // that was throttled. For more information about partially successful responses, // see Adding Multiple Records with PutRecords (http://docs.aws.amazon.com/kinesis/latest/dev/kinesis-using-sdk-java-add-data-to-stream.html#kinesis-using-sdk-java-putrecords) -// in the Amazon Kinesis Streams Developer Guide. +// in the Amazon Kinesis Data Streams Developer Guide. // // By default, data records are accessible for 24 hours from the time that they // are added to a stream. You can use IncreaseStreamRetentionPeriod or DecreaseStreamRetentionPeriod @@ -2004,8 +2120,8 @@ func (c *Kinesis) PutRecordsRequest(input *PutRecordsInput) (req *request.Reques // The request rate for the stream is too high, or the requested data is too // large for the available throughput. Reduce the frequency or size of your // requests. For more information, see Streams Limits (http://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) -// in the Amazon Kinesis Streams Developer Guide, and Error Retries and Exponential -// Backoff in AWS (http://docs.aws.amazon.com/general/latest/gr/api-retries.html) +// in the Amazon Kinesis Data Streams Developer Guide, and Error Retries and +// Exponential Backoff in AWS (http://docs.aws.amazon.com/general/latest/gr/api-retries.html) // in the AWS General Reference. // // * ErrCodeKMSDisabledException "KMSDisabledException" @@ -2102,11 +2218,13 @@ func (c *Kinesis) RemoveTagsFromStreamRequest(input *RemoveTagsFromStreamInput) // RemoveTagsFromStream API operation for Amazon Kinesis. // -// Removes tags from the specified Kinesis stream. Removed tags are deleted +// Removes tags from the specified Kinesis data stream. Removed tags are deleted // and cannot be recovered after this operation successfully completes. // // If you specify a tag that does not exist, it is ignored. // +// RemoveTagsFromStream has a limit of five transactions per second per account. +// // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. @@ -2199,33 +2317,33 @@ func (c *Kinesis) SplitShardRequest(input *SplitShardInput) (req *request.Reques // SplitShard API operation for Amazon Kinesis. // -// Splits a shard into two new shards in the Kinesis stream, to increase the -// stream's capacity to ingest and transport data. SplitShard is called when -// there is a need to increase the overall capacity of a stream because of an -// expected increase in the volume of data records being ingested. +// Splits a shard into two new shards in the Kinesis data stream, to increase +// the stream's capacity to ingest and transport data. SplitShard is called +// when there is a need to increase the overall capacity of a stream because +// of an expected increase in the volume of data records being ingested. // // You can also use SplitShard when a shard appears to be approaching its maximum // utilization; for example, the producers sending data into the specific shard // are suddenly sending more than previously anticipated. You can also call -// SplitShard to increase stream capacity, so that more Kinesis Streams applications -// can simultaneously read data from the stream for real-time processing. +// SplitShard to increase stream capacity, so that more Kinesis Data Streams +// applications can simultaneously read data from the stream for real-time processing. // // You must specify the shard to be split and the new hash key, which is the // position in the shard where the shard gets split in two. In many cases, the // new hash key might be the average of the beginning and ending hash key, but // it can be any hash key value in the range being mapped into the shard. For // more information, see Split a Shard (http://docs.aws.amazon.com/kinesis/latest/dev/kinesis-using-sdk-java-resharding-split.html) -// in the Amazon Kinesis Streams Developer Guide. +// in the Amazon Kinesis Data Streams Developer Guide. // // You can use DescribeStream to determine the shard ID and hash key values // for the ShardToSplit and NewStartingHashKey parameters that are specified // in the SplitShard request. // // SplitShard is an asynchronous operation. Upon receiving a SplitShard request, -// Kinesis Streams immediately returns a response and sets the stream status -// to UPDATING. After the operation is completed, Kinesis Streams sets the stream -// status to ACTIVE. Read and write operations continue to work while the stream -// is in the UPDATING state. +// Kinesis Data Streams immediately returns a response and sets the stream status +// to UPDATING. After the operation is completed, Kinesis Data Streams sets +// the stream status to ACTIVE. Read and write operations continue to work while +// the stream is in the UPDATING state. // // You can use DescribeStream to check the status of the stream, which is returned // in StreamStatus. If the stream is in the ACTIVE state, you can call SplitShard. @@ -2237,13 +2355,13 @@ func (c *Kinesis) SplitShardRequest(input *SplitShardInput) (req *request.Reques // receive a LimitExceededException. // // For the default shard limit for an AWS account, see Streams Limits (http://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) -// in the Amazon Kinesis Streams Developer Guide. To increase this limit, contact -// AWS Support (http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html). +// in the Amazon Kinesis Data Streams Developer Guide. To increase this limit, +// contact AWS Support (http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html). // // If you try to operate on too many streams simultaneously using CreateStream, // DeleteStream, MergeShards, and/or SplitShard, you receive a LimitExceededException. // -// SplitShard has a limit of 5 transactions per second per account. +// SplitShard has a limit of five transactions per second per account. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -2341,12 +2459,13 @@ func (c *Kinesis) StartStreamEncryptionRequest(input *StartStreamEncryptionInput // stream. // // Starting encryption is an asynchronous operation. Upon receiving the request, -// Kinesis Streams returns immediately and sets the status of the stream to -// UPDATING. After the update is complete, Kinesis Streams sets the status of -// the stream back to ACTIVE. Updating or applying encryption normally takes -// a few seconds to complete, but it can take minutes. You can continue to read -// and write data to your stream while its status is UPDATING. Once the status -// of the stream is ACTIVE, encryption begins for records written to the stream. +// Kinesis Data Streams returns immediately and sets the status of the stream +// to UPDATING. After the update is complete, Kinesis Data Streams sets the +// status of the stream back to ACTIVE. Updating or applying encryption normally +// takes a few seconds to complete, but it can take minutes. You can continue +// to read and write data to your stream while its status is UPDATING. Once +// the status of the stream is ACTIVE, encryption begins for records written +// to the stream. // // API Limits: You can successfully apply a new AWS KMS key for server-side // encryption 25 times in a rolling 24-hour period. @@ -2477,13 +2596,13 @@ func (c *Kinesis) StopStreamEncryptionRequest(input *StopStreamEncryptionInput) // Disables server-side encryption for a specified stream. // // Stopping encryption is an asynchronous operation. Upon receiving the request, -// Kinesis Streams returns immediately and sets the status of the stream to -// UPDATING. After the update is complete, Kinesis Streams sets the status of -// the stream back to ACTIVE. Stopping encryption normally takes a few seconds -// to complete, but it can take minutes. You can continue to read and write -// data to your stream while its status is UPDATING. Once the status of the -// stream is ACTIVE, records written to the stream are no longer encrypted by -// Kinesis Streams. +// Kinesis Data Streams returns immediately and sets the status of the stream +// to UPDATING. After the update is complete, Kinesis Data Streams sets the +// status of the stream back to ACTIVE. Stopping encryption normally takes a +// few seconds to complete, but it can take minutes. You can continue to read +// and write data to your stream while its status is UPDATING. Once the status +// of the stream is ACTIVE, records written to the stream are no longer encrypted +// by Kinesis Data Streams. // // API Limits: You can successfully disable server-side encryption 25 times // in a rolling 24-hour period. @@ -2587,36 +2706,36 @@ func (c *Kinesis) UpdateShardCountRequest(input *UpdateShardCountInput) (req *re // shards. // // Updating the shard count is an asynchronous operation. Upon receiving the -// request, Kinesis Streams returns immediately and sets the status of the stream -// to UPDATING. After the update is complete, Kinesis Streams sets the status -// of the stream back to ACTIVE. Depending on the size of the stream, the scaling -// action could take a few minutes to complete. You can continue to read and -// write data to your stream while its status is UPDATING. +// request, Kinesis Data Streams returns immediately and sets the status of +// the stream to UPDATING. After the update is complete, Kinesis Data Streams +// sets the status of the stream back to ACTIVE. Depending on the size of the +// stream, the scaling action could take a few minutes to complete. You can +// continue to read and write data to your stream while its status is UPDATING. // -// To update the shard count, Kinesis Streams performs splits or merges on individual -// shards. This can cause short-lived shards to be created, in addition to the -// final shards. We recommend that you double or halve the shard count, as this -// results in the fewest number of splits or merges. +// To update the shard count, Kinesis Data Streams performs splits or merges +// on individual shards. This can cause short-lived shards to be created, in +// addition to the final shards. We recommend that you double or halve the shard +// count, as this results in the fewest number of splits or merges. // -// This operation has the following limits, which are per region per account -// unless otherwise noted. You cannot: +// This operation has the following limits. You cannot do the following: // -// * Scale more than twice per rolling 24 hour period +// * Scale more than twice per rolling 24-hour period per stream // -// * Scale up to double your current shard count +// * Scale up to more than double your current shard count for a stream // -// * Scale down below half your current shard count +// * Scale down below half your current shard count for a stream // -// * Scale up to more 500 shards in a stream +// * Scale up to more than 500 shards in a stream // // * Scale a stream with more than 500 shards down unless the result is less // than 500 shards // -// * Scale up more the shard limits for your account +// * Scale up to more than the shard limit for your account // -// * -// -// For the default limits for an AWS account, see Streams Limits (http://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html)in the Amazon Kinesis Streams Developer Guide. To increase a limit, contact AWS Support (http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html) +// For the default limits for an AWS account, see Streams Limits (http://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) +// in the Amazon Kinesis Data Streams Developer Guide. To request an increase +// in the call rate limit, the shard limit for this API, or your overall shard +// limit, use the limits form (https://console.aws.amazon.com/support/v1#/case/create?issueType=service-limit-increase&limitType=service-code-kinesis). // // 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 @@ -2665,7 +2784,6 @@ func (c *Kinesis) UpdateShardCountWithContext(ctx aws.Context, input *UpdateShar } // Represents the input for AddTagsToStream. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/AddTagsToStreamInput type AddTagsToStreamInput struct { _ struct{} `type:"structure"` @@ -2724,7 +2842,6 @@ func (s *AddTagsToStreamInput) SetTags(v map[string]*string) *AddTagsToStreamInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/AddTagsToStreamOutput type AddTagsToStreamOutput struct { _ struct{} `type:"structure"` } @@ -2740,7 +2857,6 @@ func (s AddTagsToStreamOutput) GoString() string { } // Represents the input for CreateStream. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/CreateStreamInput type CreateStreamInput struct { _ struct{} `type:"structure"` @@ -2754,10 +2870,10 @@ type CreateStreamInput struct { ShardCount *int64 `min:"1" type:"integer" required:"true"` // A name to identify the stream. The stream name is scoped to the AWS account - // used by the application that creates the stream. It is also scoped by region. - // That is, two streams in two different AWS accounts can have the same name. - // Two streams in the same AWS account but in two different regions can also - // have the same name. + // used by the application that creates the stream. It is also scoped by AWS + // Region. That is, two streams in two different AWS accounts can have the same + // name. Two streams in the same AWS account but in two different Regions can + // also have the same name. // // StreamName is a required field StreamName *string `min:"1" type:"string" required:"true"` @@ -2807,7 +2923,6 @@ func (s *CreateStreamInput) SetStreamName(v string) *CreateStreamInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/CreateStreamOutput type CreateStreamOutput struct { _ struct{} `type:"structure"` } @@ -2823,7 +2938,6 @@ func (s CreateStreamOutput) GoString() string { } // Represents the input for DecreaseStreamRetentionPeriod. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/DecreaseStreamRetentionPeriodInput type DecreaseStreamRetentionPeriodInput struct { _ struct{} `type:"structure"` @@ -2883,7 +2997,6 @@ func (s *DecreaseStreamRetentionPeriodInput) SetStreamName(v string) *DecreaseSt return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/DecreaseStreamRetentionPeriodOutput type DecreaseStreamRetentionPeriodOutput struct { _ struct{} `type:"structure"` } @@ -2899,7 +3012,6 @@ func (s DecreaseStreamRetentionPeriodOutput) GoString() string { } // Represents the input for DeleteStream. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/DeleteStreamInput type DeleteStreamInput struct { _ struct{} `type:"structure"` @@ -2941,7 +3053,6 @@ func (s *DeleteStreamInput) SetStreamName(v string) *DeleteStreamInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/DeleteStreamOutput type DeleteStreamOutput struct { _ struct{} `type:"structure"` } @@ -2956,7 +3067,6 @@ func (s DeleteStreamOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/DescribeLimitsInput type DescribeLimitsInput struct { _ struct{} `type:"structure"` } @@ -2971,7 +3081,6 @@ func (s DescribeLimitsInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/DescribeLimitsOutput type DescribeLimitsOutput struct { _ struct{} `type:"structure"` @@ -3009,7 +3118,6 @@ func (s *DescribeLimitsOutput) SetShardLimit(v int64) *DescribeLimitsOutput { } // Represents the input for DescribeStream. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/DescribeStreamInput type DescribeStreamInput struct { _ struct{} `type:"structure"` @@ -3077,12 +3185,12 @@ func (s *DescribeStreamInput) SetStreamName(v string) *DescribeStreamInput { } // Represents the output for DescribeStream. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/DescribeStreamOutput type DescribeStreamOutput struct { _ struct{} `type:"structure"` - // The current status of the stream, the stream ARN, an array of shard objects - // that comprise the stream, and whether there are more shards available. + // The current status of the stream, the stream Amazon Resource Name (ARN), + // an array of shard objects that comprise the stream, and whether there are + // more shards available. // // StreamDescription is a required field StreamDescription *StreamDescription `type:"structure" required:"true"` @@ -3104,7 +3212,6 @@ func (s *DescribeStreamOutput) SetStreamDescription(v *StreamDescription) *Descr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/DescribeStreamSummaryInput type DescribeStreamSummaryInput struct { _ struct{} `type:"structure"` @@ -3146,7 +3253,6 @@ func (s *DescribeStreamSummaryInput) SetStreamName(v string) *DescribeStreamSumm return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/DescribeStreamSummaryOutput type DescribeStreamSummaryOutput struct { _ struct{} `type:"structure"` @@ -3173,7 +3279,6 @@ func (s *DescribeStreamSummaryOutput) SetStreamDescriptionSummary(v *StreamDescr } // Represents the input for DisableEnhancedMonitoring. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/DisableEnhancedMonitoringInput type DisableEnhancedMonitoringInput struct { _ struct{} `type:"structure"` @@ -3198,14 +3303,14 @@ type DisableEnhancedMonitoringInput struct { // // * ALL // - // For more information, see Monitoring the Amazon Kinesis Streams Service with - // Amazon CloudWatch (http://docs.aws.amazon.com/kinesis/latest/dev/monitoring-with-cloudwatch.html) - // in the Amazon Kinesis Streams Developer Guide. + // For more information, see Monitoring the Amazon Kinesis Data Streams Service + // with Amazon CloudWatch (http://docs.aws.amazon.com/kinesis/latest/dev/monitoring-with-cloudwatch.html) + // in the Amazon Kinesis Data Streams Developer Guide. // // ShardLevelMetrics is a required field ShardLevelMetrics []*string `min:"1" type:"list" required:"true"` - // The name of the Kinesis stream for which to disable enhanced monitoring. + // The name of the Kinesis data stream for which to disable enhanced monitoring. // // StreamName is a required field StreamName *string `min:"1" type:"string" required:"true"` @@ -3256,7 +3361,6 @@ func (s *DisableEnhancedMonitoringInput) SetStreamName(v string) *DisableEnhance } // Represents the input for EnableEnhancedMonitoring. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/EnableEnhancedMonitoringInput type EnableEnhancedMonitoringInput struct { _ struct{} `type:"structure"` @@ -3281,9 +3385,9 @@ type EnableEnhancedMonitoringInput struct { // // * ALL // - // For more information, see Monitoring the Amazon Kinesis Streams Service with - // Amazon CloudWatch (http://docs.aws.amazon.com/kinesis/latest/dev/monitoring-with-cloudwatch.html) - // in the Amazon Kinesis Streams Developer Guide. + // For more information, see Monitoring the Amazon Kinesis Data Streams Service + // with Amazon CloudWatch (http://docs.aws.amazon.com/kinesis/latest/dev/monitoring-with-cloudwatch.html) + // in the Amazon Kinesis Data Streams Developer Guide. // // ShardLevelMetrics is a required field ShardLevelMetrics []*string `min:"1" type:"list" required:"true"` @@ -3339,7 +3443,6 @@ func (s *EnableEnhancedMonitoringInput) SetStreamName(v string) *EnableEnhancedM } // Represents enhanced metrics types. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/EnhancedMetrics type EnhancedMetrics struct { _ struct{} `type:"structure"` @@ -3364,9 +3467,9 @@ type EnhancedMetrics struct { // // * ALL // - // For more information, see Monitoring the Amazon Kinesis Streams Service with - // Amazon CloudWatch (http://docs.aws.amazon.com/kinesis/latest/dev/monitoring-with-cloudwatch.html) - // in the Amazon Kinesis Streams Developer Guide. + // For more information, see Monitoring the Amazon Kinesis Data Streams Service + // with Amazon CloudWatch (http://docs.aws.amazon.com/kinesis/latest/dev/monitoring-with-cloudwatch.html) + // in the Amazon Kinesis Data Streams Developer Guide. ShardLevelMetrics []*string `min:"1" type:"list"` } @@ -3387,7 +3490,6 @@ func (s *EnhancedMetrics) SetShardLevelMetrics(v []*string) *EnhancedMetrics { } // Represents the output for EnableEnhancedMonitoring and DisableEnhancedMonitoring. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/EnhancedMonitoringOutput type EnhancedMonitoringOutput struct { _ struct{} `type:"structure"` @@ -3399,7 +3501,7 @@ type EnhancedMonitoringOutput struct { // after the operation. DesiredShardLevelMetrics []*string `min:"1" type:"list"` - // The name of the Kinesis stream. + // The name of the Kinesis data stream. StreamName *string `min:"1" type:"string"` } @@ -3432,7 +3534,6 @@ func (s *EnhancedMonitoringOutput) SetStreamName(v string) *EnhancedMonitoringOu } // Represents the input for GetRecords. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/GetRecordsInput type GetRecordsInput struct { _ struct{} `type:"structure"` @@ -3490,7 +3591,6 @@ func (s *GetRecordsInput) SetShardIterator(v string) *GetRecordsInput { } // Represents the output for GetRecords. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/GetRecordsOutput type GetRecordsOutput struct { _ struct{} `type:"structure"` @@ -3540,11 +3640,10 @@ func (s *GetRecordsOutput) SetRecords(v []*Record) *GetRecordsOutput { } // Represents the input for GetShardIterator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/GetShardIteratorInput type GetShardIteratorInput struct { _ struct{} `type:"structure"` - // The shard ID of the Kinesis Streams shard to get the iterator for. + // The shard ID of the Kinesis Data Streams shard to get the iterator for. // // ShardId is a required field ShardId *string `min:"1" type:"string" required:"true"` @@ -3576,7 +3675,7 @@ type GetShardIteratorInput struct { // Used with shard iterator type AT_SEQUENCE_NUMBER and AFTER_SEQUENCE_NUMBER. StartingSequenceNumber *string `type:"string"` - // The name of the Amazon Kinesis stream. + // The name of the Amazon Kinesis data stream. // // StreamName is a required field StreamName *string `min:"1" type:"string" required:"true"` @@ -3657,7 +3756,6 @@ func (s *GetShardIteratorInput) SetTimestamp(v time.Time) *GetShardIteratorInput } // Represents the output for GetShardIterator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/GetShardIteratorOutput type GetShardIteratorOutput struct { _ struct{} `type:"structure"` @@ -3685,7 +3783,6 @@ func (s *GetShardIteratorOutput) SetShardIterator(v string) *GetShardIteratorOut // The range of possible hash key values for the shard, which is a set of ordered // contiguous positive integers. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/HashKeyRange type HashKeyRange struct { _ struct{} `type:"structure"` @@ -3723,7 +3820,6 @@ func (s *HashKeyRange) SetStartingHashKey(v string) *HashKeyRange { } // Represents the input for IncreaseStreamRetentionPeriod. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/IncreaseStreamRetentionPeriodInput type IncreaseStreamRetentionPeriodInput struct { _ struct{} `type:"structure"` @@ -3783,7 +3879,6 @@ func (s *IncreaseStreamRetentionPeriodInput) SetStreamName(v string) *IncreaseSt return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/IncreaseStreamRetentionPeriodOutput type IncreaseStreamRetentionPeriodOutput struct { _ struct{} `type:"structure"` } @@ -3798,8 +3893,170 @@ func (s IncreaseStreamRetentionPeriodOutput) GoString() string { return s.String() } +type ListShardsInput struct { + _ struct{} `type:"structure"` + + // The ID of the shard to start the list with. + // + // If you don't specify this parameter, the default behavior is for ListShards + // to list the shards starting with the first one in the stream. + // + // You cannot specify this parameter if you specify NextToken. + ExclusiveStartShardId *string `min:"1" type:"string"` + + // The maximum number of shards to return in a single call to ListShards. The + // minimum value you can specify for this parameter is 1, and the maximum is + // 1,000, which is also the default. + // + // When the number of shards to be listed is greater than the value of MaxResults, + // the response contains a NextToken value that you can use in a subsequent + // call to ListShards to list the next set of shards. + MaxResults *int64 `min:"1" type:"integer"` + + // When the number of shards in the data stream is greater than the default + // value for the MaxResults parameter, or if you explicitly specify a value + // for MaxResults that is less than the number of shards in the data stream, + // the response includes a pagination token named NextToken. You can specify + // this NextToken value in a subsequent call to ListShards to list the next + // set of shards. + // + // Don't specify StreamName or StreamCreationTimestamp if you specify NextToken + // because the latter unambiguously identifies the stream. + // + // You can optionally specify a value for the MaxResults parameter when you + // specify NextToken. If you specify a MaxResults value that is less than the + // number of shards that the operation returns if you don't specify MaxResults, + // the response will contain a new NextToken value. You can use the new NextToken + // value in a subsequent call to the ListShards operation. + // + // Tokens expire after 300 seconds. When you obtain a value for NextToken in + // the response to a call to ListShards, you have 300 seconds to use that value. + // If you specify an expired token in a call to ListShards, you get ExpiredNextTokenException. + NextToken *string `min:"1" type:"string"` + + // Specify this input parameter to distinguish data streams that have the same + // name. For example, if you create a data stream and then delete it, and you + // later create another data stream with the same name, you can use this input + // parameter to specify which of the two streams you want to list the shards + // for. + // + // You cannot specify this parameter if you specify the NextToken parameter. + StreamCreationTimestamp *time.Time `type:"timestamp" timestampFormat:"unix"` + + // The name of the data stream whose shards you want to list. + // + // You cannot specify this parameter if you specify the NextToken parameter. + StreamName *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListShardsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListShardsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListShardsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListShardsInput"} + if s.ExclusiveStartShardId != nil && len(*s.ExclusiveStartShardId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ExclusiveStartShardId", 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.StreamName != nil && len(*s.StreamName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("StreamName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetExclusiveStartShardId sets the ExclusiveStartShardId field's value. +func (s *ListShardsInput) SetExclusiveStartShardId(v string) *ListShardsInput { + s.ExclusiveStartShardId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListShardsInput) SetMaxResults(v int64) *ListShardsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListShardsInput) SetNextToken(v string) *ListShardsInput { + s.NextToken = &v + return s +} + +// SetStreamCreationTimestamp sets the StreamCreationTimestamp field's value. +func (s *ListShardsInput) SetStreamCreationTimestamp(v time.Time) *ListShardsInput { + s.StreamCreationTimestamp = &v + return s +} + +// SetStreamName sets the StreamName field's value. +func (s *ListShardsInput) SetStreamName(v string) *ListShardsInput { + s.StreamName = &v + return s +} + +type ListShardsOutput struct { + _ struct{} `type:"structure"` + + // When the number of shards in the data stream is greater than the default + // value for the MaxResults parameter, or if you explicitly specify a value + // for MaxResults that is less than the number of shards in the data stream, + // the response includes a pagination token named NextToken. You can specify + // this NextToken value in a subsequent call to ListShards to list the next + // set of shards. For more information about the use of this pagination token + // when calling the ListShards operation, see ListShardsInput$NextToken. + // + // Tokens expire after 300 seconds. When you obtain a value for NextToken in + // the response to a call to ListShards, you have 300 seconds to use that value. + // If you specify an expired token in a call to ListShards, you get ExpiredNextTokenException. + NextToken *string `min:"1" type:"string"` + + // An array of JSON objects. Each object represents one shard and specifies + // the IDs of the shard, the shard's parent, and the shard that's adjacent to + // the shard's parent. Each object also contains the starting and ending hash + // keys and the starting and ending sequence numbers for the shard. + Shards []*Shard `type:"list"` +} + +// String returns the string representation +func (s ListShardsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListShardsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListShardsOutput) SetNextToken(v string) *ListShardsOutput { + s.NextToken = &v + return s +} + +// SetShards sets the Shards field's value. +func (s *ListShardsOutput) SetShards(v []*Shard) *ListShardsOutput { + s.Shards = v + return s +} + // Represents the input for ListStreams. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/ListStreamsInput type ListStreamsInput struct { _ struct{} `type:"structure"` @@ -3849,7 +4106,6 @@ func (s *ListStreamsInput) SetLimit(v int64) *ListStreamsInput { } // Represents the output for ListStreams. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/ListStreamsOutput type ListStreamsOutput struct { _ struct{} `type:"structure"` @@ -3888,7 +4144,6 @@ func (s *ListStreamsOutput) SetStreamNames(v []*string) *ListStreamsOutput { } // Represents the input for ListTagsForStream. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/ListTagsForStreamInput type ListTagsForStreamInput struct { _ struct{} `type:"structure"` @@ -3958,7 +4213,6 @@ func (s *ListTagsForStreamInput) SetStreamName(v string) *ListTagsForStreamInput } // Represents the output for ListTagsForStream. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/ListTagsForStreamOutput type ListTagsForStreamOutput struct { _ struct{} `type:"structure"` @@ -3998,7 +4252,6 @@ func (s *ListTagsForStreamOutput) SetTags(v []*Tag) *ListTagsForStreamOutput { } // Represents the input for MergeShards. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/MergeShardsInput type MergeShardsInput struct { _ struct{} `type:"structure"` @@ -4074,7 +4327,6 @@ func (s *MergeShardsInput) SetStreamName(v string) *MergeShardsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/MergeShardsOutput type MergeShardsOutput struct { _ struct{} `type:"structure"` } @@ -4090,7 +4342,6 @@ func (s MergeShardsOutput) GoString() string { } // Represents the input for PutRecord. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/PutRecordInput type PutRecordInput struct { _ struct{} `type:"structure"` @@ -4110,12 +4361,12 @@ type PutRecordInput struct { // Determines which shard in the stream the data record is assigned to. Partition // keys are Unicode strings with a maximum length limit of 256 characters for - // each key. Amazon Kinesis uses the partition key as input to a hash function - // that maps the partition key and associated data to a specific shard. Specifically, - // an MD5 hash function is used to map partition keys to 128-bit integer values - // and to map associated data records to shards. As a result of this hashing - // mechanism, all data records with the same partition key map to the same shard - // within the stream. + // each key. Amazon Kinesis Data Streams uses the partition key as input to + // a hash function that maps the partition key and associated data to a specific + // shard. Specifically, an MD5 hash function is used to map partition keys to + // 128-bit integer values and to map associated data records to shards. As a + // result of this hashing mechanism, all data records with the same partition + // key map to the same shard within the stream. // // PartitionKey is a required field PartitionKey *string `min:"1" type:"string" required:"true"` @@ -4199,7 +4450,6 @@ func (s *PutRecordInput) SetStreamName(v string) *PutRecordInput { } // Represents the output for PutRecord. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/PutRecordOutput type PutRecordOutput struct { _ struct{} `type:"structure"` @@ -4209,7 +4459,7 @@ type PutRecordOutput struct { // * NONE: Do not encrypt the records in the stream. // // * KMS: Use server-side encryption on the records in the stream using a - // customer-managed KMS key. + // customer-managed AWS KMS key. EncryptionType *string `type:"string" enum:"EncryptionType"` // The sequence number identifier that was assigned to the put data record. @@ -4255,7 +4505,6 @@ func (s *PutRecordOutput) SetShardId(v string) *PutRecordOutput { } // A PutRecords request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/PutRecordsInput type PutRecordsInput struct { _ struct{} `type:"structure"` @@ -4325,7 +4574,6 @@ func (s *PutRecordsInput) SetStreamName(v string) *PutRecordsInput { } // PutRecords results. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/PutRecordsOutput type PutRecordsOutput struct { _ struct{} `type:"structure"` @@ -4335,7 +4583,7 @@ type PutRecordsOutput struct { // * NONE: Do not encrypt the records. // // * KMS: Use server-side encryption on the records using a customer-managed - // KMS key. + // AWS KMS key. EncryptionType *string `type:"string" enum:"EncryptionType"` // The number of unsuccessfully processed records in a PutRecords request. @@ -4380,7 +4628,6 @@ func (s *PutRecordsOutput) SetRecords(v []*PutRecordsResultEntry) *PutRecordsOut } // Represents the output for PutRecords. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/PutRecordsRequestEntry type PutRecordsRequestEntry struct { _ struct{} `type:"structure"` @@ -4400,12 +4647,12 @@ type PutRecordsRequestEntry struct { // Determines which shard in the stream the data record is assigned to. Partition // keys are Unicode strings with a maximum length limit of 256 characters for - // each key. Amazon Kinesis uses the partition key as input to a hash function - // that maps the partition key and associated data to a specific shard. Specifically, - // an MD5 hash function is used to map partition keys to 128-bit integer values - // and to map associated data records to shards. As a result of this hashing - // mechanism, all data records with the same partition key map to the same shard - // within the stream. + // each key. Amazon Kinesis Data Streams uses the partition key as input to + // a hash function that maps the partition key and associated data to a specific + // shard. Specifically, an MD5 hash function is used to map partition keys to + // 128-bit integer values and to map associated data records to shards. As a + // result of this hashing mechanism, all data records with the same partition + // key map to the same shard within the stream. // // PartitionKey is a required field PartitionKey *string `min:"1" type:"string" required:"true"` @@ -4462,7 +4709,6 @@ func (s *PutRecordsRequestEntry) SetPartitionKey(v string) *PutRecordsRequestEnt // A record that is successfully added to a stream includes SequenceNumber and // ShardId in the result. A record that fails to be added to the stream includes // ErrorCode and ErrorMessage in the result. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/PutRecordsResultEntry type PutRecordsResultEntry struct { _ struct{} `type:"structure"` @@ -4517,9 +4763,8 @@ func (s *PutRecordsResultEntry) SetShardId(v string) *PutRecordsResultEntry { return s } -// The unit of data of the Kinesis stream, which is composed of a sequence number, -// a partition key, and a data blob. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/Record +// The unit of data of the Kinesis data stream, which is composed of a sequence +// number, a partition key, and a data blob. type Record struct { _ struct{} `type:"structure"` @@ -4527,10 +4772,10 @@ type Record struct { ApproximateArrivalTimestamp *time.Time `type:"timestamp" timestampFormat:"unix"` // The data blob. The data in the blob is both opaque and immutable to Kinesis - // Streams, which does not inspect, interpret, or change the data in the blob - // in any way. When the data blob (the payload before base64-encoding) is added - // to the partition key size, the total size must not exceed the maximum record - // size (1 MB). + // Data Streams, which does not inspect, interpret, or change the data in the + // blob in any way. When the data blob (the payload before base64-encoding) + // is added to the partition key size, the total size must not exceed the maximum + // record size (1 MB). // // Data is automatically base64 encoded/decoded by the SDK. // @@ -4543,7 +4788,7 @@ type Record struct { // * NONE: Do not encrypt the records in the stream. // // * KMS: Use server-side encryption on the records in the stream using a - // customer-managed KMS key. + // customer-managed AWS KMS key. EncryptionType *string `type:"string" enum:"EncryptionType"` // Identifies which shard in the stream the data record is assigned to. @@ -4598,7 +4843,6 @@ func (s *Record) SetSequenceNumber(v string) *Record { } // Represents the input for RemoveTagsFromStream. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/RemoveTagsFromStreamInput type RemoveTagsFromStreamInput struct { _ struct{} `type:"structure"` @@ -4657,7 +4901,6 @@ func (s *RemoveTagsFromStreamInput) SetTagKeys(v []*string) *RemoveTagsFromStrea return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/RemoveTagsFromStreamOutput type RemoveTagsFromStreamOutput struct { _ struct{} `type:"structure"` } @@ -4673,7 +4916,6 @@ func (s RemoveTagsFromStreamOutput) GoString() string { } // The range of possible sequence numbers for the shard. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/SequenceNumberRange type SequenceNumberRange struct { _ struct{} `type:"structure"` @@ -4709,8 +4951,7 @@ func (s *SequenceNumberRange) SetStartingSequenceNumber(v string) *SequenceNumbe return s } -// A uniquely identified group of data records in a Kinesis stream. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/Shard +// A uniquely identified group of data records in a Kinesis data stream. type Shard struct { _ struct{} `type:"structure"` @@ -4778,7 +5019,6 @@ func (s *Shard) SetShardId(v string) *Shard { } // Represents the input for SplitShard. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/SplitShardInput type SplitShardInput struct { _ struct{} `type:"structure"` @@ -4857,7 +5097,6 @@ func (s *SplitShardInput) SetStreamName(v string) *SplitShardInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/SplitShardOutput type SplitShardOutput struct { _ struct{} `type:"structure"` } @@ -4872,7 +5111,6 @@ func (s SplitShardOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/StartStreamEncryptionInput type StartStreamEncryptionInput struct { _ struct{} `type:"structure"` @@ -4881,10 +5119,11 @@ type StartStreamEncryptionInput struct { // EncryptionType is a required field EncryptionType *string `type:"string" required:"true" enum:"EncryptionType"` - // The GUID for the customer-managed KMS key to use for encryption. This value - // can be a globally unique identifier, a fully specified ARN to either an alias - // or a key, or an alias name prefixed by "alias/".You can also use a master - // key owned by Kinesis Streams by specifying the alias aws/kinesis. + // The GUID for the customer-managed AWS KMS key to use for encryption. This + // value can be a globally unique identifier, a fully specified Amazon Resource + // Name (ARN) to either an alias or a key, or an alias name prefixed by "alias/".You + // can also use a master key owned by Kinesis Data Streams by specifying the + // alias aws/kinesis. // // * Key ARN example: arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 // @@ -4894,7 +5133,7 @@ type StartStreamEncryptionInput struct { // // * Alias name example: alias/MyAliasName // - // * Master key owned by Kinesis Streams: alias/aws/kinesis + // * Master key owned by Kinesis Data Streams: alias/aws/kinesis // // KeyId is a required field KeyId *string `min:"1" type:"string" required:"true"` @@ -4958,7 +5197,6 @@ func (s *StartStreamEncryptionInput) SetStreamName(v string) *StartStreamEncrypt return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/StartStreamEncryptionOutput type StartStreamEncryptionOutput struct { _ struct{} `type:"structure"` } @@ -4973,7 +5211,6 @@ func (s StartStreamEncryptionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/StopStreamEncryptionInput type StopStreamEncryptionInput struct { _ struct{} `type:"structure"` @@ -4982,10 +5219,11 @@ type StopStreamEncryptionInput struct { // EncryptionType is a required field EncryptionType *string `type:"string" required:"true" enum:"EncryptionType"` - // The GUID for the customer-managed KMS key to use for encryption. This value - // can be a globally unique identifier, a fully specified ARN to either an alias - // or a key, or an alias name prefixed by "alias/".You can also use a master - // key owned by Kinesis Streams by specifying the alias aws/kinesis. + // The GUID for the customer-managed AWS KMS key to use for encryption. This + // value can be a globally unique identifier, a fully specified Amazon Resource + // Name (ARN) to either an alias or a key, or an alias name prefixed by "alias/".You + // can also use a master key owned by Kinesis Data Streams by specifying the + // alias aws/kinesis. // // * Key ARN example: arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 // @@ -4995,7 +5233,7 @@ type StopStreamEncryptionInput struct { // // * Alias name example: alias/MyAliasName // - // * Master key owned by Kinesis Streams: alias/aws/kinesis + // * Master key owned by Kinesis Data Streams: alias/aws/kinesis // // KeyId is a required field KeyId *string `min:"1" type:"string" required:"true"` @@ -5059,7 +5297,6 @@ func (s *StopStreamEncryptionInput) SetStreamName(v string) *StopStreamEncryptio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/StopStreamEncryptionOutput type StopStreamEncryptionOutput struct { _ struct{} `type:"structure"` } @@ -5075,7 +5312,6 @@ func (s StopStreamEncryptionOutput) GoString() string { } // Represents the output for DescribeStream. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/StreamDescription type StreamDescription struct { _ struct{} `type:"structure"` @@ -5085,7 +5321,7 @@ type StreamDescription struct { // * NONE: Do not encrypt the records in the stream. // // * KMS: Use server-side encryption on the records in the stream using a - // customer-managed KMS key. + // customer-managed AWS KMS key. EncryptionType *string `type:"string" enum:"EncryptionType"` // Represents the current enhanced monitoring settings of the stream. @@ -5098,10 +5334,10 @@ type StreamDescription struct { // HasMoreShards is a required field HasMoreShards *bool `type:"boolean" required:"true"` - // The GUID for the customer-managed KMS key to use for encryption. This value - // can be a globally unique identifier, a fully specified ARN to either an alias - // or a key, or an alias name prefixed by "alias/".You can also use a master - // key owned by Kinesis Streams by specifying the alias aws/kinesis. + // The GUID for the customer-managed AWS KMS key to use for encryption. This + // value can be a globally unique identifier, a fully specified ARN to either + // an alias or a key, or an alias name prefixed by "alias/".You can also use + // a master key owned by Kinesis Data Streams by specifying the alias aws/kinesis. // // * Key ARN example: arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 // @@ -5111,7 +5347,7 @@ type StreamDescription struct { // // * Alias name example: alias/MyAliasName // - // * Master key owned by Kinesis Streams: alias/aws/kinesis + // * Master key owned by Kinesis Data Streams: alias/aws/kinesis KeyId *string `min:"1" type:"string"` // The current retention period, in hours. @@ -5142,11 +5378,11 @@ type StreamDescription struct { // The current status of the stream being described. The stream status is one // of the following states: // - // * CREATING - The stream is being created. Kinesis Streams immediately + // * CREATING - The stream is being created. Kinesis Data Streams immediately // returns and sets StreamStatus to CREATING. // // * DELETING - The stream is being deleted. The specified stream is in the - // DELETING state until Kinesis Streams completes the deletion. + // DELETING state until Kinesis Data Streams completes the deletion. // // * ACTIVE - The stream exists and is ready for read and write operations // or deletion. You should perform read and write operations only on an ACTIVE @@ -5231,7 +5467,6 @@ func (s *StreamDescription) SetStreamStatus(v string) *StreamDescription { } // Represents the output for DescribeStreamSummary -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/StreamDescriptionSummary type StreamDescriptionSummary struct { _ struct{} `type:"structure"` @@ -5247,10 +5482,10 @@ type StreamDescriptionSummary struct { // EnhancedMonitoring is a required field EnhancedMonitoring []*EnhancedMetrics `type:"list" required:"true"` - // The GUID for the customer-managed KMS key to use for encryption. This value - // can be a globally unique identifier, a fully specified ARN to either an alias - // or a key, or an alias name prefixed by "alias/".You can also use a master - // key owned by Kinesis Streams by specifying the alias aws/kinesis. + // The GUID for the customer-managed AWS KMS key to use for encryption. This + // value can be a globally unique identifier, a fully specified ARN to either + // an alias or a key, or an alias name prefixed by "alias/".You can also use + // a master key owned by Kinesis Data Streams by specifying the alias aws/kinesis. // // * Key ARN example: arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012 // @@ -5260,7 +5495,7 @@ type StreamDescriptionSummary struct { // // * Alias name example: alias/MyAliasName // - // * Master key owned by Kinesis: alias/aws/kinesis + // * Master key owned by Kinesis Data Streams: alias/aws/kinesis KeyId *string `min:"1" type:"string"` // The number of open shards in the stream. @@ -5291,11 +5526,11 @@ type StreamDescriptionSummary struct { // The current status of the stream being described. The stream status is one // of the following states: // - // * CREATING - The stream is being created. Kinesis Streams immediately + // * CREATING - The stream is being created. Kinesis Data Streams immediately // returns and sets StreamStatus to CREATING. // // * DELETING - The stream is being deleted. The specified stream is in the - // DELETING state until Kinesis Streams completes the deletion. + // DELETING state until Kinesis Data Streams completes the deletion. // // * ACTIVE - The stream exists and is ready for read and write operations // or deletion. You should perform read and write operations only on an ACTIVE @@ -5374,7 +5609,6 @@ func (s *StreamDescriptionSummary) SetStreamStatus(v string) *StreamDescriptionS } // Metadata assigned to the stream, consisting of a key-value pair. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/Tag type Tag struct { _ struct{} `type:"structure"` @@ -5412,7 +5646,6 @@ func (s *Tag) SetValue(v string) *Tag { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/UpdateShardCountInput type UpdateShardCountInput struct { _ struct{} `type:"structure"` @@ -5485,7 +5718,6 @@ func (s *UpdateShardCountInput) SetTargetShardCount(v int64) *UpdateShardCountIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02/UpdateShardCountOutput type UpdateShardCountOutput struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/kinesis/doc.go b/vendor/github.com/aws/aws-sdk-go/service/kinesis/doc.go index 5e1706c20..06e8de5fe 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/kinesis/doc.go +++ b/vendor/github.com/aws/aws-sdk-go/service/kinesis/doc.go @@ -3,8 +3,8 @@ // Package kinesis provides the client and types for making API // requests to Amazon Kinesis. // -// Amazon Kinesis Streams is a managed service that scales elastically for real -// time processing of streaming big data. +// Amazon Kinesis Data Streams is a managed service that scales elastically +// for real-time processing of streaming big data. // // See https://docs.aws.amazon.com/goto/WebAPI/kinesis-2013-12-02 for more information on this service. // diff --git a/vendor/github.com/aws/aws-sdk-go/service/kinesis/errors.go b/vendor/github.com/aws/aws-sdk-go/service/kinesis/errors.go index bb64ceda7..a567a3d45 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/kinesis/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/kinesis/errors.go @@ -10,6 +10,13 @@ const ( // The provided iterator exceeds the maximum age allowed. ErrCodeExpiredIteratorException = "ExpiredIteratorException" + // ErrCodeExpiredNextTokenException for service response error code + // "ExpiredNextTokenException". + // + // The pagination token passed to the ListShards operation is expired. For more + // information, see ListShardsInput$NextToken. + ErrCodeExpiredNextTokenException = "ExpiredNextTokenException" + // ErrCodeInvalidArgumentException for service response error code // "InvalidArgumentException". // @@ -74,8 +81,8 @@ const ( // The request rate for the stream is too high, or the requested data is too // large for the available throughput. Reduce the frequency or size of your // requests. For more information, see Streams Limits (http://docs.aws.amazon.com/kinesis/latest/dev/service-sizes-and-limits.html) - // in the Amazon Kinesis Streams Developer Guide, and Error Retries and Exponential - // Backoff in AWS (http://docs.aws.amazon.com/general/latest/gr/api-retries.html) + // in the Amazon Kinesis Data Streams Developer Guide, and Error Retries and + // Exponential Backoff in AWS (http://docs.aws.amazon.com/general/latest/gr/api-retries.html) // in the AWS General Reference. ErrCodeProvisionedThroughputExceededException = "ProvisionedThroughputExceededException" diff --git a/vendor/github.com/aws/aws-sdk-go/service/kms/api.go b/vendor/github.com/aws/aws-sdk-go/service/kms/api.go index 4efc28b99..3e66c27c0 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/kms/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/kms/api.go @@ -4186,7 +4186,6 @@ func (c *KMS) UpdateKeyDescriptionWithContext(ctx aws.Context, input *UpdateKeyD } // Contains information about an alias. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/AliasListEntry type AliasListEntry struct { _ struct{} `type:"structure"` @@ -4228,7 +4227,6 @@ func (s *AliasListEntry) SetTargetKeyId(v string) *AliasListEntry { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CancelKeyDeletionRequest type CancelKeyDeletionInput struct { _ struct{} `type:"structure"` @@ -4281,7 +4279,6 @@ func (s *CancelKeyDeletionInput) SetKeyId(v string) *CancelKeyDeletionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CancelKeyDeletionResponse type CancelKeyDeletionOutput struct { _ struct{} `type:"structure"` @@ -4305,7 +4302,6 @@ func (s *CancelKeyDeletionOutput) SetKeyId(v string) *CancelKeyDeletionOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateAliasRequest type CreateAliasInput struct { _ struct{} `type:"structure"` @@ -4377,7 +4373,6 @@ func (s *CreateAliasInput) SetTargetKeyId(v string) *CreateAliasInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateAliasOutput type CreateAliasOutput struct { _ struct{} `type:"structure"` } @@ -4392,7 +4387,6 @@ func (s CreateAliasOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateGrantRequest type CreateGrantInput struct { _ struct{} `type:"structure"` @@ -4552,7 +4546,6 @@ func (s *CreateGrantInput) SetRetiringPrincipal(v string) *CreateGrantInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateGrantResponse type CreateGrantOutput struct { _ struct{} `type:"structure"` @@ -4590,7 +4583,6 @@ func (s *CreateGrantOutput) SetGrantToken(v string) *CreateGrantOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateKeyRequest type CreateKeyInput struct { _ struct{} `type:"structure"` @@ -4736,7 +4728,6 @@ func (s *CreateKeyInput) SetTags(v []*Tag) *CreateKeyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/CreateKeyResponse type CreateKeyOutput struct { _ struct{} `type:"structure"` @@ -4760,7 +4751,6 @@ func (s *CreateKeyOutput) SetKeyMetadata(v *KeyMetadata) *CreateKeyOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DecryptRequest type DecryptInput struct { _ struct{} `type:"structure"` @@ -4827,7 +4817,6 @@ func (s *DecryptInput) SetGrantTokens(v []*string) *DecryptInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DecryptResponse type DecryptOutput struct { _ struct{} `type:"structure"` @@ -4864,7 +4853,6 @@ func (s *DecryptOutput) SetPlaintext(v []byte) *DecryptOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteAliasRequest type DeleteAliasInput struct { _ struct{} `type:"structure"` @@ -4907,7 +4895,6 @@ func (s *DeleteAliasInput) SetAliasName(v string) *DeleteAliasInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteAliasOutput type DeleteAliasOutput struct { _ struct{} `type:"structure"` } @@ -4922,7 +4909,6 @@ func (s DeleteAliasOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteImportedKeyMaterialRequest type DeleteImportedKeyMaterialInput struct { _ struct{} `type:"structure"` @@ -4975,7 +4961,6 @@ func (s *DeleteImportedKeyMaterialInput) SetKeyId(v string) *DeleteImportedKeyMa return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DeleteImportedKeyMaterialOutput type DeleteImportedKeyMaterialOutput struct { _ struct{} `type:"structure"` } @@ -4990,7 +4975,6 @@ func (s DeleteImportedKeyMaterialOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeKeyRequest type DescribeKeyInput struct { _ struct{} `type:"structure"` @@ -5061,7 +5045,6 @@ func (s *DescribeKeyInput) SetKeyId(v string) *DescribeKeyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DescribeKeyResponse type DescribeKeyOutput struct { _ struct{} `type:"structure"` @@ -5085,7 +5068,6 @@ func (s *DescribeKeyOutput) SetKeyMetadata(v *KeyMetadata) *DescribeKeyOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisableKeyRequest type DisableKeyInput struct { _ struct{} `type:"structure"` @@ -5137,7 +5119,6 @@ func (s *DisableKeyInput) SetKeyId(v string) *DisableKeyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisableKeyOutput type DisableKeyOutput struct { _ struct{} `type:"structure"` } @@ -5152,7 +5133,6 @@ func (s DisableKeyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisableKeyRotationRequest type DisableKeyRotationInput struct { _ struct{} `type:"structure"` @@ -5204,7 +5184,6 @@ func (s *DisableKeyRotationInput) SetKeyId(v string) *DisableKeyRotationInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/DisableKeyRotationOutput type DisableKeyRotationOutput struct { _ struct{} `type:"structure"` } @@ -5219,7 +5198,6 @@ func (s DisableKeyRotationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EnableKeyRequest type EnableKeyInput struct { _ struct{} `type:"structure"` @@ -5271,7 +5249,6 @@ func (s *EnableKeyInput) SetKeyId(v string) *EnableKeyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EnableKeyOutput type EnableKeyOutput struct { _ struct{} `type:"structure"` } @@ -5286,7 +5263,6 @@ func (s EnableKeyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EnableKeyRotationRequest type EnableKeyRotationInput struct { _ struct{} `type:"structure"` @@ -5338,7 +5314,6 @@ func (s *EnableKeyRotationInput) SetKeyId(v string) *EnableKeyRotationInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EnableKeyRotationOutput type EnableKeyRotationOutput struct { _ struct{} `type:"structure"` } @@ -5353,7 +5328,6 @@ func (s EnableKeyRotationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EncryptRequest type EncryptInput struct { _ struct{} `type:"structure"` @@ -5455,7 +5429,6 @@ func (s *EncryptInput) SetPlaintext(v []byte) *EncryptInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/EncryptResponse type EncryptOutput struct { _ struct{} `type:"structure"` @@ -5491,7 +5464,6 @@ func (s *EncryptOutput) SetKeyId(v string) *EncryptOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyRequest type GenerateDataKeyInput struct { _ struct{} `type:"structure"` @@ -5600,7 +5572,6 @@ func (s *GenerateDataKeyInput) SetNumberOfBytes(v int64) *GenerateDataKeyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyResponse type GenerateDataKeyOutput struct { _ struct{} `type:"structure"` @@ -5650,7 +5621,6 @@ func (s *GenerateDataKeyOutput) SetPlaintext(v []byte) *GenerateDataKeyOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyWithoutPlaintextRequest type GenerateDataKeyWithoutPlaintextInput struct { _ struct{} `type:"structure"` @@ -5759,7 +5729,6 @@ func (s *GenerateDataKeyWithoutPlaintextInput) SetNumberOfBytes(v int64) *Genera return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateDataKeyWithoutPlaintextResponse type GenerateDataKeyWithoutPlaintextOutput struct { _ struct{} `type:"structure"` @@ -5796,7 +5765,6 @@ func (s *GenerateDataKeyWithoutPlaintextOutput) SetKeyId(v string) *GenerateData return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateRandomRequest type GenerateRandomInput struct { _ struct{} `type:"structure"` @@ -5833,7 +5801,6 @@ func (s *GenerateRandomInput) SetNumberOfBytes(v int64) *GenerateRandomInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GenerateRandomResponse type GenerateRandomOutput struct { _ struct{} `type:"structure"` @@ -5860,7 +5827,6 @@ func (s *GenerateRandomOutput) SetPlaintext(v []byte) *GenerateRandomOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyPolicyRequest type GetKeyPolicyInput struct { _ struct{} `type:"structure"` @@ -5930,7 +5896,6 @@ func (s *GetKeyPolicyInput) SetPolicyName(v string) *GetKeyPolicyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyPolicyResponse type GetKeyPolicyOutput struct { _ struct{} `type:"structure"` @@ -5954,7 +5919,6 @@ func (s *GetKeyPolicyOutput) SetPolicy(v string) *GetKeyPolicyOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyRotationStatusRequest type GetKeyRotationStatusInput struct { _ struct{} `type:"structure"` @@ -6007,7 +5971,6 @@ func (s *GetKeyRotationStatusInput) SetKeyId(v string) *GetKeyRotationStatusInpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetKeyRotationStatusResponse type GetKeyRotationStatusOutput struct { _ struct{} `type:"structure"` @@ -6031,7 +5994,6 @@ func (s *GetKeyRotationStatusOutput) SetKeyRotationEnabled(v bool) *GetKeyRotati return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetParametersForImportRequest type GetParametersForImportInput struct { _ struct{} `type:"structure"` @@ -6116,7 +6078,6 @@ func (s *GetParametersForImportInput) SetWrappingKeySpec(v string) *GetParameter return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GetParametersForImportResponse type GetParametersForImportOutput struct { _ struct{} `type:"structure"` @@ -6187,7 +6148,6 @@ func (s *GetParametersForImportOutput) SetPublicKey(v []byte) *GetParametersForI // context as input. A grant that allows the Encrypt operation does so only // when the encryption context of the Encrypt operation satisfies the grant // constraints. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GrantConstraints type GrantConstraints struct { _ struct{} `type:"structure"` @@ -6229,7 +6189,6 @@ func (s *GrantConstraints) SetEncryptionContextSubset(v map[string]*string) *Gra } // Contains information about an entry in a list of grants. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/GrantListEntry type GrantListEntry struct { _ struct{} `type:"structure"` @@ -6328,7 +6287,6 @@ func (s *GrantListEntry) SetRetiringPrincipal(v string) *GrantListEntry { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ImportKeyMaterialRequest type ImportKeyMaterialInput struct { _ struct{} `type:"structure"` @@ -6446,7 +6404,6 @@ func (s *ImportKeyMaterialInput) SetValidTo(v time.Time) *ImportKeyMaterialInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ImportKeyMaterialResponse type ImportKeyMaterialOutput struct { _ struct{} `type:"structure"` } @@ -6462,7 +6419,6 @@ func (s ImportKeyMaterialOutput) GoString() string { } // Contains information about each entry in the key list. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/KeyListEntry type KeyListEntry struct { _ struct{} `type:"structure"` @@ -6499,7 +6455,6 @@ func (s *KeyListEntry) SetKeyId(v string) *KeyListEntry { // // This data type is used as a response element for the CreateKey and DescribeKey // operations. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/KeyMetadata type KeyMetadata struct { _ struct{} `type:"structure"` @@ -6652,7 +6607,6 @@ func (s *KeyMetadata) SetValidTo(v time.Time) *KeyMetadata { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListAliasesRequest type ListAliasesInput struct { _ struct{} `type:"structure"` @@ -6708,7 +6662,6 @@ func (s *ListAliasesInput) SetMarker(v string) *ListAliasesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListAliasesResponse type ListAliasesOutput struct { _ struct{} `type:"structure"` @@ -6754,7 +6707,6 @@ func (s *ListAliasesOutput) SetTruncated(v bool) *ListAliasesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListGrantsRequest type ListGrantsInput struct { _ struct{} `type:"structure"` @@ -6838,7 +6790,6 @@ func (s *ListGrantsInput) SetMarker(v string) *ListGrantsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListGrantsResponse type ListGrantsResponse struct { _ struct{} `type:"structure"` @@ -6884,7 +6835,6 @@ func (s *ListGrantsResponse) SetTruncated(v bool) *ListGrantsResponse { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyPoliciesRequest type ListKeyPoliciesInput struct { _ struct{} `type:"structure"` @@ -6969,7 +6919,6 @@ func (s *ListKeyPoliciesInput) SetMarker(v string) *ListKeyPoliciesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeyPoliciesResponse type ListKeyPoliciesOutput struct { _ struct{} `type:"structure"` @@ -7016,7 +6965,6 @@ func (s *ListKeyPoliciesOutput) SetTruncated(v bool) *ListKeyPoliciesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeysRequest type ListKeysInput struct { _ struct{} `type:"structure"` @@ -7072,7 +7020,6 @@ func (s *ListKeysInput) SetMarker(v string) *ListKeysInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListKeysResponse type ListKeysOutput struct { _ struct{} `type:"structure"` @@ -7118,7 +7065,6 @@ func (s *ListKeysOutput) SetTruncated(v bool) *ListKeysOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListResourceTagsRequest type ListResourceTagsInput struct { _ struct{} `type:"structure"` @@ -7204,7 +7150,6 @@ func (s *ListResourceTagsInput) SetMarker(v string) *ListResourceTagsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListResourceTagsResponse type ListResourceTagsOutput struct { _ struct{} `type:"structure"` @@ -7252,7 +7197,6 @@ func (s *ListResourceTagsOutput) SetTruncated(v bool) *ListResourceTagsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ListRetirableGrantsRequest type ListRetirableGrantsInput struct { _ struct{} `type:"structure"` @@ -7332,7 +7276,6 @@ func (s *ListRetirableGrantsInput) SetRetiringPrincipal(v string) *ListRetirable return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/PutKeyPolicyRequest type PutKeyPolicyInput struct { _ struct{} `type:"structure"` @@ -7458,7 +7401,6 @@ func (s *PutKeyPolicyInput) SetPolicyName(v string) *PutKeyPolicyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/PutKeyPolicyOutput type PutKeyPolicyOutput struct { _ struct{} `type:"structure"` } @@ -7473,7 +7415,6 @@ func (s PutKeyPolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReEncryptRequest type ReEncryptInput struct { _ struct{} `type:"structure"` @@ -7582,7 +7523,6 @@ func (s *ReEncryptInput) SetSourceEncryptionContext(v map[string]*string) *ReEnc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ReEncryptResponse type ReEncryptOutput struct { _ struct{} `type:"structure"` @@ -7627,7 +7567,6 @@ func (s *ReEncryptOutput) SetSourceKeyId(v string) *ReEncryptOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RetireGrantRequest type RetireGrantInput struct { _ struct{} `type:"structure"` @@ -7693,7 +7632,6 @@ func (s *RetireGrantInput) SetKeyId(v string) *RetireGrantInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RetireGrantOutput type RetireGrantOutput struct { _ struct{} `type:"structure"` } @@ -7708,7 +7646,6 @@ func (s RetireGrantOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RevokeGrantRequest type RevokeGrantInput struct { _ struct{} `type:"structure"` @@ -7778,7 +7715,6 @@ func (s *RevokeGrantInput) SetKeyId(v string) *RevokeGrantInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/RevokeGrantOutput type RevokeGrantOutput struct { _ struct{} `type:"structure"` } @@ -7793,7 +7729,6 @@ func (s RevokeGrantOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ScheduleKeyDeletionRequest type ScheduleKeyDeletionInput struct { _ struct{} `type:"structure"` @@ -7861,7 +7796,6 @@ func (s *ScheduleKeyDeletionInput) SetPendingWindowInDays(v int64) *ScheduleKeyD return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/ScheduleKeyDeletionResponse type ScheduleKeyDeletionOutput struct { _ struct{} `type:"structure"` @@ -7901,7 +7835,6 @@ func (s *ScheduleKeyDeletionOutput) SetKeyId(v string) *ScheduleKeyDeletionOutpu // For information about the rules that apply to tag keys and tag values, see // User-Defined Tag Restrictions (http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/allocation-tag-restrictions.html) // in the AWS Billing and Cost Management User Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/Tag type Tag struct { _ struct{} `type:"structure"` @@ -7957,7 +7890,6 @@ func (s *Tag) SetTagValue(v string) *Tag { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/TagResourceRequest type TagResourceInput struct { _ struct{} `type:"structure"` @@ -8033,7 +7965,6 @@ func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/TagResourceOutput type TagResourceOutput struct { _ struct{} `type:"structure"` } @@ -8048,7 +7979,6 @@ func (s TagResourceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UntagResourceRequest type UntagResourceInput struct { _ struct{} `type:"structure"` @@ -8114,7 +8044,6 @@ func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UntagResourceOutput type UntagResourceOutput struct { _ struct{} `type:"structure"` } @@ -8129,7 +8058,6 @@ func (s UntagResourceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateAliasRequest type UpdateAliasInput struct { _ struct{} `type:"structure"` @@ -8202,7 +8130,6 @@ func (s *UpdateAliasInput) SetTargetKeyId(v string) *UpdateAliasInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateAliasOutput type UpdateAliasOutput struct { _ struct{} `type:"structure"` } @@ -8217,7 +8144,6 @@ func (s UpdateAliasOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateKeyDescriptionRequest type UpdateKeyDescriptionInput struct { _ struct{} `type:"structure"` @@ -8283,7 +8209,6 @@ func (s *UpdateKeyDescriptionInput) SetKeyId(v string) *UpdateKeyDescriptionInpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/kms-2014-11-01/UpdateKeyDescriptionOutput type UpdateKeyDescriptionOutput struct { _ struct{} `type:"structure"` } diff --git a/vendor/github.com/aws/aws-sdk-go/service/lambda/api.go b/vendor/github.com/aws/aws-sdk-go/service/lambda/api.go index 38516c296..d4e8db908 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/lambda/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/lambda/api.go @@ -3173,7 +3173,6 @@ func (c *Lambda) UpdateFunctionConfigurationWithContext(ctx aws.Context, input * // Provides limits of code size and concurrency associated with the current // account and region. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/AccountLimit type AccountLimit struct { _ struct{} `type:"structure"` @@ -3243,7 +3242,6 @@ func (s *AccountLimit) SetUnreservedConcurrentExecutions(v int64) *AccountLimit // Provides code size usage and function count associated with the current account // and region. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/AccountUsage type AccountUsage struct { _ struct{} `type:"structure"` @@ -3276,7 +3274,6 @@ func (s *AccountUsage) SetTotalCodeSize(v int64) *AccountUsage { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/AddPermissionRequest type AddPermissionInput struct { _ struct{} `type:"structure"` @@ -3460,7 +3457,6 @@ func (s *AddPermissionInput) SetStatementId(v string) *AddPermissionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/AddPermissionResponse type AddPermissionOutput struct { _ struct{} `type:"structure"` @@ -3487,7 +3483,6 @@ func (s *AddPermissionOutput) SetStatement(v string) *AddPermissionOutput { } // Provides configuration information about a Lambda function version alias. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/AliasConfiguration type AliasConfiguration struct { _ struct{} `type:"structure"` @@ -3562,7 +3557,6 @@ func (s *AliasConfiguration) SetRoutingConfig(v *AliasRoutingConfiguration) *Ali // The parent object that implements what percentage of traffic will invoke // each function version. For more information, see lambda-traffic-shifting-using-aliases. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/AliasRoutingConfiguration type AliasRoutingConfiguration struct { _ struct{} `type:"structure"` @@ -3588,7 +3582,6 @@ func (s *AliasRoutingConfiguration) SetAdditionalVersionWeights(v map[string]*fl return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/CreateAliasRequest type CreateAliasInput struct { _ struct{} `type:"structure"` @@ -3686,7 +3679,6 @@ func (s *CreateAliasInput) SetRoutingConfig(v *AliasRoutingConfiguration) *Creat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/CreateEventSourceMappingRequest type CreateEventSourceMappingInput struct { _ struct{} `type:"structure"` @@ -3814,7 +3806,6 @@ func (s *CreateEventSourceMappingInput) SetStartingPositionTimestamp(v time.Time return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/CreateFunctionRequest type CreateFunctionInput struct { _ struct{} `type:"structure"` @@ -4050,7 +4041,6 @@ func (s *CreateFunctionInput) SetVpcConfig(v *VpcConfig) *CreateFunctionInput { // The parent object that contains the target ARN (Amazon Resource Name) of // an Amazon SQS queue or Amazon SNS topic. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeadLetterConfig type DeadLetterConfig struct { _ struct{} `type:"structure"` @@ -4075,7 +4065,6 @@ func (s *DeadLetterConfig) SetTargetArn(v string) *DeadLetterConfig { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteAliasRequest type DeleteAliasInput struct { _ struct{} `type:"structure"` @@ -4137,7 +4126,6 @@ func (s *DeleteAliasInput) SetName(v string) *DeleteAliasInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteAliasOutput type DeleteAliasOutput struct { _ struct{} `type:"structure"` } @@ -4152,7 +4140,6 @@ func (s DeleteAliasOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteEventSourceMappingRequest type DeleteEventSourceMappingInput struct { _ struct{} `type:"structure"` @@ -4191,7 +4178,6 @@ func (s *DeleteEventSourceMappingInput) SetUUID(v string) *DeleteEventSourceMapp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteFunctionConcurrencyRequest type DeleteFunctionConcurrencyInput struct { _ struct{} `type:"structure"` @@ -4234,7 +4220,6 @@ func (s *DeleteFunctionConcurrencyInput) SetFunctionName(v string) *DeleteFuncti return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteFunctionConcurrencyOutput type DeleteFunctionConcurrencyOutput struct { _ struct{} `type:"structure"` } @@ -4249,7 +4234,6 @@ func (s DeleteFunctionConcurrencyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteFunctionRequest type DeleteFunctionInput struct { _ struct{} `type:"structure"` @@ -4324,7 +4308,6 @@ func (s *DeleteFunctionInput) SetQualifier(v string) *DeleteFunctionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/DeleteFunctionOutput type DeleteFunctionOutput struct { _ struct{} `type:"structure"` } @@ -4340,7 +4323,6 @@ func (s DeleteFunctionOutput) GoString() string { } // The parent object that contains your environment's configuration settings. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/Environment type Environment struct { _ struct{} `type:"structure"` @@ -4366,7 +4348,6 @@ func (s *Environment) SetVariables(v map[string]*string) *Environment { // The parent object that contains error information associated with your configuration // settings. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/EnvironmentError type EnvironmentError struct { _ struct{} `type:"structure"` @@ -4401,7 +4382,6 @@ func (s *EnvironmentError) SetMessage(v string) *EnvironmentError { // The parent object returned that contains your environment's configuration // settings or any error information associated with your configuration settings. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/EnvironmentResponse type EnvironmentResponse struct { _ struct{} `type:"structure"` @@ -4437,7 +4417,6 @@ func (s *EnvironmentResponse) SetVariables(v map[string]*string) *EnvironmentRes } // Describes mapping between an Amazon Kinesis stream and a Lambda function. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/EventSourceMappingConfiguration type EventSourceMappingConfiguration struct { _ struct{} `type:"structure"` @@ -4530,7 +4509,6 @@ func (s *EventSourceMappingConfiguration) SetUUID(v string) *EventSourceMappingC } // The code for the Lambda function. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/FunctionCode type FunctionCode struct { _ struct{} `type:"structure"` @@ -4610,7 +4588,6 @@ func (s *FunctionCode) SetZipFile(v []byte) *FunctionCode { } // The object for the Lambda function location. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/FunctionCodeLocation type FunctionCodeLocation struct { _ struct{} `type:"structure"` @@ -4645,7 +4622,6 @@ func (s *FunctionCodeLocation) SetRepositoryType(v string) *FunctionCodeLocation } // A complex type that describes function metadata. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/FunctionConfiguration type FunctionConfiguration struct { _ struct{} `type:"structure"` @@ -4843,7 +4819,6 @@ func (s *FunctionConfiguration) SetVpcConfig(v *VpcConfigResponse) *FunctionConf return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetAccountSettingsRequest type GetAccountSettingsInput struct { _ struct{} `type:"structure"` } @@ -4858,7 +4833,6 @@ func (s GetAccountSettingsInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetAccountSettingsResponse type GetAccountSettingsOutput struct { _ struct{} `type:"structure"` @@ -4893,7 +4867,6 @@ func (s *GetAccountSettingsOutput) SetAccountUsage(v *AccountUsage) *GetAccountS return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetAliasRequest type GetAliasInput struct { _ struct{} `type:"structure"` @@ -4956,7 +4929,6 @@ func (s *GetAliasInput) SetName(v string) *GetAliasInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetEventSourceMappingRequest type GetEventSourceMappingInput struct { _ struct{} `type:"structure"` @@ -4995,7 +4967,6 @@ func (s *GetEventSourceMappingInput) SetUUID(v string) *GetEventSourceMappingInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetFunctionConfigurationRequest type GetFunctionConfigurationInput struct { _ struct{} `type:"structure"` @@ -5063,7 +5034,6 @@ func (s *GetFunctionConfigurationInput) SetQualifier(v string) *GetFunctionConfi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetFunctionRequest type GetFunctionInput struct { _ struct{} `type:"structure"` @@ -5130,7 +5100,6 @@ func (s *GetFunctionInput) SetQualifier(v string) *GetFunctionInput { } // This response contains the object for the Lambda function location (see FunctionCodeLocation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetFunctionResponse type GetFunctionOutput struct { _ struct{} `type:"structure"` @@ -5182,7 +5151,6 @@ func (s *GetFunctionOutput) SetTags(v map[string]*string) *GetFunctionOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetPolicyRequest type GetPolicyInput struct { _ struct{} `type:"structure"` @@ -5248,7 +5216,6 @@ func (s *GetPolicyInput) SetQualifier(v string) *GetPolicyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/GetPolicyResponse type GetPolicyOutput struct { _ struct{} `type:"structure"` @@ -5283,7 +5250,6 @@ func (s *GetPolicyOutput) SetRevisionId(v string) *GetPolicyOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/InvokeAsyncRequest type InvokeAsyncInput struct { _ struct{} `deprecated:"true" type:"structure" payload:"InvokeArgs"` @@ -5342,7 +5308,6 @@ func (s *InvokeAsyncInput) SetInvokeArgs(v io.ReadSeeker) *InvokeAsyncInput { } // Upon success, it returns empty response. Otherwise, throws an exception. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/InvokeAsyncResponse type InvokeAsyncOutput struct { _ struct{} `deprecated:"true" type:"structure"` @@ -5366,7 +5331,6 @@ func (s *InvokeAsyncOutput) SetStatus(v int64) *InvokeAsyncOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/InvocationRequest type InvokeInput struct { _ struct{} `type:"structure" payload:"Payload"` @@ -5486,7 +5450,6 @@ func (s *InvokeInput) SetQualifier(v string) *InvokeInput { } // Upon success, returns an empty response. Otherwise, throws an exception. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/InvocationResponse type InvokeOutput struct { _ struct{} `type:"structure" payload:"Payload"` @@ -5562,7 +5525,6 @@ func (s *InvokeOutput) SetStatusCode(v int64) *InvokeOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListAliasesRequest type ListAliasesInput struct { _ struct{} `type:"structure"` @@ -5643,7 +5605,6 @@ func (s *ListAliasesInput) SetMaxItems(v int64) *ListAliasesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListAliasesResponse type ListAliasesOutput struct { _ struct{} `type:"structure"` @@ -5676,7 +5637,6 @@ func (s *ListAliasesOutput) SetNextMarker(v string) *ListAliasesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListEventSourceMappingsRequest type ListEventSourceMappingsInput struct { _ struct{} `type:"structure"` @@ -5757,7 +5717,6 @@ func (s *ListEventSourceMappingsInput) SetMaxItems(v int64) *ListEventSourceMapp } // Contains a list of event sources (see EventSourceMappingConfiguration) -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListEventSourceMappingsResponse type ListEventSourceMappingsOutput struct { _ struct{} `type:"structure"` @@ -5790,7 +5749,6 @@ func (s *ListEventSourceMappingsOutput) SetNextMarker(v string) *ListEventSource return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListFunctionsRequest type ListFunctionsInput struct { _ struct{} `type:"structure"` @@ -5872,7 +5830,6 @@ func (s *ListFunctionsInput) SetMaxItems(v int64) *ListFunctionsInput { } // Contains a list of AWS Lambda function configurations (see FunctionConfiguration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListFunctionsResponse type ListFunctionsOutput struct { _ struct{} `type:"structure"` @@ -5905,7 +5862,6 @@ func (s *ListFunctionsOutput) SetNextMarker(v string) *ListFunctionsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListTagsRequest type ListTagsInput struct { _ struct{} `type:"structure"` @@ -5944,7 +5900,6 @@ func (s *ListTagsInput) SetResource(v string) *ListTagsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListTagsResponse type ListTagsOutput struct { _ struct{} `type:"structure"` @@ -5968,7 +5923,6 @@ func (s *ListTagsOutput) SetTags(v map[string]*string) *ListTagsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListVersionsByFunctionRequest type ListVersionsByFunctionInput struct { _ struct{} `type:"structure"` @@ -6038,7 +5992,6 @@ func (s *ListVersionsByFunctionInput) SetMaxItems(v int64) *ListVersionsByFuncti return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/ListVersionsByFunctionResponse type ListVersionsByFunctionOutput struct { _ struct{} `type:"structure"` @@ -6071,7 +6024,6 @@ func (s *ListVersionsByFunctionOutput) SetVersions(v []*FunctionConfiguration) * return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PublishVersionRequest type PublishVersionInput struct { _ struct{} `type:"structure"` @@ -6154,7 +6106,6 @@ func (s *PublishVersionInput) SetRevisionId(v string) *PublishVersionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PutFunctionConcurrencyRequest type PutFunctionConcurrencyInput struct { _ struct{} `type:"structure"` @@ -6212,7 +6163,6 @@ func (s *PutFunctionConcurrencyInput) SetReservedConcurrentExecutions(v int64) * return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/Concurrency type PutFunctionConcurrencyOutput struct { _ struct{} `type:"structure"` @@ -6237,7 +6187,6 @@ func (s *PutFunctionConcurrencyOutput) SetReservedConcurrentExecutions(v int64) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/RemovePermissionRequest type RemovePermissionInput struct { _ struct{} `type:"structure"` @@ -6330,7 +6279,6 @@ func (s *RemovePermissionInput) SetStatementId(v string) *RemovePermissionInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/RemovePermissionOutput type RemovePermissionOutput struct { _ struct{} `type:"structure"` } @@ -6345,7 +6293,6 @@ func (s RemovePermissionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/TagResourceRequest type TagResourceInput struct { _ struct{} `type:"structure"` @@ -6398,7 +6345,6 @@ func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/TagResourceOutput type TagResourceOutput struct { _ struct{} `type:"structure"` } @@ -6414,7 +6360,6 @@ func (s TagResourceOutput) GoString() string { } // The parent object that contains your function's tracing settings. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/TracingConfig type TracingConfig struct { _ struct{} `type:"structure"` @@ -6443,7 +6388,6 @@ func (s *TracingConfig) SetMode(v string) *TracingConfig { } // Parent object of the tracing information associated with your Lambda function. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/TracingConfigResponse type TracingConfigResponse struct { _ struct{} `type:"structure"` @@ -6467,7 +6411,6 @@ func (s *TracingConfigResponse) SetMode(v string) *TracingConfigResponse { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UntagResourceRequest type UntagResourceInput struct { _ struct{} `type:"structure"` @@ -6520,7 +6463,6 @@ func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UntagResourceOutput type UntagResourceOutput struct { _ struct{} `type:"structure"` } @@ -6535,7 +6477,6 @@ func (s UntagResourceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateAliasRequest type UpdateAliasInput struct { _ struct{} `type:"structure"` @@ -6642,7 +6583,6 @@ func (s *UpdateAliasInput) SetRoutingConfig(v *AliasRoutingConfiguration) *Updat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateEventSourceMappingRequest type UpdateEventSourceMappingInput struct { _ struct{} `type:"structure"` @@ -6730,7 +6670,6 @@ func (s *UpdateEventSourceMappingInput) SetUUID(v string) *UpdateEventSourceMapp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateFunctionCodeRequest type UpdateFunctionCodeInput struct { _ struct{} `type:"structure"` @@ -6869,7 +6808,6 @@ func (s *UpdateFunctionCodeInput) SetZipFile(v []byte) *UpdateFunctionCodeInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/UpdateFunctionConfigurationRequest type UpdateFunctionConfigurationInput struct { _ struct{} `type:"structure"` @@ -7067,7 +7005,6 @@ func (s *UpdateFunctionConfigurationInput) SetVpcConfig(v *VpcConfig) *UpdateFun // identifying the list of security group IDs and subnet IDs. These must belong // to the same VPC. You must provide at least one security group and one subnet // ID. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/VpcConfig type VpcConfig struct { _ struct{} `type:"structure"` @@ -7101,7 +7038,6 @@ func (s *VpcConfig) SetSubnetIds(v []*string) *VpcConfig { } // VPC configuration associated with your Lambda function. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/VpcConfigResponse type VpcConfigResponse struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/lightsail/api.go b/vendor/github.com/aws/aws-sdk-go/service/lightsail/api.go index 91bcb3268..9d3eb928d 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/lightsail/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/lightsail/api.go @@ -7473,7 +7473,6 @@ func (c *Lightsail) UpdateLoadBalancerAttributeWithContext(ctx aws.Context, inpu return out, req.Send() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/AllocateStaticIpRequest type AllocateStaticIpInput struct { _ struct{} `type:"structure"` @@ -7512,7 +7511,6 @@ func (s *AllocateStaticIpInput) SetStaticIpName(v string) *AllocateStaticIpInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/AllocateStaticIpResult type AllocateStaticIpOutput struct { _ struct{} `type:"structure"` @@ -7537,7 +7535,6 @@ func (s *AllocateStaticIpOutput) SetOperations(v []*Operation) *AllocateStaticIp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/AttachDiskRequest type AttachDiskInput struct { _ struct{} `type:"structure"` @@ -7605,7 +7602,6 @@ func (s *AttachDiskInput) SetInstanceName(v string) *AttachDiskInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/AttachDiskResult type AttachDiskOutput struct { _ struct{} `type:"structure"` @@ -7629,7 +7625,6 @@ func (s *AttachDiskOutput) SetOperations(v []*Operation) *AttachDiskOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/AttachInstancesToLoadBalancerRequest type AttachInstancesToLoadBalancerInput struct { _ struct{} `type:"structure"` @@ -7683,7 +7678,6 @@ func (s *AttachInstancesToLoadBalancerInput) SetLoadBalancerName(v string) *Atta return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/AttachInstancesToLoadBalancerResult type AttachInstancesToLoadBalancerOutput struct { _ struct{} `type:"structure"` @@ -7707,7 +7701,6 @@ func (s *AttachInstancesToLoadBalancerOutput) SetOperations(v []*Operation) *Att return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/AttachLoadBalancerTlsCertificateRequest type AttachLoadBalancerTlsCertificateInput struct { _ struct{} `type:"structure"` @@ -7761,7 +7754,6 @@ func (s *AttachLoadBalancerTlsCertificateInput) SetLoadBalancerName(v string) *A return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/AttachLoadBalancerTlsCertificateResult type AttachLoadBalancerTlsCertificateOutput struct { _ struct{} `type:"structure"` @@ -7785,7 +7777,6 @@ func (s *AttachLoadBalancerTlsCertificateOutput) SetOperations(v []*Operation) * return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/AttachStaticIpRequest type AttachStaticIpInput struct { _ struct{} `type:"structure"` @@ -7838,7 +7829,6 @@ func (s *AttachStaticIpInput) SetStaticIpName(v string) *AttachStaticIpInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/AttachStaticIpResult type AttachStaticIpOutput struct { _ struct{} `type:"structure"` @@ -7863,7 +7853,6 @@ func (s *AttachStaticIpOutput) SetOperations(v []*Operation) *AttachStaticIpOutp } // Describes an Availability Zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/AvailabilityZone type AvailabilityZone struct { _ struct{} `type:"structure"` @@ -7897,7 +7886,6 @@ func (s *AvailabilityZone) SetZoneName(v string) *AvailabilityZone { } // Describes a blueprint (a virtual private server image). -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/Blueprint type Blueprint struct { _ struct{} `type:"structure"` @@ -8029,7 +8017,6 @@ func (s *Blueprint) SetVersionCode(v string) *Blueprint { // Describes a bundle, which is a set of specs describing your virtual private // server (or instance). -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/Bundle type Bundle struct { _ struct{} `type:"structure"` @@ -8150,7 +8137,6 @@ func (s *Bundle) SetTransferPerMonthInGb(v int64) *Bundle { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CloseInstancePublicPortsRequest type CloseInstancePublicPortsInput struct { _ struct{} `type:"structure"` @@ -8203,7 +8189,6 @@ func (s *CloseInstancePublicPortsInput) SetPortInfo(v *PortInfo) *CloseInstanceP return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CloseInstancePublicPortsResult type CloseInstancePublicPortsOutput struct { _ struct{} `type:"structure"` @@ -8227,7 +8212,6 @@ func (s *CloseInstancePublicPortsOutput) SetOperation(v *Operation) *CloseInstan return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateDiskFromSnapshotRequest type CreateDiskFromSnapshotInput struct { _ struct{} `type:"structure"` @@ -8314,7 +8298,6 @@ func (s *CreateDiskFromSnapshotInput) SetSizeInGb(v int64) *CreateDiskFromSnapsh return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateDiskFromSnapshotResult type CreateDiskFromSnapshotOutput struct { _ struct{} `type:"structure"` @@ -8338,7 +8321,6 @@ func (s *CreateDiskFromSnapshotOutput) SetOperations(v []*Operation) *CreateDisk return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateDiskRequest type CreateDiskInput struct { _ struct{} `type:"structure"` @@ -8410,7 +8392,6 @@ func (s *CreateDiskInput) SetSizeInGb(v int64) *CreateDiskInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateDiskResult type CreateDiskOutput struct { _ struct{} `type:"structure"` @@ -8434,7 +8415,6 @@ func (s *CreateDiskOutput) SetOperations(v []*Operation) *CreateDiskOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateDiskSnapshotRequest type CreateDiskSnapshotInput struct { _ struct{} `type:"structure"` @@ -8488,7 +8468,6 @@ func (s *CreateDiskSnapshotInput) SetDiskSnapshotName(v string) *CreateDiskSnaps return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateDiskSnapshotResult type CreateDiskSnapshotOutput struct { _ struct{} `type:"structure"` @@ -8512,7 +8491,6 @@ func (s *CreateDiskSnapshotOutput) SetOperations(v []*Operation) *CreateDiskSnap return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateDomainEntryRequest type CreateDomainEntryInput struct { _ struct{} `type:"structure"` @@ -8567,7 +8545,6 @@ func (s *CreateDomainEntryInput) SetDomainName(v string) *CreateDomainEntryInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateDomainEntryResult type CreateDomainEntryOutput struct { _ struct{} `type:"structure"` @@ -8591,7 +8568,6 @@ func (s *CreateDomainEntryOutput) SetOperation(v *Operation) *CreateDomainEntryO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateDomainRequest type CreateDomainInput struct { _ struct{} `type:"structure"` @@ -8635,7 +8611,6 @@ func (s *CreateDomainInput) SetDomainName(v string) *CreateDomainInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateDomainResult type CreateDomainOutput struct { _ struct{} `type:"structure"` @@ -8660,7 +8635,6 @@ func (s *CreateDomainOutput) SetOperation(v *Operation) *CreateDomainOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateInstanceSnapshotRequest type CreateInstanceSnapshotInput struct { _ struct{} `type:"structure"` @@ -8713,7 +8687,6 @@ func (s *CreateInstanceSnapshotInput) SetInstanceSnapshotName(v string) *CreateI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateInstanceSnapshotResult type CreateInstanceSnapshotOutput struct { _ struct{} `type:"structure"` @@ -8738,7 +8711,6 @@ func (s *CreateInstanceSnapshotOutput) SetOperations(v []*Operation) *CreateInst return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateInstancesFromSnapshotRequest type CreateInstancesFromSnapshotInput struct { _ struct{} `type:"structure"` @@ -8859,7 +8831,6 @@ func (s *CreateInstancesFromSnapshotInput) SetUserData(v string) *CreateInstance return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateInstancesFromSnapshotResult type CreateInstancesFromSnapshotOutput struct { _ struct{} `type:"structure"` @@ -8884,7 +8855,6 @@ func (s *CreateInstancesFromSnapshotOutput) SetOperations(v []*Operation) *Creat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateInstancesRequest type CreateInstancesInput struct { _ struct{} `type:"structure"` @@ -9009,7 +8979,6 @@ func (s *CreateInstancesInput) SetUserData(v string) *CreateInstancesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateInstancesResult type CreateInstancesOutput struct { _ struct{} `type:"structure"` @@ -9034,7 +9003,6 @@ func (s *CreateInstancesOutput) SetOperations(v []*Operation) *CreateInstancesOu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateKeyPairRequest type CreateKeyPairInput struct { _ struct{} `type:"structure"` @@ -9073,7 +9041,6 @@ func (s *CreateKeyPairInput) SetKeyPairName(v string) *CreateKeyPairInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateKeyPairResult type CreateKeyPairOutput struct { _ struct{} `type:"structure"` @@ -9126,7 +9093,6 @@ func (s *CreateKeyPairOutput) SetPublicKeyBase64(v string) *CreateKeyPairOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateLoadBalancerRequest type CreateLoadBalancerInput struct { _ struct{} `type:"structure"` @@ -9224,7 +9190,6 @@ func (s *CreateLoadBalancerInput) SetLoadBalancerName(v string) *CreateLoadBalan return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateLoadBalancerResult type CreateLoadBalancerOutput struct { _ struct{} `type:"structure"` @@ -9248,7 +9213,6 @@ func (s *CreateLoadBalancerOutput) SetOperations(v []*Operation) *CreateLoadBala return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateLoadBalancerTlsCertificateRequest type CreateLoadBalancerTlsCertificateInput struct { _ struct{} `type:"structure"` @@ -9324,7 +9288,6 @@ func (s *CreateLoadBalancerTlsCertificateInput) SetLoadBalancerName(v string) *C return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/CreateLoadBalancerTlsCertificateResult type CreateLoadBalancerTlsCertificateOutput struct { _ struct{} `type:"structure"` @@ -9348,7 +9311,6 @@ func (s *CreateLoadBalancerTlsCertificateOutput) SetOperations(v []*Operation) * return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DeleteDiskRequest type DeleteDiskInput struct { _ struct{} `type:"structure"` @@ -9387,7 +9349,6 @@ func (s *DeleteDiskInput) SetDiskName(v string) *DeleteDiskInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DeleteDiskResult type DeleteDiskOutput struct { _ struct{} `type:"structure"` @@ -9411,7 +9372,6 @@ func (s *DeleteDiskOutput) SetOperations(v []*Operation) *DeleteDiskOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DeleteDiskSnapshotRequest type DeleteDiskSnapshotInput struct { _ struct{} `type:"structure"` @@ -9450,7 +9410,6 @@ func (s *DeleteDiskSnapshotInput) SetDiskSnapshotName(v string) *DeleteDiskSnaps return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DeleteDiskSnapshotResult type DeleteDiskSnapshotOutput struct { _ struct{} `type:"structure"` @@ -9474,7 +9433,6 @@ func (s *DeleteDiskSnapshotOutput) SetOperations(v []*Operation) *DeleteDiskSnap return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DeleteDomainEntryRequest type DeleteDomainEntryInput struct { _ struct{} `type:"structure"` @@ -9527,7 +9485,6 @@ func (s *DeleteDomainEntryInput) SetDomainName(v string) *DeleteDomainEntryInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DeleteDomainEntryResult type DeleteDomainEntryOutput struct { _ struct{} `type:"structure"` @@ -9552,7 +9509,6 @@ func (s *DeleteDomainEntryOutput) SetOperation(v *Operation) *DeleteDomainEntryO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DeleteDomainRequest type DeleteDomainInput struct { _ struct{} `type:"structure"` @@ -9591,7 +9547,6 @@ func (s *DeleteDomainInput) SetDomainName(v string) *DeleteDomainInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DeleteDomainResult type DeleteDomainOutput struct { _ struct{} `type:"structure"` @@ -9616,7 +9571,6 @@ func (s *DeleteDomainOutput) SetOperation(v *Operation) *DeleteDomainOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DeleteInstanceRequest type DeleteInstanceInput struct { _ struct{} `type:"structure"` @@ -9655,7 +9609,6 @@ func (s *DeleteInstanceInput) SetInstanceName(v string) *DeleteInstanceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DeleteInstanceResult type DeleteInstanceOutput struct { _ struct{} `type:"structure"` @@ -9680,7 +9633,6 @@ func (s *DeleteInstanceOutput) SetOperations(v []*Operation) *DeleteInstanceOutp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DeleteInstanceSnapshotRequest type DeleteInstanceSnapshotInput struct { _ struct{} `type:"structure"` @@ -9719,7 +9671,6 @@ func (s *DeleteInstanceSnapshotInput) SetInstanceSnapshotName(v string) *DeleteI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DeleteInstanceSnapshotResult type DeleteInstanceSnapshotOutput struct { _ struct{} `type:"structure"` @@ -9744,7 +9695,6 @@ func (s *DeleteInstanceSnapshotOutput) SetOperations(v []*Operation) *DeleteInst return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DeleteKeyPairRequest type DeleteKeyPairInput struct { _ struct{} `type:"structure"` @@ -9783,7 +9733,6 @@ func (s *DeleteKeyPairInput) SetKeyPairName(v string) *DeleteKeyPairInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DeleteKeyPairResult type DeleteKeyPairOutput struct { _ struct{} `type:"structure"` @@ -9808,7 +9757,6 @@ func (s *DeleteKeyPairOutput) SetOperation(v *Operation) *DeleteKeyPairOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DeleteLoadBalancerRequest type DeleteLoadBalancerInput struct { _ struct{} `type:"structure"` @@ -9847,7 +9795,6 @@ func (s *DeleteLoadBalancerInput) SetLoadBalancerName(v string) *DeleteLoadBalan return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DeleteLoadBalancerResult type DeleteLoadBalancerOutput struct { _ struct{} `type:"structure"` @@ -9871,7 +9818,6 @@ func (s *DeleteLoadBalancerOutput) SetOperations(v []*Operation) *DeleteLoadBala return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DeleteLoadBalancerTlsCertificateRequest type DeleteLoadBalancerTlsCertificateInput struct { _ struct{} `type:"structure"` @@ -9933,7 +9879,6 @@ func (s *DeleteLoadBalancerTlsCertificateInput) SetLoadBalancerName(v string) *D return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DeleteLoadBalancerTlsCertificateResult type DeleteLoadBalancerTlsCertificateOutput struct { _ struct{} `type:"structure"` @@ -9957,7 +9902,6 @@ func (s *DeleteLoadBalancerTlsCertificateOutput) SetOperations(v []*Operation) * return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DetachDiskRequest type DetachDiskInput struct { _ struct{} `type:"structure"` @@ -9997,7 +9941,6 @@ func (s *DetachDiskInput) SetDiskName(v string) *DetachDiskInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DetachDiskResult type DetachDiskOutput struct { _ struct{} `type:"structure"` @@ -10021,7 +9964,6 @@ func (s *DetachDiskOutput) SetOperations(v []*Operation) *DetachDiskOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DetachInstancesFromLoadBalancerRequest type DetachInstancesFromLoadBalancerInput struct { _ struct{} `type:"structure"` @@ -10075,7 +10017,6 @@ func (s *DetachInstancesFromLoadBalancerInput) SetLoadBalancerName(v string) *De return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DetachInstancesFromLoadBalancerResult type DetachInstancesFromLoadBalancerOutput struct { _ struct{} `type:"structure"` @@ -10099,7 +10040,6 @@ func (s *DetachInstancesFromLoadBalancerOutput) SetOperations(v []*Operation) *D return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DetachStaticIpRequest type DetachStaticIpInput struct { _ struct{} `type:"structure"` @@ -10138,7 +10078,6 @@ func (s *DetachStaticIpInput) SetStaticIpName(v string) *DetachStaticIpInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DetachStaticIpResult type DetachStaticIpOutput struct { _ struct{} `type:"structure"` @@ -10164,7 +10103,6 @@ func (s *DetachStaticIpOutput) SetOperations(v []*Operation) *DetachStaticIpOutp } // Describes a system disk or an block storage disk. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/Disk type Disk struct { _ struct{} `type:"structure"` @@ -10325,7 +10263,6 @@ func (s *Disk) SetSupportCode(v string) *Disk { } // Describes a block storage disk mapping. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DiskMap type DiskMap struct { _ struct{} `type:"structure"` @@ -10359,7 +10296,6 @@ func (s *DiskMap) SetOriginalDiskPath(v string) *DiskMap { } // Describes a block storage disk snapshot. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DiskSnapshot type DiskSnapshot struct { _ struct{} `type:"structure"` @@ -10477,7 +10413,6 @@ func (s *DiskSnapshot) SetSupportCode(v string) *DiskSnapshot { } // Describes a domain where you are storing recordsets in Lightsail. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/Domain type Domain struct { _ struct{} `type:"structure"` @@ -10558,7 +10493,6 @@ func (s *Domain) SetSupportCode(v string) *Domain { } // Describes a domain recordset entry. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DomainEntry type DomainEntry struct { _ struct{} `type:"structure"` @@ -10631,7 +10565,6 @@ func (s *DomainEntry) SetType(v string) *DomainEntry { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DownloadDefaultKeyPairRequest type DownloadDefaultKeyPairInput struct { _ struct{} `type:"structure"` } @@ -10646,7 +10579,6 @@ func (s DownloadDefaultKeyPairInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/DownloadDefaultKeyPairResult type DownloadDefaultKeyPairOutput struct { _ struct{} `type:"structure"` @@ -10679,7 +10611,6 @@ func (s *DownloadDefaultKeyPairOutput) SetPublicKeyBase64(v string) *DownloadDef return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetActiveNamesRequest type GetActiveNamesInput struct { _ struct{} `type:"structure"` @@ -10703,7 +10634,6 @@ func (s *GetActiveNamesInput) SetPageToken(v string) *GetActiveNamesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetActiveNamesResult type GetActiveNamesOutput struct { _ struct{} `type:"structure"` @@ -10737,7 +10667,6 @@ func (s *GetActiveNamesOutput) SetNextPageToken(v string) *GetActiveNamesOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetBlueprintsRequest type GetBlueprintsInput struct { _ struct{} `type:"structure"` @@ -10771,7 +10700,6 @@ func (s *GetBlueprintsInput) SetPageToken(v string) *GetBlueprintsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetBlueprintsResult type GetBlueprintsOutput struct { _ struct{} `type:"structure"` @@ -10806,7 +10734,6 @@ func (s *GetBlueprintsOutput) SetNextPageToken(v string) *GetBlueprintsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetBundlesRequest type GetBundlesInput struct { _ struct{} `type:"structure"` @@ -10841,7 +10768,6 @@ func (s *GetBundlesInput) SetPageToken(v string) *GetBundlesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetBundlesResult type GetBundlesOutput struct { _ struct{} `type:"structure"` @@ -10876,7 +10802,6 @@ func (s *GetBundlesOutput) SetNextPageToken(v string) *GetBundlesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetDiskRequest type GetDiskInput struct { _ struct{} `type:"structure"` @@ -10915,7 +10840,6 @@ func (s *GetDiskInput) SetDiskName(v string) *GetDiskInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetDiskResult type GetDiskOutput struct { _ struct{} `type:"structure"` @@ -10939,7 +10863,6 @@ func (s *GetDiskOutput) SetDisk(v *Disk) *GetDiskOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetDiskSnapshotRequest type GetDiskSnapshotInput struct { _ struct{} `type:"structure"` @@ -10978,7 +10901,6 @@ func (s *GetDiskSnapshotInput) SetDiskSnapshotName(v string) *GetDiskSnapshotInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetDiskSnapshotResult type GetDiskSnapshotOutput struct { _ struct{} `type:"structure"` @@ -11002,7 +10924,6 @@ func (s *GetDiskSnapshotOutput) SetDiskSnapshot(v *DiskSnapshot) *GetDiskSnapsho return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetDiskSnapshotsRequest type GetDiskSnapshotsInput struct { _ struct{} `type:"structure"` @@ -11027,7 +10948,6 @@ func (s *GetDiskSnapshotsInput) SetPageToken(v string) *GetDiskSnapshotsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetDiskSnapshotsResult type GetDiskSnapshotsOutput struct { _ struct{} `type:"structure"` @@ -11061,7 +10981,6 @@ func (s *GetDiskSnapshotsOutput) SetNextPageToken(v string) *GetDiskSnapshotsOut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetDisksRequest type GetDisksInput struct { _ struct{} `type:"structure"` @@ -11086,7 +11005,6 @@ func (s *GetDisksInput) SetPageToken(v string) *GetDisksInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetDisksResult type GetDisksOutput struct { _ struct{} `type:"structure"` @@ -11120,7 +11038,6 @@ func (s *GetDisksOutput) SetNextPageToken(v string) *GetDisksOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetDomainRequest type GetDomainInput struct { _ struct{} `type:"structure"` @@ -11159,7 +11076,6 @@ func (s *GetDomainInput) SetDomainName(v string) *GetDomainInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetDomainResult type GetDomainOutput struct { _ struct{} `type:"structure"` @@ -11184,7 +11100,6 @@ func (s *GetDomainOutput) SetDomain(v *Domain) *GetDomainOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetDomainsRequest type GetDomainsInput struct { _ struct{} `type:"structure"` @@ -11209,7 +11124,6 @@ func (s *GetDomainsInput) SetPageToken(v string) *GetDomainsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetDomainsResult type GetDomainsOutput struct { _ struct{} `type:"structure"` @@ -11244,7 +11158,6 @@ func (s *GetDomainsOutput) SetNextPageToken(v string) *GetDomainsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetInstanceAccessDetailsRequest type GetInstanceAccessDetailsInput struct { _ struct{} `type:"structure"` @@ -11292,7 +11205,6 @@ func (s *GetInstanceAccessDetailsInput) SetProtocol(v string) *GetInstanceAccess return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetInstanceAccessDetailsResult type GetInstanceAccessDetailsOutput struct { _ struct{} `type:"structure"` @@ -11317,7 +11229,6 @@ func (s *GetInstanceAccessDetailsOutput) SetAccessDetails(v *InstanceAccessDetai return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetInstanceRequest type GetInstanceInput struct { _ struct{} `type:"structure"` @@ -11356,7 +11267,6 @@ func (s *GetInstanceInput) SetInstanceName(v string) *GetInstanceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetInstanceMetricDataRequest type GetInstanceMetricDataInput struct { _ struct{} `type:"structure"` @@ -11482,7 +11392,6 @@ func (s *GetInstanceMetricDataInput) SetUnit(v string) *GetInstanceMetricDataInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetInstanceMetricDataResult type GetInstanceMetricDataOutput struct { _ struct{} `type:"structure"` @@ -11516,7 +11425,6 @@ func (s *GetInstanceMetricDataOutput) SetMetricName(v string) *GetInstanceMetric return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetInstanceResult type GetInstanceOutput struct { _ struct{} `type:"structure"` @@ -11540,7 +11448,6 @@ func (s *GetInstanceOutput) SetInstance(v *Instance) *GetInstanceOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetInstancePortStatesRequest type GetInstancePortStatesInput struct { _ struct{} `type:"structure"` @@ -11579,7 +11486,6 @@ func (s *GetInstancePortStatesInput) SetInstanceName(v string) *GetInstancePortS return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetInstancePortStatesResult type GetInstancePortStatesOutput struct { _ struct{} `type:"structure"` @@ -11603,7 +11509,6 @@ func (s *GetInstancePortStatesOutput) SetPortStates(v []*InstancePortState) *Get return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetInstanceSnapshotRequest type GetInstanceSnapshotInput struct { _ struct{} `type:"structure"` @@ -11642,7 +11547,6 @@ func (s *GetInstanceSnapshotInput) SetInstanceSnapshotName(v string) *GetInstanc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetInstanceSnapshotResult type GetInstanceSnapshotOutput struct { _ struct{} `type:"structure"` @@ -11667,7 +11571,6 @@ func (s *GetInstanceSnapshotOutput) SetInstanceSnapshot(v *InstanceSnapshot) *Ge return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetInstanceSnapshotsRequest type GetInstanceSnapshotsInput struct { _ struct{} `type:"structure"` @@ -11692,7 +11595,6 @@ func (s *GetInstanceSnapshotsInput) SetPageToken(v string) *GetInstanceSnapshots return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetInstanceSnapshotsResult type GetInstanceSnapshotsOutput struct { _ struct{} `type:"structure"` @@ -11727,7 +11629,6 @@ func (s *GetInstanceSnapshotsOutput) SetNextPageToken(v string) *GetInstanceSnap return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetInstanceStateRequest type GetInstanceStateInput struct { _ struct{} `type:"structure"` @@ -11766,7 +11667,6 @@ func (s *GetInstanceStateInput) SetInstanceName(v string) *GetInstanceStateInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetInstanceStateResult type GetInstanceStateOutput struct { _ struct{} `type:"structure"` @@ -11790,7 +11690,6 @@ func (s *GetInstanceStateOutput) SetState(v *InstanceState) *GetInstanceStateOut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetInstancesRequest type GetInstancesInput struct { _ struct{} `type:"structure"` @@ -11815,7 +11714,6 @@ func (s *GetInstancesInput) SetPageToken(v string) *GetInstancesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetInstancesResult type GetInstancesOutput struct { _ struct{} `type:"structure"` @@ -11849,7 +11747,6 @@ func (s *GetInstancesOutput) SetNextPageToken(v string) *GetInstancesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetKeyPairRequest type GetKeyPairInput struct { _ struct{} `type:"structure"` @@ -11888,7 +11785,6 @@ func (s *GetKeyPairInput) SetKeyPairName(v string) *GetKeyPairInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetKeyPairResult type GetKeyPairOutput struct { _ struct{} `type:"structure"` @@ -11912,7 +11808,6 @@ func (s *GetKeyPairOutput) SetKeyPair(v *KeyPair) *GetKeyPairOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetKeyPairsRequest type GetKeyPairsInput struct { _ struct{} `type:"structure"` @@ -11937,7 +11832,6 @@ func (s *GetKeyPairsInput) SetPageToken(v string) *GetKeyPairsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetKeyPairsResult type GetKeyPairsOutput struct { _ struct{} `type:"structure"` @@ -11971,7 +11865,6 @@ func (s *GetKeyPairsOutput) SetNextPageToken(v string) *GetKeyPairsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetLoadBalancerRequest type GetLoadBalancerInput struct { _ struct{} `type:"structure"` @@ -12010,7 +11903,6 @@ func (s *GetLoadBalancerInput) SetLoadBalancerName(v string) *GetLoadBalancerInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetLoadBalancerMetricDataRequest type GetLoadBalancerMetricDataInput struct { _ struct{} `type:"structure"` @@ -12217,7 +12109,6 @@ func (s *GetLoadBalancerMetricDataInput) SetUnit(v string) *GetLoadBalancerMetri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetLoadBalancerMetricDataResult type GetLoadBalancerMetricDataOutput struct { _ struct{} `type:"structure"` @@ -12251,7 +12142,6 @@ func (s *GetLoadBalancerMetricDataOutput) SetMetricName(v string) *GetLoadBalanc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetLoadBalancerResult type GetLoadBalancerOutput struct { _ struct{} `type:"structure"` @@ -12275,7 +12165,6 @@ func (s *GetLoadBalancerOutput) SetLoadBalancer(v *LoadBalancer) *GetLoadBalance return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetLoadBalancerTlsCertificatesRequest type GetLoadBalancerTlsCertificatesInput struct { _ struct{} `type:"structure"` @@ -12314,7 +12203,6 @@ func (s *GetLoadBalancerTlsCertificatesInput) SetLoadBalancerName(v string) *Get return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetLoadBalancerTlsCertificatesResult type GetLoadBalancerTlsCertificatesOutput struct { _ struct{} `type:"structure"` @@ -12338,7 +12226,6 @@ func (s *GetLoadBalancerTlsCertificatesOutput) SetTlsCertificates(v []*LoadBalan return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetLoadBalancersRequest type GetLoadBalancersInput struct { _ struct{} `type:"structure"` @@ -12362,7 +12249,6 @@ func (s *GetLoadBalancersInput) SetPageToken(v string) *GetLoadBalancersInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetLoadBalancersResult type GetLoadBalancersOutput struct { _ struct{} `type:"structure"` @@ -12396,7 +12282,6 @@ func (s *GetLoadBalancersOutput) SetNextPageToken(v string) *GetLoadBalancersOut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetOperationRequest type GetOperationInput struct { _ struct{} `type:"structure"` @@ -12435,7 +12320,6 @@ func (s *GetOperationInput) SetOperationId(v string) *GetOperationInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetOperationResult type GetOperationOutput struct { _ struct{} `type:"structure"` @@ -12460,7 +12344,6 @@ func (s *GetOperationOutput) SetOperation(v *Operation) *GetOperationOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetOperationsForResourceRequest type GetOperationsForResourceInput struct { _ struct{} `type:"structure"` @@ -12509,7 +12392,6 @@ func (s *GetOperationsForResourceInput) SetResourceName(v string) *GetOperations return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetOperationsForResourceResult type GetOperationsForResourceOutput struct { _ struct{} `type:"structure"` @@ -12556,7 +12438,6 @@ func (s *GetOperationsForResourceOutput) SetOperations(v []*Operation) *GetOpera return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetOperationsRequest type GetOperationsInput struct { _ struct{} `type:"structure"` @@ -12581,7 +12462,6 @@ func (s *GetOperationsInput) SetPageToken(v string) *GetOperationsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetOperationsResult type GetOperationsOutput struct { _ struct{} `type:"structure"` @@ -12616,7 +12496,6 @@ func (s *GetOperationsOutput) SetOperations(v []*Operation) *GetOperationsOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetRegionsRequest type GetRegionsInput struct { _ struct{} `type:"structure"` @@ -12642,7 +12521,6 @@ func (s *GetRegionsInput) SetIncludeAvailabilityZones(v bool) *GetRegionsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetRegionsResult type GetRegionsOutput struct { _ struct{} `type:"structure"` @@ -12667,7 +12545,6 @@ func (s *GetRegionsOutput) SetRegions(v []*Region) *GetRegionsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetStaticIpRequest type GetStaticIpInput struct { _ struct{} `type:"structure"` @@ -12706,7 +12583,6 @@ func (s *GetStaticIpInput) SetStaticIpName(v string) *GetStaticIpInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetStaticIpResult type GetStaticIpOutput struct { _ struct{} `type:"structure"` @@ -12731,7 +12607,6 @@ func (s *GetStaticIpOutput) SetStaticIp(v *StaticIp) *GetStaticIpOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetStaticIpsRequest type GetStaticIpsInput struct { _ struct{} `type:"structure"` @@ -12756,7 +12631,6 @@ func (s *GetStaticIpsInput) SetPageToken(v string) *GetStaticIpsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/GetStaticIpsResult type GetStaticIpsOutput struct { _ struct{} `type:"structure"` @@ -12791,7 +12665,6 @@ func (s *GetStaticIpsOutput) SetStaticIps(v []*StaticIp) *GetStaticIpsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/ImportKeyPairRequest type ImportKeyPairInput struct { _ struct{} `type:"structure"` @@ -12844,7 +12717,6 @@ func (s *ImportKeyPairInput) SetPublicKeyBase64(v string) *ImportKeyPairInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/ImportKeyPairResult type ImportKeyPairOutput struct { _ struct{} `type:"structure"` @@ -12869,7 +12741,6 @@ func (s *ImportKeyPairOutput) SetOperation(v *Operation) *ImportKeyPairOutput { } // Describes an instance (a virtual private server). -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/Instance type Instance struct { _ struct{} `type:"structure"` @@ -13052,7 +12923,6 @@ func (s *Instance) SetUsername(v string) *Instance { // The parameters for gaining temporary access to one of your Amazon Lightsail // instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/InstanceAccessDetails type InstanceAccessDetails struct { _ struct{} `type:"structure"` @@ -13165,7 +13035,6 @@ func (s *InstanceAccessDetails) SetUsername(v string) *InstanceAccessDetails { } // Describes the hardware for the instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/InstanceHardware type InstanceHardware struct { _ struct{} `type:"structure"` @@ -13208,7 +13077,6 @@ func (s *InstanceHardware) SetRamSizeInGb(v float64) *InstanceHardware { } // Describes information about the health of the instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/InstanceHealthSummary type InstanceHealthSummary struct { _ struct{} `type:"structure"` @@ -13252,7 +13120,6 @@ func (s *InstanceHealthSummary) SetInstanceName(v string) *InstanceHealthSummary } // Describes monthly data transfer rates and port information for an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/InstanceNetworking type InstanceNetworking struct { _ struct{} `type:"structure"` @@ -13287,7 +13154,6 @@ func (s *InstanceNetworking) SetPorts(v []*InstancePortInfo) *InstanceNetworking } // Describes information about the instance ports. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/InstancePortInfo type InstancePortInfo struct { _ struct{} `type:"structure"` @@ -13383,7 +13249,6 @@ func (s *InstancePortInfo) SetToPort(v int64) *InstancePortInfo { } // Describes the port state. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/InstancePortState type InstancePortState struct { _ struct{} `type:"structure"` @@ -13452,7 +13317,6 @@ func (s *InstancePortState) SetToPort(v int64) *InstancePortState { } // Describes the snapshot of the virtual private server, or instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/InstanceSnapshot type InstanceSnapshot struct { _ struct{} `type:"structure"` @@ -13599,7 +13463,6 @@ func (s *InstanceSnapshot) SetSupportCode(v string) *InstanceSnapshot { } // Describes the virtual private server (or instance) status. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/InstanceState type InstanceState struct { _ struct{} `type:"structure"` @@ -13632,7 +13495,6 @@ func (s *InstanceState) SetName(v string) *InstanceState { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/IsVpcPeeredRequest type IsVpcPeeredInput struct { _ struct{} `type:"structure"` } @@ -13647,7 +13509,6 @@ func (s IsVpcPeeredInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/IsVpcPeeredResult type IsVpcPeeredOutput struct { _ struct{} `type:"structure"` @@ -13672,7 +13533,6 @@ func (s *IsVpcPeeredOutput) SetIsPeered(v bool) *IsVpcPeeredOutput { } // Describes the SSH key pair. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/KeyPair type KeyPair struct { _ struct{} `type:"structure"` @@ -13753,7 +13613,6 @@ func (s *KeyPair) SetSupportCode(v string) *KeyPair { } // Describes the Lightsail load balancer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/LoadBalancer type LoadBalancer struct { _ struct{} `type:"structure"` @@ -13913,7 +13772,6 @@ func (s *LoadBalancer) SetTlsCertificateSummaries(v []*LoadBalancerTlsCertificat // Describes a load balancer TLS/SSL certificate. // // TLS is just an updated, more secure version of Secure Socket Layer (SSL). -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/LoadBalancerTlsCertificate type LoadBalancerTlsCertificate struct { _ struct{} `type:"structure"` @@ -14157,7 +14015,6 @@ func (s *LoadBalancerTlsCertificate) SetSupportCode(v string) *LoadBalancerTlsCe // Contains information about the domain names on a TLS/SSL certificate that // you will use to validate domain ownership. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/LoadBalancerTlsCertificateDomainValidationOption type LoadBalancerTlsCertificateDomainValidationOption struct { _ struct{} `type:"structure"` @@ -14191,7 +14048,6 @@ func (s *LoadBalancerTlsCertificateDomainValidationOption) SetValidationStatus(v } // Describes the validation record of each domain name in the TLS/SSL certificate. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/LoadBalancerTlsCertificateDomainValidationRecord type LoadBalancerTlsCertificateDomainValidationRecord struct { _ struct{} `type:"structure"` @@ -14253,7 +14109,6 @@ func (s *LoadBalancerTlsCertificateDomainValidationRecord) SetValue(v string) *L // Contains information about the status of Lightsail's managed renewal for // the certificate. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/LoadBalancerTlsCertificateRenewalSummary type LoadBalancerTlsCertificateRenewalSummary struct { _ struct{} `type:"structure"` @@ -14290,7 +14145,6 @@ func (s *LoadBalancerTlsCertificateRenewalSummary) SetRenewalStatus(v string) *L } // Provides a summary of TLS/SSL certificate metadata. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/LoadBalancerTlsCertificateSummary type LoadBalancerTlsCertificateSummary struct { _ struct{} `type:"structure"` @@ -14324,7 +14178,6 @@ func (s *LoadBalancerTlsCertificateSummary) SetName(v string) *LoadBalancerTlsCe } // Describes the metric data point. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/MetricDatapoint type MetricDatapoint struct { _ struct{} `type:"structure"` @@ -14404,7 +14257,6 @@ func (s *MetricDatapoint) SetUnit(v string) *MetricDatapoint { // Describes the monthly data transfer in and out of your virtual private server // (or instance). -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/MonthlyTransfer type MonthlyTransfer struct { _ struct{} `type:"structure"` @@ -14428,7 +14280,6 @@ func (s *MonthlyTransfer) SetGbPerMonthAllocated(v int64) *MonthlyTransfer { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/OpenInstancePublicPortsRequest type OpenInstancePublicPortsInput struct { _ struct{} `type:"structure"` @@ -14481,7 +14332,6 @@ func (s *OpenInstancePublicPortsInput) SetPortInfo(v *PortInfo) *OpenInstancePub return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/OpenInstancePublicPortsResult type OpenInstancePublicPortsOutput struct { _ struct{} `type:"structure"` @@ -14506,7 +14356,6 @@ func (s *OpenInstancePublicPortsOutput) SetOperation(v *Operation) *OpenInstance } // Describes the API operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/Operation type Operation struct { _ struct{} `type:"structure"` @@ -14631,7 +14480,6 @@ func (s *Operation) SetStatusChangedAt(v time.Time) *Operation { // The password data for the Windows Server-based instance, including the ciphertext // and the key pair name. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/PasswordData type PasswordData struct { _ struct{} `type:"structure"` @@ -14682,7 +14530,6 @@ func (s *PasswordData) SetKeyPairName(v string) *PasswordData { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/PeerVpcRequest type PeerVpcInput struct { _ struct{} `type:"structure"` } @@ -14697,7 +14544,6 @@ func (s PeerVpcInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/PeerVpcResult type PeerVpcOutput struct { _ struct{} `type:"structure"` @@ -14723,7 +14569,6 @@ func (s *PeerVpcOutput) SetOperation(v *Operation) *PeerVpcOutput { // Describes information about the ports on your virtual private server (or // instance). -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/PortInfo type PortInfo struct { _ struct{} `type:"structure"` @@ -14765,7 +14610,6 @@ func (s *PortInfo) SetToPort(v int64) *PortInfo { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/PutInstancePublicPortsRequest type PutInstancePublicPortsInput struct { _ struct{} `type:"structure"` @@ -14818,7 +14662,6 @@ func (s *PutInstancePublicPortsInput) SetPortInfos(v []*PortInfo) *PutInstancePu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/PutInstancePublicPortsResult type PutInstancePublicPortsOutput struct { _ struct{} `type:"structure"` @@ -14842,7 +14685,6 @@ func (s *PutInstancePublicPortsOutput) SetOperation(v *Operation) *PutInstancePu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/RebootInstanceRequest type RebootInstanceInput struct { _ struct{} `type:"structure"` @@ -14881,7 +14723,6 @@ func (s *RebootInstanceInput) SetInstanceName(v string) *RebootInstanceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/RebootInstanceResult type RebootInstanceOutput struct { _ struct{} `type:"structure"` @@ -14906,7 +14747,6 @@ func (s *RebootInstanceOutput) SetOperations(v []*Operation) *RebootInstanceOutp } // Describes the AWS Region. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/Region type Region struct { _ struct{} `type:"structure"` @@ -14967,7 +14807,6 @@ func (s *Region) SetName(v string) *Region { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/ReleaseStaticIpRequest type ReleaseStaticIpInput struct { _ struct{} `type:"structure"` @@ -15006,7 +14845,6 @@ func (s *ReleaseStaticIpInput) SetStaticIpName(v string) *ReleaseStaticIpInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/ReleaseStaticIpResult type ReleaseStaticIpOutput struct { _ struct{} `type:"structure"` @@ -15031,7 +14869,6 @@ func (s *ReleaseStaticIpOutput) SetOperations(v []*Operation) *ReleaseStaticIpOu } // Describes the resource location. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/ResourceLocation type ResourceLocation struct { _ struct{} `type:"structure"` @@ -15064,7 +14901,6 @@ func (s *ResourceLocation) SetRegionName(v string) *ResourceLocation { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/StartInstanceRequest type StartInstanceInput struct { _ struct{} `type:"structure"` @@ -15103,7 +14939,6 @@ func (s *StartInstanceInput) SetInstanceName(v string) *StartInstanceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/StartInstanceResult type StartInstanceOutput struct { _ struct{} `type:"structure"` @@ -15128,7 +14963,6 @@ func (s *StartInstanceOutput) SetOperations(v []*Operation) *StartInstanceOutput } // Describes the static IP. -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/StaticIp type StaticIp struct { _ struct{} `type:"structure"` @@ -15226,7 +15060,6 @@ func (s *StaticIp) SetSupportCode(v string) *StaticIp { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/StopInstanceRequest type StopInstanceInput struct { _ struct{} `type:"structure"` @@ -15279,7 +15112,6 @@ func (s *StopInstanceInput) SetInstanceName(v string) *StopInstanceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/StopInstanceResult type StopInstanceOutput struct { _ struct{} `type:"structure"` @@ -15303,7 +15135,6 @@ func (s *StopInstanceOutput) SetOperations(v []*Operation) *StopInstanceOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/UnpeerVpcRequest type UnpeerVpcInput struct { _ struct{} `type:"structure"` } @@ -15318,7 +15149,6 @@ func (s UnpeerVpcInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/UnpeerVpcResult type UnpeerVpcOutput struct { _ struct{} `type:"structure"` @@ -15342,7 +15172,6 @@ func (s *UnpeerVpcOutput) SetOperation(v *Operation) *UnpeerVpcOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/UpdateDomainEntryRequest type UpdateDomainEntryInput struct { _ struct{} `type:"structure"` @@ -15395,7 +15224,6 @@ func (s *UpdateDomainEntryInput) SetDomainName(v string) *UpdateDomainEntryInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/UpdateDomainEntryResult type UpdateDomainEntryOutput struct { _ struct{} `type:"structure"` @@ -15419,7 +15247,6 @@ func (s *UpdateDomainEntryOutput) SetOperations(v []*Operation) *UpdateDomainEnt return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/UpdateLoadBalancerAttributeRequest type UpdateLoadBalancerAttributeInput struct { _ struct{} `type:"structure"` @@ -15489,7 +15316,6 @@ func (s *UpdateLoadBalancerAttributeInput) SetLoadBalancerName(v string) *Update return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/lightsail-2016-11-28/UpdateLoadBalancerAttributeResult type UpdateLoadBalancerAttributeOutput struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/mediastore/api.go b/vendor/github.com/aws/aws-sdk-go/service/mediastore/api.go index ffd801425..f5d369592 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/mediastore/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/mediastore/api.go @@ -271,6 +271,99 @@ func (c *MediaStore) DeleteContainerPolicyWithContext(ctx aws.Context, input *De return out, req.Send() } +const opDeleteCorsPolicy = "DeleteCorsPolicy" + +// DeleteCorsPolicyRequest generates a "aws/request.Request" representing the +// client's request for the DeleteCorsPolicy operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DeleteCorsPolicy for more information on using the DeleteCorsPolicy +// 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 DeleteCorsPolicyRequest method. +// req, resp := client.DeleteCorsPolicyRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/DeleteCorsPolicy +func (c *MediaStore) DeleteCorsPolicyRequest(input *DeleteCorsPolicyInput) (req *request.Request, output *DeleteCorsPolicyOutput) { + op := &request.Operation{ + Name: opDeleteCorsPolicy, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteCorsPolicyInput{} + } + + output = &DeleteCorsPolicyOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteCorsPolicy API operation for AWS Elemental MediaStore. +// +// Deletes the cross-origin resource sharing (CORS) configuration information +// that is set for the container. +// +// To use this operation, you must have permission to perform the MediaStore:DeleteCorsPolicy +// action. The container owner has this permission by default and can grant +// this permission to others. +// +// 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 Elemental MediaStore's +// API operation DeleteCorsPolicy for usage and error information. +// +// Returned Error Codes: +// * ErrCodeContainerInUseException "ContainerInUseException" +// Resource already exists or is being updated. +// +// * ErrCodeContainerNotFoundException "ContainerNotFoundException" +// Could not perform an operation on a container that does not exist. +// +// * ErrCodeCorsPolicyNotFoundException "CorsPolicyNotFoundException" +// Could not perform an operation on a policy that does not exist. +// +// * ErrCodeInternalServerError "InternalServerError" +// The service is temporarily unavailable. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/DeleteCorsPolicy +func (c *MediaStore) DeleteCorsPolicy(input *DeleteCorsPolicyInput) (*DeleteCorsPolicyOutput, error) { + req, out := c.DeleteCorsPolicyRequest(input) + return out, req.Send() +} + +// DeleteCorsPolicyWithContext is the same as DeleteCorsPolicy with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteCorsPolicy 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 *MediaStore) DeleteCorsPolicyWithContext(ctx aws.Context, input *DeleteCorsPolicyInput, opts ...request.Option) (*DeleteCorsPolicyOutput, error) { + req, out := c.DeleteCorsPolicyRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeContainer = "DescribeContainer" // DescribeContainerRequest generates a "aws/request.Request" representing the @@ -315,9 +408,12 @@ func (c *MediaStore) DescribeContainerRequest(input *DescribeContainerInput) (re // DescribeContainer API operation for AWS Elemental MediaStore. // -// Retrieves the properties of the requested container. This returns a single -// Container object based on ContainerName. To return all Container objects -// that are associated with a specified AWS account, use ListContainers. +// Retrieves the properties of the requested container. This request is commonly +// used to retrieve the endpoint of a container. An endpoint is a value assigned +// by the service when a new container is created. A container's endpoint does +// not change after it has been assigned. The DescribeContainer request returns +// a single Container object based on ContainerName. To return all Container +// objects that are associated with a specified AWS account, use ListContainers. // // 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 @@ -445,6 +541,99 @@ func (c *MediaStore) GetContainerPolicyWithContext(ctx aws.Context, input *GetCo return out, req.Send() } +const opGetCorsPolicy = "GetCorsPolicy" + +// GetCorsPolicyRequest generates a "aws/request.Request" representing the +// client's request for the GetCorsPolicy operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 GetCorsPolicy for more information on using the GetCorsPolicy +// 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 GetCorsPolicyRequest method. +// req, resp := client.GetCorsPolicyRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/GetCorsPolicy +func (c *MediaStore) GetCorsPolicyRequest(input *GetCorsPolicyInput) (req *request.Request, output *GetCorsPolicyOutput) { + op := &request.Operation{ + Name: opGetCorsPolicy, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetCorsPolicyInput{} + } + + output = &GetCorsPolicyOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetCorsPolicy API operation for AWS Elemental MediaStore. +// +// Returns the cross-origin resource sharing (CORS) configuration information +// that is set for the container. +// +// To use this operation, you must have permission to perform the MediaStore:GetCorsPolicy +// action. By default, the container owner has this permission and can grant +// it to others. +// +// 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 Elemental MediaStore's +// API operation GetCorsPolicy for usage and error information. +// +// Returned Error Codes: +// * ErrCodeContainerInUseException "ContainerInUseException" +// Resource already exists or is being updated. +// +// * ErrCodeContainerNotFoundException "ContainerNotFoundException" +// Could not perform an operation on a container that does not exist. +// +// * ErrCodeCorsPolicyNotFoundException "CorsPolicyNotFoundException" +// Could not perform an operation on a policy that does not exist. +// +// * ErrCodeInternalServerError "InternalServerError" +// The service is temporarily unavailable. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/GetCorsPolicy +func (c *MediaStore) GetCorsPolicy(input *GetCorsPolicyInput) (*GetCorsPolicyOutput, error) { + req, out := c.GetCorsPolicyRequest(input) + return out, req.Send() +} + +// GetCorsPolicyWithContext is the same as GetCorsPolicy with the addition of +// the ability to pass a context and additional request options. +// +// See GetCorsPolicy 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 *MediaStore) GetCorsPolicyWithContext(ctx aws.Context, input *GetCorsPolicyInput, opts ...request.Option) (*GetCorsPolicyOutput, error) { + req, out := c.GetCorsPolicyRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListContainers = "ListContainers" // ListContainersRequest generates a "aws/request.Request" representing the @@ -625,9 +814,103 @@ func (c *MediaStore) PutContainerPolicyWithContext(ctx aws.Context, input *PutCo return out, req.Send() } +const opPutCorsPolicy = "PutCorsPolicy" + +// PutCorsPolicyRequest generates a "aws/request.Request" representing the +// client's request for the PutCorsPolicy operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 PutCorsPolicy for more information on using the PutCorsPolicy +// 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 PutCorsPolicyRequest method. +// req, resp := client.PutCorsPolicyRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/PutCorsPolicy +func (c *MediaStore) PutCorsPolicyRequest(input *PutCorsPolicyInput) (req *request.Request, output *PutCorsPolicyOutput) { + op := &request.Operation{ + Name: opPutCorsPolicy, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &PutCorsPolicyInput{} + } + + output = &PutCorsPolicyOutput{} + req = c.newRequest(op, input, output) + return +} + +// PutCorsPolicy API operation for AWS Elemental MediaStore. +// +// Sets the cross-origin resource sharing (CORS) configuration on a container +// so that the container can service cross-origin requests. For example, you +// might want to enable a request whose origin is http://www.example.com to +// access your AWS Elemental MediaStore container at my.example.container.com +// by using the browser's XMLHttpRequest capability. +// +// To enable CORS on a container, you attach a CORS policy to the container. +// In the CORS policy, you configure rules that identify origins and the HTTP +// methods that can be executed on your container. The policy can contain up +// to 398,000 characters. You can add up to 100 rules to a CORS policy. If more +// than one rule applies, the service uses the first applicable rule listed. +// +// 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 Elemental MediaStore's +// API operation PutCorsPolicy for usage and error information. +// +// Returned Error Codes: +// * ErrCodeContainerNotFoundException "ContainerNotFoundException" +// Could not perform an operation on a container that does not exist. +// +// * ErrCodeContainerInUseException "ContainerInUseException" +// Resource already exists or is being updated. +// +// * ErrCodeInternalServerError "InternalServerError" +// The service is temporarily unavailable. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/PutCorsPolicy +func (c *MediaStore) PutCorsPolicy(input *PutCorsPolicyInput) (*PutCorsPolicyOutput, error) { + req, out := c.PutCorsPolicyRequest(input) + return out, req.Send() +} + +// PutCorsPolicyWithContext is the same as PutCorsPolicy with the addition of +// the ability to pass a context and additional request options. +// +// See PutCorsPolicy 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 *MediaStore) PutCorsPolicyWithContext(ctx aws.Context, input *PutCorsPolicyInput, opts ...request.Option) (*PutCorsPolicyOutput, error) { + req, out := c.PutCorsPolicyRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + // This section describes operations that you can perform on an AWS Elemental // MediaStore container. -// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/Container type Container struct { _ struct{} `type:"structure"` @@ -642,8 +925,10 @@ type Container struct { // Unix timestamp. CreationTime *time.Time `type:"timestamp" timestampFormat:"unix"` - // The DNS endpoint of the container. Use from 1 to 255 characters. Use this - // endpoint to identify this container when sending requests to the data plane. + // The DNS endpoint of the container. Use the endpoint to identify the specific + // container when sending requests to the data plane. The service assigns this + // value when the container is created. Once the value has been assigned, it + // does not change. Endpoint *string `min:"1" type:"string"` // The name of the container. @@ -696,7 +981,88 @@ func (s *Container) SetStatus(v string) *Container { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/CreateContainerInput +// A rule for a CORS policy. You can add up to 100 rules to a CORS policy. If +// more than one rule applies, the service uses the first applicable rule listed. +type CorsRule struct { + _ struct{} `type:"structure"` + + // Specifies which headers are allowed in a preflight OPTIONS request through + // the Access-Control-Request-Headers header. Each header name that is specified + // in Access-Control-Request-Headers must have a corresponding entry in the + // rule. Only the headers that were requested are sent back. + // + // This element can contain only one wildcard character (*). + AllowedHeaders []*string `type:"list"` + + // Identifies an HTTP method that the origin that is specified in the rule is + // allowed to execute. + // + // Each CORS rule must contain at least one AllowedMethod and one AllowedOrigin + // element. + AllowedMethods []*string `type:"list"` + + // One or more response headers that you want users to be able to access from + // their applications (for example, from a JavaScript XMLHttpRequest object). + // + // Each CORS rule must have at least one AllowedOrigin element. The string value + // can include only one wildcard character (*), for example, http://*.example.com. + // Additionally, you can specify only one wildcard character to allow cross-origin + // access for all origins. + AllowedOrigins []*string `type:"list"` + + // One or more headers in the response that you want users to be able to access + // from their applications (for example, from a JavaScript XMLHttpRequest object). + // + // This element is optional for each rule. + ExposeHeaders []*string `type:"list"` + + // The time in seconds that your browser caches the preflight response for the + // specified resource. + // + // A CORS rule can have only one MaxAgeSeconds element. + MaxAgeSeconds *int64 `type:"integer"` +} + +// String returns the string representation +func (s CorsRule) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CorsRule) GoString() string { + return s.String() +} + +// SetAllowedHeaders sets the AllowedHeaders field's value. +func (s *CorsRule) SetAllowedHeaders(v []*string) *CorsRule { + s.AllowedHeaders = v + return s +} + +// SetAllowedMethods sets the AllowedMethods field's value. +func (s *CorsRule) SetAllowedMethods(v []*string) *CorsRule { + s.AllowedMethods = v + return s +} + +// SetAllowedOrigins sets the AllowedOrigins field's value. +func (s *CorsRule) SetAllowedOrigins(v []*string) *CorsRule { + s.AllowedOrigins = v + return s +} + +// SetExposeHeaders sets the ExposeHeaders field's value. +func (s *CorsRule) SetExposeHeaders(v []*string) *CorsRule { + s.ExposeHeaders = v + return s +} + +// SetMaxAgeSeconds sets the MaxAgeSeconds field's value. +func (s *CorsRule) SetMaxAgeSeconds(v int64) *CorsRule { + s.MaxAgeSeconds = &v + return s +} + type CreateContainerInput struct { _ struct{} `type:"structure"` @@ -741,7 +1107,6 @@ func (s *CreateContainerInput) SetContainerName(v string) *CreateContainerInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/CreateContainerOutput type CreateContainerOutput struct { _ struct{} `type:"structure"` @@ -751,7 +1116,7 @@ type CreateContainerOutput struct { // // ContainerName: The container name as specified in the request. // - // CreationTime: Unix timestamp. + // CreationTime: Unix time stamp. // // Status: The status of container creation or deletion. The status is one of // the following: CREATING, ACTIVE, or DELETING. While the service is creating @@ -781,7 +1146,6 @@ func (s *CreateContainerOutput) SetContainer(v *Container) *CreateContainerOutpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/DeleteContainerInput type DeleteContainerInput struct { _ struct{} `type:"structure"` @@ -823,7 +1187,6 @@ func (s *DeleteContainerInput) SetContainerName(v string) *DeleteContainerInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/DeleteContainerOutput type DeleteContainerOutput struct { _ struct{} `type:"structure"` } @@ -838,7 +1201,6 @@ func (s DeleteContainerOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/DeleteContainerPolicyInput type DeleteContainerPolicyInput struct { _ struct{} `type:"structure"` @@ -880,7 +1242,6 @@ func (s *DeleteContainerPolicyInput) SetContainerName(v string) *DeleteContainer return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/DeleteContainerPolicyOutput type DeleteContainerPolicyOutput struct { _ struct{} `type:"structure"` } @@ -895,7 +1256,61 @@ func (s DeleteContainerPolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/DescribeContainerInput +type DeleteCorsPolicyInput struct { + _ struct{} `type:"structure"` + + // The name of the container to remove the policy from. + // + // ContainerName is a required field + ContainerName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteCorsPolicyInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteCorsPolicyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteCorsPolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteCorsPolicyInput"} + if s.ContainerName == nil { + invalidParams.Add(request.NewErrParamRequired("ContainerName")) + } + if s.ContainerName != nil && len(*s.ContainerName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ContainerName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetContainerName sets the ContainerName field's value. +func (s *DeleteCorsPolicyInput) SetContainerName(v string) *DeleteCorsPolicyInput { + s.ContainerName = &v + return s +} + +type DeleteCorsPolicyOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteCorsPolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteCorsPolicyOutput) GoString() string { + return s.String() +} + type DescribeContainerInput struct { _ struct{} `type:"structure"` @@ -932,7 +1347,6 @@ func (s *DescribeContainerInput) SetContainerName(v string) *DescribeContainerIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/DescribeContainerOutput type DescribeContainerOutput struct { _ struct{} `type:"structure"` @@ -956,7 +1370,6 @@ func (s *DescribeContainerOutput) SetContainer(v *Container) *DescribeContainerO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/GetContainerPolicyInput type GetContainerPolicyInput struct { _ struct{} `type:"structure"` @@ -998,7 +1411,6 @@ func (s *GetContainerPolicyInput) SetContainerName(v string) *GetContainerPolicy return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/GetContainerPolicyOutput type GetContainerPolicyOutput struct { _ struct{} `type:"structure"` @@ -1024,7 +1436,72 @@ func (s *GetContainerPolicyOutput) SetPolicy(v string) *GetContainerPolicyOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/ListContainersInput +type GetCorsPolicyInput struct { + _ struct{} `type:"structure"` + + // The name of the container that the policy is assigned to. + // + // ContainerName is a required field + ContainerName *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetCorsPolicyInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetCorsPolicyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetCorsPolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetCorsPolicyInput"} + if s.ContainerName == nil { + invalidParams.Add(request.NewErrParamRequired("ContainerName")) + } + if s.ContainerName != nil && len(*s.ContainerName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ContainerName", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetContainerName sets the ContainerName field's value. +func (s *GetCorsPolicyInput) SetContainerName(v string) *GetCorsPolicyInput { + s.ContainerName = &v + return s +} + +type GetCorsPolicyOutput struct { + _ struct{} `type:"structure"` + + // The CORS policy of the container. + // + // CorsPolicy is a required field + CorsPolicy []*CorsRule `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s GetCorsPolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetCorsPolicyOutput) GoString() string { + return s.String() +} + +// SetCorsPolicy sets the CorsPolicy field's value. +func (s *GetCorsPolicyOutput) SetCorsPolicy(v []*CorsRule) *GetCorsPolicyOutput { + s.CorsPolicy = v + return s +} + type ListContainersInput struct { _ struct{} `type:"structure"` @@ -1077,7 +1554,6 @@ func (s *ListContainersInput) SetNextToken(v string) *ListContainersInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/ListContainersOutput type ListContainersOutput struct { _ struct{} `type:"structure"` @@ -1114,7 +1590,6 @@ func (s *ListContainersOutput) SetNextToken(v string) *ListContainersOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/PutContainerPolicyInput type PutContainerPolicyInput struct { _ struct{} `type:"structure"` @@ -1177,7 +1652,6 @@ func (s *PutContainerPolicyInput) SetPolicy(v string) *PutContainerPolicyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mediastore-2017-09-01/PutContainerPolicyOutput type PutContainerPolicyOutput struct { _ struct{} `type:"structure"` } @@ -1192,6 +1666,78 @@ func (s PutContainerPolicyOutput) GoString() string { return s.String() } +type PutCorsPolicyInput struct { + _ struct{} `type:"structure"` + + // The name of the container that you want to assign the CORS policy to. + // + // ContainerName is a required field + ContainerName *string `min:"1" type:"string" required:"true"` + + // The CORS policy to apply to the container. + // + // CorsPolicy is a required field + CorsPolicy []*CorsRule `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s PutCorsPolicyInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutCorsPolicyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PutCorsPolicyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PutCorsPolicyInput"} + if s.ContainerName == nil { + invalidParams.Add(request.NewErrParamRequired("ContainerName")) + } + if s.ContainerName != nil && len(*s.ContainerName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ContainerName", 1)) + } + if s.CorsPolicy == nil { + invalidParams.Add(request.NewErrParamRequired("CorsPolicy")) + } + if s.CorsPolicy != nil && len(s.CorsPolicy) < 1 { + invalidParams.Add(request.NewErrParamMinLen("CorsPolicy", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetContainerName sets the ContainerName field's value. +func (s *PutCorsPolicyInput) SetContainerName(v string) *PutCorsPolicyInput { + s.ContainerName = &v + return s +} + +// SetCorsPolicy sets the CorsPolicy field's value. +func (s *PutCorsPolicyInput) SetCorsPolicy(v []*CorsRule) *PutCorsPolicyInput { + s.CorsPolicy = v + return s +} + +type PutCorsPolicyOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s PutCorsPolicyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PutCorsPolicyOutput) GoString() string { + return s.String() +} + const ( // ContainerStatusActive is a ContainerStatus enum value ContainerStatusActive = "ACTIVE" @@ -1202,3 +1748,17 @@ const ( // ContainerStatusDeleting is a ContainerStatus enum value ContainerStatusDeleting = "DELETING" ) + +const ( + // MethodNamePut is a MethodName enum value + MethodNamePut = "PUT" + + // MethodNameGet is a MethodName enum value + MethodNameGet = "GET" + + // MethodNameDelete is a MethodName enum value + MethodNameDelete = "DELETE" + + // MethodNameHead is a MethodName enum value + MethodNameHead = "HEAD" +) diff --git a/vendor/github.com/aws/aws-sdk-go/service/mediastore/errors.go b/vendor/github.com/aws/aws-sdk-go/service/mediastore/errors.go index 2e01ab9dd..11ebf2e51 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/mediastore/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/mediastore/errors.go @@ -16,6 +16,12 @@ const ( // Could not perform an operation on a container that does not exist. ErrCodeContainerNotFoundException = "ContainerNotFoundException" + // ErrCodeCorsPolicyNotFoundException for service response error code + // "CorsPolicyNotFoundException". + // + // Could not perform an operation on a policy that does not exist. + ErrCodeCorsPolicyNotFoundException = "CorsPolicyNotFoundException" + // ErrCodeInternalServerError for service response error code // "InternalServerError". // diff --git a/vendor/github.com/aws/aws-sdk-go/service/mq/api.go b/vendor/github.com/aws/aws-sdk-go/service/mq/api.go index e09eccf20..e9f68af09 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/mq/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/mq/api.go @@ -1513,7 +1513,6 @@ func (c *MQ) UpdateUserWithContext(ctx aws.Context, input *UpdateUserRequest, op } // Returns information about all brokers. -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/BrokerInstance type BrokerInstance struct { _ struct{} `type:"structure"` @@ -1547,7 +1546,6 @@ func (s *BrokerInstance) SetEndpoints(v []*string) *BrokerInstance { } // The Amazon Resource Name (ARN) of the broker. -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/BrokerSummary type BrokerSummary struct { _ struct{} `type:"structure"` @@ -1624,7 +1622,6 @@ func (s *BrokerSummary) SetHostInstanceType(v string) *BrokerSummary { } // Returns information about all configurations. -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/Configuration type Configuration struct { _ struct{} `type:"structure"` @@ -1706,7 +1703,6 @@ func (s *Configuration) SetName(v string) *Configuration { } // A list of information about the configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/ConfigurationId type ConfigurationId struct { _ struct{} `type:"structure"` @@ -1740,7 +1736,6 @@ func (s *ConfigurationId) SetRevision(v int64) *ConfigurationId { } // Returns information about the specified configuration revision. -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/ConfigurationRevision type ConfigurationRevision struct { _ struct{} `type:"structure"` @@ -1774,7 +1769,6 @@ func (s *ConfigurationRevision) SetRevision(v int64) *ConfigurationRevision { } // Broker configuration information -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/Configurations type Configurations struct { _ struct{} `type:"structure"` @@ -1816,7 +1810,6 @@ func (s *Configurations) SetPending(v *ConfigurationId) *Configurations { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/CreateBrokerRequest type CreateBrokerRequest struct { _ struct{} `type:"structure"` @@ -1942,7 +1935,6 @@ func (s *CreateBrokerRequest) SetUsers(v []*User) *CreateBrokerRequest { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/CreateBrokerResponse type CreateBrokerResponse struct { _ struct{} `type:"structure"` @@ -1973,7 +1965,6 @@ func (s *CreateBrokerResponse) SetBrokerId(v string) *CreateBrokerResponse { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/CreateConfigurationRequest type CreateConfigurationRequest struct { _ struct{} `type:"structure"` @@ -2013,7 +2004,6 @@ func (s *CreateConfigurationRequest) SetName(v string) *CreateConfigurationReque return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/CreateConfigurationResponse type CreateConfigurationResponse struct { _ struct{} `type:"structure"` @@ -2061,7 +2051,6 @@ func (s *CreateConfigurationResponse) SetName(v string) *CreateConfigurationResp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/CreateUserResponse type CreateUserOutput struct { _ struct{} `type:"structure"` } @@ -2076,7 +2065,6 @@ func (s CreateUserOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/CreateUserRequest type CreateUserRequest struct { _ struct{} `type:"structure"` @@ -2149,7 +2137,6 @@ func (s *CreateUserRequest) SetUsername(v string) *CreateUserRequest { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/DeleteBrokerRequest type DeleteBrokerInput struct { _ struct{} `type:"structure"` @@ -2186,7 +2173,6 @@ func (s *DeleteBrokerInput) SetBrokerId(v string) *DeleteBrokerInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/DeleteBrokerResponse type DeleteBrokerResponse struct { _ struct{} `type:"structure"` @@ -2209,7 +2195,6 @@ func (s *DeleteBrokerResponse) SetBrokerId(v string) *DeleteBrokerResponse { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/DeleteUserRequest type DeleteUserInput struct { _ struct{} `type:"structure"` @@ -2258,7 +2243,6 @@ func (s *DeleteUserInput) SetUsername(v string) *DeleteUserInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/DeleteUserResponse type DeleteUserOutput struct { _ struct{} `type:"structure"` } @@ -2273,7 +2257,6 @@ func (s DeleteUserOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/DescribeBrokerRequest type DescribeBrokerInput struct { _ struct{} `type:"structure"` @@ -2310,7 +2293,6 @@ func (s *DescribeBrokerInput) SetBrokerId(v string) *DescribeBrokerInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/DescribeBrokerResponse type DescribeBrokerResponse struct { _ struct{} `type:"structure"` @@ -2462,7 +2444,6 @@ func (s *DescribeBrokerResponse) SetUsers(v []*UserSummary) *DescribeBrokerRespo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/DescribeConfigurationRequest type DescribeConfigurationInput struct { _ struct{} `type:"structure"` @@ -2499,7 +2480,6 @@ func (s *DescribeConfigurationInput) SetConfigurationId(v string) *DescribeConfi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/DescribeConfigurationResponse type DescribeConfigurationOutput struct { _ struct{} `type:"structure"` @@ -2572,7 +2552,6 @@ func (s *DescribeConfigurationOutput) SetName(v string) *DescribeConfigurationOu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/DescribeConfigurationRevisionRequest type DescribeConfigurationRevisionInput struct { _ struct{} `type:"structure"` @@ -2621,7 +2600,6 @@ func (s *DescribeConfigurationRevisionInput) SetConfigurationRevision(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/DescribeConfigurationRevisionResponse type DescribeConfigurationRevisionResponse struct { _ struct{} `type:"structure"` @@ -2660,7 +2638,6 @@ func (s *DescribeConfigurationRevisionResponse) SetDescription(v string) *Descri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/DescribeUserRequest type DescribeUserInput struct { _ struct{} `type:"structure"` @@ -2709,7 +2686,6 @@ func (s *DescribeUserInput) SetUsername(v string) *DescribeUserInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/DescribeUserResponse type DescribeUserResponse struct { _ struct{} `type:"structure"` @@ -2766,7 +2742,6 @@ func (s *DescribeUserResponse) SetUsername(v string) *DescribeUserResponse { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/ListBrokersRequest type ListBrokersInput struct { _ struct{} `type:"structure"` @@ -2810,7 +2785,6 @@ func (s *ListBrokersInput) SetNextToken(v string) *ListBrokersInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/ListBrokersResponse type ListBrokersResponse struct { _ struct{} `type:"structure"` @@ -2841,7 +2815,6 @@ func (s *ListBrokersResponse) SetNextToken(v string) *ListBrokersResponse { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/ListConfigurationRevisionsRequest type ListConfigurationRevisionsInput struct { _ struct{} `type:"structure"` @@ -2897,7 +2870,6 @@ func (s *ListConfigurationRevisionsInput) SetNextToken(v string) *ListConfigurat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/ListConfigurationRevisionsResponse type ListConfigurationRevisionsResponse struct { _ struct{} `type:"structure"` @@ -2944,7 +2916,6 @@ func (s *ListConfigurationRevisionsResponse) SetRevisions(v []*ConfigurationRevi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/ListConfigurationsRequest type ListConfigurationsInput struct { _ struct{} `type:"structure"` @@ -2988,7 +2959,6 @@ func (s *ListConfigurationsInput) SetNextToken(v string) *ListConfigurationsInpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/ListConfigurationsResponse type ListConfigurationsResponse struct { _ struct{} `type:"structure"` @@ -3027,7 +2997,6 @@ func (s *ListConfigurationsResponse) SetNextToken(v string) *ListConfigurationsR return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/ListUsersRequest type ListUsersInput struct { _ struct{} `type:"structure"` @@ -3083,7 +3052,6 @@ func (s *ListUsersInput) SetNextToken(v string) *ListUsersInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/ListUsersResponse type ListUsersResponse struct { _ struct{} `type:"structure"` @@ -3130,7 +3098,6 @@ func (s *ListUsersResponse) SetUsers(v []*UserSummary) *ListUsersResponse { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/RebootBrokerRequest type RebootBrokerInput struct { _ struct{} `type:"structure"` @@ -3167,7 +3134,6 @@ func (s *RebootBrokerInput) SetBrokerId(v string) *RebootBrokerInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/RebootBrokerResponse type RebootBrokerOutput struct { _ struct{} `type:"structure"` } @@ -3184,7 +3150,6 @@ func (s RebootBrokerOutput) GoString() string { // Returns information about the XML element or attribute that was sanitized // in the configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/SanitizationWarning type SanitizationWarning struct { _ struct{} `type:"structure"` @@ -3232,7 +3197,6 @@ func (s *SanitizationWarning) SetReason(v string) *SanitizationWarning { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/UpdateBrokerRequest type UpdateBrokerRequest struct { _ struct{} `type:"structure"` @@ -3278,7 +3242,6 @@ func (s *UpdateBrokerRequest) SetConfiguration(v *ConfigurationId) *UpdateBroker return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/UpdateBrokerResponse type UpdateBrokerResponse struct { _ struct{} `type:"structure"` @@ -3310,7 +3273,6 @@ func (s *UpdateBrokerResponse) SetConfiguration(v *ConfigurationId) *UpdateBroke return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/UpdateConfigurationRequest type UpdateConfigurationRequest struct { _ struct{} `type:"structure"` @@ -3363,7 +3325,6 @@ func (s *UpdateConfigurationRequest) SetDescription(v string) *UpdateConfigurati return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/UpdateConfigurationResponse type UpdateConfigurationResponse struct { _ struct{} `type:"structure"` @@ -3419,7 +3380,6 @@ func (s *UpdateConfigurationResponse) SetWarnings(v []*SanitizationWarning) *Upd return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/UpdateUserResponse type UpdateUserOutput struct { _ struct{} `type:"structure"` } @@ -3434,7 +3394,6 @@ func (s UpdateUserOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/UpdateUserRequest type UpdateUserRequest struct { _ struct{} `type:"structure"` @@ -3508,7 +3467,6 @@ func (s *UpdateUserRequest) SetUsername(v string) *UpdateUserRequest { } // An ActiveMQ user associated with the broker. -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/User type User struct { _ struct{} `type:"structure"` @@ -3567,7 +3525,6 @@ func (s *User) SetUsername(v string) *User { // Returns information about the status of the changes pending for the ActiveMQ // user. -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/UserPendingChanges type UserPendingChanges struct { _ struct{} `type:"structure"` @@ -3613,7 +3570,6 @@ func (s *UserPendingChanges) SetPendingChange(v string) *UserPendingChanges { } // Returns a list of all ActiveMQ users. -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/UserSummary type UserSummary struct { _ struct{} `type:"structure"` @@ -3651,7 +3607,6 @@ func (s *UserSummary) SetUsername(v string) *UserSummary { // The scheduled time period relative to UTC during which Amazon MQ begins to // apply pending updates or patches to the broker. -// See also, https://docs.aws.amazon.com/goto/WebAPI/mq-2017-11-27/WeeklyStartTime type WeeklyStartTime struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/opsworks/api.go b/vendor/github.com/aws/aws-sdk-go/service/opsworks/api.go index 8dc8ef7f5..f266280ef 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/opsworks/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/opsworks/api.go @@ -2924,6 +2924,80 @@ func (c *OpsWorks) DescribeMyUserProfileWithContext(ctx aws.Context, input *Desc return out, req.Send() } +const opDescribeOperatingSystems = "DescribeOperatingSystems" + +// DescribeOperatingSystemsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeOperatingSystems operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeOperatingSystems for more information on using the DescribeOperatingSystems +// 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 DescribeOperatingSystemsRequest method. +// req, resp := client.DescribeOperatingSystemsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeOperatingSystems +func (c *OpsWorks) DescribeOperatingSystemsRequest(input *DescribeOperatingSystemsInput) (req *request.Request, output *DescribeOperatingSystemsOutput) { + op := &request.Operation{ + Name: opDescribeOperatingSystems, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeOperatingSystemsInput{} + } + + output = &DescribeOperatingSystemsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeOperatingSystems API operation for AWS OpsWorks. +// +// Describes the operating systems that are supported by AWS OpsWorks Stacks. +// +// 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 OpsWorks's +// API operation DescribeOperatingSystems for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeOperatingSystems +func (c *OpsWorks) DescribeOperatingSystems(input *DescribeOperatingSystemsInput) (*DescribeOperatingSystemsOutput, error) { + req, out := c.DescribeOperatingSystemsRequest(input) + return out, req.Send() +} + +// DescribeOperatingSystemsWithContext is the same as DescribeOperatingSystems with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeOperatingSystems 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 *OpsWorks) DescribeOperatingSystemsWithContext(ctx aws.Context, input *DescribeOperatingSystemsInput, opts ...request.Option) (*DescribeOperatingSystemsOutput, error) { + req, out := c.DescribeOperatingSystemsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribePermissions = "DescribePermissions" // DescribePermissionsRequest generates a "aws/request.Request" representing the @@ -6572,7 +6646,6 @@ func (c *OpsWorks) UpdateVolumeWithContext(ctx aws.Context, input *UpdateVolumeI } // Describes an agent version. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/AgentVersion type AgentVersion struct { _ struct{} `type:"structure"` @@ -6606,7 +6679,6 @@ func (s *AgentVersion) SetVersion(v string) *AgentVersion { } // A description of the app. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/App type App struct { _ struct{} `type:"structure"` @@ -6758,7 +6830,6 @@ func (s *App) SetType(v string) *App { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/AssignInstanceRequest type AssignInstanceInput struct { _ struct{} `type:"structure"` @@ -6812,7 +6883,6 @@ func (s *AssignInstanceInput) SetLayerIds(v []*string) *AssignInstanceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/AssignInstanceOutput type AssignInstanceOutput struct { _ struct{} `type:"structure"` } @@ -6827,7 +6897,6 @@ func (s AssignInstanceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/AssignVolumeRequest type AssignVolumeInput struct { _ struct{} `type:"structure"` @@ -6875,7 +6944,6 @@ func (s *AssignVolumeInput) SetVolumeId(v string) *AssignVolumeInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/AssignVolumeOutput type AssignVolumeOutput struct { _ struct{} `type:"structure"` } @@ -6890,7 +6958,6 @@ func (s AssignVolumeOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/AssociateElasticIpRequest type AssociateElasticIpInput struct { _ struct{} `type:"structure"` @@ -6938,7 +7005,6 @@ func (s *AssociateElasticIpInput) SetInstanceId(v string) *AssociateElasticIpInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/AssociateElasticIpOutput type AssociateElasticIpOutput struct { _ struct{} `type:"structure"` } @@ -6953,7 +7019,6 @@ func (s AssociateElasticIpOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/AttachElasticLoadBalancerRequest type AttachElasticLoadBalancerInput struct { _ struct{} `type:"structure"` @@ -7007,7 +7072,6 @@ func (s *AttachElasticLoadBalancerInput) SetLayerId(v string) *AttachElasticLoad return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/AttachElasticLoadBalancerOutput type AttachElasticLoadBalancerOutput struct { _ struct{} `type:"structure"` } @@ -7024,7 +7088,6 @@ func (s AttachElasticLoadBalancerOutput) GoString() string { // Describes a load-based auto scaling upscaling or downscaling threshold configuration, // which specifies when AWS OpsWorks Stacks starts or stops load-based instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/AutoScalingThresholds type AutoScalingThresholds struct { _ struct{} `type:"structure"` @@ -7139,7 +7202,6 @@ func (s *AutoScalingThresholds) SetThresholdsWaitTime(v int64) *AutoScalingThres // Describes a block device mapping. This data type maps directly to the Amazon // EC2 BlockDeviceMapping (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_BlockDeviceMapping.html) // data type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/BlockDeviceMapping type BlockDeviceMapping struct { _ struct{} `type:"structure"` @@ -7194,7 +7256,6 @@ func (s *BlockDeviceMapping) SetVirtualName(v string) *BlockDeviceMapping { } // Describes the Chef configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/ChefConfiguration type ChefConfiguration struct { _ struct{} `type:"structure"` @@ -7227,7 +7288,6 @@ func (s *ChefConfiguration) SetManageBerkshelf(v bool) *ChefConfiguration { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CloneStackRequest type CloneStackInput struct { _ struct{} `type:"structure"` @@ -7301,8 +7361,8 @@ type CloneStackInput struct { // The stack's operating system, which must be set to one of the following. // // * A supported Linux operating system: An Amazon Linux version, such as - // Amazon Linux 2017.03, Amazon Linux 2016.09, Amazon Linux 2016.03, Amazon - // Linux 2015.09, or Amazon Linux 2015.03. + // Amazon Linux 2017.09, Amazon Linux 2017.03, Amazon Linux 2016.09, Amazon + // Linux 2016.03, Amazon Linux 2015.09, or Amazon Linux 2015.03. // // * A supported Ubuntu operating system, such as Ubuntu 16.04 LTS, Ubuntu // 14.04 LTS, or Ubuntu 12.04 LTS. @@ -7621,7 +7681,6 @@ func (s *CloneStackInput) SetVpcId(v string) *CloneStackInput { } // Contains the response to a CloneStack request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CloneStackResult type CloneStackOutput struct { _ struct{} `type:"structure"` @@ -7646,7 +7705,6 @@ func (s *CloneStackOutput) SetStackId(v string) *CloneStackOutput { } // Describes the Amazon CloudWatch logs configuration for a layer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CloudWatchLogsConfiguration type CloudWatchLogsConfiguration struct { _ struct{} `type:"structure"` @@ -7682,7 +7740,6 @@ func (s *CloudWatchLogsConfiguration) SetLogStreams(v []*CloudWatchLogsLogStream // Describes the Amazon CloudWatch logs configuration for a layer. For detailed // information about members of this data type, see the CloudWatch Logs Agent // Reference (http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AgentReference.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CloudWatchLogsLogStream type CloudWatchLogsLogStream struct { _ struct{} `type:"structure"` @@ -7825,7 +7882,6 @@ func (s *CloudWatchLogsLogStream) SetTimeZone(v string) *CloudWatchLogsLogStream } // Describes a command. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/Command type Command struct { _ struct{} `type:"structure"` @@ -7962,7 +8018,6 @@ func (s *Command) SetType(v string) *Command { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateAppRequest type CreateAppInput struct { _ struct{} `type:"structure"` @@ -8144,7 +8199,6 @@ func (s *CreateAppInput) SetType(v string) *CreateAppInput { } // Contains the response to a CreateApp request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateAppResult type CreateAppOutput struct { _ struct{} `type:"structure"` @@ -8168,7 +8222,6 @@ func (s *CreateAppOutput) SetAppId(v string) *CreateAppOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateDeploymentRequest type CreateDeploymentInput struct { _ struct{} `type:"structure"` @@ -8281,7 +8334,6 @@ func (s *CreateDeploymentInput) SetStackId(v string) *CreateDeploymentInput { } // Contains the response to a CreateDeployment request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateDeploymentResult type CreateDeploymentOutput struct { _ struct{} `type:"structure"` @@ -8306,7 +8358,6 @@ func (s *CreateDeploymentOutput) SetDeploymentId(v string) *CreateDeploymentOutp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateInstanceRequest type CreateInstanceInput struct { _ struct{} `type:"structure"` @@ -8385,8 +8436,8 @@ type CreateInstanceInput struct { // The instance's operating system, which must be set to one of the following. // // * A supported Linux operating system: An Amazon Linux version, such as - // Amazon Linux 2017.03, Amazon Linux 2016.09, Amazon Linux 2016.03, Amazon - // Linux 2015.09, or Amazon Linux 2015.03. + // Amazon Linux 2017.09, Amazon Linux 2017.03, Amazon Linux 2016.09, Amazon + // Linux 2016.03, Amazon Linux 2015.09, or Amazon Linux 2015.03. // // * A supported Ubuntu operating system, such as Ubuntu 16.04 LTS, Ubuntu // 14.04 LTS, or Ubuntu 12.04 LTS. @@ -8585,7 +8636,6 @@ func (s *CreateInstanceInput) SetVirtualizationType(v string) *CreateInstanceInp } // Contains the response to a CreateInstance request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateInstanceResult type CreateInstanceOutput struct { _ struct{} `type:"structure"` @@ -8609,7 +8659,6 @@ func (s *CreateInstanceOutput) SetInstanceId(v string) *CreateInstanceOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateLayerRequest type CreateLayerInput struct { _ struct{} `type:"structure"` @@ -8856,7 +8905,6 @@ func (s *CreateLayerInput) SetVolumeConfigurations(v []*VolumeConfiguration) *Cr } // Contains the response to a CreateLayer request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateLayerResult type CreateLayerOutput struct { _ struct{} `type:"structure"` @@ -8880,7 +8928,6 @@ func (s *CreateLayerOutput) SetLayerId(v string) *CreateLayerOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateStackRequest type CreateStackInput struct { _ struct{} `type:"structure"` @@ -8951,8 +8998,8 @@ type CreateStackInput struct { // You can specify one of the following. // // * A supported Linux operating system: An Amazon Linux version, such as - // Amazon Linux 2017.03, Amazon Linux 2016.09, Amazon Linux 2016.03, Amazon - // Linux 2015.09, or Amazon Linux 2015.03. + // Amazon Linux 2017.09, Amazon Linux 2017.03, Amazon Linux 2016.09, Amazon + // Linux 2016.03, Amazon Linux 2015.09, or Amazon Linux 2015.03. // // * A supported Ubuntu operating system, such as Ubuntu 16.04 LTS, Ubuntu // 14.04 LTS, or Ubuntu 12.04 LTS. @@ -9249,7 +9296,6 @@ func (s *CreateStackInput) SetVpcId(v string) *CreateStackInput { } // Contains the response to a CreateStack request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateStackResult type CreateStackOutput struct { _ struct{} `type:"structure"` @@ -9274,7 +9320,6 @@ func (s *CreateStackOutput) SetStackId(v string) *CreateStackOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateUserProfileRequest type CreateUserProfileInput struct { _ struct{} `type:"structure"` @@ -9346,7 +9391,6 @@ func (s *CreateUserProfileInput) SetSshUsername(v string) *CreateUserProfileInpu } // Contains the response to a CreateUserProfile request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/CreateUserProfileResult type CreateUserProfileOutput struct { _ struct{} `type:"structure"` @@ -9371,7 +9415,6 @@ func (s *CreateUserProfileOutput) SetIamUserArn(v string) *CreateUserProfileOutp } // Describes an app's data source. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DataSource type DataSource struct { _ struct{} `type:"structure"` @@ -9382,7 +9425,7 @@ type DataSource struct { DatabaseName *string `type:"string"` // The data source's type, AutoSelectOpsworksMysqlInstance, OpsworksMysqlInstance, - // or RdsDbInstance. + // RdsDbInstance, or None. Type *string `type:"string"` } @@ -9414,7 +9457,6 @@ func (s *DataSource) SetType(v string) *DataSource { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeleteAppRequest type DeleteAppInput struct { _ struct{} `type:"structure"` @@ -9453,7 +9495,6 @@ func (s *DeleteAppInput) SetAppId(v string) *DeleteAppInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeleteAppOutput type DeleteAppOutput struct { _ struct{} `type:"structure"` } @@ -9468,7 +9509,6 @@ func (s DeleteAppOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeleteInstanceRequest type DeleteInstanceInput struct { _ struct{} `type:"structure"` @@ -9525,7 +9565,6 @@ func (s *DeleteInstanceInput) SetInstanceId(v string) *DeleteInstanceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeleteInstanceOutput type DeleteInstanceOutput struct { _ struct{} `type:"structure"` } @@ -9540,7 +9579,6 @@ func (s DeleteInstanceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeleteLayerRequest type DeleteLayerInput struct { _ struct{} `type:"structure"` @@ -9579,7 +9617,6 @@ func (s *DeleteLayerInput) SetLayerId(v string) *DeleteLayerInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeleteLayerOutput type DeleteLayerOutput struct { _ struct{} `type:"structure"` } @@ -9594,7 +9631,6 @@ func (s DeleteLayerOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeleteStackRequest type DeleteStackInput struct { _ struct{} `type:"structure"` @@ -9633,7 +9669,6 @@ func (s *DeleteStackInput) SetStackId(v string) *DeleteStackInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeleteStackOutput type DeleteStackOutput struct { _ struct{} `type:"structure"` } @@ -9648,7 +9683,6 @@ func (s DeleteStackOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeleteUserProfileRequest type DeleteUserProfileInput struct { _ struct{} `type:"structure"` @@ -9687,7 +9721,6 @@ func (s *DeleteUserProfileInput) SetIamUserArn(v string) *DeleteUserProfileInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeleteUserProfileOutput type DeleteUserProfileOutput struct { _ struct{} `type:"structure"` } @@ -9703,7 +9736,6 @@ func (s DeleteUserProfileOutput) GoString() string { } // Describes a deployment of a stack or app. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/Deployment type Deployment struct { _ struct{} `type:"structure"` @@ -9840,7 +9872,6 @@ func (s *Deployment) SetStatus(v string) *Deployment { } // Used to specify a stack or deployment command. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeploymentCommand type DeploymentCommand struct { _ struct{} `type:"structure"` @@ -9942,7 +9973,6 @@ func (s *DeploymentCommand) SetName(v string) *DeploymentCommand { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeregisterEcsClusterRequest type DeregisterEcsClusterInput struct { _ struct{} `type:"structure"` @@ -9981,7 +10011,6 @@ func (s *DeregisterEcsClusterInput) SetEcsClusterArn(v string) *DeregisterEcsClu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeregisterEcsClusterOutput type DeregisterEcsClusterOutput struct { _ struct{} `type:"structure"` } @@ -9996,7 +10025,6 @@ func (s DeregisterEcsClusterOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeregisterElasticIpRequest type DeregisterElasticIpInput struct { _ struct{} `type:"structure"` @@ -10035,7 +10063,6 @@ func (s *DeregisterElasticIpInput) SetElasticIp(v string) *DeregisterElasticIpIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeregisterElasticIpOutput type DeregisterElasticIpOutput struct { _ struct{} `type:"structure"` } @@ -10050,7 +10077,6 @@ func (s DeregisterElasticIpOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeregisterInstanceRequest type DeregisterInstanceInput struct { _ struct{} `type:"structure"` @@ -10089,7 +10115,6 @@ func (s *DeregisterInstanceInput) SetInstanceId(v string) *DeregisterInstanceInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeregisterInstanceOutput type DeregisterInstanceOutput struct { _ struct{} `type:"structure"` } @@ -10104,7 +10129,6 @@ func (s DeregisterInstanceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeregisterRdsDbInstanceRequest type DeregisterRdsDbInstanceInput struct { _ struct{} `type:"structure"` @@ -10143,7 +10167,6 @@ func (s *DeregisterRdsDbInstanceInput) SetRdsDbInstanceArn(v string) *Deregister return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeregisterRdsDbInstanceOutput type DeregisterRdsDbInstanceOutput struct { _ struct{} `type:"structure"` } @@ -10158,7 +10181,6 @@ func (s DeregisterRdsDbInstanceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeregisterVolumeRequest type DeregisterVolumeInput struct { _ struct{} `type:"structure"` @@ -10199,7 +10221,6 @@ func (s *DeregisterVolumeInput) SetVolumeId(v string) *DeregisterVolumeInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DeregisterVolumeOutput type DeregisterVolumeOutput struct { _ struct{} `type:"structure"` } @@ -10214,7 +10235,6 @@ func (s DeregisterVolumeOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeAgentVersionsRequest type DescribeAgentVersionsInput struct { _ struct{} `type:"structure"` @@ -10248,7 +10268,6 @@ func (s *DescribeAgentVersionsInput) SetStackId(v string) *DescribeAgentVersions } // Contains the response to a DescribeAgentVersions request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeAgentVersionsResult type DescribeAgentVersionsOutput struct { _ struct{} `type:"structure"` @@ -10274,7 +10293,6 @@ func (s *DescribeAgentVersionsOutput) SetAgentVersions(v []*AgentVersion) *Descr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeAppsRequest type DescribeAppsInput struct { _ struct{} `type:"structure"` @@ -10311,7 +10329,6 @@ func (s *DescribeAppsInput) SetStackId(v string) *DescribeAppsInput { } // Contains the response to a DescribeApps request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeAppsResult type DescribeAppsOutput struct { _ struct{} `type:"structure"` @@ -10335,7 +10352,6 @@ func (s *DescribeAppsOutput) SetApps(v []*App) *DescribeAppsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeCommandsRequest type DescribeCommandsInput struct { _ struct{} `type:"structure"` @@ -10382,7 +10398,6 @@ func (s *DescribeCommandsInput) SetInstanceId(v string) *DescribeCommandsInput { } // Contains the response to a DescribeCommands request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeCommandsResult type DescribeCommandsOutput struct { _ struct{} `type:"structure"` @@ -10406,21 +10421,20 @@ func (s *DescribeCommandsOutput) SetCommands(v []*Command) *DescribeCommandsOutp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeDeploymentsRequest type DescribeDeploymentsInput struct { _ struct{} `type:"structure"` - // The app ID. If you include this parameter, DescribeDeployments returns a - // description of the commands associated with the specified app. + // The app ID. If you include this parameter, the command returns a description + // of the commands associated with the specified app. AppId *string `type:"string"` // An array of deployment IDs to be described. If you include this parameter, - // DescribeDeployments returns a description of the specified deployments. Otherwise, + // the command returns a description of the specified deployments. Otherwise, // it returns a description of every deployment. DeploymentIds []*string `type:"list"` - // The stack ID. If you include this parameter, DescribeDeployments returns - // a description of the commands associated with the specified stack. + // The stack ID. If you include this parameter, the command returns a description + // of the commands associated with the specified stack. StackId *string `type:"string"` } @@ -10453,7 +10467,6 @@ func (s *DescribeDeploymentsInput) SetStackId(v string) *DescribeDeploymentsInpu } // Contains the response to a DescribeDeployments request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeDeploymentsResult type DescribeDeploymentsOutput struct { _ struct{} `type:"structure"` @@ -10477,7 +10490,6 @@ func (s *DescribeDeploymentsOutput) SetDeployments(v []*Deployment) *DescribeDep return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeEcsClustersRequest type DescribeEcsClustersInput struct { _ struct{} `type:"structure"` @@ -10538,7 +10550,6 @@ func (s *DescribeEcsClustersInput) SetStackId(v string) *DescribeEcsClustersInpu } // Contains the response to a DescribeEcsClusters request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeEcsClustersResult type DescribeEcsClustersOutput struct { _ struct{} `type:"structure"` @@ -10574,7 +10585,6 @@ func (s *DescribeEcsClustersOutput) SetNextToken(v string) *DescribeEcsClustersO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeElasticIpsRequest type DescribeElasticIpsInput struct { _ struct{} `type:"structure"` @@ -10621,7 +10631,6 @@ func (s *DescribeElasticIpsInput) SetStackId(v string) *DescribeElasticIpsInput } // Contains the response to a DescribeElasticIps request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeElasticIpsResult type DescribeElasticIpsOutput struct { _ struct{} `type:"structure"` @@ -10645,7 +10654,6 @@ func (s *DescribeElasticIpsOutput) SetElasticIps(v []*ElasticIp) *DescribeElasti return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeElasticLoadBalancersRequest type DescribeElasticLoadBalancersInput struct { _ struct{} `type:"structure"` @@ -10680,7 +10688,6 @@ func (s *DescribeElasticLoadBalancersInput) SetStackId(v string) *DescribeElasti } // Contains the response to a DescribeElasticLoadBalancers request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeElasticLoadBalancersResult type DescribeElasticLoadBalancersOutput struct { _ struct{} `type:"structure"` @@ -10705,7 +10712,6 @@ func (s *DescribeElasticLoadBalancersOutput) SetElasticLoadBalancers(v []*Elasti return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeInstancesRequest type DescribeInstancesInput struct { _ struct{} `type:"structure"` @@ -10752,7 +10758,6 @@ func (s *DescribeInstancesInput) SetStackId(v string) *DescribeInstancesInput { } // Contains the response to a DescribeInstances request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeInstancesResult type DescribeInstancesOutput struct { _ struct{} `type:"structure"` @@ -10776,7 +10781,6 @@ func (s *DescribeInstancesOutput) SetInstances(v []*Instance) *DescribeInstances return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeLayersRequest type DescribeLayersInput struct { _ struct{} `type:"structure"` @@ -10812,7 +10816,6 @@ func (s *DescribeLayersInput) SetStackId(v string) *DescribeLayersInput { } // Contains the response to a DescribeLayers request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeLayersResult type DescribeLayersOutput struct { _ struct{} `type:"structure"` @@ -10836,7 +10839,6 @@ func (s *DescribeLayersOutput) SetLayers(v []*Layer) *DescribeLayersOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeLoadBasedAutoScalingRequest type DescribeLoadBasedAutoScalingInput struct { _ struct{} `type:"structure"` @@ -10876,7 +10878,6 @@ func (s *DescribeLoadBasedAutoScalingInput) SetLayerIds(v []*string) *DescribeLo } // Contains the response to a DescribeLoadBasedAutoScaling request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeLoadBasedAutoScalingResult type DescribeLoadBasedAutoScalingOutput struct { _ struct{} `type:"structure"` @@ -10901,7 +10902,6 @@ func (s *DescribeLoadBasedAutoScalingOutput) SetLoadBasedAutoScalingConfiguratio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeMyUserProfileInput type DescribeMyUserProfileInput struct { _ struct{} `type:"structure"` } @@ -10917,7 +10917,6 @@ func (s DescribeMyUserProfileInput) GoString() string { } // Contains the response to a DescribeMyUserProfile request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeMyUserProfileResult type DescribeMyUserProfileOutput struct { _ struct{} `type:"structure"` @@ -10941,7 +10940,43 @@ func (s *DescribeMyUserProfileOutput) SetUserProfile(v *SelfUserProfile) *Descri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribePermissionsRequest +type DescribeOperatingSystemsInput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DescribeOperatingSystemsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeOperatingSystemsInput) GoString() string { + return s.String() +} + +// The response to a DescribeOperatingSystems request. +type DescribeOperatingSystemsOutput struct { + _ struct{} `type:"structure"` + + OperatingSystems []*OperatingSystem `type:"list"` +} + +// String returns the string representation +func (s DescribeOperatingSystemsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeOperatingSystemsOutput) GoString() string { + return s.String() +} + +// SetOperatingSystems sets the OperatingSystems field's value. +func (s *DescribeOperatingSystemsOutput) SetOperatingSystems(v []*OperatingSystem) *DescribeOperatingSystemsOutput { + s.OperatingSystems = v + return s +} + type DescribePermissionsInput struct { _ struct{} `type:"structure"` @@ -10976,7 +11011,6 @@ func (s *DescribePermissionsInput) SetStackId(v string) *DescribePermissionsInpu } // Contains the response to a DescribePermissions request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribePermissionsResult type DescribePermissionsOutput struct { _ struct{} `type:"structure"` @@ -11010,7 +11044,6 @@ func (s *DescribePermissionsOutput) SetPermissions(v []*Permission) *DescribePer return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeRaidArraysRequest type DescribeRaidArraysInput struct { _ struct{} `type:"structure"` @@ -11056,7 +11089,6 @@ func (s *DescribeRaidArraysInput) SetStackId(v string) *DescribeRaidArraysInput } // Contains the response to a DescribeRaidArrays request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeRaidArraysResult type DescribeRaidArraysOutput struct { _ struct{} `type:"structure"` @@ -11080,7 +11112,6 @@ func (s *DescribeRaidArraysOutput) SetRaidArrays(v []*RaidArray) *DescribeRaidAr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeRdsDbInstancesRequest type DescribeRdsDbInstancesInput struct { _ struct{} `type:"structure"` @@ -11130,7 +11161,6 @@ func (s *DescribeRdsDbInstancesInput) SetStackId(v string) *DescribeRdsDbInstanc } // Contains the response to a DescribeRdsDbInstances request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeRdsDbInstancesResult type DescribeRdsDbInstancesOutput struct { _ struct{} `type:"structure"` @@ -11154,7 +11184,6 @@ func (s *DescribeRdsDbInstancesOutput) SetRdsDbInstances(v []*RdsDbInstance) *De return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeServiceErrorsRequest type DescribeServiceErrorsInput struct { _ struct{} `type:"structure"` @@ -11201,7 +11230,6 @@ func (s *DescribeServiceErrorsInput) SetStackId(v string) *DescribeServiceErrors } // Contains the response to a DescribeServiceErrors request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeServiceErrorsResult type DescribeServiceErrorsOutput struct { _ struct{} `type:"structure"` @@ -11225,7 +11253,6 @@ func (s *DescribeServiceErrorsOutput) SetServiceErrors(v []*ServiceError) *Descr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeStackProvisioningParametersRequest type DescribeStackProvisioningParametersInput struct { _ struct{} `type:"structure"` @@ -11265,7 +11292,6 @@ func (s *DescribeStackProvisioningParametersInput) SetStackId(v string) *Describ } // Contains the response to a DescribeStackProvisioningParameters request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeStackProvisioningParametersResult type DescribeStackProvisioningParametersOutput struct { _ struct{} `type:"structure"` @@ -11298,7 +11324,6 @@ func (s *DescribeStackProvisioningParametersOutput) SetParameters(v map[string]* return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeStackSummaryRequest type DescribeStackSummaryInput struct { _ struct{} `type:"structure"` @@ -11338,7 +11363,6 @@ func (s *DescribeStackSummaryInput) SetStackId(v string) *DescribeStackSummaryIn } // Contains the response to a DescribeStackSummary request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeStackSummaryResult type DescribeStackSummaryOutput struct { _ struct{} `type:"structure"` @@ -11362,7 +11386,6 @@ func (s *DescribeStackSummaryOutput) SetStackSummary(v *StackSummary) *DescribeS return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeStacksRequest type DescribeStacksInput struct { _ struct{} `type:"structure"` @@ -11388,7 +11411,6 @@ func (s *DescribeStacksInput) SetStackIds(v []*string) *DescribeStacksInput { } // Contains the response to a DescribeStacks request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeStacksResult type DescribeStacksOutput struct { _ struct{} `type:"structure"` @@ -11412,7 +11434,6 @@ func (s *DescribeStacksOutput) SetStacks(v []*Stack) *DescribeStacksOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeTimeBasedAutoScalingRequest type DescribeTimeBasedAutoScalingInput struct { _ struct{} `type:"structure"` @@ -11452,7 +11473,6 @@ func (s *DescribeTimeBasedAutoScalingInput) SetInstanceIds(v []*string) *Describ } // Contains the response to a DescribeTimeBasedAutoScaling request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeTimeBasedAutoScalingResult type DescribeTimeBasedAutoScalingOutput struct { _ struct{} `type:"structure"` @@ -11477,7 +11497,6 @@ func (s *DescribeTimeBasedAutoScalingOutput) SetTimeBasedAutoScalingConfiguratio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeUserProfilesRequest type DescribeUserProfilesInput struct { _ struct{} `type:"structure"` @@ -11502,7 +11521,6 @@ func (s *DescribeUserProfilesInput) SetIamUserArns(v []*string) *DescribeUserPro } // Contains the response to a DescribeUserProfiles request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeUserProfilesResult type DescribeUserProfilesOutput struct { _ struct{} `type:"structure"` @@ -11526,7 +11544,6 @@ func (s *DescribeUserProfilesOutput) SetUserProfiles(v []*UserProfile) *Describe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeVolumesRequest type DescribeVolumesInput struct { _ struct{} `type:"structure"` @@ -11582,7 +11599,6 @@ func (s *DescribeVolumesInput) SetVolumeIds(v []*string) *DescribeVolumesInput { } // Contains the response to a DescribeVolumes request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DescribeVolumesResult type DescribeVolumesOutput struct { _ struct{} `type:"structure"` @@ -11606,7 +11622,6 @@ func (s *DescribeVolumesOutput) SetVolumes(v []*Volume) *DescribeVolumesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DetachElasticLoadBalancerRequest type DetachElasticLoadBalancerInput struct { _ struct{} `type:"structure"` @@ -11660,7 +11675,6 @@ func (s *DetachElasticLoadBalancerInput) SetLayerId(v string) *DetachElasticLoad return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DetachElasticLoadBalancerOutput type DetachElasticLoadBalancerOutput struct { _ struct{} `type:"structure"` } @@ -11675,7 +11689,6 @@ func (s DetachElasticLoadBalancerOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DisassociateElasticIpRequest type DisassociateElasticIpInput struct { _ struct{} `type:"structure"` @@ -11714,7 +11727,6 @@ func (s *DisassociateElasticIpInput) SetElasticIp(v string) *DisassociateElastic return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/DisassociateElasticIpOutput type DisassociateElasticIpOutput struct { _ struct{} `type:"structure"` } @@ -11732,7 +11744,6 @@ func (s DisassociateElasticIpOutput) GoString() string { // Describes an Amazon EBS volume. This data type maps directly to the Amazon // EC2 EbsBlockDevice (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_EbsBlockDevice.html) // data type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/EbsBlockDevice type EbsBlockDevice struct { _ struct{} `type:"structure"` @@ -11750,7 +11761,13 @@ type EbsBlockDevice struct { VolumeSize *int64 `type:"integer"` // The volume type. gp2 for General Purpose (SSD) volumes, io1 for Provisioned - // IOPS (SSD) volumes, and standard for Magnetic volumes. + // IOPS (SSD) volumes, st1 for Throughput Optimized hard disk drives (HDD), + // sc1 for Cold HDD,and standard for Magnetic volumes. + // + // If you specify the io1 volume type, you must also specify a value for the + // Iops attribute. The maximum ratio of provisioned IOPS to requested volume + // size (in GiB) is 50:1. AWS uses the default volume size (in GiB) specified + // in the AMI attributes to set IOPS to 50 x (volume size). VolumeType *string `type:"string" enum:"VolumeType"` } @@ -11795,7 +11812,6 @@ func (s *EbsBlockDevice) SetVolumeType(v string) *EbsBlockDevice { } // Describes a registered Amazon ECS cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/EcsCluster type EcsCluster struct { _ struct{} `type:"structure"` @@ -11847,7 +11863,6 @@ func (s *EcsCluster) SetStackId(v string) *EcsCluster { } // Describes an Elastic IP address. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/ElasticIp type ElasticIp struct { _ struct{} `type:"structure"` @@ -11908,7 +11923,6 @@ func (s *ElasticIp) SetRegion(v string) *ElasticIp { } // Describes an Elastic Load Balancing instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/ElasticLoadBalancer type ElasticLoadBalancer struct { _ struct{} `type:"structure"` @@ -12006,7 +12020,6 @@ func (s *ElasticLoadBalancer) SetVpcId(v string) *ElasticLoadBalancer { } // Represents an app's environment variable. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/EnvironmentVariable type EnvironmentVariable struct { _ struct{} `type:"structure"` @@ -12076,7 +12089,6 @@ func (s *EnvironmentVariable) SetValue(v string) *EnvironmentVariable { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/GetHostnameSuggestionRequest type GetHostnameSuggestionInput struct { _ struct{} `type:"structure"` @@ -12116,7 +12128,6 @@ func (s *GetHostnameSuggestionInput) SetLayerId(v string) *GetHostnameSuggestion } // Contains the response to a GetHostnameSuggestion request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/GetHostnameSuggestionResult type GetHostnameSuggestionOutput struct { _ struct{} `type:"structure"` @@ -12149,7 +12160,6 @@ func (s *GetHostnameSuggestionOutput) SetLayerId(v string) *GetHostnameSuggestio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/GrantAccessRequest type GrantAccessInput struct { _ struct{} `type:"structure"` @@ -12204,7 +12214,6 @@ func (s *GrantAccessInput) SetValidForInMinutes(v int64) *GrantAccessInput { } // Contains the response to a GrantAccess request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/GrantAccessResult type GrantAccessOutput struct { _ struct{} `type:"structure"` @@ -12230,7 +12239,6 @@ func (s *GrantAccessOutput) SetTemporaryCredential(v *TemporaryCredential) *Gran } // Describes an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/Instance type Instance struct { _ struct{} `type:"structure"` @@ -12658,7 +12666,6 @@ func (s *Instance) SetVirtualizationType(v string) *Instance { // Contains a description of an Amazon EC2 instance from the Amazon EC2 metadata // service. For more information, see Instance Metadata and User Data (http://docs.aws.amazon.com/sdkfornet/latest/apidocs/Index.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/InstanceIdentity type InstanceIdentity struct { _ struct{} `type:"structure"` @@ -12692,7 +12699,6 @@ func (s *InstanceIdentity) SetSignature(v string) *InstanceIdentity { } // Describes how many instances a stack has for each status. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/InstancesCount type InstancesCount struct { _ struct{} `type:"structure"` @@ -12738,6 +12744,8 @@ type InstancesCount struct { // The number of instances with start_failed status. StartFailed *int64 `type:"integer"` + StopFailed *int64 `type:"integer"` + // The number of instances with stopped status. Stopped *int64 `type:"integer"` @@ -12848,6 +12856,12 @@ func (s *InstancesCount) SetStartFailed(v int64) *InstancesCount { return s } +// SetStopFailed sets the StopFailed field's value. +func (s *InstancesCount) SetStopFailed(v int64) *InstancesCount { + s.StopFailed = &v + return s +} + // SetStopped sets the Stopped field's value. func (s *InstancesCount) SetStopped(v int64) *InstancesCount { s.Stopped = &v @@ -12879,7 +12893,6 @@ func (s *InstancesCount) SetUnassigning(v int64) *InstancesCount { } // Describes a layer. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/Layer type Layer struct { _ struct{} `type:"structure"` @@ -13130,7 +13143,6 @@ func (s *Layer) SetVolumeConfigurations(v []*VolumeConfiguration) *Layer { } // Specifies the lifecycle event configuration -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/LifecycleEventConfiguration type LifecycleEventConfiguration struct { _ struct{} `type:"structure"` @@ -13154,7 +13166,6 @@ func (s *LifecycleEventConfiguration) SetShutdown(v *ShutdownEventConfiguration) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/ListTagsRequest type ListTagsInput struct { _ struct{} `type:"structure"` @@ -13214,7 +13225,6 @@ func (s *ListTagsInput) SetResourceArn(v string) *ListTagsInput { } // Contains the response to a ListTags request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/ListTagsResult type ListTagsOutput struct { _ struct{} `type:"structure"` @@ -13252,7 +13262,6 @@ func (s *ListTagsOutput) SetTags(v map[string]*string) *ListTagsOutput { } // Describes a layer's load-based auto scaling configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/LoadBasedAutoScalingConfiguration type LoadBasedAutoScalingConfiguration struct { _ struct{} `type:"structure"` @@ -13305,8 +13314,123 @@ func (s *LoadBasedAutoScalingConfiguration) SetUpScaling(v *AutoScalingThreshold return s } +// Describes supported operating systems in AWS OpsWorks Stacks. +type OperatingSystem struct { + _ struct{} `type:"structure"` + + // Supported configuration manager name and versions for an AWS OpsWorks Stacks + // operating system. + ConfigurationManagers []*OperatingSystemConfigurationManager `type:"list"` + + // The ID of a supported operating system, such as Amazon Linux 2017.09. + Id *string `type:"string"` + + // The name of the operating system, such as Amazon Linux 2017.09. + Name *string `type:"string"` + + // A short name for the operating system manufacturer. + ReportedName *string `type:"string"` + + // The version of the operating system, including the release and edition, if + // applicable. + ReportedVersion *string `type:"string"` + + // Indicates that an operating system is not supported for new instances. + Supported *bool `type:"boolean"` + + // The type of a supported operating system, either Linux or Windows. + Type *string `type:"string"` +} + +// String returns the string representation +func (s OperatingSystem) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s OperatingSystem) GoString() string { + return s.String() +} + +// SetConfigurationManagers sets the ConfigurationManagers field's value. +func (s *OperatingSystem) SetConfigurationManagers(v []*OperatingSystemConfigurationManager) *OperatingSystem { + s.ConfigurationManagers = v + return s +} + +// SetId sets the Id field's value. +func (s *OperatingSystem) SetId(v string) *OperatingSystem { + s.Id = &v + return s +} + +// SetName sets the Name field's value. +func (s *OperatingSystem) SetName(v string) *OperatingSystem { + s.Name = &v + return s +} + +// SetReportedName sets the ReportedName field's value. +func (s *OperatingSystem) SetReportedName(v string) *OperatingSystem { + s.ReportedName = &v + return s +} + +// SetReportedVersion sets the ReportedVersion field's value. +func (s *OperatingSystem) SetReportedVersion(v string) *OperatingSystem { + s.ReportedVersion = &v + return s +} + +// SetSupported sets the Supported field's value. +func (s *OperatingSystem) SetSupported(v bool) *OperatingSystem { + s.Supported = &v + return s +} + +// SetType sets the Type field's value. +func (s *OperatingSystem) SetType(v string) *OperatingSystem { + s.Type = &v + return s +} + +// A block that contains information about the configuration manager (Chef) +// and the versions of the configuration manager that are supported for an operating +// system. +type OperatingSystemConfigurationManager struct { + _ struct{} `type:"structure"` + + // The name of the configuration manager, which is Chef. + Name *string `type:"string"` + + // The versions of the configuration manager that are supported by an operating + // system. + Version *string `type:"string"` +} + +// String returns the string representation +func (s OperatingSystemConfigurationManager) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s OperatingSystemConfigurationManager) GoString() string { + return s.String() +} + +// SetName sets the Name field's value. +func (s *OperatingSystemConfigurationManager) SetName(v string) *OperatingSystemConfigurationManager { + s.Name = &v + return s +} + +// SetVersion sets the Version field's value. +func (s *OperatingSystemConfigurationManager) SetVersion(v string) *OperatingSystemConfigurationManager { + s.Version = &v + return s +} + // Describes stack or user permissions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/Permission type Permission struct { _ struct{} `type:"structure"` @@ -13381,7 +13505,6 @@ func (s *Permission) SetStackId(v string) *Permission { } // Describes an instance's RAID array. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/RaidArray type RaidArray struct { _ struct{} `type:"structure"` @@ -13515,7 +13638,6 @@ func (s *RaidArray) SetVolumeType(v string) *RaidArray { } // Describes an Amazon RDS instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/RdsDbInstance type RdsDbInstance struct { _ struct{} `type:"structure"` @@ -13614,7 +13736,6 @@ func (s *RdsDbInstance) SetStackId(v string) *RdsDbInstance { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/RebootInstanceRequest type RebootInstanceInput struct { _ struct{} `type:"structure"` @@ -13653,7 +13774,6 @@ func (s *RebootInstanceInput) SetInstanceId(v string) *RebootInstanceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/RebootInstanceOutput type RebootInstanceOutput struct { _ struct{} `type:"structure"` } @@ -13680,7 +13800,6 @@ func (s RebootInstanceOutput) GoString() string { // followed by two colons and the recipe name, which is the recipe's file name // without the .rb extension. For example: phpapp2::dbsetup specifies the dbsetup.rb // recipe in the repository's phpapp2 folder. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/Recipes type Recipes struct { _ struct{} `type:"structure"` @@ -13740,7 +13859,6 @@ func (s *Recipes) SetUndeploy(v []*string) *Recipes { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/RegisterEcsClusterRequest type RegisterEcsClusterInput struct { _ struct{} `type:"structure"` @@ -13794,7 +13912,6 @@ func (s *RegisterEcsClusterInput) SetStackId(v string) *RegisterEcsClusterInput } // Contains the response to a RegisterEcsCluster request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/RegisterEcsClusterResult type RegisterEcsClusterOutput struct { _ struct{} `type:"structure"` @@ -13818,7 +13935,6 @@ func (s *RegisterEcsClusterOutput) SetEcsClusterArn(v string) *RegisterEcsCluste return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/RegisterElasticIpRequest type RegisterElasticIpInput struct { _ struct{} `type:"structure"` @@ -13872,7 +13988,6 @@ func (s *RegisterElasticIpInput) SetStackId(v string) *RegisterElasticIpInput { } // Contains the response to a RegisterElasticIp request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/RegisterElasticIpResult type RegisterElasticIpOutput struct { _ struct{} `type:"structure"` @@ -13896,7 +14011,6 @@ func (s *RegisterElasticIpOutput) SetElasticIp(v string) *RegisterElasticIpOutpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/RegisterInstanceRequest type RegisterInstanceInput struct { _ struct{} `type:"structure"` @@ -13991,7 +14105,6 @@ func (s *RegisterInstanceInput) SetStackId(v string) *RegisterInstanceInput { } // Contains the response to a RegisterInstanceResult request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/RegisterInstanceResult type RegisterInstanceOutput struct { _ struct{} `type:"structure"` @@ -14015,7 +14128,6 @@ func (s *RegisterInstanceOutput) SetInstanceId(v string) *RegisterInstanceOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/RegisterRdsDbInstanceRequest type RegisterRdsDbInstanceInput struct { _ struct{} `type:"structure"` @@ -14096,7 +14208,6 @@ func (s *RegisterRdsDbInstanceInput) SetStackId(v string) *RegisterRdsDbInstance return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/RegisterRdsDbInstanceOutput type RegisterRdsDbInstanceOutput struct { _ struct{} `type:"structure"` } @@ -14111,7 +14222,6 @@ func (s RegisterRdsDbInstanceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/RegisterVolumeRequest type RegisterVolumeInput struct { _ struct{} `type:"structure"` @@ -14160,7 +14270,6 @@ func (s *RegisterVolumeInput) SetStackId(v string) *RegisterVolumeInput { } // Contains the response to a RegisterVolume request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/RegisterVolumeResult type RegisterVolumeOutput struct { _ struct{} `type:"structure"` @@ -14185,7 +14294,6 @@ func (s *RegisterVolumeOutput) SetVolumeId(v string) *RegisterVolumeOutput { } // A registered instance's reported operating system. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/ReportedOs type ReportedOs struct { _ struct{} `type:"structure"` @@ -14228,7 +14336,6 @@ func (s *ReportedOs) SetVersion(v string) *ReportedOs { } // Describes a user's SSH information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/SelfUserProfile type SelfUserProfile struct { _ struct{} `type:"structure"` @@ -14280,7 +14387,6 @@ func (s *SelfUserProfile) SetSshUsername(v string) *SelfUserProfile { } // Describes an AWS OpsWorks Stacks service error. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/ServiceError type ServiceError struct { _ struct{} `type:"structure"` @@ -14349,7 +14455,6 @@ func (s *ServiceError) SetType(v string) *ServiceError { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/SetLoadBasedAutoScalingRequest type SetLoadBasedAutoScalingInput struct { _ struct{} `type:"structure"` @@ -14429,7 +14534,6 @@ func (s *SetLoadBasedAutoScalingInput) SetUpScaling(v *AutoScalingThresholds) *S return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/SetLoadBasedAutoScalingOutput type SetLoadBasedAutoScalingOutput struct { _ struct{} `type:"structure"` } @@ -14444,7 +14548,6 @@ func (s SetLoadBasedAutoScalingOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/SetPermissionRequest type SetPermissionInput struct { _ struct{} `type:"structure"` @@ -14538,7 +14641,6 @@ func (s *SetPermissionInput) SetStackId(v string) *SetPermissionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/SetPermissionOutput type SetPermissionOutput struct { _ struct{} `type:"structure"` } @@ -14553,7 +14655,6 @@ func (s SetPermissionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/SetTimeBasedAutoScalingRequest type SetTimeBasedAutoScalingInput struct { _ struct{} `type:"structure"` @@ -14601,7 +14702,6 @@ func (s *SetTimeBasedAutoScalingInput) SetInstanceId(v string) *SetTimeBasedAuto return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/SetTimeBasedAutoScalingOutput type SetTimeBasedAutoScalingOutput struct { _ struct{} `type:"structure"` } @@ -14617,7 +14717,6 @@ func (s SetTimeBasedAutoScalingOutput) GoString() string { } // The Shutdown event configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/ShutdownEventConfiguration type ShutdownEventConfiguration struct { _ struct{} `type:"structure"` @@ -14655,7 +14754,6 @@ func (s *ShutdownEventConfiguration) SetExecutionTimeout(v int64) *ShutdownEvent // Contains the information required to retrieve an app or cookbook from a repository. // For more information, see Creating Apps (http://docs.aws.amazon.com/opsworks/latest/userguide/workingapps-creating.html) // or Custom Recipes and Cookbooks (http://docs.aws.amazon.com/opsworks/latest/userguide/workingcookbook.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/Source type Source struct { _ struct{} `type:"structure"` @@ -14748,7 +14846,6 @@ func (s *Source) SetUsername(v string) *Source { } // Describes an app's SSL configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/SslConfiguration type SslConfiguration struct { _ struct{} `type:"structure"` @@ -14812,7 +14909,6 @@ func (s *SslConfiguration) SetPrivateKey(v string) *SslConfiguration { } // Describes a stack. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/Stack type Stack struct { _ struct{} `type:"structure"` @@ -15046,7 +15142,6 @@ func (s *Stack) SetVpcId(v string) *Stack { } // Describes the configuration manager. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/StackConfigurationManager type StackConfigurationManager struct { _ struct{} `type:"structure"` @@ -15082,7 +15177,6 @@ func (s *StackConfigurationManager) SetVersion(v string) *StackConfigurationMana } // Summarizes the number of layers, instances, and apps in a stack. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/StackSummary type StackSummary struct { _ struct{} `type:"structure"` @@ -15151,7 +15245,6 @@ func (s *StackSummary) SetStackId(v string) *StackSummary { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/StartInstanceRequest type StartInstanceInput struct { _ struct{} `type:"structure"` @@ -15190,7 +15283,6 @@ func (s *StartInstanceInput) SetInstanceId(v string) *StartInstanceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/StartInstanceOutput type StartInstanceOutput struct { _ struct{} `type:"structure"` } @@ -15205,7 +15297,6 @@ func (s StartInstanceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/StartStackRequest type StartStackInput struct { _ struct{} `type:"structure"` @@ -15244,7 +15335,6 @@ func (s *StartStackInput) SetStackId(v string) *StartStackInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/StartStackOutput type StartStackOutput struct { _ struct{} `type:"structure"` } @@ -15259,10 +15349,11 @@ func (s StartStackOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/StopInstanceRequest type StopInstanceInput struct { _ struct{} `type:"structure"` + Force *bool `type:"boolean"` + // The instance ID. // // InstanceId is a required field @@ -15292,13 +15383,18 @@ func (s *StopInstanceInput) Validate() error { return nil } +// SetForce sets the Force field's value. +func (s *StopInstanceInput) SetForce(v bool) *StopInstanceInput { + s.Force = &v + return s +} + // SetInstanceId sets the InstanceId field's value. func (s *StopInstanceInput) SetInstanceId(v string) *StopInstanceInput { s.InstanceId = &v return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/StopInstanceOutput type StopInstanceOutput struct { _ struct{} `type:"structure"` } @@ -15313,7 +15409,6 @@ func (s StopInstanceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/StopStackRequest type StopStackInput struct { _ struct{} `type:"structure"` @@ -15352,7 +15447,6 @@ func (s *StopStackInput) SetStackId(v string) *StopStackInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/StopStackOutput type StopStackOutput struct { _ struct{} `type:"structure"` } @@ -15367,7 +15461,6 @@ func (s StopStackOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/TagResourceRequest type TagResourceInput struct { _ struct{} `type:"structure"` @@ -15436,7 +15529,6 @@ func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/TagResourceOutput type TagResourceOutput struct { _ struct{} `type:"structure"` } @@ -15453,7 +15545,6 @@ func (s TagResourceOutput) GoString() string { // Contains the data needed by RDP clients such as the Microsoft Remote Desktop // Connection to log in to the instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/TemporaryCredential type TemporaryCredential struct { _ struct{} `type:"structure"` @@ -15508,7 +15599,6 @@ func (s *TemporaryCredential) SetValidForInMinutes(v int64) *TemporaryCredential } // Describes an instance's time-based auto scaling configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/TimeBasedAutoScalingConfiguration type TimeBasedAutoScalingConfiguration struct { _ struct{} `type:"structure"` @@ -15541,7 +15631,6 @@ func (s *TimeBasedAutoScalingConfiguration) SetInstanceId(v string) *TimeBasedAu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UnassignInstanceRequest type UnassignInstanceInput struct { _ struct{} `type:"structure"` @@ -15580,7 +15669,6 @@ func (s *UnassignInstanceInput) SetInstanceId(v string) *UnassignInstanceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UnassignInstanceOutput type UnassignInstanceOutput struct { _ struct{} `type:"structure"` } @@ -15595,7 +15683,6 @@ func (s UnassignInstanceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UnassignVolumeRequest type UnassignVolumeInput struct { _ struct{} `type:"structure"` @@ -15634,7 +15721,6 @@ func (s *UnassignVolumeInput) SetVolumeId(v string) *UnassignVolumeInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UnassignVolumeOutput type UnassignVolumeOutput struct { _ struct{} `type:"structure"` } @@ -15649,7 +15735,6 @@ func (s UnassignVolumeOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UntagResourceRequest type UntagResourceInput struct { _ struct{} `type:"structure"` @@ -15702,7 +15787,6 @@ func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UntagResourceOutput type UntagResourceOutput struct { _ struct{} `type:"structure"` } @@ -15717,7 +15801,6 @@ func (s UntagResourceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UpdateAppRequest type UpdateAppInput struct { _ struct{} `type:"structure"` @@ -15875,7 +15958,6 @@ func (s *UpdateAppInput) SetType(v string) *UpdateAppInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UpdateAppOutput type UpdateAppOutput struct { _ struct{} `type:"structure"` } @@ -15890,7 +15972,6 @@ func (s UpdateAppOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UpdateElasticIpRequest type UpdateElasticIpInput struct { _ struct{} `type:"structure"` @@ -15938,7 +16019,6 @@ func (s *UpdateElasticIpInput) SetName(v string) *UpdateElasticIpInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UpdateElasticIpOutput type UpdateElasticIpOutput struct { _ struct{} `type:"structure"` } @@ -15953,7 +16033,6 @@ func (s UpdateElasticIpOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UpdateInstanceRequest type UpdateInstanceInput struct { _ struct{} `type:"structure"` @@ -16024,8 +16103,8 @@ type UpdateInstanceInput struct { // You cannot update an instance that is using a custom AMI. // // * A supported Linux operating system: An Amazon Linux version, such as - // Amazon Linux 2017.03, Amazon Linux 2016.09, Amazon Linux 2016.03, Amazon - // Linux 2015.09, or Amazon Linux 2015.03. + // Amazon Linux 2017.09, Amazon Linux 2017.03, Amazon Linux 2016.09, Amazon + // Linux 2016.03, Amazon Linux 2015.09, or Amazon Linux 2015.03. // // * A supported Ubuntu operating system, such as Ubuntu 16.04 LTS, Ubuntu // 14.04 LTS, or Ubuntu 12.04 LTS. @@ -16152,7 +16231,6 @@ func (s *UpdateInstanceInput) SetSshKeyName(v string) *UpdateInstanceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UpdateInstanceOutput type UpdateInstanceOutput struct { _ struct{} `type:"structure"` } @@ -16167,7 +16245,6 @@ func (s UpdateInstanceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UpdateLayerRequest type UpdateLayerInput struct { _ struct{} `type:"structure"` @@ -16381,7 +16458,6 @@ func (s *UpdateLayerInput) SetVolumeConfigurations(v []*VolumeConfiguration) *Up return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UpdateLayerOutput type UpdateLayerOutput struct { _ struct{} `type:"structure"` } @@ -16396,7 +16472,6 @@ func (s UpdateLayerOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UpdateMyUserProfileRequest type UpdateMyUserProfileInput struct { _ struct{} `type:"structure"` @@ -16420,7 +16495,6 @@ func (s *UpdateMyUserProfileInput) SetSshPublicKey(v string) *UpdateMyUserProfil return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UpdateMyUserProfileOutput type UpdateMyUserProfileOutput struct { _ struct{} `type:"structure"` } @@ -16435,7 +16509,6 @@ func (s UpdateMyUserProfileOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UpdateRdsDbInstanceRequest type UpdateRdsDbInstanceInput struct { _ struct{} `type:"structure"` @@ -16492,7 +16565,6 @@ func (s *UpdateRdsDbInstanceInput) SetRdsDbInstanceArn(v string) *UpdateRdsDbIns return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UpdateRdsDbInstanceOutput type UpdateRdsDbInstanceOutput struct { _ struct{} `type:"structure"` } @@ -16507,7 +16579,6 @@ func (s UpdateRdsDbInstanceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UpdateStackRequest type UpdateStackInput struct { _ struct{} `type:"structure"` @@ -16574,8 +16645,8 @@ type UpdateStackInput struct { // The stack's operating system, which must be set to one of the following: // // * A supported Linux operating system: An Amazon Linux version, such as - // Amazon Linux 2017.03, Amazon Linux 2016.09, Amazon Linux 2016.03, Amazon - // Linux 2015.09, or Amazon Linux 2015.03. + // Amazon Linux 2017.09, Amazon Linux 2017.03, Amazon Linux 2016.09, Amazon + // Linux 2016.03, Amazon Linux 2015.09, or Amazon Linux 2015.03. // // * A supported Ubuntu operating system, such as Ubuntu 16.04 LTS, Ubuntu // 14.04 LTS, or Ubuntu 12.04 LTS. @@ -16819,7 +16890,6 @@ func (s *UpdateStackInput) SetUseOpsworksSecurityGroups(v bool) *UpdateStackInpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UpdateStackOutput type UpdateStackOutput struct { _ struct{} `type:"structure"` } @@ -16834,7 +16904,6 @@ func (s UpdateStackOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UpdateUserProfileRequest type UpdateUserProfileInput struct { _ struct{} `type:"structure"` @@ -16905,7 +16974,6 @@ func (s *UpdateUserProfileInput) SetSshUsername(v string) *UpdateUserProfileInpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UpdateUserProfileOutput type UpdateUserProfileOutput struct { _ struct{} `type:"structure"` } @@ -16920,7 +16988,6 @@ func (s UpdateUserProfileOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UpdateVolumeRequest type UpdateVolumeInput struct { _ struct{} `type:"structure"` @@ -16977,7 +17044,6 @@ func (s *UpdateVolumeInput) SetVolumeId(v string) *UpdateVolumeInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UpdateVolumeOutput type UpdateVolumeOutput struct { _ struct{} `type:"structure"` } @@ -16993,7 +17059,6 @@ func (s UpdateVolumeOutput) GoString() string { } // Describes a user's SSH information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/UserProfile type UserProfile struct { _ struct{} `type:"structure"` @@ -17055,7 +17120,6 @@ func (s *UserProfile) SetSshUsername(v string) *UserProfile { } // Describes an instance's Amazon EBS volume. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/Volume type Volume struct { _ struct{} `type:"structure"` @@ -17069,6 +17133,8 @@ type Volume struct { // The Amazon EC2 volume ID. Ec2VolumeId *string `type:"string"` + Encrypted *bool `type:"boolean"` + // The instance ID. InstanceId *string `type:"string"` @@ -17129,6 +17195,12 @@ func (s *Volume) SetEc2VolumeId(v string) *Volume { return s } +// SetEncrypted sets the Encrypted field's value. +func (s *Volume) SetEncrypted(v bool) *Volume { + s.Encrypted = &v + return s +} + // SetInstanceId sets the InstanceId field's value. func (s *Volume) SetInstanceId(v string) *Volume { s.InstanceId = &v @@ -17190,10 +17262,13 @@ func (s *Volume) SetVolumeType(v string) *Volume { } // Describes an Amazon EBS volume configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/VolumeConfiguration type VolumeConfiguration struct { _ struct{} `type:"structure"` + // Specifies whether an Amazon EBS volume is encrypted. For more information, + // see Amazon EBS Encryption (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html). + Encrypted *bool `type:"boolean"` + // For PIOPS volumes, the IOPS per disk. Iops *int64 `type:"integer"` @@ -17215,13 +17290,17 @@ type VolumeConfiguration struct { // Size is a required field Size *int64 `type:"integer" required:"true"` - // The volume type: + // The volume type. For more information, see Amazon EBS Volume Types (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html). // // * standard - Magnetic // // * io1 - Provisioned IOPS (SSD) // // * gp2 - General Purpose (SSD) + // + // * st1 - Throughput Optimized hard disk drive (HDD) + // + // * sc1 - Cold HDD VolumeType *string `type:"string"` } @@ -17254,6 +17333,12 @@ func (s *VolumeConfiguration) Validate() error { return nil } +// SetEncrypted sets the Encrypted field's value. +func (s *VolumeConfiguration) SetEncrypted(v bool) *VolumeConfiguration { + s.Encrypted = &v + return s +} + // SetIops sets the Iops field's value. func (s *VolumeConfiguration) SetIops(v int64) *VolumeConfiguration { s.Iops = &v @@ -17308,7 +17393,6 @@ func (s *VolumeConfiguration) SetVolumeType(v string) *VolumeConfiguration { // hours, from UTC 1200 - 1600. It will be off for the remainder of the day. // // { "12":"on", "13":"on", "14":"on", "15":"on" } -// See also, https://docs.aws.amazon.com/goto/WebAPI/opsworks-2013-02-18/WeeklyAutoScalingSchedule type WeeklyAutoScalingSchedule struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/opsworks/doc.go b/vendor/github.com/aws/aws-sdk-go/service/opsworks/doc.go index 1808249f1..4e25ae8d2 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/opsworks/doc.go +++ b/vendor/github.com/aws/aws-sdk-go/service/opsworks/doc.go @@ -46,10 +46,15 @@ // // * opsworks.us-west-2.amazonaws.com // +// * opsworks.ca-central-1.amazonaws.com (API only; not available in the +// AWS console) +// // * opsworks.eu-west-1.amazonaws.com // // * opsworks.eu-west-2.amazonaws.com // +// * opsworks.eu-west-3.amazonaws.com +// // * opsworks.eu-central-1.amazonaws.com // // * opsworks.ap-northeast-1.amazonaws.com diff --git a/vendor/github.com/aws/aws-sdk-go/service/opsworks/waiters.go b/vendor/github.com/aws/aws-sdk-go/service/opsworks/waiters.go index f30328d20..63c5ea5ef 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/opsworks/waiters.go +++ b/vendor/github.com/aws/aws-sdk-go/service/opsworks/waiters.go @@ -310,11 +310,6 @@ func (c *OpsWorks) WaitUntilInstanceStoppedWithContext(ctx aws.Context, input *D Matcher: request.PathAnyWaiterMatch, Argument: "Instances[].Status", Expected: "booting", }, - { - State: request.FailureWaiterState, - Matcher: request.PathAnyWaiterMatch, Argument: "Instances[].Status", - Expected: "online", - }, { State: request.FailureWaiterState, Matcher: request.PathAnyWaiterMatch, Argument: "Instances[].Status", diff --git a/vendor/github.com/aws/aws-sdk-go/service/rds/api.go b/vendor/github.com/aws/aws-sdk-go/service/rds/api.go index 442468700..2bfd463ad 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/rds/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/rds/api.go @@ -9612,7 +9612,6 @@ func (c *RDS) StopDBInstanceWithContext(ctx aws.Context, input *StopDBInstanceIn // Describes a quota for an AWS account, for example, the number of DB instances // allowed. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/AccountQuota type AccountQuota struct { _ struct{} `type:"structure"` @@ -9654,7 +9653,6 @@ func (s *AccountQuota) SetUsed(v int64) *AccountQuota { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/AddRoleToDBClusterMessage type AddRoleToDBClusterInput struct { _ struct{} `type:"structure"` @@ -9708,7 +9706,6 @@ func (s *AddRoleToDBClusterInput) SetRoleArn(v string) *AddRoleToDBClusterInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/AddRoleToDBClusterOutput type AddRoleToDBClusterOutput struct { _ struct{} `type:"structure"` } @@ -9723,7 +9720,6 @@ func (s AddRoleToDBClusterOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/AddSourceIdentifierToSubscriptionMessage type AddSourceIdentifierToSubscriptionInput struct { _ struct{} `type:"structure"` @@ -9791,7 +9787,6 @@ func (s *AddSourceIdentifierToSubscriptionInput) SetSubscriptionName(v string) * return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/AddSourceIdentifierToSubscriptionResult type AddSourceIdentifierToSubscriptionOutput struct { _ struct{} `type:"structure"` @@ -9816,7 +9811,6 @@ func (s *AddSourceIdentifierToSubscriptionOutput) SetEventSubscription(v *EventS return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/AddTagsToResourceMessage type AddTagsToResourceInput struct { _ struct{} `type:"structure"` @@ -9871,7 +9865,6 @@ func (s *AddTagsToResourceInput) SetTags(v []*Tag) *AddTagsToResourceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/AddTagsToResourceOutput type AddTagsToResourceOutput struct { _ struct{} `type:"structure"` } @@ -9886,7 +9879,6 @@ func (s AddTagsToResourceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ApplyPendingMaintenanceActionMessage type ApplyPendingMaintenanceActionInput struct { _ struct{} `type:"structure"` @@ -9967,7 +9959,6 @@ func (s *ApplyPendingMaintenanceActionInput) SetResourceIdentifier(v string) *Ap return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ApplyPendingMaintenanceActionResult type ApplyPendingMaintenanceActionOutput struct { _ struct{} `type:"structure"` @@ -9991,7 +9982,6 @@ func (s *ApplyPendingMaintenanceActionOutput) SetResourcePendingMaintenanceActio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/AuthorizeDBSecurityGroupIngressMessage type AuthorizeDBSecurityGroupIngressInput struct { _ struct{} `type:"structure"` @@ -10074,7 +10064,6 @@ func (s *AuthorizeDBSecurityGroupIngressInput) SetEC2SecurityGroupOwnerId(v stri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/AuthorizeDBSecurityGroupIngressResult type AuthorizeDBSecurityGroupIngressOutput struct { _ struct{} `type:"structure"` @@ -10106,7 +10095,6 @@ func (s *AuthorizeDBSecurityGroupIngressOutput) SetDBSecurityGroup(v *DBSecurity // This data type is used as an element in the following data type: // // * OrderableDBInstanceOption -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/AvailabilityZone type AvailabilityZone struct { _ struct{} `type:"structure"` @@ -10131,7 +10119,6 @@ func (s *AvailabilityZone) SetName(v string) *AvailabilityZone { } // A CA certificate for an AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/Certificate type Certificate struct { _ struct{} `type:"structure"` @@ -10201,7 +10188,6 @@ func (s *Certificate) SetValidTill(v time.Time) *Certificate { } // This data type is used as a response element in the action DescribeDBEngineVersions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CharacterSet type CharacterSet struct { _ struct{} `type:"structure"` @@ -10236,7 +10222,6 @@ func (s *CharacterSet) SetCharacterSetName(v string) *CharacterSet { // The configuration setting for the log types to be enabled for export to CloudWatch // Logs for a specific DB instance or DB cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CloudwatchLogsExportConfiguration type CloudwatchLogsExportConfiguration struct { _ struct{} `type:"structure"` @@ -10269,7 +10254,6 @@ func (s *CloudwatchLogsExportConfiguration) SetEnableLogTypes(v []*string) *Clou return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CopyDBClusterParameterGroupMessage type CopyDBClusterParameterGroupInput struct { _ struct{} `type:"structure"` @@ -10370,7 +10354,6 @@ func (s *CopyDBClusterParameterGroupInput) SetTargetDBClusterParameterGroupIdent return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CopyDBClusterParameterGroupResult type CopyDBClusterParameterGroupOutput struct { _ struct{} `type:"structure"` @@ -10397,7 +10380,6 @@ func (s *CopyDBClusterParameterGroupOutput) SetDBClusterParameterGroup(v *DBClus return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CopyDBClusterSnapshotMessage type CopyDBClusterSnapshotInput struct { _ struct{} `type:"structure"` @@ -10583,7 +10565,6 @@ func (s *CopyDBClusterSnapshotInput) SetTargetDBClusterSnapshotIdentifier(v stri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CopyDBClusterSnapshotResult type CopyDBClusterSnapshotOutput struct { _ struct{} `type:"structure"` @@ -10610,7 +10591,6 @@ func (s *CopyDBClusterSnapshotOutput) SetDBClusterSnapshot(v *DBClusterSnapshot) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CopyDBParameterGroupMessage type CopyDBParameterGroupInput struct { _ struct{} `type:"structure"` @@ -10707,7 +10687,6 @@ func (s *CopyDBParameterGroupInput) SetTargetDBParameterGroupIdentifier(v string return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CopyDBParameterGroupResult type CopyDBParameterGroupOutput struct { _ struct{} `type:"structure"` @@ -10734,7 +10713,6 @@ func (s *CopyDBParameterGroupOutput) SetDBParameterGroup(v *DBParameterGroup) *C return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CopyDBSnapshotMessage type CopyDBSnapshotInput struct { _ struct{} `type:"structure"` @@ -10950,7 +10928,6 @@ func (s *CopyDBSnapshotInput) SetTargetDBSnapshotIdentifier(v string) *CopyDBSna return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CopyDBSnapshotResult type CopyDBSnapshotOutput struct { _ struct{} `type:"structure"` @@ -10976,7 +10953,6 @@ func (s *CopyDBSnapshotOutput) SetDBSnapshot(v *DBSnapshot) *CopyDBSnapshotOutpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CopyOptionGroupMessage type CopyOptionGroupInput struct { _ struct{} `type:"structure"` @@ -11076,7 +11052,6 @@ func (s *CopyOptionGroupInput) SetTargetOptionGroupIdentifier(v string) *CopyOpt return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CopyOptionGroupResult type CopyOptionGroupOutput struct { _ struct{} `type:"structure"` @@ -11099,7 +11074,6 @@ func (s *CopyOptionGroupOutput) SetOptionGroup(v *OptionGroup) *CopyOptionGroupO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateDBClusterMessage type CreateDBClusterInput struct { _ struct{} `type:"structure"` @@ -11489,7 +11463,6 @@ func (s *CreateDBClusterInput) SetVpcSecurityGroupIds(v []*string) *CreateDBClus return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateDBClusterResult type CreateDBClusterOutput struct { _ struct{} `type:"structure"` @@ -11515,7 +11488,6 @@ func (s *CreateDBClusterOutput) SetDBCluster(v *DBCluster) *CreateDBClusterOutpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateDBClusterParameterGroupMessage type CreateDBClusterParameterGroupInput struct { _ struct{} `type:"structure"` @@ -11600,7 +11572,6 @@ func (s *CreateDBClusterParameterGroupInput) SetTags(v []*Tag) *CreateDBClusterP return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateDBClusterParameterGroupResult type CreateDBClusterParameterGroupOutput struct { _ struct{} `type:"structure"` @@ -11627,7 +11598,6 @@ func (s *CreateDBClusterParameterGroupOutput) SetDBClusterParameterGroup(v *DBCl return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateDBClusterSnapshotMessage type CreateDBClusterSnapshotInput struct { _ struct{} `type:"structure"` @@ -11707,7 +11677,6 @@ func (s *CreateDBClusterSnapshotInput) SetTags(v []*Tag) *CreateDBClusterSnapsho return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateDBClusterSnapshotResult type CreateDBClusterSnapshotOutput struct { _ struct{} `type:"structure"` @@ -11734,7 +11703,6 @@ func (s *CreateDBClusterSnapshotOutput) SetDBClusterSnapshot(v *DBClusterSnapsho return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateDBInstanceMessage type CreateDBInstanceInput struct { _ struct{} `type:"structure"` @@ -12755,7 +12723,6 @@ func (s *CreateDBInstanceInput) SetVpcSecurityGroupIds(v []*string) *CreateDBIns return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateDBInstanceResult type CreateDBInstanceOutput struct { _ struct{} `type:"structure"` @@ -12781,7 +12748,6 @@ func (s *CreateDBInstanceOutput) SetDBInstance(v *DBInstance) *CreateDBInstanceO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateDBInstanceReadReplicaMessage type CreateDBInstanceReadReplicaInput struct { _ struct{} `type:"structure"` @@ -13211,7 +13177,6 @@ func (s *CreateDBInstanceReadReplicaInput) SetTags(v []*Tag) *CreateDBInstanceRe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateDBInstanceReadReplicaResult type CreateDBInstanceReadReplicaOutput struct { _ struct{} `type:"structure"` @@ -13237,7 +13202,6 @@ func (s *CreateDBInstanceReadReplicaOutput) SetDBInstance(v *DBInstance) *Create return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateDBParameterGroupMessage type CreateDBParameterGroupInput struct { _ struct{} `type:"structure"` @@ -13326,7 +13290,6 @@ func (s *CreateDBParameterGroupInput) SetTags(v []*Tag) *CreateDBParameterGroupI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateDBParameterGroupResult type CreateDBParameterGroupOutput struct { _ struct{} `type:"structure"` @@ -13353,7 +13316,6 @@ func (s *CreateDBParameterGroupOutput) SetDBParameterGroup(v *DBParameterGroup) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateDBSecurityGroupMessage type CreateDBSecurityGroupInput struct { _ struct{} `type:"structure"` @@ -13427,7 +13389,6 @@ func (s *CreateDBSecurityGroupInput) SetTags(v []*Tag) *CreateDBSecurityGroupInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateDBSecurityGroupResult type CreateDBSecurityGroupOutput struct { _ struct{} `type:"structure"` @@ -13454,7 +13415,6 @@ func (s *CreateDBSecurityGroupOutput) SetDBSecurityGroup(v *DBSecurityGroup) *Cr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateDBSnapshotMessage type CreateDBSnapshotInput struct { _ struct{} `type:"structure"` @@ -13532,7 +13492,6 @@ func (s *CreateDBSnapshotInput) SetTags(v []*Tag) *CreateDBSnapshotInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateDBSnapshotResult type CreateDBSnapshotOutput struct { _ struct{} `type:"structure"` @@ -13558,7 +13517,6 @@ func (s *CreateDBSnapshotOutput) SetDBSnapshot(v *DBSnapshot) *CreateDBSnapshotO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateDBSubnetGroupMessage type CreateDBSubnetGroupInput struct { _ struct{} `type:"structure"` @@ -13639,7 +13597,6 @@ func (s *CreateDBSubnetGroupInput) SetTags(v []*Tag) *CreateDBSubnetGroupInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateDBSubnetGroupResult type CreateDBSubnetGroupOutput struct { _ struct{} `type:"structure"` @@ -13666,7 +13623,6 @@ func (s *CreateDBSubnetGroupOutput) SetDBSubnetGroup(v *DBSubnetGroup) *CreateDB return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateEventSubscriptionMessage type CreateEventSubscriptionInput struct { _ struct{} `type:"structure"` @@ -13797,7 +13753,6 @@ func (s *CreateEventSubscriptionInput) SetTags(v []*Tag) *CreateEventSubscriptio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateEventSubscriptionResult type CreateEventSubscriptionOutput struct { _ struct{} `type:"structure"` @@ -13822,7 +13777,6 @@ func (s *CreateEventSubscriptionOutput) SetEventSubscription(v *EventSubscriptio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateOptionGroupMessage type CreateOptionGroupInput struct { _ struct{} `type:"structure"` @@ -13924,7 +13878,6 @@ func (s *CreateOptionGroupInput) SetTags(v []*Tag) *CreateOptionGroupInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CreateOptionGroupResult type CreateOptionGroupOutput struct { _ struct{} `type:"structure"` @@ -13950,7 +13903,6 @@ func (s *CreateOptionGroupOutput) SetOptionGroup(v *OptionGroup) *CreateOptionGr // Contains the details of an Amazon RDS DB cluster. // // This data type is used as a response element in the DescribeDBClusters action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBCluster type DBCluster struct { _ struct{} `type:"structure"` @@ -14314,7 +14266,6 @@ func (s *DBCluster) SetVpcSecurityGroups(v []*VpcSecurityGroupMembership) *DBClu } // Contains information about an instance that is part of a DB cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBClusterMember type DBClusterMember struct { _ struct{} `type:"structure"` @@ -14370,7 +14321,6 @@ func (s *DBClusterMember) SetPromotionTier(v int64) *DBClusterMember { } // Contains status information for a DB cluster option group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBClusterOptionGroupStatus type DBClusterOptionGroupStatus struct { _ struct{} `type:"structure"` @@ -14407,7 +14357,6 @@ func (s *DBClusterOptionGroupStatus) SetStatus(v string) *DBClusterOptionGroupSt // // This data type is used as a response element in the DescribeDBClusterParameterGroups // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBClusterParameterGroup type DBClusterParameterGroup struct { _ struct{} `type:"structure"` @@ -14460,7 +14409,6 @@ func (s *DBClusterParameterGroup) SetDescription(v string) *DBClusterParameterGr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBClusterParameterGroupNameMessage type DBClusterParameterGroupNameMessage struct { _ struct{} `type:"structure"` @@ -14496,7 +14444,6 @@ func (s *DBClusterParameterGroupNameMessage) SetDBClusterParameterGroupName(v st // Describes an AWS Identity and Access Management (IAM) role that is associated // with a DB cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBClusterRole type DBClusterRole struct { _ struct{} `type:"structure"` @@ -14544,7 +14491,6 @@ func (s *DBClusterRole) SetStatus(v string) *DBClusterRole { // // This data type is used as a response element in the DescribeDBClusterSnapshots // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBClusterSnapshot type DBClusterSnapshot struct { _ struct{} `type:"structure"` @@ -14753,7 +14699,6 @@ func (s *DBClusterSnapshot) SetVpcId(v string) *DBClusterSnapshot { // Manual DB cluster snapshot attributes are used to authorize other AWS accounts // to restore a manual DB cluster snapshot. For more information, see the ModifyDBClusterSnapshotAttribute // API action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBClusterSnapshotAttribute type DBClusterSnapshotAttribute struct { _ struct{} `type:"structure"` @@ -14802,7 +14747,6 @@ func (s *DBClusterSnapshotAttribute) SetAttributeValues(v []*string) *DBClusterS // Manual DB cluster snapshot attributes are used to authorize other AWS accounts // to copy or restore a manual DB cluster snapshot. For more information, see // the ModifyDBClusterSnapshotAttribute API action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBClusterSnapshotAttributesResult type DBClusterSnapshotAttributesResult struct { _ struct{} `type:"structure"` @@ -14837,7 +14781,6 @@ func (s *DBClusterSnapshotAttributesResult) SetDBClusterSnapshotIdentifier(v str } // This data type is used as a response element in the action DescribeDBEngineVersions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBEngineVersion type DBEngineVersion struct { _ struct{} `type:"structure"` @@ -14960,7 +14903,6 @@ func (s *DBEngineVersion) SetValidUpgradeTarget(v []*UpgradeTarget) *DBEngineVer // Contains the details of an Amazon RDS DB instance. // // This data type is used as a response element in the DescribeDBInstances action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBInstance type DBInstance struct { _ struct{} `type:"structure"` @@ -15517,7 +15459,6 @@ func (s *DBInstance) SetVpcSecurityGroups(v []*VpcSecurityGroupMembership) *DBIn } // Provides a list of status information for a DB instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBInstanceStatusInfo type DBInstanceStatusInfo struct { _ struct{} `type:"structure"` @@ -15575,7 +15516,6 @@ func (s *DBInstanceStatusInfo) SetStatusType(v string) *DBInstanceStatusInfo { // // This data type is used as a response element in the DescribeDBParameterGroups // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBParameterGroup type DBParameterGroup struct { _ struct{} `type:"structure"` @@ -15629,7 +15569,6 @@ func (s *DBParameterGroup) SetDescription(v string) *DBParameterGroup { // Contains the result of a successful invocation of the ModifyDBParameterGroup // or ResetDBParameterGroup action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBParameterGroupNameMessage type DBParameterGroupNameMessage struct { _ struct{} `type:"structure"` @@ -15668,7 +15607,6 @@ func (s *DBParameterGroupNameMessage) SetDBParameterGroupName(v string) *DBParam // * RebootDBInstance // // * RestoreDBInstanceFromDBSnapshot -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBParameterGroupStatus type DBParameterGroupStatus struct { _ struct{} `type:"structure"` @@ -15705,7 +15643,6 @@ func (s *DBParameterGroupStatus) SetParameterApplyStatus(v string) *DBParameterG // // This data type is used as a response element in the DescribeDBSecurityGroups // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBSecurityGroup type DBSecurityGroup struct { _ struct{} `type:"structure"` @@ -15792,7 +15729,6 @@ func (s *DBSecurityGroup) SetVpcId(v string) *DBSecurityGroup { // * RestoreDBInstanceFromDBSnapshot // // * RestoreDBInstanceToPointInTime -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBSecurityGroupMembership type DBSecurityGroupMembership struct { _ struct{} `type:"structure"` @@ -15828,7 +15764,6 @@ func (s *DBSecurityGroupMembership) SetStatus(v string) *DBSecurityGroupMembersh // Contains the details of an Amazon RDS DB snapshot. // // This data type is used as a response element in the DescribeDBSnapshots action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBSnapshot type DBSnapshot struct { _ struct{} `type:"structure"` @@ -16092,7 +16027,6 @@ func (s *DBSnapshot) SetVpcId(v string) *DBSnapshot { // Manual DB snapshot attributes are used to authorize other AWS accounts to // restore a manual DB snapshot. For more information, see the ModifyDBSnapshotAttribute // API. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBSnapshotAttribute type DBSnapshotAttribute struct { _ struct{} `type:"structure"` @@ -16140,7 +16074,6 @@ func (s *DBSnapshotAttribute) SetAttributeValues(v []*string) *DBSnapshotAttribu // Manual DB snapshot attributes are used to authorize other AWS accounts to // copy or restore a manual DB snapshot. For more information, see the ModifyDBSnapshotAttribute // API action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBSnapshotAttributesResult type DBSnapshotAttributesResult struct { _ struct{} `type:"structure"` @@ -16177,7 +16110,6 @@ func (s *DBSnapshotAttributesResult) SetDBSnapshotIdentifier(v string) *DBSnapsh // // This data type is used as a response element in the DescribeDBSubnetGroups // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBSubnetGroup type DBSubnetGroup struct { _ struct{} `type:"structure"` @@ -16246,7 +16178,6 @@ func (s *DBSubnetGroup) SetVpcId(v string) *DBSubnetGroup { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteDBClusterMessage type DeleteDBClusterInput struct { _ struct{} `type:"structure"` @@ -16327,7 +16258,6 @@ func (s *DeleteDBClusterInput) SetSkipFinalSnapshot(v bool) *DeleteDBClusterInpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteDBClusterResult type DeleteDBClusterOutput struct { _ struct{} `type:"structure"` @@ -16353,7 +16283,6 @@ func (s *DeleteDBClusterOutput) SetDBCluster(v *DBCluster) *DeleteDBClusterOutpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteDBClusterParameterGroupMessage type DeleteDBClusterParameterGroupInput struct { _ struct{} `type:"structure"` @@ -16400,7 +16329,6 @@ func (s *DeleteDBClusterParameterGroupInput) SetDBClusterParameterGroupName(v st return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteDBClusterParameterGroupOutput type DeleteDBClusterParameterGroupOutput struct { _ struct{} `type:"structure"` } @@ -16415,7 +16343,6 @@ func (s DeleteDBClusterParameterGroupOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteDBClusterSnapshotMessage type DeleteDBClusterSnapshotInput struct { _ struct{} `type:"structure"` @@ -16457,7 +16384,6 @@ func (s *DeleteDBClusterSnapshotInput) SetDBClusterSnapshotIdentifier(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteDBClusterSnapshotResult type DeleteDBClusterSnapshotOutput struct { _ struct{} `type:"structure"` @@ -16484,7 +16410,6 @@ func (s *DeleteDBClusterSnapshotOutput) SetDBClusterSnapshot(v *DBClusterSnapsho return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteDBInstanceMessage type DeleteDBInstanceInput struct { _ struct{} `type:"structure"` @@ -16573,7 +16498,6 @@ func (s *DeleteDBInstanceInput) SetSkipFinalSnapshot(v bool) *DeleteDBInstanceIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteDBInstanceResult type DeleteDBInstanceOutput struct { _ struct{} `type:"structure"` @@ -16599,7 +16523,6 @@ func (s *DeleteDBInstanceOutput) SetDBInstance(v *DBInstance) *DeleteDBInstanceO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteDBParameterGroupMessage type DeleteDBParameterGroupInput struct { _ struct{} `type:"structure"` @@ -16646,7 +16569,6 @@ func (s *DeleteDBParameterGroupInput) SetDBParameterGroupName(v string) *DeleteD return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteDBParameterGroupOutput type DeleteDBParameterGroupOutput struct { _ struct{} `type:"structure"` } @@ -16661,7 +16583,6 @@ func (s DeleteDBParameterGroupOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteDBSecurityGroupMessage type DeleteDBSecurityGroupInput struct { _ struct{} `type:"structure"` @@ -16712,7 +16633,6 @@ func (s *DeleteDBSecurityGroupInput) SetDBSecurityGroupName(v string) *DeleteDBS return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteDBSecurityGroupOutput type DeleteDBSecurityGroupOutput struct { _ struct{} `type:"structure"` } @@ -16727,7 +16647,6 @@ func (s DeleteDBSecurityGroupOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteDBSnapshotMessage type DeleteDBSnapshotInput struct { _ struct{} `type:"structure"` @@ -16769,7 +16688,6 @@ func (s *DeleteDBSnapshotInput) SetDBSnapshotIdentifier(v string) *DeleteDBSnaps return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteDBSnapshotResult type DeleteDBSnapshotOutput struct { _ struct{} `type:"structure"` @@ -16795,7 +16713,6 @@ func (s *DeleteDBSnapshotOutput) SetDBSnapshot(v *DBSnapshot) *DeleteDBSnapshotO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteDBSubnetGroupMessage type DeleteDBSubnetGroupInput struct { _ struct{} `type:"structure"` @@ -16843,7 +16760,6 @@ func (s *DeleteDBSubnetGroupInput) SetDBSubnetGroupName(v string) *DeleteDBSubne return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteDBSubnetGroupOutput type DeleteDBSubnetGroupOutput struct { _ struct{} `type:"structure"` } @@ -16858,7 +16774,6 @@ func (s DeleteDBSubnetGroupOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteEventSubscriptionMessage type DeleteEventSubscriptionInput struct { _ struct{} `type:"structure"` @@ -16897,7 +16812,6 @@ func (s *DeleteEventSubscriptionInput) SetSubscriptionName(v string) *DeleteEven return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteEventSubscriptionResult type DeleteEventSubscriptionOutput struct { _ struct{} `type:"structure"` @@ -16922,7 +16836,6 @@ func (s *DeleteEventSubscriptionOutput) SetEventSubscription(v *EventSubscriptio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteOptionGroupMessage type DeleteOptionGroupInput struct { _ struct{} `type:"structure"` @@ -16963,7 +16876,6 @@ func (s *DeleteOptionGroupInput) SetOptionGroupName(v string) *DeleteOptionGroup return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DeleteOptionGroupOutput type DeleteOptionGroupOutput struct { _ struct{} `type:"structure"` } @@ -16978,7 +16890,6 @@ func (s DeleteOptionGroupOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeAccountAttributesMessage type DescribeAccountAttributesInput struct { _ struct{} `type:"structure"` } @@ -16994,7 +16905,6 @@ func (s DescribeAccountAttributesInput) GoString() string { } // Data returned by the DescribeAccountAttributes action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/AccountAttributesMessage type DescribeAccountAttributesOutput struct { _ struct{} `type:"structure"` @@ -17019,7 +16929,6 @@ func (s *DescribeAccountAttributesOutput) SetAccountQuotas(v []*AccountQuota) *D return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeCertificatesMessage type DescribeCertificatesInput struct { _ struct{} `type:"structure"` @@ -17105,7 +17014,6 @@ func (s *DescribeCertificatesInput) SetMaxRecords(v int64) *DescribeCertificates } // Data returned by the DescribeCertificates action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/CertificateMessage type DescribeCertificatesOutput struct { _ struct{} `type:"structure"` @@ -17140,7 +17048,6 @@ func (s *DescribeCertificatesOutput) SetMarker(v string) *DescribeCertificatesOu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBClusterParameterGroupsMessage type DescribeDBClusterParameterGroupsInput struct { _ struct{} `type:"structure"` @@ -17223,7 +17130,6 @@ func (s *DescribeDBClusterParameterGroupsInput) SetMaxRecords(v int64) *Describe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBClusterParameterGroupsMessage type DescribeDBClusterParameterGroupsOutput struct { _ struct{} `type:"structure"` @@ -17258,7 +17164,6 @@ func (s *DescribeDBClusterParameterGroupsOutput) SetMarker(v string) *DescribeDB return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBClusterParametersMessage type DescribeDBClusterParametersInput struct { _ struct{} `type:"structure"` @@ -17359,7 +17264,6 @@ func (s *DescribeDBClusterParametersInput) SetSource(v string) *DescribeDBCluste // Provides details about a DB cluster parameter group including the parameters // in the DB cluster parameter group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBClusterParameterGroupDetails type DescribeDBClusterParametersOutput struct { _ struct{} `type:"structure"` @@ -17394,7 +17298,6 @@ func (s *DescribeDBClusterParametersOutput) SetParameters(v []*Parameter) *Descr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBClusterSnapshotAttributesMessage type DescribeDBClusterSnapshotAttributesInput struct { _ struct{} `type:"structure"` @@ -17433,7 +17336,6 @@ func (s *DescribeDBClusterSnapshotAttributesInput) SetDBClusterSnapshotIdentifie return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBClusterSnapshotAttributesResult type DescribeDBClusterSnapshotAttributesOutput struct { _ struct{} `type:"structure"` @@ -17462,7 +17364,6 @@ func (s *DescribeDBClusterSnapshotAttributesOutput) SetDBClusterSnapshotAttribut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBClusterSnapshotsMessage type DescribeDBClusterSnapshotsInput struct { _ struct{} `type:"structure"` @@ -17627,7 +17528,6 @@ func (s *DescribeDBClusterSnapshotsInput) SetSnapshotType(v string) *DescribeDBC // Provides a list of DB cluster snapshots for the user as the result of a call // to the DescribeDBClusterSnapshots action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBClusterSnapshotMessage type DescribeDBClusterSnapshotsOutput struct { _ struct{} `type:"structure"` @@ -17662,7 +17562,6 @@ func (s *DescribeDBClusterSnapshotsOutput) SetMarker(v string) *DescribeDBCluste return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBClustersMessage type DescribeDBClustersInput struct { _ struct{} `type:"structure"` @@ -17755,7 +17654,6 @@ func (s *DescribeDBClustersInput) SetMaxRecords(v int64) *DescribeDBClustersInpu // Contains the result of a successful invocation of the DescribeDBClusters // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBClusterMessage type DescribeDBClustersOutput struct { _ struct{} `type:"structure"` @@ -17788,7 +17686,6 @@ func (s *DescribeDBClustersOutput) SetMarker(v string) *DescribeDBClustersOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBEngineVersionsMessage type DescribeDBEngineVersionsInput struct { _ struct{} `type:"structure"` @@ -17925,7 +17822,6 @@ func (s *DescribeDBEngineVersionsInput) SetMaxRecords(v int64) *DescribeDBEngine // Contains the result of a successful invocation of the DescribeDBEngineVersions // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBEngineVersionMessage type DescribeDBEngineVersionsOutput struct { _ struct{} `type:"structure"` @@ -17960,7 +17856,6 @@ func (s *DescribeDBEngineVersionsOutput) SetMarker(v string) *DescribeDBEngineVe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBInstancesMessage type DescribeDBInstancesInput struct { _ struct{} `type:"structure"` @@ -18057,7 +17952,6 @@ func (s *DescribeDBInstancesInput) SetMaxRecords(v int64) *DescribeDBInstancesIn // Contains the result of a successful invocation of the DescribeDBInstances // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBInstanceMessage type DescribeDBInstancesOutput struct { _ struct{} `type:"structure"` @@ -18093,7 +17987,6 @@ func (s *DescribeDBInstancesOutput) SetMarker(v string) *DescribeDBInstancesOutp } // This data type is used as a response element to DescribeDBLogFiles. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBLogFilesDetails type DescribeDBLogFilesDetails struct { _ struct{} `type:"structure"` @@ -18135,7 +18028,6 @@ func (s *DescribeDBLogFilesDetails) SetSize(v int64) *DescribeDBLogFilesDetails return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBLogFilesMessage type DescribeDBLogFilesInput struct { _ struct{} `type:"structure"` @@ -18250,7 +18142,6 @@ func (s *DescribeDBLogFilesInput) SetMaxRecords(v int64) *DescribeDBLogFilesInpu } // The response from a call to DescribeDBLogFiles. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBLogFilesResponse type DescribeDBLogFilesOutput struct { _ struct{} `type:"structure"` @@ -18283,7 +18174,6 @@ func (s *DescribeDBLogFilesOutput) SetMarker(v string) *DescribeDBLogFilesOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBParameterGroupsMessage type DescribeDBParameterGroupsInput struct { _ struct{} `type:"structure"` @@ -18368,7 +18258,6 @@ func (s *DescribeDBParameterGroupsInput) SetMaxRecords(v int64) *DescribeDBParam // Contains the result of a successful invocation of the DescribeDBParameterGroups // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBParameterGroupsMessage type DescribeDBParameterGroupsOutput struct { _ struct{} `type:"structure"` @@ -18403,7 +18292,6 @@ func (s *DescribeDBParameterGroupsOutput) SetMarker(v string) *DescribeDBParamet return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBParametersMessage type DescribeDBParametersInput struct { _ struct{} `type:"structure"` @@ -18506,7 +18394,6 @@ func (s *DescribeDBParametersInput) SetSource(v string) *DescribeDBParametersInp // Contains the result of a successful invocation of the DescribeDBParameters // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBParameterGroupDetails type DescribeDBParametersOutput struct { _ struct{} `type:"structure"` @@ -18541,7 +18428,6 @@ func (s *DescribeDBParametersOutput) SetParameters(v []*Parameter) *DescribeDBPa return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBSecurityGroupsMessage type DescribeDBSecurityGroupsInput struct { _ struct{} `type:"structure"` @@ -18622,7 +18508,6 @@ func (s *DescribeDBSecurityGroupsInput) SetMaxRecords(v int64) *DescribeDBSecuri // Contains the result of a successful invocation of the DescribeDBSecurityGroups // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBSecurityGroupMessage type DescribeDBSecurityGroupsOutput struct { _ struct{} `type:"structure"` @@ -18657,7 +18542,6 @@ func (s *DescribeDBSecurityGroupsOutput) SetMarker(v string) *DescribeDBSecurity return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBSnapshotAttributesMessage type DescribeDBSnapshotAttributesInput struct { _ struct{} `type:"structure"` @@ -18696,7 +18580,6 @@ func (s *DescribeDBSnapshotAttributesInput) SetDBSnapshotIdentifier(v string) *D return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBSnapshotAttributesResult type DescribeDBSnapshotAttributesOutput struct { _ struct{} `type:"structure"` @@ -18725,7 +18608,6 @@ func (s *DescribeDBSnapshotAttributesOutput) SetDBSnapshotAttributesResult(v *DB return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBSnapshotsMessage type DescribeDBSnapshotsInput struct { _ struct{} `type:"structure"` @@ -18888,7 +18770,6 @@ func (s *DescribeDBSnapshotsInput) SetSnapshotType(v string) *DescribeDBSnapshot // Contains the result of a successful invocation of the DescribeDBSnapshots // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBSnapshotMessage type DescribeDBSnapshotsOutput struct { _ struct{} `type:"structure"` @@ -18923,7 +18804,6 @@ func (s *DescribeDBSnapshotsOutput) SetMarker(v string) *DescribeDBSnapshotsOutp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeDBSubnetGroupsMessage type DescribeDBSubnetGroupsInput struct { _ struct{} `type:"structure"` @@ -19004,7 +18884,6 @@ func (s *DescribeDBSubnetGroupsInput) SetMaxRecords(v int64) *DescribeDBSubnetGr // Contains the result of a successful invocation of the DescribeDBSubnetGroups // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DBSubnetGroupMessage type DescribeDBSubnetGroupsOutput struct { _ struct{} `type:"structure"` @@ -19039,7 +18918,6 @@ func (s *DescribeDBSubnetGroupsOutput) SetMarker(v string) *DescribeDBSubnetGrou return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeEngineDefaultClusterParametersMessage type DescribeEngineDefaultClusterParametersInput struct { _ struct{} `type:"structure"` @@ -19124,7 +19002,6 @@ func (s *DescribeEngineDefaultClusterParametersInput) SetMaxRecords(v int64) *De return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeEngineDefaultClusterParametersResult type DescribeEngineDefaultClusterParametersOutput struct { _ struct{} `type:"structure"` @@ -19149,7 +19026,6 @@ func (s *DescribeEngineDefaultClusterParametersOutput) SetEngineDefaults(v *Engi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeEngineDefaultParametersMessage type DescribeEngineDefaultParametersInput struct { _ struct{} `type:"structure"` @@ -19233,7 +19109,6 @@ func (s *DescribeEngineDefaultParametersInput) SetMaxRecords(v int64) *DescribeE return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeEngineDefaultParametersResult type DescribeEngineDefaultParametersOutput struct { _ struct{} `type:"structure"` @@ -19258,7 +19133,6 @@ func (s *DescribeEngineDefaultParametersOutput) SetEngineDefaults(v *EngineDefau return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeEventCategoriesMessage type DescribeEventCategoriesInput struct { _ struct{} `type:"structure"` @@ -19314,7 +19188,6 @@ func (s *DescribeEventCategoriesInput) SetSourceType(v string) *DescribeEventCat } // Data returned from the DescribeEventCategories action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/EventCategoriesMessage type DescribeEventCategoriesOutput struct { _ struct{} `type:"structure"` @@ -19338,7 +19211,6 @@ func (s *DescribeEventCategoriesOutput) SetEventCategoriesMapList(v []*EventCate return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeEventSubscriptionsMessage type DescribeEventSubscriptionsInput struct { _ struct{} `type:"structure"` @@ -19418,7 +19290,6 @@ func (s *DescribeEventSubscriptionsInput) SetSubscriptionName(v string) *Describ } // Data returned by the DescribeEventSubscriptions action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/EventSubscriptionsMessage type DescribeEventSubscriptionsOutput struct { _ struct{} `type:"structure"` @@ -19453,7 +19324,6 @@ func (s *DescribeEventSubscriptionsOutput) SetMarker(v string) *DescribeEventSub return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeEventsMessage type DescribeEventsInput struct { _ struct{} `type:"structure"` @@ -19608,7 +19478,6 @@ func (s *DescribeEventsInput) SetStartTime(v time.Time) *DescribeEventsInput { } // Contains the result of a successful invocation of the DescribeEvents action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/EventsMessage type DescribeEventsOutput struct { _ struct{} `type:"structure"` @@ -19643,7 +19512,6 @@ func (s *DescribeEventsOutput) SetMarker(v string) *DescribeEventsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeOptionGroupOptionsMessage type DescribeOptionGroupOptionsInput struct { _ struct{} `type:"structure"` @@ -19737,7 +19605,6 @@ func (s *DescribeOptionGroupOptionsInput) SetMaxRecords(v int64) *DescribeOption return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/OptionGroupOptionsMessage type DescribeOptionGroupOptionsOutput struct { _ struct{} `type:"structure"` @@ -19772,7 +19639,6 @@ func (s *DescribeOptionGroupOptionsOutput) SetOptionGroupOptions(v []*OptionGrou return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeOptionGroupsMessage type DescribeOptionGroupsInput struct { _ struct{} `type:"structure"` @@ -19874,7 +19740,6 @@ func (s *DescribeOptionGroupsInput) SetOptionGroupName(v string) *DescribeOption } // List of option groups. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/OptionGroups type DescribeOptionGroupsOutput struct { _ struct{} `type:"structure"` @@ -19909,7 +19774,6 @@ func (s *DescribeOptionGroupsOutput) SetOptionGroupsList(v []*OptionGroup) *Desc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeOrderableDBInstanceOptionsMessage type DescribeOrderableDBInstanceOptionsInput struct { _ struct{} `type:"structure"` @@ -20035,7 +19899,6 @@ func (s *DescribeOrderableDBInstanceOptionsInput) SetVpc(v bool) *DescribeOrdera // Contains the result of a successful invocation of the DescribeOrderableDBInstanceOptions // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/OrderableDBInstanceOptionsMessage type DescribeOrderableDBInstanceOptionsOutput struct { _ struct{} `type:"structure"` @@ -20071,7 +19934,6 @@ func (s *DescribeOrderableDBInstanceOptionsOutput) SetOrderableDBInstanceOptions return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribePendingMaintenanceActionsMessage type DescribePendingMaintenanceActionsInput struct { _ struct{} `type:"structure"` @@ -20162,7 +20024,6 @@ func (s *DescribePendingMaintenanceActionsInput) SetResourceIdentifier(v string) } // Data returned from the DescribePendingMaintenanceActions action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/PendingMaintenanceActionsMessage type DescribePendingMaintenanceActionsOutput struct { _ struct{} `type:"structure"` @@ -20197,7 +20058,6 @@ func (s *DescribePendingMaintenanceActionsOutput) SetPendingMaintenanceActions(v return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeReservedDBInstancesMessage type DescribeReservedDBInstancesInput struct { _ struct{} `type:"structure"` @@ -20341,7 +20201,6 @@ func (s *DescribeReservedDBInstancesInput) SetReservedDBInstancesOfferingId(v st return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeReservedDBInstancesOfferingsMessage type DescribeReservedDBInstancesOfferingsInput struct { _ struct{} `type:"structure"` @@ -20479,7 +20338,6 @@ func (s *DescribeReservedDBInstancesOfferingsInput) SetReservedDBInstancesOfferi // Contains the result of a successful invocation of the DescribeReservedDBInstancesOfferings // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ReservedDBInstancesOfferingMessage type DescribeReservedDBInstancesOfferingsOutput struct { _ struct{} `type:"structure"` @@ -20516,7 +20374,6 @@ func (s *DescribeReservedDBInstancesOfferingsOutput) SetReservedDBInstancesOffer // Contains the result of a successful invocation of the DescribeReservedDBInstances // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ReservedDBInstanceMessage type DescribeReservedDBInstancesOutput struct { _ struct{} `type:"structure"` @@ -20551,7 +20408,6 @@ func (s *DescribeReservedDBInstancesOutput) SetReservedDBInstances(v []*Reserved return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeSourceRegionsMessage type DescribeSourceRegionsInput struct { _ struct{} `type:"structure"` @@ -20636,7 +20492,6 @@ func (s *DescribeSourceRegionsInput) SetRegionName(v string) *DescribeSourceRegi // Contains the result of a successful invocation of the DescribeSourceRegions // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/SourceRegionMessage type DescribeSourceRegionsOutput struct { _ struct{} `type:"structure"` @@ -20672,7 +20527,6 @@ func (s *DescribeSourceRegionsOutput) SetSourceRegions(v []*SourceRegion) *Descr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeValidDBInstanceModificationsMessage type DescribeValidDBInstanceModificationsInput struct { _ struct{} `type:"structure"` @@ -20711,7 +20565,6 @@ func (s *DescribeValidDBInstanceModificationsInput) SetDBInstanceIdentifier(v st return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DescribeValidDBInstanceModificationsResult type DescribeValidDBInstanceModificationsOutput struct { _ struct{} `type:"structure"` @@ -20738,7 +20591,6 @@ func (s *DescribeValidDBInstanceModificationsOutput) SetValidDBInstanceModificat } // An Active Directory Domain membership record associated with the DB instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DomainMembership type DomainMembership struct { _ struct{} `type:"structure"` @@ -20792,7 +20644,6 @@ func (s *DomainMembership) SetStatus(v string) *DomainMembership { } // A range of double values. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DoubleRange type DoubleRange struct { _ struct{} `type:"structure"` @@ -20825,7 +20676,6 @@ func (s *DoubleRange) SetTo(v float64) *DoubleRange { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DownloadDBLogFilePortionMessage type DownloadDBLogFilePortionInput struct { _ struct{} `type:"structure"` @@ -20925,7 +20775,6 @@ func (s *DownloadDBLogFilePortionInput) SetNumberOfLines(v int64) *DownloadDBLog } // This data type is used as a response element to DownloadDBLogFilePortion. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/DownloadDBLogFilePortionDetails type DownloadDBLogFilePortionOutput struct { _ struct{} `type:"structure"` @@ -20975,7 +20824,6 @@ func (s *DownloadDBLogFilePortionOutput) SetMarker(v string) *DownloadDBLogFileP // * DescribeDBSecurityGroups // // * RevokeDBSecurityGroupIngress -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/EC2SecurityGroup type EC2SecurityGroup struct { _ struct{} `type:"structure"` @@ -21035,7 +20883,6 @@ func (s *EC2SecurityGroup) SetStatus(v string) *EC2SecurityGroup { // * DescribeDBInstances // // * DeleteDBInstance -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/Endpoint type Endpoint struct { _ struct{} `type:"structure"` @@ -21079,7 +20926,6 @@ func (s *Endpoint) SetPort(v int64) *Endpoint { // Contains the result of a successful invocation of the DescribeEngineDefaultParameters // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/EngineDefaults type EngineDefaults struct { _ struct{} `type:"structure"` @@ -21125,7 +20971,6 @@ func (s *EngineDefaults) SetParameters(v []*Parameter) *EngineDefaults { } // This data type is used as a response element in the DescribeEvents action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/Event type Event struct { _ struct{} `type:"structure"` @@ -21196,7 +21041,6 @@ func (s *Event) SetSourceType(v string) *Event { // Contains the results of a successful invocation of the DescribeEventCategories // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/EventCategoriesMap type EventCategoriesMap struct { _ struct{} `type:"structure"` @@ -21231,7 +21075,6 @@ func (s *EventCategoriesMap) SetSourceType(v string) *EventCategoriesMap { // Contains the results of a successful invocation of the DescribeEventSubscriptions // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/EventSubscription type EventSubscription struct { _ struct{} `type:"structure"` @@ -21346,7 +21189,6 @@ func (s *EventSubscription) SetSubscriptionCreationTime(v string) *EventSubscrip return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/FailoverDBClusterMessage type FailoverDBClusterInput struct { _ struct{} `type:"structure"` @@ -21386,7 +21228,6 @@ func (s *FailoverDBClusterInput) SetTargetDBInstanceIdentifier(v string) *Failov return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/FailoverDBClusterResult type FailoverDBClusterOutput struct { _ struct{} `type:"structure"` @@ -21413,7 +21254,6 @@ func (s *FailoverDBClusterOutput) SetDBCluster(v *DBCluster) *FailoverDBClusterO } // This type is not currently supported. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/Filter type Filter struct { _ struct{} `type:"structure"` @@ -21468,7 +21308,6 @@ func (s *Filter) SetValues(v []*string) *Filter { // This data type is used as a response element in the DescribeDBSecurityGroups // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/IPRange type IPRange struct { _ struct{} `type:"structure"` @@ -21502,7 +21341,6 @@ func (s *IPRange) SetStatus(v string) *IPRange { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ListTagsForResourceMessage type ListTagsForResourceInput struct { _ struct{} `type:"structure"` @@ -21562,7 +21400,6 @@ func (s *ListTagsForResourceInput) SetResourceName(v string) *ListTagsForResourc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/TagListMessage type ListTagsForResourceOutput struct { _ struct{} `type:"structure"` @@ -21586,7 +21423,6 @@ func (s *ListTagsForResourceOutput) SetTagList(v []*Tag) *ListTagsForResourceOut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyDBClusterMessage type ModifyDBClusterInput struct { _ struct{} `type:"structure"` @@ -21808,7 +21644,6 @@ func (s *ModifyDBClusterInput) SetVpcSecurityGroupIds(v []*string) *ModifyDBClus return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyDBClusterResult type ModifyDBClusterOutput struct { _ struct{} `type:"structure"` @@ -21834,7 +21669,6 @@ func (s *ModifyDBClusterOutput) SetDBCluster(v *DBCluster) *ModifyDBClusterOutpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyDBClusterParameterGroupMessage type ModifyDBClusterParameterGroupInput struct { _ struct{} `type:"structure"` @@ -21887,7 +21721,6 @@ func (s *ModifyDBClusterParameterGroupInput) SetParameters(v []*Parameter) *Modi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyDBClusterSnapshotAttributeMessage type ModifyDBClusterSnapshotAttributeInput struct { _ struct{} `type:"structure"` @@ -21976,7 +21809,6 @@ func (s *ModifyDBClusterSnapshotAttributeInput) SetValuesToRemove(v []*string) * return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyDBClusterSnapshotAttributeResult type ModifyDBClusterSnapshotAttributeOutput struct { _ struct{} `type:"structure"` @@ -22005,7 +21837,6 @@ func (s *ModifyDBClusterSnapshotAttributeOutput) SetDBClusterSnapshotAttributesR return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyDBInstanceMessage type ModifyDBInstanceInput struct { _ struct{} `type:"structure"` @@ -22722,7 +22553,6 @@ func (s *ModifyDBInstanceInput) SetVpcSecurityGroupIds(v []*string) *ModifyDBIns return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyDBInstanceResult type ModifyDBInstanceOutput struct { _ struct{} `type:"structure"` @@ -22748,7 +22578,6 @@ func (s *ModifyDBInstanceOutput) SetDBInstance(v *DBInstance) *ModifyDBInstanceO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyDBParameterGroupMessage type ModifyDBParameterGroupInput struct { _ struct{} `type:"structure"` @@ -22814,7 +22643,6 @@ func (s *ModifyDBParameterGroupInput) SetParameters(v []*Parameter) *ModifyDBPar return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyDBSnapshotAttributeMessage type ModifyDBSnapshotAttributeInput struct { _ struct{} `type:"structure"` @@ -22901,7 +22729,6 @@ func (s *ModifyDBSnapshotAttributeInput) SetValuesToRemove(v []*string) *ModifyD return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyDBSnapshotAttributeResult type ModifyDBSnapshotAttributeOutput struct { _ struct{} `type:"structure"` @@ -22930,7 +22757,6 @@ func (s *ModifyDBSnapshotAttributeOutput) SetDBSnapshotAttributesResult(v *DBSna return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyDBSnapshotMessage type ModifyDBSnapshotInput struct { _ struct{} `type:"structure"` @@ -23007,7 +22833,6 @@ func (s *ModifyDBSnapshotInput) SetOptionGroupName(v string) *ModifyDBSnapshotIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyDBSnapshotResult type ModifyDBSnapshotOutput struct { _ struct{} `type:"structure"` @@ -23033,7 +22858,6 @@ func (s *ModifyDBSnapshotOutput) SetDBSnapshot(v *DBSnapshot) *ModifyDBSnapshotO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyDBSubnetGroupMessage type ModifyDBSubnetGroupInput struct { _ struct{} `type:"structure"` @@ -23101,7 +22925,6 @@ func (s *ModifyDBSubnetGroupInput) SetSubnetIds(v []*string) *ModifyDBSubnetGrou return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyDBSubnetGroupResult type ModifyDBSubnetGroupOutput struct { _ struct{} `type:"structure"` @@ -23128,7 +22951,6 @@ func (s *ModifyDBSubnetGroupOutput) SetDBSubnetGroup(v *DBSubnetGroup) *ModifyDB return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyEventSubscriptionMessage type ModifyEventSubscriptionInput struct { _ struct{} `type:"structure"` @@ -23213,7 +23035,6 @@ func (s *ModifyEventSubscriptionInput) SetSubscriptionName(v string) *ModifyEven return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyEventSubscriptionResult type ModifyEventSubscriptionOutput struct { _ struct{} `type:"structure"` @@ -23238,7 +23059,6 @@ func (s *ModifyEventSubscriptionOutput) SetEventSubscription(v *EventSubscriptio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyOptionGroupMessage type ModifyOptionGroupInput struct { _ struct{} `type:"structure"` @@ -23320,7 +23140,6 @@ func (s *ModifyOptionGroupInput) SetOptionsToRemove(v []*string) *ModifyOptionGr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ModifyOptionGroupResult type ModifyOptionGroupOutput struct { _ struct{} `type:"structure"` @@ -23344,7 +23163,6 @@ func (s *ModifyOptionGroupOutput) SetOptionGroup(v *OptionGroup) *ModifyOptionGr } // Option details. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/Option type Option struct { _ struct{} `type:"structure"` @@ -23443,7 +23261,6 @@ func (s *Option) SetVpcSecurityGroupMemberships(v []*VpcSecurityGroupMembership) } // A list of all available options -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/OptionConfiguration type OptionConfiguration struct { _ struct{} `type:"structure"` @@ -23527,7 +23344,6 @@ func (s *OptionConfiguration) SetVpcSecurityGroupMemberships(v []*string) *Optio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/OptionGroup type OptionGroup struct { _ struct{} `type:"structure"` @@ -23621,7 +23437,6 @@ func (s *OptionGroup) SetVpcId(v string) *OptionGroup { } // Provides information on the option groups the DB instance is a member of. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/OptionGroupMembership type OptionGroupMembership struct { _ struct{} `type:"structure"` @@ -23657,7 +23472,6 @@ func (s *OptionGroupMembership) SetStatus(v string) *OptionGroupMembership { } // Available option. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/OptionGroupOption type OptionGroupOption struct { _ struct{} `type:"structure"` @@ -23828,7 +23642,6 @@ func (s *OptionGroupOption) SetVpcOnly(v bool) *OptionGroupOption { // Option group option settings are used to display settings available for each // option with their default values and other information. These values are // used with the DescribeOptionGroupOptions action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/OptionGroupOptionSetting type OptionGroupOptionSetting struct { _ struct{} `type:"structure"` @@ -23902,7 +23715,6 @@ func (s *OptionGroupOptionSetting) SetSettingName(v string) *OptionGroupOptionSe // option. It is used when you modify an option group or describe option groups. // For example, the NATIVE_NETWORK_ENCRYPTION option has a setting called SQLNET.ENCRYPTION_SERVER // that can have several different values. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/OptionSetting type OptionSetting struct { _ struct{} `type:"structure"` @@ -24001,7 +23813,6 @@ func (s *OptionSetting) SetValue(v string) *OptionSetting { // The version for an option. Option group option versions are returned by the // DescribeOptionGroupOptions action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/OptionVersion type OptionVersion struct { _ struct{} `type:"structure"` @@ -24038,7 +23849,6 @@ func (s *OptionVersion) SetVersion(v string) *OptionVersion { // // This data type is used as a response element in the DescribeOrderableDBInstanceOptions // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/OrderableDBInstanceOption type OrderableDBInstanceOption struct { _ struct{} `type:"structure"` @@ -24239,7 +24049,6 @@ func (s *OrderableDBInstanceOption) SetVpc(v bool) *OrderableDBInstanceOption { // // This data type is used as a response element in the DescribeEngineDefaultParameters // and DescribeDBParameters actions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/Parameter type Parameter struct { _ struct{} `type:"structure"` @@ -24348,7 +24157,6 @@ func (s *Parameter) SetSource(v string) *Parameter { // A list of the log types whose configuration is still pending. In other words, // these log types are in the process of being activated or deactivated. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/PendingCloudwatchLogsExports type PendingCloudwatchLogsExports struct { _ struct{} `type:"structure"` @@ -24384,7 +24192,6 @@ func (s *PendingCloudwatchLogsExports) SetLogTypesToEnable(v []*string) *Pending } // Provides information about a pending maintenance action for a resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/PendingMaintenanceAction type PendingMaintenanceAction struct { _ struct{} `type:"structure"` @@ -24464,7 +24271,6 @@ func (s *PendingMaintenanceAction) SetOptInStatus(v string) *PendingMaintenanceA } // This data type is used as a response element in the ModifyDBInstance action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/PendingModifiedValues type PendingModifiedValues struct { _ struct{} `type:"structure"` @@ -24613,7 +24419,6 @@ func (s *PendingModifiedValues) SetStorageType(v string) *PendingModifiedValues return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/PromoteReadReplicaDBClusterMessage type PromoteReadReplicaDBClusterInput struct { _ struct{} `type:"structure"` @@ -24659,7 +24464,6 @@ func (s *PromoteReadReplicaDBClusterInput) SetDBClusterIdentifier(v string) *Pro return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/PromoteReadReplicaDBClusterResult type PromoteReadReplicaDBClusterOutput struct { _ struct{} `type:"structure"` @@ -24685,7 +24489,6 @@ func (s *PromoteReadReplicaDBClusterOutput) SetDBCluster(v *DBCluster) *PromoteR return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/PromoteReadReplicaMessage type PromoteReadReplicaInput struct { _ struct{} `type:"structure"` @@ -24772,7 +24575,6 @@ func (s *PromoteReadReplicaInput) SetPreferredBackupWindow(v string) *PromoteRea return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/PromoteReadReplicaResult type PromoteReadReplicaOutput struct { _ struct{} `type:"structure"` @@ -24798,7 +24600,6 @@ func (s *PromoteReadReplicaOutput) SetDBInstance(v *DBInstance) *PromoteReadRepl return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/PurchaseReservedDBInstancesOfferingMessage type PurchaseReservedDBInstancesOfferingInput struct { _ struct{} `type:"structure"` @@ -24870,7 +24671,6 @@ func (s *PurchaseReservedDBInstancesOfferingInput) SetTags(v []*Tag) *PurchaseRe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/PurchaseReservedDBInstancesOfferingResult type PurchaseReservedDBInstancesOfferingOutput struct { _ struct{} `type:"structure"` @@ -24896,7 +24696,6 @@ func (s *PurchaseReservedDBInstancesOfferingOutput) SetReservedDBInstance(v *Res } // A range of integer values. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/Range type Range struct { _ struct{} `type:"structure"` @@ -24941,7 +24740,6 @@ func (s *Range) SetTo(v int64) *Range { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RebootDBInstanceMessage type RebootDBInstanceInput struct { _ struct{} `type:"structure"` @@ -24996,7 +24794,6 @@ func (s *RebootDBInstanceInput) SetForceFailover(v bool) *RebootDBInstanceInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RebootDBInstanceResult type RebootDBInstanceOutput struct { _ struct{} `type:"structure"` @@ -25024,7 +24821,6 @@ func (s *RebootDBInstanceOutput) SetDBInstance(v *DBInstance) *RebootDBInstanceO // This data type is used as a response element in the DescribeReservedDBInstances // and DescribeReservedDBInstancesOfferings actions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RecurringCharge type RecurringCharge struct { _ struct{} `type:"structure"` @@ -25057,7 +24853,6 @@ func (s *RecurringCharge) SetRecurringChargeFrequency(v string) *RecurringCharge return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RemoveRoleFromDBClusterMessage type RemoveRoleFromDBClusterInput struct { _ struct{} `type:"structure"` @@ -25111,7 +24906,6 @@ func (s *RemoveRoleFromDBClusterInput) SetRoleArn(v string) *RemoveRoleFromDBClu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RemoveRoleFromDBClusterOutput type RemoveRoleFromDBClusterOutput struct { _ struct{} `type:"structure"` } @@ -25126,7 +24920,6 @@ func (s RemoveRoleFromDBClusterOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RemoveSourceIdentifierFromSubscriptionMessage type RemoveSourceIdentifierFromSubscriptionInput struct { _ struct{} `type:"structure"` @@ -25181,7 +24974,6 @@ func (s *RemoveSourceIdentifierFromSubscriptionInput) SetSubscriptionName(v stri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RemoveSourceIdentifierFromSubscriptionResult type RemoveSourceIdentifierFromSubscriptionOutput struct { _ struct{} `type:"structure"` @@ -25206,7 +24998,6 @@ func (s *RemoveSourceIdentifierFromSubscriptionOutput) SetEventSubscription(v *E return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RemoveTagsFromResourceMessage type RemoveTagsFromResourceInput struct { _ struct{} `type:"structure"` @@ -25261,7 +25052,6 @@ func (s *RemoveTagsFromResourceInput) SetTagKeys(v []*string) *RemoveTagsFromRes return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RemoveTagsFromResourceOutput type RemoveTagsFromResourceOutput struct { _ struct{} `type:"structure"` } @@ -25278,7 +25068,6 @@ func (s RemoveTagsFromResourceOutput) GoString() string { // This data type is used as a response element in the DescribeReservedDBInstances // and PurchaseReservedDBInstancesOffering actions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ReservedDBInstance type ReservedDBInstance struct { _ struct{} `type:"structure"` @@ -25430,7 +25219,6 @@ func (s *ReservedDBInstance) SetUsagePrice(v float64) *ReservedDBInstance { // This data type is used as a response element in the DescribeReservedDBInstancesOfferings // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ReservedDBInstancesOffering type ReservedDBInstancesOffering struct { _ struct{} `type:"structure"` @@ -25535,7 +25323,6 @@ func (s *ReservedDBInstancesOffering) SetUsagePrice(v float64) *ReservedDBInstan return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ResetDBClusterParameterGroupMessage type ResetDBClusterParameterGroupInput struct { _ struct{} `type:"structure"` @@ -25596,7 +25383,6 @@ func (s *ResetDBClusterParameterGroupInput) SetResetAllParameters(v bool) *Reset return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ResetDBParameterGroupMessage type ResetDBParameterGroupInput struct { _ struct{} `type:"structure"` @@ -25684,7 +25470,6 @@ func (s *ResetDBParameterGroupInput) SetResetAllParameters(v bool) *ResetDBParam } // Describes the pending maintenance actions for a resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ResourcePendingMaintenanceActions type ResourcePendingMaintenanceActions struct { _ struct{} `type:"structure"` @@ -25718,7 +25503,6 @@ func (s *ResourcePendingMaintenanceActions) SetResourceIdentifier(v string) *Res return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RestoreDBClusterFromS3Message type RestoreDBClusterFromS3Input struct { _ struct{} `type:"structure"` @@ -26116,7 +25900,6 @@ func (s *RestoreDBClusterFromS3Input) SetVpcSecurityGroupIds(v []*string) *Resto return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RestoreDBClusterFromS3Result type RestoreDBClusterFromS3Output struct { _ struct{} `type:"structure"` @@ -26142,7 +25925,6 @@ func (s *RestoreDBClusterFromS3Output) SetDBCluster(v *DBCluster) *RestoreDBClus return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RestoreDBClusterFromSnapshotMessage type RestoreDBClusterFromSnapshotInput struct { _ struct{} `type:"structure"` @@ -26350,7 +26132,6 @@ func (s *RestoreDBClusterFromSnapshotInput) SetVpcSecurityGroupIds(v []*string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RestoreDBClusterFromSnapshotResult type RestoreDBClusterFromSnapshotOutput struct { _ struct{} `type:"structure"` @@ -26376,7 +26157,6 @@ func (s *RestoreDBClusterFromSnapshotOutput) SetDBCluster(v *DBCluster) *Restore return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RestoreDBClusterToPointInTimeMessage type RestoreDBClusterToPointInTimeInput struct { _ struct{} `type:"structure"` @@ -26597,7 +26377,6 @@ func (s *RestoreDBClusterToPointInTimeInput) SetVpcSecurityGroupIds(v []*string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RestoreDBClusterToPointInTimeResult type RestoreDBClusterToPointInTimeOutput struct { _ struct{} `type:"structure"` @@ -26623,7 +26402,6 @@ func (s *RestoreDBClusterToPointInTimeOutput) SetDBCluster(v *DBCluster) *Restor return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RestoreDBInstanceFromDBSnapshotMessage type RestoreDBInstanceFromDBSnapshotInput struct { _ struct{} `type:"structure"` @@ -26998,7 +26776,6 @@ func (s *RestoreDBInstanceFromDBSnapshotInput) SetTdeCredentialPassword(v string return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RestoreDBInstanceFromDBSnapshotResult type RestoreDBInstanceFromDBSnapshotOutput struct { _ struct{} `type:"structure"` @@ -27024,7 +26801,6 @@ func (s *RestoreDBInstanceFromDBSnapshotOutput) SetDBInstance(v *DBInstance) *Re return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RestoreDBInstanceFromS3Message type RestoreDBInstanceFromS3Input struct { _ struct{} `type:"structure"` @@ -27575,7 +27351,6 @@ func (s *RestoreDBInstanceFromS3Input) SetVpcSecurityGroupIds(v []*string) *Rest return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RestoreDBInstanceFromS3Result type RestoreDBInstanceFromS3Output struct { _ struct{} `type:"structure"` @@ -27601,7 +27376,6 @@ func (s *RestoreDBInstanceFromS3Output) SetDBInstance(v *DBInstance) *RestoreDBI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RestoreDBInstanceToPointInTimeMessage type RestoreDBInstanceToPointInTimeInput struct { _ struct{} `type:"structure"` @@ -27998,7 +27772,6 @@ func (s *RestoreDBInstanceToPointInTimeInput) SetUseLatestRestorableTime(v bool) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RestoreDBInstanceToPointInTimeResult type RestoreDBInstanceToPointInTimeOutput struct { _ struct{} `type:"structure"` @@ -28024,7 +27797,6 @@ func (s *RestoreDBInstanceToPointInTimeOutput) SetDBInstance(v *DBInstance) *Res return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RevokeDBSecurityGroupIngressMessage type RevokeDBSecurityGroupIngressInput struct { _ struct{} `type:"structure"` @@ -28109,7 +27881,6 @@ func (s *RevokeDBSecurityGroupIngressInput) SetEC2SecurityGroupOwnerId(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/RevokeDBSecurityGroupIngressResult type RevokeDBSecurityGroupIngressOutput struct { _ struct{} `type:"structure"` @@ -28138,7 +27909,6 @@ func (s *RevokeDBSecurityGroupIngressOutput) SetDBSecurityGroup(v *DBSecurityGro // Contains an AWS Region name as the result of a successful call to the DescribeSourceRegions // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/SourceRegion type SourceRegion struct { _ struct{} `type:"structure"` @@ -28180,7 +27950,6 @@ func (s *SourceRegion) SetStatus(v string) *SourceRegion { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/StartDBInstanceMessage type StartDBInstanceInput struct { _ struct{} `type:"structure"` @@ -28219,7 +27988,6 @@ func (s *StartDBInstanceInput) SetDBInstanceIdentifier(v string) *StartDBInstanc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/StartDBInstanceResult type StartDBInstanceOutput struct { _ struct{} `type:"structure"` @@ -28245,7 +28013,6 @@ func (s *StartDBInstanceOutput) SetDBInstance(v *DBInstance) *StartDBInstanceOut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/StopDBInstanceMessage type StopDBInstanceInput struct { _ struct{} `type:"structure"` @@ -28294,7 +28061,6 @@ func (s *StopDBInstanceInput) SetDBSnapshotIdentifier(v string) *StopDBInstanceI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/StopDBInstanceResult type StopDBInstanceOutput struct { _ struct{} `type:"structure"` @@ -28322,7 +28088,6 @@ func (s *StopDBInstanceOutput) SetDBInstance(v *DBInstance) *StopDBInstanceOutpu // This data type is used as a response element in the DescribeDBSubnetGroups // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/Subnet type Subnet struct { _ struct{} `type:"structure"` @@ -28369,7 +28134,6 @@ func (s *Subnet) SetSubnetStatus(v string) *Subnet { } // Metadata assigned to an Amazon RDS resource consisting of a key-value pair. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/Tag type Tag struct { _ struct{} `type:"structure"` @@ -28411,7 +28175,6 @@ func (s *Tag) SetValue(v string) *Tag { // A time zone associated with a DBInstance or a DBSnapshot. This data type // is an element in the response to the DescribeDBInstances, the DescribeDBSnapshots, // and the DescribeDBEngineVersions actions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/Timezone type Timezone struct { _ struct{} `type:"structure"` @@ -28436,7 +28199,6 @@ func (s *Timezone) SetTimezoneName(v string) *Timezone { } // The version of the database engine that a DB instance can be upgraded to. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/UpgradeTarget type UpgradeTarget struct { _ struct{} `type:"structure"` @@ -28500,7 +28262,6 @@ func (s *UpgradeTarget) SetIsMajorVersionUpgrade(v bool) *UpgradeTarget { // Information about valid modifications that you can make to your DB instance. // Contains the result of a successful call to the DescribeValidDBInstanceModifications // action. You can use this information when you call ModifyDBInstance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ValidDBInstanceModificationsMessage type ValidDBInstanceModificationsMessage struct { _ struct{} `type:"structure"` @@ -28527,7 +28288,6 @@ func (s *ValidDBInstanceModificationsMessage) SetStorage(v []*ValidStorageOption // Information about valid modifications that you can make to your DB instance. // Contains the result of a successful call to the DescribeValidDBInstanceModifications // action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/ValidStorageOptions type ValidStorageOptions struct { _ struct{} `type:"structure"` @@ -28582,7 +28342,6 @@ func (s *ValidStorageOptions) SetStorageType(v string) *ValidStorageOptions { // This data type is used as a response element for queries on VPC security // group membership. -// See also, https://docs.aws.amazon.com/goto/WebAPI/rds-2014-10-31/VpcSecurityGroupMembership type VpcSecurityGroupMembership struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/redshift/api.go b/vendor/github.com/aws/aws-sdk-go/service/redshift/api.go index f08d82143..b1d78ae98 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/redshift/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/redshift/api.go @@ -6943,7 +6943,6 @@ func (c *Redshift) RotateEncryptionKeyWithContext(ctx aws.Context, input *Rotate } // Describes an AWS customer account authorized to restore a snapshot. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AccountWithRestoreAccess type AccountWithRestoreAccess struct { _ struct{} `type:"structure"` @@ -6977,7 +6976,6 @@ func (s *AccountWithRestoreAccess) SetAccountId(v string) *AccountWithRestoreAcc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AuthorizeClusterSecurityGroupIngressMessage type AuthorizeClusterSecurityGroupIngressInput struct { _ struct{} `type:"structure"` @@ -7047,7 +7045,6 @@ func (s *AuthorizeClusterSecurityGroupIngressInput) SetEC2SecurityGroupOwnerId(v return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AuthorizeClusterSecurityGroupIngressResult type AuthorizeClusterSecurityGroupIngressOutput struct { _ struct{} `type:"structure"` @@ -7071,7 +7068,6 @@ func (s *AuthorizeClusterSecurityGroupIngressOutput) SetClusterSecurityGroup(v * return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AuthorizeSnapshotAccessMessage type AuthorizeSnapshotAccessInput struct { _ struct{} `type:"structure"` @@ -7138,7 +7134,6 @@ func (s *AuthorizeSnapshotAccessInput) SetSnapshotIdentifier(v string) *Authoriz return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AuthorizeSnapshotAccessResult type AuthorizeSnapshotAccessOutput struct { _ struct{} `type:"structure"` @@ -7163,7 +7158,6 @@ func (s *AuthorizeSnapshotAccessOutput) SetSnapshot(v *Snapshot) *AuthorizeSnaps } // Describes an availability zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/AvailabilityZone type AvailabilityZone struct { _ struct{} `type:"structure"` @@ -7188,7 +7182,6 @@ func (s *AvailabilityZone) SetName(v string) *AvailabilityZone { } // Describes a cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/Cluster type Cluster struct { _ struct{} `type:"structure"` @@ -7568,7 +7561,6 @@ func (s *Cluster) SetVpcSecurityGroups(v []*VpcSecurityGroupMembership) *Cluster // An AWS Identity and Access Management (IAM) role that can be used by the // associated Amazon Redshift cluster to access other AWS services. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ClusterIamRole type ClusterIamRole struct { _ struct{} `type:"structure"` @@ -7612,7 +7604,6 @@ func (s *ClusterIamRole) SetIamRoleArn(v string) *ClusterIamRole { } // The identifier of a node in a cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ClusterNode type ClusterNode struct { _ struct{} `type:"structure"` @@ -7655,7 +7646,6 @@ func (s *ClusterNode) SetPublicIPAddress(v string) *ClusterNode { } // Describes a parameter group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ClusterParameterGroup type ClusterParameterGroup struct { _ struct{} `type:"structure"` @@ -7707,7 +7697,6 @@ func (s *ClusterParameterGroup) SetTags(v []*Tag) *ClusterParameterGroup { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ClusterParameterGroupNameMessage type ClusterParameterGroupNameMessage struct { _ struct{} `type:"structure"` @@ -7743,7 +7732,6 @@ func (s *ClusterParameterGroupNameMessage) SetParameterGroupStatus(v string) *Cl } // Describes the status of a parameter group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ClusterParameterGroupStatus type ClusterParameterGroupStatus struct { _ struct{} `type:"structure"` @@ -7790,7 +7778,6 @@ func (s *ClusterParameterGroupStatus) SetParameterGroupName(v string) *ClusterPa } // Describes the status of a parameter group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ClusterParameterStatus type ClusterParameterStatus struct { _ struct{} `type:"structure"` @@ -7856,7 +7843,6 @@ func (s *ClusterParameterStatus) SetParameterName(v string) *ClusterParameterSta } // Describes a security group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ClusterSecurityGroup type ClusterSecurityGroup struct { _ struct{} `type:"structure"` @@ -7919,7 +7905,6 @@ func (s *ClusterSecurityGroup) SetTags(v []*Tag) *ClusterSecurityGroup { } // Describes a cluster security group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ClusterSecurityGroupMembership type ClusterSecurityGroupMembership struct { _ struct{} `type:"structure"` @@ -7954,7 +7939,6 @@ func (s *ClusterSecurityGroupMembership) SetStatus(v string) *ClusterSecurityGro // Returns the destination region and retention period that are configured for // cross-region snapshot copy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ClusterSnapshotCopyStatus type ClusterSnapshotCopyStatus struct { _ struct{} `type:"structure"` @@ -7999,7 +7983,6 @@ func (s *ClusterSnapshotCopyStatus) SetSnapshotCopyGrantName(v string) *ClusterS } // Describes a subnet group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ClusterSubnetGroup type ClusterSubnetGroup struct { _ struct{} `type:"structure"` @@ -8071,7 +8054,6 @@ func (s *ClusterSubnetGroup) SetVpcId(v string) *ClusterSubnetGroup { // Describes a cluster version, including the parameter group family and description // of the version. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ClusterVersion type ClusterVersion struct { _ struct{} `type:"structure"` @@ -8113,7 +8095,6 @@ func (s *ClusterVersion) SetDescription(v string) *ClusterVersion { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CopyClusterSnapshotMessage type CopyClusterSnapshotInput struct { _ struct{} `type:"structure"` @@ -8198,7 +8179,6 @@ func (s *CopyClusterSnapshotInput) SetTargetSnapshotIdentifier(v string) *CopyCl return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CopyClusterSnapshotResult type CopyClusterSnapshotOutput struct { _ struct{} `type:"structure"` @@ -8222,7 +8202,6 @@ func (s *CopyClusterSnapshotOutput) SetSnapshot(v *Snapshot) *CopyClusterSnapsho return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterMessage type CreateClusterInput struct { _ struct{} `type:"structure"` @@ -8688,7 +8667,6 @@ func (s *CreateClusterInput) SetVpcSecurityGroupIds(v []*string) *CreateClusterI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterResult type CreateClusterOutput struct { _ struct{} `type:"structure"` @@ -8712,7 +8690,6 @@ func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterParameterGroupMessage type CreateClusterParameterGroupInput struct { _ struct{} `type:"structure"` @@ -8808,7 +8785,6 @@ func (s *CreateClusterParameterGroupInput) SetTags(v []*Tag) *CreateClusterParam return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterParameterGroupResult type CreateClusterParameterGroupOutput struct { _ struct{} `type:"structure"` @@ -8832,7 +8808,6 @@ func (s *CreateClusterParameterGroupOutput) SetClusterParameterGroup(v *ClusterP return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterSecurityGroupMessage type CreateClusterSecurityGroupInput struct { _ struct{} `type:"structure"` @@ -8906,7 +8881,6 @@ func (s *CreateClusterSecurityGroupInput) SetTags(v []*Tag) *CreateClusterSecuri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterSecurityGroupResult type CreateClusterSecurityGroupOutput struct { _ struct{} `type:"structure"` @@ -8930,7 +8904,6 @@ func (s *CreateClusterSecurityGroupOutput) SetClusterSecurityGroup(v *ClusterSec return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterSnapshotMessage type CreateClusterSnapshotInput struct { _ struct{} `type:"structure"` @@ -9005,7 +8978,6 @@ func (s *CreateClusterSnapshotInput) SetTags(v []*Tag) *CreateClusterSnapshotInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterSnapshotResult type CreateClusterSnapshotOutput struct { _ struct{} `type:"structure"` @@ -9029,7 +9001,6 @@ func (s *CreateClusterSnapshotOutput) SetSnapshot(v *Snapshot) *CreateClusterSna return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterSubnetGroupMessage type CreateClusterSubnetGroupInput struct { _ struct{} `type:"structure"` @@ -9117,7 +9088,6 @@ func (s *CreateClusterSubnetGroupInput) SetTags(v []*Tag) *CreateClusterSubnetGr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateClusterSubnetGroupResult type CreateClusterSubnetGroupOutput struct { _ struct{} `type:"structure"` @@ -9141,7 +9111,6 @@ func (s *CreateClusterSubnetGroupOutput) SetClusterSubnetGroup(v *ClusterSubnetG return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateEventSubscriptionMessage type CreateEventSubscriptionInput struct { _ struct{} `type:"structure"` @@ -9282,7 +9251,6 @@ func (s *CreateEventSubscriptionInput) SetTags(v []*Tag) *CreateEventSubscriptio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateEventSubscriptionResult type CreateEventSubscriptionOutput struct { _ struct{} `type:"structure"` @@ -9306,7 +9274,6 @@ func (s *CreateEventSubscriptionOutput) SetEventSubscription(v *EventSubscriptio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateHsmClientCertificateMessage type CreateHsmClientCertificateInput struct { _ struct{} `type:"structure"` @@ -9355,7 +9322,6 @@ func (s *CreateHsmClientCertificateInput) SetTags(v []*Tag) *CreateHsmClientCert return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateHsmClientCertificateResult type CreateHsmClientCertificateOutput struct { _ struct{} `type:"structure"` @@ -9381,7 +9347,6 @@ func (s *CreateHsmClientCertificateOutput) SetHsmClientCertificate(v *HsmClientC return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateHsmConfigurationMessage type CreateHsmConfigurationInput struct { _ struct{} `type:"structure"` @@ -9501,7 +9466,6 @@ func (s *CreateHsmConfigurationInput) SetTags(v []*Tag) *CreateHsmConfigurationI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateHsmConfigurationResult type CreateHsmConfigurationOutput struct { _ struct{} `type:"structure"` @@ -9528,7 +9492,6 @@ func (s *CreateHsmConfigurationOutput) SetHsmConfiguration(v *HsmConfiguration) } // The result of the CreateSnapshotCopyGrant action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateSnapshotCopyGrantMessage type CreateSnapshotCopyGrantInput struct { _ struct{} `type:"structure"` @@ -9599,7 +9562,6 @@ func (s *CreateSnapshotCopyGrantInput) SetTags(v []*Tag) *CreateSnapshotCopyGran return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateSnapshotCopyGrantResult type CreateSnapshotCopyGrantOutput struct { _ struct{} `type:"structure"` @@ -9630,7 +9592,6 @@ func (s *CreateSnapshotCopyGrantOutput) SetSnapshotCopyGrant(v *SnapshotCopyGran } // Contains the output from the CreateTags action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateTagsMessage type CreateTagsInput struct { _ struct{} `type:"structure"` @@ -9688,7 +9649,6 @@ func (s *CreateTagsInput) SetTags(v []*Tag) *CreateTagsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/CreateTagsOutput type CreateTagsOutput struct { _ struct{} `type:"structure"` } @@ -9704,7 +9664,6 @@ func (s CreateTagsOutput) GoString() string { } // Describes the default cluster parameters for a parameter group family. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DefaultClusterParameters type DefaultClusterParameters struct { _ struct{} `type:"structure"` @@ -9751,7 +9710,6 @@ func (s *DefaultClusterParameters) SetParameters(v []*Parameter) *DefaultCluster return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterMessage type DeleteClusterInput struct { _ struct{} `type:"structure"` @@ -9835,7 +9793,6 @@ func (s *DeleteClusterInput) SetSkipFinalClusterSnapshot(v bool) *DeleteClusterI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterResult type DeleteClusterOutput struct { _ struct{} `type:"structure"` @@ -9859,7 +9816,6 @@ func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterParameterGroupMessage type DeleteClusterParameterGroupInput struct { _ struct{} `type:"structure"` @@ -9904,7 +9860,6 @@ func (s *DeleteClusterParameterGroupInput) SetParameterGroupName(v string) *Dele return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterParameterGroupOutput type DeleteClusterParameterGroupOutput struct { _ struct{} `type:"structure"` } @@ -9919,7 +9874,6 @@ func (s DeleteClusterParameterGroupOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterSecurityGroupMessage type DeleteClusterSecurityGroupInput struct { _ struct{} `type:"structure"` @@ -9958,7 +9912,6 @@ func (s *DeleteClusterSecurityGroupInput) SetClusterSecurityGroupName(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterSecurityGroupOutput type DeleteClusterSecurityGroupOutput struct { _ struct{} `type:"structure"` } @@ -9973,7 +9926,6 @@ func (s DeleteClusterSecurityGroupOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterSnapshotMessage type DeleteClusterSnapshotInput struct { _ struct{} `type:"structure"` @@ -10028,7 +9980,6 @@ func (s *DeleteClusterSnapshotInput) SetSnapshotIdentifier(v string) *DeleteClus return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterSnapshotResult type DeleteClusterSnapshotOutput struct { _ struct{} `type:"structure"` @@ -10052,7 +10003,6 @@ func (s *DeleteClusterSnapshotOutput) SetSnapshot(v *Snapshot) *DeleteClusterSna return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterSubnetGroupMessage type DeleteClusterSubnetGroupInput struct { _ struct{} `type:"structure"` @@ -10091,7 +10041,6 @@ func (s *DeleteClusterSubnetGroupInput) SetClusterSubnetGroupName(v string) *Del return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteClusterSubnetGroupOutput type DeleteClusterSubnetGroupOutput struct { _ struct{} `type:"structure"` } @@ -10106,7 +10055,6 @@ func (s DeleteClusterSubnetGroupOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteEventSubscriptionMessage type DeleteEventSubscriptionInput struct { _ struct{} `type:"structure"` @@ -10145,7 +10093,6 @@ func (s *DeleteEventSubscriptionInput) SetSubscriptionName(v string) *DeleteEven return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteEventSubscriptionOutput type DeleteEventSubscriptionOutput struct { _ struct{} `type:"structure"` } @@ -10160,7 +10107,6 @@ func (s DeleteEventSubscriptionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteHsmClientCertificateMessage type DeleteHsmClientCertificateInput struct { _ struct{} `type:"structure"` @@ -10199,7 +10145,6 @@ func (s *DeleteHsmClientCertificateInput) SetHsmClientCertificateIdentifier(v st return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteHsmClientCertificateOutput type DeleteHsmClientCertificateOutput struct { _ struct{} `type:"structure"` } @@ -10214,7 +10159,6 @@ func (s DeleteHsmClientCertificateOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteHsmConfigurationMessage type DeleteHsmConfigurationInput struct { _ struct{} `type:"structure"` @@ -10253,7 +10197,6 @@ func (s *DeleteHsmConfigurationInput) SetHsmConfigurationIdentifier(v string) *D return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteHsmConfigurationOutput type DeleteHsmConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -10269,7 +10212,6 @@ func (s DeleteHsmConfigurationOutput) GoString() string { } // The result of the DeleteSnapshotCopyGrant action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteSnapshotCopyGrantMessage type DeleteSnapshotCopyGrantInput struct { _ struct{} `type:"structure"` @@ -10308,7 +10250,6 @@ func (s *DeleteSnapshotCopyGrantInput) SetSnapshotCopyGrantName(v string) *Delet return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteSnapshotCopyGrantOutput type DeleteSnapshotCopyGrantOutput struct { _ struct{} `type:"structure"` } @@ -10324,7 +10265,6 @@ func (s DeleteSnapshotCopyGrantOutput) GoString() string { } // Contains the output from the DeleteTags action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteTagsMessage type DeleteTagsInput struct { _ struct{} `type:"structure"` @@ -10378,7 +10318,6 @@ func (s *DeleteTagsInput) SetTagKeys(v []*string) *DeleteTagsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DeleteTagsOutput type DeleteTagsOutput struct { _ struct{} `type:"structure"` } @@ -10393,7 +10332,6 @@ func (s DeleteTagsOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterParameterGroupsMessage type DescribeClusterParameterGroupsInput struct { _ struct{} `type:"structure"` @@ -10477,7 +10415,6 @@ func (s *DescribeClusterParameterGroupsInput) SetTagValues(v []*string) *Describ } // Contains the output from the DescribeClusterParameterGroups action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ClusterParameterGroupsMessage type DescribeClusterParameterGroupsOutput struct { _ struct{} `type:"structure"` @@ -10515,7 +10452,6 @@ func (s *DescribeClusterParameterGroupsOutput) SetParameterGroups(v []*ClusterPa return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterParametersMessage type DescribeClusterParametersInput struct { _ struct{} `type:"structure"` @@ -10600,7 +10536,6 @@ func (s *DescribeClusterParametersInput) SetSource(v string) *DescribeClusterPar } // Contains the output from the DescribeClusterParameters action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ClusterParameterGroupDetails type DescribeClusterParametersOutput struct { _ struct{} `type:"structure"` @@ -10638,7 +10573,6 @@ func (s *DescribeClusterParametersOutput) SetParameters(v []*Parameter) *Describ return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterSecurityGroupsMessage type DescribeClusterSecurityGroupsInput struct { _ struct{} `type:"structure"` @@ -10727,7 +10661,6 @@ func (s *DescribeClusterSecurityGroupsInput) SetTagValues(v []*string) *Describe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ClusterSecurityGroupMessage type DescribeClusterSecurityGroupsOutput struct { _ struct{} `type:"structure"` @@ -10764,7 +10697,6 @@ func (s *DescribeClusterSecurityGroupsOutput) SetMarker(v string) *DescribeClust return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterSnapshotsMessage type DescribeClusterSnapshotsInput struct { _ struct{} `type:"structure"` @@ -10906,7 +10838,6 @@ func (s *DescribeClusterSnapshotsInput) SetTagValues(v []*string) *DescribeClust } // Contains the output from the DescribeClusterSnapshots action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/SnapshotMessage type DescribeClusterSnapshotsOutput struct { _ struct{} `type:"structure"` @@ -10943,7 +10874,6 @@ func (s *DescribeClusterSnapshotsOutput) SetSnapshots(v []*Snapshot) *DescribeCl return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterSubnetGroupsMessage type DescribeClusterSubnetGroupsInput struct { _ struct{} `type:"structure"` @@ -11026,7 +10956,6 @@ func (s *DescribeClusterSubnetGroupsInput) SetTagValues(v []*string) *DescribeCl } // Contains the output from the DescribeClusterSubnetGroups action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ClusterSubnetGroupMessage type DescribeClusterSubnetGroupsOutput struct { _ struct{} `type:"structure"` @@ -11063,7 +10992,6 @@ func (s *DescribeClusterSubnetGroupsOutput) SetMarker(v string) *DescribeCluster return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClusterVersionsMessage type DescribeClusterVersionsInput struct { _ struct{} `type:"structure"` @@ -11136,7 +11064,6 @@ func (s *DescribeClusterVersionsInput) SetMaxRecords(v int64) *DescribeClusterVe } // Contains the output from the DescribeClusterVersions action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ClusterVersionsMessage type DescribeClusterVersionsOutput struct { _ struct{} `type:"structure"` @@ -11173,7 +11100,6 @@ func (s *DescribeClusterVersionsOutput) SetMarker(v string) *DescribeClusterVers return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeClustersMessage type DescribeClustersInput struct { _ struct{} `type:"structure"` @@ -11261,7 +11187,6 @@ func (s *DescribeClustersInput) SetTagValues(v []*string) *DescribeClustersInput } // Contains the output from the DescribeClusters action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ClustersMessage type DescribeClustersOutput struct { _ struct{} `type:"structure"` @@ -11298,7 +11223,6 @@ func (s *DescribeClustersOutput) SetMarker(v string) *DescribeClustersOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeDefaultClusterParametersMessage type DescribeDefaultClusterParametersInput struct { _ struct{} `type:"structure"` @@ -11367,7 +11291,6 @@ func (s *DescribeDefaultClusterParametersInput) SetParameterGroupFamily(v string return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeDefaultClusterParametersResult type DescribeDefaultClusterParametersOutput struct { _ struct{} `type:"structure"` @@ -11391,7 +11314,6 @@ func (s *DescribeDefaultClusterParametersOutput) SetDefaultClusterParameters(v * return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeEventCategoriesMessage type DescribeEventCategoriesInput struct { _ struct{} `type:"structure"` @@ -11418,7 +11340,6 @@ func (s *DescribeEventCategoriesInput) SetSourceType(v string) *DescribeEventCat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/EventCategoriesMessage type DescribeEventCategoriesOutput struct { _ struct{} `type:"structure"` @@ -11442,7 +11363,6 @@ func (s *DescribeEventCategoriesOutput) SetEventCategoriesMapList(v []*EventCate return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeEventSubscriptionsMessage type DescribeEventSubscriptionsInput struct { _ struct{} `type:"structure"` @@ -11524,7 +11444,6 @@ func (s *DescribeEventSubscriptionsInput) SetTagValues(v []*string) *DescribeEve return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/EventSubscriptionsMessage type DescribeEventSubscriptionsOutput struct { _ struct{} `type:"structure"` @@ -11561,7 +11480,6 @@ func (s *DescribeEventSubscriptionsOutput) SetMarker(v string) *DescribeEventSub return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeEventsMessage type DescribeEventsInput struct { _ struct{} `type:"structure"` @@ -11691,7 +11609,6 @@ func (s *DescribeEventsInput) SetStartTime(v time.Time) *DescribeEventsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/EventsMessage type DescribeEventsOutput struct { _ struct{} `type:"structure"` @@ -11728,7 +11645,6 @@ func (s *DescribeEventsOutput) SetMarker(v string) *DescribeEventsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeHsmClientCertificatesMessage type DescribeHsmClientCertificatesInput struct { _ struct{} `type:"structure"` @@ -11812,7 +11728,6 @@ func (s *DescribeHsmClientCertificatesInput) SetTagValues(v []*string) *Describe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/HsmClientCertificateMessage type DescribeHsmClientCertificatesOutput struct { _ struct{} `type:"structure"` @@ -11851,7 +11766,6 @@ func (s *DescribeHsmClientCertificatesOutput) SetMarker(v string) *DescribeHsmCl return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeHsmConfigurationsMessage type DescribeHsmConfigurationsInput struct { _ struct{} `type:"structure"` @@ -11935,7 +11849,6 @@ func (s *DescribeHsmConfigurationsInput) SetTagValues(v []*string) *DescribeHsmC return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/HsmConfigurationMessage type DescribeHsmConfigurationsOutput struct { _ struct{} `type:"structure"` @@ -11972,7 +11885,6 @@ func (s *DescribeHsmConfigurationsOutput) SetMarker(v string) *DescribeHsmConfig return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeLoggingStatusMessage type DescribeLoggingStatusInput struct { _ struct{} `type:"structure"` @@ -12013,7 +11925,6 @@ func (s *DescribeLoggingStatusInput) SetClusterIdentifier(v string) *DescribeLog return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeOrderableClusterOptionsMessage type DescribeOrderableClusterOptionsInput struct { _ struct{} `type:"structure"` @@ -12083,7 +11994,6 @@ func (s *DescribeOrderableClusterOptionsInput) SetNodeType(v string) *DescribeOr } // Contains the output from the DescribeOrderableClusterOptions action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/OrderableClusterOptionsMessage type DescribeOrderableClusterOptionsOutput struct { _ struct{} `type:"structure"` @@ -12121,7 +12031,6 @@ func (s *DescribeOrderableClusterOptionsOutput) SetOrderableClusterOptions(v []* return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeReservedNodeOfferingsMessage type DescribeReservedNodeOfferingsInput struct { _ struct{} `type:"structure"` @@ -12175,7 +12084,6 @@ func (s *DescribeReservedNodeOfferingsInput) SetReservedNodeOfferingId(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ReservedNodeOfferingsMessage type DescribeReservedNodeOfferingsOutput struct { _ struct{} `type:"structure"` @@ -12212,7 +12120,6 @@ func (s *DescribeReservedNodeOfferingsOutput) SetReservedNodeOfferings(v []*Rese return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeReservedNodesMessage type DescribeReservedNodesInput struct { _ struct{} `type:"structure"` @@ -12265,7 +12172,6 @@ func (s *DescribeReservedNodesInput) SetReservedNodeId(v string) *DescribeReserv return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ReservedNodesMessage type DescribeReservedNodesOutput struct { _ struct{} `type:"structure"` @@ -12302,7 +12208,6 @@ func (s *DescribeReservedNodesOutput) SetReservedNodes(v []*ReservedNode) *Descr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeResizeMessage type DescribeResizeInput struct { _ struct{} `type:"structure"` @@ -12346,7 +12251,6 @@ func (s *DescribeResizeInput) SetClusterIdentifier(v string) *DescribeResizeInpu } // Describes the result of a cluster resize operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ResizeProgressMessage type DescribeResizeOutput struct { _ struct{} `type:"structure"` @@ -12493,7 +12397,6 @@ func (s *DescribeResizeOutput) SetTotalResizeDataInMegaBytes(v int64) *DescribeR } // The result of the DescribeSnapshotCopyGrants action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeSnapshotCopyGrantsMessage type DescribeSnapshotCopyGrantsInput struct { _ struct{} `type:"structure"` @@ -12578,7 +12481,6 @@ func (s *DescribeSnapshotCopyGrantsInput) SetTagValues(v []*string) *DescribeSna return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/SnapshotCopyGrantMessage type DescribeSnapshotCopyGrantsOutput struct { _ struct{} `type:"structure"` @@ -12619,7 +12521,6 @@ func (s *DescribeSnapshotCopyGrantsOutput) SetSnapshotCopyGrants(v []*SnapshotCo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeTableRestoreStatusMessage type DescribeTableRestoreStatusInput struct { _ struct{} `type:"structure"` @@ -12676,7 +12577,6 @@ func (s *DescribeTableRestoreStatusInput) SetTableRestoreRequestId(v string) *De return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/TableRestoreStatusMessage type DescribeTableRestoreStatusOutput struct { _ struct{} `type:"structure"` @@ -12710,7 +12610,6 @@ func (s *DescribeTableRestoreStatusOutput) SetTableRestoreStatusDetails(v []*Tab return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DescribeTagsMessage type DescribeTagsInput struct { _ struct{} `type:"structure"` @@ -12823,7 +12722,6 @@ func (s *DescribeTagsInput) SetTagValues(v []*string) *DescribeTagsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/TaggedResourceListMessage type DescribeTagsOutput struct { _ struct{} `type:"structure"` @@ -12860,7 +12758,6 @@ func (s *DescribeTagsOutput) SetTaggedResources(v []*TaggedResource) *DescribeTa return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DisableLoggingMessage type DisableLoggingInput struct { _ struct{} `type:"structure"` @@ -12901,7 +12798,6 @@ func (s *DisableLoggingInput) SetClusterIdentifier(v string) *DisableLoggingInpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DisableSnapshotCopyMessage type DisableSnapshotCopyInput struct { _ struct{} `type:"structure"` @@ -12944,7 +12840,6 @@ func (s *DisableSnapshotCopyInput) SetClusterIdentifier(v string) *DisableSnapsh return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/DisableSnapshotCopyResult type DisableSnapshotCopyOutput struct { _ struct{} `type:"structure"` @@ -12969,7 +12864,6 @@ func (s *DisableSnapshotCopyOutput) SetCluster(v *Cluster) *DisableSnapshotCopyO } // Describes an Amazon EC2 security group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/EC2SecurityGroup type EC2SecurityGroup struct { _ struct{} `type:"structure"` @@ -13022,7 +12916,6 @@ func (s *EC2SecurityGroup) SetTags(v []*Tag) *EC2SecurityGroup { } // Describes the status of the elastic IP (EIP) address. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ElasticIpStatus type ElasticIpStatus struct { _ struct{} `type:"structure"` @@ -13055,7 +12948,6 @@ func (s *ElasticIpStatus) SetStatus(v string) *ElasticIpStatus { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/EnableLoggingMessage type EnableLoggingInput struct { _ struct{} `type:"structure"` @@ -13143,7 +13035,6 @@ func (s *EnableLoggingInput) SetS3KeyPrefix(v string) *EnableLoggingInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/EnableSnapshotCopyMessage type EnableSnapshotCopyInput struct { _ struct{} `type:"structure"` @@ -13227,7 +13118,6 @@ func (s *EnableSnapshotCopyInput) SetSnapshotCopyGrantName(v string) *EnableSnap return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/EnableSnapshotCopyResult type EnableSnapshotCopyOutput struct { _ struct{} `type:"structure"` @@ -13252,7 +13142,6 @@ func (s *EnableSnapshotCopyOutput) SetCluster(v *Cluster) *EnableSnapshotCopyOut } // Describes a connection endpoint. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/Endpoint type Endpoint struct { _ struct{} `type:"structure"` @@ -13286,7 +13175,6 @@ func (s *Endpoint) SetPort(v int64) *Endpoint { } // Describes an event. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/Event type Event struct { _ struct{} `type:"structure"` @@ -13369,7 +13257,6 @@ func (s *Event) SetSourceType(v string) *Event { } // Describes event categories. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/EventCategoriesMap type EventCategoriesMap struct { _ struct{} `type:"structure"` @@ -13404,7 +13291,6 @@ func (s *EventCategoriesMap) SetSourceType(v string) *EventCategoriesMap { } // Describes event information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/EventInfoMap type EventInfoMap struct { _ struct{} `type:"structure"` @@ -13458,7 +13344,6 @@ func (s *EventInfoMap) SetSeverity(v string) *EventInfoMap { } // Describes event subscriptions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/EventSubscription type EventSubscription struct { _ struct{} `type:"structure"` @@ -13592,7 +13477,6 @@ func (s *EventSubscription) SetTags(v []*Tag) *EventSubscription { } // The request parameters to get cluster credentials. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/GetClusterCredentialsMessage type GetClusterCredentialsInput struct { _ struct{} `type:"structure"` @@ -13746,7 +13630,6 @@ func (s *GetClusterCredentialsInput) SetDurationSeconds(v int64) *GetClusterCred // Temporary credentials with authorization to log on to an Amazon Redshift // database. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ClusterCredentials type GetClusterCredentialsOutput struct { _ struct{} `type:"structure"` @@ -13797,7 +13680,6 @@ func (s *GetClusterCredentialsOutput) SetExpiration(v time.Time) *GetClusterCred // Returns information about an HSM client certificate. The certificate is stored // in a secure Hardware Storage Module (HSM), and used by the Amazon Redshift // cluster to encrypt data files. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/HsmClientCertificate type HsmClientCertificate struct { _ struct{} `type:"structure"` @@ -13843,7 +13725,6 @@ func (s *HsmClientCertificate) SetTags(v []*Tag) *HsmClientCertificate { // Returns information about an HSM configuration, which is an object that describes // to Amazon Redshift clusters the information they require to connect to an // HSM where they can store database encryption keys. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/HsmConfiguration type HsmConfiguration struct { _ struct{} `type:"structure"` @@ -13905,7 +13786,6 @@ func (s *HsmConfiguration) SetTags(v []*Tag) *HsmConfiguration { } // Describes the status of changes to HSM settings. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/HsmStatus type HsmStatus struct { _ struct{} `type:"structure"` @@ -13953,7 +13833,6 @@ func (s *HsmStatus) SetStatus(v string) *HsmStatus { } // Describes an IP range used in a security group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/IPRange type IPRange struct { _ struct{} `type:"structure"` @@ -13996,7 +13875,6 @@ func (s *IPRange) SetTags(v []*Tag) *IPRange { } // Describes the status of logging for a cluster. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/LoggingStatus type LoggingStatus struct { _ struct{} `type:"structure"` @@ -14065,7 +13943,6 @@ func (s *LoggingStatus) SetS3KeyPrefix(v string) *LoggingStatus { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterIamRolesMessage type ModifyClusterIamRolesInput struct { _ struct{} `type:"structure"` @@ -14126,7 +14003,6 @@ func (s *ModifyClusterIamRolesInput) SetRemoveIamRoles(v []*string) *ModifyClust return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterIamRolesResult type ModifyClusterIamRolesOutput struct { _ struct{} `type:"structure"` @@ -14150,7 +14026,6 @@ func (s *ModifyClusterIamRolesOutput) SetCluster(v *Cluster) *ModifyClusterIamRo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterMessage type ModifyClusterInput struct { _ struct{} `type:"structure"` @@ -14484,7 +14359,6 @@ func (s *ModifyClusterInput) SetVpcSecurityGroupIds(v []*string) *ModifyClusterI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterResult type ModifyClusterOutput struct { _ struct{} `type:"structure"` @@ -14508,7 +14382,6 @@ func (s *ModifyClusterOutput) SetCluster(v *Cluster) *ModifyClusterOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterParameterGroupMessage type ModifyClusterParameterGroupInput struct { _ struct{} `type:"structure"` @@ -14568,7 +14441,6 @@ func (s *ModifyClusterParameterGroupInput) SetParameters(v []*Parameter) *Modify return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterSubnetGroupMessage type ModifyClusterSubnetGroupInput struct { _ struct{} `type:"structure"` @@ -14631,7 +14503,6 @@ func (s *ModifyClusterSubnetGroupInput) SetSubnetIds(v []*string) *ModifyCluster return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyClusterSubnetGroupResult type ModifyClusterSubnetGroupOutput struct { _ struct{} `type:"structure"` @@ -14655,7 +14526,6 @@ func (s *ModifyClusterSubnetGroupOutput) SetClusterSubnetGroup(v *ClusterSubnetG return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyEventSubscriptionMessage type ModifyEventSubscriptionInput struct { _ struct{} `type:"structure"` @@ -14771,7 +14641,6 @@ func (s *ModifyEventSubscriptionInput) SetSubscriptionName(v string) *ModifyEven return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifyEventSubscriptionResult type ModifyEventSubscriptionOutput struct { _ struct{} `type:"structure"` @@ -14795,7 +14664,6 @@ func (s *ModifyEventSubscriptionOutput) SetEventSubscription(v *EventSubscriptio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifySnapshotCopyRetentionPeriodMessage type ModifySnapshotCopyRetentionPeriodInput struct { _ struct{} `type:"structure"` @@ -14860,7 +14728,6 @@ func (s *ModifySnapshotCopyRetentionPeriodInput) SetRetentionPeriod(v int64) *Mo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ModifySnapshotCopyRetentionPeriodResult type ModifySnapshotCopyRetentionPeriodOutput struct { _ struct{} `type:"structure"` @@ -14885,7 +14752,6 @@ func (s *ModifySnapshotCopyRetentionPeriodOutput) SetCluster(v *Cluster) *Modify } // Describes an orderable cluster option. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/OrderableClusterOption type OrderableClusterOption struct { _ struct{} `type:"structure"` @@ -14937,7 +14803,6 @@ func (s *OrderableClusterOption) SetNodeType(v string) *OrderableClusterOption { } // Describes a parameter in a cluster parameter group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/Parameter type Parameter struct { _ struct{} `type:"structure"` @@ -15041,7 +14906,6 @@ func (s *Parameter) SetSource(v string) *Parameter { // Describes cluster attributes that are in a pending state. A change to one // or more the attributes was requested and is in progress or will be applied. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/PendingModifiedValues type PendingModifiedValues struct { _ struct{} `type:"structure"` @@ -15146,7 +15010,6 @@ func (s *PendingModifiedValues) SetPubliclyAccessible(v bool) *PendingModifiedVa return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/PurchaseReservedNodeOfferingMessage type PurchaseReservedNodeOfferingInput struct { _ struct{} `type:"structure"` @@ -15196,7 +15059,6 @@ func (s *PurchaseReservedNodeOfferingInput) SetReservedNodeOfferingId(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/PurchaseReservedNodeOfferingResult type PurchaseReservedNodeOfferingOutput struct { _ struct{} `type:"structure"` @@ -15221,7 +15083,6 @@ func (s *PurchaseReservedNodeOfferingOutput) SetReservedNode(v *ReservedNode) *P return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RebootClusterMessage type RebootClusterInput struct { _ struct{} `type:"structure"` @@ -15260,7 +15121,6 @@ func (s *RebootClusterInput) SetClusterIdentifier(v string) *RebootClusterInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RebootClusterResult type RebootClusterOutput struct { _ struct{} `type:"structure"` @@ -15285,7 +15145,6 @@ func (s *RebootClusterOutput) SetCluster(v *Cluster) *RebootClusterOutput { } // Describes a recurring charge. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RecurringCharge type RecurringCharge struct { _ struct{} `type:"structure"` @@ -15321,7 +15180,6 @@ func (s *RecurringCharge) SetRecurringChargeFrequency(v string) *RecurringCharge // Describes a reserved node. You can call the DescribeReservedNodeOfferings // API to obtain the available reserved node offerings. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ReservedNode type ReservedNode struct { _ struct{} `type:"structure"` @@ -15457,7 +15315,6 @@ func (s *ReservedNode) SetUsagePrice(v float64) *ReservedNode { } // Describes a reserved node offering. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ReservedNodeOffering type ReservedNodeOffering struct { _ struct{} `type:"structure"` @@ -15549,7 +15406,6 @@ func (s *ReservedNodeOffering) SetUsagePrice(v float64) *ReservedNodeOffering { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/ResetClusterParameterGroupMessage type ResetClusterParameterGroupInput struct { _ struct{} `type:"structure"` @@ -15612,7 +15468,6 @@ func (s *ResetClusterParameterGroupInput) SetResetAllParameters(v bool) *ResetCl return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RestoreFromClusterSnapshotMessage type RestoreFromClusterSnapshotInput struct { _ struct{} `type:"structure"` @@ -15943,7 +15798,6 @@ func (s *RestoreFromClusterSnapshotInput) SetVpcSecurityGroupIds(v []*string) *R return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RestoreFromClusterSnapshotResult type RestoreFromClusterSnapshotOutput struct { _ struct{} `type:"structure"` @@ -15969,7 +15823,6 @@ func (s *RestoreFromClusterSnapshotOutput) SetCluster(v *Cluster) *RestoreFromCl // Describes the status of a cluster restore action. Returns null if the cluster // was not created by restoring a snapshot. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RestoreStatus type RestoreStatus struct { _ struct{} `type:"structure"` @@ -16042,7 +15895,6 @@ func (s *RestoreStatus) SetStatus(v string) *RestoreStatus { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RestoreTableFromClusterSnapshotMessage type RestoreTableFromClusterSnapshotInput struct { _ struct{} `type:"structure"` @@ -16167,7 +16019,6 @@ func (s *RestoreTableFromClusterSnapshotInput) SetTargetSchemaName(v string) *Re return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RestoreTableFromClusterSnapshotResult type RestoreTableFromClusterSnapshotOutput struct { _ struct{} `type:"structure"` @@ -16191,7 +16042,6 @@ func (s *RestoreTableFromClusterSnapshotOutput) SetTableRestoreStatus(v *TableRe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RevokeClusterSecurityGroupIngressMessage type RevokeClusterSecurityGroupIngressInput struct { _ struct{} `type:"structure"` @@ -16266,7 +16116,6 @@ func (s *RevokeClusterSecurityGroupIngressInput) SetEC2SecurityGroupOwnerId(v st return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RevokeClusterSecurityGroupIngressResult type RevokeClusterSecurityGroupIngressOutput struct { _ struct{} `type:"structure"` @@ -16290,7 +16139,6 @@ func (s *RevokeClusterSecurityGroupIngressOutput) SetClusterSecurityGroup(v *Clu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RevokeSnapshotAccessMessage type RevokeSnapshotAccessInput struct { _ struct{} `type:"structure"` @@ -16355,7 +16203,6 @@ func (s *RevokeSnapshotAccessInput) SetSnapshotIdentifier(v string) *RevokeSnaps return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RevokeSnapshotAccessResult type RevokeSnapshotAccessOutput struct { _ struct{} `type:"structure"` @@ -16379,7 +16226,6 @@ func (s *RevokeSnapshotAccessOutput) SetSnapshot(v *Snapshot) *RevokeSnapshotAcc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RotateEncryptionKeyMessage type RotateEncryptionKeyInput struct { _ struct{} `type:"structure"` @@ -16421,7 +16267,6 @@ func (s *RotateEncryptionKeyInput) SetClusterIdentifier(v string) *RotateEncrypt return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/RotateEncryptionKeyResult type RotateEncryptionKeyOutput struct { _ struct{} `type:"structure"` @@ -16446,7 +16291,6 @@ func (s *RotateEncryptionKeyOutput) SetCluster(v *Cluster) *RotateEncryptionKeyO } // Describes a snapshot. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/Snapshot type Snapshot struct { _ struct{} `type:"structure"` @@ -16759,7 +16603,6 @@ func (s *Snapshot) SetVpcId(v string) *Snapshot { // For more information about managing snapshot copy grants, go to Amazon Redshift // Database Encryption (http://docs.aws.amazon.com/redshift/latest/mgmt/working-with-db-encryption.html) // in the Amazon Redshift Cluster Management Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/SnapshotCopyGrant type SnapshotCopyGrant struct { _ struct{} `type:"structure"` @@ -16803,7 +16646,6 @@ func (s *SnapshotCopyGrant) SetTags(v []*Tag) *SnapshotCopyGrant { } // Describes a subnet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/Subnet type Subnet struct { _ struct{} `type:"structure"` @@ -16846,7 +16688,6 @@ func (s *Subnet) SetSubnetStatus(v string) *Subnet { } // Describes the status of a RestoreTableFromClusterSnapshot operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/TableRestoreStatus type TableRestoreStatus struct { _ struct{} `type:"structure"` @@ -16993,7 +16834,6 @@ func (s *TableRestoreStatus) SetTotalDataInMegaBytes(v int64) *TableRestoreStatu } // A tag consisting of a name/value pair for a resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/Tag type Tag struct { _ struct{} `type:"structure"` @@ -17027,7 +16867,6 @@ func (s *Tag) SetValue(v string) *Tag { } // A tag and its associated resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/TaggedResource type TaggedResource struct { _ struct{} `type:"structure"` @@ -17094,7 +16933,6 @@ func (s *TaggedResource) SetTag(v *Tag) *TaggedResource { } // Describes the members of a VPC security group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/redshift-2012-12-01/VpcSecurityGroupMembership type VpcSecurityGroupMembership struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/route53/api.go b/vendor/github.com/aws/aws-sdk-go/service/route53/api.go index b4e6b0bdf..90dfe15b4 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/route53/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/route53/api.go @@ -5773,7 +5773,6 @@ func (c *Route53) UpdateTrafficPolicyInstanceWithContext(ctx aws.Context, input // A complex type that contains the type of limit that you specified in the // request and the current value for that limit. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/AccountLimit type AccountLimit struct { _ struct{} `type:"structure"` @@ -5830,7 +5829,6 @@ func (s *AccountLimit) SetValue(v int64) *AccountLimit { // A complex type that identifies the CloudWatch alarm that you want Amazon // Route 53 health checkers to use to determine whether this health check is // healthy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/AlarmIdentifier type AlarmIdentifier struct { _ struct{} `type:"structure"` @@ -5911,7 +5909,6 @@ func (s *AlarmIdentifier) SetRegion(v string) *AlarmIdentifier { // // * For information about creating failover resource record sets in a private // hosted zone, see Configuring Failover in a Private Hosted Zone (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-private-hosted-zones.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/AliasTarget type AliasTarget struct { _ struct{} `type:"structure"` @@ -6143,7 +6140,6 @@ func (s *AliasTarget) SetHostedZoneId(v string) *AliasTarget { // A complex type that contains information about the request to associate a // VPC with a private hosted zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/AssociateVPCWithHostedZoneRequest type AssociateVPCWithHostedZoneInput struct { _ struct{} `locationName:"AssociateVPCWithHostedZoneRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"` @@ -6217,7 +6213,6 @@ func (s *AssociateVPCWithHostedZoneInput) SetVPC(v *VPC) *AssociateVPCWithHosted // A complex type that contains the response information for the AssociateVPCWithHostedZone // request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/AssociateVPCWithHostedZoneResponse type AssociateVPCWithHostedZoneOutput struct { _ struct{} `type:"structure"` @@ -6244,7 +6239,6 @@ func (s *AssociateVPCWithHostedZoneOutput) SetChangeInfo(v *ChangeInfo) *Associa } // The information for each resource record set that you want to change. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/Change type Change struct { _ struct{} `type:"structure"` @@ -6318,7 +6312,6 @@ func (s *Change) SetResourceRecordSet(v *ResourceRecordSet) *Change { } // The information for a change request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ChangeBatch type ChangeBatch struct { _ struct{} `type:"structure"` @@ -6381,7 +6374,6 @@ func (s *ChangeBatch) SetComment(v string) *ChangeBatch { // A complex type that describes change information about changes made to your // hosted zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ChangeInfo type ChangeInfo struct { _ struct{} `type:"structure"` @@ -6447,7 +6439,6 @@ func (s *ChangeInfo) SetSubmittedAt(v time.Time) *ChangeInfo { } // A complex type that contains change information for the resource record set. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ChangeResourceRecordSetsRequest type ChangeResourceRecordSetsInput struct { _ struct{} `locationName:"ChangeResourceRecordSetsRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"` @@ -6507,7 +6498,6 @@ func (s *ChangeResourceRecordSetsInput) SetHostedZoneId(v string) *ChangeResourc } // A complex type containing the response for the request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ChangeResourceRecordSetsResponse type ChangeResourceRecordSetsOutput struct { _ struct{} `type:"structure"` @@ -6539,7 +6529,6 @@ func (s *ChangeResourceRecordSetsOutput) SetChangeInfo(v *ChangeInfo) *ChangeRes // A complex type that contains information about the tags that you want to // add, edit, or delete. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ChangeTagsForResourceRequest type ChangeTagsForResourceInput struct { _ struct{} `locationName:"ChangeTagsForResourceRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"` @@ -6626,7 +6615,6 @@ func (s *ChangeTagsForResourceInput) SetResourceType(v string) *ChangeTagsForRes } // Empty response for the request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ChangeTagsForResourceResponse type ChangeTagsForResourceOutput struct { _ struct{} `type:"structure"` } @@ -6643,7 +6631,6 @@ func (s ChangeTagsForResourceOutput) GoString() string { // A complex type that contains information about the CloudWatch alarm that // Amazon Route 53 is monitoring for this health check. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CloudWatchAlarmConfiguration type CloudWatchAlarmConfiguration struct { _ struct{} `type:"structure"` @@ -6755,7 +6742,6 @@ func (s *CloudWatchAlarmConfiguration) SetThreshold(v float64) *CloudWatchAlarmC } // A complex type that contains the health check request information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateHealthCheckRequest type CreateHealthCheckInput struct { _ struct{} `locationName:"CreateHealthCheckRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"` @@ -6836,7 +6822,6 @@ func (s *CreateHealthCheckInput) SetHealthCheckConfig(v *HealthCheckConfig) *Cre } // A complex type containing the response information for the new health check. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateHealthCheckResponse type CreateHealthCheckOutput struct { _ struct{} `type:"structure"` @@ -6875,7 +6860,6 @@ func (s *CreateHealthCheckOutput) SetLocation(v string) *CreateHealthCheckOutput // A complex type that contains information about the request to create a hosted // zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateHostedZoneRequest type CreateHostedZoneInput struct { _ struct{} `locationName:"CreateHostedZoneRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"` @@ -6992,7 +6976,6 @@ func (s *CreateHostedZoneInput) SetVPC(v *VPC) *CreateHostedZoneInput { } // A complex type containing the response information for the hosted zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateHostedZoneResponse type CreateHostedZoneOutput struct { _ struct{} `type:"structure"` @@ -7061,7 +7044,6 @@ func (s *CreateHostedZoneOutput) SetVPC(v *VPC) *CreateHostedZoneOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateQueryLoggingConfigRequest type CreateQueryLoggingConfigInput struct { _ struct{} `locationName:"CreateQueryLoggingConfigRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"` @@ -7123,7 +7105,6 @@ func (s *CreateQueryLoggingConfigInput) SetHostedZoneId(v string) *CreateQueryLo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateQueryLoggingConfigResponse type CreateQueryLoggingConfigOutput struct { _ struct{} `type:"structure"` @@ -7162,7 +7143,6 @@ func (s *CreateQueryLoggingConfigOutput) SetQueryLoggingConfig(v *QueryLoggingCo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateReusableDelegationSetRequest type CreateReusableDelegationSetInput struct { _ struct{} `locationName:"CreateReusableDelegationSetRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"` @@ -7218,7 +7198,6 @@ func (s *CreateReusableDelegationSetInput) SetHostedZoneId(v string) *CreateReus return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateReusableDelegationSetResponse type CreateReusableDelegationSetOutput struct { _ struct{} `type:"structure"` @@ -7257,7 +7236,6 @@ func (s *CreateReusableDelegationSetOutput) SetLocation(v string) *CreateReusabl // A complex type that contains information about the traffic policy that you // want to create. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicyRequest type CreateTrafficPolicyInput struct { _ struct{} `locationName:"CreateTrafficPolicyRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"` @@ -7322,7 +7300,6 @@ func (s *CreateTrafficPolicyInput) SetName(v string) *CreateTrafficPolicyInput { // A complex type that contains information about the resource record sets that // you want to create based on a specified traffic policy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicyInstanceRequest type CreateTrafficPolicyInstanceInput struct { _ struct{} `locationName:"CreateTrafficPolicyInstanceRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"` @@ -7431,7 +7408,6 @@ func (s *CreateTrafficPolicyInstanceInput) SetTrafficPolicyVersion(v int64) *Cre // A complex type that contains the response information for the CreateTrafficPolicyInstance // request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicyInstanceResponse type CreateTrafficPolicyInstanceOutput struct { _ struct{} `type:"structure"` @@ -7470,7 +7446,6 @@ func (s *CreateTrafficPolicyInstanceOutput) SetTrafficPolicyInstance(v *TrafficP // A complex type that contains the response information for the CreateTrafficPolicy // request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicyResponse type CreateTrafficPolicyOutput struct { _ struct{} `type:"structure"` @@ -7509,7 +7484,6 @@ func (s *CreateTrafficPolicyOutput) SetTrafficPolicy(v *TrafficPolicy) *CreateTr // A complex type that contains information about the traffic policy that you // want to create a new version for. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicyVersionRequest type CreateTrafficPolicyVersionInput struct { _ struct{} `locationName:"CreateTrafficPolicyVersionRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"` @@ -7579,7 +7553,6 @@ func (s *CreateTrafficPolicyVersionInput) SetId(v string) *CreateTrafficPolicyVe // A complex type that contains the response information for the CreateTrafficPolicyVersion // request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateTrafficPolicyVersionResponse type CreateTrafficPolicyVersionOutput struct { _ struct{} `type:"structure"` @@ -7620,7 +7593,6 @@ func (s *CreateTrafficPolicyVersionOutput) SetTrafficPolicy(v *TrafficPolicy) *C // A complex type that contains information about the request to authorize associating // a VPC with your private hosted zone. Authorization is only required when // a private hosted zone and a VPC were created by using different accounts. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateVPCAssociationAuthorizationRequest type CreateVPCAssociationAuthorizationInput struct { _ struct{} `locationName:"CreateVPCAssociationAuthorizationRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"` @@ -7682,7 +7654,6 @@ func (s *CreateVPCAssociationAuthorizationInput) SetVPC(v *VPC) *CreateVPCAssoci // A complex type that contains the response information from a CreateVPCAssociationAuthorization // request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/CreateVPCAssociationAuthorizationResponse type CreateVPCAssociationAuthorizationOutput struct { _ struct{} `type:"structure"` @@ -7721,7 +7692,6 @@ func (s *CreateVPCAssociationAuthorizationOutput) SetVPC(v *VPC) *CreateVPCAssoc // A complex type that lists the name servers in a delegation set, as well as // the CallerReference and the ID for the delegation set. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DelegationSet type DelegationSet struct { _ struct{} `type:"structure"` @@ -7768,7 +7738,6 @@ func (s *DelegationSet) SetNameServers(v []*string) *DelegationSet { } // This action deletes a health check. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteHealthCheckRequest type DeleteHealthCheckInput struct { _ struct{} `type:"structure"` @@ -7808,7 +7777,6 @@ func (s *DeleteHealthCheckInput) SetHealthCheckId(v string) *DeleteHealthCheckIn } // An empty element. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteHealthCheckResponse type DeleteHealthCheckOutput struct { _ struct{} `type:"structure"` } @@ -7824,7 +7792,6 @@ func (s DeleteHealthCheckOutput) GoString() string { } // A request to delete a hosted zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteHostedZoneRequest type DeleteHostedZoneInput struct { _ struct{} `type:"structure"` @@ -7864,7 +7831,6 @@ func (s *DeleteHostedZoneInput) SetId(v string) *DeleteHostedZoneInput { } // A complex type that contains the response to a DeleteHostedZone request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteHostedZoneResponse type DeleteHostedZoneOutput struct { _ struct{} `type:"structure"` @@ -7891,7 +7857,6 @@ func (s *DeleteHostedZoneOutput) SetChangeInfo(v *ChangeInfo) *DeleteHostedZoneO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteQueryLoggingConfigRequest type DeleteQueryLoggingConfigInput struct { _ struct{} `type:"structure"` @@ -7933,7 +7898,6 @@ func (s *DeleteQueryLoggingConfigInput) SetId(v string) *DeleteQueryLoggingConfi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteQueryLoggingConfigResponse type DeleteQueryLoggingConfigOutput struct { _ struct{} `type:"structure"` } @@ -7949,7 +7913,6 @@ func (s DeleteQueryLoggingConfigOutput) GoString() string { } // A request to delete a reusable delegation set. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteReusableDelegationSetRequest type DeleteReusableDelegationSetInput struct { _ struct{} `type:"structure"` @@ -7989,7 +7952,6 @@ func (s *DeleteReusableDelegationSetInput) SetId(v string) *DeleteReusableDelega } // An empty element. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteReusableDelegationSetResponse type DeleteReusableDelegationSetOutput struct { _ struct{} `type:"structure"` } @@ -8005,7 +7967,6 @@ func (s DeleteReusableDelegationSetOutput) GoString() string { } // A request to delete a specified traffic policy version. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteTrafficPolicyRequest type DeleteTrafficPolicyInput struct { _ struct{} `type:"structure"` @@ -8065,7 +8026,6 @@ func (s *DeleteTrafficPolicyInput) SetVersion(v int64) *DeleteTrafficPolicyInput } // A request to delete a specified traffic policy instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteTrafficPolicyInstanceRequest type DeleteTrafficPolicyInstanceInput struct { _ struct{} `type:"structure"` @@ -8112,7 +8072,6 @@ func (s *DeleteTrafficPolicyInstanceInput) SetId(v string) *DeleteTrafficPolicyI } // An empty element. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteTrafficPolicyInstanceResponse type DeleteTrafficPolicyInstanceOutput struct { _ struct{} `type:"structure"` } @@ -8128,7 +8087,6 @@ func (s DeleteTrafficPolicyInstanceOutput) GoString() string { } // An empty element. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteTrafficPolicyResponse type DeleteTrafficPolicyOutput struct { _ struct{} `type:"structure"` } @@ -8146,7 +8104,6 @@ func (s DeleteTrafficPolicyOutput) GoString() string { // A complex type that contains information about the request to remove authorization // to associate a VPC that was created by one AWS account with a hosted zone // that was created with a different AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteVPCAssociationAuthorizationRequest type DeleteVPCAssociationAuthorizationInput struct { _ struct{} `locationName:"DeleteVPCAssociationAuthorizationRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"` @@ -8209,7 +8166,6 @@ func (s *DeleteVPCAssociationAuthorizationInput) SetVPC(v *VPC) *DeleteVPCAssoci } // Empty response for the request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DeleteVPCAssociationAuthorizationResponse type DeleteVPCAssociationAuthorizationOutput struct { _ struct{} `type:"structure"` } @@ -8226,7 +8182,6 @@ func (s DeleteVPCAssociationAuthorizationOutput) GoString() string { // For the metric that the CloudWatch alarm is associated with, a complex type // that contains information about one dimension. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/Dimension type Dimension struct { _ struct{} `type:"structure"` @@ -8267,7 +8222,6 @@ func (s *Dimension) SetValue(v string) *Dimension { // A complex type that contains information about the VPC that you want to disassociate // from a specified private hosted zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DisassociateVPCFromHostedZoneRequest type DisassociateVPCFromHostedZoneInput struct { _ struct{} `locationName:"DisassociateVPCFromHostedZoneRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"` @@ -8337,7 +8291,6 @@ func (s *DisassociateVPCFromHostedZoneInput) SetVPC(v *VPC) *DisassociateVPCFrom // A complex type that contains the response information for the disassociate // request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/DisassociateVPCFromHostedZoneResponse type DisassociateVPCFromHostedZoneOutput struct { _ struct{} `type:"structure"` @@ -8365,7 +8318,6 @@ func (s *DisassociateVPCFromHostedZoneOutput) SetChangeInfo(v *ChangeInfo) *Disa } // A complex type that contains information about a geo location. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GeoLocation type GeoLocation struct { _ struct{} `type:"structure"` @@ -8434,7 +8386,6 @@ func (s *GeoLocation) SetSubdivisionCode(v string) *GeoLocation { // A complex type that contains the codes and full continent, country, and subdivision // names for the specified geolocation code. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GeoLocationDetails type GeoLocationDetails struct { _ struct{} `type:"structure"` @@ -8507,7 +8458,6 @@ func (s *GeoLocationDetails) SetSubdivisionName(v string) *GeoLocationDetails { // A complex type that contains information about the request to create a hosted // zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetAccountLimitRequest type GetAccountLimitInput struct { _ struct{} `type:"structure"` @@ -8564,7 +8514,6 @@ func (s *GetAccountLimitInput) SetType(v string) *GetAccountLimitInput { } // A complex type that contains the requested limit. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetAccountLimitResponse type GetAccountLimitOutput struct { _ struct{} `type:"structure"` @@ -8608,7 +8557,6 @@ func (s *GetAccountLimitOutput) SetLimit(v *AccountLimit) *GetAccountLimitOutput } // The input for a GetChange request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetChangeRequest type GetChangeInput struct { _ struct{} `type:"structure"` @@ -8650,7 +8598,6 @@ func (s *GetChangeInput) SetId(v string) *GetChangeInput { } // A complex type that contains the ChangeInfo element. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetChangeResponse type GetChangeOutput struct { _ struct{} `type:"structure"` @@ -8676,7 +8623,6 @@ func (s *GetChangeOutput) SetChangeInfo(v *ChangeInfo) *GetChangeOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetCheckerIpRangesRequest type GetCheckerIpRangesInput struct { _ struct{} `type:"structure"` } @@ -8691,7 +8637,6 @@ func (s GetCheckerIpRangesInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetCheckerIpRangesResponse type GetCheckerIpRangesOutput struct { _ struct{} `type:"structure"` @@ -8717,7 +8662,6 @@ func (s *GetCheckerIpRangesOutput) SetCheckerIpRanges(v []*string) *GetCheckerIp // A request for information about whether a specified geographic location is // supported for Amazon Route 53 geolocation resource record sets. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetGeoLocationRequest type GetGeoLocationInput struct { _ struct{} `type:"structure"` @@ -8798,7 +8742,6 @@ func (s *GetGeoLocationInput) SetSubdivisionCode(v string) *GetGeoLocationInput // A complex type that contains the response information for the specified geolocation // code. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetGeoLocationResponse type GetGeoLocationOutput struct { _ struct{} `type:"structure"` @@ -8827,7 +8770,6 @@ func (s *GetGeoLocationOutput) SetGeoLocationDetails(v *GeoLocationDetails) *Get // A request for the number of health checks that are associated with the current // AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckCountRequest type GetHealthCheckCountInput struct { _ struct{} `type:"structure"` } @@ -8843,7 +8785,6 @@ func (s GetHealthCheckCountInput) GoString() string { } // A complex type that contains the response to a GetHealthCheckCount request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckCountResponse type GetHealthCheckCountOutput struct { _ struct{} `type:"structure"` @@ -8870,7 +8811,6 @@ func (s *GetHealthCheckCountOutput) SetHealthCheckCount(v int64) *GetHealthCheck } // A request to get information about a specified health check. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckRequest type GetHealthCheckInput struct { _ struct{} `type:"structure"` @@ -8913,7 +8853,6 @@ func (s *GetHealthCheckInput) SetHealthCheckId(v string) *GetHealthCheckInput { } // A request for the reason that a health check failed most recently. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckLastFailureReasonRequest type GetHealthCheckLastFailureReasonInput struct { _ struct{} `type:"structure"` @@ -8960,7 +8899,6 @@ func (s *GetHealthCheckLastFailureReasonInput) SetHealthCheckId(v string) *GetHe // A complex type that contains the response to a GetHealthCheckLastFailureReason // request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckLastFailureReasonResponse type GetHealthCheckLastFailureReasonOutput struct { _ struct{} `type:"structure"` @@ -8988,7 +8926,6 @@ func (s *GetHealthCheckLastFailureReasonOutput) SetHealthCheckObservations(v []* } // A complex type that contains the response to a GetHealthCheck request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckResponse type GetHealthCheckOutput struct { _ struct{} `type:"structure"` @@ -9016,7 +8953,6 @@ func (s *GetHealthCheckOutput) SetHealthCheck(v *HealthCheck) *GetHealthCheckOut } // A request to get the status for a health check. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckStatusRequest type GetHealthCheckStatusInput struct { _ struct{} `type:"structure"` @@ -9062,7 +8998,6 @@ func (s *GetHealthCheckStatusInput) SetHealthCheckId(v string) *GetHealthCheckSt } // A complex type that contains the response to a GetHealthCheck request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHealthCheckStatusResponse type GetHealthCheckStatusOutput struct { _ struct{} `type:"structure"` @@ -9091,7 +9026,6 @@ func (s *GetHealthCheckStatusOutput) SetHealthCheckObservations(v []*HealthCheck // A request to retrieve a count of all the hosted zones that are associated // with the current AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZoneCountRequest type GetHostedZoneCountInput struct { _ struct{} `type:"structure"` } @@ -9107,7 +9041,6 @@ func (s GetHostedZoneCountInput) GoString() string { } // A complex type that contains the response to a GetHostedZoneCount request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZoneCountResponse type GetHostedZoneCountOutput struct { _ struct{} `type:"structure"` @@ -9135,7 +9068,6 @@ func (s *GetHostedZoneCountOutput) SetHostedZoneCount(v int64) *GetHostedZoneCou } // A request to get information about a specified hosted zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZoneRequest type GetHostedZoneInput struct { _ struct{} `type:"structure"` @@ -9176,7 +9108,6 @@ func (s *GetHostedZoneInput) SetId(v string) *GetHostedZoneInput { // A complex type that contains information about the request to create a hosted // zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZoneLimitRequest type GetHostedZoneLimitInput struct { _ struct{} `type:"structure"` @@ -9236,7 +9167,6 @@ func (s *GetHostedZoneLimitInput) SetType(v string) *GetHostedZoneLimitInput { } // A complex type that contains the requested limit. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZoneLimitResponse type GetHostedZoneLimitOutput struct { _ struct{} `type:"structure"` @@ -9280,7 +9210,6 @@ func (s *GetHostedZoneLimitOutput) SetLimit(v *HostedZoneLimit) *GetHostedZoneLi } // A complex type that contain the response to a GetHostedZone request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetHostedZoneResponse type GetHostedZoneOutput struct { _ struct{} `type:"structure"` @@ -9327,7 +9256,6 @@ func (s *GetHostedZoneOutput) SetVPCs(v []*VPC) *GetHostedZoneOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetQueryLoggingConfigRequest type GetQueryLoggingConfigInput struct { _ struct{} `type:"structure"` @@ -9370,7 +9298,6 @@ func (s *GetQueryLoggingConfigInput) SetId(v string) *GetQueryLoggingConfigInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetQueryLoggingConfigResponse type GetQueryLoggingConfigOutput struct { _ struct{} `type:"structure"` @@ -9398,7 +9325,6 @@ func (s *GetQueryLoggingConfigOutput) SetQueryLoggingConfig(v *QueryLoggingConfi } // A request to get information about a specified reusable delegation set. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetReusableDelegationSetRequest type GetReusableDelegationSetInput struct { _ struct{} `type:"structure"` @@ -9440,7 +9366,6 @@ func (s *GetReusableDelegationSetInput) SetId(v string) *GetReusableDelegationSe // A complex type that contains information about the request to create a hosted // zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetReusableDelegationSetLimitRequest type GetReusableDelegationSetLimitInput struct { _ struct{} `type:"structure"` @@ -9496,7 +9421,6 @@ func (s *GetReusableDelegationSetLimitInput) SetType(v string) *GetReusableDeleg } // A complex type that contains the requested limit. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetReusableDelegationSetLimitResponse type GetReusableDelegationSetLimitOutput struct { _ struct{} `type:"structure"` @@ -9537,7 +9461,6 @@ func (s *GetReusableDelegationSetLimitOutput) SetLimit(v *ReusableDelegationSetL // A complex type that contains the response to the GetReusableDelegationSet // request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetReusableDelegationSetResponse type GetReusableDelegationSetOutput struct { _ struct{} `type:"structure"` @@ -9564,7 +9487,6 @@ func (s *GetReusableDelegationSetOutput) SetDelegationSet(v *DelegationSet) *Get } // Gets information about a specific traffic policy version. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicyRequest type GetTrafficPolicyInput struct { _ struct{} `type:"structure"` @@ -9626,7 +9548,6 @@ func (s *GetTrafficPolicyInput) SetVersion(v int64) *GetTrafficPolicyInput { // Request to get the number of traffic policy instances that are associated // with the current AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicyInstanceCountRequest type GetTrafficPolicyInstanceCountInput struct { _ struct{} `type:"structure"` } @@ -9643,7 +9564,6 @@ func (s GetTrafficPolicyInstanceCountInput) GoString() string { // A complex type that contains information about the resource record sets that // Amazon Route 53 created based on a specified traffic policy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicyInstanceCountResponse type GetTrafficPolicyInstanceCountOutput struct { _ struct{} `type:"structure"` @@ -9671,7 +9591,6 @@ func (s *GetTrafficPolicyInstanceCountOutput) SetTrafficPolicyInstanceCount(v in } // Gets information about a specified traffic policy instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicyInstanceRequest type GetTrafficPolicyInstanceInput struct { _ struct{} `type:"structure"` @@ -9715,7 +9634,6 @@ func (s *GetTrafficPolicyInstanceInput) SetId(v string) *GetTrafficPolicyInstanc // A complex type that contains information about the resource record sets that // Amazon Route 53 created based on a specified traffic policy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicyInstanceResponse type GetTrafficPolicyInstanceOutput struct { _ struct{} `type:"structure"` @@ -9742,7 +9660,6 @@ func (s *GetTrafficPolicyInstanceOutput) SetTrafficPolicyInstance(v *TrafficPoli } // A complex type that contains the response information for the request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/GetTrafficPolicyResponse type GetTrafficPolicyOutput struct { _ struct{} `type:"structure"` @@ -9770,7 +9687,6 @@ func (s *GetTrafficPolicyOutput) SetTrafficPolicy(v *TrafficPolicy) *GetTrafficP // A complex type that contains information about one health check that is associated // with the current AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/HealthCheck type HealthCheck struct { _ struct{} `type:"structure"` @@ -9856,7 +9772,6 @@ func (s *HealthCheck) SetLinkedService(v *LinkedService) *HealthCheck { } // A complex type that contains information about the health check. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/HealthCheckConfig type HealthCheckConfig struct { _ struct{} `type:"structure"` @@ -10268,7 +10183,6 @@ func (s *HealthCheckConfig) SetType(v string) *HealthCheckConfig { // A complex type that contains the last failure reason as reported by one Amazon // Route 53 health checker. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/HealthCheckObservation type HealthCheckObservation struct { _ struct{} `type:"structure"` @@ -10314,7 +10228,6 @@ func (s *HealthCheckObservation) SetStatusReport(v *StatusReport) *HealthCheckOb } // A complex type that contains general information about the hosted zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/HostedZone type HostedZone struct { _ struct{} `type:"structure"` @@ -10402,7 +10315,6 @@ func (s *HostedZone) SetResourceRecordSetCount(v int64) *HostedZone { // A complex type that contains an optional comment about your hosted zone. // If you don't want to specify a comment, omit both the HostedZoneConfig and // Comment elements. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/HostedZoneConfig type HostedZoneConfig struct { _ struct{} `type:"structure"` @@ -10437,7 +10349,6 @@ func (s *HostedZoneConfig) SetPrivateZone(v bool) *HostedZoneConfig { // A complex type that contains the type of limit that you specified in the // request and the current value for that limit. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/HostedZoneLimit type HostedZoneLimit struct { _ struct{} `type:"structure"` @@ -10484,7 +10395,6 @@ func (s *HostedZoneLimit) SetValue(v int64) *HostedZoneLimit { // is a complex type that describes the service that created the resource. When // a resource is created by another service, you can't edit or delete it using // Amazon Route 53. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/LinkedService type LinkedService struct { _ struct{} `type:"structure"` @@ -10524,7 +10434,6 @@ func (s *LinkedService) SetServicePrincipal(v string) *LinkedService { // A request to get a list of geographic locations that Amazon Route 53 supports // for geolocation resource record sets. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListGeoLocationsRequest type ListGeoLocationsInput struct { _ struct{} `type:"structure"` @@ -10619,7 +10528,6 @@ func (s *ListGeoLocationsInput) SetStartSubdivisionCode(v string) *ListGeoLocati } // A complex type containing the response information for the request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListGeoLocationsResponse type ListGeoLocationsOutput struct { _ struct{} `type:"structure"` @@ -10707,7 +10615,6 @@ func (s *ListGeoLocationsOutput) SetNextSubdivisionCode(v string) *ListGeoLocati // A request to retrieve a list of the health checks that are associated with // the current AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHealthChecksRequest type ListHealthChecksInput struct { _ struct{} `type:"structure"` @@ -10752,7 +10659,6 @@ func (s *ListHealthChecksInput) SetMaxItems(v string) *ListHealthChecksInput { } // A complex type that contains the response to a ListHealthChecks request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHealthChecksResponse type ListHealthChecksOutput struct { _ struct{} `type:"structure"` @@ -10830,7 +10736,6 @@ func (s *ListHealthChecksOutput) SetNextMarker(v string) *ListHealthChecksOutput // Retrieves a list of the public and private hosted zones that are associated // with the current AWS account in ASCII order by domain name. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZonesByNameRequest type ListHostedZonesByNameInput struct { _ struct{} `type:"structure"` @@ -10890,7 +10795,6 @@ func (s *ListHostedZonesByNameInput) SetMaxItems(v string) *ListHostedZonesByNam } // A complex type that contains the response information for the request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZonesByNameResponse type ListHostedZonesByNameOutput struct { _ struct{} `type:"structure"` @@ -10994,7 +10898,6 @@ func (s *ListHostedZonesByNameOutput) SetNextHostedZoneId(v string) *ListHostedZ // A request to retrieve a list of the public and private hosted zones that // are associated with the current AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZonesRequest type ListHostedZonesInput struct { _ struct{} `type:"structure"` @@ -11050,7 +10953,6 @@ func (s *ListHostedZonesInput) SetMaxItems(v string) *ListHostedZonesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListHostedZonesResponse type ListHostedZonesOutput struct { _ struct{} `type:"structure"` @@ -11128,7 +11030,6 @@ func (s *ListHostedZonesOutput) SetNextMarker(v string) *ListHostedZonesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListQueryLoggingConfigsRequest type ListQueryLoggingConfigsInput struct { _ struct{} `type:"structure"` @@ -11186,7 +11087,6 @@ func (s *ListQueryLoggingConfigsInput) SetNextToken(v string) *ListQueryLoggingC return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListQueryLoggingConfigsResponse type ListQueryLoggingConfigsOutput struct { _ struct{} `type:"structure"` @@ -11231,7 +11131,6 @@ func (s *ListQueryLoggingConfigsOutput) SetQueryLoggingConfigs(v []*QueryLogging // A request for the resource record sets that are associated with a specified // hosted zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListResourceRecordSetsRequest type ListResourceRecordSetsInput struct { _ struct{} `type:"structure"` @@ -11342,7 +11241,6 @@ func (s *ListResourceRecordSetsInput) SetStartRecordType(v string) *ListResource } // A complex type that contains list information for the resource record set. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListResourceRecordSetsResponse type ListResourceRecordSetsOutput struct { _ struct{} `type:"structure"` @@ -11427,7 +11325,6 @@ func (s *ListResourceRecordSetsOutput) SetResourceRecordSets(v []*ResourceRecord // A request to get a list of the reusable delegation sets that are associated // with the current AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListReusableDelegationSetsRequest type ListReusableDelegationSetsInput struct { _ struct{} `type:"structure"` @@ -11473,7 +11370,6 @@ func (s *ListReusableDelegationSetsInput) SetMaxItems(v string) *ListReusableDel // A complex type that contains information about the reusable delegation sets // that are associated with the current AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListReusableDelegationSetsResponse type ListReusableDelegationSetsOutput struct { _ struct{} `type:"structure"` @@ -11550,7 +11446,6 @@ func (s *ListReusableDelegationSetsOutput) SetNextMarker(v string) *ListReusable // A complex type containing information about a request for a list of the tags // that are associated with an individual resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTagsForResourceRequest type ListTagsForResourceInput struct { _ struct{} `type:"structure"` @@ -11609,7 +11504,6 @@ func (s *ListTagsForResourceInput) SetResourceType(v string) *ListTagsForResourc // A complex type that contains information about the health checks or hosted // zones for which you want to list tags. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTagsForResourceResponse type ListTagsForResourceOutput struct { _ struct{} `type:"structure"` @@ -11637,7 +11531,6 @@ func (s *ListTagsForResourceOutput) SetResourceTagSet(v *ResourceTagSet) *ListTa // A complex type that contains information about the health checks or hosted // zones for which you want to list tags. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTagsForResourcesRequest type ListTagsForResourcesInput struct { _ struct{} `locationName:"ListTagsForResourcesRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"` @@ -11699,7 +11592,6 @@ func (s *ListTagsForResourcesInput) SetResourceType(v string) *ListTagsForResour } // A complex type containing tags for the specified resources. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTagsForResourcesResponse type ListTagsForResourcesOutput struct { _ struct{} `type:"structure"` @@ -11727,7 +11619,6 @@ func (s *ListTagsForResourcesOutput) SetResourceTagSets(v []*ResourceTagSet) *Li // A complex type that contains the information about the request to list the // traffic policies that are associated with the current AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPoliciesRequest type ListTrafficPoliciesInput struct { _ struct{} `type:"structure"` @@ -11785,7 +11676,6 @@ func (s *ListTrafficPoliciesInput) SetTrafficPolicyIdMarker(v string) *ListTraff } // A complex type that contains the response information for the request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPoliciesResponse type ListTrafficPoliciesOutput struct { _ struct{} `type:"structure"` @@ -11852,7 +11742,6 @@ func (s *ListTrafficPoliciesOutput) SetTrafficPolicySummaries(v []*TrafficPolicy // A request for the traffic policy instances that you created in a specified // hosted zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstancesByHostedZoneRequest type ListTrafficPolicyInstancesByHostedZoneInput struct { _ struct{} `type:"structure"` @@ -11941,7 +11830,6 @@ func (s *ListTrafficPolicyInstancesByHostedZoneInput) SetTrafficPolicyInstanceTy } // A complex type that contains the response information for the request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstancesByHostedZoneResponse type ListTrafficPolicyInstancesByHostedZoneOutput struct { _ struct{} `type:"structure"` @@ -12018,7 +11906,6 @@ func (s *ListTrafficPolicyInstancesByHostedZoneOutput) SetTrafficPolicyInstances // A complex type that contains the information about the request to list your // traffic policy instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstancesByPolicyRequest type ListTrafficPolicyInstancesByPolicyInput struct { _ struct{} `type:"structure"` @@ -12148,7 +12035,6 @@ func (s *ListTrafficPolicyInstancesByPolicyInput) SetTrafficPolicyVersion(v int6 } // A complex type that contains the response information for the request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstancesByPolicyResponse type ListTrafficPolicyInstancesByPolicyOutput struct { _ struct{} `type:"structure"` @@ -12237,7 +12123,6 @@ func (s *ListTrafficPolicyInstancesByPolicyOutput) SetTrafficPolicyInstances(v [ // A request to get information about the traffic policy instances that you // created by using the current AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstancesRequest type ListTrafficPolicyInstancesInput struct { _ struct{} `type:"structure"` @@ -12318,7 +12203,6 @@ func (s *ListTrafficPolicyInstancesInput) SetTrafficPolicyInstanceTypeMarker(v s } // A complex type that contains the response information for the request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyInstancesResponse type ListTrafficPolicyInstancesOutput struct { _ struct{} `type:"structure"` @@ -12408,7 +12292,6 @@ func (s *ListTrafficPolicyInstancesOutput) SetTrafficPolicyInstances(v []*Traffi // A complex type that contains the information about the request to list your // traffic policies. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyVersionsRequest type ListTrafficPolicyVersionsInput struct { _ struct{} `type:"structure"` @@ -12482,7 +12365,6 @@ func (s *ListTrafficPolicyVersionsInput) SetTrafficPolicyVersionMarker(v string) } // A complex type that contains the response information for the request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListTrafficPolicyVersionsResponse type ListTrafficPolicyVersionsOutput struct { _ struct{} `type:"structure"` @@ -12553,7 +12435,6 @@ func (s *ListTrafficPolicyVersionsOutput) SetTrafficPolicyVersionMarker(v string // A complex type that contains information about that can be associated with // your hosted zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListVPCAssociationAuthorizationsRequest type ListVPCAssociationAuthorizationsInput struct { _ struct{} `type:"structure"` @@ -12618,7 +12499,6 @@ func (s *ListVPCAssociationAuthorizationsInput) SetNextToken(v string) *ListVPCA } // A complex type that contains the response information for the request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ListVPCAssociationAuthorizationsResponse type ListVPCAssociationAuthorizationsOutput struct { _ struct{} `type:"structure"` @@ -12671,7 +12551,6 @@ func (s *ListVPCAssociationAuthorizationsOutput) SetVPCs(v []*VPC) *ListVPCAssoc // A complex type that contains information about a configuration for DNS query // logging. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/QueryLoggingConfig type QueryLoggingConfig struct { _ struct{} `type:"structure"` @@ -12723,7 +12602,6 @@ func (s *QueryLoggingConfig) SetId(v string) *QueryLoggingConfig { // Information specific to the resource record. // // If you're creating an alias resource record set, omit ResourceRecord. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ResourceRecord type ResourceRecord struct { _ struct{} `type:"structure"` @@ -12772,7 +12650,6 @@ func (s *ResourceRecord) SetValue(v string) *ResourceRecord { } // Information about the resource record set to create or delete. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ResourceRecordSet type ResourceRecordSet struct { _ struct{} `type:"structure"` @@ -13304,7 +13181,6 @@ func (s *ResourceRecordSet) SetWeight(v int64) *ResourceRecordSet { } // A complex type containing a resource and its associated tags. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ResourceTagSet type ResourceTagSet struct { _ struct{} `type:"structure"` @@ -13352,7 +13228,6 @@ func (s *ResourceTagSet) SetTags(v []*Tag) *ResourceTagSet { // A complex type that contains the type of limit that you specified in the // request and the current value for that limit. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/ReusableDelegationSetLimit type ReusableDelegationSetLimit struct { _ struct{} `type:"structure"` @@ -13393,7 +13268,6 @@ func (s *ReusableDelegationSetLimit) SetValue(v int64) *ReusableDelegationSetLim // A complex type that contains the status that one Amazon Route 53 health checker // reports and the time of the health check. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/StatusReport type StatusReport struct { _ struct{} `type:"structure"` @@ -13432,7 +13306,6 @@ func (s *StatusReport) SetStatus(v string) *StatusReport { // A complex type that contains information about a tag that you want to add // or edit for the specified health check or hosted zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/Tag type Tag struct { _ struct{} `type:"structure"` @@ -13485,7 +13358,6 @@ func (s *Tag) SetValue(v string) *Tag { // Gets the value that Amazon Route 53 returns in response to a DNS request // for a specified record name and type. You can optionally specify the IP address // of a DNS resolver, an EDNS0 client subnet IP address, and a subnet mask. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/TestDNSAnswerRequest type TestDNSAnswerInput struct { _ struct{} `type:"structure"` @@ -13592,7 +13464,6 @@ func (s *TestDNSAnswerInput) SetResolverIP(v string) *TestDNSAnswerInput { } // A complex type that contains the response to a TestDNSAnswer request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/TestDNSAnswerResponse type TestDNSAnswerOutput struct { _ struct{} `type:"structure"` @@ -13680,7 +13551,6 @@ func (s *TestDNSAnswerOutput) SetResponseCode(v string) *TestDNSAnswerOutput { } // A complex type that contains settings for a traffic policy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/TrafficPolicy type TrafficPolicy struct { _ struct{} `type:"structure"` @@ -13765,7 +13635,6 @@ func (s *TrafficPolicy) SetVersion(v int64) *TrafficPolicy { } // A complex type that contains settings for the new traffic policy instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/TrafficPolicyInstance type TrafficPolicyInstance struct { _ struct{} `type:"structure"` @@ -13899,7 +13768,6 @@ func (s *TrafficPolicyInstance) SetTrafficPolicyVersion(v int64) *TrafficPolicyI // A complex type that contains information about the latest version of one // traffic policy that is associated with the current AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/TrafficPolicySummary type TrafficPolicySummary struct { _ struct{} `type:"structure"` @@ -13973,7 +13841,6 @@ func (s *TrafficPolicySummary) SetType(v string) *TrafficPolicySummary { // A complex type that contains information about a request to update a health // check. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateHealthCheckRequest type UpdateHealthCheckInput struct { _ struct{} `locationName:"UpdateHealthCheckRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"` @@ -14362,7 +14229,6 @@ func (s *UpdateHealthCheckInput) SetSearchString(v string) *UpdateHealthCheckInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateHealthCheckResponse type UpdateHealthCheckOutput struct { _ struct{} `type:"structure"` @@ -14390,7 +14256,6 @@ func (s *UpdateHealthCheckOutput) SetHealthCheck(v *HealthCheck) *UpdateHealthCh } // A request to update the comment for a hosted zone. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateHostedZoneCommentRequest type UpdateHostedZoneCommentInput struct { _ struct{} `locationName:"UpdateHostedZoneCommentRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"` @@ -14441,7 +14306,6 @@ func (s *UpdateHostedZoneCommentInput) SetId(v string) *UpdateHostedZoneCommentI // A complex type that contains the response to the UpdateHostedZoneComment // request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateHostedZoneCommentResponse type UpdateHostedZoneCommentOutput struct { _ struct{} `type:"structure"` @@ -14469,7 +14333,6 @@ func (s *UpdateHostedZoneCommentOutput) SetHostedZone(v *HostedZone) *UpdateHost // A complex type that contains information about the traffic policy that you // want to update the comment for. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateTrafficPolicyCommentRequest type UpdateTrafficPolicyCommentInput struct { _ struct{} `locationName:"UpdateTrafficPolicyCommentRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"` @@ -14545,7 +14408,6 @@ func (s *UpdateTrafficPolicyCommentInput) SetVersion(v int64) *UpdateTrafficPoli } // A complex type that contains the response information for the traffic policy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateTrafficPolicyCommentResponse type UpdateTrafficPolicyCommentOutput struct { _ struct{} `type:"structure"` @@ -14573,7 +14435,6 @@ func (s *UpdateTrafficPolicyCommentOutput) SetTrafficPolicy(v *TrafficPolicy) *U // A complex type that contains information about the resource record sets that // you want to update based on a specified traffic policy instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateTrafficPolicyInstanceRequest type UpdateTrafficPolicyInstanceInput struct { _ struct{} `locationName:"UpdateTrafficPolicyInstanceRequest" type:"structure" xmlURI:"https://route53.amazonaws.com/doc/2013-04-01/"` @@ -14668,7 +14529,6 @@ func (s *UpdateTrafficPolicyInstanceInput) SetTrafficPolicyVersion(v int64) *Upd // A complex type that contains information about the resource record sets that // Amazon Route 53 created based on a specified traffic policy. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/UpdateTrafficPolicyInstanceResponse type UpdateTrafficPolicyInstanceOutput struct { _ struct{} `type:"structure"` @@ -14696,7 +14556,6 @@ func (s *UpdateTrafficPolicyInstanceOutput) SetTrafficPolicyInstance(v *TrafficP // (Private hosted zones only) A complex type that contains information about // an Amazon VPC. -// See also, https://docs.aws.amazon.com/goto/WebAPI/route53-2013-04-01/VPC type VPC struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/s3/api.go b/vendor/github.com/aws/aws-sdk-go/service/s3/api.go index 0d852f59c..2faeee1ec 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/s3/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/s3/api.go @@ -6173,7 +6173,6 @@ func (c *S3) UploadPartCopyWithContext(ctx aws.Context, input *UploadPartCopyInp // Specifies the days since the initiation of an Incomplete Multipart Upload // that Lifecycle will wait before permanently removing all parts of the upload. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AbortIncompleteMultipartUpload type AbortIncompleteMultipartUpload struct { _ struct{} `type:"structure"` @@ -6198,7 +6197,6 @@ func (s *AbortIncompleteMultipartUpload) SetDaysAfterInitiation(v int64) *AbortI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AbortMultipartUploadRequest type AbortMultipartUploadInput struct { _ struct{} `type:"structure"` @@ -6281,7 +6279,6 @@ func (s *AbortMultipartUploadInput) SetUploadId(v string) *AbortMultipartUploadI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AbortMultipartUploadOutput type AbortMultipartUploadOutput struct { _ struct{} `type:"structure"` @@ -6306,7 +6303,6 @@ func (s *AbortMultipartUploadOutput) SetRequestCharged(v string) *AbortMultipart return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AccelerateConfiguration type AccelerateConfiguration struct { _ struct{} `type:"structure"` @@ -6330,7 +6326,6 @@ func (s *AccelerateConfiguration) SetStatus(v string) *AccelerateConfiguration { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AccessControlPolicy type AccessControlPolicy struct { _ struct{} `type:"structure"` @@ -6383,7 +6378,6 @@ func (s *AccessControlPolicy) SetOwner(v *Owner) *AccessControlPolicy { } // Container for information regarding the access control for replicas. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AccessControlTranslation type AccessControlTranslation struct { _ struct{} `type:"structure"` @@ -6422,7 +6416,6 @@ func (s *AccessControlTranslation) SetOwner(v string) *AccessControlTranslation return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AnalyticsAndOperator type AnalyticsAndOperator struct { _ struct{} `type:"structure"` @@ -6475,7 +6468,6 @@ func (s *AnalyticsAndOperator) SetTags(v []*Tag) *AnalyticsAndOperator { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AnalyticsConfiguration type AnalyticsConfiguration struct { _ struct{} `type:"structure"` @@ -6550,7 +6542,6 @@ func (s *AnalyticsConfiguration) SetStorageClassAnalysis(v *StorageClassAnalysis return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AnalyticsExportDestination type AnalyticsExportDestination struct { _ struct{} `type:"structure"` @@ -6594,7 +6585,6 @@ func (s *AnalyticsExportDestination) SetS3BucketDestination(v *AnalyticsS3Bucket return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AnalyticsFilter type AnalyticsFilter struct { _ struct{} `type:"structure"` @@ -6657,7 +6647,6 @@ func (s *AnalyticsFilter) SetTag(v *Tag) *AnalyticsFilter { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/AnalyticsS3BucketDestination type AnalyticsS3BucketDestination struct { _ struct{} `type:"structure"` @@ -6737,7 +6726,6 @@ func (s *AnalyticsS3BucketDestination) SetPrefix(v string) *AnalyticsS3BucketDes return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Bucket type Bucket struct { _ struct{} `type:"structure"` @@ -6770,7 +6758,6 @@ func (s *Bucket) SetName(v string) *Bucket { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/BucketLifecycleConfiguration type BucketLifecycleConfiguration struct { _ struct{} `type:"structure"` @@ -6817,7 +6804,6 @@ func (s *BucketLifecycleConfiguration) SetRules(v []*LifecycleRule) *BucketLifec return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/BucketLoggingStatus type BucketLoggingStatus struct { _ struct{} `type:"structure"` @@ -6855,7 +6841,6 @@ func (s *BucketLoggingStatus) SetLoggingEnabled(v *LoggingEnabled) *BucketLoggin return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CORSConfiguration type CORSConfiguration struct { _ struct{} `type:"structure"` @@ -6902,7 +6887,6 @@ func (s *CORSConfiguration) SetCORSRules(v []*CORSRule) *CORSConfiguration { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CORSRule type CORSRule struct { _ struct{} `type:"structure"` @@ -6987,7 +6971,6 @@ func (s *CORSRule) SetMaxAgeSeconds(v int64) *CORSRule { } // Describes how a CSV-formatted input object is formatted. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CSVInput type CSVInput struct { _ struct{} `type:"structure"` @@ -7059,7 +7042,6 @@ func (s *CSVInput) SetRecordDelimiter(v string) *CSVInput { } // Describes how CSV-formatted results are formatted. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CSVOutput type CSVOutput struct { _ struct{} `type:"structure"` @@ -7120,7 +7102,6 @@ func (s *CSVOutput) SetRecordDelimiter(v string) *CSVOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CloudFunctionConfiguration type CloudFunctionConfiguration struct { _ struct{} `type:"structure"` @@ -7178,7 +7159,6 @@ func (s *CloudFunctionConfiguration) SetInvocationRole(v string) *CloudFunctionC return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CommonPrefix type CommonPrefix struct { _ struct{} `type:"structure"` @@ -7201,7 +7181,6 @@ func (s *CommonPrefix) SetPrefix(v string) *CommonPrefix { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CompleteMultipartUploadRequest type CompleteMultipartUploadInput struct { _ struct{} `type:"structure" payload:"MultipartUpload"` @@ -7292,7 +7271,6 @@ func (s *CompleteMultipartUploadInput) SetUploadId(v string) *CompleteMultipartU return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CompleteMultipartUploadOutput type CompleteMultipartUploadOutput struct { _ struct{} `type:"structure"` @@ -7396,7 +7374,6 @@ func (s *CompleteMultipartUploadOutput) SetVersionId(v string) *CompleteMultipar return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CompletedMultipartUpload type CompletedMultipartUpload struct { _ struct{} `type:"structure"` @@ -7419,7 +7396,6 @@ func (s *CompletedMultipartUpload) SetParts(v []*CompletedPart) *CompletedMultip return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CompletedPart type CompletedPart struct { _ struct{} `type:"structure"` @@ -7453,7 +7429,6 @@ func (s *CompletedPart) SetPartNumber(v int64) *CompletedPart { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Condition type Condition struct { _ struct{} `type:"structure"` @@ -7496,7 +7471,6 @@ func (s *Condition) SetKeyPrefixEquals(v string) *Condition { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CopyObjectRequest type CopyObjectInput struct { _ struct{} `type:"structure"` @@ -7880,7 +7854,6 @@ func (s *CopyObjectInput) SetWebsiteRedirectLocation(v string) *CopyObjectInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CopyObjectOutput type CopyObjectOutput struct { _ struct{} `type:"structure" payload:"CopyObjectResult"` @@ -7981,7 +7954,6 @@ func (s *CopyObjectOutput) SetVersionId(v string) *CopyObjectOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CopyObjectResult type CopyObjectResult struct { _ struct{} `type:"structure"` @@ -8012,7 +7984,6 @@ func (s *CopyObjectResult) SetLastModified(v time.Time) *CopyObjectResult { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CopyPartResult type CopyPartResult struct { _ struct{} `type:"structure"` @@ -8045,7 +8016,6 @@ func (s *CopyPartResult) SetLastModified(v time.Time) *CopyPartResult { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucketConfiguration type CreateBucketConfiguration struct { _ struct{} `type:"structure"` @@ -8070,7 +8040,6 @@ func (s *CreateBucketConfiguration) SetLocationConstraint(v string) *CreateBucke return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucketRequest type CreateBucketInput struct { _ struct{} `type:"structure" payload:"CreateBucketConfiguration"` @@ -8177,7 +8146,6 @@ func (s *CreateBucketInput) SetGrantWriteACP(v string) *CreateBucketInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateBucketOutput type CreateBucketOutput struct { _ struct{} `type:"structure"` @@ -8200,7 +8168,6 @@ func (s *CreateBucketOutput) SetLocation(v string) *CreateBucketOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateMultipartUploadRequest type CreateMultipartUploadInput struct { _ struct{} `type:"structure"` @@ -8472,7 +8439,6 @@ func (s *CreateMultipartUploadInput) SetWebsiteRedirectLocation(v string) *Creat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/CreateMultipartUploadOutput type CreateMultipartUploadOutput struct { _ struct{} `type:"structure"` @@ -8592,7 +8558,6 @@ func (s *CreateMultipartUploadOutput) SetUploadId(v string) *CreateMultipartUplo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Delete type Delete struct { _ struct{} `type:"structure"` @@ -8649,7 +8614,6 @@ func (s *Delete) SetQuiet(v bool) *Delete { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketAnalyticsConfigurationRequest type DeleteBucketAnalyticsConfigurationInput struct { _ struct{} `type:"structure"` @@ -8709,7 +8673,6 @@ func (s *DeleteBucketAnalyticsConfigurationInput) SetId(v string) *DeleteBucketA return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketAnalyticsConfigurationOutput type DeleteBucketAnalyticsConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -8724,7 +8687,6 @@ func (s DeleteBucketAnalyticsConfigurationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketCorsRequest type DeleteBucketCorsInput struct { _ struct{} `type:"structure"` @@ -8768,7 +8730,6 @@ func (s *DeleteBucketCorsInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketCorsOutput type DeleteBucketCorsOutput struct { _ struct{} `type:"structure"` } @@ -8783,7 +8744,6 @@ func (s DeleteBucketCorsOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketEncryptionRequest type DeleteBucketEncryptionInput struct { _ struct{} `type:"structure"` @@ -8830,7 +8790,6 @@ func (s *DeleteBucketEncryptionInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketEncryptionOutput type DeleteBucketEncryptionOutput struct { _ struct{} `type:"structure"` } @@ -8845,7 +8804,6 @@ func (s DeleteBucketEncryptionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketRequest type DeleteBucketInput struct { _ struct{} `type:"structure"` @@ -8889,7 +8847,6 @@ func (s *DeleteBucketInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketInventoryConfigurationRequest type DeleteBucketInventoryConfigurationInput struct { _ struct{} `type:"structure"` @@ -8949,7 +8906,6 @@ func (s *DeleteBucketInventoryConfigurationInput) SetId(v string) *DeleteBucketI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketInventoryConfigurationOutput type DeleteBucketInventoryConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -8964,7 +8920,6 @@ func (s DeleteBucketInventoryConfigurationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketLifecycleRequest type DeleteBucketLifecycleInput struct { _ struct{} `type:"structure"` @@ -9008,7 +8963,6 @@ func (s *DeleteBucketLifecycleInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketLifecycleOutput type DeleteBucketLifecycleOutput struct { _ struct{} `type:"structure"` } @@ -9023,7 +8977,6 @@ func (s DeleteBucketLifecycleOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketMetricsConfigurationRequest type DeleteBucketMetricsConfigurationInput struct { _ struct{} `type:"structure"` @@ -9083,7 +9036,6 @@ func (s *DeleteBucketMetricsConfigurationInput) SetId(v string) *DeleteBucketMet return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketMetricsConfigurationOutput type DeleteBucketMetricsConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -9098,7 +9050,6 @@ func (s DeleteBucketMetricsConfigurationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketOutput type DeleteBucketOutput struct { _ struct{} `type:"structure"` } @@ -9113,7 +9064,6 @@ func (s DeleteBucketOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketPolicyRequest type DeleteBucketPolicyInput struct { _ struct{} `type:"structure"` @@ -9157,7 +9107,6 @@ func (s *DeleteBucketPolicyInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketPolicyOutput type DeleteBucketPolicyOutput struct { _ struct{} `type:"structure"` } @@ -9172,7 +9121,6 @@ func (s DeleteBucketPolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketReplicationRequest type DeleteBucketReplicationInput struct { _ struct{} `type:"structure"` @@ -9216,7 +9164,6 @@ func (s *DeleteBucketReplicationInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketReplicationOutput type DeleteBucketReplicationOutput struct { _ struct{} `type:"structure"` } @@ -9231,7 +9178,6 @@ func (s DeleteBucketReplicationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketTaggingRequest type DeleteBucketTaggingInput struct { _ struct{} `type:"structure"` @@ -9275,7 +9221,6 @@ func (s *DeleteBucketTaggingInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketTaggingOutput type DeleteBucketTaggingOutput struct { _ struct{} `type:"structure"` } @@ -9290,7 +9235,6 @@ func (s DeleteBucketTaggingOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketWebsiteRequest type DeleteBucketWebsiteInput struct { _ struct{} `type:"structure"` @@ -9334,7 +9278,6 @@ func (s *DeleteBucketWebsiteInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteBucketWebsiteOutput type DeleteBucketWebsiteOutput struct { _ struct{} `type:"structure"` } @@ -9349,7 +9292,6 @@ func (s DeleteBucketWebsiteOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteMarkerEntry type DeleteMarkerEntry struct { _ struct{} `type:"structure"` @@ -9409,7 +9351,6 @@ func (s *DeleteMarkerEntry) SetVersionId(v string) *DeleteMarkerEntry { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectRequest type DeleteObjectInput struct { _ struct{} `type:"structure"` @@ -9499,7 +9440,6 @@ func (s *DeleteObjectInput) SetVersionId(v string) *DeleteObjectInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectOutput type DeleteObjectOutput struct { _ struct{} `type:"structure"` @@ -9544,7 +9484,6 @@ func (s *DeleteObjectOutput) SetVersionId(v string) *DeleteObjectOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectTaggingRequest type DeleteObjectTaggingInput struct { _ struct{} `type:"structure"` @@ -9612,7 +9551,6 @@ func (s *DeleteObjectTaggingInput) SetVersionId(v string) *DeleteObjectTaggingIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectTaggingOutput type DeleteObjectTaggingOutput struct { _ struct{} `type:"structure"` @@ -9636,7 +9574,6 @@ func (s *DeleteObjectTaggingOutput) SetVersionId(v string) *DeleteObjectTaggingO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectsRequest type DeleteObjectsInput struct { _ struct{} `type:"structure" payload:"Delete"` @@ -9719,7 +9656,6 @@ func (s *DeleteObjectsInput) SetRequestPayer(v string) *DeleteObjectsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeleteObjectsOutput type DeleteObjectsOutput struct { _ struct{} `type:"structure"` @@ -9760,7 +9696,6 @@ func (s *DeleteObjectsOutput) SetRequestCharged(v string) *DeleteObjectsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/DeletedObject type DeletedObject struct { _ struct{} `type:"structure"` @@ -9808,7 +9743,6 @@ func (s *DeletedObject) SetVersionId(v string) *DeletedObject { } // Container for replication destination information. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Destination type Destination struct { _ struct{} `type:"structure"` @@ -9899,7 +9833,6 @@ func (s *Destination) SetStorageClass(v string) *Destination { // Describes the server-side encryption that will be applied to the restore // results. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Encryption type Encryption struct { _ struct{} `type:"structure"` @@ -9960,7 +9893,6 @@ func (s *Encryption) SetKMSKeyId(v string) *Encryption { } // Container for information regarding encryption based configuration for replicas. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/EncryptionConfiguration type EncryptionConfiguration struct { _ struct{} `type:"structure"` @@ -9984,7 +9916,6 @@ func (s *EncryptionConfiguration) SetReplicaKmsKeyID(v string) *EncryptionConfig return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Error type Error struct { _ struct{} `type:"structure"` @@ -10031,7 +9962,6 @@ func (s *Error) SetVersionId(v string) *Error { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ErrorDocument type ErrorDocument struct { _ struct{} `type:"structure"` @@ -10074,7 +10004,6 @@ func (s *ErrorDocument) SetKey(v string) *ErrorDocument { } // Container for key value pair that defines the criteria for the filter rule. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/FilterRule type FilterRule struct { _ struct{} `type:"structure"` @@ -10109,7 +10038,6 @@ func (s *FilterRule) SetValue(v string) *FilterRule { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAccelerateConfigurationRequest type GetBucketAccelerateConfigurationInput struct { _ struct{} `type:"structure"` @@ -10155,7 +10083,6 @@ func (s *GetBucketAccelerateConfigurationInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAccelerateConfigurationOutput type GetBucketAccelerateConfigurationOutput struct { _ struct{} `type:"structure"` @@ -10179,7 +10106,6 @@ func (s *GetBucketAccelerateConfigurationOutput) SetStatus(v string) *GetBucketA return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAclRequest type GetBucketAclInput struct { _ struct{} `type:"structure"` @@ -10223,7 +10149,6 @@ func (s *GetBucketAclInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAclOutput type GetBucketAclOutput struct { _ struct{} `type:"structure"` @@ -10255,7 +10180,6 @@ func (s *GetBucketAclOutput) SetOwner(v *Owner) *GetBucketAclOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAnalyticsConfigurationRequest type GetBucketAnalyticsConfigurationInput struct { _ struct{} `type:"structure"` @@ -10315,7 +10239,6 @@ func (s *GetBucketAnalyticsConfigurationInput) SetId(v string) *GetBucketAnalyti return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketAnalyticsConfigurationOutput type GetBucketAnalyticsConfigurationOutput struct { _ struct{} `type:"structure" payload:"AnalyticsConfiguration"` @@ -10339,7 +10262,6 @@ func (s *GetBucketAnalyticsConfigurationOutput) SetAnalyticsConfiguration(v *Ana return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketCorsRequest type GetBucketCorsInput struct { _ struct{} `type:"structure"` @@ -10383,7 +10305,6 @@ func (s *GetBucketCorsInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketCorsOutput type GetBucketCorsOutput struct { _ struct{} `type:"structure"` @@ -10406,7 +10327,6 @@ func (s *GetBucketCorsOutput) SetCORSRules(v []*CORSRule) *GetBucketCorsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketEncryptionRequest type GetBucketEncryptionInput struct { _ struct{} `type:"structure"` @@ -10453,7 +10373,6 @@ func (s *GetBucketEncryptionInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketEncryptionOutput type GetBucketEncryptionOutput struct { _ struct{} `type:"structure" payload:"ServerSideEncryptionConfiguration"` @@ -10478,7 +10397,6 @@ func (s *GetBucketEncryptionOutput) SetServerSideEncryptionConfiguration(v *Serv return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketInventoryConfigurationRequest type GetBucketInventoryConfigurationInput struct { _ struct{} `type:"structure"` @@ -10538,7 +10456,6 @@ func (s *GetBucketInventoryConfigurationInput) SetId(v string) *GetBucketInvento return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketInventoryConfigurationOutput type GetBucketInventoryConfigurationOutput struct { _ struct{} `type:"structure" payload:"InventoryConfiguration"` @@ -10562,7 +10479,6 @@ func (s *GetBucketInventoryConfigurationOutput) SetInventoryConfiguration(v *Inv return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycleConfigurationRequest type GetBucketLifecycleConfigurationInput struct { _ struct{} `type:"structure"` @@ -10606,7 +10522,6 @@ func (s *GetBucketLifecycleConfigurationInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycleConfigurationOutput type GetBucketLifecycleConfigurationOutput struct { _ struct{} `type:"structure"` @@ -10629,7 +10544,6 @@ func (s *GetBucketLifecycleConfigurationOutput) SetRules(v []*LifecycleRule) *Ge return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycleRequest type GetBucketLifecycleInput struct { _ struct{} `type:"structure"` @@ -10673,7 +10587,6 @@ func (s *GetBucketLifecycleInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLifecycleOutput type GetBucketLifecycleOutput struct { _ struct{} `type:"structure"` @@ -10696,7 +10609,6 @@ func (s *GetBucketLifecycleOutput) SetRules(v []*Rule) *GetBucketLifecycleOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLocationRequest type GetBucketLocationInput struct { _ struct{} `type:"structure"` @@ -10740,7 +10652,6 @@ func (s *GetBucketLocationInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLocationOutput type GetBucketLocationOutput struct { _ struct{} `type:"structure"` @@ -10763,7 +10674,6 @@ func (s *GetBucketLocationOutput) SetLocationConstraint(v string) *GetBucketLoca return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLoggingRequest type GetBucketLoggingInput struct { _ struct{} `type:"structure"` @@ -10807,7 +10717,6 @@ func (s *GetBucketLoggingInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketLoggingOutput type GetBucketLoggingOutput struct { _ struct{} `type:"structure"` @@ -10830,7 +10739,6 @@ func (s *GetBucketLoggingOutput) SetLoggingEnabled(v *LoggingEnabled) *GetBucket return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketMetricsConfigurationRequest type GetBucketMetricsConfigurationInput struct { _ struct{} `type:"structure"` @@ -10890,7 +10798,6 @@ func (s *GetBucketMetricsConfigurationInput) SetId(v string) *GetBucketMetricsCo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketMetricsConfigurationOutput type GetBucketMetricsConfigurationOutput struct { _ struct{} `type:"structure" payload:"MetricsConfiguration"` @@ -10914,7 +10821,6 @@ func (s *GetBucketMetricsConfigurationOutput) SetMetricsConfiguration(v *Metrics return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketNotificationConfigurationRequest type GetBucketNotificationConfigurationRequest struct { _ struct{} `type:"structure"` @@ -10960,7 +10866,6 @@ func (s *GetBucketNotificationConfigurationRequest) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyRequest type GetBucketPolicyInput struct { _ struct{} `type:"structure"` @@ -11004,7 +10909,6 @@ func (s *GetBucketPolicyInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketPolicyOutput type GetBucketPolicyOutput struct { _ struct{} `type:"structure" payload:"Policy"` @@ -11028,7 +10932,6 @@ func (s *GetBucketPolicyOutput) SetPolicy(v string) *GetBucketPolicyOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketReplicationRequest type GetBucketReplicationInput struct { _ struct{} `type:"structure"` @@ -11072,7 +10975,6 @@ func (s *GetBucketReplicationInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketReplicationOutput type GetBucketReplicationOutput struct { _ struct{} `type:"structure" payload:"ReplicationConfiguration"` @@ -11097,7 +10999,6 @@ func (s *GetBucketReplicationOutput) SetReplicationConfiguration(v *ReplicationC return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketRequestPaymentRequest type GetBucketRequestPaymentInput struct { _ struct{} `type:"structure"` @@ -11141,7 +11042,6 @@ func (s *GetBucketRequestPaymentInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketRequestPaymentOutput type GetBucketRequestPaymentOutput struct { _ struct{} `type:"structure"` @@ -11165,7 +11065,6 @@ func (s *GetBucketRequestPaymentOutput) SetPayer(v string) *GetBucketRequestPaym return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketTaggingRequest type GetBucketTaggingInput struct { _ struct{} `type:"structure"` @@ -11209,7 +11108,6 @@ func (s *GetBucketTaggingInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketTaggingOutput type GetBucketTaggingOutput struct { _ struct{} `type:"structure"` @@ -11233,7 +11131,6 @@ func (s *GetBucketTaggingOutput) SetTagSet(v []*Tag) *GetBucketTaggingOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketVersioningRequest type GetBucketVersioningInput struct { _ struct{} `type:"structure"` @@ -11277,7 +11174,6 @@ func (s *GetBucketVersioningInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketVersioningOutput type GetBucketVersioningOutput struct { _ struct{} `type:"structure"` @@ -11312,7 +11208,6 @@ func (s *GetBucketVersioningOutput) SetStatus(v string) *GetBucketVersioningOutp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketWebsiteRequest type GetBucketWebsiteInput struct { _ struct{} `type:"structure"` @@ -11356,7 +11251,6 @@ func (s *GetBucketWebsiteInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetBucketWebsiteOutput type GetBucketWebsiteOutput struct { _ struct{} `type:"structure"` @@ -11403,7 +11297,6 @@ func (s *GetBucketWebsiteOutput) SetRoutingRules(v []*RoutingRule) *GetBucketWeb return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAclRequest type GetObjectAclInput struct { _ struct{} `type:"structure"` @@ -11483,7 +11376,6 @@ func (s *GetObjectAclInput) SetVersionId(v string) *GetObjectAclInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectAclOutput type GetObjectAclOutput struct { _ struct{} `type:"structure"` @@ -11525,7 +11417,6 @@ func (s *GetObjectAclOutput) SetRequestCharged(v string) *GetObjectAclOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectRequest type GetObjectInput struct { _ struct{} `type:"structure"` @@ -11760,7 +11651,6 @@ func (s *GetObjectInput) SetVersionId(v string) *GetObjectInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectOutput type GetObjectOutput struct { _ struct{} `type:"structure" payload:"Body"` @@ -12044,7 +11934,6 @@ func (s *GetObjectOutput) SetWebsiteRedirectLocation(v string) *GetObjectOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTaggingRequest type GetObjectTaggingInput struct { _ struct{} `type:"structure"` @@ -12111,7 +12000,6 @@ func (s *GetObjectTaggingInput) SetVersionId(v string) *GetObjectTaggingInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTaggingOutput type GetObjectTaggingOutput struct { _ struct{} `type:"structure"` @@ -12143,7 +12031,6 @@ func (s *GetObjectTaggingOutput) SetVersionId(v string) *GetObjectTaggingOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTorrentRequest type GetObjectTorrentInput struct { _ struct{} `type:"structure"` @@ -12214,7 +12101,6 @@ func (s *GetObjectTorrentInput) SetRequestPayer(v string) *GetObjectTorrentInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GetObjectTorrentOutput type GetObjectTorrentOutput struct { _ struct{} `type:"structure" payload:"Body"` @@ -12247,7 +12133,6 @@ func (s *GetObjectTorrentOutput) SetRequestCharged(v string) *GetObjectTorrentOu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/GlacierJobParameters type GlacierJobParameters struct { _ struct{} `type:"structure"` @@ -12286,7 +12171,6 @@ func (s *GlacierJobParameters) SetTier(v string) *GlacierJobParameters { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Grant type Grant struct { _ struct{} `type:"structure"` @@ -12333,7 +12217,6 @@ func (s *Grant) SetPermission(v string) *Grant { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Grantee type Grantee struct { _ struct{} `type:"structure" xmlPrefix:"xsi" xmlURI:"http://www.w3.org/2001/XMLSchema-instance"` @@ -12408,7 +12291,6 @@ func (s *Grantee) SetURI(v string) *Grantee { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadBucketRequest type HeadBucketInput struct { _ struct{} `type:"structure"` @@ -12452,7 +12334,6 @@ func (s *HeadBucketInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadBucketOutput type HeadBucketOutput struct { _ struct{} `type:"structure"` } @@ -12467,7 +12348,6 @@ func (s HeadBucketOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadObjectRequest type HeadObjectInput struct { _ struct{} `type:"structure"` @@ -12649,7 +12529,6 @@ func (s *HeadObjectInput) SetVersionId(v string) *HeadObjectInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/HeadObjectOutput type HeadObjectOutput struct { _ struct{} `type:"structure"` @@ -12906,7 +12785,6 @@ func (s *HeadObjectOutput) SetWebsiteRedirectLocation(v string) *HeadObjectOutpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/IndexDocument type IndexDocument struct { _ struct{} `type:"structure"` @@ -12948,7 +12826,6 @@ func (s *IndexDocument) SetSuffix(v string) *IndexDocument { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Initiator type Initiator struct { _ struct{} `type:"structure"` @@ -12983,7 +12860,6 @@ func (s *Initiator) SetID(v string) *Initiator { } // Describes the serialization format of the object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InputSerialization type InputSerialization struct { _ struct{} `type:"structure"` @@ -13007,7 +12883,6 @@ func (s *InputSerialization) SetCSV(v *CSVInput) *InputSerialization { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InventoryConfiguration type InventoryConfiguration struct { _ struct{} `type:"structure"` @@ -13136,7 +13011,6 @@ func (s *InventoryConfiguration) SetSchedule(v *InventorySchedule) *InventoryCon return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InventoryDestination type InventoryDestination struct { _ struct{} `type:"structure"` @@ -13183,7 +13057,6 @@ func (s *InventoryDestination) SetS3BucketDestination(v *InventoryS3BucketDestin // Contains the type of server-side encryption used to encrypt the inventory // results. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InventoryEncryption type InventoryEncryption struct { _ struct{} `type:"structure"` @@ -13231,7 +13104,6 @@ func (s *InventoryEncryption) SetSSES3(v *SSES3) *InventoryEncryption { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InventoryFilter type InventoryFilter struct { _ struct{} `type:"structure"` @@ -13270,7 +13142,6 @@ func (s *InventoryFilter) SetPrefix(v string) *InventoryFilter { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InventoryS3BucketDestination type InventoryS3BucketDestination struct { _ struct{} `type:"structure"` @@ -13364,7 +13235,6 @@ func (s *InventoryS3BucketDestination) SetPrefix(v string) *InventoryS3BucketDes return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/InventorySchedule type InventorySchedule struct { _ struct{} `type:"structure"` @@ -13404,7 +13274,6 @@ func (s *InventorySchedule) SetFrequency(v string) *InventorySchedule { } // Container for object key name prefix and suffix filtering rules. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/S3KeyFilter type KeyFilter struct { _ struct{} `type:"structure"` @@ -13430,7 +13299,6 @@ func (s *KeyFilter) SetFilterRules(v []*FilterRule) *KeyFilter { } // Container for specifying the AWS Lambda notification configuration. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/LambdaFunctionConfiguration type LambdaFunctionConfiguration struct { _ struct{} `type:"structure"` @@ -13502,7 +13370,6 @@ func (s *LambdaFunctionConfiguration) SetLambdaFunctionArn(v string) *LambdaFunc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/LifecycleConfiguration type LifecycleConfiguration struct { _ struct{} `type:"structure"` @@ -13549,7 +13416,6 @@ func (s *LifecycleConfiguration) SetRules(v []*Rule) *LifecycleConfiguration { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/LifecycleExpiration type LifecycleExpiration struct { _ struct{} `type:"structure"` @@ -13596,7 +13462,6 @@ func (s *LifecycleExpiration) SetExpiredObjectDeleteMarker(v bool) *LifecycleExp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/LifecycleRule type LifecycleRule struct { _ struct{} `type:"structure"` @@ -13720,7 +13585,6 @@ func (s *LifecycleRule) SetTransitions(v []*Transition) *LifecycleRule { // This is used in a Lifecycle Rule Filter to apply a logical AND to two or // more predicates. The Lifecycle Rule will apply to any object matching all // of the predicates configured inside the And operator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/LifecycleRuleAndOperator type LifecycleRuleAndOperator struct { _ struct{} `type:"structure"` @@ -13775,7 +13639,6 @@ func (s *LifecycleRuleAndOperator) SetTags(v []*Tag) *LifecycleRuleAndOperator { // The Filter is used to identify objects that a Lifecycle Rule applies to. // A Filter must have exactly one of Prefix, Tag, or And specified. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/LifecycleRuleFilter type LifecycleRuleFilter struct { _ struct{} `type:"structure"` @@ -13839,7 +13702,6 @@ func (s *LifecycleRuleFilter) SetTag(v *Tag) *LifecycleRuleFilter { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketAnalyticsConfigurationsRequest type ListBucketAnalyticsConfigurationsInput struct { _ struct{} `type:"structure"` @@ -13895,7 +13757,6 @@ func (s *ListBucketAnalyticsConfigurationsInput) SetContinuationToken(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketAnalyticsConfigurationsOutput type ListBucketAnalyticsConfigurationsOutput struct { _ struct{} `type:"structure"` @@ -13950,7 +13811,6 @@ func (s *ListBucketAnalyticsConfigurationsOutput) SetNextContinuationToken(v str return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketInventoryConfigurationsRequest type ListBucketInventoryConfigurationsInput struct { _ struct{} `type:"structure"` @@ -14008,7 +13868,6 @@ func (s *ListBucketInventoryConfigurationsInput) SetContinuationToken(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketInventoryConfigurationsOutput type ListBucketInventoryConfigurationsOutput struct { _ struct{} `type:"structure"` @@ -14063,7 +13922,6 @@ func (s *ListBucketInventoryConfigurationsOutput) SetNextContinuationToken(v str return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketMetricsConfigurationsRequest type ListBucketMetricsConfigurationsInput struct { _ struct{} `type:"structure"` @@ -14121,7 +13979,6 @@ func (s *ListBucketMetricsConfigurationsInput) SetContinuationToken(v string) *L return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketMetricsConfigurationsOutput type ListBucketMetricsConfigurationsOutput struct { _ struct{} `type:"structure"` @@ -14178,7 +14035,6 @@ func (s *ListBucketMetricsConfigurationsOutput) SetNextContinuationToken(v strin return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketsInput type ListBucketsInput struct { _ struct{} `type:"structure"` } @@ -14193,7 +14049,6 @@ func (s ListBucketsInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListBucketsOutput type ListBucketsOutput struct { _ struct{} `type:"structure"` @@ -14224,7 +14079,6 @@ func (s *ListBucketsOutput) SetOwner(v *Owner) *ListBucketsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListMultipartUploadsRequest type ListMultipartUploadsInput struct { _ struct{} `type:"structure"` @@ -14333,7 +14187,6 @@ func (s *ListMultipartUploadsInput) SetUploadIdMarker(v string) *ListMultipartUp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListMultipartUploadsOutput type ListMultipartUploadsOutput struct { _ struct{} `type:"structure"` @@ -14467,7 +14320,6 @@ func (s *ListMultipartUploadsOutput) SetUploads(v []*MultipartUpload) *ListMulti return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectVersionsRequest type ListObjectVersionsInput struct { _ struct{} `type:"structure"` @@ -14571,7 +14423,6 @@ func (s *ListObjectVersionsInput) SetVersionIdMarker(v string) *ListObjectVersio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectVersionsOutput type ListObjectVersionsOutput struct { _ struct{} `type:"structure"` @@ -14699,7 +14550,6 @@ func (s *ListObjectVersionsOutput) SetVersions(v []*ObjectVersion) *ListObjectVe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectsRequest type ListObjectsInput struct { _ struct{} `type:"structure"` @@ -14805,7 +14655,6 @@ func (s *ListObjectsInput) SetRequestPayer(v string) *ListObjectsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectsOutput type ListObjectsOutput struct { _ struct{} `type:"structure"` @@ -14910,7 +14759,6 @@ func (s *ListObjectsOutput) SetPrefix(v string) *ListObjectsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectsV2Request type ListObjectsV2Input struct { _ struct{} `type:"structure"` @@ -15036,7 +14884,6 @@ func (s *ListObjectsV2Input) SetStartAfter(v string) *ListObjectsV2Input { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListObjectsV2Output type ListObjectsV2Output struct { _ struct{} `type:"structure"` @@ -15170,7 +15017,6 @@ func (s *ListObjectsV2Output) SetStartAfter(v string) *ListObjectsV2Output { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListPartsRequest type ListPartsInput struct { _ struct{} `type:"structure"` @@ -15274,7 +15120,6 @@ func (s *ListPartsInput) SetUploadId(v string) *ListPartsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ListPartsOutput type ListPartsOutput struct { _ struct{} `type:"structure"` @@ -15425,7 +15270,6 @@ func (s *ListPartsOutput) SetUploadId(v string) *ListPartsOutput { } // Describes an S3 location that will receive the results of the restore request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/S3Location type Location struct { _ struct{} `type:"structure"` @@ -15553,7 +15397,6 @@ func (s *Location) SetUserMetadata(v []*MetadataEntry) *Location { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/LoggingEnabled type LoggingEnabled struct { _ struct{} `type:"structure"` @@ -15621,7 +15464,6 @@ func (s *LoggingEnabled) SetTargetPrefix(v string) *LoggingEnabled { } // A metadata key-value pair to store with an object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/MetadataEntry type MetadataEntry struct { _ struct{} `type:"structure"` @@ -15652,7 +15494,6 @@ func (s *MetadataEntry) SetValue(v string) *MetadataEntry { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/MetricsAndOperator type MetricsAndOperator struct { _ struct{} `type:"structure"` @@ -15705,7 +15546,6 @@ func (s *MetricsAndOperator) SetTags(v []*Tag) *MetricsAndOperator { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/MetricsConfiguration type MetricsConfiguration struct { _ struct{} `type:"structure"` @@ -15760,7 +15600,6 @@ func (s *MetricsConfiguration) SetId(v string) *MetricsConfiguration { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/MetricsFilter type MetricsFilter struct { _ struct{} `type:"structure"` @@ -15824,7 +15663,6 @@ func (s *MetricsFilter) SetTag(v *Tag) *MetricsFilter { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/MultipartUpload type MultipartUpload struct { _ struct{} `type:"structure"` @@ -15897,7 +15735,6 @@ func (s *MultipartUpload) SetUploadId(v string) *MultipartUpload { // configuration action on a bucket that has versioning enabled (or suspended) // to request that Amazon S3 delete noncurrent object versions at a specific // period in the object's lifetime. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/NoncurrentVersionExpiration type NoncurrentVersionExpiration struct { _ struct{} `type:"structure"` @@ -15929,7 +15766,6 @@ func (s *NoncurrentVersionExpiration) SetNoncurrentDays(v int64) *NoncurrentVers // versioning-enabled (or versioning is suspended), you can set this action // to request that Amazon S3 transition noncurrent object versions to the STANDARD_IA // or GLACIER storage class at a specific period in the object's lifetime. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/NoncurrentVersionTransition type NoncurrentVersionTransition struct { _ struct{} `type:"structure"` @@ -15967,7 +15803,6 @@ func (s *NoncurrentVersionTransition) SetStorageClass(v string) *NoncurrentVersi // Container for specifying the notification configuration of the bucket. If // this element is empty, notifications are turned off on the bucket. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/NotificationConfiguration type NotificationConfiguration struct { _ struct{} `type:"structure"` @@ -16046,7 +15881,6 @@ func (s *NotificationConfiguration) SetTopicConfigurations(v []*TopicConfigurati return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/NotificationConfigurationDeprecated type NotificationConfigurationDeprecated struct { _ struct{} `type:"structure"` @@ -16087,7 +15921,6 @@ func (s *NotificationConfigurationDeprecated) SetTopicConfiguration(v *TopicConf // Container for object key name filtering rules. For information about key // name filtering, go to Configuring Event Notifications (http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html) -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/NotificationConfigurationFilter type NotificationConfigurationFilter struct { _ struct{} `type:"structure"` @@ -16111,7 +15944,6 @@ func (s *NotificationConfigurationFilter) SetKey(v *KeyFilter) *NotificationConf return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Object type Object struct { _ struct{} `type:"structure"` @@ -16175,7 +16007,6 @@ func (s *Object) SetStorageClass(v string) *Object { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectIdentifier type ObjectIdentifier struct { _ struct{} `type:"structure"` @@ -16226,7 +16057,6 @@ func (s *ObjectIdentifier) SetVersionId(v string) *ObjectIdentifier { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ObjectVersion type ObjectVersion struct { _ struct{} `type:"structure"` @@ -16313,7 +16143,6 @@ func (s *ObjectVersion) SetVersionId(v string) *ObjectVersion { } // Describes the location where the restore job's output is stored. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/OutputLocation type OutputLocation struct { _ struct{} `type:"structure"` @@ -16353,7 +16182,6 @@ func (s *OutputLocation) SetS3(v *Location) *OutputLocation { } // Describes how results of the Select job are serialized. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/OutputSerialization type OutputSerialization struct { _ struct{} `type:"structure"` @@ -16377,7 +16205,6 @@ func (s *OutputSerialization) SetCSV(v *CSVOutput) *OutputSerialization { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Owner type Owner struct { _ struct{} `type:"structure"` @@ -16408,7 +16235,6 @@ func (s *Owner) SetID(v string) *Owner { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Part type Part struct { _ struct{} `type:"structure"` @@ -16460,7 +16286,6 @@ func (s *Part) SetSize(v int64) *Part { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAccelerateConfigurationRequest type PutBucketAccelerateConfigurationInput struct { _ struct{} `type:"structure" payload:"AccelerateConfiguration"` @@ -16520,7 +16345,6 @@ func (s *PutBucketAccelerateConfigurationInput) getBucket() (v string) { return *s.Bucket } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAccelerateConfigurationOutput type PutBucketAccelerateConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -16535,7 +16359,6 @@ func (s PutBucketAccelerateConfigurationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAclRequest type PutBucketAclInput struct { _ struct{} `type:"structure" payload:"AccessControlPolicy"` @@ -16647,7 +16470,6 @@ func (s *PutBucketAclInput) SetGrantWriteACP(v string) *PutBucketAclInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAclOutput type PutBucketAclOutput struct { _ struct{} `type:"structure"` } @@ -16662,7 +16484,6 @@ func (s PutBucketAclOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAnalyticsConfigurationRequest type PutBucketAnalyticsConfigurationInput struct { _ struct{} `type:"structure" payload:"AnalyticsConfiguration"` @@ -16741,7 +16562,6 @@ func (s *PutBucketAnalyticsConfigurationInput) SetId(v string) *PutBucketAnalyti return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketAnalyticsConfigurationOutput type PutBucketAnalyticsConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -16756,7 +16576,6 @@ func (s PutBucketAnalyticsConfigurationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketCorsRequest type PutBucketCorsInput struct { _ struct{} `type:"structure" payload:"CORSConfiguration"` @@ -16817,7 +16636,6 @@ func (s *PutBucketCorsInput) SetCORSConfiguration(v *CORSConfiguration) *PutBuck return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketCorsOutput type PutBucketCorsOutput struct { _ struct{} `type:"structure"` } @@ -16832,7 +16650,6 @@ func (s PutBucketCorsOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketEncryptionRequest type PutBucketEncryptionInput struct { _ struct{} `type:"structure" payload:"ServerSideEncryptionConfiguration"` @@ -16899,7 +16716,6 @@ func (s *PutBucketEncryptionInput) SetServerSideEncryptionConfiguration(v *Serve return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketEncryptionOutput type PutBucketEncryptionOutput struct { _ struct{} `type:"structure"` } @@ -16914,7 +16730,6 @@ func (s PutBucketEncryptionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketInventoryConfigurationRequest type PutBucketInventoryConfigurationInput struct { _ struct{} `type:"structure" payload:"InventoryConfiguration"` @@ -16993,7 +16808,6 @@ func (s *PutBucketInventoryConfigurationInput) SetInventoryConfiguration(v *Inve return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketInventoryConfigurationOutput type PutBucketInventoryConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -17008,7 +16822,6 @@ func (s PutBucketInventoryConfigurationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycleConfigurationRequest type PutBucketLifecycleConfigurationInput struct { _ struct{} `type:"structure" payload:"LifecycleConfiguration"` @@ -17065,7 +16878,6 @@ func (s *PutBucketLifecycleConfigurationInput) SetLifecycleConfiguration(v *Buck return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycleConfigurationOutput type PutBucketLifecycleConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -17080,7 +16892,6 @@ func (s PutBucketLifecycleConfigurationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycleRequest type PutBucketLifecycleInput struct { _ struct{} `type:"structure" payload:"LifecycleConfiguration"` @@ -17137,7 +16948,6 @@ func (s *PutBucketLifecycleInput) SetLifecycleConfiguration(v *LifecycleConfigur return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLifecycleOutput type PutBucketLifecycleOutput struct { _ struct{} `type:"structure"` } @@ -17152,7 +16962,6 @@ func (s PutBucketLifecycleOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLoggingRequest type PutBucketLoggingInput struct { _ struct{} `type:"structure" payload:"BucketLoggingStatus"` @@ -17213,7 +17022,6 @@ func (s *PutBucketLoggingInput) SetBucketLoggingStatus(v *BucketLoggingStatus) * return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketLoggingOutput type PutBucketLoggingOutput struct { _ struct{} `type:"structure"` } @@ -17228,7 +17036,6 @@ func (s PutBucketLoggingOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketMetricsConfigurationRequest type PutBucketMetricsConfigurationInput struct { _ struct{} `type:"structure" payload:"MetricsConfiguration"` @@ -17307,7 +17114,6 @@ func (s *PutBucketMetricsConfigurationInput) SetMetricsConfiguration(v *MetricsC return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketMetricsConfigurationOutput type PutBucketMetricsConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -17322,7 +17128,6 @@ func (s PutBucketMetricsConfigurationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotificationConfigurationRequest type PutBucketNotificationConfigurationInput struct { _ struct{} `type:"structure" payload:"NotificationConfiguration"` @@ -17386,7 +17191,6 @@ func (s *PutBucketNotificationConfigurationInput) SetNotificationConfiguration(v return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotificationConfigurationOutput type PutBucketNotificationConfigurationOutput struct { _ struct{} `type:"structure"` } @@ -17401,7 +17205,6 @@ func (s PutBucketNotificationConfigurationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotificationRequest type PutBucketNotificationInput struct { _ struct{} `type:"structure" payload:"NotificationConfiguration"` @@ -17457,7 +17260,6 @@ func (s *PutBucketNotificationInput) SetNotificationConfiguration(v *Notificatio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketNotificationOutput type PutBucketNotificationOutput struct { _ struct{} `type:"structure"` } @@ -17472,7 +17274,6 @@ func (s PutBucketNotificationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketPolicyRequest type PutBucketPolicyInput struct { _ struct{} `type:"structure" payload:"Policy"` @@ -17540,7 +17341,6 @@ func (s *PutBucketPolicyInput) SetPolicy(v string) *PutBucketPolicyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketPolicyOutput type PutBucketPolicyOutput struct { _ struct{} `type:"structure"` } @@ -17555,7 +17355,6 @@ func (s PutBucketPolicyOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketReplicationRequest type PutBucketReplicationInput struct { _ struct{} `type:"structure" payload:"ReplicationConfiguration"` @@ -17619,7 +17418,6 @@ func (s *PutBucketReplicationInput) SetReplicationConfiguration(v *ReplicationCo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketReplicationOutput type PutBucketReplicationOutput struct { _ struct{} `type:"structure"` } @@ -17634,7 +17432,6 @@ func (s PutBucketReplicationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketRequestPaymentRequest type PutBucketRequestPaymentInput struct { _ struct{} `type:"structure" payload:"RequestPaymentConfiguration"` @@ -17695,7 +17492,6 @@ func (s *PutBucketRequestPaymentInput) SetRequestPaymentConfiguration(v *Request return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketRequestPaymentOutput type PutBucketRequestPaymentOutput struct { _ struct{} `type:"structure"` } @@ -17710,7 +17506,6 @@ func (s PutBucketRequestPaymentOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketTaggingRequest type PutBucketTaggingInput struct { _ struct{} `type:"structure" payload:"Tagging"` @@ -17771,7 +17566,6 @@ func (s *PutBucketTaggingInput) SetTagging(v *Tagging) *PutBucketTaggingInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketTaggingOutput type PutBucketTaggingOutput struct { _ struct{} `type:"structure"` } @@ -17786,7 +17580,6 @@ func (s PutBucketTaggingOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketVersioningRequest type PutBucketVersioningInput struct { _ struct{} `type:"structure" payload:"VersioningConfiguration"` @@ -17852,7 +17645,6 @@ func (s *PutBucketVersioningInput) SetVersioningConfiguration(v *VersioningConfi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketVersioningOutput type PutBucketVersioningOutput struct { _ struct{} `type:"structure"` } @@ -17867,7 +17659,6 @@ func (s PutBucketVersioningOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketWebsiteRequest type PutBucketWebsiteInput struct { _ struct{} `type:"structure" payload:"WebsiteConfiguration"` @@ -17928,7 +17719,6 @@ func (s *PutBucketWebsiteInput) SetWebsiteConfiguration(v *WebsiteConfiguration) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutBucketWebsiteOutput type PutBucketWebsiteOutput struct { _ struct{} `type:"structure"` } @@ -17943,7 +17733,6 @@ func (s PutBucketWebsiteOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectAclRequest type PutObjectAclInput struct { _ struct{} `type:"structure" payload:"AccessControlPolicy"` @@ -18091,7 +17880,6 @@ func (s *PutObjectAclInput) SetVersionId(v string) *PutObjectAclInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectAclOutput type PutObjectAclOutput struct { _ struct{} `type:"structure"` @@ -18116,7 +17904,6 @@ func (s *PutObjectAclOutput) SetRequestCharged(v string) *PutObjectAclOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectRequest type PutObjectInput struct { _ struct{} `type:"structure" payload:"Body"` @@ -18420,7 +18207,6 @@ func (s *PutObjectInput) SetWebsiteRedirectLocation(v string) *PutObjectInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectOutput type PutObjectOutput struct { _ struct{} `type:"structure"` @@ -18515,7 +18301,6 @@ func (s *PutObjectOutput) SetVersionId(v string) *PutObjectOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectTaggingRequest type PutObjectTaggingInput struct { _ struct{} `type:"structure" payload:"Tagging"` @@ -18599,7 +18384,6 @@ func (s *PutObjectTaggingInput) SetVersionId(v string) *PutObjectTaggingInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/PutObjectTaggingOutput type PutObjectTaggingOutput struct { _ struct{} `type:"structure"` @@ -18624,7 +18408,6 @@ func (s *PutObjectTaggingOutput) SetVersionId(v string) *PutObjectTaggingOutput // Container for specifying an configuration when you want Amazon S3 to publish // events to an Amazon Simple Queue Service (Amazon SQS) queue. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/QueueConfiguration type QueueConfiguration struct { _ struct{} `type:"structure"` @@ -18696,7 +18479,6 @@ func (s *QueueConfiguration) SetQueueArn(v string) *QueueConfiguration { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/QueueConfigurationDeprecated type QueueConfigurationDeprecated struct { _ struct{} `type:"structure"` @@ -18746,7 +18528,6 @@ func (s *QueueConfigurationDeprecated) SetQueue(v string) *QueueConfigurationDep return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Redirect type Redirect struct { _ struct{} `type:"structure"` @@ -18815,7 +18596,6 @@ func (s *Redirect) SetReplaceKeyWith(v string) *Redirect { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RedirectAllRequestsTo type RedirectAllRequestsTo struct { _ struct{} `type:"structure"` @@ -18866,7 +18646,6 @@ func (s *RedirectAllRequestsTo) SetProtocol(v string) *RedirectAllRequestsTo { // Container for replication rules. You can add as many as 1,000 rules. Total // replication configuration size can be up to 2 MB. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ReplicationConfiguration type ReplicationConfiguration struct { _ struct{} `type:"structure"` @@ -18932,7 +18711,6 @@ func (s *ReplicationConfiguration) SetRules(v []*ReplicationRule) *ReplicationCo } // Container for information about a particular replication rule. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ReplicationRule type ReplicationRule struct { _ struct{} `type:"structure"` @@ -19029,7 +18807,6 @@ func (s *ReplicationRule) SetStatus(v string) *ReplicationRule { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RequestPaymentConfiguration type RequestPaymentConfiguration struct { _ struct{} `type:"structure"` @@ -19068,7 +18845,6 @@ func (s *RequestPaymentConfiguration) SetPayer(v string) *RequestPaymentConfigur return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RestoreObjectRequest type RestoreObjectInput struct { _ struct{} `type:"structure" payload:"RestoreRequest"` @@ -19161,7 +18937,6 @@ func (s *RestoreObjectInput) SetVersionId(v string) *RestoreObjectInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RestoreObjectOutput type RestoreObjectOutput struct { _ struct{} `type:"structure"` @@ -19197,7 +18972,6 @@ func (s *RestoreObjectOutput) SetRestoreOutputPath(v string) *RestoreObjectOutpu } // Container for restore job parameters. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RestoreRequest type RestoreRequest struct { _ struct{} `type:"structure"` @@ -19302,7 +19076,6 @@ func (s *RestoreRequest) SetType(v string) *RestoreRequest { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/RoutingRule type RoutingRule struct { _ struct{} `type:"structure"` @@ -19355,7 +19128,6 @@ func (s *RoutingRule) SetRedirect(v *Redirect) *RoutingRule { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Rule type Rule struct { _ struct{} `type:"structure"` @@ -19471,7 +19243,6 @@ func (s *Rule) SetTransition(v *Transition) *Rule { } // Specifies the use of SSE-KMS to encrypt delievered Inventory reports. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SSEKMS type SSEKMS struct { _ struct{} `locationName:"SSE-KMS" type:"structure"` @@ -19512,7 +19283,6 @@ func (s *SSEKMS) SetKeyId(v string) *SSEKMS { } // Specifies the use of SSE-S3 to encrypt delievered Inventory reports. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SSES3 type SSES3 struct { _ struct{} `locationName:"SSE-S3" type:"structure"` } @@ -19528,7 +19298,6 @@ func (s SSES3) GoString() string { } // Describes the parameters for Select job types. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SelectParameters type SelectParameters struct { _ struct{} `type:"structure"` @@ -19612,7 +19381,6 @@ func (s *SelectParameters) SetOutputSerialization(v *OutputSerialization) *Selec // Describes the default server-side encryption to apply to new objects in the // bucket. If Put Object request does not specify any server-side encryption, // this default encryption will be applied. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ServerSideEncryptionByDefault type ServerSideEncryptionByDefault struct { _ struct{} `type:"structure"` @@ -19663,7 +19431,6 @@ func (s *ServerSideEncryptionByDefault) SetSSEAlgorithm(v string) *ServerSideEnc // Container for server-side encryption configuration rules. Currently S3 supports // one rule only. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ServerSideEncryptionConfiguration type ServerSideEncryptionConfiguration struct { _ struct{} `type:"structure"` @@ -19715,7 +19482,6 @@ func (s *ServerSideEncryptionConfiguration) SetRules(v []*ServerSideEncryptionRu // Container for information about a particular server-side encryption configuration // rule. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/ServerSideEncryptionRule type ServerSideEncryptionRule struct { _ struct{} `type:"structure"` @@ -19757,7 +19523,6 @@ func (s *ServerSideEncryptionRule) SetApplyServerSideEncryptionByDefault(v *Serv } // Container for filters that define which source objects should be replicated. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SourceSelectionCriteria type SourceSelectionCriteria struct { _ struct{} `type:"structure"` @@ -19797,7 +19562,6 @@ func (s *SourceSelectionCriteria) SetSseKmsEncryptedObjects(v *SseKmsEncryptedOb } // Container for filter information of selection of KMS Encrypted S3 objects. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/SseKmsEncryptedObjects type SseKmsEncryptedObjects struct { _ struct{} `type:"structure"` @@ -19837,7 +19601,6 @@ func (s *SseKmsEncryptedObjects) SetStatus(v string) *SseKmsEncryptedObjects { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/StorageClassAnalysis type StorageClassAnalysis struct { _ struct{} `type:"structure"` @@ -19877,7 +19640,6 @@ func (s *StorageClassAnalysis) SetDataExport(v *StorageClassAnalysisDataExport) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/StorageClassAnalysisDataExport type StorageClassAnalysisDataExport struct { _ struct{} `type:"structure"` @@ -19935,7 +19697,6 @@ func (s *StorageClassAnalysisDataExport) SetOutputSchemaVersion(v string) *Stora return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Tag type Tag struct { _ struct{} `type:"structure"` @@ -19991,7 +19752,6 @@ func (s *Tag) SetValue(v string) *Tag { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Tagging type Tagging struct { _ struct{} `type:"structure"` @@ -20038,7 +19798,6 @@ func (s *Tagging) SetTagSet(v []*Tag) *Tagging { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/TargetGrant type TargetGrant struct { _ struct{} `type:"structure"` @@ -20087,7 +19846,6 @@ func (s *TargetGrant) SetPermission(v string) *TargetGrant { // Container for specifying the configuration when you want Amazon S3 to publish // events to an Amazon Simple Notification Service (Amazon SNS) topic. -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/TopicConfiguration type TopicConfiguration struct { _ struct{} `type:"structure"` @@ -20159,7 +19917,6 @@ func (s *TopicConfiguration) SetTopicArn(v string) *TopicConfiguration { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/TopicConfigurationDeprecated type TopicConfigurationDeprecated struct { _ struct{} `type:"structure"` @@ -20211,7 +19968,6 @@ func (s *TopicConfigurationDeprecated) SetTopic(v string) *TopicConfigurationDep return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/Transition type Transition struct { _ struct{} `type:"structure"` @@ -20255,7 +20011,6 @@ func (s *Transition) SetStorageClass(v string) *Transition { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPartCopyRequest type UploadPartCopyInput struct { _ struct{} `type:"structure"` @@ -20499,7 +20254,6 @@ func (s *UploadPartCopyInput) SetUploadId(v string) *UploadPartCopyInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPartCopyOutput type UploadPartCopyOutput struct { _ struct{} `type:"structure" payload:"CopyPartResult"` @@ -20584,7 +20338,6 @@ func (s *UploadPartCopyOutput) SetServerSideEncryption(v string) *UploadPartCopy return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPartRequest type UploadPartInput struct { _ struct{} `type:"structure" payload:"Body"` @@ -20757,7 +20510,6 @@ func (s *UploadPartInput) SetUploadId(v string) *UploadPartInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/UploadPartOutput type UploadPartOutput struct { _ struct{} `type:"structure"` @@ -20833,7 +20585,6 @@ func (s *UploadPartOutput) SetServerSideEncryption(v string) *UploadPartOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/VersioningConfiguration type VersioningConfiguration struct { _ struct{} `type:"structure"` @@ -20868,7 +20619,6 @@ func (s *VersioningConfiguration) SetStatus(v string) *VersioningConfiguration { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/s3-2006-03-01/WebsiteConfiguration type WebsiteConfiguration struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/servicecatalog/api.go b/vendor/github.com/aws/aws-sdk-go/service/servicecatalog/api.go index 2b16bf7e7..3ea8c14b7 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/servicecatalog/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/servicecatalog/api.go @@ -816,6 +816,101 @@ func (c *ServiceCatalog) CreateProductWithContext(ctx aws.Context, input *Create return out, req.Send() } +const opCreateProvisionedProductPlan = "CreateProvisionedProductPlan" + +// CreateProvisionedProductPlanRequest generates a "aws/request.Request" representing the +// client's request for the CreateProvisionedProductPlan operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreateProvisionedProductPlan for more information on using the CreateProvisionedProductPlan +// 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 CreateProvisionedProductPlanRequest method. +// req, resp := client.CreateProvisionedProductPlanRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateProvisionedProductPlan +func (c *ServiceCatalog) CreateProvisionedProductPlanRequest(input *CreateProvisionedProductPlanInput) (req *request.Request, output *CreateProvisionedProductPlanOutput) { + op := &request.Operation{ + Name: opCreateProvisionedProductPlan, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateProvisionedProductPlanInput{} + } + + output = &CreateProvisionedProductPlanOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateProvisionedProductPlan API operation for AWS Service Catalog. +// +// Creates a plan. A plan includes the list of resources that will be created +// (when provisioning a new product) or modified (when updating a provisioned +// product) when the plan is executed. +// +// You can create one plan per provisioned product. To create a plan for an +// existing provisioned product, it's status must be AVAILBLE or TAINTED. +// +// To view the resource changes in the change set, use DescribeProvisionedProductPlan. +// To create or modify the provisioned product, use ExecuteProvisionedProductPlan. +// +// 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 Service Catalog's +// API operation CreateProvisionedProductPlan for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidParametersException "InvalidParametersException" +// One or more parameters provided to the operation are not valid. +// +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The specified resource was not found. +// +// * ErrCodeInvalidStateException "InvalidStateException" +// An attempt was made to modify a resource that is in a state that is not valid. +// Check your resources to ensure that they are in valid states before retrying +// the operation. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateProvisionedProductPlan +func (c *ServiceCatalog) CreateProvisionedProductPlan(input *CreateProvisionedProductPlanInput) (*CreateProvisionedProductPlanOutput, error) { + req, out := c.CreateProvisionedProductPlanRequest(input) + return out, req.Send() +} + +// CreateProvisionedProductPlanWithContext is the same as CreateProvisionedProductPlan with the addition of +// the ability to pass a context and additional request options. +// +// See CreateProvisionedProductPlan 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 *ServiceCatalog) CreateProvisionedProductPlanWithContext(ctx aws.Context, input *CreateProvisionedProductPlanInput, opts ...request.Option) (*CreateProvisionedProductPlanOutput, error) { + req, out := c.CreateProvisionedProductPlanRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opCreateProvisioningArtifact = "CreateProvisioningArtifact" // CreateProvisioningArtifactRequest generates a "aws/request.Request" representing the @@ -1142,8 +1237,8 @@ func (c *ServiceCatalog) DeletePortfolioRequest(input *DeletePortfolioInput) (re // One or more parameters provided to the operation are not valid. // // * ErrCodeResourceInUseException "ResourceInUseException" -// A resource that is currently in use. Ensure the resource is not in use and -// retry the operation. +// A resource that is currently in use. Ensure that the resource is not in use +// and retry the operation. // // * ErrCodeTagOptionNotMigratedException "TagOptionNotMigratedException" // An operation requiring TagOptions failed because the TagOptions migration @@ -1312,8 +1407,8 @@ func (c *ServiceCatalog) DeleteProductRequest(input *DeleteProductInput) (req *r // The specified resource was not found. // // * ErrCodeResourceInUseException "ResourceInUseException" -// A resource that is currently in use. Ensure the resource is not in use and -// retry the operation. +// A resource that is currently in use. Ensure that the resource is not in use +// and retry the operation. // // * ErrCodeInvalidParametersException "InvalidParametersException" // One or more parameters provided to the operation are not valid. @@ -1345,6 +1440,88 @@ func (c *ServiceCatalog) DeleteProductWithContext(ctx aws.Context, input *Delete return out, req.Send() } +const opDeleteProvisionedProductPlan = "DeleteProvisionedProductPlan" + +// DeleteProvisionedProductPlanRequest generates a "aws/request.Request" representing the +// client's request for the DeleteProvisionedProductPlan operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DeleteProvisionedProductPlan for more information on using the DeleteProvisionedProductPlan +// 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 DeleteProvisionedProductPlanRequest method. +// req, resp := client.DeleteProvisionedProductPlanRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeleteProvisionedProductPlan +func (c *ServiceCatalog) DeleteProvisionedProductPlanRequest(input *DeleteProvisionedProductPlanInput) (req *request.Request, output *DeleteProvisionedProductPlanOutput) { + op := &request.Operation{ + Name: opDeleteProvisionedProductPlan, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteProvisionedProductPlanInput{} + } + + output = &DeleteProvisionedProductPlanOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteProvisionedProductPlan API operation for AWS Service Catalog. +// +// Deletes the specified plan. +// +// 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 Service Catalog's +// API operation DeleteProvisionedProductPlan for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidParametersException "InvalidParametersException" +// One or more parameters provided to the operation are not valid. +// +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The specified resource was not found. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeleteProvisionedProductPlan +func (c *ServiceCatalog) DeleteProvisionedProductPlan(input *DeleteProvisionedProductPlanInput) (*DeleteProvisionedProductPlanOutput, error) { + req, out := c.DeleteProvisionedProductPlanRequest(input) + return out, req.Send() +} + +// DeleteProvisionedProductPlanWithContext is the same as DeleteProvisionedProductPlan with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteProvisionedProductPlan 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 *ServiceCatalog) DeleteProvisionedProductPlanWithContext(ctx aws.Context, input *DeleteProvisionedProductPlanInput, opts ...request.Option) (*DeleteProvisionedProductPlanOutput, error) { + req, out := c.DeleteProvisionedProductPlanRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDeleteProvisioningArtifact = "DeleteProvisioningArtifact" // DeleteProvisioningArtifactRequest generates a "aws/request.Request" representing the @@ -1408,8 +1585,8 @@ func (c *ServiceCatalog) DeleteProvisioningArtifactRequest(input *DeleteProvisio // The specified resource was not found. // // * ErrCodeResourceInUseException "ResourceInUseException" -// A resource that is currently in use. Ensure the resource is not in use and -// retry the operation. +// A resource that is currently in use. Ensure that the resource is not in use +// and retry the operation. // // * ErrCodeInvalidParametersException "InvalidParametersException" // One or more parameters provided to the operation are not valid. @@ -1996,6 +2173,88 @@ func (c *ServiceCatalog) DescribeProvisionedProductWithContext(ctx aws.Context, return out, req.Send() } +const opDescribeProvisionedProductPlan = "DescribeProvisionedProductPlan" + +// DescribeProvisionedProductPlanRequest generates a "aws/request.Request" representing the +// client's request for the DescribeProvisionedProductPlan operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeProvisionedProductPlan for more information on using the DescribeProvisionedProductPlan +// 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 DescribeProvisionedProductPlanRequest method. +// req, resp := client.DescribeProvisionedProductPlanRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProvisionedProductPlan +func (c *ServiceCatalog) DescribeProvisionedProductPlanRequest(input *DescribeProvisionedProductPlanInput) (req *request.Request, output *DescribeProvisionedProductPlanOutput) { + op := &request.Operation{ + Name: opDescribeProvisionedProductPlan, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeProvisionedProductPlanInput{} + } + + output = &DescribeProvisionedProductPlanOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeProvisionedProductPlan API operation for AWS Service Catalog. +// +// Gets information about the resource changes for the specified plan. +// +// 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 Service Catalog's +// API operation DescribeProvisionedProductPlan for usage and error information. +// +// Returned Error Codes: +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The specified resource was not found. +// +// * ErrCodeInvalidParametersException "InvalidParametersException" +// One or more parameters provided to the operation are not valid. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProvisionedProductPlan +func (c *ServiceCatalog) DescribeProvisionedProductPlan(input *DescribeProvisionedProductPlanInput) (*DescribeProvisionedProductPlanOutput, error) { + req, out := c.DescribeProvisionedProductPlanRequest(input) + return out, req.Send() +} + +// DescribeProvisionedProductPlanWithContext is the same as DescribeProvisionedProductPlan with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeProvisionedProductPlan 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 *ServiceCatalog) DescribeProvisionedProductPlanWithContext(ctx aws.Context, input *DescribeProvisionedProductPlanInput, opts ...request.Option) (*DescribeProvisionedProductPlanOutput, error) { + req, out := c.DescribeProvisionedProductPlanRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeProvisioningArtifact = "DescribeProvisioningArtifact" // DescribeProvisioningArtifactRequest generates a "aws/request.Request" representing the @@ -2126,9 +2385,9 @@ func (c *ServiceCatalog) DescribeProvisioningParametersRequest(input *DescribePr // If the output contains a TagOption key with an empty list of values, there // is a TagOption conflict for that key. The end user cannot take action to // fix the conflict, and launch is not blocked. In subsequent calls to ProvisionProduct, -// do not include conflicted TagOption keys as tags, or this will cause the -// error "Parameter validation failed: Missing required parameter in Tags[N]:Value" -// and tag the provisioned product with the value sc-tagoption-conflict-portfolioId-productId. +// do not include conflicted TagOption keys as tags, or this causes the error +// "Parameter validation failed: Missing required parameter in Tags[N]:Value". +// Tag the provisioned product with the value sc-tagoption-conflict-portfolioId-productId. // // 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 @@ -2472,8 +2731,8 @@ func (c *ServiceCatalog) DisassociateProductFromPortfolioRequest(input *Disassoc // The specified resource was not found. // // * ErrCodeResourceInUseException "ResourceInUseException" -// A resource that is currently in use. Ensure the resource is not in use and -// retry the operation. +// A resource that is currently in use. Ensure that the resource is not in use +// and retry the operation. // // * ErrCodeInvalidParametersException "InvalidParametersException" // One or more parameters provided to the operation are not valid. @@ -2584,6 +2843,94 @@ func (c *ServiceCatalog) DisassociateTagOptionFromResourceWithContext(ctx aws.Co return out, req.Send() } +const opExecuteProvisionedProductPlan = "ExecuteProvisionedProductPlan" + +// ExecuteProvisionedProductPlanRequest generates a "aws/request.Request" representing the +// client's request for the ExecuteProvisionedProductPlan operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 ExecuteProvisionedProductPlan for more information on using the ExecuteProvisionedProductPlan +// 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 ExecuteProvisionedProductPlanRequest method. +// req, resp := client.ExecuteProvisionedProductPlanRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ExecuteProvisionedProductPlan +func (c *ServiceCatalog) ExecuteProvisionedProductPlanRequest(input *ExecuteProvisionedProductPlanInput) (req *request.Request, output *ExecuteProvisionedProductPlanOutput) { + op := &request.Operation{ + Name: opExecuteProvisionedProductPlan, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ExecuteProvisionedProductPlanInput{} + } + + output = &ExecuteProvisionedProductPlanOutput{} + req = c.newRequest(op, input, output) + return +} + +// ExecuteProvisionedProductPlan API operation for AWS Service Catalog. +// +// Provisions or modifies a product based on the resource changes for the specified +// plan. +// +// 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 Service Catalog's +// API operation ExecuteProvisionedProductPlan for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidParametersException "InvalidParametersException" +// One or more parameters provided to the operation are not valid. +// +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The specified resource was not found. +// +// * ErrCodeInvalidStateException "InvalidStateException" +// An attempt was made to modify a resource that is in a state that is not valid. +// Check your resources to ensure that they are in valid states before retrying +// the operation. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ExecuteProvisionedProductPlan +func (c *ServiceCatalog) ExecuteProvisionedProductPlan(input *ExecuteProvisionedProductPlanInput) (*ExecuteProvisionedProductPlanOutput, error) { + req, out := c.ExecuteProvisionedProductPlanRequest(input) + return out, req.Send() +} + +// ExecuteProvisionedProductPlanWithContext is the same as ExecuteProvisionedProductPlan with the addition of +// the ability to pass a context and additional request options. +// +// See ExecuteProvisionedProductPlan 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 *ServiceCatalog) ExecuteProvisionedProductPlanWithContext(ctx aws.Context, input *ExecuteProvisionedProductPlanInput, opts ...request.Option) (*ExecuteProvisionedProductPlanOutput, error) { + req, out := c.ExecuteProvisionedProductPlanRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListAcceptedPortfolioShares = "ListAcceptedPortfolioShares" // ListAcceptedPortfolioSharesRequest generates a "aws/request.Request" representing the @@ -3487,6 +3834,89 @@ func (c *ServiceCatalog) ListPrincipalsForPortfolioPagesWithContext(ctx aws.Cont return p.Err() } +const opListProvisionedProductPlans = "ListProvisionedProductPlans" + +// ListProvisionedProductPlansRequest generates a "aws/request.Request" representing the +// client's request for the ListProvisionedProductPlans operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 ListProvisionedProductPlans for more information on using the ListProvisionedProductPlans +// 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 ListProvisionedProductPlansRequest method. +// req, resp := client.ListProvisionedProductPlansRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListProvisionedProductPlans +func (c *ServiceCatalog) ListProvisionedProductPlansRequest(input *ListProvisionedProductPlansInput) (req *request.Request, output *ListProvisionedProductPlansOutput) { + op := &request.Operation{ + Name: opListProvisionedProductPlans, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListProvisionedProductPlansInput{} + } + + output = &ListProvisionedProductPlansOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListProvisionedProductPlans API operation for AWS Service Catalog. +// +// Lists the plans for the specified provisioned product or all plans the user +// has access to. +// +// 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 Service Catalog's +// API operation ListProvisionedProductPlans for usage and error information. +// +// Returned Error Codes: +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// The specified resource was not found. +// +// * ErrCodeInvalidParametersException "InvalidParametersException" +// One or more parameters provided to the operation are not valid. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListProvisionedProductPlans +func (c *ServiceCatalog) ListProvisionedProductPlans(input *ListProvisionedProductPlansInput) (*ListProvisionedProductPlansOutput, error) { + req, out := c.ListProvisionedProductPlansRequest(input) + return out, req.Send() +} + +// ListProvisionedProductPlansWithContext is the same as ListProvisionedProductPlans with the addition of +// the ability to pass a context and additional request options. +// +// See ListProvisionedProductPlans 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 *ServiceCatalog) ListProvisionedProductPlansWithContext(ctx aws.Context, input *ListProvisionedProductPlansInput, opts ...request.Option) (*ListProvisionedProductPlansOutput, error) { + req, out := c.ListProvisionedProductPlansRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opListProvisioningArtifacts = "ListProvisioningArtifacts" // ListProvisioningArtifactsRequest generates a "aws/request.Request" representing the @@ -3985,7 +4415,7 @@ func (c *ServiceCatalog) ProvisionProductRequest(input *ProvisionProductInput) ( // // If the request contains a tag key with an empty list of values, there is // a tag conflict for that key. Do not include conflicted keys as tags, or this -// will cause the error "Parameter validation failed: Missing required parameter +// causes the error "Parameter validation failed: Missing required parameter // in Tags[N]:Value". // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -4152,6 +4582,8 @@ func (c *ServiceCatalog) ScanProvisionedProductsRequest(input *ScanProvisionedPr // // Lists the provisioned products that are available (not terminated). // +// To use additional filtering, see SearchProvisionedProducts. +// // 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. @@ -4458,6 +4890,141 @@ func (c *ServiceCatalog) SearchProductsAsAdminPagesWithContext(ctx aws.Context, return p.Err() } +const opSearchProvisionedProducts = "SearchProvisionedProducts" + +// SearchProvisionedProductsRequest generates a "aws/request.Request" representing the +// client's request for the SearchProvisionedProducts operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 SearchProvisionedProducts for more information on using the SearchProvisionedProducts +// 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 SearchProvisionedProductsRequest method. +// req, resp := client.SearchProvisionedProductsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/SearchProvisionedProducts +func (c *ServiceCatalog) SearchProvisionedProductsRequest(input *SearchProvisionedProductsInput) (req *request.Request, output *SearchProvisionedProductsOutput) { + op := &request.Operation{ + Name: opSearchProvisionedProducts, + HTTPMethod: "POST", + HTTPPath: "/", + Paginator: &request.Paginator{ + InputTokens: []string{"PageToken"}, + OutputTokens: []string{"NextPageToken"}, + LimitToken: "PageSize", + TruncationToken: "", + }, + } + + if input == nil { + input = &SearchProvisionedProductsInput{} + } + + output = &SearchProvisionedProductsOutput{} + req = c.newRequest(op, input, output) + return +} + +// SearchProvisionedProducts API operation for AWS Service Catalog. +// +// Gets information about the provisioned products that meet the specified criteria. +// +// 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 Service Catalog's +// API operation SearchProvisionedProducts for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidParametersException "InvalidParametersException" +// One or more parameters provided to the operation are not valid. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/SearchProvisionedProducts +func (c *ServiceCatalog) SearchProvisionedProducts(input *SearchProvisionedProductsInput) (*SearchProvisionedProductsOutput, error) { + req, out := c.SearchProvisionedProductsRequest(input) + return out, req.Send() +} + +// SearchProvisionedProductsWithContext is the same as SearchProvisionedProducts with the addition of +// the ability to pass a context and additional request options. +// +// See SearchProvisionedProducts 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 *ServiceCatalog) SearchProvisionedProductsWithContext(ctx aws.Context, input *SearchProvisionedProductsInput, opts ...request.Option) (*SearchProvisionedProductsOutput, error) { + req, out := c.SearchProvisionedProductsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// SearchProvisionedProductsPages iterates over the pages of a SearchProvisionedProducts operation, +// calling the "fn" function with the response data for each page. To stop +// iterating, return false from the fn function. +// +// See SearchProvisionedProducts 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 SearchProvisionedProducts operation. +// pageNum := 0 +// err := client.SearchProvisionedProductsPages(params, +// func(page *SearchProvisionedProductsOutput, lastPage bool) bool { +// pageNum++ +// fmt.Println(page) +// return pageNum <= 3 +// }) +// +func (c *ServiceCatalog) SearchProvisionedProductsPages(input *SearchProvisionedProductsInput, fn func(*SearchProvisionedProductsOutput, bool) bool) error { + return c.SearchProvisionedProductsPagesWithContext(aws.BackgroundContext(), input, fn) +} + +// SearchProvisionedProductsPagesWithContext same as SearchProvisionedProductsPages 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 *ServiceCatalog) SearchProvisionedProductsPagesWithContext(ctx aws.Context, input *SearchProvisionedProductsInput, fn func(*SearchProvisionedProductsOutput, bool) bool, opts ...request.Option) error { + p := request.Pagination{ + NewRequest: func() (*request.Request, error) { + var inCpy *SearchProvisionedProductsInput + if input != nil { + tmp := *input + inCpy = &tmp + } + req, _ := c.SearchProvisionedProductsRequest(inCpy) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return req, nil + }, + } + + cont := true + for p.Next() && cont { + cont = fn(p.Page().(*SearchProvisionedProductsOutput), !p.HasNextPage()) + } + return p.Err() +} + const opTerminateProvisionedProduct = "TerminateProvisionedProduct" // TerminateProvisionedProductRequest generates a "aws/request.Request" representing the @@ -5070,7 +5637,6 @@ func (c *ServiceCatalog) UpdateTagOptionWithContext(ctx aws.Context, input *Upda return out, req.Send() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/AcceptPortfolioShareInput type AcceptPortfolioShareInput struct { _ struct{} `type:"structure"` @@ -5127,7 +5693,6 @@ func (s *AcceptPortfolioShareInput) SetPortfolioId(v string) *AcceptPortfolioSha return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/AcceptPortfolioShareOutput type AcceptPortfolioShareOutput struct { _ struct{} `type:"structure"` } @@ -5143,7 +5708,6 @@ func (s AcceptPortfolioShareOutput) GoString() string { } // The access level to use to filter results. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/AccessLevelFilter type AccessLevelFilter struct { _ struct{} `type:"structure"` @@ -5182,7 +5746,6 @@ func (s *AccessLevelFilter) SetValue(v string) *AccessLevelFilter { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/AssociatePrincipalWithPortfolioInput type AssociatePrincipalWithPortfolioInput struct { _ struct{} `type:"structure"` @@ -5270,7 +5833,6 @@ func (s *AssociatePrincipalWithPortfolioInput) SetPrincipalType(v string) *Assoc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/AssociatePrincipalWithPortfolioOutput type AssociatePrincipalWithPortfolioOutput struct { _ struct{} `type:"structure"` } @@ -5285,7 +5847,6 @@ func (s AssociatePrincipalWithPortfolioOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/AssociateProductWithPortfolioInput type AssociateProductWithPortfolioInput struct { _ struct{} `type:"structure"` @@ -5371,7 +5932,6 @@ func (s *AssociateProductWithPortfolioInput) SetSourcePortfolioId(v string) *Ass return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/AssociateProductWithPortfolioOutput type AssociateProductWithPortfolioOutput struct { _ struct{} `type:"structure"` } @@ -5386,7 +5946,6 @@ func (s AssociateProductWithPortfolioOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/AssociateTagOptionWithResourceInput type AssociateTagOptionWithResourceInput struct { _ struct{} `type:"structure"` @@ -5442,7 +6001,6 @@ func (s *AssociateTagOptionWithResourceInput) SetTagOptionId(v string) *Associat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/AssociateTagOptionWithResourceOutput type AssociateTagOptionWithResourceOutput struct { _ struct{} `type:"structure"` } @@ -5457,8 +6015,31 @@ func (s AssociateTagOptionWithResourceOutput) GoString() string { return s.String() } +// Information about a CloudWatch dashboard. +type CloudWatchDashboard struct { + _ struct{} `type:"structure"` + + // The name of the CloudWatch dashboard. + Name *string `type:"string"` +} + +// String returns the string representation +func (s CloudWatchDashboard) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CloudWatchDashboard) GoString() string { + return s.String() +} + +// SetName sets the Name field's value. +func (s *CloudWatchDashboard) SetName(v string) *CloudWatchDashboard { + s.Name = &v + return s +} + // Information about a constraint. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ConstraintDetail type ConstraintDetail struct { _ struct{} `type:"structure"` @@ -5516,7 +6097,6 @@ func (s *ConstraintDetail) SetType(v string) *ConstraintDetail { } // Summary information about a constraint. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ConstraintSummary type ConstraintSummary struct { _ struct{} `type:"structure"` @@ -5555,7 +6135,6 @@ func (s *ConstraintSummary) SetType(v string) *ConstraintSummary { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CopyProductInput type CopyProductInput struct { _ struct{} `type:"structure"` @@ -5672,7 +6251,6 @@ func (s *CopyProductInput) SetTargetProductName(v string) *CopyProductInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CopyProductOutput type CopyProductOutput struct { _ struct{} `type:"structure"` @@ -5696,7 +6274,6 @@ func (s *CopyProductOutput) SetCopyProductToken(v string) *CopyProductOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateConstraintInput type CreateConstraintInput struct { _ struct{} `type:"structure"` @@ -5847,7 +6424,6 @@ func (s *CreateConstraintInput) SetType(v string) *CreateConstraintInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateConstraintOutput type CreateConstraintOutput struct { _ struct{} `type:"structure"` @@ -5889,7 +6465,6 @@ func (s *CreateConstraintOutput) SetStatus(v string) *CreateConstraintOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreatePortfolioInput type CreatePortfolioInput struct { _ struct{} `type:"structure"` @@ -5922,7 +6497,7 @@ type CreatePortfolioInput struct { // ProviderName is a required field ProviderName *string `min:"1" type:"string" required:"true"` - // The tags to associate with the portfolio. + // One or more tags. Tags []*Tag `type:"list"` } @@ -6010,7 +6585,6 @@ func (s *CreatePortfolioInput) SetTags(v []*Tag) *CreatePortfolioInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreatePortfolioOutput type CreatePortfolioOutput struct { _ struct{} `type:"structure"` @@ -6043,7 +6617,6 @@ func (s *CreatePortfolioOutput) SetTags(v []*Tag) *CreatePortfolioOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreatePortfolioShareInput type CreatePortfolioShareInput struct { _ struct{} `type:"structure"` @@ -6114,7 +6687,6 @@ func (s *CreatePortfolioShareInput) SetPortfolioId(v string) *CreatePortfolioSha return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreatePortfolioShareOutput type CreatePortfolioShareOutput struct { _ struct{} `type:"structure"` } @@ -6129,7 +6701,6 @@ func (s CreatePortfolioShareOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateProductInput type CreateProductInput struct { _ struct{} `type:"structure"` @@ -6184,7 +6755,7 @@ type CreateProductInput struct { // The contact URL for product support. SupportUrl *string `type:"string"` - // The tags to associate with the product. + // One or more tags. Tags []*Tag `type:"list"` } @@ -6313,7 +6884,6 @@ func (s *CreateProductInput) SetTags(v []*Tag) *CreateProductInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateProductOutput type CreateProductOutput struct { _ struct{} `type:"structure"` @@ -6355,7 +6925,266 @@ func (s *CreateProductOutput) SetTags(v []*Tag) *CreateProductOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateProvisioningArtifactInput +type CreateProvisionedProductPlanInput struct { + _ struct{} `type:"structure"` + + // The language code. + // + // * en - English (default) + // + // * jp - Japanese + // + // * zh - Chinese + AcceptLanguage *string `type:"string"` + + // A unique identifier that you provide to ensure idempotency. If multiple requests + // differ only by the idempotency token, the same response is returned for each + // repeated request. + // + // IdempotencyToken is a required field + IdempotencyToken *string `min:"1" type:"string" required:"true" idempotencyToken:"true"` + + // Passed to CloudFormation. The SNS topic ARNs to which to publish stack-related + // events. + NotificationArns []*string `type:"list"` + + // The path identifier of the product. This value is optional if the product + // has a default path, and required if the product has more than one path. To + // list the paths for a product, use ListLaunchPaths. + PathId *string `min:"1" type:"string"` + + // The name of the plan. + // + // PlanName is a required field + PlanName *string `type:"string" required:"true"` + + // The plan type. + // + // PlanType is a required field + PlanType *string `type:"string" required:"true" enum:"ProvisionedProductPlanType"` + + // The product identifier. + // + // ProductId is a required field + ProductId *string `min:"1" type:"string" required:"true"` + + // A user-friendly name for the provisioned product. This value must be unique + // for the AWS account and cannot be updated after the product is provisioned. + // + // ProvisionedProductName is a required field + ProvisionedProductName *string `min:"1" type:"string" required:"true"` + + // The identifier of the provisioning artifact. + // + // ProvisioningArtifactId is a required field + ProvisioningArtifactId *string `min:"1" type:"string" required:"true"` + + // Parameters specified by the administrator that are required for provisioning + // the product. + ProvisioningParameters []*UpdateProvisioningParameter `type:"list"` + + // One or more tags. + Tags []*Tag `type:"list"` +} + +// String returns the string representation +func (s CreateProvisionedProductPlanInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateProvisionedProductPlanInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateProvisionedProductPlanInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateProvisionedProductPlanInput"} + if s.IdempotencyToken == nil { + invalidParams.Add(request.NewErrParamRequired("IdempotencyToken")) + } + if s.IdempotencyToken != nil && len(*s.IdempotencyToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("IdempotencyToken", 1)) + } + if s.PathId != nil && len(*s.PathId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PathId", 1)) + } + if s.PlanName == nil { + invalidParams.Add(request.NewErrParamRequired("PlanName")) + } + if s.PlanType == nil { + invalidParams.Add(request.NewErrParamRequired("PlanType")) + } + if s.ProductId == nil { + invalidParams.Add(request.NewErrParamRequired("ProductId")) + } + if s.ProductId != nil && len(*s.ProductId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProductId", 1)) + } + if s.ProvisionedProductName == nil { + invalidParams.Add(request.NewErrParamRequired("ProvisionedProductName")) + } + if s.ProvisionedProductName != nil && len(*s.ProvisionedProductName) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProvisionedProductName", 1)) + } + if s.ProvisioningArtifactId == nil { + invalidParams.Add(request.NewErrParamRequired("ProvisioningArtifactId")) + } + if s.ProvisioningArtifactId != nil && len(*s.ProvisioningArtifactId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProvisioningArtifactId", 1)) + } + if s.ProvisioningParameters != nil { + for i, v := range s.ProvisioningParameters { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ProvisioningParameters", i), err.(request.ErrInvalidParams)) + } + } + } + if s.Tags != nil { + for i, v := range s.Tags { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAcceptLanguage sets the AcceptLanguage field's value. +func (s *CreateProvisionedProductPlanInput) SetAcceptLanguage(v string) *CreateProvisionedProductPlanInput { + s.AcceptLanguage = &v + return s +} + +// SetIdempotencyToken sets the IdempotencyToken field's value. +func (s *CreateProvisionedProductPlanInput) SetIdempotencyToken(v string) *CreateProvisionedProductPlanInput { + s.IdempotencyToken = &v + return s +} + +// SetNotificationArns sets the NotificationArns field's value. +func (s *CreateProvisionedProductPlanInput) SetNotificationArns(v []*string) *CreateProvisionedProductPlanInput { + s.NotificationArns = v + return s +} + +// SetPathId sets the PathId field's value. +func (s *CreateProvisionedProductPlanInput) SetPathId(v string) *CreateProvisionedProductPlanInput { + s.PathId = &v + return s +} + +// SetPlanName sets the PlanName field's value. +func (s *CreateProvisionedProductPlanInput) SetPlanName(v string) *CreateProvisionedProductPlanInput { + s.PlanName = &v + return s +} + +// SetPlanType sets the PlanType field's value. +func (s *CreateProvisionedProductPlanInput) SetPlanType(v string) *CreateProvisionedProductPlanInput { + s.PlanType = &v + return s +} + +// SetProductId sets the ProductId field's value. +func (s *CreateProvisionedProductPlanInput) SetProductId(v string) *CreateProvisionedProductPlanInput { + s.ProductId = &v + return s +} + +// SetProvisionedProductName sets the ProvisionedProductName field's value. +func (s *CreateProvisionedProductPlanInput) SetProvisionedProductName(v string) *CreateProvisionedProductPlanInput { + s.ProvisionedProductName = &v + return s +} + +// SetProvisioningArtifactId sets the ProvisioningArtifactId field's value. +func (s *CreateProvisionedProductPlanInput) SetProvisioningArtifactId(v string) *CreateProvisionedProductPlanInput { + s.ProvisioningArtifactId = &v + return s +} + +// SetProvisioningParameters sets the ProvisioningParameters field's value. +func (s *CreateProvisionedProductPlanInput) SetProvisioningParameters(v []*UpdateProvisioningParameter) *CreateProvisionedProductPlanInput { + s.ProvisioningParameters = v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateProvisionedProductPlanInput) SetTags(v []*Tag) *CreateProvisionedProductPlanInput { + s.Tags = v + return s +} + +type CreateProvisionedProductPlanOutput struct { + _ struct{} `type:"structure"` + + // The plan identifier. + PlanId *string `min:"1" type:"string"` + + // The name of the plan. + PlanName *string `type:"string"` + + // The product identifier. + ProvisionProductId *string `min:"1" type:"string"` + + // The user-friendly name of the provisioned product. + ProvisionedProductName *string `min:"1" type:"string"` + + // The identifier of the provisioning artifact. + ProvisioningArtifactId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s CreateProvisionedProductPlanOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateProvisionedProductPlanOutput) GoString() string { + return s.String() +} + +// SetPlanId sets the PlanId field's value. +func (s *CreateProvisionedProductPlanOutput) SetPlanId(v string) *CreateProvisionedProductPlanOutput { + s.PlanId = &v + return s +} + +// SetPlanName sets the PlanName field's value. +func (s *CreateProvisionedProductPlanOutput) SetPlanName(v string) *CreateProvisionedProductPlanOutput { + s.PlanName = &v + return s +} + +// SetProvisionProductId sets the ProvisionProductId field's value. +func (s *CreateProvisionedProductPlanOutput) SetProvisionProductId(v string) *CreateProvisionedProductPlanOutput { + s.ProvisionProductId = &v + return s +} + +// SetProvisionedProductName sets the ProvisionedProductName field's value. +func (s *CreateProvisionedProductPlanOutput) SetProvisionedProductName(v string) *CreateProvisionedProductPlanOutput { + s.ProvisionedProductName = &v + return s +} + +// SetProvisioningArtifactId sets the ProvisioningArtifactId field's value. +func (s *CreateProvisionedProductPlanOutput) SetProvisioningArtifactId(v string) *CreateProvisionedProductPlanOutput { + s.ProvisioningArtifactId = &v + return s +} + type CreateProvisioningArtifactInput struct { _ struct{} `type:"structure"` @@ -6450,7 +7279,6 @@ func (s *CreateProvisioningArtifactInput) SetProductId(v string) *CreateProvisio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateProvisioningArtifactOutput type CreateProvisioningArtifactOutput struct { _ struct{} `type:"structure"` @@ -6492,7 +7320,6 @@ func (s *CreateProvisioningArtifactOutput) SetStatus(v string) *CreateProvisioni return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateTagOptionInput type CreateTagOptionInput struct { _ struct{} `type:"structure"` @@ -6551,7 +7378,6 @@ func (s *CreateTagOptionInput) SetValue(v string) *CreateTagOptionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/CreateTagOptionOutput type CreateTagOptionOutput struct { _ struct{} `type:"structure"` @@ -6575,7 +7401,6 @@ func (s *CreateTagOptionOutput) SetTagOptionDetail(v *TagOptionDetail) *CreateTa return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeleteConstraintInput type DeleteConstraintInput struct { _ struct{} `type:"structure"` @@ -6632,7 +7457,6 @@ func (s *DeleteConstraintInput) SetId(v string) *DeleteConstraintInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeleteConstraintOutput type DeleteConstraintOutput struct { _ struct{} `type:"structure"` } @@ -6647,7 +7471,6 @@ func (s DeleteConstraintOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeletePortfolioInput type DeletePortfolioInput struct { _ struct{} `type:"structure"` @@ -6704,7 +7527,6 @@ func (s *DeletePortfolioInput) SetId(v string) *DeletePortfolioInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeletePortfolioOutput type DeletePortfolioOutput struct { _ struct{} `type:"structure"` } @@ -6719,7 +7541,6 @@ func (s DeletePortfolioOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeletePortfolioShareInput type DeletePortfolioShareInput struct { _ struct{} `type:"structure"` @@ -6790,7 +7611,6 @@ func (s *DeletePortfolioShareInput) SetPortfolioId(v string) *DeletePortfolioSha return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeletePortfolioShareOutput type DeletePortfolioShareOutput struct { _ struct{} `type:"structure"` } @@ -6805,7 +7625,6 @@ func (s DeletePortfolioShareOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeleteProductInput type DeleteProductInput struct { _ struct{} `type:"structure"` @@ -6862,7 +7681,6 @@ func (s *DeleteProductInput) SetId(v string) *DeleteProductInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeleteProductOutput type DeleteProductOutput struct { _ struct{} `type:"structure"` } @@ -6877,7 +7695,86 @@ func (s DeleteProductOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeleteProvisioningArtifactInput +type DeleteProvisionedProductPlanInput struct { + _ struct{} `type:"structure"` + + // The language code. + // + // * en - English (default) + // + // * jp - Japanese + // + // * zh - Chinese + AcceptLanguage *string `type:"string"` + + // If set to true, AWS Service Catalog stops managing the specified provisioned + // product even if it cannot delete the underlying resources. + IgnoreErrors *bool `type:"boolean"` + + // The plan identifier. + // + // PlanId is a required field + PlanId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteProvisionedProductPlanInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteProvisionedProductPlanInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteProvisionedProductPlanInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteProvisionedProductPlanInput"} + if s.PlanId == nil { + invalidParams.Add(request.NewErrParamRequired("PlanId")) + } + if s.PlanId != nil && len(*s.PlanId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PlanId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAcceptLanguage sets the AcceptLanguage field's value. +func (s *DeleteProvisionedProductPlanInput) SetAcceptLanguage(v string) *DeleteProvisionedProductPlanInput { + s.AcceptLanguage = &v + return s +} + +// SetIgnoreErrors sets the IgnoreErrors field's value. +func (s *DeleteProvisionedProductPlanInput) SetIgnoreErrors(v bool) *DeleteProvisionedProductPlanInput { + s.IgnoreErrors = &v + return s +} + +// SetPlanId sets the PlanId field's value. +func (s *DeleteProvisionedProductPlanInput) SetPlanId(v string) *DeleteProvisionedProductPlanInput { + s.PlanId = &v + return s +} + +type DeleteProvisionedProductPlanOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteProvisionedProductPlanOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteProvisionedProductPlanOutput) GoString() string { + return s.String() +} + type DeleteProvisioningArtifactInput struct { _ struct{} `type:"structure"` @@ -6951,7 +7848,6 @@ func (s *DeleteProvisioningArtifactInput) SetProvisioningArtifactId(v string) *D return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DeleteProvisioningArtifactOutput type DeleteProvisioningArtifactOutput struct { _ struct{} `type:"structure"` } @@ -6966,7 +7862,6 @@ func (s DeleteProvisioningArtifactOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeConstraintInput type DescribeConstraintInput struct { _ struct{} `type:"structure"` @@ -7023,7 +7918,6 @@ func (s *DescribeConstraintInput) SetId(v string) *DescribeConstraintInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeConstraintOutput type DescribeConstraintOutput struct { _ struct{} `type:"structure"` @@ -7065,7 +7959,6 @@ func (s *DescribeConstraintOutput) SetStatus(v string) *DescribeConstraintOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeCopyProductStatusInput type DescribeCopyProductStatusInput struct { _ struct{} `type:"structure"` @@ -7122,7 +8015,6 @@ func (s *DescribeCopyProductStatusInput) SetCopyProductToken(v string) *Describe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeCopyProductStatusOutput type DescribeCopyProductStatusOutput struct { _ struct{} `type:"structure"` @@ -7164,7 +8056,6 @@ func (s *DescribeCopyProductStatusOutput) SetTargetProductId(v string) *Describe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribePortfolioInput type DescribePortfolioInput struct { _ struct{} `type:"structure"` @@ -7221,7 +8112,6 @@ func (s *DescribePortfolioInput) SetId(v string) *DescribePortfolioInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribePortfolioOutput type DescribePortfolioOutput struct { _ struct{} `type:"structure"` @@ -7263,7 +8153,6 @@ func (s *DescribePortfolioOutput) SetTags(v []*Tag) *DescribePortfolioOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProductAsAdminInput type DescribeProductAsAdminInput struct { _ struct{} `type:"structure"` @@ -7320,7 +8209,6 @@ func (s *DescribeProductAsAdminInput) SetId(v string) *DescribeProductAsAdminInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProductAsAdminOutput type DescribeProductAsAdminOutput struct { _ struct{} `type:"structure"` @@ -7372,7 +8260,6 @@ func (s *DescribeProductAsAdminOutput) SetTags(v []*Tag) *DescribeProductAsAdmin return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProductInput type DescribeProductInput struct { _ struct{} `type:"structure"` @@ -7429,7 +8316,6 @@ func (s *DescribeProductInput) SetId(v string) *DescribeProductInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProductOutput type DescribeProductOutput struct { _ struct{} `type:"structure"` @@ -7462,7 +8348,6 @@ func (s *DescribeProductOutput) SetProvisioningArtifacts(v []*ProvisioningArtifa return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProductViewInput type DescribeProductViewInput struct { _ struct{} `type:"structure"` @@ -7519,7 +8404,6 @@ func (s *DescribeProductViewInput) SetId(v string) *DescribeProductViewInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProductViewOutput type DescribeProductViewOutput struct { _ struct{} `type:"structure"` @@ -7552,7 +8436,6 @@ func (s *DescribeProductViewOutput) SetProvisioningArtifacts(v []*ProvisioningAr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProvisionedProductInput type DescribeProvisionedProductInput struct { _ struct{} `type:"structure"` @@ -7609,10 +8492,12 @@ func (s *DescribeProvisionedProductInput) SetId(v string) *DescribeProvisionedPr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProvisionedProductOutput type DescribeProvisionedProductOutput struct { _ struct{} `type:"structure"` + // Any CloudWatch dashboards that were created when provisioning the product. + CloudWatchDashboards []*CloudWatchDashboard `type:"list"` + // Information about the provisioned product. ProvisionedProductDetail *ProvisionedProductDetail `type:"structure"` } @@ -7627,13 +8512,136 @@ func (s DescribeProvisionedProductOutput) GoString() string { return s.String() } +// SetCloudWatchDashboards sets the CloudWatchDashboards field's value. +func (s *DescribeProvisionedProductOutput) SetCloudWatchDashboards(v []*CloudWatchDashboard) *DescribeProvisionedProductOutput { + s.CloudWatchDashboards = v + return s +} + // SetProvisionedProductDetail sets the ProvisionedProductDetail field's value. func (s *DescribeProvisionedProductOutput) SetProvisionedProductDetail(v *ProvisionedProductDetail) *DescribeProvisionedProductOutput { s.ProvisionedProductDetail = v return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProvisioningArtifactInput +type DescribeProvisionedProductPlanInput struct { + _ struct{} `type:"structure"` + + // The language code. + // + // * en - English (default) + // + // * jp - Japanese + // + // * zh - Chinese + AcceptLanguage *string `type:"string"` + + // The maximum number of items to return with this call. + PageSize *int64 `type:"integer"` + + // The page token for the next set of results. To retrieve the first set of + // results, use null. + PageToken *string `type:"string"` + + // The plan identifier. + // + // PlanId is a required field + PlanId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s DescribeProvisionedProductPlanInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeProvisionedProductPlanInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeProvisionedProductPlanInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeProvisionedProductPlanInput"} + if s.PlanId == nil { + invalidParams.Add(request.NewErrParamRequired("PlanId")) + } + if s.PlanId != nil && len(*s.PlanId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PlanId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAcceptLanguage sets the AcceptLanguage field's value. +func (s *DescribeProvisionedProductPlanInput) SetAcceptLanguage(v string) *DescribeProvisionedProductPlanInput { + s.AcceptLanguage = &v + return s +} + +// SetPageSize sets the PageSize field's value. +func (s *DescribeProvisionedProductPlanInput) SetPageSize(v int64) *DescribeProvisionedProductPlanInput { + s.PageSize = &v + return s +} + +// SetPageToken sets the PageToken field's value. +func (s *DescribeProvisionedProductPlanInput) SetPageToken(v string) *DescribeProvisionedProductPlanInput { + s.PageToken = &v + return s +} + +// SetPlanId sets the PlanId field's value. +func (s *DescribeProvisionedProductPlanInput) SetPlanId(v string) *DescribeProvisionedProductPlanInput { + s.PlanId = &v + return s +} + +type DescribeProvisionedProductPlanOutput struct { + _ struct{} `type:"structure"` + + // The page token to use to retrieve the next set of results. If there are no + // additional results, this value is null. + NextPageToken *string `type:"string"` + + // Information about the plan. + ProvisionedProductPlanDetails *ProvisionedProductPlanDetails `type:"structure"` + + // Information about the resources changes that will occur when the plan is + // executed. + ResourceChanges []*ResourceChange `type:"list"` +} + +// String returns the string representation +func (s DescribeProvisionedProductPlanOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeProvisionedProductPlanOutput) GoString() string { + return s.String() +} + +// SetNextPageToken sets the NextPageToken field's value. +func (s *DescribeProvisionedProductPlanOutput) SetNextPageToken(v string) *DescribeProvisionedProductPlanOutput { + s.NextPageToken = &v + return s +} + +// SetProvisionedProductPlanDetails sets the ProvisionedProductPlanDetails field's value. +func (s *DescribeProvisionedProductPlanOutput) SetProvisionedProductPlanDetails(v *ProvisionedProductPlanDetails) *DescribeProvisionedProductPlanOutput { + s.ProvisionedProductPlanDetails = v + return s +} + +// SetResourceChanges sets the ResourceChanges field's value. +func (s *DescribeProvisionedProductPlanOutput) SetResourceChanges(v []*ResourceChange) *DescribeProvisionedProductPlanOutput { + s.ResourceChanges = v + return s +} + type DescribeProvisioningArtifactInput struct { _ struct{} `type:"structure"` @@ -7716,7 +8724,6 @@ func (s *DescribeProvisioningArtifactInput) SetVerbose(v bool) *DescribeProvisio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProvisioningArtifactOutput type DescribeProvisioningArtifactOutput struct { _ struct{} `type:"structure"` @@ -7758,7 +8765,6 @@ func (s *DescribeProvisioningArtifactOutput) SetStatus(v string) *DescribeProvis return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProvisioningParametersInput type DescribeProvisioningParametersInput struct { _ struct{} `type:"structure"` @@ -7846,7 +8852,6 @@ func (s *DescribeProvisioningParametersInput) SetProvisioningArtifactId(v string return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeProvisioningParametersOutput type DescribeProvisioningParametersOutput struct { _ struct{} `type:"structure"` @@ -7898,7 +8903,6 @@ func (s *DescribeProvisioningParametersOutput) SetUsageInstructions(v []*UsageIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeRecordInput type DescribeRecordInput struct { _ struct{} `type:"structure"` @@ -7975,7 +8979,6 @@ func (s *DescribeRecordInput) SetPageToken(v string) *DescribeRecordInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeRecordOutput type DescribeRecordOutput struct { _ struct{} `type:"structure"` @@ -8020,7 +9023,6 @@ func (s *DescribeRecordOutput) SetRecordOutputs(v []*RecordOutput) *DescribeReco return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeTagOptionInput type DescribeTagOptionInput struct { _ struct{} `type:"structure"` @@ -8062,7 +9064,6 @@ func (s *DescribeTagOptionInput) SetId(v string) *DescribeTagOptionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DescribeTagOptionOutput type DescribeTagOptionOutput struct { _ struct{} `type:"structure"` @@ -8086,7 +9087,6 @@ func (s *DescribeTagOptionOutput) SetTagOptionDetail(v *TagOptionDetail) *Descri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DisassociatePrincipalFromPortfolioInput type DisassociatePrincipalFromPortfolioInput struct { _ struct{} `type:"structure"` @@ -8160,7 +9160,6 @@ func (s *DisassociatePrincipalFromPortfolioInput) SetPrincipalARN(v string) *Dis return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DisassociatePrincipalFromPortfolioOutput type DisassociatePrincipalFromPortfolioOutput struct { _ struct{} `type:"structure"` } @@ -8175,7 +9174,6 @@ func (s DisassociatePrincipalFromPortfolioOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DisassociateProductFromPortfolioInput type DisassociateProductFromPortfolioInput struct { _ struct{} `type:"structure"` @@ -8249,7 +9247,6 @@ func (s *DisassociateProductFromPortfolioInput) SetProductId(v string) *Disassoc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DisassociateProductFromPortfolioOutput type DisassociateProductFromPortfolioOutput struct { _ struct{} `type:"structure"` } @@ -8264,7 +9261,6 @@ func (s DisassociateProductFromPortfolioOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DisassociateTagOptionFromResourceInput type DisassociateTagOptionFromResourceInput struct { _ struct{} `type:"structure"` @@ -8320,7 +9316,6 @@ func (s *DisassociateTagOptionFromResourceInput) SetTagOptionId(v string) *Disas return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/DisassociateTagOptionFromResourceOutput type DisassociateTagOptionFromResourceOutput struct { _ struct{} `type:"structure"` } @@ -8335,8 +9330,105 @@ func (s DisassociateTagOptionFromResourceOutput) GoString() string { return s.String() } +type ExecuteProvisionedProductPlanInput struct { + _ struct{} `type:"structure"` + + // The language code. + // + // * en - English (default) + // + // * jp - Japanese + // + // * zh - Chinese + AcceptLanguage *string `type:"string"` + + // A unique identifier that you provide to ensure idempotency. If multiple requests + // differ only by the idempotency token, the same response is returned for each + // repeated request. + // + // IdempotencyToken is a required field + IdempotencyToken *string `min:"1" type:"string" required:"true" idempotencyToken:"true"` + + // The plan identifier. + // + // PlanId is a required field + PlanId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s ExecuteProvisionedProductPlanInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ExecuteProvisionedProductPlanInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ExecuteProvisionedProductPlanInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ExecuteProvisionedProductPlanInput"} + if s.IdempotencyToken == nil { + invalidParams.Add(request.NewErrParamRequired("IdempotencyToken")) + } + if s.IdempotencyToken != nil && len(*s.IdempotencyToken) < 1 { + invalidParams.Add(request.NewErrParamMinLen("IdempotencyToken", 1)) + } + if s.PlanId == nil { + invalidParams.Add(request.NewErrParamRequired("PlanId")) + } + if s.PlanId != nil && len(*s.PlanId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("PlanId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAcceptLanguage sets the AcceptLanguage field's value. +func (s *ExecuteProvisionedProductPlanInput) SetAcceptLanguage(v string) *ExecuteProvisionedProductPlanInput { + s.AcceptLanguage = &v + return s +} + +// SetIdempotencyToken sets the IdempotencyToken field's value. +func (s *ExecuteProvisionedProductPlanInput) SetIdempotencyToken(v string) *ExecuteProvisionedProductPlanInput { + s.IdempotencyToken = &v + return s +} + +// SetPlanId sets the PlanId field's value. +func (s *ExecuteProvisionedProductPlanInput) SetPlanId(v string) *ExecuteProvisionedProductPlanInput { + s.PlanId = &v + return s +} + +type ExecuteProvisionedProductPlanOutput struct { + _ struct{} `type:"structure"` + + // Information about the result of provisioning the product. + RecordDetail *RecordDetail `type:"structure"` +} + +// String returns the string representation +func (s ExecuteProvisionedProductPlanOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ExecuteProvisionedProductPlanOutput) GoString() string { + return s.String() +} + +// SetRecordDetail sets the RecordDetail field's value. +func (s *ExecuteProvisionedProductPlanOutput) SetRecordDetail(v *RecordDetail) *ExecuteProvisionedProductPlanOutput { + s.RecordDetail = v + return s +} + // Summary information about a product path for a user. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/LaunchPathSummary type LaunchPathSummary struct { _ struct{} `type:"structure"` @@ -8387,7 +9479,6 @@ func (s *LaunchPathSummary) SetTags(v []*Tag) *LaunchPathSummary { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListAcceptedPortfolioSharesInput type ListAcceptedPortfolioSharesInput struct { _ struct{} `type:"structure"` @@ -8436,7 +9527,6 @@ func (s *ListAcceptedPortfolioSharesInput) SetPageToken(v string) *ListAcceptedP return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListAcceptedPortfolioSharesOutput type ListAcceptedPortfolioSharesOutput struct { _ struct{} `type:"structure"` @@ -8470,7 +9560,6 @@ func (s *ListAcceptedPortfolioSharesOutput) SetPortfolioDetails(v []*PortfolioDe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListConstraintsForPortfolioInput type ListConstraintsForPortfolioInput struct { _ struct{} `type:"structure"` @@ -8558,7 +9647,6 @@ func (s *ListConstraintsForPortfolioInput) SetProductId(v string) *ListConstrain return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListConstraintsForPortfolioOutput type ListConstraintsForPortfolioOutput struct { _ struct{} `type:"structure"` @@ -8592,7 +9680,6 @@ func (s *ListConstraintsForPortfolioOutput) SetNextPageToken(v string) *ListCons return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListLaunchPathsInput type ListLaunchPathsInput struct { _ struct{} `type:"structure"` @@ -8668,7 +9755,6 @@ func (s *ListLaunchPathsInput) SetProductId(v string) *ListLaunchPathsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListLaunchPathsOutput type ListLaunchPathsOutput struct { _ struct{} `type:"structure"` @@ -8702,7 +9788,6 @@ func (s *ListLaunchPathsOutput) SetNextPageToken(v string) *ListLaunchPathsOutpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListPortfolioAccessInput type ListPortfolioAccessInput struct { _ struct{} `type:"structure"` @@ -8759,7 +9844,6 @@ func (s *ListPortfolioAccessInput) SetPortfolioId(v string) *ListPortfolioAccess return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListPortfolioAccessOutput type ListPortfolioAccessOutput struct { _ struct{} `type:"structure"` @@ -8793,7 +9877,6 @@ func (s *ListPortfolioAccessOutput) SetNextPageToken(v string) *ListPortfolioAcc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListPortfoliosForProductInput type ListPortfoliosForProductInput struct { _ struct{} `type:"structure"` @@ -8869,7 +9952,6 @@ func (s *ListPortfoliosForProductInput) SetProductId(v string) *ListPortfoliosFo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListPortfoliosForProductOutput type ListPortfoliosForProductOutput struct { _ struct{} `type:"structure"` @@ -8903,7 +9985,6 @@ func (s *ListPortfoliosForProductOutput) SetPortfolioDetails(v []*PortfolioDetai return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListPortfoliosInput type ListPortfoliosInput struct { _ struct{} `type:"structure"` @@ -8952,7 +10033,6 @@ func (s *ListPortfoliosInput) SetPageToken(v string) *ListPortfoliosInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListPortfoliosOutput type ListPortfoliosOutput struct { _ struct{} `type:"structure"` @@ -8986,7 +10066,6 @@ func (s *ListPortfoliosOutput) SetPortfolioDetails(v []*PortfolioDetail) *ListPo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListPrincipalsForPortfolioInput type ListPrincipalsForPortfolioInput struct { _ struct{} `type:"structure"` @@ -9062,7 +10141,6 @@ func (s *ListPrincipalsForPortfolioInput) SetPortfolioId(v string) *ListPrincipa return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListPrincipalsForPortfolioOutput type ListPrincipalsForPortfolioOutput struct { _ struct{} `type:"structure"` @@ -9096,7 +10174,118 @@ func (s *ListPrincipalsForPortfolioOutput) SetPrincipals(v []*Principal) *ListPr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListProvisioningArtifactsInput +type ListProvisionedProductPlansInput struct { + _ struct{} `type:"structure"` + + // The language code. + // + // * en - English (default) + // + // * jp - Japanese + // + // * zh - Chinese + AcceptLanguage *string `type:"string"` + + // The access level to use to obtain results. The default is User. + AccessLevelFilter *AccessLevelFilter `type:"structure"` + + // The maximum number of items to return with this call. + PageSize *int64 `type:"integer"` + + // The page token for the next set of results. To retrieve the first set of + // results, use null. + PageToken *string `type:"string"` + + // The product identifier. + ProvisionProductId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ListProvisionedProductPlansInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListProvisionedProductPlansInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListProvisionedProductPlansInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListProvisionedProductPlansInput"} + if s.ProvisionProductId != nil && len(*s.ProvisionProductId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("ProvisionProductId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAcceptLanguage sets the AcceptLanguage field's value. +func (s *ListProvisionedProductPlansInput) SetAcceptLanguage(v string) *ListProvisionedProductPlansInput { + s.AcceptLanguage = &v + return s +} + +// SetAccessLevelFilter sets the AccessLevelFilter field's value. +func (s *ListProvisionedProductPlansInput) SetAccessLevelFilter(v *AccessLevelFilter) *ListProvisionedProductPlansInput { + s.AccessLevelFilter = v + return s +} + +// SetPageSize sets the PageSize field's value. +func (s *ListProvisionedProductPlansInput) SetPageSize(v int64) *ListProvisionedProductPlansInput { + s.PageSize = &v + return s +} + +// SetPageToken sets the PageToken field's value. +func (s *ListProvisionedProductPlansInput) SetPageToken(v string) *ListProvisionedProductPlansInput { + s.PageToken = &v + return s +} + +// SetProvisionProductId sets the ProvisionProductId field's value. +func (s *ListProvisionedProductPlansInput) SetProvisionProductId(v string) *ListProvisionedProductPlansInput { + s.ProvisionProductId = &v + return s +} + +type ListProvisionedProductPlansOutput struct { + _ struct{} `type:"structure"` + + // The page token to use to retrieve the next set of results. If there are no + // additional results, this value is null. + NextPageToken *string `type:"string"` + + // Information about the plans. + ProvisionedProductPlans []*ProvisionedProductPlanSummary `type:"list"` +} + +// String returns the string representation +func (s ListProvisionedProductPlansOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListProvisionedProductPlansOutput) GoString() string { + return s.String() +} + +// SetNextPageToken sets the NextPageToken field's value. +func (s *ListProvisionedProductPlansOutput) SetNextPageToken(v string) *ListProvisionedProductPlansOutput { + s.NextPageToken = &v + return s +} + +// SetProvisionedProductPlans sets the ProvisionedProductPlans field's value. +func (s *ListProvisionedProductPlansOutput) SetProvisionedProductPlans(v []*ProvisionedProductPlanSummary) *ListProvisionedProductPlansOutput { + s.ProvisionedProductPlans = v + return s +} + type ListProvisioningArtifactsInput struct { _ struct{} `type:"structure"` @@ -9153,7 +10342,6 @@ func (s *ListProvisioningArtifactsInput) SetProductId(v string) *ListProvisionin return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListProvisioningArtifactsOutput type ListProvisioningArtifactsOutput struct { _ struct{} `type:"structure"` @@ -9187,7 +10375,6 @@ func (s *ListProvisioningArtifactsOutput) SetProvisioningArtifactDetails(v []*Pr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListRecordHistoryInput type ListRecordHistoryInput struct { _ struct{} `type:"structure"` @@ -9254,7 +10441,6 @@ func (s *ListRecordHistoryInput) SetSearchFilter(v *ListRecordHistorySearchFilte return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListRecordHistoryOutput type ListRecordHistoryOutput struct { _ struct{} `type:"structure"` @@ -9289,7 +10475,6 @@ func (s *ListRecordHistoryOutput) SetRecordDetails(v []*RecordDetail) *ListRecor } // The search filter to use when listing history records. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListRecordHistorySearchFilter type ListRecordHistorySearchFilter struct { _ struct{} `type:"structure"` @@ -9327,7 +10512,6 @@ func (s *ListRecordHistorySearchFilter) SetValue(v string) *ListRecordHistorySea return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListResourcesForTagOptionInput type ListResourcesForTagOptionInput struct { _ struct{} `type:"structure"` @@ -9401,7 +10585,6 @@ func (s *ListResourcesForTagOptionInput) SetTagOptionId(v string) *ListResources return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListResourcesForTagOptionOutput type ListResourcesForTagOptionOutput struct { _ struct{} `type:"structure"` @@ -9436,7 +10619,6 @@ func (s *ListResourcesForTagOptionOutput) SetResourceDetails(v []*ResourceDetail } // Filters to use when listing TagOptions. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListTagOptionsFilters type ListTagOptionsFilters struct { _ struct{} `type:"structure"` @@ -9494,7 +10676,6 @@ func (s *ListTagOptionsFilters) SetValue(v string) *ListTagOptionsFilters { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListTagOptionsInput type ListTagOptionsInput struct { _ struct{} `type:"structure"` @@ -9553,7 +10734,6 @@ func (s *ListTagOptionsInput) SetPageToken(v string) *ListTagOptionsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ListTagOptionsOutput type ListTagOptionsOutput struct { _ struct{} `type:"structure"` @@ -9588,7 +10768,6 @@ func (s *ListTagOptionsOutput) SetTagOptionDetails(v []*TagOptionDetail) *ListTa } // The constraints that the administrator has put on the parameter. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ParameterConstraints type ParameterConstraints struct { _ struct{} `type:"structure"` @@ -9613,14 +10792,13 @@ func (s *ParameterConstraints) SetAllowedValues(v []*string) *ParameterConstrain } // Information about a portfolio. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/PortfolioDetail type PortfolioDetail struct { _ struct{} `type:"structure"` // The ARN assigned to the portfolio. ARN *string `min:"1" type:"string"` - // The UTC timestamp of the creation time. + // The UTC time stamp of the creation time. CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"` // The description of the portfolio. @@ -9683,7 +10861,6 @@ func (s *PortfolioDetail) SetProviderName(v string) *PortfolioDetail { } // Information about a principal. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/Principal type Principal struct { _ struct{} `type:"structure"` @@ -9718,7 +10895,6 @@ func (s *Principal) SetPrincipalType(v string) *Principal { // A single product view aggregation value/count pair, containing metadata about // each product to which the calling user has access. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ProductViewAggregationValue type ProductViewAggregationValue struct { _ struct{} `type:"structure"` @@ -9752,11 +10928,10 @@ func (s *ProductViewAggregationValue) SetValue(v string) *ProductViewAggregation } // Information about a product view. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ProductViewDetail type ProductViewDetail struct { _ struct{} `type:"structure"` - // The UTC timestamp of the creation time. + // The UTC time stamp of the creation time. CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"` // The ARN of the product. @@ -9811,7 +10986,6 @@ func (s *ProductViewDetail) SetStatus(v string) *ProductViewDetail { } // Summary information about a product view. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ProductViewSummary type ProductViewSummary struct { _ struct{} `type:"structure"` @@ -9932,7 +11106,6 @@ func (s *ProductViewSummary) SetType(v string) *ProductViewSummary { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ProvisionProductInput type ProvisionProductInput struct { _ struct{} `type:"structure"` @@ -9979,7 +11152,7 @@ type ProvisionProductInput struct { // the product. ProvisioningParameters []*ProvisioningParameter `type:"list"` - // The tags to use as provisioning options. + // One or more tags. Tags []*Tag `type:"list"` } @@ -10104,11 +11277,10 @@ func (s *ProvisionProductInput) SetTags(v []*Tag) *ProvisionProductInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ProvisionProductOutput type ProvisionProductOutput struct { _ struct{} `type:"structure"` - // Information about the result of ProvisionProduct. + // Information about the result of provisioning the product. RecordDetail *RecordDetail `type:"structure"` } @@ -10129,14 +11301,182 @@ func (s *ProvisionProductOutput) SetRecordDetail(v *RecordDetail) *ProvisionProd } // Information about a provisioned product. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ProvisionedProductDetail +type ProvisionedProductAttribute struct { + _ struct{} `type:"structure"` + + // The ARN of the provisioned product. + Arn *string `min:"1" type:"string"` + + // The UTC time stamp of the creation time. + CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // The identifier of the provisioned product. + Id *string `min:"1" type:"string"` + + // A unique identifier that you provide to ensure idempotency. If multiple requests + // differ only by the idempotency token, the same response is returned for each + // repeated request. + IdempotencyToken *string `min:"1" type:"string"` + + // The record identifier of the last request performed on this provisioned product. + LastRecordId *string `min:"1" type:"string"` + + // The user-friendly name of the provisioned product. + Name *string `min:"1" type:"string"` + + // The assigned identifier for the resource, such as an EC2 instance ID or an + // S3 bucket name. + PhysicalId *string `type:"string"` + + // The product identifier. + ProductId *string `min:"1" type:"string"` + + // The identifier of the provisioning artifact. + ProvisioningArtifactId *string `min:"1" type:"string"` + + // The current status of the provisioned product. + // + // * AVAILABLE - Stable state, ready to perform any operation. The most recent + // operation succeeded and completed. + // + // * UNDER_CHANGE - Transitive state, operations performed might not have + // valid results. Wait for an AVAILABLE status before performing operations. + // + // * TAINTED - Stable state, ready to perform any operation. The stack has + // completed the requested operation but is not exactly what was requested. + // For example, a request to update to a new version failed and the stack + // rolled back to the current version. + // + // * ERROR - An unexpected error occurred, the provisioned product exists + // but the stack is not running. For example, CloudFormation received a parameter + // value that was not valid and could not launch the stack. + Status *string `type:"string" enum:"ProvisionedProductStatus"` + + // The current status message of the provisioned product. + StatusMessage *string `type:"string"` + + // One or more tags. + Tags []*Tag `type:"list"` + + // The type of provisioned product. The supported value is CFN_STACK. + Type *string `type:"string"` + + // The Amazon Resource Name (ARN) of the IAM user. + UserArn *string `type:"string"` + + // The ARN of the IAM user in the session. This ARN might contain a session + // ID. + UserArnSession *string `type:"string"` +} + +// String returns the string representation +func (s ProvisionedProductAttribute) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ProvisionedProductAttribute) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *ProvisionedProductAttribute) SetArn(v string) *ProvisionedProductAttribute { + s.Arn = &v + return s +} + +// SetCreatedTime sets the CreatedTime field's value. +func (s *ProvisionedProductAttribute) SetCreatedTime(v time.Time) *ProvisionedProductAttribute { + s.CreatedTime = &v + return s +} + +// SetId sets the Id field's value. +func (s *ProvisionedProductAttribute) SetId(v string) *ProvisionedProductAttribute { + s.Id = &v + return s +} + +// SetIdempotencyToken sets the IdempotencyToken field's value. +func (s *ProvisionedProductAttribute) SetIdempotencyToken(v string) *ProvisionedProductAttribute { + s.IdempotencyToken = &v + return s +} + +// SetLastRecordId sets the LastRecordId field's value. +func (s *ProvisionedProductAttribute) SetLastRecordId(v string) *ProvisionedProductAttribute { + s.LastRecordId = &v + return s +} + +// SetName sets the Name field's value. +func (s *ProvisionedProductAttribute) SetName(v string) *ProvisionedProductAttribute { + s.Name = &v + return s +} + +// SetPhysicalId sets the PhysicalId field's value. +func (s *ProvisionedProductAttribute) SetPhysicalId(v string) *ProvisionedProductAttribute { + s.PhysicalId = &v + return s +} + +// SetProductId sets the ProductId field's value. +func (s *ProvisionedProductAttribute) SetProductId(v string) *ProvisionedProductAttribute { + s.ProductId = &v + return s +} + +// SetProvisioningArtifactId sets the ProvisioningArtifactId field's value. +func (s *ProvisionedProductAttribute) SetProvisioningArtifactId(v string) *ProvisionedProductAttribute { + s.ProvisioningArtifactId = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *ProvisionedProductAttribute) SetStatus(v string) *ProvisionedProductAttribute { + s.Status = &v + return s +} + +// SetStatusMessage sets the StatusMessage field's value. +func (s *ProvisionedProductAttribute) SetStatusMessage(v string) *ProvisionedProductAttribute { + s.StatusMessage = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *ProvisionedProductAttribute) SetTags(v []*Tag) *ProvisionedProductAttribute { + s.Tags = v + return s +} + +// SetType sets the Type field's value. +func (s *ProvisionedProductAttribute) SetType(v string) *ProvisionedProductAttribute { + s.Type = &v + return s +} + +// SetUserArn sets the UserArn field's value. +func (s *ProvisionedProductAttribute) SetUserArn(v string) *ProvisionedProductAttribute { + s.UserArn = &v + return s +} + +// SetUserArnSession sets the UserArnSession field's value. +func (s *ProvisionedProductAttribute) SetUserArnSession(v string) *ProvisionedProductAttribute { + s.UserArnSession = &v + return s +} + +// Information about a provisioned product. type ProvisionedProductDetail struct { _ struct{} `type:"structure"` // The ARN of the provisioned product. Arn *string `min:"1" type:"string"` - // The UTC timestamp of the creation time. + // The UTC time stamp of the creation time. CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"` // The identifier of the provisioned product. @@ -10242,13 +11582,235 @@ func (s *ProvisionedProductDetail) SetType(v string) *ProvisionedProductDetail { return s } +// Information about a plan. +type ProvisionedProductPlanDetails struct { + _ struct{} `type:"structure"` + + // The UTC time stamp of the creation time. + CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // Passed to CloudFormation. The SNS topic ARNs to which to publish stack-related + // events. + NotificationArns []*string `type:"list"` + + // The path identifier of the product. This value is optional if the product + // has a default path, and required if the product has more than one path. To + // list the paths for a product, use ListLaunchPaths. + PathId *string `min:"1" type:"string"` + + // The plan identifier. + PlanId *string `min:"1" type:"string"` + + // The name of the plan. + PlanName *string `type:"string"` + + // The plan type. + PlanType *string `type:"string" enum:"ProvisionedProductPlanType"` + + // The product identifier. + ProductId *string `min:"1" type:"string"` + + // The product identifier. + ProvisionProductId *string `min:"1" type:"string"` + + // The user-friendly name of the provisioned product. + ProvisionProductName *string `min:"1" type:"string"` + + // The identifier of the provisioning artifact. + ProvisioningArtifactId *string `min:"1" type:"string"` + + // Parameters specified by the administrator that are required for provisioning + // the product. + ProvisioningParameters []*UpdateProvisioningParameter `type:"list"` + + // The status. + Status *string `type:"string" enum:"ProvisionedProductPlanStatus"` + + // The status message. + StatusMessage *string `type:"string"` + + // One or more tags. + Tags []*Tag `type:"list"` + + // The time when the plan was last updated. + UpdatedTime *time.Time `type:"timestamp" timestampFormat:"unix"` +} + +// String returns the string representation +func (s ProvisionedProductPlanDetails) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ProvisionedProductPlanDetails) GoString() string { + return s.String() +} + +// SetCreatedTime sets the CreatedTime field's value. +func (s *ProvisionedProductPlanDetails) SetCreatedTime(v time.Time) *ProvisionedProductPlanDetails { + s.CreatedTime = &v + return s +} + +// SetNotificationArns sets the NotificationArns field's value. +func (s *ProvisionedProductPlanDetails) SetNotificationArns(v []*string) *ProvisionedProductPlanDetails { + s.NotificationArns = v + return s +} + +// SetPathId sets the PathId field's value. +func (s *ProvisionedProductPlanDetails) SetPathId(v string) *ProvisionedProductPlanDetails { + s.PathId = &v + return s +} + +// SetPlanId sets the PlanId field's value. +func (s *ProvisionedProductPlanDetails) SetPlanId(v string) *ProvisionedProductPlanDetails { + s.PlanId = &v + return s +} + +// SetPlanName sets the PlanName field's value. +func (s *ProvisionedProductPlanDetails) SetPlanName(v string) *ProvisionedProductPlanDetails { + s.PlanName = &v + return s +} + +// SetPlanType sets the PlanType field's value. +func (s *ProvisionedProductPlanDetails) SetPlanType(v string) *ProvisionedProductPlanDetails { + s.PlanType = &v + return s +} + +// SetProductId sets the ProductId field's value. +func (s *ProvisionedProductPlanDetails) SetProductId(v string) *ProvisionedProductPlanDetails { + s.ProductId = &v + return s +} + +// SetProvisionProductId sets the ProvisionProductId field's value. +func (s *ProvisionedProductPlanDetails) SetProvisionProductId(v string) *ProvisionedProductPlanDetails { + s.ProvisionProductId = &v + return s +} + +// SetProvisionProductName sets the ProvisionProductName field's value. +func (s *ProvisionedProductPlanDetails) SetProvisionProductName(v string) *ProvisionedProductPlanDetails { + s.ProvisionProductName = &v + return s +} + +// SetProvisioningArtifactId sets the ProvisioningArtifactId field's value. +func (s *ProvisionedProductPlanDetails) SetProvisioningArtifactId(v string) *ProvisionedProductPlanDetails { + s.ProvisioningArtifactId = &v + return s +} + +// SetProvisioningParameters sets the ProvisioningParameters field's value. +func (s *ProvisionedProductPlanDetails) SetProvisioningParameters(v []*UpdateProvisioningParameter) *ProvisionedProductPlanDetails { + s.ProvisioningParameters = v + return s +} + +// SetStatus sets the Status field's value. +func (s *ProvisionedProductPlanDetails) SetStatus(v string) *ProvisionedProductPlanDetails { + s.Status = &v + return s +} + +// SetStatusMessage sets the StatusMessage field's value. +func (s *ProvisionedProductPlanDetails) SetStatusMessage(v string) *ProvisionedProductPlanDetails { + s.StatusMessage = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *ProvisionedProductPlanDetails) SetTags(v []*Tag) *ProvisionedProductPlanDetails { + s.Tags = v + return s +} + +// SetUpdatedTime sets the UpdatedTime field's value. +func (s *ProvisionedProductPlanDetails) SetUpdatedTime(v time.Time) *ProvisionedProductPlanDetails { + s.UpdatedTime = &v + return s +} + +// Summary information about a plan. +type ProvisionedProductPlanSummary struct { + _ struct{} `type:"structure"` + + // The plan identifier. + PlanId *string `min:"1" type:"string"` + + // The name of the plan. + PlanName *string `type:"string"` + + // The plan type. + PlanType *string `type:"string" enum:"ProvisionedProductPlanType"` + + // The product identifier. + ProvisionProductId *string `min:"1" type:"string"` + + // The user-friendly name of the provisioned product. + ProvisionProductName *string `min:"1" type:"string"` + + // The identifier of the provisioning artifact. + ProvisioningArtifactId *string `min:"1" type:"string"` +} + +// String returns the string representation +func (s ProvisionedProductPlanSummary) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ProvisionedProductPlanSummary) GoString() string { + return s.String() +} + +// SetPlanId sets the PlanId field's value. +func (s *ProvisionedProductPlanSummary) SetPlanId(v string) *ProvisionedProductPlanSummary { + s.PlanId = &v + return s +} + +// SetPlanName sets the PlanName field's value. +func (s *ProvisionedProductPlanSummary) SetPlanName(v string) *ProvisionedProductPlanSummary { + s.PlanName = &v + return s +} + +// SetPlanType sets the PlanType field's value. +func (s *ProvisionedProductPlanSummary) SetPlanType(v string) *ProvisionedProductPlanSummary { + s.PlanType = &v + return s +} + +// SetProvisionProductId sets the ProvisionProductId field's value. +func (s *ProvisionedProductPlanSummary) SetProvisionProductId(v string) *ProvisionedProductPlanSummary { + s.ProvisionProductId = &v + return s +} + +// SetProvisionProductName sets the ProvisionProductName field's value. +func (s *ProvisionedProductPlanSummary) SetProvisionProductName(v string) *ProvisionedProductPlanSummary { + s.ProvisionProductName = &v + return s +} + +// SetProvisioningArtifactId sets the ProvisioningArtifactId field's value. +func (s *ProvisionedProductPlanSummary) SetProvisioningArtifactId(v string) *ProvisionedProductPlanSummary { + s.ProvisioningArtifactId = &v + return s +} + // Information about a provisioning artifact. A provisioning artifact is also // known as a product version. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ProvisioningArtifact type ProvisioningArtifact struct { _ struct{} `type:"structure"` - // The UTC timestamp of the creation time. + // The UTC time stamp of the creation time. CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"` // The description of the provisioning artifact. @@ -10297,14 +11859,13 @@ func (s *ProvisioningArtifact) SetName(v string) *ProvisioningArtifact { // Information about a provisioning artifact (also known as a version) for a // product. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ProvisioningArtifactDetail type ProvisioningArtifactDetail struct { _ struct{} `type:"structure"` // Indicates whether the product version is active. Active *bool `type:"boolean"` - // The UTC timestamp of the creation time. + // The UTC time stamp of the creation time. CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"` // The description of the provisioning artifact. @@ -10373,7 +11934,6 @@ func (s *ProvisioningArtifactDetail) SetType(v string) *ProvisioningArtifactDeta } // Information about a parameter used to provision a product. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ProvisioningArtifactParameter type ProvisioningArtifactParameter struct { _ struct{} `type:"structure"` @@ -10446,7 +12006,6 @@ func (s *ProvisioningArtifactParameter) SetParameterType(v string) *Provisioning // Information about a provisioning artifact (also known as a version) for a // product. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ProvisioningArtifactProperties type ProvisioningArtifactProperties struct { _ struct{} `type:"structure"` @@ -10528,11 +12087,10 @@ func (s *ProvisioningArtifactProperties) SetType(v string) *ProvisioningArtifact // Summary information about a provisioning artifact (also known as a version) // for a product. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ProvisioningArtifactSummary type ProvisioningArtifactSummary struct { _ struct{} `type:"structure"` - // The UTC timestamp of the creation time. + // The UTC time stamp of the creation time. CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"` // The description of the provisioning artifact. @@ -10590,7 +12148,6 @@ func (s *ProvisioningArtifactSummary) SetProvisioningArtifactMetadata(v map[stri } // Information about a parameter used to provision a product. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ProvisioningParameter type ProvisioningParameter struct { _ struct{} `type:"structure"` @@ -10637,11 +12194,10 @@ func (s *ProvisioningParameter) SetValue(v string) *ProvisioningParameter { } // Information about a request operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/RecordDetail type RecordDetail struct { _ struct{} `type:"structure"` - // The UTC timestamp of the creation time. + // The UTC time stamp of the creation time. CreatedTime *time.Time `type:"timestamp" timestampFormat:"unix"` // The path identifier. @@ -10662,16 +12218,16 @@ type RecordDetail struct { // The identifier of the provisioning artifact. ProvisioningArtifactId *string `min:"1" type:"string"` - // The errors that occurred while processing the request. + // The errors that occurred. RecordErrors []*RecordError `type:"list"` // The identifier of the record. RecordId *string `min:"1" type:"string"` - // The tags associated with this record. + // One or more tags. RecordTags []*RecordTag `type:"list"` - // The record type for this record. + // The record type. // // * PROVISION_PRODUCT // @@ -10789,7 +12345,6 @@ func (s *RecordDetail) SetUpdatedTime(v time.Time) *RecordDetail { } // The error code and description resulting from an operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/RecordError type RecordError struct { _ struct{} `type:"structure"` @@ -10825,7 +12380,6 @@ func (s *RecordError) SetDescription(v string) *RecordError { // The output for the product created as the result of a request. For example, // the output for a CloudFormation-backed product that creates an S3 bucket // would include the S3 bucket URL. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/RecordOutput type RecordOutput struct { _ struct{} `type:"structure"` @@ -10867,8 +12421,7 @@ func (s *RecordOutput) SetOutputValue(v string) *RecordOutput { return s } -// A tag associated with the record, stored as a key-value pair. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/RecordTag +// Information about a tag, which is a key-value pair. type RecordTag struct { _ struct{} `type:"structure"` @@ -10901,7 +12454,6 @@ func (s *RecordTag) SetValue(v string) *RecordTag { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/RejectPortfolioShareInput type RejectPortfolioShareInput struct { _ struct{} `type:"structure"` @@ -10958,7 +12510,6 @@ func (s *RejectPortfolioShareInput) SetPortfolioId(v string) *RejectPortfolioSha return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/RejectPortfolioShareOutput type RejectPortfolioShareOutput struct { _ struct{} `type:"structure"` } @@ -10973,8 +12524,130 @@ func (s RejectPortfolioShareOutput) GoString() string { return s.String() } +// Information about a resource change that will occur when a plan is executed. +type ResourceChange struct { + _ struct{} `type:"structure"` + + // The change action. + Action *string `type:"string" enum:"ChangeAction"` + + // Information about the resource changes. + Details []*ResourceChangeDetail `type:"list"` + + // The ID of the resource, as defined in the CloudFormation template. + LogicalResourceId *string `type:"string"` + + // The ID of the resource, if it was already created. + PhysicalResourceId *string `type:"string"` + + // If the change type is Modify, indicates whether the existing resource is + // deleted and replaced with a new one. + Replacement *string `type:"string" enum:"Replacement"` + + // The type of resource. + ResourceType *string `min:"1" type:"string"` + + // The change scope. + Scope []*string `type:"list"` +} + +// String returns the string representation +func (s ResourceChange) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResourceChange) GoString() string { + return s.String() +} + +// SetAction sets the Action field's value. +func (s *ResourceChange) SetAction(v string) *ResourceChange { + s.Action = &v + return s +} + +// SetDetails sets the Details field's value. +func (s *ResourceChange) SetDetails(v []*ResourceChangeDetail) *ResourceChange { + s.Details = v + return s +} + +// SetLogicalResourceId sets the LogicalResourceId field's value. +func (s *ResourceChange) SetLogicalResourceId(v string) *ResourceChange { + s.LogicalResourceId = &v + return s +} + +// SetPhysicalResourceId sets the PhysicalResourceId field's value. +func (s *ResourceChange) SetPhysicalResourceId(v string) *ResourceChange { + s.PhysicalResourceId = &v + return s +} + +// SetReplacement sets the Replacement field's value. +func (s *ResourceChange) SetReplacement(v string) *ResourceChange { + s.Replacement = &v + return s +} + +// SetResourceType sets the ResourceType field's value. +func (s *ResourceChange) SetResourceType(v string) *ResourceChange { + s.ResourceType = &v + return s +} + +// SetScope sets the Scope field's value. +func (s *ResourceChange) SetScope(v []*string) *ResourceChange { + s.Scope = v + return s +} + +// Information about a change to a resource attribute. +type ResourceChangeDetail struct { + _ struct{} `type:"structure"` + + // The ID of the entity that caused the change. + CausingEntity *string `type:"string"` + + // For static evaluations, the value the resource attribute will change and + // the new value is known. For dynamic evaluations, the value might change, + // and any new value will be determined when the plan is updated. + Evaluation *string `type:"string" enum:"EvaluationType"` + + // Information about the resource attribute that will be modified. + Target *ResourceTargetDefinition `type:"structure"` +} + +// String returns the string representation +func (s ResourceChangeDetail) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResourceChangeDetail) GoString() string { + return s.String() +} + +// SetCausingEntity sets the CausingEntity field's value. +func (s *ResourceChangeDetail) SetCausingEntity(v string) *ResourceChangeDetail { + s.CausingEntity = &v + return s +} + +// SetEvaluation sets the Evaluation field's value. +func (s *ResourceChangeDetail) SetEvaluation(v string) *ResourceChangeDetail { + s.Evaluation = &v + return s +} + +// SetTarget sets the Target field's value. +func (s *ResourceChangeDetail) SetTarget(v *ResourceTargetDefinition) *ResourceChangeDetail { + s.Target = v + return s +} + // Information about a resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ResourceDetail type ResourceDetail struct { _ struct{} `type:"structure"` @@ -11034,7 +12707,50 @@ func (s *ResourceDetail) SetName(v string) *ResourceDetail { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ScanProvisionedProductsInput +// Information about a change to a resource attribute. +type ResourceTargetDefinition struct { + _ struct{} `type:"structure"` + + // The attribute that will change. + Attribute *string `type:"string" enum:"ResourceAttribute"` + + // If the attribute is Properties, the value is the name of the property. Otherwise, + // the value is null. + Name *string `type:"string"` + + // If the attribute is Properties, indicates whether a change to this property + // causes the resource to be recreated. + RequiresRecreation *string `type:"string" enum:"RequiresRecreation"` +} + +// String returns the string representation +func (s ResourceTargetDefinition) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ResourceTargetDefinition) GoString() string { + return s.String() +} + +// SetAttribute sets the Attribute field's value. +func (s *ResourceTargetDefinition) SetAttribute(v string) *ResourceTargetDefinition { + s.Attribute = &v + return s +} + +// SetName sets the Name field's value. +func (s *ResourceTargetDefinition) SetName(v string) *ResourceTargetDefinition { + s.Name = &v + return s +} + +// SetRequiresRecreation sets the RequiresRecreation field's value. +func (s *ResourceTargetDefinition) SetRequiresRecreation(v string) *ResourceTargetDefinition { + s.RequiresRecreation = &v + return s +} + type ScanProvisionedProductsInput struct { _ struct{} `type:"structure"` @@ -11092,7 +12808,6 @@ func (s *ScanProvisionedProductsInput) SetPageToken(v string) *ScanProvisionedPr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/ScanProvisionedProductsOutput type ScanProvisionedProductsOutput struct { _ struct{} `type:"structure"` @@ -11126,7 +12841,6 @@ func (s *ScanProvisionedProductsOutput) SetProvisionedProducts(v []*ProvisionedP return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/SearchProductsAsAdminInput type SearchProductsAsAdminInput struct { _ struct{} `type:"structure"` @@ -11234,7 +12948,6 @@ func (s *SearchProductsAsAdminInput) SetSortOrder(v string) *SearchProductsAsAdm return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/SearchProductsAsAdminOutput type SearchProductsAsAdminOutput struct { _ struct{} `type:"structure"` @@ -11268,7 +12981,6 @@ func (s *SearchProductsAsAdminOutput) SetProductViewDetails(v []*ProductViewDeta return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/SearchProductsInput type SearchProductsInput struct { _ struct{} `type:"structure"` @@ -11345,7 +13057,6 @@ func (s *SearchProductsInput) SetSortOrder(v string) *SearchProductsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/SearchProductsOutput type SearchProductsOutput struct { _ struct{} `type:"structure"` @@ -11388,9 +13099,141 @@ func (s *SearchProductsOutput) SetProductViewSummaries(v []*ProductViewSummary) return s } -// Information about a tag. A tag is a key-value pair. Tags are entirely discretionary -// and are propagated to the resources created when provisioning a product. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/Tag +type SearchProvisionedProductsInput struct { + _ struct{} `type:"structure"` + + // The language code. + // + // * en - English (default) + // + // * jp - Japanese + // + // * zh - Chinese + AcceptLanguage *string `type:"string"` + + // The access level to use to obtain results. The default is User. + AccessLevelFilter *AccessLevelFilter `type:"structure"` + + // The search filters. + // + // When the key is SearchQuery, the searchable fields are arn, createdTime, + // id, lastRecordId, idempotencyToken, name, physicalId, productId, provisioningArtifact, + // type, status, tags, userArn, and userArnSession. + // + // Example: "SearchQuery":["status:AVAILABLE"] + Filters map[string][]*string `type:"map"` + + // The maximum number of items to return with this call. + PageSize *int64 `type:"integer"` + + // The page token for the next set of results. To retrieve the first set of + // results, use null. + PageToken *string `type:"string"` + + // The sort field. If no value is specified, the results are not sorted. The + // valid values are arn, id, name, and lastRecordId. + SortBy *string `type:"string"` + + // The sort order. If no value is specified, the results are not sorted. + SortOrder *string `type:"string" enum:"SortOrder"` +} + +// String returns the string representation +func (s SearchProvisionedProductsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SearchProvisionedProductsInput) GoString() string { + return s.String() +} + +// SetAcceptLanguage sets the AcceptLanguage field's value. +func (s *SearchProvisionedProductsInput) SetAcceptLanguage(v string) *SearchProvisionedProductsInput { + s.AcceptLanguage = &v + return s +} + +// SetAccessLevelFilter sets the AccessLevelFilter field's value. +func (s *SearchProvisionedProductsInput) SetAccessLevelFilter(v *AccessLevelFilter) *SearchProvisionedProductsInput { + s.AccessLevelFilter = v + return s +} + +// SetFilters sets the Filters field's value. +func (s *SearchProvisionedProductsInput) SetFilters(v map[string][]*string) *SearchProvisionedProductsInput { + s.Filters = v + return s +} + +// SetPageSize sets the PageSize field's value. +func (s *SearchProvisionedProductsInput) SetPageSize(v int64) *SearchProvisionedProductsInput { + s.PageSize = &v + return s +} + +// SetPageToken sets the PageToken field's value. +func (s *SearchProvisionedProductsInput) SetPageToken(v string) *SearchProvisionedProductsInput { + s.PageToken = &v + return s +} + +// SetSortBy sets the SortBy field's value. +func (s *SearchProvisionedProductsInput) SetSortBy(v string) *SearchProvisionedProductsInput { + s.SortBy = &v + return s +} + +// SetSortOrder sets the SortOrder field's value. +func (s *SearchProvisionedProductsInput) SetSortOrder(v string) *SearchProvisionedProductsInput { + s.SortOrder = &v + return s +} + +type SearchProvisionedProductsOutput struct { + _ struct{} `type:"structure"` + + // The page token to use to retrieve the next set of results. If there are no + // additional results, this value is null. + NextPageToken *string `type:"string"` + + // Information about the provisioned products. + ProvisionedProducts []*ProvisionedProductAttribute `type:"list"` + + // The number of provisioned products found. + TotalResultsCount *int64 `type:"integer"` +} + +// String returns the string representation +func (s SearchProvisionedProductsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SearchProvisionedProductsOutput) GoString() string { + return s.String() +} + +// SetNextPageToken sets the NextPageToken field's value. +func (s *SearchProvisionedProductsOutput) SetNextPageToken(v string) *SearchProvisionedProductsOutput { + s.NextPageToken = &v + return s +} + +// SetProvisionedProducts sets the ProvisionedProducts field's value. +func (s *SearchProvisionedProductsOutput) SetProvisionedProducts(v []*ProvisionedProductAttribute) *SearchProvisionedProductsOutput { + s.ProvisionedProducts = v + return s +} + +// SetTotalResultsCount sets the TotalResultsCount field's value. +func (s *SearchProvisionedProductsOutput) SetTotalResultsCount(v int64) *SearchProvisionedProductsOutput { + s.TotalResultsCount = &v + return s +} + +// Information about a tag. A tag is a key-value pair. Tags are propagated to +// the resources created when provisioning a product. type Tag struct { _ struct{} `type:"structure"` @@ -11450,7 +13293,6 @@ func (s *Tag) SetValue(v string) *Tag { } // Information about a TagOption. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/TagOptionDetail type TagOptionDetail struct { _ struct{} `type:"structure"` @@ -11502,7 +13344,6 @@ func (s *TagOptionDetail) SetValue(v string) *TagOptionDetail { } // Summary information about a TagOption. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/TagOptionSummary type TagOptionSummary struct { _ struct{} `type:"structure"` @@ -11535,7 +13376,6 @@ func (s *TagOptionSummary) SetValues(v []*string) *TagOptionSummary { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/TerminateProvisionedProductInput type TerminateProvisionedProductInput struct { _ struct{} `type:"structure"` @@ -11631,7 +13471,6 @@ func (s *TerminateProvisionedProductInput) SetTerminateToken(v string) *Terminat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/TerminateProvisionedProductOutput type TerminateProvisionedProductOutput struct { _ struct{} `type:"structure"` @@ -11655,7 +13494,6 @@ func (s *TerminateProvisionedProductOutput) SetRecordDetail(v *RecordDetail) *Te return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateConstraintInput type UpdateConstraintInput struct { _ struct{} `type:"structure"` @@ -11721,7 +13559,6 @@ func (s *UpdateConstraintInput) SetId(v string) *UpdateConstraintInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateConstraintOutput type UpdateConstraintOutput struct { _ struct{} `type:"structure"` @@ -11763,7 +13600,6 @@ func (s *UpdateConstraintOutput) SetStatus(v string) *UpdateConstraintOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdatePortfolioInput type UpdatePortfolioInput struct { _ struct{} `type:"structure"` @@ -11881,7 +13717,6 @@ func (s *UpdatePortfolioInput) SetRemoveTags(v []*string) *UpdatePortfolioInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdatePortfolioOutput type UpdatePortfolioOutput struct { _ struct{} `type:"structure"` @@ -11914,7 +13749,6 @@ func (s *UpdatePortfolioOutput) SetTags(v []*Tag) *UpdatePortfolioOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateProductInput type UpdateProductInput struct { _ struct{} `type:"structure"` @@ -12062,7 +13896,6 @@ func (s *UpdateProductInput) SetSupportUrl(v string) *UpdateProductInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateProductOutput type UpdateProductOutput struct { _ struct{} `type:"structure"` @@ -12095,7 +13928,6 @@ func (s *UpdateProductOutput) SetTags(v []*Tag) *UpdateProductOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateProvisionedProductInput type UpdateProvisionedProductInput struct { _ struct{} `type:"structure"` @@ -12129,7 +13961,7 @@ type UpdateProvisionedProductInput struct { // The new parameters. ProvisioningParameters []*UpdateProvisioningParameter `type:"list"` - // The idempotency token that uniquely identifies the provisioning update rquest. + // The idempotency token that uniquely identifies the provisioning update request. // // UpdateToken is a required field UpdateToken *string `min:"1" type:"string" required:"true" idempotencyToken:"true"` @@ -12234,7 +14066,6 @@ func (s *UpdateProvisionedProductInput) SetUpdateToken(v string) *UpdateProvisio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateProvisionedProductOutput type UpdateProvisionedProductOutput struct { _ struct{} `type:"structure"` @@ -12258,7 +14089,6 @@ func (s *UpdateProvisionedProductOutput) SetRecordDetail(v *RecordDetail) *Updat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateProvisioningArtifactInput type UpdateProvisioningArtifactInput struct { _ struct{} `type:"structure"` @@ -12359,7 +14189,6 @@ func (s *UpdateProvisioningArtifactInput) SetProvisioningArtifactId(v string) *U return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateProvisioningArtifactOutput type UpdateProvisioningArtifactOutput struct { _ struct{} `type:"structure"` @@ -12402,7 +14231,6 @@ func (s *UpdateProvisioningArtifactOutput) SetStatus(v string) *UpdateProvisioni } // The parameter key-value pair used to update a provisioned product. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateProvisioningParameter type UpdateProvisioningParameter struct { _ struct{} `type:"structure"` @@ -12457,7 +14285,6 @@ func (s *UpdateProvisioningParameter) SetValue(v string) *UpdateProvisioningPara return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateTagOptionInput type UpdateTagOptionInput struct { _ struct{} `type:"structure"` @@ -12520,7 +14347,6 @@ func (s *UpdateTagOptionInput) SetValue(v string) *UpdateTagOptionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UpdateTagOptionOutput type UpdateTagOptionOutput struct { _ struct{} `type:"structure"` @@ -12545,7 +14371,6 @@ func (s *UpdateTagOptionOutput) SetTagOptionDetail(v *TagOptionDetail) *UpdateTa } // Additional information provided by the administrator. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicecatalog-2015-12-10/UsageInstruction type UsageInstruction struct { _ struct{} `type:"structure"` @@ -12589,6 +14414,17 @@ const ( AccessLevelFilterKeyUser = "User" ) +const ( + // ChangeActionAdd is a ChangeAction enum value + ChangeActionAdd = "ADD" + + // ChangeActionModify is a ChangeAction enum value + ChangeActionModify = "MODIFY" + + // ChangeActionRemove is a ChangeAction enum value + ChangeActionRemove = "REMOVE" +) + const ( // CopyOptionCopyTags is a CopyOption enum value CopyOptionCopyTags = "CopyTags" @@ -12605,6 +14441,14 @@ const ( CopyProductStatusFailed = "FAILED" ) +const ( + // EvaluationTypeStatic is a EvaluationType enum value + EvaluationTypeStatic = "STATIC" + + // EvaluationTypeDynamic is a EvaluationType enum value + EvaluationTypeDynamic = "DYNAMIC" +) + const ( // PrincipalTypeIam is a PrincipalType enum value PrincipalTypeIam = "IAM" @@ -12648,6 +14492,31 @@ const ( ProductViewSortByCreationDate = "CreationDate" ) +const ( + // ProvisionedProductPlanStatusCreateInProgress is a ProvisionedProductPlanStatus enum value + ProvisionedProductPlanStatusCreateInProgress = "CREATE_IN_PROGRESS" + + // ProvisionedProductPlanStatusCreateSuccess is a ProvisionedProductPlanStatus enum value + ProvisionedProductPlanStatusCreateSuccess = "CREATE_SUCCESS" + + // ProvisionedProductPlanStatusCreateFailed is a ProvisionedProductPlanStatus enum value + ProvisionedProductPlanStatusCreateFailed = "CREATE_FAILED" + + // ProvisionedProductPlanStatusExecuteInProgress is a ProvisionedProductPlanStatus enum value + ProvisionedProductPlanStatusExecuteInProgress = "EXECUTE_IN_PROGRESS" + + // ProvisionedProductPlanStatusExecuteSuccess is a ProvisionedProductPlanStatus enum value + ProvisionedProductPlanStatusExecuteSuccess = "EXECUTE_SUCCESS" + + // ProvisionedProductPlanStatusExecuteFailed is a ProvisionedProductPlanStatus enum value + ProvisionedProductPlanStatusExecuteFailed = "EXECUTE_FAILED" +) + +const ( + // ProvisionedProductPlanTypeCloudformation is a ProvisionedProductPlanType enum value + ProvisionedProductPlanTypeCloudformation = "CLOUDFORMATION" +) + const ( // ProvisionedProductStatusAvailable is a ProvisionedProductStatus enum value ProvisionedProductStatusAvailable = "AVAILABLE" @@ -12660,6 +14529,14 @@ const ( // ProvisionedProductStatusError is a ProvisionedProductStatus enum value ProvisionedProductStatusError = "ERROR" + + // ProvisionedProductStatusPlanInProgress is a ProvisionedProductStatus enum value + ProvisionedProductStatusPlanInProgress = "PLAN_IN_PROGRESS" +) + +const ( + // ProvisionedProductViewFilterBySearchQuery is a ProvisionedProductViewFilterBy enum value + ProvisionedProductViewFilterBySearchQuery = "SearchQuery" ) const ( @@ -12695,6 +14572,48 @@ const ( RecordStatusFailed = "FAILED" ) +const ( + // ReplacementTrue is a Replacement enum value + ReplacementTrue = "TRUE" + + // ReplacementFalse is a Replacement enum value + ReplacementFalse = "FALSE" + + // ReplacementConditional is a Replacement enum value + ReplacementConditional = "CONDITIONAL" +) + +const ( + // RequiresRecreationNever is a RequiresRecreation enum value + RequiresRecreationNever = "NEVER" + + // RequiresRecreationConditionally is a RequiresRecreation enum value + RequiresRecreationConditionally = "CONDITIONALLY" + + // RequiresRecreationAlways is a RequiresRecreation enum value + RequiresRecreationAlways = "ALWAYS" +) + +const ( + // ResourceAttributeProperties is a ResourceAttribute enum value + ResourceAttributeProperties = "PROPERTIES" + + // ResourceAttributeMetadata is a ResourceAttribute enum value + ResourceAttributeMetadata = "METADATA" + + // ResourceAttributeCreationpolicy is a ResourceAttribute enum value + ResourceAttributeCreationpolicy = "CREATIONPOLICY" + + // ResourceAttributeUpdatepolicy is a ResourceAttribute enum value + ResourceAttributeUpdatepolicy = "UPDATEPOLICY" + + // ResourceAttributeDeletionpolicy is a ResourceAttribute enum value + ResourceAttributeDeletionpolicy = "DELETIONPOLICY" + + // ResourceAttributeTags is a ResourceAttribute enum value + ResourceAttributeTags = "TAGS" +) + const ( // SortOrderAscending is a SortOrder enum value SortOrderAscending = "ASCENDING" diff --git a/vendor/github.com/aws/aws-sdk-go/service/servicecatalog/errors.go b/vendor/github.com/aws/aws-sdk-go/service/servicecatalog/errors.go index ad78b58b4..414280824 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/servicecatalog/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/servicecatalog/errors.go @@ -35,8 +35,8 @@ const ( // ErrCodeResourceInUseException for service response error code // "ResourceInUseException". // - // A resource that is currently in use. Ensure the resource is not in use and - // retry the operation. + // A resource that is currently in use. Ensure that the resource is not in use + // and retry the operation. ErrCodeResourceInUseException = "ResourceInUseException" // ErrCodeResourceNotFoundException for service response error code diff --git a/vendor/github.com/aws/aws-sdk-go/service/servicediscovery/api.go b/vendor/github.com/aws/aws-sdk-go/service/servicediscovery/api.go index 39f58928c..197246706 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/servicediscovery/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/servicediscovery/api.go @@ -81,7 +81,7 @@ func (c *ServiceDiscovery) CreatePrivateDnsNamespaceRequest(input *CreatePrivate // of resources. // // * ErrCodeDuplicateRequest "DuplicateRequest" -// This request tried to create an object that already exists. +// The operation is already in progress. // // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/CreatePrivateDnsNamespace func (c *ServiceDiscovery) CreatePrivateDnsNamespace(input *CreatePrivateDnsNamespaceInput) (*CreatePrivateDnsNamespaceOutput, error) { @@ -175,7 +175,7 @@ func (c *ServiceDiscovery) CreatePublicDnsNamespaceRequest(input *CreatePublicDn // of resources. // // * ErrCodeDuplicateRequest "DuplicateRequest" -// This request tried to create an object that already exists. +// The operation is already in progress. // // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/CreatePublicDnsNamespace func (c *ServiceDiscovery) CreatePublicDnsNamespace(input *CreatePublicDnsNamespaceInput) (*CreatePublicDnsNamespaceOutput, error) { @@ -243,14 +243,14 @@ func (c *ServiceDiscovery) CreateServiceRequest(input *CreateServiceInput) (req // CreateService API operation for Amazon Route 53 Auto Naming. // -// Creates a service, which defines a template for the following entities: +// Creates a service, which defines the configuration for the following entities: // -// * One to five resource record sets +// * Up to three records (A, AAAA, and SRV) or one CNAME record // // * Optionally, a health check // // After you create the service, you can submit a RegisterInstance request, -// and Amazon Route 53 uses the values in the template to create the specified +// and Amazon Route 53 uses the values in the configuration to create the specified // entities. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions @@ -365,7 +365,7 @@ func (c *ServiceDiscovery) DeleteNamespaceRequest(input *DeleteNamespaceInput) ( // For example, you can't delete a service that contains any instances. // // * ErrCodeDuplicateRequest "DuplicateRequest" -// This request tried to create an object that already exists. +// The operation is already in progress. // // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DeleteNamespace func (c *ServiceDiscovery) DeleteNamespace(input *DeleteNamespaceInput) (*DeleteNamespaceOutput, error) { @@ -521,8 +521,8 @@ func (c *ServiceDiscovery) DeregisterInstanceRequest(input *DeregisterInstanceIn // DeregisterInstance API operation for Amazon Route 53 Auto Naming. // -// Deletes the resource record sets and the health check, if any, that Amazon -// Route 53 created for the specified instance. +// Deletes the records and the health check, if any, that Amazon Route 53 created +// for the specified instance. // // 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 @@ -533,14 +533,15 @@ func (c *ServiceDiscovery) DeregisterInstanceRequest(input *DeregisterInstanceIn // // Returned Error Codes: // * ErrCodeDuplicateRequest "DuplicateRequest" -// This request tried to create an object that already exists. +// The operation is already in progress. // // * ErrCodeInvalidInput "InvalidInput" // One or more specified values aren't valid. For example, when you're creating // a namespace, the value of Name might not be a valid DNS name. // // * ErrCodeInstanceNotFound "InstanceNotFound" -// No instance exists with the specified ID. +// No instance exists with the specified ID, or the instance was recently registered, +// and information about the instance hasn't propagated yet. // // * ErrCodeResourceInUse "ResourceInUse" // The specified resource can't be deleted because it contains other resources. @@ -626,7 +627,8 @@ func (c *ServiceDiscovery) GetInstanceRequest(input *GetInstanceInput) (req *req // // Returned Error Codes: // * ErrCodeInstanceNotFound "InstanceNotFound" -// No instance exists with the specified ID. +// No instance exists with the specified ID, or the instance was recently registered, +// and information about the instance hasn't propagated yet. // // * ErrCodeInvalidInput "InvalidInput" // One or more specified values aren't valid. For example, when you're creating @@ -710,6 +712,9 @@ func (c *ServiceDiscovery) GetInstancesHealthStatusRequest(input *GetInstancesHe // Gets the current health status (Healthy, Unhealthy, or Unknown) of one or // more instances that are associated with a specified service. // +// There is a brief delay between when you register an instance and when the +// health status for the instance is available. +// // 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. @@ -719,7 +724,8 @@ func (c *ServiceDiscovery) GetInstancesHealthStatusRequest(input *GetInstancesHe // // Returned Error Codes: // * ErrCodeInstanceNotFound "InstanceNotFound" -// No instance exists with the specified ID. +// No instance exists with the specified ID, or the instance was recently registered, +// and information about the instance hasn't propagated yet. // // * ErrCodeInvalidInput "InvalidInput" // One or more specified values aren't valid. For example, when you're creating @@ -928,8 +934,9 @@ func (c *ServiceDiscovery) GetOperationRequest(input *GetOperationInput) (req *r // GetOperation API operation for Amazon Route 53 Auto Naming. // // Gets information about any operation that returns an operation ID in the -// response, such as a CreateService request. To get a list of operations that -// match specified criteria, see ListOperations. +// response, such as a CreateService request. +// +// To get a list of operations that match specified criteria, see ListOperations. // // 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 @@ -1097,8 +1104,8 @@ func (c *ServiceDiscovery) ListInstancesRequest(input *ListInstancesInput) (req // ListInstances API operation for Amazon Route 53 Auto Naming. // -// Gets summary information about the instances that you created by using a -// specified service. +// Lists summary information about the instances that you registered by using +// a specified service. // // 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 @@ -1237,8 +1244,8 @@ func (c *ServiceDiscovery) ListNamespacesRequest(input *ListNamespacesInput) (re // ListNamespaces API operation for Amazon Route 53 Auto Naming. // -// Gets information about the namespaces that were created by the current AWS -// account. +// Lists summary information about the namespaces that were created by the current +// AWS account. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about @@ -1510,8 +1517,8 @@ func (c *ServiceDiscovery) ListServicesRequest(input *ListServicesInput) (req *r // ListServices API operation for Amazon Route 53 Auto Naming. // -// Gets settings for all the services that are associated with one or more specified -// namespaces. +// Lists summary information for all the services that are associated with one +// or more specified namespaces. // // 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 @@ -1519,6 +1526,12 @@ func (c *ServiceDiscovery) ListServicesRequest(input *ListServicesInput) (req *r // // See the AWS API reference guide for Amazon Route 53 Auto Naming's // API operation ListServices for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidInput "InvalidInput" +// One or more specified values aren't valid. For example, when you're creating +// a namespace, the value of Name might not be a valid DNS name. +// // See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListServices func (c *ServiceDiscovery) ListServices(input *ListServicesInput) (*ListServicesOutput, error) { req, out := c.ListServicesRequest(input) @@ -1635,34 +1648,34 @@ func (c *ServiceDiscovery) RegisterInstanceRequest(input *RegisterInstanceInput) // RegisterInstance API operation for Amazon Route 53 Auto Naming. // -// Creates one or more resource record sets and optionally a health check based +// Creates or updates one or more records and optionally a health check based // on the settings in a specified service. When you submit a RegisterInstance // request, Amazon Route 53 does the following: // -// * Creates a resource record set for each resource record set template -// in the service +// * For each DNS record that you define in the service specified by ServiceId, +// creates or updates a record in the hosted zone that is associated with +// the corresponding namespace // -// * Creates a health check based on the settings in the health check template -// in the service, if any +// * Creates or updates a health check based on the settings in the health +// check configuration, if any, for the service // -// * Associates the health check, if any, with each of the resource record -// sets +// * Associates the health check, if any, with each of the records // // One RegisterInstance request must complete before you can submit another -// request and specify the same service and instance ID. +// request and specify the same service ID and instance ID. // // For more information, see CreateService. // -// When Amazon Route 53 receives a DNS query for the specified DNS name, it -// returns the applicable value: +// When Route 53 receives a DNS query for the specified DNS name, it returns +// the applicable value: // -// * If the health check is healthy: returns all the resource record sets +// * If the health check is healthy: returns all the records // // * If the health check is unhealthy: returns the IP address of the last // healthy instance // -// * If you didn't specify a health check template: returns all the resource -// record sets +// * If you didn't specify a health check configuration: returns all the +// records // // 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 @@ -1673,7 +1686,7 @@ func (c *ServiceDiscovery) RegisterInstanceRequest(input *RegisterInstanceInput) // // Returned Error Codes: // * ErrCodeDuplicateRequest "DuplicateRequest" -// This request tried to create an object that already exists. +// The operation is already in progress. // // * ErrCodeInvalidInput "InvalidInput" // One or more specified values aren't valid. For example, when you're creating @@ -1756,15 +1769,18 @@ func (c *ServiceDiscovery) UpdateServiceRequest(input *UpdateServiceInput) (req // UpdateService API operation for Amazon Route 53 Auto Naming. // -// Updates the TTL setting for a specified service. You must specify all the -// resource record set templates (and, optionally, a health check template) -// that you want to appear in the updated service. Any current resource record -// set templates (or health check template) that don't appear in an UpdateService -// request are deleted. +// Submits a request to perform the following operations: // -// When you update the TTL setting for a service, Amazon Route 53 also updates -// the corresponding settings in all the resource record sets and health checks -// that were created by using the specified service. +// * Add or delete DnsRecords configurations +// +// * Update the TTL setting for existing DnsRecords configurations +// +// * Add, update, or delete HealthCheckConfig for a specified service +// +// * +// +// You must specify all DnsRecordsconfigurations (and, optionally, HealthCheckConfig) that you want to appear in the updated service. Any current configurations +// that don't appear in an UpdateService // // 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 @@ -1775,7 +1791,7 @@ func (c *ServiceDiscovery) UpdateServiceRequest(input *UpdateServiceInput) (req // // Returned Error Codes: // * ErrCodeDuplicateRequest "DuplicateRequest" -// This request tried to create an object that already exists. +// The operation is already in progress. // // * ErrCodeInvalidInput "InvalidInput" // One or more specified values aren't valid. For example, when you're creating @@ -1806,12 +1822,12 @@ func (c *ServiceDiscovery) UpdateServiceWithContext(ctx aws.Context, input *Upda return out, req.Send() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/CreatePrivateDnsNamespaceRequest type CreatePrivateDnsNamespaceInput struct { _ struct{} `type:"structure"` - // An optional parameter that you can use to resolve concurrent creation requests. - // CreatorRequestId helps to determine if a specific client owns the namespace. + // A unique string that identifies the request and that allows failed CreatePrivateDnsNamespace + // requests to be retried without the risk of executing the operation twice. + // CreatorRequestId can be any unique string, for example, a date/time stamp. CreatorRequestId *string `type:"string" idempotencyToken:"true"` // A description for the namespace. @@ -1880,7 +1896,6 @@ func (s *CreatePrivateDnsNamespaceInput) SetVpc(v string) *CreatePrivateDnsNames return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/CreatePrivateDnsNamespaceResponse type CreatePrivateDnsNamespaceOutput struct { _ struct{} `type:"structure"` @@ -1905,12 +1920,12 @@ func (s *CreatePrivateDnsNamespaceOutput) SetOperationId(v string) *CreatePrivat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/CreatePublicDnsNamespaceRequest type CreatePublicDnsNamespaceInput struct { _ struct{} `type:"structure"` - // An optional parameter that you can use to resolve concurrent creation requests. - // CreatorRequestId helps to determine if a specific client owns the namespace. + // A unique string that identifies the request and that allows failed CreatePublicDnsNamespace + // requests to be retried without the risk of executing the operation twice. + // CreatorRequestId can be any unique string, for example, a date/time stamp. CreatorRequestId *string `type:"string" idempotencyToken:"true"` // A description for the namespace. @@ -1963,7 +1978,6 @@ func (s *CreatePublicDnsNamespaceInput) SetName(v string) *CreatePublicDnsNamesp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/CreatePublicDnsNamespaceResponse type CreatePublicDnsNamespaceOutput struct { _ struct{} `type:"structure"` @@ -1988,40 +2002,29 @@ func (s *CreatePublicDnsNamespaceOutput) SetOperationId(v string) *CreatePublicD return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/CreateServiceRequest type CreateServiceInput struct { _ struct{} `type:"structure"` - // An optional parameter that you can use to resolve concurrent creation requests. - // CreatorRequestId helps to determine if a specific client owns the namespace. + // A unique string that identifies the request and that allows failed CreateService + // requests to be retried without the risk of executing the operation twice. + // CreatorRequestId can be any unique string, for example, a date/time stamp. CreatorRequestId *string `type:"string" idempotencyToken:"true"` // A description for the service. Description *string `type:"string"` - // A complex type that contains information about the resource record sets that - // you want Amazon Route 53 to create when you register an instance. + // A complex type that contains information about the records that you want + // Route 53 to create when you register an instance. // // DnsConfig is a required field DnsConfig *DnsConfig `type:"structure" required:"true"` // Public DNS namespaces only. A complex type that contains settings for an - // optional health check. If you specify settings for a health check, Amazon - // Route 53 associates the health check with all the resource record sets that - // you specify in DnsConfig. + // optional health check. If you specify settings for a health check, Route + // 53 associates the health check with all the records that you specify in DnsConfig. // - // The health check uses 30 seconds as the request interval. This is the number - // of seconds between the time that each Amazon Route 53 health checker gets - // a response from your endpoint and the time that it sends the next health - // check request. A health checker in each data center around the world sends - // your endpoint a health check request every 30 seconds. On average, your endpoint - // receives a health check request about every two seconds. Health checkers - // in different data centers don't coordinate with one another, so you'll sometimes - // see several requests per second followed by a few seconds with no health - // checks at all. - // - // For information about the charges for health checks, see Amazon Route 53 - // Pricing (http://aws.amazon.com/route53/pricing). + // For information about the charges for health checks, see Route 53 Pricing + // (http://aws.amazon.com/route53/pricing). HealthCheckConfig *HealthCheckConfig `type:"structure"` // The name that you want to assign to the service. @@ -2096,7 +2099,6 @@ func (s *CreateServiceInput) SetName(v string) *CreateServiceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/CreateServiceResponse type CreateServiceOutput struct { _ struct{} `type:"structure"` @@ -2120,7 +2122,6 @@ func (s *CreateServiceOutput) SetService(v *Service) *CreateServiceOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DeleteNamespaceRequest type DeleteNamespaceInput struct { _ struct{} `type:"structure"` @@ -2159,7 +2160,6 @@ func (s *DeleteNamespaceInput) SetId(v string) *DeleteNamespaceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DeleteNamespaceResponse type DeleteNamespaceOutput struct { _ struct{} `type:"structure"` @@ -2184,7 +2184,6 @@ func (s *DeleteNamespaceOutput) SetOperationId(v string) *DeleteNamespaceOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DeleteServiceRequest type DeleteServiceInput struct { _ struct{} `type:"structure"` @@ -2223,7 +2222,6 @@ func (s *DeleteServiceInput) SetId(v string) *DeleteServiceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DeleteServiceResponse type DeleteServiceOutput struct { _ struct{} `type:"structure"` } @@ -2238,7 +2236,6 @@ func (s DeleteServiceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DeregisterInstanceRequest type DeregisterInstanceInput struct { _ struct{} `type:"structure"` @@ -2291,7 +2288,6 @@ func (s *DeregisterInstanceInput) SetServiceId(v string) *DeregisterInstanceInpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DeregisterInstanceResponse type DeregisterInstanceOutput struct { _ struct{} `type:"structure"` @@ -2316,14 +2312,13 @@ func (s *DeregisterInstanceOutput) SetOperationId(v string) *DeregisterInstanceO return s } -// A complex type that contains information about the resource record sets that -// you want Amazon Route 53 to create when you register an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DnsConfig +// A complex type that contains information about the records that you want +// Amazon Route 53 to create when you register an instance. type DnsConfig struct { _ struct{} `type:"structure"` - // An array that contains one DnsRecord object for each resource record set - // that you want Amazon Route 53 to create when you register an instance. + // An array that contains one DnsRecord object for each record that you want + // Route 53 to create when you register an instance. // // DnsRecords is a required field DnsRecords []*DnsRecord `type:"list" required:"true"` @@ -2332,6 +2327,54 @@ type DnsConfig struct { // // NamespaceId is a required field NamespaceId *string `type:"string" required:"true"` + + // The routing policy that you want to apply to all records that Route 53 creates + // when you register an instance and specify this service. + // + // If you want to use this service to register instances that create alias records, + // specify WEIGHTED for the routing policy. + // + // You can specify the following values: + // + // MULTIVALUE + // + // If you define a health check for the service and the health check is healthy, + // Route 53 returns the applicable value for up to eight instances. + // + // For example, suppose the service includes configurations for one A record + // and a health check, and you use the service to register 10 instances. Route + // 53 responds to DNS queries with IP addresses for up to eight healthy instances. + // If fewer than eight instances are healthy, Route 53 responds to every DNS + // query with the IP addresses for all of the healthy instances. + // + // If you don't define a health check for the service, Route 53 assumes that + // all instances are healthy and returns the values for up to eight instances. + // + // For more information about the multivalue routing policy, see Multivalue + // Answer Routing (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-multivalue) + // in the Route 53 Developer Guide. + // + // WEIGHTED + // + // Route 53 returns the applicable value from one randomly selected instance + // from among the instances that you registered using the same service. Currently, + // all records have the same weight, so you can't route more or less traffic + // to any instances. + // + // For example, suppose the service includes configurations for one A record + // and a health check, and you use the service to register 10 instances. Route + // 53 responds to DNS queries with the IP address for one randomly selected + // instance from among the healthy instances. If no instances are healthy, Route + // 53 responds to DNS queries as if all of the instances were healthy. + // + // If you don't define a health check for the service, Route 53 assumes that + // all instances are healthy and returns the applicable value for one randomly + // selected instance. + // + // For more information about the weighted routing policy, see Weighted Routing + // (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted) + // in the Route 53 Developer Guide. + RoutingPolicy *string `type:"string" enum:"RoutingPolicy"` } // String returns the string representation @@ -2382,14 +2425,19 @@ func (s *DnsConfig) SetNamespaceId(v string) *DnsConfig { return s } -// A complex type that contains information about changes to the resource record -// sets that Amazon Route 53 creates when you register an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DnsConfigChange +// SetRoutingPolicy sets the RoutingPolicy field's value. +func (s *DnsConfig) SetRoutingPolicy(v string) *DnsConfig { + s.RoutingPolicy = &v + return s +} + +// A complex type that contains information about changes to the records that +// Route 53 creates when you register an instance. type DnsConfigChange struct { _ struct{} `type:"structure"` - // An array that contains one DnsRecord object for each resource record set - // that you want Amazon Route 53 to create when you register an instance. + // An array that contains one DnsRecord object for each record that you want + // Route 53 to create when you register an instance. // // DnsRecords is a required field DnsRecords []*DnsRecord `type:"list" required:"true"` @@ -2434,14 +2482,12 @@ func (s *DnsConfigChange) SetDnsRecords(v []*DnsRecord) *DnsConfigChange { return s } -// A complex type that contains the ID for the hosted zone that Amazon Route -// 53 creates when you create a namespace. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DnsProperties +// A complex type that contains the ID for the hosted zone that Route 53 creates +// when you create a namespace. type DnsProperties struct { _ struct{} `type:"structure"` - // The ID for the hosted zone that Amazon Route 53 creates when you create a - // namespace. + // The ID for the hosted zone that Route 53 creates when you create a namespace. HostedZoneId *string `type:"string"` } @@ -2461,35 +2507,97 @@ func (s *DnsProperties) SetHostedZoneId(v string) *DnsProperties { return s } -// A complex type that contains information about the resource record sets that -// you want Amazon Route 53 to create when you register an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/DnsRecord +// A complex type that contains information about the records that you want +// Route 53 to create when you register an instance. type DnsRecord struct { _ struct{} `type:"structure"` // The amount of time, in seconds, that you want DNS resolvers to cache the - // settings for this resource record set. + // settings for this record. + // + // Alias records don't include a TTL because Route 53 uses the TTL for the AWS + // resource that an alias record routes traffic to. If you include the AWS_ALIAS_DNS_NAME + // attribute when you submit a RegisterInstance request, the TTL value is ignored. + // Always specify a TTL for the service; you can use a service to register instances + // that create either alias or non-alias records. // // TTL is a required field TTL *int64 `type:"long" required:"true"` - // The type of the resource, which indicates the value that Amazon Route 53 - // returns in response to DNS queries. The following values are supported: + // The type of the resource, which indicates the type of value that Route 53 + // returns in response to DNS queries. // - // * A: Amazon Route 53 returns the IP address of the resource in IPv4 format, - // such as 192.0.2.44. + // Note the following: // - // * AAAA: Amazon Route 53 returns the IP address of the resource in IPv6 - // format, such as 2001:0db8:85a3:0000:0000:abcd:0001:2345. + // * A, AAAA, and SRV records: You can specify settings for a maximum of + // one A, one AAAA, and one SRV record. You can specify them in any combination. // - // * SRV: Amazon Route 53 returns the value for an SRV record. The value - // for an SRV record uses the following template, which can't be changed: + // * CNAME records: If you specify CNAME for Type, you can't define any other + // records. This is a limitation of DNS—you can't create a CNAME record and + // any other type of record that has the same name as a CNAME record. // - // priority weight port resource-record-set-name + // * Alias records: If you want Route 53 to create an alias record when you + // register an instance, specify A or AAAA for Type. // - // The values of priority and weight are both set to 1. The value of port comes - // from the value that you specify for Port when you submit a RegisterInstance - // request. + // * All records: You specify settings other than TTL and Type when you register + // an instance. + // + // The following values are supported: + // + // A + // + // Route 53 returns the IP address of the resource in IPv4 format, such as 192.0.2.44. + // + // AAAA + // + // Route 53 returns the IP address of the resource in IPv6 format, such as 2001:0db8:85a3:0000:0000:abcd:0001:2345. + // + // CNAME + // + // Route 53 returns the domain name of the resource, such as www.example.com. + // Note the following: + // + // * You specify the domain name that you want to route traffic to when you + // register an instance. For more information, see RegisterInstanceRequest$Attributes. + // + // * You must specify WEIGHTED for the value of RoutingPolicy. + // + // * You can't specify both CNAME for Type and settings for HealthCheckConfig. + // If you do, the request will fail with an InvalidInput error. + // + // SRV + // + // Route 53 returns the value for an SRV record. The value for an SRV record + // uses the following values: + // + // priority weight port service-hostname + // + // Note the following about the values: + // + // * The values of priority and weight are both set to 1 and can't be changed. + // + // + // * The value of port comes from the value that you specify for the AWS_INSTANCE_PORT + // attribute when you submit a RegisterInstance request. + // + // * The value of service-hostname is a concatenation of the following values: + // + // The value that you specify for InstanceId when you register an instance. + // + // The name of the service. + // + // The name of the namespace. + // + // For example, if the value of InstanceId is test, the name of the service + // is backend, and the name of the namespace is example.com, the value of + // service-hostname is: + // + // test.backend.example.com + // + // If you specify settings for an SRV record and if you specify values for AWS_INSTANCE_IPV4, + // AWS_INSTANCE_IPV6, or both in the RegisterInstance request, Route 53 automatically + // creates A and/or AAAA records that have the same name as the value of service-hostname + // in the SRV record. You can ignore these records. // // Type is a required field Type *string `type:"string" required:"true" enum:"RecordType"` @@ -2533,7 +2641,6 @@ func (s *DnsRecord) SetType(v string) *DnsRecord { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetInstanceRequest type GetInstanceInput struct { _ struct{} `type:"structure"` @@ -2586,7 +2693,6 @@ func (s *GetInstanceInput) SetServiceId(v string) *GetInstanceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetInstanceResponse type GetInstanceOutput struct { _ struct{} `type:"structure"` @@ -2610,21 +2716,22 @@ func (s *GetInstanceOutput) SetInstance(v *Instance) *GetInstanceOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetInstancesHealthStatusRequest type GetInstancesHealthStatusInput struct { _ struct{} `type:"structure"` // An array that contains the IDs of all the instances that you want to get - // the health status for. To get the IDs for the instances that you've created - // by using a specified service, submit a ListInstances request. + // the health status for. // // If you omit Instances, Amazon Route 53 returns the health status for all // the instances that are associated with the specified service. + // + // To get the IDs for the instances that you've registered by using a specified + // service, submit a ListInstances request. Instances []*string `min:"1" type:"list"` - // The maximum number of instances that you want Amazon Route 53 to return in - // the response to a GetInstancesHealthStatus request. If you don't specify - // a value for MaxResults, Amazon Route 53 returns up to 100 instances. + // The maximum number of instances that you want Route 53 to return in the response + // to a GetInstancesHealthStatus request. If you don't specify a value for MaxResults, + // Route 53 returns up to 100 instances. MaxResults *int64 `min:"1" type:"integer"` // For the first GetInstancesHealthStatus request, omit this value. @@ -2693,7 +2800,6 @@ func (s *GetInstancesHealthStatusInput) SetServiceId(v string) *GetInstancesHeal return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetInstancesHealthStatusResponse type GetInstancesHealthStatusOutput struct { _ struct{} `type:"structure"` @@ -2729,7 +2835,6 @@ func (s *GetInstancesHealthStatusOutput) SetStatus(v map[string]*string) *GetIns return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetNamespaceRequest type GetNamespaceInput struct { _ struct{} `type:"structure"` @@ -2768,7 +2873,6 @@ func (s *GetNamespaceInput) SetId(v string) *GetNamespaceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetNamespaceResponse type GetNamespaceOutput struct { _ struct{} `type:"structure"` @@ -2792,7 +2896,6 @@ func (s *GetNamespaceOutput) SetNamespace(v *Namespace) *GetNamespaceOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetOperationRequest type GetOperationInput struct { _ struct{} `type:"structure"` @@ -2831,7 +2934,6 @@ func (s *GetOperationInput) SetOperationId(v string) *GetOperationInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetOperationResponse type GetOperationOutput struct { _ struct{} `type:"structure"` @@ -2855,7 +2957,6 @@ func (s *GetOperationOutput) SetOperation(v *Operation) *GetOperationOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetServiceRequest type GetServiceInput struct { _ struct{} `type:"structure"` @@ -2894,7 +2995,6 @@ func (s *GetServiceInput) SetId(v string) *GetServiceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/GetServiceResponse type GetServiceOutput struct { _ struct{} `type:"structure"` @@ -2920,63 +3020,97 @@ func (s *GetServiceOutput) SetService(v *Service) *GetServiceOutput { // Public DNS namespaces only. A complex type that contains settings for an // optional health check. If you specify settings for a health check, Amazon -// Route 53 associates the health check with all the resource record sets that -// you specify in DnsConfig. +// Route 53 associates the health check with all the records that you specify +// in DnsConfig. +// +// A and AAAA records +// +// If DnsConfig includes configurations for both A and AAAA records, Route 53 +// creates a health check that uses the IPv4 address to check the health of +// the resource. If the endpoint that is specified by the IPv4 address is unhealthy, +// Route 53 considers both the A and AAAA records to be unhealthy. +// +// CNAME records +// +// You can't specify settings for HealthCheckConfig when the DNSConfig includes +// CNAME for the value of Type. If you do, the CreateService request will fail +// with an InvalidInput error. +// +// Request interval // // The health check uses 30 seconds as the request interval. This is the number -// of seconds between the time that each Amazon Route 53 health checker gets -// a response from your endpoint and the time that it sends the next health -// check request. A health checker in each data center around the world sends -// your endpoint a health check request every 30 seconds. On average, your endpoint -// receives a health check request about every two seconds. Health checkers -// in different data centers don't coordinate with one another, so you'll sometimes -// see several requests per second followed by a few seconds with no health -// checks at all. +// of seconds between the time that each Route 53 health checker gets a response +// from your endpoint and the time that it sends the next health check request. +// A health checker in each data center around the world sends your endpoint +// a health check request every 30 seconds. On average, your endpoint receives +// a health check request about every two seconds. Health checkers in different +// data centers don't coordinate with one another, so you'll sometimes see several +// requests per second followed by a few seconds with no health checks at all. // -// For information about the charges for health checks, see Amazon Route 53 -// Pricing (http://aws.amazon.com/route53/pricing). -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/HealthCheckConfig +// Health checking regions +// +// Health checkers perform checks from all Route 53 health-checking regions. +// For a list of the current regions, see Regions (http://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-Regions). +// +// Alias records +// +// When you register an instance, if you include the AWS_ALIAS_DNS_NAME attribute, +// Route 53 creates an alias record. Note the following: +// +// * Route 53 automatically sets EvaluateTargetHealth to true for alias records. +// When EvaluateTargetHealth is true, the alias record inherits the health +// of the referenced AWS resource. such as an ELB load balancer. For more +// information, see EvaluateTargetHealth (http://docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html#Route53-Type-AliasTarget-EvaluateTargetHealth). +// +// * If you include HealthCheckConfig and then use the service to register +// an instance that creates an alias record, Route 53 doesn't create the +// health check. +// +// For information about the charges for health checks, see Route 53 Pricing +// (http://aws.amazon.com/route53/pricing). type HealthCheckConfig struct { _ struct{} `type:"structure"` // The number of consecutive health checks that an endpoint must pass or fail - // for Amazon Route 53 to change the current status of the endpoint from unhealthy - // to healthy or vice versa. For more information, see How Amazon Route 53 Determines + // for Route 53 to change the current status of the endpoint from unhealthy + // to healthy or vice versa. For more information, see How Route 53 Determines // Whether an Endpoint Is Healthy (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) - // in the Amazon Route 53 Developer Guide. + // in the Route 53 Developer Guide. FailureThreshold *int64 `min:"1" type:"integer"` - // The path that you want Amazon Route 53 to request when performing health - // checks. The path can be any value for which your endpoint will return an - // HTTP status code of 2xx or 3xx when the endpoint is healthy, such as the - // file /docs/route53-health-check.html. Amazon Route 53 automatically adds - // the DNS name for the service and a leading forward slash (/) character. + // The path that you want Route 53 to request when performing health checks. + // The path can be any value for which your endpoint will return an HTTP status + // code of 2xx or 3xx when the endpoint is healthy, such as the file /docs/route53-health-check.html. + // Route 53 automatically adds the DNS name for the service and a leading forward + // slash (/) character. ResourcePath *string `type:"string"` - // The type of health check that you want to create, which indicates how Amazon - // Route 53 determines whether an endpoint is healthy. + // The type of health check that you want to create, which indicates how Route + // 53 determines whether an endpoint is healthy. // // You can't change the value of Type after you create a health check. // // You can create the following types of health checks: // - // * HTTP: Amazon Route 53 tries to establish a TCP connection. If successful, - // Amazon Route 53 submits an HTTP request and waits for an HTTP status code - // of 200 or greater and less than 400. + // * HTTP: Route 53 tries to establish a TCP connection. If successful, Route + // 53 submits an HTTP request and waits for an HTTP status code of 200 or + // greater and less than 400. // - // * HTTPS: Amazon Route 53 tries to establish a TCP connection. If successful, - // Amazon Route 53 submits an HTTPS request and waits for an HTTP status - // code of 200 or greater and less than 400. + // * HTTPS: Route 53 tries to establish a TCP connection. If successful, + // Route 53 submits an HTTPS request and waits for an HTTP status code of + // 200 or greater and less than 400. // // If you specify HTTPS for the value of Type, the endpoint must support TLS // v1.0 or later. // - // * TCP: Amazon Route 53 tries to establish a TCP connection. + // * TCP: Route 53 tries to establish a TCP connection. // - // For more information, see How Amazon Route 53 Determines Whether an Endpoint - // Is Healthy (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) - // in the Amazon Route 53 Developer Guide. - Type *string `type:"string" enum:"HealthCheckType"` + // For more information, see How Route 53 Determines Whether an Endpoint Is + // Healthy (http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html) + // in the Route 53 Developer Guide. + // + // Type is a required field + Type *string `type:"string" required:"true" enum:"HealthCheckType"` } // String returns the string representation @@ -2995,6 +3129,9 @@ func (s *HealthCheckConfig) Validate() error { if s.FailureThreshold != nil && *s.FailureThreshold < 1 { invalidParams.Add(request.NewErrParamMinValue("FailureThreshold", 1)) } + if s.Type == nil { + invalidParams.Add(request.NewErrParamRequired("Type")) + } if invalidParams.Len() > 0 { return invalidParams @@ -3022,41 +3159,99 @@ func (s *HealthCheckConfig) SetType(v string) *HealthCheckConfig { // A complex type that contains information about an instance that Amazon Route // 53 creates when you submit a RegisterInstance request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/Instance type Instance struct { _ struct{} `type:"structure"` - // A string map that contains attribute keys and values. Supported attribute - // keys include the following: + // A string map that contains the following information for the service that + // you specify in ServiceId: // - // * AWS_INSTANCE_PORT: The port on the endpoint that you want Amazon Route - // 53 to perform health checks on. This value is also used for the port value - // in an SRV record if the service that you specify includes an SRV record. - // For more information, see CreateService. + // * The attributes that apply to the records that are defined in the service. // - // * AWS_INSTANCE_IP: If the service that you specify contains a resource - // record set template for an A or AAAA record, the IP address that you want - // Amazon Route 53 to use for the value of the A record. // - // * AWS_INSTANCE_WEIGHT: The weight value in an SRV record if the service - // that you specify includes an SRV record. You can also specify a default - // weight that is applied to all instances in the Service configuration. - // For more information, see CreateService. + // * For each attribute, the applicable value. // - // * AWS_INSTANCE_PRIORITY: The priority value in an SRV record if the service - // that you specify includes an SRV record. + // Supported attribute keys include the following: + // + // * AWS_ALIAS_DNS_NAME: If you want Route 53 to create an alias record that + // routes traffic to an Elastic Load Balancing load balancer, specify the + // DNS name that is associated with the load balancer. For information about + // how to get the DNS name, see "DNSName" in the topic AliasTarget (http://docs.aws.amazon.com/http:/docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html). + // + // Note the following: + // + // The configuration for the service that is specified by ServiceId must include + // settings for an A record, an AAAA record, or both. + // + // In the service that is specified by ServiceId, the value of RoutingPolicy + // must be WEIGHTED. + // + // If the service that is specified by ServiceId includes HealthCheckConfig + // settings, Route 53 will create the health check, but it won't associate + // the health check with the alias record. + // + // Auto naming currently doesn't support creating alias records that route traffic + // to AWS resources other than ELB load balancers. + // + // If you specify a value for AWS_ALIAS_DNS_NAME, don't specify values for any + // of the AWS_INSTANCE attributes. + // + // * AWS_INSTANCE_CNAME: If the service configuration includes a CNAME record, + // the domain name that you want Route 53 to return in response to DNS queries, + // for example, example.com. + // + // This value is required if the service specified by ServiceId includes settings + // for an CNAME record. + // + // * AWS_INSTANCE_IPV4: If the service configuration includes an A record, + // the IPv4 address that you want Route 53 to return in response to DNS queries, + // for example, 192.0.2.44. + // + // This value is required if the service specified by ServiceId includes settings + // for an A record. Either AWS_INSTANCE_IPV4 or AWS_INSTANCE_IPV6 is required + // if the service includes settings for an SRV record. + // + // * AWS_INSTANCE_IPV6: If the service configuration includes an AAAA record, + // the IPv6 address that you want Route 53 to return in response to DNS queries, + // for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345. + // + // This value is required if the service specified by ServiceId includes settings + // for an AAAA record. Either AWS_INSTANCE_IPV4 or AWS_INSTANCE_IPV6 is required + // if the service includes settings for an SRV record. + // + // * AWS_INSTANCE_PORT: If the service includes an SRV record, the value + // that you want Route 53 to return for the port. In addition, if the service + // includes HealthCheckConfig, the port on the endpoint that you want Route + // 53 to send requests to. For more information, see CreateService. + // + // This value is required if you specified settings for an SRV record when you + // created the service. Attributes map[string]*string `type:"map"` - // An optional parameter that you can use to resolve concurrent creation requests. - // CreatorRequestId helps to determine if a specific client owns the namespace. + // A unique string that identifies the request and that allows failed RegisterInstance + // requests to be retried without the risk of executing the operation twice. + // You must use a unique CreatorRequestId string every time you submit a RegisterInstance + // request if you're registering additional instances for the same namespace + // and service. CreatorRequestId can be any unique string, for example, a date/time + // stamp. CreatorRequestId *string `type:"string"` // An identifier that you want to associate with the instance. Note the following: // + // * If the service that is specified by ServiceId includes settings for + // an SRV record, the value of InstanceId is automatically included as part + // of the value for the SRV record. For more information, see DnsRecord$Type. + // // * You can use this value to update an existing instance. // - // * To associate a new instance, you must specify a value that is unique - // among instances that you associate by using the same service. + // * To register a new instance, you must specify a value that is unique + // among instances that you register by using the same service. + // + // * If you specify an existing InstanceId and ServiceId, Route 53 updates + // the existing records. If there's also an existing health check, Route + // 53 deletes the old health check and creates a new one. + // + // The health check isn't deleted immediately, so it will still appear for a + // while if you submit a ListHealthChecks request, for example. // // Id is a required field Id *string `type:"string" required:"true"` @@ -3090,23 +3285,35 @@ func (s *Instance) SetId(v string) *Instance { return s } -// A complex type that contains information about the instances that you created +// A complex type that contains information about the instances that you registered // by using a specified service. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/InstanceSummary type InstanceSummary struct { _ struct{} `type:"structure"` - // A string map that contain attribute keys and values for an instance. Supported - // attribute keys include the following: + // A string map that contains the following information: // - // * AWS_INSTANCE_PORT: The port on the endpoint that you want Amazon Route - // 53 to perform health checks on. This value is also used for the port value - // in an SRV record if the service that you specify includes an SRV record. - // For more information, see CreateService. + // * The attributes that are associate with the instance. // - // * AWS_INSTANCE_IP: If the service that you specify contains a resource - // record set template for an A or AAAA record, the IP address that you want - // Amazon Route 53 to use for the value of the A record. + // * For each attribute, the applicable value. + // + // Supported attribute keys include the following: + // + // * AWS_ALIAS_DNS_NAME: For an alias record that routes traffic to an Elastic + // Load Balancing load balancer, the DNS name that is associated with the + // load balancer. + // + // * AWS_INSTANCE_CNAME: For a CNAME record, the domain name that Route 53 + // returns in response to DNS queries, for example, example.com. + // + // * AWS_INSTANCE_IPV4: For an A record, the IPv4 address that Route 53 returns + // in response to DNS queries, for example, 192.0.2.44. + // + // * AWS_INSTANCE_IPV6: For an AAAA record, the IPv6 address that Route 53 + // returns in response to DNS queries, for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345. + // + // * AWS_INSTANCE_PORT: For an SRV record, the value that Route 53 returns + // for the port. In addition, if the service includes HealthCheckConfig, + // the port on the endpoint that Route 53 sends requests to. Attributes map[string]*string `type:"map"` // The ID for an instance that you created by using a specified service. @@ -3135,13 +3342,12 @@ func (s *InstanceSummary) SetId(v string) *InstanceSummary { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListInstancesRequest type ListInstancesInput struct { _ struct{} `type:"structure"` // The maximum number of instances that you want Amazon Route 53 to return in // the response to a ListInstances request. If you don't specify a value for - // MaxResults, Amazon Route 53 returns up to 100 instances. + // MaxResults, Route 53 returns up to 100 instances. MaxResults *int64 `min:"1" type:"integer"` // For the first ListInstances request, omit this value. @@ -3201,7 +3407,6 @@ func (s *ListInstancesInput) SetServiceId(v string) *ListInstancesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListInstancesResponse type ListInstancesOutput struct { _ struct{} `type:"structure"` @@ -3237,27 +3442,31 @@ func (s *ListInstancesOutput) SetNextToken(v string) *ListInstancesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListNamespacesRequest type ListNamespacesInput struct { _ struct{} `type:"structure"` // A complex type that contains specifications for the namespaces that you want // to list. // - // If you specify more than one filter, an operation must match all filters - // to be returned by ListNamespaces. + // If you specify more than one filter, a namespace must match all filters to + // be returned by ListNamespaces. Filters []*NamespaceFilter `type:"list"` // The maximum number of namespaces that you want Amazon Route 53 to return // in the response to a ListNamespaces request. If you don't specify a value - // for MaxResults, Amazon Route 53 returns up to 100 namespaces. + // for MaxResults, Route 53 returns up to 100 namespaces. MaxResults *int64 `min:"1" type:"integer"` // For the first ListNamespaces request, omit this value. // - // If more than MaxResults namespaces match the specified criteria, you can - // submit another ListNamespaces request to get the next group of results. Specify - // the value of NextToken from the previous response in the next request. + // If the response contains NextToken, submit another ListNamespaces request + // to get the next group of results. Specify the value of NextToken from the + // previous response in the next request. + // + // Route 53 gets MaxResults namespaces and then filters them based on the specified + // criteria. It's possible that no namespaces in the first MaxResults namespaces + // matched the specified criteria but that subsequent groups of MaxResults namespaces + // do contain namespaces that match the criteria. NextToken *string `type:"string"` } @@ -3312,7 +3521,6 @@ func (s *ListNamespacesInput) SetNextToken(v string) *ListNamespacesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListNamespacesResponse type ListNamespacesOutput struct { _ struct{} `type:"structure"` @@ -3320,9 +3528,14 @@ type ListNamespacesOutput struct { // matches the specified filter criteria. Namespaces []*NamespaceSummary `type:"list"` - // If more than MaxResults namespaces match the specified criteria, you can - // submit another ListNamespaces request to get the next group of results. Specify - // the value of NextToken from the previous response in the next request. + // If the response contains NextToken, submit another ListNamespaces request + // to get the next group of results. Specify the value of NextToken from the + // previous response in the next request. + // + // Route 53 gets MaxResults namespaces and then filters them based on the specified + // criteria. It's possible that no namespaces in the first MaxResults namespaces + // matched the specified criteria but that subsequent groups of MaxResults namespaces + // do contain namespaces that match the criteria. NextToken *string `type:"string"` } @@ -3348,7 +3561,6 @@ func (s *ListNamespacesOutput) SetNextToken(v string) *ListNamespacesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListOperationsRequest type ListOperationsInput struct { _ struct{} `type:"structure"` @@ -3362,14 +3574,19 @@ type ListOperationsInput struct { // The maximum number of items that you want Amazon Route 53 to return in the // response to a ListOperations request. If you don't specify a value for MaxResults, - // Amazon Route 53 returns up to 100 operations. + // Route 53 returns up to 100 operations. MaxResults *int64 `min:"1" type:"integer"` // For the first ListOperations request, omit this value. // - // If more than MaxResults operations match the specified criteria, you can - // submit another ListOperations request to get the next group of results. Specify - // the value of NextToken from the previous response in the next request. + // If the response contains NextToken, submit another ListOperations request + // to get the next group of results. Specify the value of NextToken from the + // previous response in the next request. + // + // Route 53 gets MaxResults operations and then filters them based on the specified + // criteria. It's possible that no operations in the first MaxResults operations + // matched the specified criteria but that subsequent groups of MaxResults operations + // do contain operations that match the criteria. NextToken *string `type:"string"` } @@ -3424,13 +3641,17 @@ func (s *ListOperationsInput) SetNextToken(v string) *ListOperationsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListOperationsResponse type ListOperationsOutput struct { _ struct{} `type:"structure"` - // If more than MaxResults operations match the specified criteria, you can - // submit another ListOperations request to get the next group of results. Specify - // the value of NextToken from the previous response in the next request. + // If the response contains NextToken, submit another ListOperations request + // to get the next group of results. Specify the value of NextToken from the + // previous response in the next request. + // + // Route 53 gets MaxResults operations and then filters them based on the specified + // criteria. It's possible that no operations in the first MaxResults operations + // matched the specified criteria but that subsequent groups of MaxResults operations + // do contain operations that match the criteria. NextToken *string `type:"string"` // Summary information about the operations that match the specified criteria. @@ -3459,7 +3680,6 @@ func (s *ListOperationsOutput) SetOperations(v []*OperationSummary) *ListOperati return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListServicesRequest type ListServicesInput struct { _ struct{} `type:"structure"` @@ -3472,14 +3692,19 @@ type ListServicesInput struct { // The maximum number of services that you want Amazon Route 53 to return in // the response to a ListServices request. If you don't specify a value for - // MaxResults, Amazon Route 53 returns up to 100 services. + // MaxResults, Route 53 returns up to 100 services. MaxResults *int64 `min:"1" type:"integer"` // For the first ListServices request, omit this value. // - // If more than MaxResults services match the specified criteria, you can submit - // another ListServices request to get the next group of results. Specify the - // value of NextToken from the previous response in the next request. + // If the response contains NextToken, submit another ListServices request to + // get the next group of results. Specify the value of NextToken from the previous + // response in the next request. + // + // Route 53 gets MaxResults services and then filters them based on the specified + // criteria. It's possible that no services in the first MaxResults services + // matched the specified criteria but that subsequent groups of MaxResults services + // do contain services that match the criteria. NextToken *string `type:"string"` } @@ -3534,14 +3759,17 @@ func (s *ListServicesInput) SetNextToken(v string) *ListServicesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ListServicesResponse type ListServicesOutput struct { _ struct{} `type:"structure"` - // If more than MaxResults operations match the specified criteria, the value - // of NextToken is the first service in the next group of services that were - // created by the current AWS account. To get the next group, specify the value - // of NextToken from the previous response in the next request. + // If the response contains NextToken, submit another ListServices request to + // get the next group of results. Specify the value of NextToken from the previous + // response in the next request. + // + // Route 53 gets MaxResults services and then filters them based on the specified + // criteria. It's possible that no services in the first MaxResults services + // matched the specified criteria but that subsequent groups of MaxResults services + // do contain services that match the criteria. NextToken *string `type:"string"` // An array that contains one ServiceSummary object for each service that matches @@ -3572,20 +3800,21 @@ func (s *ListServicesOutput) SetServices(v []*ServiceSummary) *ListServicesOutpu } // A complex type that contains information about a specified namespace. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/Namespace type Namespace struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) that Amazon Route 53 assigns to the namespace - // when you create it. + // The Amazon Resource Name (ARN) that Route 53 assigns to the namespace when + // you create it. Arn *string `type:"string"` // The date that the namespace was created, in Unix date/time format and Coordinated - // Universal Time (UTC). + // Universal Time (UTC). The value of CreateDate is accurate to milliseconds. + // For example, the value 1516925490.087 represents Friday, January 26, 2018 + // 12:11:30.087 AM. CreateDate *time.Time `type:"timestamp" timestampFormat:"unix"` - // An optional parameter that you can use to resolve concurrent creation requests. - // CreatorRequestId helps to determine if a specific client owns the namespace. + // A unique string that identifies the request and that allows failed requests + // to be retried without the risk of executing an operation twice. CreatorRequestId *string `type:"string"` // The description that you specify for the namespace when you create it. @@ -3674,7 +3903,6 @@ func (s *Namespace) SetType(v string) *Namespace { // A complex type that identifies the namespaces that you want to list. You // can choose to list public or private namespaces. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/NamespaceFilter type NamespaceFilter struct { _ struct{} `type:"structure"` @@ -3687,6 +3915,8 @@ type NamespaceFilter struct { // // * IN: When you specify IN for the condition, you can choose to list public // namespaces, private namespaces, or both. + // + // * BETWEEN: Not applicable Condition *string `type:"string" enum:"FilterCondition"` // Specify TYPE. @@ -3749,12 +3979,11 @@ func (s *NamespaceFilter) SetValues(v []*string) *NamespaceFilter { // A complex type that contains information that is specific to the namespace // type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/NamespaceProperties type NamespaceProperties struct { _ struct{} `type:"structure"` - // A complex type that contains the ID for the hosted zone that Amazon Route - // 53 creates when you create a namespace. + // A complex type that contains the ID for the hosted zone that Route 53 creates + // when you create a namespace. DnsProperties *DnsProperties `type:"structure"` } @@ -3775,18 +4004,17 @@ func (s *NamespaceProperties) SetDnsProperties(v *DnsProperties) *NamespacePrope } // A complex type that contains information about a namespace. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/NamespaceSummary type NamespaceSummary struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) that Amazon Route 53 assigns to the namespace - // when you create it. + // The Amazon Resource Name (ARN) that Route 53 assigns to the namespace when + // you create it. Arn *string `type:"string"` // The ID of the namespace. Id *string `type:"string"` - // The name of the namespace. When you create a namespace, Amazon Route 53 automatically + // The name of the namespace. When you create a namespace, Route 53 automatically // creates a hosted zone that has the same name as the namespace. Name *string `type:"string"` @@ -3829,15 +4057,30 @@ func (s *NamespaceSummary) SetType(v string) *NamespaceSummary { } // A complex type that contains information about a specified operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/Operation type Operation struct { _ struct{} `type:"structure"` // The date and time that the request was submitted, in Unix date/time format - // and Coordinated Universal Time (UTC). + // and Coordinated Universal Time (UTC). The value of CreateDate is accurate + // to milliseconds. For example, the value 1516925490.087 represents Friday, + // January 26, 2018 12:11:30.087 AM. CreateDate *time.Time `type:"timestamp" timestampFormat:"unix"` - // The code associated with ErrorMessage. + // The code associated with ErrorMessage. Values for ErrorCode include the following: + // + // * ACCESS_DENIED + // + // * CANNOT_CREATE_HOSTED_ZONE + // + // * EXPIRED_TOKEN + // + // * HOSTED_ZONE_NOT_FOUND + // + // * INTERNAL_FAILURE + // + // * INVALID_CHANGE_BATCH + // + // * THROTTLED_REQUEST ErrorCode *string `type:"string"` // If the value of Status is FAIL, the reason that the operation failed. @@ -3851,7 +4094,7 @@ type Operation struct { // * SUBMITTED: This is the initial state immediately after you submit a // request. // - // * PENDING: Amazon Route 53 is performing the operation. + // * PENDING: Route 53 is performing the operation. // // * SUCCESS: The operation succeeded. // @@ -3871,7 +4114,9 @@ type Operation struct { Type *string `type:"string" enum:"OperationType"` // The date and time that the value of Status changed to the current value, - // in Unix date/time format and Coordinated Universal Time (UTC). + // in Unix date/time format and Coordinated Universal Time (UTC). The value + // of UpdateDate is accurate to milliseconds. For example, the value 1516925490.087 + // represents Friday, January 26, 2018 12:11:30.087 AM. UpdateDate *time.Time `type:"timestamp" timestampFormat:"unix"` } @@ -3934,7 +4179,6 @@ func (s *Operation) SetUpdateDate(v time.Time) *Operation { } // A complex type that lets you select the operations that you want to list. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/OperationFilter type OperationFilter struct { _ struct{} `type:"structure"` @@ -3949,8 +4193,9 @@ type OperationFilter struct { // one or more values. IN is supported for STATUS and TYPE. An operation // must match one of the specified values to be returned in the response. // - // * BETWEEN: Specify two values, a start date and an end date. The start - // date must be the first value. BETWEEN is supported for U. + // * BETWEEN: Specify a start date and an end date in Unix date/time format + // and Coordinated Universal Time (UTC). The start date must be the first + // value. BETWEEN is supported for UPDATE_DATE. Condition *string `type:"string" enum:"FilterCondition"` // Specify the operations that you want to get: @@ -4036,7 +4281,6 @@ func (s *OperationFilter) SetValues(v []*string) *OperationFilter { // A complex type that contains information about an operation that matches // the criteria that you specified in a ListOperations request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/OperationSummary type OperationSummary struct { _ struct{} `type:"structure"` @@ -4048,7 +4292,7 @@ type OperationSummary struct { // * SUBMITTED: This is the initial state immediately after you submit a // request. // - // * PENDING: Amazon Route 53 is performing the operation. + // * PENDING: Route 53 is performing the operation. // // * SUCCESS: The operation succeeded. // @@ -4078,45 +4322,106 @@ func (s *OperationSummary) SetStatus(v string) *OperationSummary { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/RegisterInstanceRequest type RegisterInstanceInput struct { _ struct{} `type:"structure"` - // A string map that contain attribute keys and values. Supported attribute - // keys include the following: + // A string map that contains the following information for the service that + // you specify in ServiceId: // - // * AWS_INSTANCE_PORT: The port on the endpoint that you want Amazon Route - // 53 to perform health checks on. This value is also used for the port value - // in an SRV record if the service that you specify includes an SRV record. - // For more information, see CreateService. + // * The attributes that apply to the records that are defined in the service. // - // * AWS_INSTANCE_IPV4: If the service that you specify contains a resource - // record set template for an A record, the IPv4 address that you want Amazon - // Route 53 to use for the value of the A record. // - // * AWS_INSTANCE_IPV6: If the service that you specify contains a resource - // record set template for an AAAA record, the IPv6 address that you want - // Amazon Route 53 to use for the value of the AAAA record. + // * For each attribute, the applicable value. + // + // Supported attribute keys include the following: + // + // AWS_ALIAS_DNS_NAME + // + // If you want Route 53 to create an alias record that routes traffic to an + // Elastic Load Balancing load balancer, specify the DNS name that is associated + // with the load balancer. For information about how to get the DNS name, see + // "DNSName" in the topic AliasTarget (http://docs.aws.amazon.com/http:/docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html). + // + // Note the following: + // + // The configuration for the service that is specified by ServiceId must include + // settings for an A record, an AAAA record, or both. + // + // * In the service that is specified by ServiceId, the value of RoutingPolicy + // must be WEIGHTED. + // + // * If the service that is specified by ServiceId includes HealthCheckConfig + // settings, Route 53 will create the health check, but it won't associate + // the health check with the alias record. + // + // * Auto naming currently doesn't support creating alias records that route + // traffic to AWS resources other than ELB load balancers. + // + // * If you specify a value for AWS_ALIAS_DNS_NAME, don't specify values + // for any of the AWS_INSTANCE attributes. + // + // AWS_INSTANCE_CNAME + // + // If the service configuration includes a CNAME record, the domain name that + // you want Route 53 to return in response to DNS queries, for example, example.com. + // + // This value is required if the service specified by ServiceIdincludes settings for an CNAME record. + // + // AWS_INSTANCE_IPV4 + // + // If the service configuration includes an A record, the IPv4 address that + // you want Route 53 to return in response to DNS queries, for example, 192.0.2.44. + // + // This value is required if the service specified by ServiceIdincludes settings for an A record. Either AWS_INSTANCE_IPV4or AWS_INSTANCE_IPV6is required if the service includes settings for an SRV record. + // + // AWS_INSTANCE_IPV6 + // + // If the service configuration includes an AAAA record, the IPv6 address that + // you want Route 53 to return in response to DNS queries, for example, 2001:0db8:85a3:0000:0000:abcd:0001:2345. + // + // This value is required if the service specified by ServiceIdincludes settings for an AAAA record. Either AWS_INSTANCE_IPV4or AWS_INSTANCE_IPV6is required if the service includes settings for an SRV record. + // + // AWS_INSTANCE_PORT + // + // If the service includes an SRV record, the value that you want Route 53 to + // return for the port. + // + // If the service includes HealthCheckConfig // // Attributes is a required field Attributes map[string]*string `type:"map" required:"true"` - // An optional parameter that you can use to resolve concurrent creation requests. - // CreatorRequestId helps to determine if a specific client owns the namespace. + // A unique string that identifies the request and that allows failed RegisterInstance + // requests to be retried without the risk of executing the operation twice. + // You must use a unique CreatorRequestId string every time you submit a RegisterInstance + // request if you're registering additional instances for the same namespace + // and service. CreatorRequestId can be any unique string, for example, a date/time + // stamp. CreatorRequestId *string `type:"string" idempotencyToken:"true"` // An identifier that you want to associate with the instance. Note the following: // + // * If the service that is specified by ServiceId includes settings for + // an SRV record, the value of InstanceId is automatically included as part + // of the value for the SRV record. For more information, see DnsRecord$Type. + // // * You can use this value to update an existing instance. // // * To register a new instance, you must specify a value that is unique // among instances that you register by using the same service. // + // * If you specify an existing InstanceId and ServiceId, Route 53 updates + // the existing records. If there's also an existing health check, Route + // 53 deletes the old health check and creates a new one. + // + // The health check isn't deleted immediately, so it will still appear for a + // while if you submit a ListHealthChecks request, for example. + // // InstanceId is a required field InstanceId *string `type:"string" required:"true"` - // The ID of the service that you want to use for settings for the resource - // record sets and health check that Amazon Route 53 will create. + // The ID of the service that you want to use for settings for the records and + // health check that Route 53 will create. // // ServiceId is a required field ServiceId *string `type:"string" required:"true"` @@ -4175,7 +4480,6 @@ func (s *RegisterInstanceInput) SetServiceId(v string) *RegisterInstanceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/RegisterInstanceResponse type RegisterInstanceOutput struct { _ struct{} `type:"structure"` @@ -4201,49 +4505,40 @@ func (s *RegisterInstanceOutput) SetOperationId(v string) *RegisterInstanceOutpu } // A complex type that contains information about the specified service. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/Service type Service struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) that Amazon Route 53 assigns to the service - // when you create it. + // The Amazon Resource Name (ARN) that Route 53 assigns to the service when + // you create it. Arn *string `type:"string"` // The date and time that the service was created, in Unix format and Coordinated - // Universal Time (UTC). + // Universal Time (UTC). The value of CreateDate is accurate to milliseconds. + // For example, the value 1516925490.087 represents Friday, January 26, 2018 + // 12:11:30.087 AM. CreateDate *time.Time `type:"timestamp" timestampFormat:"unix"` - // An optional parameter that you can use to resolve concurrent creation requests. - // CreatorRequestId helps to determine if a specific client owns the namespace. + // A unique string that identifies the request and that allows failed requests + // to be retried without the risk of executing the operation twice. CreatorRequestId + // can be any unique string, for example, a date/time stamp. CreatorRequestId *string `type:"string"` // The description of the service. Description *string `type:"string"` - // A complex type that contains information about the resource record sets that - // you want Amazon Route 53 to create when you register an instance. + // A complex type that contains information about the records that you want + // Route 53 to create when you register an instance. DnsConfig *DnsConfig `type:"structure"` // Public DNS namespaces only. A complex type that contains settings for an - // optional health check. If you specify settings for a health check, Amazon - // Route 53 associates the health check with all the resource record sets that - // you specify in DnsConfig. + // optional health check. If you specify settings for a health check, Route + // 53 associates the health check with all the records that you specify in DnsConfig. // - // The health check uses 30 seconds as the request interval. This is the number - // of seconds between the time that each Amazon Route 53 health checker gets - // a response from your endpoint and the time that it sends the next health - // check request. A health checker in each data center around the world sends - // your endpoint a health check request every 30 seconds. On average, your endpoint - // receives a health check request about every two seconds. Health checkers - // in different data centers don't coordinate with one another, so you'll sometimes - // see several requests per second followed by a few seconds with no health - // checks at all. - // - // For information about the charges for health checks, see Amazon Route 53 - // Pricing (http://aws.amazon.com/route53/pricing). + // For information about the charges for health checks, see Route 53 Pricing + // (http://aws.amazon.com/route53/pricing). HealthCheckConfig *HealthCheckConfig `type:"structure"` - // The ID that Amazon Route 53 assigned to the service when you created it. + // The ID that Route 53 assigned to the service when you created it. Id *string `type:"string"` // The number of instances that are currently associated with the service. Instances @@ -4320,36 +4615,68 @@ func (s *Service) SetName(v string) *Service { } // A complex type that contains changes to an existing service. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ServiceChange type ServiceChange struct { _ struct{} `type:"structure"` // A description for the service. Description *string `type:"string"` - // A complex type that contains information about the resource record sets that - // you want Amazon Route 53 to create when you register an instance. + // A complex type that contains information about the records that you want + // Route 53 to create when you register an instance. // // DnsConfig is a required field DnsConfig *DnsConfigChange `type:"structure" required:"true"` // Public DNS namespaces only. A complex type that contains settings for an // optional health check. If you specify settings for a health check, Amazon - // Route 53 associates the health check with all the resource record sets that - // you specify in DnsConfig. + // Route 53 associates the health check with all the records that you specify + // in DnsConfig. + // + // A and AAAA records + // + // If DnsConfig includes configurations for both A and AAAA records, Route 53 + // creates a health check that uses the IPv4 address to check the health of + // the resource. If the endpoint that is specified by the IPv4 address is unhealthy, + // Route 53 considers both the A and AAAA records to be unhealthy. + // + // CNAME records + // + // You can't specify settings for HealthCheckConfig when the DNSConfig includes + // CNAME for the value of Type. If you do, the CreateService request will fail + // with an InvalidInput error. + // + // Request interval // // The health check uses 30 seconds as the request interval. This is the number - // of seconds between the time that each Amazon Route 53 health checker gets - // a response from your endpoint and the time that it sends the next health - // check request. A health checker in each data center around the world sends - // your endpoint a health check request every 30 seconds. On average, your endpoint - // receives a health check request about every two seconds. Health checkers - // in different data centers don't coordinate with one another, so you'll sometimes - // see several requests per second followed by a few seconds with no health - // checks at all. + // of seconds between the time that each Route 53 health checker gets a response + // from your endpoint and the time that it sends the next health check request. + // A health checker in each data center around the world sends your endpoint + // a health check request every 30 seconds. On average, your endpoint receives + // a health check request about every two seconds. Health checkers in different + // data centers don't coordinate with one another, so you'll sometimes see several + // requests per second followed by a few seconds with no health checks at all. // - // For information about the charges for health checks, see Amazon Route 53 - // Pricing (http://aws.amazon.com/route53/pricing). + // Health checking regions + // + // Health checkers perform checks from all Route 53 health-checking regions. + // For a list of the current regions, see Regions (http://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-Regions). + // + // Alias records + // + // When you register an instance, if you include the AWS_ALIAS_DNS_NAME attribute, + // Route 53 creates an alias record. Note the following: + // + // * Route 53 automatically sets EvaluateTargetHealth to true for alias records. + // When EvaluateTargetHealth is true, the alias record inherits the health + // of the referenced AWS resource. such as an ELB load balancer. For more + // information, see EvaluateTargetHealth (http://docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html#Route53-Type-AliasTarget-EvaluateTargetHealth). + // + // * If you include HealthCheckConfig and then use the service to register + // an instance that creates an alias record, Route 53 doesn't create the + // health check. + // + // For information about the charges for health checks, see Route 53 Pricing + // (http://aws.amazon.com/route53/pricing). HealthCheckConfig *HealthCheckConfig `type:"structure"` } @@ -4406,7 +4733,6 @@ func (s *ServiceChange) SetHealthCheckConfig(v *HealthCheckConfig) *ServiceChang // A complex type that lets you specify the namespaces that you want to list // services for. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ServiceFilter type ServiceFilter struct { _ struct{} `type:"structure"` @@ -4418,6 +4744,8 @@ type ServiceFilter struct { // // * IN: When you specify IN, specify a list of the IDs for the namespaces // that you want ListServices to return a list of services for. + // + // * BETWEEN: Not applicable. Condition *string `type:"string" enum:"FilterCondition"` // Specify NAMESPACE_ID. @@ -4477,18 +4805,17 @@ func (s *ServiceFilter) SetValues(v []*string) *ServiceFilter { } // A complex type that contains information about a specified service. -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/ServiceSummary type ServiceSummary struct { _ struct{} `type:"structure"` - // The Amazon Resource Name (ARN) that Amazon Route 53 assigns to the service - // when you create it. + // The Amazon Resource Name (ARN) that Route 53 assigns to the service when + // you create it. Arn *string `type:"string"` // The description that you specify when you create the service. Description *string `type:"string"` - // The ID that Amazon Route 53 assigned to the service when you created it. + // The ID that Route 53 assigned to the service when you created it. Id *string `type:"string"` // The number of instances that are currently associated with the service. Instances @@ -4540,7 +4867,6 @@ func (s *ServiceSummary) SetName(v string) *ServiceSummary { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/UpdateServiceRequest type UpdateServiceInput struct { _ struct{} `type:"structure"` @@ -4598,7 +4924,6 @@ func (s *UpdateServiceInput) SetService(v *ServiceChange) *UpdateServiceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/servicediscovery-2017-03-14/UpdateServiceResponse type UpdateServiceOutput struct { _ struct{} `type:"structure"` @@ -4737,6 +5062,17 @@ const ( // RecordTypeAaaa is a RecordType enum value RecordTypeAaaa = "AAAA" + + // RecordTypeCname is a RecordType enum value + RecordTypeCname = "CNAME" +) + +const ( + // RoutingPolicyMultivalue is a RoutingPolicy enum value + RoutingPolicyMultivalue = "MULTIVALUE" + + // RoutingPolicyWeighted is a RoutingPolicy enum value + RoutingPolicyWeighted = "WEIGHTED" ) const ( diff --git a/vendor/github.com/aws/aws-sdk-go/service/servicediscovery/doc.go b/vendor/github.com/aws/aws-sdk-go/service/servicediscovery/doc.go index b6cf19939..0358f1217 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/servicediscovery/doc.go +++ b/vendor/github.com/aws/aws-sdk-go/service/servicediscovery/doc.go @@ -3,10 +3,10 @@ // Package servicediscovery provides the client and types for making API // requests to Amazon Route 53 Auto Naming. // -// Amazon Route 53 autonaming lets you configure public or private namespaces +// Amazon Route 53 auto naming lets you configure public or private namespaces // that your microservice applications run in. When instances of the service -// become available, you can call the autonaming API to register the instance, -// and Amazon Route 53 automatically creates up to five DNS records and an optional +// become available, you can call the auto naming API to register the instance, +// and Route 53 automatically creates up to five DNS records and an optional // health check. Clients that submit DNS queries for the service receive an // answer that contains up to eight healthy records. // diff --git a/vendor/github.com/aws/aws-sdk-go/service/servicediscovery/errors.go b/vendor/github.com/aws/aws-sdk-go/service/servicediscovery/errors.go index 71971511b..7b24d6e99 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/servicediscovery/errors.go +++ b/vendor/github.com/aws/aws-sdk-go/service/servicediscovery/errors.go @@ -7,13 +7,14 @@ const ( // ErrCodeDuplicateRequest for service response error code // "DuplicateRequest". // - // This request tried to create an object that already exists. + // The operation is already in progress. ErrCodeDuplicateRequest = "DuplicateRequest" // ErrCodeInstanceNotFound for service response error code // "InstanceNotFound". // - // No instance exists with the specified ID. + // No instance exists with the specified ID, or the instance was recently registered, + // and information about the instance hasn't propagated yet. ErrCodeInstanceNotFound = "InstanceNotFound" // ErrCodeInvalidInput for service response error code diff --git a/vendor/github.com/aws/aws-sdk-go/service/ses/api.go b/vendor/github.com/aws/aws-sdk-go/service/ses/api.go index 83b299be3..5325ba8fd 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ses/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ses/api.go @@ -6418,7 +6418,6 @@ func (c *SES) VerifyEmailIdentityWithContext(ctx aws.Context, input *VerifyEmail // // For information about adding a header using a receipt rule, see the Amazon // SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-add-header.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/AddHeaderAction type AddHeaderAction struct { _ struct{} `type:"structure"` @@ -6476,7 +6475,6 @@ func (s *AddHeaderAction) SetHeaderValue(v string) *AddHeaderAction { // Represents the body of the message. You can specify text, HTML, or both. // If you use both, then the message should display correctly in the widest // variety of email clients. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/Body type Body struct { _ struct{} `type:"structure"` @@ -6538,7 +6536,6 @@ func (s *Body) SetText(v *Content) *Body { // // For information about sending a bounce message in response to a received // email, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-bounce.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/BounceAction type BounceAction struct { _ struct{} `type:"structure"` @@ -6632,7 +6629,6 @@ func (s *BounceAction) SetTopicArn(v string) *BounceAction { // // For information about receiving email through Amazon SES, see the Amazon // SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/BouncedRecipientInfo type BouncedRecipientInfo struct { _ struct{} `type:"structure"` @@ -6710,7 +6706,6 @@ func (s *BouncedRecipientInfo) SetRecipientDsnFields(v *RecipientDsnFields) *Bou // An array that contains one or more Destinations, as well as the tags and // replacement data associated with each of those Destinations. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/BulkEmailDestination type BulkEmailDestination struct { _ struct{} `type:"structure"` @@ -6791,7 +6786,6 @@ func (s *BulkEmailDestination) SetReplacementTemplateData(v string) *BulkEmailDe } // An object that contains the response from the SendBulkTemplatedEmail operation. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/BulkEmailDestinationStatus type BulkEmailDestinationStatus struct { _ struct{} `type:"structure"` @@ -6880,7 +6874,6 @@ func (s *BulkEmailDestinationStatus) SetStatus(v string) *BulkEmailDestinationSt // Represents a request to create a receipt rule set by cloning an existing // one. You use receipt rule sets to receive email with Amazon SES. For more // information, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CloneReceiptRuleSetRequest type CloneReceiptRuleSetInput struct { _ struct{} `type:"structure"` @@ -6941,7 +6934,6 @@ func (s *CloneReceiptRuleSetInput) SetRuleSetName(v string) *CloneReceiptRuleSet } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CloneReceiptRuleSetResponse type CloneReceiptRuleSetOutput struct { _ struct{} `type:"structure"` } @@ -6962,7 +6954,6 @@ func (s CloneReceiptRuleSetOutput) GoString() string { // Event destinations, such as Amazon CloudWatch, are associated with configuration // sets, which enable you to publish email sending events. For information about // using configuration sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CloudWatchDestination type CloudWatchDestination struct { _ struct{} `type:"structure"` @@ -7017,7 +7008,6 @@ func (s *CloudWatchDestination) SetDimensionConfigurations(v []*CloudWatchDimens // // For information about publishing email sending events to Amazon CloudWatch, // see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CloudWatchDimensionConfiguration type CloudWatchDimensionConfiguration struct { _ struct{} `type:"structure"` @@ -7107,7 +7097,6 @@ func (s *CloudWatchDimensionConfiguration) SetDimensionValueSource(v string) *Cl // emails you send using Amazon SES. For more information about using configuration // sets, see Using Amazon SES Configuration Sets (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/using-configuration-sets.html) // in the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ConfigurationSet type ConfigurationSet struct { _ struct{} `type:"structure"` @@ -7156,7 +7145,6 @@ func (s *ConfigurationSet) SetName(v string) *ConfigurationSet { // By default, the text must be 7-bit ASCII, due to the constraints of the SMTP // protocol. If the text must contain any other characters, then you must also // specify a character set. Examples include UTF-8, ISO-8859-1, and Shift_JIS. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/Content type Content struct { _ struct{} `type:"structure"` @@ -7209,7 +7197,6 @@ func (s *Content) SetData(v string) *Content { // Firehose, describes an AWS service in which Amazon SES publishes the email // sending events associated with a configuration set. For information about // using configuration sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateConfigurationSetEventDestinationRequest type CreateConfigurationSetEventDestinationInput struct { _ struct{} `type:"structure"` @@ -7270,7 +7257,6 @@ func (s *CreateConfigurationSetEventDestinationInput) SetEventDestination(v *Eve } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateConfigurationSetEventDestinationResponse type CreateConfigurationSetEventDestinationOutput struct { _ struct{} `type:"structure"` } @@ -7288,7 +7274,6 @@ func (s CreateConfigurationSetEventDestinationOutput) GoString() string { // Represents a request to create a configuration set. Configuration sets enable // you to publish email sending events. For information about using configuration // sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateConfigurationSetRequest type CreateConfigurationSetInput struct { _ struct{} `type:"structure"` @@ -7333,7 +7318,6 @@ func (s *CreateConfigurationSetInput) SetConfigurationSet(v *ConfigurationSet) * } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateConfigurationSetResponse type CreateConfigurationSetOutput struct { _ struct{} `type:"structure"` } @@ -7350,7 +7334,6 @@ func (s CreateConfigurationSetOutput) GoString() string { // Represents a request to create an open and click tracking option object in // a configuration set. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateConfigurationSetTrackingOptionsRequest type CreateConfigurationSetTrackingOptionsInput struct { _ struct{} `type:"structure"` @@ -7411,7 +7394,6 @@ func (s *CreateConfigurationSetTrackingOptionsInput) SetTrackingOptions(v *Track } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateConfigurationSetTrackingOptionsResponse type CreateConfigurationSetTrackingOptionsOutput struct { _ struct{} `type:"structure"` } @@ -7427,7 +7409,6 @@ func (s CreateConfigurationSetTrackingOptionsOutput) GoString() string { } // Represents a request to create a custom verification email template. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateCustomVerificationEmailTemplateRequest type CreateCustomVerificationEmailTemplateInput struct { _ struct{} `type:"structure"` @@ -7542,7 +7523,6 @@ func (s *CreateCustomVerificationEmailTemplateInput) SetTemplateSubject(v string return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateCustomVerificationEmailTemplateOutput type CreateCustomVerificationEmailTemplateOutput struct { _ struct{} `type:"structure"` } @@ -7560,7 +7540,6 @@ func (s CreateCustomVerificationEmailTemplateOutput) GoString() string { // Represents a request to create a new IP address filter. You use IP address // filters when you receive email with Amazon SES. For more information, see // the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateReceiptFilterRequest type CreateReceiptFilterInput struct { _ struct{} `type:"structure"` @@ -7606,7 +7585,6 @@ func (s *CreateReceiptFilterInput) SetFilter(v *ReceiptFilter) *CreateReceiptFil } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateReceiptFilterResponse type CreateReceiptFilterOutput struct { _ struct{} `type:"structure"` } @@ -7624,7 +7602,6 @@ func (s CreateReceiptFilterOutput) GoString() string { // Represents a request to create a receipt rule. You use receipt rules to receive // email with Amazon SES. For more information, see the Amazon SES Developer // Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateReceiptRuleRequest type CreateReceiptRuleInput struct { _ struct{} `type:"structure"` @@ -7695,7 +7672,6 @@ func (s *CreateReceiptRuleInput) SetRuleSetName(v string) *CreateReceiptRuleInpu } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateReceiptRuleResponse type CreateReceiptRuleOutput struct { _ struct{} `type:"structure"` } @@ -7713,7 +7689,6 @@ func (s CreateReceiptRuleOutput) GoString() string { // Represents a request to create an empty receipt rule set. You use receipt // rule sets to receive email with Amazon SES. For more information, see the // Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateReceiptRuleSetRequest type CreateReceiptRuleSetInput struct { _ struct{} `type:"structure"` @@ -7760,7 +7735,6 @@ func (s *CreateReceiptRuleSetInput) SetRuleSetName(v string) *CreateReceiptRuleS } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateReceiptRuleSetResponse type CreateReceiptRuleSetOutput struct { _ struct{} `type:"structure"` } @@ -7777,7 +7751,6 @@ func (s CreateReceiptRuleSetOutput) GoString() string { // Represents a request to create an email template. For more information, see // the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateTemplateRequest type CreateTemplateInput struct { _ struct{} `type:"structure"` @@ -7822,7 +7795,6 @@ func (s *CreateTemplateInput) SetTemplate(v *Template) *CreateTemplateInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CreateTemplateResponse type CreateTemplateOutput struct { _ struct{} `type:"structure"` } @@ -7838,7 +7810,6 @@ func (s CreateTemplateOutput) GoString() string { } // Contains information about a custom verification email template. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/CustomVerificationEmailTemplate type CustomVerificationEmailTemplate struct { _ struct{} `type:"structure"` @@ -7904,7 +7875,6 @@ func (s *CustomVerificationEmailTemplate) SetTemplateSubject(v string) *CustomVe // set event destinations are associated with configuration sets, which enable // you to publish email sending events. For information about using configuration // sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteConfigurationSetEventDestinationRequest type DeleteConfigurationSetEventDestinationInput struct { _ struct{} `type:"structure"` @@ -7958,7 +7928,6 @@ func (s *DeleteConfigurationSetEventDestinationInput) SetEventDestinationName(v } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteConfigurationSetEventDestinationResponse type DeleteConfigurationSetEventDestinationOutput struct { _ struct{} `type:"structure"` } @@ -7976,7 +7945,6 @@ func (s DeleteConfigurationSetEventDestinationOutput) GoString() string { // Represents a request to delete a configuration set. Configuration sets enable // you to publish email sending events. For information about using configuration // sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteConfigurationSetRequest type DeleteConfigurationSetInput struct { _ struct{} `type:"structure"` @@ -8016,7 +7984,6 @@ func (s *DeleteConfigurationSetInput) SetConfigurationSetName(v string) *DeleteC } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteConfigurationSetResponse type DeleteConfigurationSetOutput struct { _ struct{} `type:"structure"` } @@ -8033,7 +8000,6 @@ func (s DeleteConfigurationSetOutput) GoString() string { // Represents a request to delete open and click tracking options in a configuration // set. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteConfigurationSetTrackingOptionsRequest type DeleteConfigurationSetTrackingOptionsInput struct { _ struct{} `type:"structure"` @@ -8074,7 +8040,6 @@ func (s *DeleteConfigurationSetTrackingOptionsInput) SetConfigurationSetName(v s } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteConfigurationSetTrackingOptionsResponse type DeleteConfigurationSetTrackingOptionsOutput struct { _ struct{} `type:"structure"` } @@ -8090,7 +8055,6 @@ func (s DeleteConfigurationSetTrackingOptionsOutput) GoString() string { } // Represents a request to delete an existing custom verification email template. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteCustomVerificationEmailTemplateRequest type DeleteCustomVerificationEmailTemplateInput struct { _ struct{} `type:"structure"` @@ -8129,7 +8093,6 @@ func (s *DeleteCustomVerificationEmailTemplateInput) SetTemplateName(v string) * return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteCustomVerificationEmailTemplateOutput type DeleteCustomVerificationEmailTemplateOutput struct { _ struct{} `type:"structure"` } @@ -8146,7 +8109,6 @@ func (s DeleteCustomVerificationEmailTemplateOutput) GoString() string { // Represents a request to delete one of your Amazon SES identities (an email // address or domain). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteIdentityRequest type DeleteIdentityInput struct { _ struct{} `type:"structure"` @@ -8186,7 +8148,6 @@ func (s *DeleteIdentityInput) SetIdentity(v string) *DeleteIdentityInput { } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteIdentityResponse type DeleteIdentityOutput struct { _ struct{} `type:"structure"` } @@ -8205,7 +8166,6 @@ func (s DeleteIdentityOutput) GoString() string { // Sending authorization is an Amazon SES feature that enables you to authorize // other senders to use your identities. For information, see the Amazon SES // Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteIdentityPolicyRequest type DeleteIdentityPolicyInput struct { _ struct{} `type:"structure"` @@ -8266,7 +8226,6 @@ func (s *DeleteIdentityPolicyInput) SetPolicyName(v string) *DeleteIdentityPolic } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteIdentityPolicyResponse type DeleteIdentityPolicyOutput struct { _ struct{} `type:"structure"` } @@ -8284,7 +8243,6 @@ func (s DeleteIdentityPolicyOutput) GoString() string { // Represents a request to delete an IP address filter. You use IP address filters // when you receive email with Amazon SES. For more information, see the Amazon // SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteReceiptFilterRequest type DeleteReceiptFilterInput struct { _ struct{} `type:"structure"` @@ -8324,7 +8282,6 @@ func (s *DeleteReceiptFilterInput) SetFilterName(v string) *DeleteReceiptFilterI } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteReceiptFilterResponse type DeleteReceiptFilterOutput struct { _ struct{} `type:"structure"` } @@ -8342,7 +8299,6 @@ func (s DeleteReceiptFilterOutput) GoString() string { // Represents a request to delete a receipt rule. You use receipt rules to receive // email with Amazon SES. For more information, see the Amazon SES Developer // Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteReceiptRuleRequest type DeleteReceiptRuleInput struct { _ struct{} `type:"structure"` @@ -8396,7 +8352,6 @@ func (s *DeleteReceiptRuleInput) SetRuleSetName(v string) *DeleteReceiptRuleInpu } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteReceiptRuleResponse type DeleteReceiptRuleOutput struct { _ struct{} `type:"structure"` } @@ -8414,7 +8369,6 @@ func (s DeleteReceiptRuleOutput) GoString() string { // Represents a request to delete a receipt rule set and all of the receipt // rules it contains. You use receipt rule sets to receive email with Amazon // SES. For more information, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteReceiptRuleSetRequest type DeleteReceiptRuleSetInput struct { _ struct{} `type:"structure"` @@ -8454,7 +8408,6 @@ func (s *DeleteReceiptRuleSetInput) SetRuleSetName(v string) *DeleteReceiptRuleS } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteReceiptRuleSetResponse type DeleteReceiptRuleSetOutput struct { _ struct{} `type:"structure"` } @@ -8471,7 +8424,6 @@ func (s DeleteReceiptRuleSetOutput) GoString() string { // Represents a request to delete an email template. For more information, see // the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteTemplateRequest type DeleteTemplateInput struct { _ struct{} `type:"structure"` @@ -8510,7 +8462,6 @@ func (s *DeleteTemplateInput) SetTemplateName(v string) *DeleteTemplateInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteTemplateResponse type DeleteTemplateOutput struct { _ struct{} `type:"structure"` } @@ -8527,7 +8478,6 @@ func (s DeleteTemplateOutput) GoString() string { // Represents a request to delete an email address from the list of email addresses // you have attempted to verify under your AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteVerifiedEmailAddressRequest type DeleteVerifiedEmailAddressInput struct { _ struct{} `type:"structure"` @@ -8566,7 +8516,6 @@ func (s *DeleteVerifiedEmailAddressInput) SetEmailAddress(v string) *DeleteVerif return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DeleteVerifiedEmailAddressOutput type DeleteVerifiedEmailAddressOutput struct { _ struct{} `type:"structure"` } @@ -8585,7 +8534,6 @@ func (s DeleteVerifiedEmailAddressOutput) GoString() string { // rule set that is currently active. You use receipt rule sets to receive email // with Amazon SES. For more information, see the Amazon SES Developer Guide // (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeActiveReceiptRuleSetRequest type DescribeActiveReceiptRuleSetInput struct { _ struct{} `type:"structure"` } @@ -8602,7 +8550,6 @@ func (s DescribeActiveReceiptRuleSetInput) GoString() string { // Represents the metadata and receipt rules for the receipt rule set that is // currently active. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeActiveReceiptRuleSetResponse type DescribeActiveReceiptRuleSetOutput struct { _ struct{} `type:"structure"` @@ -8639,7 +8586,6 @@ func (s *DescribeActiveReceiptRuleSetOutput) SetRules(v []*ReceiptRule) *Describ // Represents a request to return the details of a configuration set. Configuration // sets enable you to publish email sending events. For information about using // configuration sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeConfigurationSetRequest type DescribeConfigurationSetInput struct { _ struct{} `type:"structure"` @@ -8690,7 +8636,6 @@ func (s *DescribeConfigurationSetInput) SetConfigurationSetName(v string) *Descr // Represents the details of a configuration set. Configuration sets enable // you to publish email sending events. For information about using configuration // sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeConfigurationSetResponse type DescribeConfigurationSetOutput struct { _ struct{} `type:"structure"` @@ -8746,7 +8691,6 @@ func (s *DescribeConfigurationSetOutput) SetTrackingOptions(v *TrackingOptions) // Represents a request to return the details of a receipt rule. You use receipt // rules to receive email with Amazon SES. For more information, see the Amazon // SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeReceiptRuleRequest type DescribeReceiptRuleInput struct { _ struct{} `type:"structure"` @@ -8800,7 +8744,6 @@ func (s *DescribeReceiptRuleInput) SetRuleSetName(v string) *DescribeReceiptRule } // Represents the details of a receipt rule. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeReceiptRuleResponse type DescribeReceiptRuleOutput struct { _ struct{} `type:"structure"` @@ -8829,7 +8772,6 @@ func (s *DescribeReceiptRuleOutput) SetRule(v *ReceiptRule) *DescribeReceiptRule // Represents a request to return the details of a receipt rule set. You use // receipt rule sets to receive email with Amazon SES. For more information, // see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeReceiptRuleSetRequest type DescribeReceiptRuleSetInput struct { _ struct{} `type:"structure"` @@ -8869,7 +8811,6 @@ func (s *DescribeReceiptRuleSetInput) SetRuleSetName(v string) *DescribeReceiptR } // Represents the details of the specified receipt rule set. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/DescribeReceiptRuleSetResponse type DescribeReceiptRuleSetOutput struct { _ struct{} `type:"structure"` @@ -8913,7 +8854,6 @@ func (s *DescribeReceiptRuleSetOutput) SetRules(v []*ReceiptRule) *DescribeRecei // If the domain part of an address (the part after the @ sign) contains non-ASCII // characters, they must be encoded using Punycode, as described in RFC3492 // (https://tools.ietf.org/html/rfc3492.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/Destination type Destination struct { _ struct{} `type:"structure"` @@ -8966,7 +8906,6 @@ func (s *Destination) SetToAddresses(v []*string) *Destination { // to publish email sending events to Amazon CloudWatch, Amazon Kinesis Firehose, // or Amazon Simple Notification Service (Amazon SNS). For information about // using configuration sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/EventDestination type EventDestination struct { _ struct{} `type:"structure"` @@ -9086,7 +9025,6 @@ func (s *EventDestination) SetSNSDestination(v *SNSDestination) *EventDestinatio // // For information about receiving email through Amazon SES, see the Amazon // SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ExtensionField type ExtensionField struct { _ struct{} `type:"structure"` @@ -9141,7 +9079,6 @@ func (s *ExtensionField) SetValue(v string) *ExtensionField { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetAccountSendingEnabledInput type GetAccountSendingEnabledInput struct { _ struct{} `type:"structure"` } @@ -9158,7 +9095,6 @@ func (s GetAccountSendingEnabledInput) GoString() string { // Represents a request to return the email sending status for your Amazon SES // account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetAccountSendingEnabledResponse type GetAccountSendingEnabledOutput struct { _ struct{} `type:"structure"` @@ -9184,7 +9120,6 @@ func (s *GetAccountSendingEnabledOutput) SetEnabled(v bool) *GetAccountSendingEn } // Represents a request to retrieve an existing custom verification email template. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetCustomVerificationEmailTemplateRequest type GetCustomVerificationEmailTemplateInput struct { _ struct{} `type:"structure"` @@ -9224,7 +9159,6 @@ func (s *GetCustomVerificationEmailTemplateInput) SetTemplateName(v string) *Get } // The content of the custom verification email template. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetCustomVerificationEmailTemplateResponse type GetCustomVerificationEmailTemplateOutput struct { _ struct{} `type:"structure"` @@ -9300,7 +9234,6 @@ func (s *GetCustomVerificationEmailTemplateOutput) SetTemplateSubject(v string) // that are required for Easy DKIM signing, and whether Amazon SES successfully // verified that these tokens were published. For more information about Easy // DKIM, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityDkimAttributesRequest type GetIdentityDkimAttributesInput struct { _ struct{} `type:"structure"` @@ -9344,7 +9277,6 @@ func (s *GetIdentityDkimAttributesInput) SetIdentities(v []*string) *GetIdentity // domain identities, this response also contains the DKIM tokens that are required // for Easy DKIM signing, and whether Amazon SES successfully verified that // these tokens were published. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityDkimAttributesResponse type GetIdentityDkimAttributesOutput struct { _ struct{} `type:"structure"` @@ -9373,7 +9305,6 @@ func (s *GetIdentityDkimAttributesOutput) SetDkimAttributes(v map[string]*Identi // Represents a request to return the Amazon SES custom MAIL FROM attributes // for a list of identities. For information about using a custom MAIL FROM // domain, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mail-from.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityMailFromDomainAttributesRequest type GetIdentityMailFromDomainAttributesInput struct { _ struct{} `type:"structure"` @@ -9413,7 +9344,6 @@ func (s *GetIdentityMailFromDomainAttributesInput) SetIdentities(v []*string) *G } // Represents the custom MAIL FROM attributes for a list of identities. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityMailFromDomainAttributesResponse type GetIdentityMailFromDomainAttributesOutput struct { _ struct{} `type:"structure"` @@ -9442,7 +9372,6 @@ func (s *GetIdentityMailFromDomainAttributesOutput) SetMailFromDomainAttributes( // Represents a request to return the notification attributes for a list of // identities you verified with Amazon SES. For information about Amazon SES // notifications, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityNotificationAttributesRequest type GetIdentityNotificationAttributesInput struct { _ struct{} `type:"structure"` @@ -9484,7 +9413,6 @@ func (s *GetIdentityNotificationAttributesInput) SetIdentities(v []*string) *Get } // Represents the notification attributes for a list of identities. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityNotificationAttributesResponse type GetIdentityNotificationAttributesOutput struct { _ struct{} `type:"structure"` @@ -9514,7 +9442,6 @@ func (s *GetIdentityNotificationAttributesOutput) SetNotificationAttributes(v ma // for an identity. Sending authorization is an Amazon SES feature that enables // you to authorize other senders to use your identities. For information, see // the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityPoliciesRequest type GetIdentityPoliciesInput struct { _ struct{} `type:"structure"` @@ -9574,7 +9501,6 @@ func (s *GetIdentityPoliciesInput) SetPolicyNames(v []*string) *GetIdentityPolic } // Represents the requested sending authorization policies. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityPoliciesResponse type GetIdentityPoliciesOutput struct { _ struct{} `type:"structure"` @@ -9604,7 +9530,6 @@ func (s *GetIdentityPoliciesOutput) SetPolicies(v map[string]*string) *GetIdenti // of identities. For domain identities, this request also returns the verification // token. For information about verifying identities with Amazon SES, see the // Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityVerificationAttributesRequest type GetIdentityVerificationAttributesInput struct { _ struct{} `type:"structure"` @@ -9645,7 +9570,6 @@ func (s *GetIdentityVerificationAttributesInput) SetIdentities(v []*string) *Get // The Amazon SES verification status of a list of identities. For domain identities, // this response also contains the verification token. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetIdentityVerificationAttributesResponse type GetIdentityVerificationAttributesOutput struct { _ struct{} `type:"structure"` @@ -9671,7 +9595,6 @@ func (s *GetIdentityVerificationAttributesOutput) SetVerificationAttributes(v ma return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetSendQuotaInput type GetSendQuotaInput struct { _ struct{} `type:"structure"` } @@ -9688,7 +9611,6 @@ func (s GetSendQuotaInput) GoString() string { // Represents your Amazon SES daily sending quota, maximum send rate, and the // number of emails you have sent in the last 24 hours. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetSendQuotaResponse type GetSendQuotaOutput struct { _ struct{} `type:"structure"` @@ -9735,7 +9657,6 @@ func (s *GetSendQuotaOutput) SetSentLast24Hours(v float64) *GetSendQuotaOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetSendStatisticsInput type GetSendStatisticsInput struct { _ struct{} `type:"structure"` } @@ -9752,7 +9673,6 @@ func (s GetSendStatisticsInput) GoString() string { // Represents a list of data points. This list contains aggregated data from // the previous two weeks of your sending activity with Amazon SES. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetSendStatisticsResponse type GetSendStatisticsOutput struct { _ struct{} `type:"structure"` @@ -9776,7 +9696,6 @@ func (s *GetSendStatisticsOutput) SetSendDataPoints(v []*SendDataPoint) *GetSend return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetTemplateRequest type GetTemplateInput struct { _ struct{} `type:"structure"` @@ -9815,7 +9734,6 @@ func (s *GetTemplateInput) SetTemplateName(v string) *GetTemplateInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/GetTemplateResponse type GetTemplateOutput struct { _ struct{} `type:"structure"` @@ -9841,7 +9759,6 @@ func (s *GetTemplateOutput) SetTemplate(v *Template) *GetTemplateOutput { } // Represents the DKIM attributes of a verified email address or a domain. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/IdentityDkimAttributes type IdentityDkimAttributes struct { _ struct{} `type:"structure"` @@ -9901,7 +9818,6 @@ func (s *IdentityDkimAttributes) SetDkimVerificationStatus(v string) *IdentityDk // Represents the custom MAIL FROM domain attributes of a verified identity // (email address or domain). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/IdentityMailFromDomainAttributes type IdentityMailFromDomainAttributes struct { _ struct{} `type:"structure"` @@ -9965,7 +9881,6 @@ func (s *IdentityMailFromDomainAttributes) SetMailFromDomainStatus(v string) *Id // an identity has Amazon Simple Notification Service (Amazon SNS) topics set // for bounce, complaint, and/or delivery notifications, and whether feedback // forwarding is enabled for bounce and complaint notifications. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/IdentityNotificationAttributes type IdentityNotificationAttributes struct { _ struct{} `type:"structure"` @@ -10067,7 +9982,6 @@ func (s *IdentityNotificationAttributes) SetHeadersInDeliveryNotificationsEnable } // Represents the verification attributes of a single identity. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/IdentityVerificationAttributes type IdentityVerificationAttributes struct { _ struct{} `type:"structure"` @@ -10110,7 +10024,6 @@ func (s *IdentityVerificationAttributes) SetVerificationToken(v string) *Identit // configuration sets, which enable you to publish email sending events. For // information about using configuration sets, see the Amazon SES Developer // Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/KinesisFirehoseDestination type KinesisFirehoseDestination struct { _ struct{} `type:"structure"` @@ -10176,7 +10089,6 @@ func (s *KinesisFirehoseDestination) SetIAMRoleARN(v string) *KinesisFirehoseDes // // For information about using AWS Lambda actions in receipt rules, see the // Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-lambda.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/LambdaAction type LambdaAction struct { _ struct{} `type:"structure"` @@ -10252,7 +10164,6 @@ func (s *LambdaAction) SetTopicArn(v string) *LambdaAction { // AWS account. Configuration sets enable you to publish email sending events. // For information about using configuration sets, see the Amazon SES Developer // Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListConfigurationSetsRequest type ListConfigurationSetsInput struct { _ struct{} `type:"structure"` @@ -10289,7 +10200,6 @@ func (s *ListConfigurationSetsInput) SetNextToken(v string) *ListConfigurationSe // A list of configuration sets associated with your AWS account. Configuration // sets enable you to publish email sending events. For information about using // configuration sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListConfigurationSetsResponse type ListConfigurationSetsOutput struct { _ struct{} `type:"structure"` @@ -10329,7 +10239,6 @@ func (s *ListConfigurationSetsOutput) SetNextToken(v string) *ListConfigurationS // For more information about custom verification email templates, see Using // Custom Verification Email Templates (https://docs.aws.amazon.com/ses/latest/DeveloperGuide/custom-verification-emails.html) // in the Amazon SES Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListCustomVerificationEmailTemplatesRequest type ListCustomVerificationEmailTemplatesInput struct { _ struct{} `type:"structure"` @@ -10380,7 +10289,6 @@ func (s *ListCustomVerificationEmailTemplatesInput) SetNextToken(v string) *List } // A paginated list of custom verification email templates. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListCustomVerificationEmailTemplatesResponse type ListCustomVerificationEmailTemplatesOutput struct { _ struct{} `type:"structure"` @@ -10418,7 +10326,6 @@ func (s *ListCustomVerificationEmailTemplatesOutput) SetNextToken(v string) *Lis // Represents a request to return a list of all identities (email addresses // and domains) that you have attempted to verify under your AWS account, regardless // of verification status. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListIdentitiesRequest type ListIdentitiesInput struct { _ struct{} `type:"structure"` @@ -10463,7 +10370,6 @@ func (s *ListIdentitiesInput) SetNextToken(v string) *ListIdentitiesInput { // A list of all identities that you have attempted to verify under your AWS // account, regardless of verification status. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListIdentitiesResponse type ListIdentitiesOutput struct { _ struct{} `type:"structure"` @@ -10502,7 +10408,6 @@ func (s *ListIdentitiesOutput) SetNextToken(v string) *ListIdentitiesOutput { // are attached to an identity. Sending authorization is an Amazon SES feature // that enables you to authorize other senders to use your identities. For information, // see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListIdentityPoliciesRequest type ListIdentityPoliciesInput struct { _ struct{} `type:"structure"` @@ -10546,7 +10451,6 @@ func (s *ListIdentityPoliciesInput) SetIdentity(v string) *ListIdentityPoliciesI } // A list of names of sending authorization policies that apply to an identity. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListIdentityPoliciesResponse type ListIdentityPoliciesOutput struct { _ struct{} `type:"structure"` @@ -10575,7 +10479,6 @@ func (s *ListIdentityPoliciesOutput) SetPolicyNames(v []*string) *ListIdentityPo // Represents a request to list the IP address filters that exist under your // AWS account. You use IP address filters when you receive email with Amazon // SES. For more information, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListReceiptFiltersRequest type ListReceiptFiltersInput struct { _ struct{} `type:"structure"` } @@ -10591,7 +10494,6 @@ func (s ListReceiptFiltersInput) GoString() string { } // A list of IP address filters that exist under your AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListReceiptFiltersResponse type ListReceiptFiltersOutput struct { _ struct{} `type:"structure"` @@ -10619,7 +10521,6 @@ func (s *ListReceiptFiltersOutput) SetFilters(v []*ReceiptFilter) *ListReceiptFi // Represents a request to list the receipt rule sets that exist under your // AWS account. You use receipt rule sets to receive email with Amazon SES. // For more information, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListReceiptRuleSetsRequest type ListReceiptRuleSetsInput struct { _ struct{} `type:"structure"` @@ -10645,7 +10546,6 @@ func (s *ListReceiptRuleSetsInput) SetNextToken(v string) *ListReceiptRuleSetsIn } // A list of receipt rule sets that exist under your AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListReceiptRuleSetsResponse type ListReceiptRuleSetsOutput struct { _ struct{} `type:"structure"` @@ -10681,7 +10581,6 @@ func (s *ListReceiptRuleSetsOutput) SetRuleSets(v []*ReceiptRuleSetMetadata) *Li return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListTemplatesRequest type ListTemplatesInput struct { _ struct{} `type:"structure"` @@ -10718,7 +10617,6 @@ func (s *ListTemplatesInput) SetNextToken(v string) *ListTemplatesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListTemplatesResponse type ListTemplatesOutput struct { _ struct{} `type:"structure"` @@ -10754,7 +10652,6 @@ func (s *ListTemplatesOutput) SetTemplatesMetadata(v []*TemplateMetadata) *ListT return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListVerifiedEmailAddressesInput type ListVerifiedEmailAddressesInput struct { _ struct{} `type:"structure"` } @@ -10771,7 +10668,6 @@ func (s ListVerifiedEmailAddressesInput) GoString() string { // A list of email addresses that you have verified with Amazon SES under your // AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ListVerifiedEmailAddressesResponse type ListVerifiedEmailAddressesOutput struct { _ struct{} `type:"structure"` @@ -10796,7 +10692,6 @@ func (s *ListVerifiedEmailAddressesOutput) SetVerifiedEmailAddresses(v []*string } // Represents the message to be sent, composed of a subject and a body. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/Message type Message struct { _ struct{} `type:"structure"` @@ -10865,7 +10760,6 @@ func (s *Message) SetSubject(v *Content) *Message { // // For information about receiving email through Amazon SES, see the Amazon // SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/MessageDsn type MessageDsn struct { _ struct{} `type:"structure"` @@ -10941,7 +10835,6 @@ func (s *MessageDsn) SetReportingMta(v string) *MessageDsn { // Message tags, which you use with configuration sets, enable you to publish // email sending events. For information about using configuration sets, see // the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/MessageTag type MessageTag struct { _ struct{} `type:"structure"` @@ -11008,7 +10901,6 @@ func (s *MessageTag) SetValue(v string) *MessageTag { // an identity. Sending authorization is an Amazon SES feature that enables // you to authorize other senders to use your identities. For information, see // the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/sending-authorization.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/PutIdentityPolicyRequest type PutIdentityPolicyInput struct { _ struct{} `type:"structure"` @@ -11092,7 +10984,6 @@ func (s *PutIdentityPolicyInput) SetPolicyName(v string) *PutIdentityPolicyInput } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/PutIdentityPolicyResponse type PutIdentityPolicyOutput struct { _ struct{} `type:"structure"` } @@ -11108,7 +10999,6 @@ func (s PutIdentityPolicyOutput) GoString() string { } // Represents the raw data of the message. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/RawMessage type RawMessage struct { _ struct{} `type:"structure"` @@ -11171,7 +11061,6 @@ func (s *RawMessage) SetData(v []byte) *RawMessage { // // For information about setting up receipt rules, see the Amazon SES Developer // Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rules.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ReceiptAction type ReceiptAction struct { _ struct{} `type:"structure"` @@ -11305,7 +11194,6 @@ func (s *ReceiptAction) SetWorkmailAction(v *WorkmailAction) *ReceiptAction { // // For information about setting up IP address filters, see the Amazon SES Developer // Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-ip-filters.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ReceiptFilter type ReceiptFilter struct { _ struct{} `type:"structure"` @@ -11376,7 +11264,6 @@ func (s *ReceiptFilter) SetName(v string) *ReceiptFilter { // // For information about setting up IP address filters, see the Amazon SES Developer // Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-ip-filters.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ReceiptIpFilter type ReceiptIpFilter struct { _ struct{} `type:"structure"` @@ -11443,7 +11330,6 @@ func (s *ReceiptIpFilter) SetPolicy(v string) *ReceiptIpFilter { // // For information about setting up receipt rules, see the Amazon SES Developer // Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rules.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ReceiptRule type ReceiptRule struct { _ struct{} `type:"structure"` @@ -11558,7 +11444,6 @@ func (s *ReceiptRule) SetTlsPolicy(v string) *ReceiptRule { // // For information about setting up receipt rule sets, see the Amazon SES Developer // Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-receipt-rule-set.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ReceiptRuleSetMetadata type ReceiptRuleSetMetadata struct { _ struct{} `type:"structure"` @@ -11603,7 +11488,6 @@ func (s *ReceiptRuleSetMetadata) SetName(v string) *ReceiptRuleSetMetadata { // // For information about receiving email through Amazon SES, see the Amazon // SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/RecipientDsnFields type RecipientDsnFields struct { _ struct{} `type:"structure"` @@ -11730,7 +11614,6 @@ func (s *RecipientDsnFields) SetStatus(v string) *RecipientDsnFields { // Represents a request to reorder the receipt rules within a receipt rule set. // You use receipt rule sets to receive email with Amazon SES. For more information, // see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ReorderReceiptRuleSetRequest type ReorderReceiptRuleSetInput struct { _ struct{} `type:"structure"` @@ -11785,7 +11668,6 @@ func (s *ReorderReceiptRuleSetInput) SetRuleSetName(v string) *ReorderReceiptRul } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ReorderReceiptRuleSetResponse type ReorderReceiptRuleSetOutput struct { _ struct{} `type:"structure"` } @@ -11801,7 +11683,6 @@ func (s ReorderReceiptRuleSetOutput) GoString() string { } // Contains information about the reputation settings for a configuration set. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/ReputationOptions type ReputationOptions struct { _ struct{} `type:"structure"` @@ -11873,7 +11754,6 @@ func (s *ReputationOptions) SetSendingEnabled(v bool) *ReputationOptions { // // For information about specifying Amazon S3 actions in receipt rules, see // the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-s3.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/S3Action type S3Action struct { _ struct{} `type:"structure"` @@ -11990,7 +11870,6 @@ func (s *S3Action) SetTopicArn(v string) *S3Action { // // For information about using a receipt rule to publish an Amazon SNS notification, // see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-sns.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SNSAction type SNSAction struct { _ struct{} `type:"structure"` @@ -12050,7 +11929,6 @@ func (s *SNSAction) SetTopicArn(v string) *SNSAction { // Event destinations, such as Amazon SNS, are associated with configuration // sets, which enable you to publish email sending events. For information about // using configuration sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SNSDestination type SNSDestination struct { _ struct{} `type:"structure"` @@ -12094,7 +11972,6 @@ func (s *SNSDestination) SetTopicARN(v string) *SNSDestination { // Represents a request to send a bounce message to the sender of an email you // received through Amazon SES. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendBounceRequest type SendBounceInput struct { _ struct{} `type:"structure"` @@ -12213,7 +12090,6 @@ func (s *SendBounceInput) SetOriginalMessageId(v string) *SendBounceInput { } // Represents a unique message ID. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendBounceResponse type SendBounceOutput struct { _ struct{} `type:"structure"` @@ -12239,7 +12115,6 @@ func (s *SendBounceOutput) SetMessageId(v string) *SendBounceOutput { // Represents a request to send a templated email to multiple destinations using // Amazon SES. For more information, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendBulkTemplatedEmailRequest type SendBulkTemplatedEmailInput struct { _ struct{} `type:"structure"` @@ -12452,7 +12327,6 @@ func (s *SendBulkTemplatedEmailInput) SetTemplateArn(v string) *SendBulkTemplate return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendBulkTemplatedEmailResponse type SendBulkTemplatedEmailOutput struct { _ struct{} `type:"structure"` @@ -12479,7 +12353,6 @@ func (s *SendBulkTemplatedEmailOutput) SetStatus(v []*BulkEmailDestinationStatus } // Represents a request to send a custom verification email to a specified recipient. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendCustomVerificationEmailRequest type SendCustomVerificationEmailInput struct { _ struct{} `type:"structure"` @@ -12543,7 +12416,6 @@ func (s *SendCustomVerificationEmailInput) SetTemplateName(v string) *SendCustom } // The response received when attempting to send the custom verification email. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendCustomVerificationEmailResponse type SendCustomVerificationEmailOutput struct { _ struct{} `type:"structure"` @@ -12570,7 +12442,6 @@ func (s *SendCustomVerificationEmailOutput) SetMessageId(v string) *SendCustomVe // Represents sending statistics data. Each SendDataPoint contains statistics // for a 15-minute period of sending activity. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendDataPoint type SendDataPoint struct { _ struct{} `type:"structure"` @@ -12632,7 +12503,6 @@ func (s *SendDataPoint) SetTimestamp(v time.Time) *SendDataPoint { // Represents a request to send a single formatted email using Amazon SES. For // more information, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-formatted.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendEmailRequest type SendEmailInput struct { _ struct{} `type:"structure"` @@ -12817,7 +12687,6 @@ func (s *SendEmailInput) SetTags(v []*MessageTag) *SendEmailInput { } // Represents a unique message ID. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendEmailResponse type SendEmailOutput struct { _ struct{} `type:"structure"` @@ -12845,7 +12714,6 @@ func (s *SendEmailOutput) SetMessageId(v string) *SendEmailOutput { // Represents a request to send a single raw email using Amazon SES. For more // information, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-email-raw.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendRawEmailRequest type SendRawEmailInput struct { _ struct{} `type:"structure"` @@ -13038,7 +12906,6 @@ func (s *SendRawEmailInput) SetTags(v []*MessageTag) *SendRawEmailInput { } // Represents a unique message ID. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendRawEmailResponse type SendRawEmailOutput struct { _ struct{} `type:"structure"` @@ -13066,7 +12933,6 @@ func (s *SendRawEmailOutput) SetMessageId(v string) *SendRawEmailOutput { // Represents a request to send a templated email using Amazon SES. For more // information, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/send-personalized-email-api.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendTemplatedEmailRequest type SendTemplatedEmailInput struct { _ struct{} `type:"structure"` @@ -13271,7 +13137,6 @@ func (s *SendTemplatedEmailInput) SetTemplateData(v string) *SendTemplatedEmailI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SendTemplatedEmailResponse type SendTemplatedEmailOutput struct { _ struct{} `type:"structure"` @@ -13300,7 +13165,6 @@ func (s *SendTemplatedEmailOutput) SetMessageId(v string) *SendTemplatedEmailOut // Represents a request to set a receipt rule set as the active receipt rule // set. You use receipt rule sets to receive email with Amazon SES. For more // information, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetActiveReceiptRuleSetRequest type SetActiveReceiptRuleSetInput struct { _ struct{} `type:"structure"` @@ -13326,7 +13190,6 @@ func (s *SetActiveReceiptRuleSetInput) SetRuleSetName(v string) *SetActiveReceip } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetActiveReceiptRuleSetResponse type SetActiveReceiptRuleSetOutput struct { _ struct{} `type:"structure"` } @@ -13344,7 +13207,6 @@ func (s SetActiveReceiptRuleSetOutput) GoString() string { // Represents a request to enable or disable Amazon SES Easy DKIM signing for // an identity. For more information about setting up Easy DKIM, see the Amazon // SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityDkimEnabledRequest type SetIdentityDkimEnabledInput struct { _ struct{} `type:"structure"` @@ -13399,7 +13261,6 @@ func (s *SetIdentityDkimEnabledInput) SetIdentity(v string) *SetIdentityDkimEnab } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityDkimEnabledResponse type SetIdentityDkimEnabledOutput struct { _ struct{} `type:"structure"` } @@ -13417,7 +13278,6 @@ func (s SetIdentityDkimEnabledOutput) GoString() string { // Represents a request to enable or disable whether Amazon SES forwards you // bounce and complaint notifications through email. For information about email // feedback forwarding, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications-via-email.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityFeedbackForwardingEnabledRequest type SetIdentityFeedbackForwardingEnabledInput struct { _ struct{} `type:"structure"` @@ -13477,7 +13337,6 @@ func (s *SetIdentityFeedbackForwardingEnabledInput) SetIdentity(v string) *SetId } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityFeedbackForwardingEnabledResponse type SetIdentityFeedbackForwardingEnabledOutput struct { _ struct{} `type:"structure"` } @@ -13495,7 +13354,6 @@ func (s SetIdentityFeedbackForwardingEnabledOutput) GoString() string { // Represents a request to set whether Amazon SES includes the original email // headers in the Amazon SNS notifications of a specified type. For information // about notifications, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications-via-sns.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityHeadersInNotificationsEnabledRequest type SetIdentityHeadersInNotificationsEnabledInput struct { _ struct{} `type:"structure"` @@ -13570,7 +13428,6 @@ func (s *SetIdentityHeadersInNotificationsEnabledInput) SetNotificationType(v st } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityHeadersInNotificationsEnabledResponse type SetIdentityHeadersInNotificationsEnabledOutput struct { _ struct{} `type:"structure"` } @@ -13588,7 +13445,6 @@ func (s SetIdentityHeadersInNotificationsEnabledOutput) GoString() string { // Represents a request to enable or disable the Amazon SES custom MAIL FROM // domain setup for a verified identity. For information about using a custom // MAIL FROM domain, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/mail-from.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityMailFromDomainRequest type SetIdentityMailFromDomainInput struct { _ struct{} `type:"structure"` @@ -13660,7 +13516,6 @@ func (s *SetIdentityMailFromDomainInput) SetMailFromDomain(v string) *SetIdentit } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityMailFromDomainResponse type SetIdentityMailFromDomainOutput struct { _ struct{} `type:"structure"` } @@ -13679,7 +13534,6 @@ func (s SetIdentityMailFromDomainOutput) GoString() string { // will publish bounce, complaint, or delivery notifications for emails sent // with that identity as the Source. For information about Amazon SES notifications, // see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/notifications-via-sns.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityNotificationTopicRequest type SetIdentityNotificationTopicInput struct { _ struct{} `type:"structure"` @@ -13747,7 +13601,6 @@ func (s *SetIdentityNotificationTopicInput) SetSnsTopic(v string) *SetIdentityNo } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetIdentityNotificationTopicResponse type SetIdentityNotificationTopicOutput struct { _ struct{} `type:"structure"` } @@ -13765,7 +13618,6 @@ func (s SetIdentityNotificationTopicOutput) GoString() string { // Represents a request to set the position of a receipt rule in a receipt rule // set. You use receipt rule sets to receive email with Amazon SES. For more // information, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetReceiptRulePositionRequest type SetReceiptRulePositionInput struct { _ struct{} `type:"structure"` @@ -13828,7 +13680,6 @@ func (s *SetReceiptRulePositionInput) SetRuleSetName(v string) *SetReceiptRulePo } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/SetReceiptRulePositionResponse type SetReceiptRulePositionOutput struct { _ struct{} `type:"structure"` } @@ -13849,7 +13700,6 @@ func (s SetReceiptRulePositionOutput) GoString() string { // // For information about setting a stop action in a receipt rule, see the Amazon // SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-stop.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/StopAction type StopAction struct { _ struct{} `type:"structure"` @@ -13902,7 +13752,6 @@ func (s *StopAction) SetTopicArn(v string) *StopAction { // The content of the email, composed of a subject line, an HTML part, and a // text-only part. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/Template type Template struct { _ struct{} `type:"structure"` @@ -13971,7 +13820,6 @@ func (s *Template) SetTextPart(v string) *Template { } // Contains information about an email template. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/TemplateMetadata type TemplateMetadata struct { _ struct{} `type:"structure"` @@ -14004,7 +13852,6 @@ func (s *TemplateMetadata) SetName(v string) *TemplateMetadata { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/TestRenderTemplateRequest type TestRenderTemplateInput struct { _ struct{} `type:"structure"` @@ -14059,7 +13906,6 @@ func (s *TestRenderTemplateInput) SetTemplateName(v string) *TestRenderTemplateI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/TestRenderTemplateResponse type TestRenderTemplateOutput struct { _ struct{} `type:"structure"` @@ -14091,7 +13937,6 @@ func (s *TestRenderTemplateOutput) SetRenderedTemplate(v string) *TestRenderTemp // For more information, see Configuring Custom Domains to Handle Open and Click // Tracking (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/configure-custom-open-click-domains.html) // in the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/Welcome.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/TrackingOptions type TrackingOptions struct { _ struct{} `type:"structure"` @@ -14118,7 +13963,6 @@ func (s *TrackingOptions) SetCustomRedirectDomain(v string) *TrackingOptions { // Represents a request to enable or disable the email sending capabilities // for your entire Amazon SES account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateAccountSendingEnabledRequest type UpdateAccountSendingEnabledInput struct { _ struct{} `type:"structure"` @@ -14143,7 +13987,6 @@ func (s *UpdateAccountSendingEnabledInput) SetEnabled(v bool) *UpdateAccountSend return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateAccountSendingEnabledOutput type UpdateAccountSendingEnabledOutput struct { _ struct{} `type:"structure"` } @@ -14161,7 +14004,6 @@ func (s UpdateAccountSendingEnabledOutput) GoString() string { // Represents a request to update the event destination of a configuration set. // Configuration sets enable you to publish email sending events. For information // about using configuration sets, see the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/monitor-sending-activity.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateConfigurationSetEventDestinationRequest type UpdateConfigurationSetEventDestinationInput struct { _ struct{} `type:"structure"` @@ -14222,7 +14064,6 @@ func (s *UpdateConfigurationSetEventDestinationInput) SetEventDestination(v *Eve } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateConfigurationSetEventDestinationResponse type UpdateConfigurationSetEventDestinationOutput struct { _ struct{} `type:"structure"` } @@ -14239,7 +14080,6 @@ func (s UpdateConfigurationSetEventDestinationOutput) GoString() string { // Represents a request to modify the reputation metric publishing settings // for a configuration set. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateConfigurationSetReputationMetricsEnabledRequest type UpdateConfigurationSetReputationMetricsEnabledInput struct { _ struct{} `type:"structure"` @@ -14293,7 +14133,6 @@ func (s *UpdateConfigurationSetReputationMetricsEnabledInput) SetEnabled(v bool) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateConfigurationSetReputationMetricsEnabledOutput type UpdateConfigurationSetReputationMetricsEnabledOutput struct { _ struct{} `type:"structure"` } @@ -14310,7 +14149,6 @@ func (s UpdateConfigurationSetReputationMetricsEnabledOutput) GoString() string // Represents a request to enable or disable the email sending capabilities // for a specific configuration set. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateConfigurationSetSendingEnabledRequest type UpdateConfigurationSetSendingEnabledInput struct { _ struct{} `type:"structure"` @@ -14364,7 +14202,6 @@ func (s *UpdateConfigurationSetSendingEnabledInput) SetEnabled(v bool) *UpdateCo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateConfigurationSetSendingEnabledOutput type UpdateConfigurationSetSendingEnabledOutput struct { _ struct{} `type:"structure"` } @@ -14380,7 +14217,6 @@ func (s UpdateConfigurationSetSendingEnabledOutput) GoString() string { } // Represents a request to update the tracking options for a configuration set. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateConfigurationSetTrackingOptionsRequest type UpdateConfigurationSetTrackingOptionsInput struct { _ struct{} `type:"structure"` @@ -14441,7 +14277,6 @@ func (s *UpdateConfigurationSetTrackingOptionsInput) SetTrackingOptions(v *Track } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateConfigurationSetTrackingOptionsResponse type UpdateConfigurationSetTrackingOptionsOutput struct { _ struct{} `type:"structure"` } @@ -14457,7 +14292,6 @@ func (s UpdateConfigurationSetTrackingOptionsOutput) GoString() string { } // Represents a request to update an existing custom verification email template. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateCustomVerificationEmailTemplateRequest type UpdateCustomVerificationEmailTemplateInput struct { _ struct{} `type:"structure"` @@ -14547,7 +14381,6 @@ func (s *UpdateCustomVerificationEmailTemplateInput) SetTemplateSubject(v string return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateCustomVerificationEmailTemplateOutput type UpdateCustomVerificationEmailTemplateOutput struct { _ struct{} `type:"structure"` } @@ -14565,7 +14398,6 @@ func (s UpdateCustomVerificationEmailTemplateOutput) GoString() string { // Represents a request to update a receipt rule. You use receipt rules to receive // email with Amazon SES. For more information, see the Amazon SES Developer // Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-concepts.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateReceiptRuleRequest type UpdateReceiptRuleInput struct { _ struct{} `type:"structure"` @@ -14624,7 +14456,6 @@ func (s *UpdateReceiptRuleInput) SetRuleSetName(v string) *UpdateReceiptRuleInpu } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateReceiptRuleResponse type UpdateReceiptRuleOutput struct { _ struct{} `type:"structure"` } @@ -14639,7 +14470,6 @@ func (s UpdateReceiptRuleOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateTemplateRequest type UpdateTemplateInput struct { _ struct{} `type:"structure"` @@ -14684,7 +14514,6 @@ func (s *UpdateTemplateInput) SetTemplate(v *Template) *UpdateTemplateInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/UpdateTemplateResponse type UpdateTemplateOutput struct { _ struct{} `type:"structure"` } @@ -14702,7 +14531,6 @@ func (s UpdateTemplateOutput) GoString() string { // Represents a request to generate the CNAME records needed to set up Easy // DKIM with Amazon SES. For more information about setting up Easy DKIM, see // the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/easy-dkim.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyDomainDkimRequest type VerifyDomainDkimInput struct { _ struct{} `type:"structure"` @@ -14743,7 +14571,6 @@ func (s *VerifyDomainDkimInput) SetDomain(v string) *VerifyDomainDkimInput { // Returns CNAME records that you must publish to the DNS server of your domain // to set up Easy DKIM with Amazon SES. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyDomainDkimResponse type VerifyDomainDkimOutput struct { _ struct{} `type:"structure"` @@ -14783,7 +14610,6 @@ func (s *VerifyDomainDkimOutput) SetDkimTokens(v []*string) *VerifyDomainDkimOut // the TXT records that you must publish to the DNS server of your domain to // complete the verification. For information about domain verification, see // the Amazon SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-domains.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyDomainIdentityRequest type VerifyDomainIdentityInput struct { _ struct{} `type:"structure"` @@ -14824,7 +14650,6 @@ func (s *VerifyDomainIdentityInput) SetDomain(v string) *VerifyDomainIdentityInp // Returns a TXT record that you must publish to the DNS server of your domain // to complete domain verification with Amazon SES. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyDomainIdentityResponse type VerifyDomainIdentityOutput struct { _ struct{} `type:"structure"` @@ -14861,7 +14686,6 @@ func (s *VerifyDomainIdentityOutput) SetVerificationToken(v string) *VerifyDomai // Represents a request to begin email address verification with Amazon SES. // For information about email address verification, see the Amazon SES Developer // Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-email-addresses.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyEmailAddressRequest type VerifyEmailAddressInput struct { _ struct{} `type:"structure"` @@ -14900,7 +14724,6 @@ func (s *VerifyEmailAddressInput) SetEmailAddress(v string) *VerifyEmailAddressI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyEmailAddressOutput type VerifyEmailAddressOutput struct { _ struct{} `type:"structure"` } @@ -14918,7 +14741,6 @@ func (s VerifyEmailAddressOutput) GoString() string { // Represents a request to begin email address verification with Amazon SES. // For information about email address verification, see the Amazon SES Developer // Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-email-addresses.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyEmailIdentityRequest type VerifyEmailIdentityInput struct { _ struct{} `type:"structure"` @@ -14958,7 +14780,6 @@ func (s *VerifyEmailIdentityInput) SetEmailAddress(v string) *VerifyEmailIdentit } // An empty element returned on a successful request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/VerifyEmailIdentityResponse type VerifyEmailIdentityOutput struct { _ struct{} `type:"structure"` } @@ -14980,7 +14801,6 @@ func (s VerifyEmailIdentityOutput) GoString() string { // // For information using a receipt rule to call Amazon WorkMail, see the Amazon // SES Developer Guide (http://docs.aws.amazon.com/ses/latest/DeveloperGuide/receiving-email-action-workmail.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/email-2010-12-01/WorkmailAction type WorkmailAction struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/sfn/api.go b/vendor/github.com/aws/aws-sdk-go/service/sfn/api.go index c823dd0c5..f6119da2b 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/sfn/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/sfn/api.go @@ -1900,7 +1900,6 @@ func (c *SFN) UpdateStateMachineWithContext(ctx aws.Context, input *UpdateStateM } // Contains details about an activity which failed during an execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/ActivityFailedEventDetails type ActivityFailedEventDetails struct { _ struct{} `type:"structure"` @@ -1934,7 +1933,6 @@ func (s *ActivityFailedEventDetails) SetError(v string) *ActivityFailedEventDeta } // Contains details about an activity. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/ActivityListItem type ActivityListItem struct { _ struct{} `type:"structure"` @@ -1996,7 +1994,6 @@ func (s *ActivityListItem) SetName(v string) *ActivityListItem { // Contains details about an activity schedule failure which occurred during // an execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/ActivityScheduleFailedEventDetails type ActivityScheduleFailedEventDetails struct { _ struct{} `type:"structure"` @@ -2030,7 +2027,6 @@ func (s *ActivityScheduleFailedEventDetails) SetError(v string) *ActivitySchedul } // Contains details about an activity scheduled during an execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/ActivityScheduledEventDetails type ActivityScheduledEventDetails struct { _ struct{} `type:"structure"` @@ -2084,7 +2080,6 @@ func (s *ActivityScheduledEventDetails) SetTimeoutInSeconds(v int64) *ActivitySc } // Contains details about the start of an activity during an execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/ActivityStartedEventDetails type ActivityStartedEventDetails struct { _ struct{} `type:"structure"` @@ -2111,7 +2106,6 @@ func (s *ActivityStartedEventDetails) SetWorkerName(v string) *ActivityStartedEv // Contains details about an activity which successfully terminated during an // execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/ActivitySucceededEventDetails type ActivitySucceededEventDetails struct { _ struct{} `type:"structure"` @@ -2136,7 +2130,6 @@ func (s *ActivitySucceededEventDetails) SetOutput(v string) *ActivitySucceededEv } // Contains details about an activity timeout which occurred during an execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/ActivityTimedOutEventDetails type ActivityTimedOutEventDetails struct { _ struct{} `type:"structure"` @@ -2169,7 +2162,6 @@ func (s *ActivityTimedOutEventDetails) SetError(v string) *ActivityTimedOutEvent return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/CreateActivityInput type CreateActivityInput struct { _ struct{} `type:"structure"` @@ -2226,7 +2218,6 @@ func (s *CreateActivityInput) SetName(v string) *CreateActivityInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/CreateActivityOutput type CreateActivityOutput struct { _ struct{} `type:"structure"` @@ -2263,7 +2254,6 @@ func (s *CreateActivityOutput) SetCreationDate(v time.Time) *CreateActivityOutpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/CreateStateMachineInput type CreateStateMachineInput struct { _ struct{} `type:"structure"` @@ -2354,7 +2344,6 @@ func (s *CreateStateMachineInput) SetRoleArn(v string) *CreateStateMachineInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/CreateStateMachineOutput type CreateStateMachineOutput struct { _ struct{} `type:"structure"` @@ -2391,7 +2380,6 @@ func (s *CreateStateMachineOutput) SetStateMachineArn(v string) *CreateStateMach return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/DeleteActivityInput type DeleteActivityInput struct { _ struct{} `type:"structure"` @@ -2433,7 +2421,6 @@ func (s *DeleteActivityInput) SetActivityArn(v string) *DeleteActivityInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/DeleteActivityOutput type DeleteActivityOutput struct { _ struct{} `type:"structure"` } @@ -2448,7 +2435,6 @@ func (s DeleteActivityOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/DeleteStateMachineInput type DeleteStateMachineInput struct { _ struct{} `type:"structure"` @@ -2490,7 +2476,6 @@ func (s *DeleteStateMachineInput) SetStateMachineArn(v string) *DeleteStateMachi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/DeleteStateMachineOutput type DeleteStateMachineOutput struct { _ struct{} `type:"structure"` } @@ -2505,7 +2490,6 @@ func (s DeleteStateMachineOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/DescribeActivityInput type DescribeActivityInput struct { _ struct{} `type:"structure"` @@ -2547,7 +2531,6 @@ func (s *DescribeActivityInput) SetActivityArn(v string) *DescribeActivityInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/DescribeActivityOutput type DescribeActivityOutput struct { _ struct{} `type:"structure"` @@ -2607,7 +2590,6 @@ func (s *DescribeActivityOutput) SetName(v string) *DescribeActivityOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/DescribeExecutionInput type DescribeExecutionInput struct { _ struct{} `type:"structure"` @@ -2649,7 +2631,6 @@ func (s *DescribeExecutionInput) SetExecutionArn(v string) *DescribeExecutionInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/DescribeExecutionOutput type DescribeExecutionOutput struct { _ struct{} `type:"structure"` @@ -2761,7 +2742,6 @@ func (s *DescribeExecutionOutput) SetStopDate(v time.Time) *DescribeExecutionOut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/DescribeStateMachineForExecutionInput type DescribeStateMachineForExecutionInput struct { _ struct{} `type:"structure"` @@ -2804,7 +2784,6 @@ func (s *DescribeStateMachineForExecutionInput) SetExecutionArn(v string) *Descr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/DescribeStateMachineForExecutionOutput type DescribeStateMachineForExecutionOutput struct { _ struct{} `type:"structure"` @@ -2876,7 +2855,6 @@ func (s *DescribeStateMachineForExecutionOutput) SetUpdateDate(v time.Time) *Des return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/DescribeStateMachineInput type DescribeStateMachineInput struct { _ struct{} `type:"structure"` @@ -2918,7 +2896,6 @@ func (s *DescribeStateMachineInput) SetStateMachineArn(v string) *DescribeStateM return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/DescribeStateMachineOutput type DescribeStateMachineOutput struct { _ struct{} `type:"structure"` @@ -3012,7 +2989,6 @@ func (s *DescribeStateMachineOutput) SetStatus(v string) *DescribeStateMachineOu } // Contains details about an abort of an execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/ExecutionAbortedEventDetails type ExecutionAbortedEventDetails struct { _ struct{} `type:"structure"` @@ -3046,7 +3022,6 @@ func (s *ExecutionAbortedEventDetails) SetError(v string) *ExecutionAbortedEvent } // Contains details about an execution failure event. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/ExecutionFailedEventDetails type ExecutionFailedEventDetails struct { _ struct{} `type:"structure"` @@ -3080,7 +3055,6 @@ func (s *ExecutionFailedEventDetails) SetError(v string) *ExecutionFailedEventDe } // Contains details about an execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/ExecutionListItem type ExecutionListItem struct { _ struct{} `type:"structure"` @@ -3172,7 +3146,6 @@ func (s *ExecutionListItem) SetStopDate(v time.Time) *ExecutionListItem { } // Contains details about the start of the execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/ExecutionStartedEventDetails type ExecutionStartedEventDetails struct { _ struct{} `type:"structure"` @@ -3207,7 +3180,6 @@ func (s *ExecutionStartedEventDetails) SetRoleArn(v string) *ExecutionStartedEve } // Contains details about the successful termination of the execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/ExecutionSucceededEventDetails type ExecutionSucceededEventDetails struct { _ struct{} `type:"structure"` @@ -3232,7 +3204,6 @@ func (s *ExecutionSucceededEventDetails) SetOutput(v string) *ExecutionSucceeded } // Contains details about the execution timeout which occurred during the execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/ExecutionTimedOutEventDetails type ExecutionTimedOutEventDetails struct { _ struct{} `type:"structure"` @@ -3265,7 +3236,6 @@ func (s *ExecutionTimedOutEventDetails) SetError(v string) *ExecutionTimedOutEve return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/GetActivityTaskInput type GetActivityTaskInput struct { _ struct{} `type:"structure"` @@ -3322,7 +3292,6 @@ func (s *GetActivityTaskInput) SetWorkerName(v string) *GetActivityTaskInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/GetActivityTaskOutput type GetActivityTaskOutput struct { _ struct{} `type:"structure"` @@ -3357,7 +3326,6 @@ func (s *GetActivityTaskOutput) SetTaskToken(v string) *GetActivityTaskOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/GetExecutionHistoryInput type GetExecutionHistoryInput struct { _ struct{} `type:"structure"` @@ -3439,7 +3407,6 @@ func (s *GetExecutionHistoryInput) SetReverseOrder(v bool) *GetExecutionHistoryI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/GetExecutionHistoryOutput type GetExecutionHistoryOutput struct { _ struct{} `type:"structure"` @@ -3480,7 +3447,6 @@ func (s *GetExecutionHistoryOutput) SetNextToken(v string) *GetExecutionHistoryO } // Contains details about the events of an execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/HistoryEvent type HistoryEvent struct { _ struct{} `type:"structure"` @@ -3715,7 +3681,6 @@ func (s *HistoryEvent) SetType(v string) *HistoryEvent { } // Contains details about a lambda function which failed during an execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/LambdaFunctionFailedEventDetails type LambdaFunctionFailedEventDetails struct { _ struct{} `type:"structure"` @@ -3750,7 +3715,6 @@ func (s *LambdaFunctionFailedEventDetails) SetError(v string) *LambdaFunctionFai // Contains details about a failed lambda function schedule event which occurred // during an execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/LambdaFunctionScheduleFailedEventDetails type LambdaFunctionScheduleFailedEventDetails struct { _ struct{} `type:"structure"` @@ -3784,7 +3748,6 @@ func (s *LambdaFunctionScheduleFailedEventDetails) SetError(v string) *LambdaFun } // Contains details about a lambda function scheduled during an execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/LambdaFunctionScheduledEventDetails type LambdaFunctionScheduledEventDetails struct { _ struct{} `type:"structure"` @@ -3830,7 +3793,6 @@ func (s *LambdaFunctionScheduledEventDetails) SetTimeoutInSeconds(v int64) *Lamb // Contains details about a lambda function which failed to start during an // execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/LambdaFunctionStartFailedEventDetails type LambdaFunctionStartFailedEventDetails struct { _ struct{} `type:"structure"` @@ -3865,7 +3827,6 @@ func (s *LambdaFunctionStartFailedEventDetails) SetError(v string) *LambdaFuncti // Contains details about a lambda function which successfully terminated during // an execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/LambdaFunctionSucceededEventDetails type LambdaFunctionSucceededEventDetails struct { _ struct{} `type:"structure"` @@ -3891,7 +3852,6 @@ func (s *LambdaFunctionSucceededEventDetails) SetOutput(v string) *LambdaFunctio // Contains details about a lambda function timeout which occurred during an // execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/LambdaFunctionTimedOutEventDetails type LambdaFunctionTimedOutEventDetails struct { _ struct{} `type:"structure"` @@ -3924,7 +3884,6 @@ func (s *LambdaFunctionTimedOutEventDetails) SetError(v string) *LambdaFunctionT return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/ListActivitiesInput type ListActivitiesInput struct { _ struct{} `type:"structure"` @@ -3980,7 +3939,6 @@ func (s *ListActivitiesInput) SetNextToken(v string) *ListActivitiesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/ListActivitiesOutput type ListActivitiesOutput struct { _ struct{} `type:"structure"` @@ -4020,7 +3978,6 @@ func (s *ListActivitiesOutput) SetNextToken(v string) *ListActivitiesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/ListExecutionsInput type ListExecutionsInput struct { _ struct{} `type:"structure"` @@ -4103,7 +4060,6 @@ func (s *ListExecutionsInput) SetStatusFilter(v string) *ListExecutionsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/ListExecutionsOutput type ListExecutionsOutput struct { _ struct{} `type:"structure"` @@ -4143,7 +4099,6 @@ func (s *ListExecutionsOutput) SetNextToken(v string) *ListExecutionsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/ListStateMachinesInput type ListStateMachinesInput struct { _ struct{} `type:"structure"` @@ -4199,7 +4154,6 @@ func (s *ListStateMachinesInput) SetNextToken(v string) *ListStateMachinesInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/ListStateMachinesOutput type ListStateMachinesOutput struct { _ struct{} `type:"structure"` @@ -4237,7 +4191,6 @@ func (s *ListStateMachinesOutput) SetStateMachines(v []*StateMachineListItem) *L return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/SendTaskFailureInput type SendTaskFailureInput struct { _ struct{} `type:"structure"` @@ -4298,7 +4251,6 @@ func (s *SendTaskFailureInput) SetTaskToken(v string) *SendTaskFailureInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/SendTaskFailureOutput type SendTaskFailureOutput struct { _ struct{} `type:"structure"` } @@ -4313,7 +4265,6 @@ func (s SendTaskFailureOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/SendTaskHeartbeatInput type SendTaskHeartbeatInput struct { _ struct{} `type:"structure"` @@ -4356,7 +4307,6 @@ func (s *SendTaskHeartbeatInput) SetTaskToken(v string) *SendTaskHeartbeatInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/SendTaskHeartbeatOutput type SendTaskHeartbeatOutput struct { _ struct{} `type:"structure"` } @@ -4371,7 +4321,6 @@ func (s SendTaskHeartbeatOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/SendTaskSuccessInput type SendTaskSuccessInput struct { _ struct{} `type:"structure"` @@ -4428,7 +4377,6 @@ func (s *SendTaskSuccessInput) SetTaskToken(v string) *SendTaskSuccessInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/SendTaskSuccessOutput type SendTaskSuccessOutput struct { _ struct{} `type:"structure"` } @@ -4443,7 +4391,6 @@ func (s SendTaskSuccessOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/StartExecutionInput type StartExecutionInput struct { _ struct{} `type:"structure"` @@ -4540,7 +4487,6 @@ func (s *StartExecutionInput) SetStateMachineArn(v string) *StartExecutionInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/StartExecutionOutput type StartExecutionOutput struct { _ struct{} `type:"structure"` @@ -4578,7 +4524,6 @@ func (s *StartExecutionOutput) SetStartDate(v time.Time) *StartExecutionOutput { } // Contains details about a state entered during an execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/StateEnteredEventDetails type StateEnteredEventDetails struct { _ struct{} `type:"structure"` @@ -4614,7 +4559,6 @@ func (s *StateEnteredEventDetails) SetName(v string) *StateEnteredEventDetails { } // Contains details about an exit from a state during an execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/StateExitedEventDetails type StateExitedEventDetails struct { _ struct{} `type:"structure"` @@ -4662,7 +4606,6 @@ func (s *StateExitedEventDetails) SetOutput(v string) *StateExitedEventDetails { } // Contains details about the state machine. -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/StateMachineListItem type StateMachineListItem struct { _ struct{} `type:"structure"` @@ -4722,7 +4665,6 @@ func (s *StateMachineListItem) SetStateMachineArn(v string) *StateMachineListIte return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/StopExecutionInput type StopExecutionInput struct { _ struct{} `type:"structure"` @@ -4782,7 +4724,6 @@ func (s *StopExecutionInput) SetExecutionArn(v string) *StopExecutionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/StopExecutionOutput type StopExecutionOutput struct { _ struct{} `type:"structure"` @@ -4808,7 +4749,6 @@ func (s *StopExecutionOutput) SetStopDate(v time.Time) *StopExecutionOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/UpdateStateMachineInput type UpdateStateMachineInput struct { _ struct{} `type:"structure"` @@ -4874,7 +4814,6 @@ func (s *UpdateStateMachineInput) SetStateMachineArn(v string) *UpdateStateMachi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/states-2016-11-23/UpdateStateMachineOutput type UpdateStateMachineOutput struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/sns/api.go b/vendor/github.com/aws/aws-sdk-go/service/sns/api.go index 8db14553f..8f658a430 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/sns/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/sns/api.go @@ -3087,7 +3087,6 @@ func (c *SNS) UnsubscribeWithContext(ctx aws.Context, input *UnsubscribeInput, o return out, req.Send() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/AddPermissionInput type AddPermissionInput struct { _ struct{} `type:"structure"` @@ -3172,7 +3171,6 @@ func (s *AddPermissionInput) SetTopicArn(v string) *AddPermissionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/AddPermissionOutput type AddPermissionOutput struct { _ struct{} `type:"structure"` } @@ -3188,7 +3186,6 @@ func (s AddPermissionOutput) GoString() string { } // The input for the CheckIfPhoneNumberIsOptedOut action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/CheckIfPhoneNumberIsOptedOutInput type CheckIfPhoneNumberIsOptedOutInput struct { _ struct{} `type:"structure"` @@ -3228,7 +3225,6 @@ func (s *CheckIfPhoneNumberIsOptedOutInput) SetPhoneNumber(v string) *CheckIfPho } // The response from the CheckIfPhoneNumberIsOptedOut action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/CheckIfPhoneNumberIsOptedOutResponse type CheckIfPhoneNumberIsOptedOutOutput struct { _ struct{} `type:"structure"` @@ -3259,7 +3255,6 @@ func (s *CheckIfPhoneNumberIsOptedOutOutput) SetIsOptedOut(v bool) *CheckIfPhone } // Input for ConfirmSubscription action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/ConfirmSubscriptionInput type ConfirmSubscriptionInput struct { _ struct{} `type:"structure"` @@ -3325,7 +3320,6 @@ func (s *ConfirmSubscriptionInput) SetTopicArn(v string) *ConfirmSubscriptionInp } // Response for ConfirmSubscriptions action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/ConfirmSubscriptionResponse type ConfirmSubscriptionOutput struct { _ struct{} `type:"structure"` @@ -3350,7 +3344,6 @@ func (s *ConfirmSubscriptionOutput) SetSubscriptionArn(v string) *ConfirmSubscri } // Input for CreatePlatformApplication action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/CreatePlatformApplicationInput type CreatePlatformApplicationInput struct { _ struct{} `type:"structure"` @@ -3421,7 +3414,6 @@ func (s *CreatePlatformApplicationInput) SetPlatform(v string) *CreatePlatformAp } // Response from CreatePlatformApplication action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/CreatePlatformApplicationResponse type CreatePlatformApplicationOutput struct { _ struct{} `type:"structure"` @@ -3446,7 +3438,6 @@ func (s *CreatePlatformApplicationOutput) SetPlatformApplicationArn(v string) *C } // Input for CreatePlatformEndpoint action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/CreatePlatformEndpointInput type CreatePlatformEndpointInput struct { _ struct{} `type:"structure"` @@ -3524,7 +3515,6 @@ func (s *CreatePlatformEndpointInput) SetToken(v string) *CreatePlatformEndpoint } // Response from CreateEndpoint action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/CreateEndpointResponse type CreatePlatformEndpointOutput struct { _ struct{} `type:"structure"` @@ -3549,7 +3539,6 @@ func (s *CreatePlatformEndpointOutput) SetEndpointArn(v string) *CreatePlatformE } // Input for CreateTopic action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/CreateTopicInput type CreateTopicInput struct { _ struct{} `type:"structure"` @@ -3593,7 +3582,6 @@ func (s *CreateTopicInput) SetName(v string) *CreateTopicInput { } // Response from CreateTopic action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/CreateTopicResponse type CreateTopicOutput struct { _ struct{} `type:"structure"` @@ -3618,7 +3606,6 @@ func (s *CreateTopicOutput) SetTopicArn(v string) *CreateTopicOutput { } // Input for DeleteEndpoint action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/DeleteEndpointInput type DeleteEndpointInput struct { _ struct{} `type:"structure"` @@ -3657,7 +3644,6 @@ func (s *DeleteEndpointInput) SetEndpointArn(v string) *DeleteEndpointInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/DeleteEndpointOutput type DeleteEndpointOutput struct { _ struct{} `type:"structure"` } @@ -3673,7 +3659,6 @@ func (s DeleteEndpointOutput) GoString() string { } // Input for DeletePlatformApplication action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/DeletePlatformApplicationInput type DeletePlatformApplicationInput struct { _ struct{} `type:"structure"` @@ -3712,7 +3697,6 @@ func (s *DeletePlatformApplicationInput) SetPlatformApplicationArn(v string) *De return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/DeletePlatformApplicationOutput type DeletePlatformApplicationOutput struct { _ struct{} `type:"structure"` } @@ -3727,7 +3711,6 @@ func (s DeletePlatformApplicationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/DeleteTopicInput type DeleteTopicInput struct { _ struct{} `type:"structure"` @@ -3766,7 +3749,6 @@ func (s *DeleteTopicInput) SetTopicArn(v string) *DeleteTopicInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/DeleteTopicOutput type DeleteTopicOutput struct { _ struct{} `type:"structure"` } @@ -3782,7 +3764,6 @@ func (s DeleteTopicOutput) GoString() string { } // Endpoint for mobile app and device. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/Endpoint type Endpoint struct { _ struct{} `type:"structure"` @@ -3816,7 +3797,6 @@ func (s *Endpoint) SetEndpointArn(v string) *Endpoint { } // Input for GetEndpointAttributes action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/GetEndpointAttributesInput type GetEndpointAttributesInput struct { _ struct{} `type:"structure"` @@ -3856,7 +3836,6 @@ func (s *GetEndpointAttributesInput) SetEndpointArn(v string) *GetEndpointAttrib } // Response from GetEndpointAttributes of the EndpointArn. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/GetEndpointAttributesResponse type GetEndpointAttributesOutput struct { _ struct{} `type:"structure"` @@ -3894,7 +3873,6 @@ func (s *GetEndpointAttributesOutput) SetAttributes(v map[string]*string) *GetEn } // Input for GetPlatformApplicationAttributes action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/GetPlatformApplicationAttributesInput type GetPlatformApplicationAttributesInput struct { _ struct{} `type:"structure"` @@ -3934,7 +3912,6 @@ func (s *GetPlatformApplicationAttributesInput) SetPlatformApplicationArn(v stri } // Response for GetPlatformApplicationAttributes action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/GetPlatformApplicationAttributesResponse type GetPlatformApplicationAttributesOutput struct { _ struct{} `type:"structure"` @@ -3972,7 +3949,6 @@ func (s *GetPlatformApplicationAttributesOutput) SetAttributes(v map[string]*str } // The input for the GetSMSAttributes request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/GetSMSAttributesInput type GetSMSAttributesInput struct { _ struct{} `type:"structure"` @@ -4002,7 +3978,6 @@ func (s *GetSMSAttributesInput) SetAttributes(v []*string) *GetSMSAttributesInpu } // The response from the GetSMSAttributes request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/GetSMSAttributesResponse type GetSMSAttributesOutput struct { _ struct{} `type:"structure"` @@ -4027,7 +4002,6 @@ func (s *GetSMSAttributesOutput) SetAttributes(v map[string]*string) *GetSMSAttr } // Input for GetSubscriptionAttributes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/GetSubscriptionAttributesInput type GetSubscriptionAttributesInput struct { _ struct{} `type:"structure"` @@ -4067,7 +4041,6 @@ func (s *GetSubscriptionAttributesInput) SetSubscriptionArn(v string) *GetSubscr } // Response for GetSubscriptionAttributes action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/GetSubscriptionAttributesResponse type GetSubscriptionAttributesOutput struct { _ struct{} `type:"structure"` @@ -4109,7 +4082,6 @@ func (s *GetSubscriptionAttributesOutput) SetAttributes(v map[string]*string) *G } // Input for GetTopicAttributes action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/GetTopicAttributesInput type GetTopicAttributesInput struct { _ struct{} `type:"structure"` @@ -4149,7 +4121,6 @@ func (s *GetTopicAttributesInput) SetTopicArn(v string) *GetTopicAttributesInput } // Response for GetTopicAttributes action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/GetTopicAttributesResponse type GetTopicAttributesOutput struct { _ struct{} `type:"structure"` @@ -4197,7 +4168,6 @@ func (s *GetTopicAttributesOutput) SetAttributes(v map[string]*string) *GetTopic } // Input for ListEndpointsByPlatformApplication action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/ListEndpointsByPlatformApplicationInput type ListEndpointsByPlatformApplicationInput struct { _ struct{} `type:"structure"` @@ -4248,7 +4218,6 @@ func (s *ListEndpointsByPlatformApplicationInput) SetPlatformApplicationArn(v st } // Response for ListEndpointsByPlatformApplication action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/ListEndpointsByPlatformApplicationResponse type ListEndpointsByPlatformApplicationOutput struct { _ struct{} `type:"structure"` @@ -4283,7 +4252,6 @@ func (s *ListEndpointsByPlatformApplicationOutput) SetNextToken(v string) *ListE } // The input for the ListPhoneNumbersOptedOut action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/ListPhoneNumbersOptedOutInput type ListPhoneNumbersOptedOutInput struct { _ struct{} `type:"structure"` @@ -4310,7 +4278,6 @@ func (s *ListPhoneNumbersOptedOutInput) SetNextToken(v string) *ListPhoneNumbers } // The response from the ListPhoneNumbersOptedOut action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/ListPhoneNumbersOptedOutResponse type ListPhoneNumbersOptedOutOutput struct { _ struct{} `type:"structure"` @@ -4346,7 +4313,6 @@ func (s *ListPhoneNumbersOptedOutOutput) SetPhoneNumbers(v []*string) *ListPhone } // Input for ListPlatformApplications action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/ListPlatformApplicationsInput type ListPlatformApplicationsInput struct { _ struct{} `type:"structure"` @@ -4372,7 +4338,6 @@ func (s *ListPlatformApplicationsInput) SetNextToken(v string) *ListPlatformAppl } // Response for ListPlatformApplications action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/ListPlatformApplicationsResponse type ListPlatformApplicationsOutput struct { _ struct{} `type:"structure"` @@ -4407,7 +4372,6 @@ func (s *ListPlatformApplicationsOutput) SetPlatformApplications(v []*PlatformAp } // Input for ListSubscriptionsByTopic action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/ListSubscriptionsByTopicInput type ListSubscriptionsByTopicInput struct { _ struct{} `type:"structure"` @@ -4456,7 +4420,6 @@ func (s *ListSubscriptionsByTopicInput) SetTopicArn(v string) *ListSubscriptions } // Response for ListSubscriptionsByTopic action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/ListSubscriptionsByTopicResponse type ListSubscriptionsByTopicOutput struct { _ struct{} `type:"structure"` @@ -4491,7 +4454,6 @@ func (s *ListSubscriptionsByTopicOutput) SetSubscriptions(v []*Subscription) *Li } // Input for ListSubscriptions action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/ListSubscriptionsInput type ListSubscriptionsInput struct { _ struct{} `type:"structure"` @@ -4516,7 +4478,6 @@ func (s *ListSubscriptionsInput) SetNextToken(v string) *ListSubscriptionsInput } // Response for ListSubscriptions action -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/ListSubscriptionsResponse type ListSubscriptionsOutput struct { _ struct{} `type:"structure"` @@ -4550,7 +4511,6 @@ func (s *ListSubscriptionsOutput) SetSubscriptions(v []*Subscription) *ListSubsc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/ListTopicsInput type ListTopicsInput struct { _ struct{} `type:"structure"` @@ -4575,7 +4535,6 @@ func (s *ListTopicsInput) SetNextToken(v string) *ListTopicsInput { } // Response for ListTopics action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/ListTopicsResponse type ListTopicsOutput struct { _ struct{} `type:"structure"` @@ -4618,7 +4577,6 @@ func (s *ListTopicsOutput) SetTopics(v []*Topic) *ListTopicsOutput { // name, type, and value, are included in the message size restriction, which // is currently 256 KB (262,144 bytes). For more information, see Using Amazon // SNS Message Attributes (http://docs.aws.amazon.com/sns/latest/dg/SNSMessageAttributes.html). -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/MessageAttributeValue type MessageAttributeValue struct { _ struct{} `type:"structure"` @@ -4681,7 +4639,6 @@ func (s *MessageAttributeValue) SetStringValue(v string) *MessageAttributeValue } // Input for the OptInPhoneNumber action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/OptInPhoneNumberInput type OptInPhoneNumberInput struct { _ struct{} `type:"structure"` @@ -4721,7 +4678,6 @@ func (s *OptInPhoneNumberInput) SetPhoneNumber(v string) *OptInPhoneNumberInput } // The response for the OptInPhoneNumber action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/OptInPhoneNumberResponse type OptInPhoneNumberOutput struct { _ struct{} `type:"structure"` } @@ -4737,7 +4693,6 @@ func (s OptInPhoneNumberOutput) GoString() string { } // Platform application object. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/PlatformApplication type PlatformApplication struct { _ struct{} `type:"structure"` @@ -4771,7 +4726,6 @@ func (s *PlatformApplication) SetPlatformApplicationArn(v string) *PlatformAppli } // Input for Publish action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/PublishInput type PublishInput struct { _ struct{} `type:"structure"` @@ -4943,7 +4897,6 @@ func (s *PublishInput) SetTopicArn(v string) *PublishInput { } // Response for Publish action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/PublishResponse type PublishOutput struct { _ struct{} `type:"structure"` @@ -4970,7 +4923,6 @@ func (s *PublishOutput) SetMessageId(v string) *PublishOutput { } // Input for RemovePermission action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/RemovePermissionInput type RemovePermissionInput struct { _ struct{} `type:"structure"` @@ -5023,7 +4975,6 @@ func (s *RemovePermissionInput) SetTopicArn(v string) *RemovePermissionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/RemovePermissionOutput type RemovePermissionOutput struct { _ struct{} `type:"structure"` } @@ -5039,7 +4990,6 @@ func (s RemovePermissionOutput) GoString() string { } // Input for SetEndpointAttributes action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/SetEndpointAttributesInput type SetEndpointAttributesInput struct { _ struct{} `type:"structure"` @@ -5105,7 +5055,6 @@ func (s *SetEndpointAttributesInput) SetEndpointArn(v string) *SetEndpointAttrib return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/SetEndpointAttributesOutput type SetEndpointAttributesOutput struct { _ struct{} `type:"structure"` } @@ -5121,7 +5070,6 @@ func (s SetEndpointAttributesOutput) GoString() string { } // Input for SetPlatformApplicationAttributes action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/SetPlatformApplicationAttributesInput type SetPlatformApplicationAttributesInput struct { _ struct{} `type:"structure"` @@ -5207,7 +5155,6 @@ func (s *SetPlatformApplicationAttributesInput) SetPlatformApplicationArn(v stri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/SetPlatformApplicationAttributesOutput type SetPlatformApplicationAttributesOutput struct { _ struct{} `type:"structure"` } @@ -5223,7 +5170,6 @@ func (s SetPlatformApplicationAttributesOutput) GoString() string { } // The input for the SetSMSAttributes action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/SetSMSAttributesInput type SetSMSAttributesInput struct { _ struct{} `type:"structure"` @@ -5334,7 +5280,6 @@ func (s *SetSMSAttributesInput) SetAttributes(v map[string]*string) *SetSMSAttri } // The response for the SetSMSAttributes action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/SetSMSAttributesResponse type SetSMSAttributesOutput struct { _ struct{} `type:"structure"` } @@ -5350,7 +5295,6 @@ func (s SetSMSAttributesOutput) GoString() string { } // Input for SetSubscriptionAttributes action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/SetSubscriptionAttributesInput type SetSubscriptionAttributesInput struct { _ struct{} `type:"structure"` @@ -5415,7 +5359,6 @@ func (s *SetSubscriptionAttributesInput) SetSubscriptionArn(v string) *SetSubscr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/SetSubscriptionAttributesOutput type SetSubscriptionAttributesOutput struct { _ struct{} `type:"structure"` } @@ -5431,7 +5374,6 @@ func (s SetSubscriptionAttributesOutput) GoString() string { } // Input for SetTopicAttributes action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/SetTopicAttributesInput type SetTopicAttributesInput struct { _ struct{} `type:"structure"` @@ -5496,7 +5438,6 @@ func (s *SetTopicAttributesInput) SetTopicArn(v string) *SetTopicAttributesInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/SetTopicAttributesOutput type SetTopicAttributesOutput struct { _ struct{} `type:"structure"` } @@ -5512,7 +5453,6 @@ func (s SetTopicAttributesOutput) GoString() string { } // Input for Subscribe action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/SubscribeInput type SubscribeInput struct { _ struct{} `type:"structure"` @@ -5610,7 +5550,6 @@ func (s *SubscribeInput) SetTopicArn(v string) *SubscribeInput { } // Response for Subscribe action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/SubscribeResponse type SubscribeOutput struct { _ struct{} `type:"structure"` @@ -5636,7 +5575,6 @@ func (s *SubscribeOutput) SetSubscriptionArn(v string) *SubscribeOutput { } // A wrapper type for the attributes of an Amazon SNS subscription. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/Subscription type Subscription struct { _ struct{} `type:"structure"` @@ -5698,7 +5636,6 @@ func (s *Subscription) SetTopicArn(v string) *Subscription { // A wrapper type for the topic's Amazon Resource Name (ARN). To retrieve a // topic's attributes, use GetTopicAttributes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/Topic type Topic struct { _ struct{} `type:"structure"` @@ -5723,7 +5660,6 @@ func (s *Topic) SetTopicArn(v string) *Topic { } // Input for Unsubscribe action. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/UnsubscribeInput type UnsubscribeInput struct { _ struct{} `type:"structure"` @@ -5762,7 +5698,6 @@ func (s *UnsubscribeInput) SetSubscriptionArn(v string) *UnsubscribeInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sns-2010-03-31/UnsubscribeOutput type UnsubscribeOutput struct { _ struct{} `type:"structure"` } diff --git a/vendor/github.com/aws/aws-sdk-go/service/sqs/api.go b/vendor/github.com/aws/aws-sdk-go/service/sqs/api.go index 634a44571..c6997da87 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/sqs/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/sqs/api.go @@ -1978,7 +1978,6 @@ func (c *SQS) UntagQueueWithContext(ctx aws.Context, input *UntagQueueInput, opt return out, req.Send() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/AddPermissionRequest type AddPermissionInput struct { _ struct{} `type:"structure"` @@ -2089,7 +2088,6 @@ func (s *AddPermissionInput) SetQueueUrl(v string) *AddPermissionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/AddPermissionOutput type AddPermissionOutput struct { _ struct{} `type:"structure"` } @@ -2106,7 +2104,6 @@ func (s AddPermissionOutput) GoString() string { // This is used in the responses of batch API to give a detailed description // of the result of an action on each entry in the request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/BatchResultErrorEntry type BatchResultErrorEntry struct { _ struct{} `type:"structure"` @@ -2163,7 +2160,6 @@ func (s *BatchResultErrorEntry) SetSenderFault(v bool) *BatchResultErrorEntry { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ChangeMessageVisibilityBatchRequest type ChangeMessageVisibilityBatchInput struct { _ struct{} `type:"structure"` @@ -2232,7 +2228,6 @@ func (s *ChangeMessageVisibilityBatchInput) SetQueueUrl(v string) *ChangeMessage // For each message in the batch, the response contains a ChangeMessageVisibilityBatchResultEntry // tag if the message succeeds or a BatchResultErrorEntry tag if the message // fails. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ChangeMessageVisibilityBatchResult type ChangeMessageVisibilityBatchOutput struct { _ struct{} `type:"structure"` @@ -2280,7 +2275,6 @@ func (s *ChangeMessageVisibilityBatchOutput) SetSuccessful(v []*ChangeMessageVis // &ChangeMessageVisibilityBatchRequestEntry.1.ReceiptHandle=Your_Receipt_Handle // // &ChangeMessageVisibilityBatchRequestEntry.1.VisibilityTimeout=45 -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ChangeMessageVisibilityBatchRequestEntry type ChangeMessageVisibilityBatchRequestEntry struct { _ struct{} `type:"structure"` @@ -2346,7 +2340,6 @@ func (s *ChangeMessageVisibilityBatchRequestEntry) SetVisibilityTimeout(v int64) } // Encloses the Id of an entry in ChangeMessageVisibilityBatch. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ChangeMessageVisibilityBatchResultEntry type ChangeMessageVisibilityBatchResultEntry struct { _ struct{} `type:"structure"` @@ -2372,7 +2365,6 @@ func (s *ChangeMessageVisibilityBatchResultEntry) SetId(v string) *ChangeMessage return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ChangeMessageVisibilityRequest type ChangeMessageVisibilityInput struct { _ struct{} `type:"structure"` @@ -2443,7 +2435,6 @@ func (s *ChangeMessageVisibilityInput) SetVisibilityTimeout(v int64) *ChangeMess return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ChangeMessageVisibilityOutput type ChangeMessageVisibilityOutput struct { _ struct{} `type:"structure"` } @@ -2458,7 +2449,6 @@ func (s ChangeMessageVisibilityOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/CreateQueueRequest type CreateQueueInput struct { _ struct{} `type:"structure"` @@ -2633,7 +2623,6 @@ func (s *CreateQueueInput) SetQueueName(v string) *CreateQueueInput { } // Returns the QueueUrl attribute of the created queue. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/CreateQueueResult type CreateQueueOutput struct { _ struct{} `type:"structure"` @@ -2657,7 +2646,6 @@ func (s *CreateQueueOutput) SetQueueUrl(v string) *CreateQueueOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteMessageBatchRequest type DeleteMessageBatchInput struct { _ struct{} `type:"structure"` @@ -2725,7 +2713,6 @@ func (s *DeleteMessageBatchInput) SetQueueUrl(v string) *DeleteMessageBatchInput // For each message in the batch, the response contains a DeleteMessageBatchResultEntry // tag if the message is deleted or a BatchResultErrorEntry tag if the message // can't be deleted. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteMessageBatchResult type DeleteMessageBatchOutput struct { _ struct{} `type:"structure"` @@ -2763,7 +2750,6 @@ func (s *DeleteMessageBatchOutput) SetSuccessful(v []*DeleteMessageBatchResultEn } // Encloses a receipt handle and an identifier for it. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteMessageBatchRequestEntry type DeleteMessageBatchRequestEntry struct { _ struct{} `type:"structure"` @@ -2820,7 +2806,6 @@ func (s *DeleteMessageBatchRequestEntry) SetReceiptHandle(v string) *DeleteMessa } // Encloses the Id of an entry in DeleteMessageBatch. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteMessageBatchResultEntry type DeleteMessageBatchResultEntry struct { _ struct{} `type:"structure"` @@ -2846,7 +2831,6 @@ func (s *DeleteMessageBatchResultEntry) SetId(v string) *DeleteMessageBatchResul return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteMessageRequest type DeleteMessageInput struct { _ struct{} `type:"structure"` @@ -2901,7 +2885,6 @@ func (s *DeleteMessageInput) SetReceiptHandle(v string) *DeleteMessageInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteMessageOutput type DeleteMessageOutput struct { _ struct{} `type:"structure"` } @@ -2916,7 +2899,6 @@ func (s DeleteMessageOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteQueueRequest type DeleteQueueInput struct { _ struct{} `type:"structure"` @@ -2957,7 +2939,6 @@ func (s *DeleteQueueInput) SetQueueUrl(v string) *DeleteQueueInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteQueueOutput type DeleteQueueOutput struct { _ struct{} `type:"structure"` } @@ -2972,7 +2953,6 @@ func (s DeleteQueueOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/GetQueueAttributesRequest type GetQueueAttributesInput struct { _ struct{} `type:"structure"` @@ -3110,7 +3090,6 @@ func (s *GetQueueAttributesInput) SetQueueUrl(v string) *GetQueueAttributesInput } // A list of returned queue attributes. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/GetQueueAttributesResult type GetQueueAttributesOutput struct { _ struct{} `type:"structure"` @@ -3134,7 +3113,6 @@ func (s *GetQueueAttributesOutput) SetAttributes(v map[string]*string) *GetQueue return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/GetQueueUrlRequest type GetQueueUrlInput struct { _ struct{} `type:"structure"` @@ -3187,7 +3165,6 @@ func (s *GetQueueUrlInput) SetQueueOwnerAWSAccountId(v string) *GetQueueUrlInput // For more information, see Responses (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/UnderstandingResponses.html) // in the Amazon Simple Queue Service Developer Guide. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/GetQueueUrlResult type GetQueueUrlOutput struct { _ struct{} `type:"structure"` @@ -3211,7 +3188,6 @@ func (s *GetQueueUrlOutput) SetQueueUrl(v string) *GetQueueUrlOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListDeadLetterSourceQueuesRequest type ListDeadLetterSourceQueuesInput struct { _ struct{} `type:"structure"` @@ -3253,7 +3229,6 @@ func (s *ListDeadLetterSourceQueuesInput) SetQueueUrl(v string) *ListDeadLetterS } // A list of your dead letter source queues. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListDeadLetterSourceQueuesResult type ListDeadLetterSourceQueuesOutput struct { _ struct{} `type:"structure"` @@ -3280,7 +3255,6 @@ func (s *ListDeadLetterSourceQueuesOutput) SetQueueUrls(v []*string) *ListDeadLe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListQueueTagsRequest type ListQueueTagsInput struct { _ struct{} `type:"structure"` @@ -3319,7 +3293,6 @@ func (s *ListQueueTagsInput) SetQueueUrl(v string) *ListQueueTagsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListQueueTagsResult type ListQueueTagsOutput struct { _ struct{} `type:"structure"` @@ -3343,7 +3316,6 @@ func (s *ListQueueTagsOutput) SetTags(v map[string]*string) *ListQueueTagsOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListQueuesRequest type ListQueuesInput struct { _ struct{} `type:"structure"` @@ -3371,7 +3343,6 @@ func (s *ListQueuesInput) SetQueueNamePrefix(v string) *ListQueuesInput { } // A list of your queues. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListQueuesResult type ListQueuesOutput struct { _ struct{} `type:"structure"` @@ -3396,7 +3367,6 @@ func (s *ListQueuesOutput) SetQueueUrls(v []*string) *ListQueuesOutput { } // An Amazon SQS message. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/Message type Message struct { _ struct{} `type:"structure"` @@ -3492,7 +3462,6 @@ func (s *Message) SetReceiptHandle(v string) *Message { // Name, type, value and the message body must not be empty or null. All parts // of the message attribute, including Name, Type, and Value, are part of the // message size restriction (256 KB or 262,144 bytes). -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/MessageAttributeValue type MessageAttributeValue struct { _ struct{} `type:"structure"` @@ -3576,7 +3545,6 @@ func (s *MessageAttributeValue) SetStringValue(v string) *MessageAttributeValue return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/PurgeQueueRequest type PurgeQueueInput struct { _ struct{} `type:"structure"` @@ -3617,7 +3585,6 @@ func (s *PurgeQueueInput) SetQueueUrl(v string) *PurgeQueueInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/PurgeQueueOutput type PurgeQueueOutput struct { _ struct{} `type:"structure"` } @@ -3632,7 +3599,6 @@ func (s PurgeQueueOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ReceiveMessageRequest type ReceiveMessageInput struct { _ struct{} `type:"structure"` @@ -3865,7 +3831,6 @@ func (s *ReceiveMessageInput) SetWaitTimeSeconds(v int64) *ReceiveMessageInput { } // A list of received messages. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ReceiveMessageResult type ReceiveMessageOutput struct { _ struct{} `type:"structure"` @@ -3889,7 +3854,6 @@ func (s *ReceiveMessageOutput) SetMessages(v []*Message) *ReceiveMessageOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/RemovePermissionRequest type RemovePermissionInput struct { _ struct{} `type:"structure"` @@ -3945,7 +3909,6 @@ func (s *RemovePermissionInput) SetQueueUrl(v string) *RemovePermissionInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/RemovePermissionOutput type RemovePermissionOutput struct { _ struct{} `type:"structure"` } @@ -3960,7 +3923,6 @@ func (s RemovePermissionOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SendMessageBatchRequest type SendMessageBatchInput struct { _ struct{} `type:"structure"` @@ -4028,7 +3990,6 @@ func (s *SendMessageBatchInput) SetQueueUrl(v string) *SendMessageBatchInput { // For each message in the batch, the response contains a SendMessageBatchResultEntry // tag if the message succeeds or a BatchResultErrorEntry tag if the message // fails. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SendMessageBatchResult type SendMessageBatchOutput struct { _ struct{} `type:"structure"` @@ -4067,7 +4028,6 @@ func (s *SendMessageBatchOutput) SetSuccessful(v []*SendMessageBatchResultEntry) } // Contains the details of a single Amazon SQS message along with an Id. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SendMessageBatchRequestEntry type SendMessageBatchRequestEntry struct { _ struct{} `type:"structure"` @@ -4247,7 +4207,6 @@ func (s *SendMessageBatchRequestEntry) SetMessageGroupId(v string) *SendMessageB } // Encloses a MessageId for a successfully-enqueued message in a SendMessageBatch. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SendMessageBatchResultEntry type SendMessageBatchResultEntry struct { _ struct{} `type:"structure"` @@ -4324,7 +4283,6 @@ func (s *SendMessageBatchResultEntry) SetSequenceNumber(v string) *SendMessageBa return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SendMessageRequest type SendMessageInput struct { _ struct{} `type:"structure"` @@ -4512,7 +4470,6 @@ func (s *SendMessageInput) SetQueueUrl(v string) *SendMessageInput { } // The MD5OfMessageBody and MessageId elements. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SendMessageResult type SendMessageOutput struct { _ struct{} `type:"structure"` @@ -4576,7 +4533,6 @@ func (s *SendMessageOutput) SetSequenceNumber(v string) *SendMessageOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SetQueueAttributesRequest type SetQueueAttributesInput struct { _ struct{} `type:"structure"` @@ -4741,7 +4697,6 @@ func (s *SetQueueAttributesInput) SetQueueUrl(v string) *SetQueueAttributesInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SetQueueAttributesOutput type SetQueueAttributesOutput struct { _ struct{} `type:"structure"` } @@ -4756,7 +4711,6 @@ func (s SetQueueAttributesOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/TagQueueRequest type TagQueueInput struct { _ struct{} `type:"structure"` @@ -4809,7 +4763,6 @@ func (s *TagQueueInput) SetTags(v map[string]*string) *TagQueueInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/TagQueueOutput type TagQueueOutput struct { _ struct{} `type:"structure"` } @@ -4824,7 +4777,6 @@ func (s TagQueueOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/UntagQueueRequest type UntagQueueInput struct { _ struct{} `type:"structure"` @@ -4877,7 +4829,6 @@ func (s *UntagQueueInput) SetTagKeys(v []*string) *UntagQueueInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/UntagQueueOutput type UntagQueueOutput struct { _ struct{} `type:"structure"` } diff --git a/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go b/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go index 914760caa..2d941d74f 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ssm/api.go @@ -9606,7 +9606,6 @@ func (c *SSM) UpdatePatchBaselineWithContext(ctx aws.Context, input *UpdatePatch // An activation registers one or more on-premises servers or virtual machines // (VMs) with AWS so that you can configure those servers or VMs using Run Command. // A server or VM that has been registered with AWS is called a managed instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/Activation type Activation struct { _ struct{} `type:"structure"` @@ -9704,7 +9703,6 @@ func (s *Activation) SetRegistrationsCount(v int64) *Activation { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/AddTagsToResourceRequest type AddTagsToResourceInput struct { _ struct{} `type:"structure"` @@ -9788,7 +9786,6 @@ func (s *AddTagsToResourceInput) SetTags(v []*Tag) *AddTagsToResourceInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/AddTagsToResourceResult type AddTagsToResourceOutput struct { _ struct{} `type:"structure"` } @@ -9804,7 +9801,6 @@ func (s AddTagsToResourceOutput) GoString() string { } // Describes an association of a Systems Manager document and an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/Association type Association struct { _ struct{} `type:"structure"` @@ -9911,7 +9907,6 @@ func (s *Association) SetTargets(v []*Target) *Association { } // Describes the parameters for a document. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/AssociationDescription type AssociationDescription struct { _ struct{} `type:"structure"` @@ -10071,7 +10066,6 @@ func (s *AssociationDescription) SetTargets(v []*Target) *AssociationDescription } // Describes a filter. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/AssociationFilter type AssociationFilter struct { _ struct{} `type:"structure"` @@ -10128,7 +10122,6 @@ func (s *AssociationFilter) SetValue(v string) *AssociationFilter { } // Information about the association. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/AssociationOverview type AssociationOverview struct { _ struct{} `type:"structure"` @@ -10173,7 +10166,6 @@ func (s *AssociationOverview) SetStatus(v string) *AssociationOverview { } // Describes an association status. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/AssociationStatus type AssociationStatus struct { _ struct{} `type:"structure"` @@ -10253,7 +10245,6 @@ func (s *AssociationStatus) SetName(v string) *AssociationStatus { } // Information about the association version. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/AssociationVersionInfo type AssociationVersionInfo struct { _ struct{} `type:"structure"` @@ -10365,7 +10356,6 @@ func (s *AssociationVersionInfo) SetTargets(v []*Target) *AssociationVersionInfo // Detailed information about the current state of an individual Automation // execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/AutomationExecution type AutomationExecution struct { _ struct{} `type:"structure"` @@ -10585,7 +10575,6 @@ func (s *AutomationExecution) SetTargets(v []*Target) *AutomationExecution { // A filter used to match specific automation executions. This is used to limit // the scope of Automation execution information returned. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/AutomationExecutionFilter type AutomationExecutionFilter struct { _ struct{} `type:"structure"` @@ -10645,7 +10634,6 @@ func (s *AutomationExecutionFilter) SetValues(v []*string) *AutomationExecutionF } // Details about a specific Automation execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/AutomationExecutionMetadata type AutomationExecutionMetadata struct { _ struct{} `type:"structure"` @@ -10842,7 +10830,6 @@ func (s *AutomationExecutionMetadata) SetTargets(v []*Target) *AutomationExecuti return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CancelCommandRequest type CancelCommandInput struct { _ struct{} `type:"structure"` @@ -10897,7 +10884,6 @@ func (s *CancelCommandInput) SetInstanceIds(v []*string) *CancelCommandInput { // Whether or not the command was successfully canceled. There is no guarantee // that a request can be canceled. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CancelCommandResult type CancelCommandOutput struct { _ struct{} `type:"structure"` } @@ -10913,7 +10899,6 @@ func (s CancelCommandOutput) GoString() string { } // Describes a command request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/Command type Command struct { _ struct{} `type:"structure"` @@ -11161,7 +11146,6 @@ func (s *Command) SetTargets(v []*Target) *Command { } // Describes a command filter. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CommandFilter type CommandFilter struct { _ struct{} `type:"structure"` @@ -11222,7 +11206,6 @@ func (s *CommandFilter) SetValue(v string) *CommandFilter { // For example, if a user executes SendCommand against three instances, then // a command invocation is created for each requested instance ID. A command // invocation returns status and detail information about a command you executed. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CommandInvocation type CommandInvocation struct { _ struct{} `type:"structure"` @@ -11415,7 +11398,6 @@ func (s *CommandInvocation) SetTraceOutput(v string) *CommandInvocation { } // Describes plugin details. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CommandPlugin type CommandPlugin struct { _ struct{} `type:"structure"` @@ -11613,7 +11595,6 @@ func (s *CommandPlugin) SetStatusDetails(v string) *CommandPlugin { // A summary of the call execution that includes an execution ID, the type of // execution (for example, Command), and the date/time of the execution using // a datetime object that is saved in the following format: yyyy-MM-dd'T'HH:mm:ss'Z'. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ComplianceExecutionSummary type ComplianceExecutionSummary struct { _ struct{} `type:"structure"` @@ -11675,7 +11656,6 @@ func (s *ComplianceExecutionSummary) SetExecutionType(v string) *ComplianceExecu // Information about the compliance as defined by the resource type. For example, // for a patch resource type, Items includes information about the PatchSeverity, // Classification, etc. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ComplianceItem type ComplianceItem struct { _ struct{} `type:"structure"` @@ -11779,7 +11759,6 @@ func (s *ComplianceItem) SetTitle(v string) *ComplianceItem { } // Information about a compliance item. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ComplianceItemEntry type ComplianceItemEntry struct { _ struct{} `type:"structure"` @@ -11867,7 +11846,6 @@ func (s *ComplianceItemEntry) SetTitle(v string) *ComplianceItemEntry { } // One or more filters. Use a filter to return a more specific list of results. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ComplianceStringFilter type ComplianceStringFilter struct { _ struct{} `type:"structure"` @@ -11927,7 +11905,6 @@ func (s *ComplianceStringFilter) SetValues(v []*string) *ComplianceStringFilter } // A summary of compliance information by compliance type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ComplianceSummaryItem type ComplianceSummaryItem struct { _ struct{} `type:"structure"` @@ -11972,7 +11949,6 @@ func (s *ComplianceSummaryItem) SetNonCompliantSummary(v *NonCompliantSummary) * // A summary of resources that are compliant. The summary is organized according // to the resource count for each compliance type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CompliantSummary type CompliantSummary struct { _ struct{} `type:"structure"` @@ -12005,7 +11981,6 @@ func (s *CompliantSummary) SetSeveritySummary(v *SeveritySummary) *CompliantSumm return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateActivationRequest type CreateActivationInput struct { _ struct{} `type:"structure"` @@ -12088,7 +12063,6 @@ func (s *CreateActivationInput) SetRegistrationLimit(v int64) *CreateActivationI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateActivationResult type CreateActivationOutput struct { _ struct{} `type:"structure"` @@ -12123,7 +12097,6 @@ func (s *CreateActivationOutput) SetActivationId(v string) *CreateActivationOutp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateAssociationBatchRequest type CreateAssociationBatchInput struct { _ struct{} `type:"structure"` @@ -12175,7 +12148,6 @@ func (s *CreateAssociationBatchInput) SetEntries(v []*CreateAssociationBatchRequ return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateAssociationBatchResult type CreateAssociationBatchOutput struct { _ struct{} `type:"structure"` @@ -12209,7 +12181,6 @@ func (s *CreateAssociationBatchOutput) SetSuccessful(v []*AssociationDescription } // Describes the association of a Systems Manager document and an instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateAssociationBatchRequestEntry type CreateAssociationBatchRequestEntry struct { _ struct{} `type:"structure"` @@ -12329,7 +12300,6 @@ func (s *CreateAssociationBatchRequestEntry) SetTargets(v []*Target) *CreateAsso return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateAssociationRequest type CreateAssociationInput struct { _ struct{} `type:"structure"` @@ -12450,7 +12420,6 @@ func (s *CreateAssociationInput) SetTargets(v []*Target) *CreateAssociationInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateAssociationResult type CreateAssociationOutput struct { _ struct{} `type:"structure"` @@ -12474,7 +12443,6 @@ func (s *CreateAssociationOutput) SetAssociationDescription(v *AssociationDescri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateDocumentRequest type CreateDocumentInput struct { _ struct{} `type:"structure"` @@ -12493,6 +12461,15 @@ type CreateDocumentInput struct { // A name for the Systems Manager document. // + // Do not use the following to begin the names of documents you create. They + // are reserved by AWS for use as document prefixes: + // + // aws + // + // amazon + // + // amzn + // // Name is a required field Name *string `type:"string" required:"true"` @@ -12565,7 +12542,6 @@ func (s *CreateDocumentInput) SetTargetType(v string) *CreateDocumentInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateDocumentResult type CreateDocumentOutput struct { _ struct{} `type:"structure"` @@ -12589,7 +12565,6 @@ func (s *CreateDocumentOutput) SetDocumentDescription(v *DocumentDescription) *C return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateMaintenanceWindowRequest type CreateMaintenanceWindowInput struct { _ struct{} `type:"structure"` @@ -12725,7 +12700,6 @@ func (s *CreateMaintenanceWindowInput) SetSchedule(v string) *CreateMaintenanceW return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateMaintenanceWindowResult type CreateMaintenanceWindowOutput struct { _ struct{} `type:"structure"` @@ -12749,7 +12723,6 @@ func (s *CreateMaintenanceWindowOutput) SetWindowId(v string) *CreateMaintenance return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreatePatchBaselineRequest type CreatePatchBaselineInput struct { _ struct{} `type:"structure"` @@ -12765,6 +12738,11 @@ type CreatePatchBaselineInput struct { // HIGH, MEDIUM, LOW, INFORMATIONAL, UNSPECIFIED. The default value is UNSPECIFIED. ApprovedPatchesComplianceLevel *string `type:"string" enum:"PatchComplianceLevel"` + // Indicates whether the list of approved patches includes non-security updates + // that should be applied to the instances. The default value is 'false'. Applies + // to Linux instances only. + ApprovedPatchesEnableNonSecurity *bool `type:"boolean"` + // User-provided idempotency token. ClientToken *string `min:"1" type:"string" idempotencyToken:"true"` @@ -12785,6 +12763,10 @@ type CreatePatchBaselineInput struct { // A list of explicitly rejected patches for the baseline. RejectedPatches []*string `type:"list"` + + // Information about the patches to use to update the instances, including target + // operating systems and source repositories. Applies to Linux instances only. + Sources []*PatchSource `type:"list"` } // String returns the string representation @@ -12822,6 +12804,16 @@ func (s *CreatePatchBaselineInput) Validate() error { invalidParams.AddNested("GlobalFilters", err.(request.ErrInvalidParams)) } } + if s.Sources != nil { + for i, v := range s.Sources { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Sources", i), err.(request.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -12847,6 +12839,12 @@ func (s *CreatePatchBaselineInput) SetApprovedPatchesComplianceLevel(v string) * return s } +// SetApprovedPatchesEnableNonSecurity sets the ApprovedPatchesEnableNonSecurity field's value. +func (s *CreatePatchBaselineInput) SetApprovedPatchesEnableNonSecurity(v bool) *CreatePatchBaselineInput { + s.ApprovedPatchesEnableNonSecurity = &v + return s +} + // SetClientToken sets the ClientToken field's value. func (s *CreatePatchBaselineInput) SetClientToken(v string) *CreatePatchBaselineInput { s.ClientToken = &v @@ -12883,7 +12881,12 @@ func (s *CreatePatchBaselineInput) SetRejectedPatches(v []*string) *CreatePatchB return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreatePatchBaselineResult +// SetSources sets the Sources field's value. +func (s *CreatePatchBaselineInput) SetSources(v []*PatchSource) *CreatePatchBaselineInput { + s.Sources = v + return s +} + type CreatePatchBaselineOutput struct { _ struct{} `type:"structure"` @@ -12907,7 +12910,6 @@ func (s *CreatePatchBaselineOutput) SetBaselineId(v string) *CreatePatchBaseline return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateResourceDataSyncRequest type CreateResourceDataSyncInput struct { _ struct{} `type:"structure"` @@ -12968,7 +12970,6 @@ func (s *CreateResourceDataSyncInput) SetSyncName(v string) *CreateResourceDataS return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/CreateResourceDataSyncResult type CreateResourceDataSyncOutput struct { _ struct{} `type:"structure"` } @@ -12983,7 +12984,6 @@ func (s CreateResourceDataSyncOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteActivationRequest type DeleteActivationInput struct { _ struct{} `type:"structure"` @@ -13022,7 +13022,6 @@ func (s *DeleteActivationInput) SetActivationId(v string) *DeleteActivationInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteActivationResult type DeleteActivationOutput struct { _ struct{} `type:"structure"` } @@ -13037,7 +13036,6 @@ func (s DeleteActivationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteAssociationRequest type DeleteAssociationInput struct { _ struct{} `type:"structure"` @@ -13079,7 +13077,6 @@ func (s *DeleteAssociationInput) SetName(v string) *DeleteAssociationInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteAssociationResult type DeleteAssociationOutput struct { _ struct{} `type:"structure"` } @@ -13094,7 +13091,6 @@ func (s DeleteAssociationOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteDocumentRequest type DeleteDocumentInput struct { _ struct{} `type:"structure"` @@ -13133,7 +13129,6 @@ func (s *DeleteDocumentInput) SetName(v string) *DeleteDocumentInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteDocumentResult type DeleteDocumentOutput struct { _ struct{} `type:"structure"` } @@ -13148,7 +13143,6 @@ func (s DeleteDocumentOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteMaintenanceWindowRequest type DeleteMaintenanceWindowInput struct { _ struct{} `type:"structure"` @@ -13190,7 +13184,6 @@ func (s *DeleteMaintenanceWindowInput) SetWindowId(v string) *DeleteMaintenanceW return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteMaintenanceWindowResult type DeleteMaintenanceWindowOutput struct { _ struct{} `type:"structure"` @@ -13214,7 +13207,6 @@ func (s *DeleteMaintenanceWindowOutput) SetWindowId(v string) *DeleteMaintenance return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteParameterRequest type DeleteParameterInput struct { _ struct{} `type:"structure"` @@ -13256,7 +13248,6 @@ func (s *DeleteParameterInput) SetName(v string) *DeleteParameterInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteParameterResult type DeleteParameterOutput struct { _ struct{} `type:"structure"` } @@ -13271,7 +13262,6 @@ func (s DeleteParameterOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteParametersRequest type DeleteParametersInput struct { _ struct{} `type:"structure"` @@ -13313,7 +13303,6 @@ func (s *DeleteParametersInput) SetNames(v []*string) *DeleteParametersInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteParametersResult type DeleteParametersOutput struct { _ struct{} `type:"structure"` @@ -13347,7 +13336,6 @@ func (s *DeleteParametersOutput) SetInvalidParameters(v []*string) *DeleteParame return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeletePatchBaselineRequest type DeletePatchBaselineInput struct { _ struct{} `type:"structure"` @@ -13389,7 +13377,6 @@ func (s *DeletePatchBaselineInput) SetBaselineId(v string) *DeletePatchBaselineI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeletePatchBaselineResult type DeletePatchBaselineOutput struct { _ struct{} `type:"structure"` @@ -13413,7 +13400,6 @@ func (s *DeletePatchBaselineOutput) SetBaselineId(v string) *DeletePatchBaseline return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteResourceDataSyncRequest type DeleteResourceDataSyncInput struct { _ struct{} `type:"structure"` @@ -13455,7 +13441,6 @@ func (s *DeleteResourceDataSyncInput) SetSyncName(v string) *DeleteResourceDataS return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeleteResourceDataSyncResult type DeleteResourceDataSyncOutput struct { _ struct{} `type:"structure"` } @@ -13470,7 +13455,6 @@ func (s DeleteResourceDataSyncOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeregisterManagedInstanceRequest type DeregisterManagedInstanceInput struct { _ struct{} `type:"structure"` @@ -13510,7 +13494,6 @@ func (s *DeregisterManagedInstanceInput) SetInstanceId(v string) *DeregisterMana return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeregisterManagedInstanceResult type DeregisterManagedInstanceOutput struct { _ struct{} `type:"structure"` } @@ -13525,7 +13508,6 @@ func (s DeregisterManagedInstanceOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeregisterPatchBaselineForPatchGroupRequest type DeregisterPatchBaselineForPatchGroupInput struct { _ struct{} `type:"structure"` @@ -13584,7 +13566,6 @@ func (s *DeregisterPatchBaselineForPatchGroupInput) SetPatchGroup(v string) *Der return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeregisterPatchBaselineForPatchGroupResult type DeregisterPatchBaselineForPatchGroupOutput struct { _ struct{} `type:"structure"` @@ -13617,7 +13598,6 @@ func (s *DeregisterPatchBaselineForPatchGroupOutput) SetPatchGroup(v string) *De return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeregisterTargetFromMaintenanceWindowRequest type DeregisterTargetFromMaintenanceWindowInput struct { _ struct{} `type:"structure"` @@ -13687,7 +13667,6 @@ func (s *DeregisterTargetFromMaintenanceWindowInput) SetWindowTargetId(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeregisterTargetFromMaintenanceWindowResult type DeregisterTargetFromMaintenanceWindowOutput struct { _ struct{} `type:"structure"` @@ -13720,7 +13699,6 @@ func (s *DeregisterTargetFromMaintenanceWindowOutput) SetWindowTargetId(v string return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeregisterTaskFromMaintenanceWindowRequest type DeregisterTaskFromMaintenanceWindowInput struct { _ struct{} `type:"structure"` @@ -13779,7 +13757,6 @@ func (s *DeregisterTaskFromMaintenanceWindowInput) SetWindowTaskId(v string) *De return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DeregisterTaskFromMaintenanceWindowResult type DeregisterTaskFromMaintenanceWindowOutput struct { _ struct{} `type:"structure"` @@ -13813,7 +13790,6 @@ func (s *DeregisterTaskFromMaintenanceWindowOutput) SetWindowTaskId(v string) *D } // Filter for the DescribeActivation API. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeActivationsFilter type DescribeActivationsFilter struct { _ struct{} `type:"structure"` @@ -13846,7 +13822,6 @@ func (s *DescribeActivationsFilter) SetFilterValues(v []*string) *DescribeActiva return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeActivationsRequest type DescribeActivationsInput struct { _ struct{} `type:"structure"` @@ -13903,7 +13878,6 @@ func (s *DescribeActivationsInput) SetNextToken(v string) *DescribeActivationsIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeActivationsResult type DescribeActivationsOutput struct { _ struct{} `type:"structure"` @@ -13937,7 +13911,6 @@ func (s *DescribeActivationsOutput) SetNextToken(v string) *DescribeActivationsO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeAssociationRequest type DescribeAssociationInput struct { _ struct{} `type:"structure"` @@ -13991,7 +13964,6 @@ func (s *DescribeAssociationInput) SetName(v string) *DescribeAssociationInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeAssociationResult type DescribeAssociationOutput struct { _ struct{} `type:"structure"` @@ -14015,7 +13987,6 @@ func (s *DescribeAssociationOutput) SetAssociationDescription(v *AssociationDesc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeAutomationExecutionsRequest type DescribeAutomationExecutionsInput struct { _ struct{} `type:"structure"` @@ -14086,7 +14057,6 @@ func (s *DescribeAutomationExecutionsInput) SetNextToken(v string) *DescribeAuto return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeAutomationExecutionsResult type DescribeAutomationExecutionsOutput struct { _ struct{} `type:"structure"` @@ -14121,7 +14091,6 @@ func (s *DescribeAutomationExecutionsOutput) SetNextToken(v string) *DescribeAut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeAutomationStepExecutionsRequest type DescribeAutomationStepExecutionsInput struct { _ struct{} `type:"structure"` @@ -14220,7 +14189,6 @@ func (s *DescribeAutomationStepExecutionsInput) SetReverseOrder(v bool) *Describ return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeAutomationStepExecutionsResult type DescribeAutomationStepExecutionsOutput struct { _ struct{} `type:"structure"` @@ -14254,7 +14222,6 @@ func (s *DescribeAutomationStepExecutionsOutput) SetStepExecutions(v []*StepExec return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeAvailablePatchesRequest type DescribeAvailablePatchesInput struct { _ struct{} `type:"structure"` @@ -14320,7 +14287,6 @@ func (s *DescribeAvailablePatchesInput) SetNextToken(v string) *DescribeAvailabl return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeAvailablePatchesResult type DescribeAvailablePatchesOutput struct { _ struct{} `type:"structure"` @@ -14354,7 +14320,6 @@ func (s *DescribeAvailablePatchesOutput) SetPatches(v []*Patch) *DescribeAvailab return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeDocumentRequest type DescribeDocumentInput struct { _ struct{} `type:"structure"` @@ -14403,7 +14368,6 @@ func (s *DescribeDocumentInput) SetName(v string) *DescribeDocumentInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeDocumentResult type DescribeDocumentOutput struct { _ struct{} `type:"structure"` @@ -14427,7 +14391,6 @@ func (s *DescribeDocumentOutput) SetDocument(v *DocumentDescription) *DescribeDo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeDocumentPermissionRequest type DescribeDocumentPermissionInput struct { _ struct{} `type:"structure"` @@ -14480,7 +14443,6 @@ func (s *DescribeDocumentPermissionInput) SetPermissionType(v string) *DescribeD return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeDocumentPermissionResponse type DescribeDocumentPermissionOutput struct { _ struct{} `type:"structure"` @@ -14505,7 +14467,6 @@ func (s *DescribeDocumentPermissionOutput) SetAccountIds(v []*string) *DescribeD return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeEffectiveInstanceAssociationsRequest type DescribeEffectiveInstanceAssociationsInput struct { _ struct{} `type:"structure"` @@ -14568,7 +14529,6 @@ func (s *DescribeEffectiveInstanceAssociationsInput) SetNextToken(v string) *Des return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeEffectiveInstanceAssociationsResult type DescribeEffectiveInstanceAssociationsOutput struct { _ struct{} `type:"structure"` @@ -14602,7 +14562,6 @@ func (s *DescribeEffectiveInstanceAssociationsOutput) SetNextToken(v string) *De return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeEffectivePatchesForPatchBaselineRequest type DescribeEffectivePatchesForPatchBaselineInput struct { _ struct{} `type:"structure"` @@ -14666,7 +14625,6 @@ func (s *DescribeEffectivePatchesForPatchBaselineInput) SetNextToken(v string) * return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeEffectivePatchesForPatchBaselineResult type DescribeEffectivePatchesForPatchBaselineOutput struct { _ struct{} `type:"structure"` @@ -14700,7 +14658,6 @@ func (s *DescribeEffectivePatchesForPatchBaselineOutput) SetNextToken(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInstanceAssociationsStatusRequest type DescribeInstanceAssociationsStatusInput struct { _ struct{} `type:"structure"` @@ -14763,7 +14720,6 @@ func (s *DescribeInstanceAssociationsStatusInput) SetNextToken(v string) *Descri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInstanceAssociationsStatusResult type DescribeInstanceAssociationsStatusOutput struct { _ struct{} `type:"structure"` @@ -14797,7 +14753,6 @@ func (s *DescribeInstanceAssociationsStatusOutput) SetNextToken(v string) *Descr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInstanceInformationRequest type DescribeInstanceInformationInput struct { _ struct{} `type:"structure"` @@ -14884,7 +14839,6 @@ func (s *DescribeInstanceInformationInput) SetNextToken(v string) *DescribeInsta return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInstanceInformationResult type DescribeInstanceInformationOutput struct { _ struct{} `type:"structure"` @@ -14918,7 +14872,6 @@ func (s *DescribeInstanceInformationOutput) SetNextToken(v string) *DescribeInst return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInstancePatchStatesForPatchGroupRequest type DescribeInstancePatchStatesForPatchGroupInput struct { _ struct{} `type:"structure"` @@ -15008,7 +14961,6 @@ func (s *DescribeInstancePatchStatesForPatchGroupInput) SetPatchGroup(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInstancePatchStatesForPatchGroupResult type DescribeInstancePatchStatesForPatchGroupOutput struct { _ struct{} `type:"structure"` @@ -15042,7 +14994,6 @@ func (s *DescribeInstancePatchStatesForPatchGroupOutput) SetNextToken(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInstancePatchStatesRequest type DescribeInstancePatchStatesInput struct { _ struct{} `type:"structure"` @@ -15103,7 +15054,6 @@ func (s *DescribeInstancePatchStatesInput) SetNextToken(v string) *DescribeInsta return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInstancePatchStatesResult type DescribeInstancePatchStatesOutput struct { _ struct{} `type:"structure"` @@ -15137,7 +15087,6 @@ func (s *DescribeInstancePatchStatesOutput) SetNextToken(v string) *DescribeInst return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInstancePatchesRequest type DescribeInstancePatchesInput struct { _ struct{} `type:"structure"` @@ -15221,7 +15170,6 @@ func (s *DescribeInstancePatchesInput) SetNextToken(v string) *DescribeInstanceP return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeInstancePatchesResult type DescribeInstancePatchesOutput struct { _ struct{} `type:"structure"` @@ -15270,7 +15218,6 @@ func (s *DescribeInstancePatchesOutput) SetPatches(v []*PatchComplianceData) *De return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowExecutionTaskInvocationsRequest type DescribeMaintenanceWindowExecutionTaskInvocationsInput struct { _ struct{} `type:"structure"` @@ -15375,7 +15322,6 @@ func (s *DescribeMaintenanceWindowExecutionTaskInvocationsInput) SetWindowExecut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowExecutionTaskInvocationsResult type DescribeMaintenanceWindowExecutionTaskInvocationsOutput struct { _ struct{} `type:"structure"` @@ -15409,7 +15355,6 @@ func (s *DescribeMaintenanceWindowExecutionTaskInvocationsOutput) SetWindowExecu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowExecutionTasksRequest type DescribeMaintenanceWindowExecutionTasksInput struct { _ struct{} `type:"structure"` @@ -15497,7 +15442,6 @@ func (s *DescribeMaintenanceWindowExecutionTasksInput) SetWindowExecutionId(v st return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowExecutionTasksResult type DescribeMaintenanceWindowExecutionTasksOutput struct { _ struct{} `type:"structure"` @@ -15531,7 +15475,6 @@ func (s *DescribeMaintenanceWindowExecutionTasksOutput) SetWindowExecutionTaskId return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowExecutionsRequest type DescribeMaintenanceWindowExecutionsInput struct { _ struct{} `type:"structure"` @@ -15623,7 +15566,6 @@ func (s *DescribeMaintenanceWindowExecutionsInput) SetWindowId(v string) *Descri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowExecutionsResult type DescribeMaintenanceWindowExecutionsOutput struct { _ struct{} `type:"structure"` @@ -15657,7 +15599,6 @@ func (s *DescribeMaintenanceWindowExecutionsOutput) SetWindowExecutions(v []*Mai return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowTargetsRequest type DescribeMaintenanceWindowTargetsInput struct { _ struct{} `type:"structure"` @@ -15743,7 +15684,6 @@ func (s *DescribeMaintenanceWindowTargetsInput) SetWindowId(v string) *DescribeM return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowTargetsResult type DescribeMaintenanceWindowTargetsOutput struct { _ struct{} `type:"structure"` @@ -15777,7 +15717,6 @@ func (s *DescribeMaintenanceWindowTargetsOutput) SetTargets(v []*MaintenanceWind return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowTasksRequest type DescribeMaintenanceWindowTasksInput struct { _ struct{} `type:"structure"` @@ -15863,7 +15802,6 @@ func (s *DescribeMaintenanceWindowTasksInput) SetWindowId(v string) *DescribeMai return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowTasksResult type DescribeMaintenanceWindowTasksOutput struct { _ struct{} `type:"structure"` @@ -15897,7 +15835,6 @@ func (s *DescribeMaintenanceWindowTasksOutput) SetTasks(v []*MaintenanceWindowTa return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowsRequest type DescribeMaintenanceWindowsInput struct { _ struct{} `type:"structure"` @@ -15966,7 +15903,6 @@ func (s *DescribeMaintenanceWindowsInput) SetNextToken(v string) *DescribeMainte return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeMaintenanceWindowsResult type DescribeMaintenanceWindowsOutput struct { _ struct{} `type:"structure"` @@ -16000,7 +15936,6 @@ func (s *DescribeMaintenanceWindowsOutput) SetWindowIdentities(v []*MaintenanceW return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeParametersRequest type DescribeParametersInput struct { _ struct{} `type:"structure"` @@ -16087,7 +16022,6 @@ func (s *DescribeParametersInput) SetParameterFilters(v []*ParameterStringFilter return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribeParametersResult type DescribeParametersOutput struct { _ struct{} `type:"structure"` @@ -16121,7 +16055,6 @@ func (s *DescribeParametersOutput) SetParameters(v []*ParameterMetadata) *Descri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribePatchBaselinesRequest type DescribePatchBaselinesInput struct { _ struct{} `type:"structure"` @@ -16191,7 +16124,6 @@ func (s *DescribePatchBaselinesInput) SetNextToken(v string) *DescribePatchBasel return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribePatchBaselinesResult type DescribePatchBaselinesOutput struct { _ struct{} `type:"structure"` @@ -16225,7 +16157,6 @@ func (s *DescribePatchBaselinesOutput) SetNextToken(v string) *DescribePatchBase return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribePatchGroupStateRequest type DescribePatchGroupStateInput struct { _ struct{} `type:"structure"` @@ -16267,7 +16198,6 @@ func (s *DescribePatchGroupStateInput) SetPatchGroup(v string) *DescribePatchGro return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribePatchGroupStateResult type DescribePatchGroupStateOutput struct { _ struct{} `type:"structure"` @@ -16338,7 +16268,6 @@ func (s *DescribePatchGroupStateOutput) SetInstancesWithNotApplicablePatches(v i return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribePatchGroupsRequest type DescribePatchGroupsInput struct { _ struct{} `type:"structure"` @@ -16404,7 +16333,6 @@ func (s *DescribePatchGroupsInput) SetNextToken(v string) *DescribePatchGroupsIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DescribePatchGroupsResult type DescribePatchGroupsOutput struct { _ struct{} `type:"structure"` @@ -16443,7 +16371,6 @@ func (s *DescribePatchGroupsOutput) SetNextToken(v string) *DescribePatchGroupsO } // A default version of a document. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DocumentDefaultVersionDescription type DocumentDefaultVersionDescription struct { _ struct{} `type:"structure"` @@ -16477,7 +16404,6 @@ func (s *DocumentDefaultVersionDescription) SetName(v string) *DocumentDefaultVe } // Describes a Systems Manager document. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DocumentDescription type DocumentDescription struct { _ struct{} `type:"structure"` @@ -16662,7 +16588,6 @@ func (s *DocumentDescription) SetTargetType(v string) *DocumentDescription { } // Describes a filter. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DocumentFilter type DocumentFilter struct { _ struct{} `type:"structure"` @@ -16719,7 +16644,6 @@ func (s *DocumentFilter) SetValue(v string) *DocumentFilter { } // Describes the name of a Systems Manager document. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DocumentIdentifier type DocumentIdentifier struct { _ struct{} `type:"structure"` @@ -16843,7 +16767,6 @@ func (s *DocumentIdentifier) SetTargetType(v string) *DocumentIdentifier { // to call the list-documents command: // // aws ssm list-documents --filters Key=tag:region,Values=east,west Key=Owner,Values=Self -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DocumentKeyValuesFilter type DocumentKeyValuesFilter struct { _ struct{} `type:"structure"` @@ -16891,7 +16814,6 @@ func (s *DocumentKeyValuesFilter) SetValues(v []*string) *DocumentKeyValuesFilte // Parameters specified in a System Manager document that execute on the server // when the command is run. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DocumentParameter type DocumentParameter struct { _ struct{} `type:"structure"` @@ -16945,7 +16867,6 @@ func (s *DocumentParameter) SetType(v string) *DocumentParameter { } // Version information about the document. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/DocumentVersionInfo type DocumentVersionInfo struct { _ struct{} `type:"structure"` @@ -17010,7 +16931,6 @@ func (s *DocumentVersionInfo) SetName(v string) *DocumentVersionInfo { // state includes information about whether the patch is currently approved, // due to be approved by a rule, explicitly approved, or explicitly rejected // and the date the patch was or will be approved. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/EffectivePatch type EffectivePatch struct { _ struct{} `type:"structure"` @@ -17048,7 +16968,6 @@ func (s *EffectivePatch) SetPatchStatus(v *PatchStatus) *EffectivePatch { } // Describes a failed association. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/FailedCreateAssociation type FailedCreateAssociation struct { _ struct{} `type:"structure"` @@ -17091,7 +17010,6 @@ func (s *FailedCreateAssociation) SetMessage(v string) *FailedCreateAssociation } // Information about an Automation failure. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/FailureDetails type FailureDetails struct { _ struct{} `type:"structure"` @@ -17135,7 +17053,6 @@ func (s *FailureDetails) SetFailureType(v string) *FailureDetails { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetAutomationExecutionRequest type GetAutomationExecutionInput struct { _ struct{} `type:"structure"` @@ -17179,7 +17096,6 @@ func (s *GetAutomationExecutionInput) SetAutomationExecutionId(v string) *GetAut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetAutomationExecutionResult type GetAutomationExecutionOutput struct { _ struct{} `type:"structure"` @@ -17203,7 +17119,6 @@ func (s *GetAutomationExecutionOutput) SetAutomationExecution(v *AutomationExecu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetCommandInvocationRequest type GetCommandInvocationInput struct { _ struct{} `type:"structure"` @@ -17275,7 +17190,6 @@ func (s *GetCommandInvocationInput) SetPluginName(v string) *GetCommandInvocatio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetCommandInvocationResult type GetCommandInvocationOutput struct { _ struct{} `type:"structure"` @@ -17494,7 +17408,6 @@ func (s *GetCommandInvocationOutput) SetStatusDetails(v string) *GetCommandInvoc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetDefaultPatchBaselineRequest type GetDefaultPatchBaselineInput struct { _ struct{} `type:"structure"` @@ -17518,7 +17431,6 @@ func (s *GetDefaultPatchBaselineInput) SetOperatingSystem(v string) *GetDefaultP return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetDefaultPatchBaselineResult type GetDefaultPatchBaselineOutput struct { _ struct{} `type:"structure"` @@ -17551,7 +17463,6 @@ func (s *GetDefaultPatchBaselineOutput) SetOperatingSystem(v string) *GetDefault return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetDeployablePatchSnapshotForInstanceRequest type GetDeployablePatchSnapshotForInstanceInput struct { _ struct{} `type:"structure"` @@ -17608,7 +17519,6 @@ func (s *GetDeployablePatchSnapshotForInstanceInput) SetSnapshotId(v string) *Ge return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetDeployablePatchSnapshotForInstanceResult type GetDeployablePatchSnapshotForInstanceOutput struct { _ struct{} `type:"structure"` @@ -17660,7 +17570,6 @@ func (s *GetDeployablePatchSnapshotForInstanceOutput) SetSnapshotId(v string) *G return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetDocumentRequest type GetDocumentInput struct { _ struct{} `type:"structure"` @@ -17718,7 +17627,6 @@ func (s *GetDocumentInput) SetName(v string) *GetDocumentInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetDocumentResult type GetDocumentOutput struct { _ struct{} `type:"structure"` @@ -17778,7 +17686,6 @@ func (s *GetDocumentOutput) SetName(v string) *GetDocumentOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetInventoryRequest type GetInventoryInput struct { _ struct{} `type:"structure"` @@ -17896,7 +17803,6 @@ func (s *GetInventoryInput) SetResultAttributes(v []*ResultAttribute) *GetInvent return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetInventoryResult type GetInventoryOutput struct { _ struct{} `type:"structure"` @@ -17930,7 +17836,6 @@ func (s *GetInventoryOutput) SetNextToken(v string) *GetInventoryOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetInventorySchemaRequest type GetInventorySchemaInput struct { _ struct{} `type:"structure"` @@ -18008,7 +17913,6 @@ func (s *GetInventorySchemaInput) SetTypeName(v string) *GetInventorySchemaInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetInventorySchemaResult type GetInventorySchemaOutput struct { _ struct{} `type:"structure"` @@ -18042,7 +17946,6 @@ func (s *GetInventorySchemaOutput) SetSchemas(v []*InventoryItemSchema) *GetInve return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetMaintenanceWindowExecutionRequest type GetMaintenanceWindowExecutionInput struct { _ struct{} `type:"structure"` @@ -18084,7 +17987,6 @@ func (s *GetMaintenanceWindowExecutionInput) SetWindowExecutionId(v string) *Get return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetMaintenanceWindowExecutionResult type GetMaintenanceWindowExecutionOutput struct { _ struct{} `type:"structure"` @@ -18153,7 +18055,6 @@ func (s *GetMaintenanceWindowExecutionOutput) SetWindowExecutionId(v string) *Ge return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetMaintenanceWindowExecutionTaskRequest type GetMaintenanceWindowExecutionTaskInput struct { _ struct{} `type:"structure"` @@ -18213,7 +18114,6 @@ func (s *GetMaintenanceWindowExecutionTaskInput) SetWindowExecutionId(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetMaintenanceWindowExecutionTaskInvocationRequest type GetMaintenanceWindowExecutionTaskInvocationInput struct { _ struct{} `type:"structure"` @@ -18290,7 +18190,6 @@ func (s *GetMaintenanceWindowExecutionTaskInvocationInput) SetWindowExecutionId( return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetMaintenanceWindowExecutionTaskInvocationResult type GetMaintenanceWindowExecutionTaskInvocationOutput struct { _ struct{} `type:"structure"` @@ -18416,7 +18315,6 @@ func (s *GetMaintenanceWindowExecutionTaskInvocationOutput) SetWindowTargetId(v return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetMaintenanceWindowExecutionTaskResult type GetMaintenanceWindowExecutionTaskOutput struct { _ struct{} `type:"structure"` @@ -18555,7 +18453,6 @@ func (s *GetMaintenanceWindowExecutionTaskOutput) SetWindowExecutionId(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetMaintenanceWindowRequest type GetMaintenanceWindowInput struct { _ struct{} `type:"structure"` @@ -18597,7 +18494,6 @@ func (s *GetMaintenanceWindowInput) SetWindowId(v string) *GetMaintenanceWindowI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetMaintenanceWindowResult type GetMaintenanceWindowOutput struct { _ struct{} `type:"structure"` @@ -18704,7 +18600,6 @@ func (s *GetMaintenanceWindowOutput) SetWindowId(v string) *GetMaintenanceWindow return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetMaintenanceWindowTaskRequest type GetMaintenanceWindowTaskInput struct { _ struct{} `type:"structure"` @@ -18763,7 +18658,6 @@ func (s *GetMaintenanceWindowTaskInput) SetWindowTaskId(v string) *GetMaintenanc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetMaintenanceWindowTaskResult type GetMaintenanceWindowTaskOutput struct { _ struct{} `type:"structure"` @@ -18908,7 +18802,6 @@ func (s *GetMaintenanceWindowTaskOutput) SetWindowTaskId(v string) *GetMaintenan return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetParameterHistoryRequest type GetParameterHistoryInput struct { _ struct{} `type:"structure"` @@ -18984,7 +18877,6 @@ func (s *GetParameterHistoryInput) SetWithDecryption(v bool) *GetParameterHistor return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetParameterHistoryResult type GetParameterHistoryOutput struct { _ struct{} `type:"structure"` @@ -19018,7 +18910,6 @@ func (s *GetParameterHistoryOutput) SetParameters(v []*ParameterHistory) *GetPar return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetParameterRequest type GetParameterInput struct { _ struct{} `type:"structure"` @@ -19070,7 +18961,6 @@ func (s *GetParameterInput) SetWithDecryption(v bool) *GetParameterInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetParameterResult type GetParameterOutput struct { _ struct{} `type:"structure"` @@ -19094,7 +18984,6 @@ func (s *GetParameterOutput) SetParameter(v *Parameter) *GetParameterOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetParametersByPathRequest type GetParametersByPathInput struct { _ struct{} `type:"structure"` @@ -19198,7 +19087,6 @@ func (s *GetParametersByPathInput) SetWithDecryption(v bool) *GetParametersByPat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetParametersByPathResult type GetParametersByPathOutput struct { _ struct{} `type:"structure"` @@ -19232,7 +19120,6 @@ func (s *GetParametersByPathOutput) SetParameters(v []*Parameter) *GetParameters return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetParametersRequest type GetParametersInput struct { _ struct{} `type:"structure"` @@ -19285,7 +19172,6 @@ func (s *GetParametersInput) SetWithDecryption(v bool) *GetParametersInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetParametersResult type GetParametersOutput struct { _ struct{} `type:"structure"` @@ -19319,7 +19205,6 @@ func (s *GetParametersOutput) SetParameters(v []*Parameter) *GetParametersOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetPatchBaselineForPatchGroupRequest type GetPatchBaselineForPatchGroupInput struct { _ struct{} `type:"structure"` @@ -19371,7 +19256,6 @@ func (s *GetPatchBaselineForPatchGroupInput) SetPatchGroup(v string) *GetPatchBa return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetPatchBaselineForPatchGroupResult type GetPatchBaselineForPatchGroupOutput struct { _ struct{} `type:"structure"` @@ -19413,7 +19297,6 @@ func (s *GetPatchBaselineForPatchGroupOutput) SetPatchGroup(v string) *GetPatchB return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetPatchBaselineRequest type GetPatchBaselineInput struct { _ struct{} `type:"structure"` @@ -19455,7 +19338,6 @@ func (s *GetPatchBaselineInput) SetBaselineId(v string) *GetPatchBaselineInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/GetPatchBaselineResult type GetPatchBaselineOutput struct { _ struct{} `type:"structure"` @@ -19469,6 +19351,11 @@ type GetPatchBaselineOutput struct { // patch baseline. ApprovedPatchesComplianceLevel *string `type:"string" enum:"PatchComplianceLevel"` + // Indicates whether the list of approved patches includes non-security updates + // that should be applied to the instances. The default value is 'false'. Applies + // to Linux instances only. + ApprovedPatchesEnableNonSecurity *bool `type:"boolean"` + // The ID of the retrieved patch baseline. BaselineId *string `min:"20" type:"string"` @@ -19495,6 +19382,10 @@ type GetPatchBaselineOutput struct { // A list of explicitly rejected patches for the baseline. RejectedPatches []*string `type:"list"` + + // Information about the patches to use to update the instances, including target + // operating systems and source repositories. Applies to Linux instances only. + Sources []*PatchSource `type:"list"` } // String returns the string representation @@ -19525,6 +19416,12 @@ func (s *GetPatchBaselineOutput) SetApprovedPatchesComplianceLevel(v string) *Ge return s } +// SetApprovedPatchesEnableNonSecurity sets the ApprovedPatchesEnableNonSecurity field's value. +func (s *GetPatchBaselineOutput) SetApprovedPatchesEnableNonSecurity(v bool) *GetPatchBaselineOutput { + s.ApprovedPatchesEnableNonSecurity = &v + return s +} + // SetBaselineId sets the BaselineId field's value. func (s *GetPatchBaselineOutput) SetBaselineId(v string) *GetPatchBaselineOutput { s.BaselineId = &v @@ -19579,8 +19476,13 @@ func (s *GetPatchBaselineOutput) SetRejectedPatches(v []*string) *GetPatchBaseli return s } +// SetSources sets the Sources field's value. +func (s *GetPatchBaselineOutput) SetSources(v []*PatchSource) *GetPatchBaselineOutput { + s.Sources = v + return s +} + // Status information about the aggregated associations. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/InstanceAggregatedAssociationOverview type InstanceAggregatedAssociationOverview struct { _ struct{} `type:"structure"` @@ -19614,7 +19516,6 @@ func (s *InstanceAggregatedAssociationOverview) SetInstanceAssociationStatusAggr } // One or more association documents on the instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/InstanceAssociation type InstanceAssociation struct { _ struct{} `type:"structure"` @@ -19666,7 +19567,6 @@ func (s *InstanceAssociation) SetInstanceId(v string) *InstanceAssociation { } // An Amazon S3 bucket where you want to store the results of this request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/InstanceAssociationOutputLocation type InstanceAssociationOutputLocation struct { _ struct{} `type:"structure"` @@ -19706,7 +19606,6 @@ func (s *InstanceAssociationOutputLocation) SetS3Location(v *S3OutputLocation) * } // The URL of Amazon S3 bucket where you want to store the results of this request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/InstanceAssociationOutputUrl type InstanceAssociationOutputUrl struct { _ struct{} `type:"structure"` @@ -19731,7 +19630,6 @@ func (s *InstanceAssociationOutputUrl) SetS3OutputUrl(v *S3OutputUrl) *InstanceA } // Status information about the instance association. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/InstanceAssociationStatusInfo type InstanceAssociationStatusInfo struct { _ struct{} `type:"structure"` @@ -19856,7 +19754,6 @@ func (s *InstanceAssociationStatusInfo) SetStatus(v string) *InstanceAssociation } // Describes a filter for a specific list of instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/InstanceInformation type InstanceInformation struct { _ struct{} `type:"structure"` @@ -20044,7 +19941,6 @@ func (s *InstanceInformation) SetResourceType(v string) *InstanceInformation { } // Describes a filter for a specific list of instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/InstanceInformationFilter type InstanceInformationFilter struct { _ struct{} `type:"structure"` @@ -20101,7 +19997,6 @@ func (s *InstanceInformationFilter) SetValueSet(v []*string) *InstanceInformatio } // The filters to describe or get information about your managed instances. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/InstanceInformationStringFilter type InstanceInformationStringFilter struct { _ struct{} `type:"structure"` @@ -20167,7 +20062,6 @@ func (s *InstanceInformationStringFilter) SetValues(v []*string) *InstanceInform // information about the number of installed, missing, not applicable, and failed // patches along with metadata about the operation when this information was // gathered for the instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/InstancePatchState type InstancePatchState struct { _ struct{} `type:"structure"` @@ -20321,7 +20215,6 @@ func (s *InstancePatchState) SetSnapshotId(v string) *InstancePatchState { // Defines a filter used in DescribeInstancePatchStatesForPatchGroup used to // scope down the information returned by the API. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/InstancePatchStateFilter type InstancePatchStateFilter struct { _ struct{} `type:"structure"` @@ -20397,7 +20290,6 @@ func (s *InstancePatchStateFilter) SetValues(v []*string) *InstancePatchStateFil } // Specifies the inventory type and attribute for the aggregation execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/InventoryAggregator type InventoryAggregator struct { _ struct{} `type:"structure"` @@ -20457,7 +20349,6 @@ func (s *InventoryAggregator) SetExpression(v string) *InventoryAggregator { } // One or more filters. Use a filter to return a more specific list of results. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/InventoryFilter type InventoryFilter struct { _ struct{} `type:"structure"` @@ -20529,7 +20420,6 @@ func (s *InventoryFilter) SetValues(v []*string) *InventoryFilter { // Information collected from managed instances based on your inventory policy // document -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/InventoryItem type InventoryItem struct { _ struct{} `type:"structure"` @@ -20636,7 +20526,6 @@ func (s *InventoryItem) SetTypeName(v string) *InventoryItem { // Attributes are the entries within the inventory item content. It contains // name and value. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/InventoryItemAttribute type InventoryItemAttribute struct { _ struct{} `type:"structure"` @@ -20675,7 +20564,6 @@ func (s *InventoryItemAttribute) SetName(v string) *InventoryItemAttribute { // The inventory item schema definition. Users can use this to compose inventory // query filters. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/InventoryItemSchema type InventoryItemSchema struct { _ struct{} `type:"structure"` @@ -20736,7 +20624,6 @@ func (s *InventoryItemSchema) SetVersion(v string) *InventoryItemSchema { } // Inventory query results. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/InventoryResultEntity type InventoryResultEntity struct { _ struct{} `type:"structure"` @@ -20772,7 +20659,6 @@ func (s *InventoryResultEntity) SetId(v string) *InventoryResultEntity { } // The inventory result item. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/InventoryResultItem type InventoryResultItem struct { _ struct{} `type:"structure"` @@ -20842,7 +20728,6 @@ func (s *InventoryResultItem) SetTypeName(v string) *InventoryResultItem { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListAssociationVersionsRequest type ListAssociationVersionsInput struct { _ struct{} `type:"structure"` @@ -20904,7 +20789,6 @@ func (s *ListAssociationVersionsInput) SetNextToken(v string) *ListAssociationVe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListAssociationVersionsResult type ListAssociationVersionsOutput struct { _ struct{} `type:"structure"` @@ -20939,7 +20823,6 @@ func (s *ListAssociationVersionsOutput) SetNextToken(v string) *ListAssociationV return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListAssociationsRequest type ListAssociationsInput struct { _ struct{} `type:"structure"` @@ -21010,7 +20893,6 @@ func (s *ListAssociationsInput) SetNextToken(v string) *ListAssociationsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListAssociationsResult type ListAssociationsOutput struct { _ struct{} `type:"structure"` @@ -21044,7 +20926,6 @@ func (s *ListAssociationsOutput) SetNextToken(v string) *ListAssociationsOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListCommandInvocationsRequest type ListCommandInvocationsInput struct { _ struct{} `type:"structure"` @@ -21147,7 +21028,6 @@ func (s *ListCommandInvocationsInput) SetNextToken(v string) *ListCommandInvocat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListCommandInvocationsResult type ListCommandInvocationsOutput struct { _ struct{} `type:"structure"` @@ -21181,7 +21061,6 @@ func (s *ListCommandInvocationsOutput) SetNextToken(v string) *ListCommandInvoca return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListCommandsRequest type ListCommandsInput struct { _ struct{} `type:"structure"` @@ -21274,7 +21153,6 @@ func (s *ListCommandsInput) SetNextToken(v string) *ListCommandsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListCommandsResult type ListCommandsOutput struct { _ struct{} `type:"structure"` @@ -21308,7 +21186,6 @@ func (s *ListCommandsOutput) SetNextToken(v string) *ListCommandsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListComplianceItemsRequest type ListComplianceItemsInput struct { _ struct{} `type:"structure"` @@ -21402,7 +21279,6 @@ func (s *ListComplianceItemsInput) SetResourceTypes(v []*string) *ListCompliance return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListComplianceItemsResult type ListComplianceItemsOutput struct { _ struct{} `type:"structure"` @@ -21436,7 +21312,6 @@ func (s *ListComplianceItemsOutput) SetNextToken(v string) *ListComplianceItemsO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListComplianceSummariesRequest type ListComplianceSummariesInput struct { _ struct{} `type:"structure"` @@ -21504,7 +21379,6 @@ func (s *ListComplianceSummariesInput) SetNextToken(v string) *ListComplianceSum return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListComplianceSummariesResult type ListComplianceSummariesOutput struct { _ struct{} `type:"structure"` @@ -21540,7 +21414,6 @@ func (s *ListComplianceSummariesOutput) SetNextToken(v string) *ListComplianceSu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListDocumentVersionsRequest type ListDocumentVersionsInput struct { _ struct{} `type:"structure"` @@ -21603,7 +21476,6 @@ func (s *ListDocumentVersionsInput) SetNextToken(v string) *ListDocumentVersions return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListDocumentVersionsResult type ListDocumentVersionsOutput struct { _ struct{} `type:"structure"` @@ -21637,7 +21509,6 @@ func (s *ListDocumentVersionsOutput) SetNextToken(v string) *ListDocumentVersion return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListDocumentsRequest type ListDocumentsInput struct { _ struct{} `type:"structure"` @@ -21727,7 +21598,6 @@ func (s *ListDocumentsInput) SetNextToken(v string) *ListDocumentsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListDocumentsResult type ListDocumentsOutput struct { _ struct{} `type:"structure"` @@ -21761,7 +21631,6 @@ func (s *ListDocumentsOutput) SetNextToken(v string) *ListDocumentsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListInventoryEntriesRequest type ListInventoryEntriesInput struct { _ struct{} `type:"structure"` @@ -21863,7 +21732,6 @@ func (s *ListInventoryEntriesInput) SetTypeName(v string) *ListInventoryEntriesI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListInventoryEntriesResult type ListInventoryEntriesOutput struct { _ struct{} `type:"structure"` @@ -21933,7 +21801,6 @@ func (s *ListInventoryEntriesOutput) SetTypeName(v string) *ListInventoryEntries return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListResourceComplianceSummariesRequest type ListResourceComplianceSummariesInput struct { _ struct{} `type:"structure"` @@ -22000,7 +21867,6 @@ func (s *ListResourceComplianceSummariesInput) SetNextToken(v string) *ListResou return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListResourceComplianceSummariesResult type ListResourceComplianceSummariesOutput struct { _ struct{} `type:"structure"` @@ -22036,7 +21902,6 @@ func (s *ListResourceComplianceSummariesOutput) SetResourceComplianceSummaryItem return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListResourceDataSyncRequest type ListResourceDataSyncInput struct { _ struct{} `type:"structure"` @@ -22084,7 +21949,6 @@ func (s *ListResourceDataSyncInput) SetNextToken(v string) *ListResourceDataSync return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListResourceDataSyncResult type ListResourceDataSyncOutput struct { _ struct{} `type:"structure"` @@ -22118,7 +21982,6 @@ func (s *ListResourceDataSyncOutput) SetResourceDataSyncItems(v []*ResourceDataS return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListTagsForResourceRequest type ListTagsForResourceInput struct { _ struct{} `type:"structure"` @@ -22171,7 +22034,6 @@ func (s *ListTagsForResourceInput) SetResourceType(v string) *ListTagsForResourc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ListTagsForResourceResult type ListTagsForResourceOutput struct { _ struct{} `type:"structure"` @@ -22196,7 +22058,6 @@ func (s *ListTagsForResourceOutput) SetTagList(v []*Tag) *ListTagsForResourceOut } // Information about an Amazon S3 bucket to write instance-level logs to. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/LoggingInfo type LoggingInfo struct { _ struct{} `type:"structure"` @@ -22265,7 +22126,6 @@ func (s *LoggingInfo) SetS3Region(v string) *LoggingInfo { } // The parameters for an AUTOMATION task type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/MaintenanceWindowAutomationParameters type MaintenanceWindowAutomationParameters struct { _ struct{} `type:"structure"` @@ -22312,7 +22172,6 @@ func (s *MaintenanceWindowAutomationParameters) SetParameters(v map[string][]*st } // Describes the information about an execution of a Maintenance Window. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/MaintenanceWindowExecution type MaintenanceWindowExecution struct { _ struct{} `type:"structure"` @@ -22383,7 +22242,6 @@ func (s *MaintenanceWindowExecution) SetWindowId(v string) *MaintenanceWindowExe // Information about a task execution performed as part of a Maintenance Window // execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/MaintenanceWindowExecutionTaskIdentity type MaintenanceWindowExecutionTaskIdentity struct { _ struct{} `type:"structure"` @@ -22473,7 +22331,6 @@ func (s *MaintenanceWindowExecutionTaskIdentity) SetWindowExecutionId(v string) // Describes the information about a task invocation for a particular target // as part of a task execution performed as part of a Maintenance Window execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/MaintenanceWindowExecutionTaskInvocationIdentity type MaintenanceWindowExecutionTaskInvocationIdentity struct { _ struct{} `type:"structure"` @@ -22602,7 +22459,6 @@ func (s *MaintenanceWindowExecutionTaskInvocationIdentity) SetWindowTargetId(v s } // Filter used in the request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/MaintenanceWindowFilter type MaintenanceWindowFilter struct { _ struct{} `type:"structure"` @@ -22649,7 +22505,6 @@ func (s *MaintenanceWindowFilter) SetValues(v []*string) *MaintenanceWindowFilte } // Information about the Maintenance Window. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/MaintenanceWindowIdentity type MaintenanceWindowIdentity struct { _ struct{} `type:"structure"` @@ -22720,7 +22575,6 @@ func (s *MaintenanceWindowIdentity) SetWindowId(v string) *MaintenanceWindowIden } // The parameters for a LAMBDA task type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/MaintenanceWindowLambdaParameters type MaintenanceWindowLambdaParameters struct { _ struct{} `type:"structure"` @@ -22786,7 +22640,6 @@ func (s *MaintenanceWindowLambdaParameters) SetQualifier(v string) *MaintenanceW } // The parameters for a RUN_COMMAND task type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/MaintenanceWindowRunCommandParameters type MaintenanceWindowRunCommandParameters struct { _ struct{} `type:"structure"` @@ -22902,7 +22755,6 @@ func (s *MaintenanceWindowRunCommandParameters) SetTimeoutSeconds(v int64) *Main } // The parameters for the STEP_FUNCTION execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/MaintenanceWindowStepFunctionsParameters type MaintenanceWindowStepFunctionsParameters struct { _ struct{} `type:"structure"` @@ -22949,7 +22801,6 @@ func (s *MaintenanceWindowStepFunctionsParameters) SetName(v string) *Maintenanc } // The target registered with the Maintenance Window. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/MaintenanceWindowTarget type MaintenanceWindowTarget struct { _ struct{} `type:"structure"` @@ -23030,7 +22881,6 @@ func (s *MaintenanceWindowTarget) SetWindowTargetId(v string) *MaintenanceWindow } // Information about a task defined for a Maintenance Window. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/MaintenanceWindowTask type MaintenanceWindowTask struct { _ struct{} `type:"structure"` @@ -23170,7 +23020,6 @@ func (s *MaintenanceWindowTask) SetWindowTaskId(v string) *MaintenanceWindowTask } // The parameters for task execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/MaintenanceWindowTaskInvocationParameters type MaintenanceWindowTaskInvocationParameters struct { _ struct{} `type:"structure"` @@ -23252,7 +23101,6 @@ func (s *MaintenanceWindowTaskInvocationParameters) SetStepFunctions(v *Maintena } // Defines the values for a task parameter. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/MaintenanceWindowTaskParameterValueExpression type MaintenanceWindowTaskParameterValueExpression struct { _ struct{} `type:"structure"` @@ -23277,7 +23125,6 @@ func (s *MaintenanceWindowTaskParameterValueExpression) SetValues(v []*string) * return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ModifyDocumentPermissionRequest type ModifyDocumentPermissionInput struct { _ struct{} `type:"structure"` @@ -23352,7 +23199,6 @@ func (s *ModifyDocumentPermissionInput) SetPermissionType(v string) *ModifyDocum return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ModifyDocumentPermissionResponse type ModifyDocumentPermissionOutput struct { _ struct{} `type:"structure"` } @@ -23369,7 +23215,6 @@ func (s ModifyDocumentPermissionOutput) GoString() string { // A summary of resources that are not compliant. The summary is organized according // to resource type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/NonCompliantSummary type NonCompliantSummary struct { _ struct{} `type:"structure"` @@ -23403,7 +23248,6 @@ func (s *NonCompliantSummary) SetSeveritySummary(v *SeveritySummary) *NonComplia } // Configurations for sending notifications. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/NotificationConfig type NotificationConfig struct { _ struct{} `type:"structure"` @@ -23453,7 +23297,6 @@ func (s *NotificationConfig) SetNotificationType(v string) *NotificationConfig { } // An Amazon EC2 Systems Manager parameter in Parameter Store. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/Parameter type Parameter struct { _ struct{} `type:"structure"` @@ -23506,7 +23349,6 @@ func (s *Parameter) SetVersion(v int64) *Parameter { } // Information about parameter usage. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ParameterHistory type ParameterHistory struct { _ struct{} `type:"structure"` @@ -23606,7 +23448,6 @@ func (s *ParameterHistory) SetVersion(v int64) *ParameterHistory { // Metada includes information like the ARN of the last user and the date/time // the parameter was last used. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ParameterMetadata type ParameterMetadata struct { _ struct{} `type:"structure"` @@ -23697,7 +23538,6 @@ func (s *ParameterMetadata) SetVersion(v int64) *ParameterMetadata { } // One or more filters. Use a filter to return a more specific list of results. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ParameterStringFilter type ParameterStringFilter struct { _ struct{} `type:"structure"` @@ -23765,7 +23605,6 @@ func (s *ParameterStringFilter) SetValues(v []*string) *ParameterStringFilter { } // This data type is deprecated. Instead, use ParameterStringFilter. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ParametersFilter type ParametersFilter struct { _ struct{} `type:"structure"` @@ -23822,7 +23661,6 @@ func (s *ParametersFilter) SetValues(v []*string) *ParametersFilter { } // Represents metadata about a patch. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/Patch type Patch struct { _ struct{} `type:"structure"` @@ -23956,7 +23794,6 @@ func (s *Patch) SetVendor(v string) *Patch { } // Defines the basic information about a patch baseline. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PatchBaselineIdentity type PatchBaselineIdentity struct { _ struct{} `type:"structure"` @@ -24021,7 +23858,6 @@ func (s *PatchBaselineIdentity) SetOperatingSystem(v string) *PatchBaselineIdent // Information about the state of a patch on a particular instance as it relates // to the patch baseline used to patch the instance. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PatchComplianceData type PatchComplianceData struct { _ struct{} `type:"structure"` @@ -24332,7 +24168,64 @@ func (s *PatchComplianceData) SetTitle(v string) *PatchComplianceData { // * Medium // // * Low -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PatchFilter +// +// SUSE Linux Enterprise Server (SUSE) Operating Systems +// +// The supported keys for SUSE operating systems are PRODUCT, CLASSIFICATION, +// and SEVERITY. See the following lists for valid values for each of these +// keys. +// +// Supported key:PRODUCT +// +// Supported values: +// +// * Suse12.0 +// +// * Suse12.1 +// +// * Suse12.2 +// +// * Suse12.3 +// +// * Suse12.4 +// +// * Suse12.5 +// +// * Suse12.6 +// +// * Suse12.7 +// +// * Suse12.8 +// +// * Suse12.9 +// +// Supported key:CLASSIFICATION +// +// Supported values: +// +// * Security +// +// * Recommended +// +// * Optional +// +// * Feature +// +// * Document +// +// * Yast +// +// Supported key:SEVERITY +// +// Supported values: +// +// * Critical +// +// * Important +// +// * Moderate +// +// * Low type PatchFilter struct { _ struct{} `type:"structure"` @@ -24394,7 +24287,6 @@ func (s *PatchFilter) SetValues(v []*string) *PatchFilter { } // A set of patch filters, typically used for approval rules. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PatchFilterGroup type PatchFilterGroup struct { _ struct{} `type:"structure"` @@ -24445,7 +24337,6 @@ func (s *PatchFilterGroup) SetPatchFilters(v []*PatchFilter) *PatchFilterGroup { // The mapping between a patch group and the patch baseline the patch group // is registered with. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PatchGroupPatchBaselineMapping type PatchGroupPatchBaselineMapping struct { _ struct{} `type:"structure"` @@ -24479,7 +24370,6 @@ func (s *PatchGroupPatchBaselineMapping) SetPatchGroup(v string) *PatchGroupPatc } // Defines a filter used in Patch Manager APIs. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PatchOrchestratorFilter type PatchOrchestratorFilter struct { _ struct{} `type:"structure"` @@ -24526,7 +24416,6 @@ func (s *PatchOrchestratorFilter) SetValues(v []*string) *PatchOrchestratorFilte } // Defines an approval rule for a patch baseline. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PatchRule type PatchRule struct { _ struct{} `type:"structure"` @@ -24541,6 +24430,11 @@ type PatchRule struct { // High, Medium, Low, and Informational. ComplianceLevel *string `type:"string" enum:"PatchComplianceLevel"` + // For instances identified by the approval rule filters, enables a patch baseline + // to apply non-security updates available in the specified repository. The + // default value is 'false'. Applies to Linux instances only. + EnableNonSecurity *bool `type:"boolean"` + // The patch filter group that defines the criteria for the rule. // // PatchFilterGroup is a required field @@ -24590,6 +24484,12 @@ func (s *PatchRule) SetComplianceLevel(v string) *PatchRule { return s } +// SetEnableNonSecurity sets the EnableNonSecurity field's value. +func (s *PatchRule) SetEnableNonSecurity(v bool) *PatchRule { + s.EnableNonSecurity = &v + return s +} + // SetPatchFilterGroup sets the PatchFilterGroup field's value. func (s *PatchRule) SetPatchFilterGroup(v *PatchFilterGroup) *PatchRule { s.PatchFilterGroup = v @@ -24597,7 +24497,6 @@ func (s *PatchRule) SetPatchFilterGroup(v *PatchFilterGroup) *PatchRule { } // A set of rules defining the approval rules for a patch baseline. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PatchRuleGroup type PatchRuleGroup struct { _ struct{} `type:"structure"` @@ -24646,8 +24545,91 @@ func (s *PatchRuleGroup) SetPatchRules(v []*PatchRule) *PatchRuleGroup { return s } +// Information about the patches to use to update the instances, including target +// operating systems and source repository. Applies to Linux instances only. +type PatchSource struct { + _ struct{} `type:"structure"` + + // The value of the yum repo configuration. For example: + // + // cachedir=/var/cache/yum/$basesearch + // + // $releasever + // + // keepcache=0 + // + // debualevel=2 + // + // Configuration is a required field + Configuration *string `min:"1" type:"string" required:"true"` + + // The name specified to identify the patch source. + // + // Name is a required field + Name *string `type:"string" required:"true"` + + // The specific operating system versions a patch repository applies to, such + // as "Ubuntu16.04", "AmazonLinux2016.09", "RedhatEnterpriseLinux7.2" or "Suse12.7". + // For lists of supported product values, see PatchFilter. + // + // Products is a required field + Products []*string `min:"1" type:"list" required:"true"` +} + +// String returns the string representation +func (s PatchSource) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PatchSource) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PatchSource) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "PatchSource"} + if s.Configuration == nil { + invalidParams.Add(request.NewErrParamRequired("Configuration")) + } + if s.Configuration != nil && len(*s.Configuration) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Configuration", 1)) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Products == nil { + invalidParams.Add(request.NewErrParamRequired("Products")) + } + if s.Products != nil && len(s.Products) < 1 { + invalidParams.Add(request.NewErrParamMinLen("Products", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetConfiguration sets the Configuration field's value. +func (s *PatchSource) SetConfiguration(v string) *PatchSource { + s.Configuration = &v + return s +} + +// SetName sets the Name field's value. +func (s *PatchSource) SetName(v string) *PatchSource { + s.Name = &v + return s +} + +// SetProducts sets the Products field's value. +func (s *PatchSource) SetProducts(v []*string) *PatchSource { + s.Products = v + return s +} + // Information about the approval status of a patch. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PatchStatus type PatchStatus struct { _ struct{} `type:"structure"` @@ -24690,7 +24672,6 @@ func (s *PatchStatus) SetDeploymentStatus(v string) *PatchStatus { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PutComplianceItemsRequest type PutComplianceItemsInput struct { _ struct{} `type:"structure"` @@ -24827,7 +24808,6 @@ func (s *PutComplianceItemsInput) SetResourceType(v string) *PutComplianceItemsI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PutComplianceItemsResult type PutComplianceItemsOutput struct { _ struct{} `type:"structure"` } @@ -24842,7 +24822,6 @@ func (s PutComplianceItemsOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PutInventoryRequest type PutInventoryInput struct { _ struct{} `type:"structure"` @@ -24908,7 +24887,6 @@ func (s *PutInventoryInput) SetItems(v []*InventoryItem) *PutInventoryInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PutInventoryResult type PutInventoryOutput struct { _ struct{} `type:"structure"` } @@ -24923,7 +24901,6 @@ func (s PutInventoryOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PutParameterRequest type PutParameterInput struct { _ struct{} `type:"structure"` @@ -24944,6 +24921,10 @@ type PutParameterInput struct { // The fully qualified name includes the complete hierarchy of the parameter // path and name. For example: /Dev/DBServer/MySQL/db-string13 // + // For information about parameter name requirements and restrictions, see About + // Creating Systems Manager Parameters (http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-su-create.html#sysman-paramstore-su-create-about) + // in the AWS Systems Manager User Guide. + // // The maximum length constraint listed below includes capacity for additional // system attributes that are not part of the name. The maximum length for the // fully qualified parameter name is 1011 characters. @@ -25045,7 +25026,6 @@ func (s *PutParameterInput) SetValue(v string) *PutParameterInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/PutParameterResult type PutParameterOutput struct { _ struct{} `type:"structure"` @@ -25074,7 +25054,6 @@ func (s *PutParameterOutput) SetVersion(v int64) *PutParameterOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/RegisterDefaultPatchBaselineRequest type RegisterDefaultPatchBaselineInput struct { _ struct{} `type:"structure"` @@ -25116,7 +25095,6 @@ func (s *RegisterDefaultPatchBaselineInput) SetBaselineId(v string) *RegisterDef return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/RegisterDefaultPatchBaselineResult type RegisterDefaultPatchBaselineOutput struct { _ struct{} `type:"structure"` @@ -25140,7 +25118,6 @@ func (s *RegisterDefaultPatchBaselineOutput) SetBaselineId(v string) *RegisterDe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/RegisterPatchBaselineForPatchGroupRequest type RegisterPatchBaselineForPatchGroupInput struct { _ struct{} `type:"structure"` @@ -25199,7 +25176,6 @@ func (s *RegisterPatchBaselineForPatchGroupInput) SetPatchGroup(v string) *Regis return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/RegisterPatchBaselineForPatchGroupResult type RegisterPatchBaselineForPatchGroupOutput struct { _ struct{} `type:"structure"` @@ -25232,7 +25208,6 @@ func (s *RegisterPatchBaselineForPatchGroupOutput) SetPatchGroup(v string) *Regi return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/RegisterTargetWithMaintenanceWindowRequest type RegisterTargetWithMaintenanceWindowInput struct { _ struct{} `type:"structure"` @@ -25362,7 +25337,6 @@ func (s *RegisterTargetWithMaintenanceWindowInput) SetWindowId(v string) *Regist return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/RegisterTargetWithMaintenanceWindowResult type RegisterTargetWithMaintenanceWindowOutput struct { _ struct{} `type:"structure"` @@ -25386,7 +25360,6 @@ func (s *RegisterTargetWithMaintenanceWindowOutput) SetWindowTargetId(v string) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/RegisterTaskWithMaintenanceWindowRequest type RegisterTaskWithMaintenanceWindowInput struct { _ struct{} `type:"structure"` @@ -25618,7 +25591,6 @@ func (s *RegisterTaskWithMaintenanceWindowInput) SetWindowId(v string) *Register return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/RegisterTaskWithMaintenanceWindowResult type RegisterTaskWithMaintenanceWindowOutput struct { _ struct{} `type:"structure"` @@ -25642,7 +25614,6 @@ func (s *RegisterTaskWithMaintenanceWindowOutput) SetWindowTaskId(v string) *Reg return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/RemoveTagsFromResourceRequest type RemoveTagsFromResourceInput struct { _ struct{} `type:"structure"` @@ -25709,7 +25680,6 @@ func (s *RemoveTagsFromResourceInput) SetTagKeys(v []*string) *RemoveTagsFromRes return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/RemoveTagsFromResourceResult type RemoveTagsFromResourceOutput struct { _ struct{} `type:"structure"` } @@ -25725,7 +25695,6 @@ func (s RemoveTagsFromResourceOutput) GoString() string { } // Information about targets that resolved during the Automation execution. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ResolvedTargets type ResolvedTargets struct { _ struct{} `type:"structure"` @@ -25760,7 +25729,6 @@ func (s *ResolvedTargets) SetTruncated(v bool) *ResolvedTargets { } // Compliance summary information for a specific resource. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ResourceComplianceSummaryItem type ResourceComplianceSummaryItem struct { _ struct{} `type:"structure"` @@ -25850,7 +25818,6 @@ func (s *ResourceComplianceSummaryItem) SetStatus(v string) *ResourceComplianceS // Information about a Resource Data Sync configuration, including its current // status and last successful sync. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ResourceDataSyncItem type ResourceDataSyncItem struct { _ struct{} `type:"structure"` @@ -25920,7 +25887,6 @@ func (s *ResourceDataSyncItem) SetSyncName(v string) *ResourceDataSyncItem { } // Information about the target Amazon S3 bucket for the Resource Data Sync. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ResourceDataSyncS3Destination type ResourceDataSyncS3Destination struct { _ struct{} `type:"structure"` @@ -26019,7 +25985,6 @@ func (s *ResourceDataSyncS3Destination) SetSyncFormat(v string) *ResourceDataSyn } // The inventory item result attribute. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/ResultAttribute type ResultAttribute struct { _ struct{} `type:"structure"` @@ -26063,7 +26028,6 @@ func (s *ResultAttribute) SetTypeName(v string) *ResultAttribute { } // An Amazon S3 bucket where you want to store the results of this request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/S3OutputLocation type S3OutputLocation struct { _ struct{} `type:"structure"` @@ -26125,7 +26089,6 @@ func (s *S3OutputLocation) SetOutputS3Region(v string) *S3OutputLocation { // A URL for the Amazon S3 bucket where you want to store the results of this // request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/S3OutputUrl type S3OutputUrl struct { _ struct{} `type:"structure"` @@ -26150,7 +26113,6 @@ func (s *S3OutputUrl) SetOutputUrl(v string) *S3OutputUrl { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/SendAutomationSignalRequest type SendAutomationSignalInput struct { _ struct{} `type:"structure"` @@ -26221,7 +26183,6 @@ func (s *SendAutomationSignalInput) SetSignalType(v string) *SendAutomationSigna return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/SendAutomationSignalResult type SendAutomationSignalOutput struct { _ struct{} `type:"structure"` } @@ -26236,7 +26197,6 @@ func (s SendAutomationSignalOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/SendCommandRequest type SendCommandInput struct { _ struct{} `type:"structure"` @@ -26450,7 +26410,6 @@ func (s *SendCommandInput) SetTimeoutSeconds(v int64) *SendCommandInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/SendCommandResult type SendCommandOutput struct { _ struct{} `type:"structure"` @@ -26477,7 +26436,6 @@ func (s *SendCommandOutput) SetCommand(v *Command) *SendCommandOutput { // The number of managed instances found for each patch severity level defined // in the request filter. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/SeveritySummary type SeveritySummary struct { _ struct{} `type:"structure"` @@ -26558,7 +26516,6 @@ func (s *SeveritySummary) SetUnspecifiedCount(v int64) *SeveritySummary { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/StartAutomationExecutionRequest type StartAutomationExecutionInput struct { _ struct{} `type:"structure"` @@ -26713,7 +26670,6 @@ func (s *StartAutomationExecutionInput) SetTargets(v []*Target) *StartAutomation return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/StartAutomationExecutionResult type StartAutomationExecutionOutput struct { _ struct{} `type:"structure"` @@ -26738,7 +26694,6 @@ func (s *StartAutomationExecutionOutput) SetAutomationExecutionId(v string) *Sta } // Detailed information about an the execution state of an Automation step. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/StepExecution type StepExecution struct { _ struct{} `type:"structure"` @@ -26904,7 +26859,6 @@ func (s *StepExecution) SetTimeoutSeconds(v int64) *StepExecution { // A filter to limit the amount of step execution information returned by the // call. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/StepExecutionFilter type StepExecutionFilter struct { _ struct{} `type:"structure"` @@ -26962,7 +26916,6 @@ func (s *StepExecutionFilter) SetValues(v []*string) *StepExecutionFilter { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/StopAutomationExecutionRequest type StopAutomationExecutionInput struct { _ struct{} `type:"structure"` @@ -27014,7 +26967,6 @@ func (s *StopAutomationExecutionInput) SetType(v string) *StopAutomationExecutio return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/StopAutomationExecutionResult type StopAutomationExecutionOutput struct { _ struct{} `type:"structure"` } @@ -27033,7 +26985,6 @@ func (s StopAutomationExecutionOutput) GoString() string { // your resources in different ways, for example, by purpose, owner, or environment. // In Systems Manager, you can apply tags to documents, managed instances, Maintenance // Windows, Parameter Store parameters, and patch baselines. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/Tag type Tag struct { _ struct{} `type:"structure"` @@ -27095,7 +27046,6 @@ func (s *Tag) SetValue(v string) *Tag { // An array of search criteria that targets instances using a Key,Value combination // that you specify. Targets is required if you don't provide one or more instance // IDs in the call. -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/Target type Target struct { _ struct{} `type:"structure"` @@ -27148,7 +27098,6 @@ func (s *Target) SetValues(v []*string) *Target { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateAssociationRequest type UpdateAssociationInput struct { _ struct{} `type:"structure"` @@ -27280,7 +27229,6 @@ func (s *UpdateAssociationInput) SetTargets(v []*Target) *UpdateAssociationInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateAssociationResult type UpdateAssociationOutput struct { _ struct{} `type:"structure"` @@ -27304,7 +27252,6 @@ func (s *UpdateAssociationOutput) SetAssociationDescription(v *AssociationDescri return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateAssociationStatusRequest type UpdateAssociationStatusInput struct { _ struct{} `type:"structure"` @@ -27376,7 +27323,6 @@ func (s *UpdateAssociationStatusInput) SetName(v string) *UpdateAssociationStatu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateAssociationStatusResult type UpdateAssociationStatusOutput struct { _ struct{} `type:"structure"` @@ -27400,7 +27346,6 @@ func (s *UpdateAssociationStatusOutput) SetAssociationDescription(v *Association return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateDocumentDefaultVersionRequest type UpdateDocumentDefaultVersionInput struct { _ struct{} `type:"structure"` @@ -27453,7 +27398,6 @@ func (s *UpdateDocumentDefaultVersionInput) SetName(v string) *UpdateDocumentDef return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateDocumentDefaultVersionResult type UpdateDocumentDefaultVersionOutput struct { _ struct{} `type:"structure"` @@ -27478,7 +27422,6 @@ func (s *UpdateDocumentDefaultVersionOutput) SetDescription(v *DocumentDefaultVe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateDocumentRequest type UpdateDocumentInput struct { _ struct{} `type:"structure"` @@ -27562,7 +27505,6 @@ func (s *UpdateDocumentInput) SetTargetType(v string) *UpdateDocumentInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateDocumentResult type UpdateDocumentOutput struct { _ struct{} `type:"structure"` @@ -27586,7 +27528,6 @@ func (s *UpdateDocumentOutput) SetDocumentDescription(v *DocumentDescription) *U return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateMaintenanceWindowRequest type UpdateMaintenanceWindowInput struct { _ struct{} `type:"structure"` @@ -27716,7 +27657,6 @@ func (s *UpdateMaintenanceWindowInput) SetWindowId(v string) *UpdateMaintenanceW return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateMaintenanceWindowResult type UpdateMaintenanceWindowOutput struct { _ struct{} `type:"structure"` @@ -27805,7 +27745,6 @@ func (s *UpdateMaintenanceWindowOutput) SetWindowId(v string) *UpdateMaintenance return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateMaintenanceWindowTargetRequest type UpdateMaintenanceWindowTargetInput struct { _ struct{} `type:"structure"` @@ -27931,7 +27870,6 @@ func (s *UpdateMaintenanceWindowTargetInput) SetWindowTargetId(v string) *Update return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateMaintenanceWindowTargetResult type UpdateMaintenanceWindowTargetOutput struct { _ struct{} `type:"structure"` @@ -28000,7 +27938,6 @@ func (s *UpdateMaintenanceWindowTargetOutput) SetWindowTargetId(v string) *Updat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateMaintenanceWindowTaskRequest type UpdateMaintenanceWindowTaskInput struct { _ struct{} `type:"structure"` @@ -28215,7 +28152,6 @@ func (s *UpdateMaintenanceWindowTaskInput) SetWindowTaskId(v string) *UpdateMain return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateMaintenanceWindowTaskResult type UpdateMaintenanceWindowTaskOutput struct { _ struct{} `type:"structure"` @@ -28347,7 +28283,6 @@ func (s *UpdateMaintenanceWindowTaskOutput) SetWindowTaskId(v string) *UpdateMai return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateManagedInstanceRoleRequest type UpdateManagedInstanceRoleInput struct { _ struct{} `type:"structure"` @@ -28400,7 +28335,6 @@ func (s *UpdateManagedInstanceRoleInput) SetInstanceId(v string) *UpdateManagedI return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdateManagedInstanceRoleResult type UpdateManagedInstanceRoleOutput struct { _ struct{} `type:"structure"` } @@ -28415,7 +28349,6 @@ func (s UpdateManagedInstanceRoleOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdatePatchBaselineRequest type UpdatePatchBaselineInput struct { _ struct{} `type:"structure"` @@ -28428,6 +28361,11 @@ type UpdatePatchBaselineInput struct { // Assigns a new compliance severity level to an existing patch baseline. ApprovedPatchesComplianceLevel *string `type:"string" enum:"PatchComplianceLevel"` + // Indicates whether the list of approved patches includes non-security updates + // that should be applied to the instances. The default value is 'false'. Applies + // to Linux instances only. + ApprovedPatchesEnableNonSecurity *bool `type:"boolean"` + // The ID of the patch baseline to update. // // BaselineId is a required field @@ -28444,6 +28382,15 @@ type UpdatePatchBaselineInput struct { // A list of explicitly rejected patches for the baseline. RejectedPatches []*string `type:"list"` + + // If True, then all fields that are required by the CreatePatchBaseline action + // are also required for this API request. Optional fields that are not specified + // are set to null. + Replace *bool `type:"boolean"` + + // Information about the patches to use to update the instances, including target + // operating systems and source repositories. Applies to Linux instances only. + Sources []*PatchSource `type:"list"` } // String returns the string representation @@ -28481,6 +28428,16 @@ func (s *UpdatePatchBaselineInput) Validate() error { invalidParams.AddNested("GlobalFilters", err.(request.ErrInvalidParams)) } } + if s.Sources != nil { + for i, v := range s.Sources { + if v == nil { + continue + } + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Sources", i), err.(request.ErrInvalidParams)) + } + } + } if invalidParams.Len() > 0 { return invalidParams @@ -28506,6 +28463,12 @@ func (s *UpdatePatchBaselineInput) SetApprovedPatchesComplianceLevel(v string) * return s } +// SetApprovedPatchesEnableNonSecurity sets the ApprovedPatchesEnableNonSecurity field's value. +func (s *UpdatePatchBaselineInput) SetApprovedPatchesEnableNonSecurity(v bool) *UpdatePatchBaselineInput { + s.ApprovedPatchesEnableNonSecurity = &v + return s +} + // SetBaselineId sets the BaselineId field's value. func (s *UpdatePatchBaselineInput) SetBaselineId(v string) *UpdatePatchBaselineInput { s.BaselineId = &v @@ -28536,7 +28499,18 @@ func (s *UpdatePatchBaselineInput) SetRejectedPatches(v []*string) *UpdatePatchB return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/ssm-2014-11-06/UpdatePatchBaselineResult +// SetReplace sets the Replace field's value. +func (s *UpdatePatchBaselineInput) SetReplace(v bool) *UpdatePatchBaselineInput { + s.Replace = &v + return s +} + +// SetSources sets the Sources field's value. +func (s *UpdatePatchBaselineInput) SetSources(v []*PatchSource) *UpdatePatchBaselineInput { + s.Sources = v + return s +} + type UpdatePatchBaselineOutput struct { _ struct{} `type:"structure"` @@ -28550,6 +28524,11 @@ type UpdatePatchBaselineOutput struct { // completed. ApprovedPatchesComplianceLevel *string `type:"string" enum:"PatchComplianceLevel"` + // Indicates whether the list of approved patches includes non-security updates + // that should be applied to the instances. The default value is 'false'. Applies + // to Linux instances only. + ApprovedPatchesEnableNonSecurity *bool `type:"boolean"` + // The ID of the deleted patch baseline. BaselineId *string `min:"20" type:"string"` @@ -28573,6 +28552,10 @@ type UpdatePatchBaselineOutput struct { // A list of explicitly rejected patches for the baseline. RejectedPatches []*string `type:"list"` + + // Information about the patches to use to update the instances, including target + // operating systems and source repositories. Applies to Linux instances only. + Sources []*PatchSource `type:"list"` } // String returns the string representation @@ -28603,6 +28586,12 @@ func (s *UpdatePatchBaselineOutput) SetApprovedPatchesComplianceLevel(v string) return s } +// SetApprovedPatchesEnableNonSecurity sets the ApprovedPatchesEnableNonSecurity field's value. +func (s *UpdatePatchBaselineOutput) SetApprovedPatchesEnableNonSecurity(v bool) *UpdatePatchBaselineOutput { + s.ApprovedPatchesEnableNonSecurity = &v + return s +} + // SetBaselineId sets the BaselineId field's value. func (s *UpdatePatchBaselineOutput) SetBaselineId(v string) *UpdatePatchBaselineOutput { s.BaselineId = &v @@ -28651,6 +28640,12 @@ func (s *UpdatePatchBaselineOutput) SetRejectedPatches(v []*string) *UpdatePatch return s } +// SetSources sets the Sources field's value. +func (s *UpdatePatchBaselineOutput) SetSources(v []*PatchSource) *UpdatePatchBaselineOutput { + s.Sources = v + return s +} + const ( // AssociationFilterKeyInstanceId is a AssociationFilterKey enum value AssociationFilterKeyInstanceId = "InstanceId" @@ -29118,6 +29113,9 @@ const ( // OperatingSystemRedhatEnterpriseLinux is a OperatingSystem enum value OperatingSystemRedhatEnterpriseLinux = "REDHAT_ENTERPRISE_LINUX" + + // OperatingSystemSuse is a OperatingSystem enum value + OperatingSystemSuse = "SUSE" ) const ( diff --git a/vendor/github.com/aws/aws-sdk-go/service/sts/api.go b/vendor/github.com/aws/aws-sdk-go/service/sts/api.go index 23f0a06db..22a0a1285 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/sts/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/sts/api.go @@ -1049,7 +1049,6 @@ func (c *STS) GetSessionTokenWithContext(ctx aws.Context, input *GetSessionToken return out, req.Send() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleRequest type AssumeRoleInput struct { _ struct{} `type:"structure"` @@ -1241,7 +1240,6 @@ func (s *AssumeRoleInput) SetTokenCode(v string) *AssumeRoleInput { // Contains the response to a successful AssumeRole request, including temporary // AWS credentials that can be used to make AWS requests. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleResponse type AssumeRoleOutput struct { _ struct{} `type:"structure"` @@ -1295,7 +1293,6 @@ func (s *AssumeRoleOutput) SetPackedPolicySize(v int64) *AssumeRoleOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAMLRequest type AssumeRoleWithSAMLInput struct { _ struct{} `type:"structure"` @@ -1436,7 +1433,6 @@ func (s *AssumeRoleWithSAMLInput) SetSAMLAssertion(v string) *AssumeRoleWithSAML // Contains the response to a successful AssumeRoleWithSAML request, including // temporary AWS credentials that can be used to make AWS requests. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAMLResponse type AssumeRoleWithSAMLOutput struct { _ struct{} `type:"structure"` @@ -1548,7 +1544,6 @@ func (s *AssumeRoleWithSAMLOutput) SetSubjectType(v string) *AssumeRoleWithSAMLO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentityRequest type AssumeRoleWithWebIdentityInput struct { _ struct{} `type:"structure"` @@ -1711,7 +1706,6 @@ func (s *AssumeRoleWithWebIdentityInput) SetWebIdentityToken(v string) *AssumeRo // Contains the response to a successful AssumeRoleWithWebIdentity request, // including temporary AWS credentials that can be used to make AWS requests. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentityResponse type AssumeRoleWithWebIdentityOutput struct { _ struct{} `type:"structure"` @@ -1804,7 +1798,6 @@ func (s *AssumeRoleWithWebIdentityOutput) SetSubjectFromWebIdentityToken(v strin // The identifiers for the temporary security credentials that the operation // returns. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumedRoleUser type AssumedRoleUser struct { _ struct{} `type:"structure"` @@ -1847,7 +1840,6 @@ func (s *AssumedRoleUser) SetAssumedRoleId(v string) *AssumedRoleUser { } // AWS credentials for API authentication. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/Credentials type Credentials struct { _ struct{} `type:"structure"` @@ -1906,7 +1898,6 @@ func (s *Credentials) SetSessionToken(v string) *Credentials { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessageRequest type DecodeAuthorizationMessageInput struct { _ struct{} `type:"structure"` @@ -1951,7 +1942,6 @@ func (s *DecodeAuthorizationMessageInput) SetEncodedMessage(v string) *DecodeAut // A document that contains additional information about the authorization status // of a request from an encoded message that is returned in response to an AWS // request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessageResponse type DecodeAuthorizationMessageOutput struct { _ struct{} `type:"structure"` @@ -1976,7 +1966,6 @@ func (s *DecodeAuthorizationMessageOutput) SetDecodedMessage(v string) *DecodeAu } // Identifiers for the federated user that is associated with the credentials. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/FederatedUser type FederatedUser struct { _ struct{} `type:"structure"` @@ -2017,7 +2006,6 @@ func (s *FederatedUser) SetFederatedUserId(v string) *FederatedUser { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentityRequest type GetCallerIdentityInput struct { _ struct{} `type:"structure"` } @@ -2034,7 +2022,6 @@ func (s GetCallerIdentityInput) GoString() string { // Contains the response to a successful GetCallerIdentity request, including // information about the entity making the request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentityResponse type GetCallerIdentityOutput struct { _ struct{} `type:"structure"` @@ -2080,7 +2067,6 @@ func (s *GetCallerIdentityOutput) SetUserId(v string) *GetCallerIdentityOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationTokenRequest type GetFederationTokenInput struct { _ struct{} `type:"structure"` @@ -2189,7 +2175,6 @@ func (s *GetFederationTokenInput) SetPolicy(v string) *GetFederationTokenInput { // Contains the response to a successful GetFederationToken request, including // temporary AWS credentials that can be used to make AWS requests. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationTokenResponse type GetFederationTokenOutput struct { _ struct{} `type:"structure"` @@ -2242,7 +2227,6 @@ func (s *GetFederationTokenOutput) SetPackedPolicySize(v int64) *GetFederationTo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionTokenRequest type GetSessionTokenInput struct { _ struct{} `type:"structure"` @@ -2327,7 +2311,6 @@ func (s *GetSessionTokenInput) SetTokenCode(v string) *GetSessionTokenInput { // Contains the response to a successful GetSessionToken request, including // temporary AWS credentials that can be used to make AWS requests. -// See also, https://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionTokenResponse type GetSessionTokenOutput struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/waf/api.go b/vendor/github.com/aws/aws-sdk-go/service/waf/api.go index a37b373de..a95132d8d 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/waf/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/waf/api.go @@ -8229,7 +8229,6 @@ func (c *WAF) UpdateXssMatchSetWithContext(ctx aws.Context, input *UpdateXssMatc // // To specify whether to insert or delete a Rule, use the Action parameter in // the WebACLUpdate data type. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ActivatedRule type ActivatedRule struct { _ struct{} `type:"structure"` @@ -8370,7 +8369,6 @@ func (s *ActivatedRule) SetType(v string) *ActivatedRule { // want AWS WAF to search for. If a ByteMatchSet contains more than one ByteMatchTuple // object, a request needs to match the settings in only one ByteMatchTuple // to be considered a match. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ByteMatchSet type ByteMatchSet struct { _ struct{} `type:"structure"` @@ -8426,7 +8424,6 @@ func (s *ByteMatchSet) SetName(v string) *ByteMatchSet { // Returned by ListByteMatchSets. Each ByteMatchSetSummary object includes the // Name and ByteMatchSetId for one ByteMatchSet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ByteMatchSetSummary type ByteMatchSetSummary struct { _ struct{} `type:"structure"` @@ -8470,7 +8467,6 @@ func (s *ByteMatchSetSummary) SetName(v string) *ByteMatchSetSummary { // In an UpdateByteMatchSet request, ByteMatchSetUpdate specifies whether to // insert or delete a ByteMatchTuple and includes the settings for the ByteMatchTuple. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ByteMatchSetUpdate type ByteMatchSetUpdate struct { _ struct{} `type:"structure"` @@ -8534,7 +8530,6 @@ func (s *ByteMatchSetUpdate) SetByteMatchTuple(v *ByteMatchTuple) *ByteMatchSetU // The bytes (typically a string that corresponds with ASCII characters) that // you want AWS WAF to search for in web requests, the location in requests // that you want AWS WAF to search, and other settings. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ByteMatchTuple type ByteMatchTuple struct { _ struct{} `type:"structure"` @@ -8780,7 +8775,6 @@ func (s *ByteMatchTuple) SetTextTransformation(v string) *ByteMatchTuple { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateByteMatchSetRequest type CreateByteMatchSetInput struct { _ struct{} `type:"structure"` @@ -8840,7 +8834,6 @@ func (s *CreateByteMatchSetInput) SetName(v string) *CreateByteMatchSetInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateByteMatchSetResponse type CreateByteMatchSetOutput struct { _ struct{} `type:"structure"` @@ -8875,7 +8868,6 @@ func (s *CreateByteMatchSetOutput) SetChangeToken(v string) *CreateByteMatchSetO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateGeoMatchSetRequest type CreateGeoMatchSetInput struct { _ struct{} `type:"structure"` @@ -8935,7 +8927,6 @@ func (s *CreateGeoMatchSetInput) SetName(v string) *CreateGeoMatchSetInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateGeoMatchSetResponse type CreateGeoMatchSetOutput struct { _ struct{} `type:"structure"` @@ -8971,7 +8962,6 @@ func (s *CreateGeoMatchSetOutput) SetGeoMatchSet(v *GeoMatchSet) *CreateGeoMatch return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateIPSetRequest type CreateIPSetInput struct { _ struct{} `type:"structure"` @@ -9031,7 +9021,6 @@ func (s *CreateIPSetInput) SetName(v string) *CreateIPSetInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateIPSetResponse type CreateIPSetOutput struct { _ struct{} `type:"structure"` @@ -9066,7 +9055,6 @@ func (s *CreateIPSetOutput) SetIPSet(v *IPSet) *CreateIPSetOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRateBasedRuleRequest type CreateRateBasedRuleInput struct { _ struct{} `type:"structure"` @@ -9183,7 +9171,6 @@ func (s *CreateRateBasedRuleInput) SetRateLimit(v int64) *CreateRateBasedRuleInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRateBasedRuleResponse type CreateRateBasedRuleOutput struct { _ struct{} `type:"structure"` @@ -9218,7 +9205,6 @@ func (s *CreateRateBasedRuleOutput) SetRule(v *RateBasedRule) *CreateRateBasedRu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRegexMatchSetRequest type CreateRegexMatchSetInput struct { _ struct{} `type:"structure"` @@ -9278,7 +9264,6 @@ func (s *CreateRegexMatchSetInput) SetName(v string) *CreateRegexMatchSetInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRegexMatchSetResponse type CreateRegexMatchSetOutput struct { _ struct{} `type:"structure"` @@ -9313,7 +9298,6 @@ func (s *CreateRegexMatchSetOutput) SetRegexMatchSet(v *RegexMatchSet) *CreateRe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRegexPatternSetRequest type CreateRegexPatternSetInput struct { _ struct{} `type:"structure"` @@ -9373,7 +9357,6 @@ func (s *CreateRegexPatternSetInput) SetName(v string) *CreateRegexPatternSetInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRegexPatternSetResponse type CreateRegexPatternSetOutput struct { _ struct{} `type:"structure"` @@ -9408,7 +9391,6 @@ func (s *CreateRegexPatternSetOutput) SetRegexPatternSet(v *RegexPatternSet) *Cr return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRuleGroupRequest type CreateRuleGroupInput struct { _ struct{} `type:"structure"` @@ -9485,7 +9467,6 @@ func (s *CreateRuleGroupInput) SetName(v string) *CreateRuleGroupInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRuleGroupResponse type CreateRuleGroupOutput struct { _ struct{} `type:"structure"` @@ -9520,7 +9501,6 @@ func (s *CreateRuleGroupOutput) SetRuleGroup(v *RuleGroup) *CreateRuleGroupOutpu return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRuleRequest type CreateRuleInput struct { _ struct{} `type:"structure"` @@ -9597,7 +9577,6 @@ func (s *CreateRuleInput) SetName(v string) *CreateRuleInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRuleResponse type CreateRuleOutput struct { _ struct{} `type:"structure"` @@ -9632,7 +9611,6 @@ func (s *CreateRuleOutput) SetRule(v *Rule) *CreateRuleOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateSizeConstraintSetRequest type CreateSizeConstraintSetInput struct { _ struct{} `type:"structure"` @@ -9692,7 +9670,6 @@ func (s *CreateSizeConstraintSetInput) SetName(v string) *CreateSizeConstraintSe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateSizeConstraintSetResponse type CreateSizeConstraintSetOutput struct { _ struct{} `type:"structure"` @@ -9728,7 +9705,6 @@ func (s *CreateSizeConstraintSetOutput) SetSizeConstraintSet(v *SizeConstraintSe } // A request to create a SqlInjectionMatchSet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateSqlInjectionMatchSetRequest type CreateSqlInjectionMatchSetInput struct { _ struct{} `type:"structure"` @@ -9789,7 +9765,6 @@ func (s *CreateSqlInjectionMatchSetInput) SetName(v string) *CreateSqlInjectionM } // The response to a CreateSqlInjectionMatchSet request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateSqlInjectionMatchSetResponse type CreateSqlInjectionMatchSetOutput struct { _ struct{} `type:"structure"` @@ -9824,7 +9799,6 @@ func (s *CreateSqlInjectionMatchSetOutput) SetSqlInjectionMatchSet(v *SqlInjecti return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateWebACLRequest type CreateWebACLInput struct { _ struct{} `type:"structure"` @@ -9921,7 +9895,6 @@ func (s *CreateWebACLInput) SetName(v string) *CreateWebACLInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateWebACLResponse type CreateWebACLOutput struct { _ struct{} `type:"structure"` @@ -9957,7 +9930,6 @@ func (s *CreateWebACLOutput) SetWebACL(v *WebACL) *CreateWebACLOutput { } // A request to create an XssMatchSet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateXssMatchSetRequest type CreateXssMatchSetInput struct { _ struct{} `type:"structure"` @@ -10018,7 +9990,6 @@ func (s *CreateXssMatchSetInput) SetName(v string) *CreateXssMatchSetInput { } // The response to a CreateXssMatchSet request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateXssMatchSetResponse type CreateXssMatchSetOutput struct { _ struct{} `type:"structure"` @@ -10053,7 +10024,6 @@ func (s *CreateXssMatchSetOutput) SetXssMatchSet(v *XssMatchSet) *CreateXssMatch return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteByteMatchSetRequest type DeleteByteMatchSetInput struct { _ struct{} `type:"structure"` @@ -10113,7 +10083,6 @@ func (s *DeleteByteMatchSetInput) SetChangeToken(v string) *DeleteByteMatchSetIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteByteMatchSetResponse type DeleteByteMatchSetOutput struct { _ struct{} `type:"structure"` @@ -10139,7 +10108,6 @@ func (s *DeleteByteMatchSetOutput) SetChangeToken(v string) *DeleteByteMatchSetO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteGeoMatchSetRequest type DeleteGeoMatchSetInput struct { _ struct{} `type:"structure"` @@ -10199,7 +10167,6 @@ func (s *DeleteGeoMatchSetInput) SetGeoMatchSetId(v string) *DeleteGeoMatchSetIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteGeoMatchSetResponse type DeleteGeoMatchSetOutput struct { _ struct{} `type:"structure"` @@ -10225,7 +10192,6 @@ func (s *DeleteGeoMatchSetOutput) SetChangeToken(v string) *DeleteGeoMatchSetOut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteIPSetRequest type DeleteIPSetInput struct { _ struct{} `type:"structure"` @@ -10285,7 +10251,6 @@ func (s *DeleteIPSetInput) SetIPSetId(v string) *DeleteIPSetInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteIPSetResponse type DeleteIPSetOutput struct { _ struct{} `type:"structure"` @@ -10311,7 +10276,6 @@ func (s *DeleteIPSetOutput) SetChangeToken(v string) *DeleteIPSetOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRateBasedRuleRequest type DeleteRateBasedRuleInput struct { _ struct{} `type:"structure"` @@ -10371,7 +10335,6 @@ func (s *DeleteRateBasedRuleInput) SetRuleId(v string) *DeleteRateBasedRuleInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRateBasedRuleResponse type DeleteRateBasedRuleOutput struct { _ struct{} `type:"structure"` @@ -10397,7 +10360,6 @@ func (s *DeleteRateBasedRuleOutput) SetChangeToken(v string) *DeleteRateBasedRul return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRegexMatchSetRequest type DeleteRegexMatchSetInput struct { _ struct{} `type:"structure"` @@ -10457,7 +10419,6 @@ func (s *DeleteRegexMatchSetInput) SetRegexMatchSetId(v string) *DeleteRegexMatc return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRegexMatchSetResponse type DeleteRegexMatchSetOutput struct { _ struct{} `type:"structure"` @@ -10483,7 +10444,6 @@ func (s *DeleteRegexMatchSetOutput) SetChangeToken(v string) *DeleteRegexMatchSe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRegexPatternSetRequest type DeleteRegexPatternSetInput struct { _ struct{} `type:"structure"` @@ -10543,7 +10503,6 @@ func (s *DeleteRegexPatternSetInput) SetRegexPatternSetId(v string) *DeleteRegex return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRegexPatternSetResponse type DeleteRegexPatternSetOutput struct { _ struct{} `type:"structure"` @@ -10569,7 +10528,6 @@ func (s *DeleteRegexPatternSetOutput) SetChangeToken(v string) *DeleteRegexPatte return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRuleGroupRequest type DeleteRuleGroupInput struct { _ struct{} `type:"structure"` @@ -10629,7 +10587,6 @@ func (s *DeleteRuleGroupInput) SetRuleGroupId(v string) *DeleteRuleGroupInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRuleGroupResponse type DeleteRuleGroupOutput struct { _ struct{} `type:"structure"` @@ -10655,7 +10612,6 @@ func (s *DeleteRuleGroupOutput) SetChangeToken(v string) *DeleteRuleGroupOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRuleRequest type DeleteRuleInput struct { _ struct{} `type:"structure"` @@ -10715,7 +10671,6 @@ func (s *DeleteRuleInput) SetRuleId(v string) *DeleteRuleInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRuleResponse type DeleteRuleOutput struct { _ struct{} `type:"structure"` @@ -10741,7 +10696,6 @@ func (s *DeleteRuleOutput) SetChangeToken(v string) *DeleteRuleOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteSizeConstraintSetRequest type DeleteSizeConstraintSetInput struct { _ struct{} `type:"structure"` @@ -10801,7 +10755,6 @@ func (s *DeleteSizeConstraintSetInput) SetSizeConstraintSetId(v string) *DeleteS return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteSizeConstraintSetResponse type DeleteSizeConstraintSetOutput struct { _ struct{} `type:"structure"` @@ -10828,7 +10781,6 @@ func (s *DeleteSizeConstraintSetOutput) SetChangeToken(v string) *DeleteSizeCons } // A request to delete a SqlInjectionMatchSet from AWS WAF. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteSqlInjectionMatchSetRequest type DeleteSqlInjectionMatchSetInput struct { _ struct{} `type:"structure"` @@ -10889,7 +10841,6 @@ func (s *DeleteSqlInjectionMatchSetInput) SetSqlInjectionMatchSetId(v string) *D } // The response to a request to delete a SqlInjectionMatchSet from AWS WAF. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteSqlInjectionMatchSetResponse type DeleteSqlInjectionMatchSetOutput struct { _ struct{} `type:"structure"` @@ -10915,7 +10866,6 @@ func (s *DeleteSqlInjectionMatchSetOutput) SetChangeToken(v string) *DeleteSqlIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteWebACLRequest type DeleteWebACLInput struct { _ struct{} `type:"structure"` @@ -10975,7 +10925,6 @@ func (s *DeleteWebACLInput) SetWebACLId(v string) *DeleteWebACLInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteWebACLResponse type DeleteWebACLOutput struct { _ struct{} `type:"structure"` @@ -11002,7 +10951,6 @@ func (s *DeleteWebACLOutput) SetChangeToken(v string) *DeleteWebACLOutput { } // A request to delete an XssMatchSet from AWS WAF. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteXssMatchSetRequest type DeleteXssMatchSetInput struct { _ struct{} `type:"structure"` @@ -11063,7 +11011,6 @@ func (s *DeleteXssMatchSetInput) SetXssMatchSetId(v string) *DeleteXssMatchSetIn } // The response to a request to delete an XssMatchSet from AWS WAF. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteXssMatchSetResponse type DeleteXssMatchSetOutput struct { _ struct{} `type:"structure"` @@ -11090,7 +11037,6 @@ func (s *DeleteXssMatchSetOutput) SetChangeToken(v string) *DeleteXssMatchSetOut } // Specifies where in a web request to look for TargetString. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/FieldToMatch type FieldToMatch struct { _ struct{} `type:"structure"` @@ -11167,7 +11113,6 @@ func (s *FieldToMatch) SetType(v string) *FieldToMatch { // The country from which web requests originate that you want AWS WAF to search // for. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GeoMatchConstraint type GeoMatchConstraint struct { _ struct{} `type:"structure"` @@ -11222,7 +11167,6 @@ func (s *GeoMatchConstraint) SetValue(v string) *GeoMatchConstraint { } // Contains one or more countries that AWS WAF will search for. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GeoMatchSet type GeoMatchSet struct { _ struct{} `type:"structure"` @@ -11276,7 +11220,6 @@ func (s *GeoMatchSet) SetName(v string) *GeoMatchSet { } // Contains the identifier and the name of the GeoMatchSet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GeoMatchSetSummary type GeoMatchSetSummary struct { _ struct{} `type:"structure"` @@ -11316,7 +11259,6 @@ func (s *GeoMatchSetSummary) SetName(v string) *GeoMatchSetSummary { } // Specifies the type of update to perform to an GeoMatchSet with UpdateGeoMatchSet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GeoMatchSetUpdate type GeoMatchSetUpdate struct { _ struct{} `type:"structure"` @@ -11375,7 +11317,6 @@ func (s *GeoMatchSetUpdate) SetGeoMatchConstraint(v *GeoMatchConstraint) *GeoMat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetByteMatchSetRequest type GetByteMatchSetInput struct { _ struct{} `type:"structure"` @@ -11418,7 +11359,6 @@ func (s *GetByteMatchSetInput) SetByteMatchSetId(v string) *GetByteMatchSetInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetByteMatchSetResponse type GetByteMatchSetOutput struct { _ struct{} `type:"structure"` @@ -11451,7 +11391,6 @@ func (s *GetByteMatchSetOutput) SetByteMatchSet(v *ByteMatchSet) *GetByteMatchSe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetChangeTokenRequest type GetChangeTokenInput struct { _ struct{} `type:"structure"` } @@ -11466,7 +11405,6 @@ func (s GetChangeTokenInput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetChangeTokenResponse type GetChangeTokenOutput struct { _ struct{} `type:"structure"` @@ -11491,7 +11429,6 @@ func (s *GetChangeTokenOutput) SetChangeToken(v string) *GetChangeTokenOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetChangeTokenStatusRequest type GetChangeTokenStatusInput struct { _ struct{} `type:"structure"` @@ -11534,7 +11471,6 @@ func (s *GetChangeTokenStatusInput) SetChangeToken(v string) *GetChangeTokenStat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetChangeTokenStatusResponse type GetChangeTokenStatusOutput struct { _ struct{} `type:"structure"` @@ -11558,7 +11494,6 @@ func (s *GetChangeTokenStatusOutput) SetChangeTokenStatus(v string) *GetChangeTo return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetGeoMatchSetRequest type GetGeoMatchSetInput struct { _ struct{} `type:"structure"` @@ -11601,7 +11536,6 @@ func (s *GetGeoMatchSetInput) SetGeoMatchSetId(v string) *GetGeoMatchSetInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetGeoMatchSetResponse type GetGeoMatchSetOutput struct { _ struct{} `type:"structure"` @@ -11627,7 +11561,6 @@ func (s *GetGeoMatchSetOutput) SetGeoMatchSet(v *GeoMatchSet) *GetGeoMatchSetOut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetIPSetRequest type GetIPSetInput struct { _ struct{} `type:"structure"` @@ -11670,7 +11603,6 @@ func (s *GetIPSetInput) SetIPSetId(v string) *GetIPSetInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetIPSetResponse type GetIPSetOutput struct { _ struct{} `type:"structure"` @@ -11700,7 +11632,6 @@ func (s *GetIPSetOutput) SetIPSet(v *IPSet) *GetIPSetOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRuleRequest type GetRateBasedRuleInput struct { _ struct{} `type:"structure"` @@ -11743,7 +11674,6 @@ func (s *GetRateBasedRuleInput) SetRuleId(v string) *GetRateBasedRuleInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRuleManagedKeysRequest type GetRateBasedRuleManagedKeysInput struct { _ struct{} `type:"structure"` @@ -11798,7 +11728,6 @@ func (s *GetRateBasedRuleManagedKeysInput) SetRuleId(v string) *GetRateBasedRule return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRuleManagedKeysResponse type GetRateBasedRuleManagedKeysOutput struct { _ struct{} `type:"structure"` @@ -11831,7 +11760,6 @@ func (s *GetRateBasedRuleManagedKeysOutput) SetNextMarker(v string) *GetRateBase return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRuleResponse type GetRateBasedRuleOutput struct { _ struct{} `type:"structure"` @@ -11856,7 +11784,6 @@ func (s *GetRateBasedRuleOutput) SetRule(v *RateBasedRule) *GetRateBasedRuleOutp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRegexMatchSetRequest type GetRegexMatchSetInput struct { _ struct{} `type:"structure"` @@ -11899,7 +11826,6 @@ func (s *GetRegexMatchSetInput) SetRegexMatchSetId(v string) *GetRegexMatchSetIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRegexMatchSetResponse type GetRegexMatchSetOutput struct { _ struct{} `type:"structure"` @@ -11924,7 +11850,6 @@ func (s *GetRegexMatchSetOutput) SetRegexMatchSet(v *RegexMatchSet) *GetRegexMat return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRegexPatternSetRequest type GetRegexPatternSetInput struct { _ struct{} `type:"structure"` @@ -11967,7 +11892,6 @@ func (s *GetRegexPatternSetInput) SetRegexPatternSetId(v string) *GetRegexPatter return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRegexPatternSetResponse type GetRegexPatternSetOutput struct { _ struct{} `type:"structure"` @@ -11993,7 +11917,6 @@ func (s *GetRegexPatternSetOutput) SetRegexPatternSet(v *RegexPatternSet) *GetRe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRuleGroupRequest type GetRuleGroupInput struct { _ struct{} `type:"structure"` @@ -12036,7 +11959,6 @@ func (s *GetRuleGroupInput) SetRuleGroupId(v string) *GetRuleGroupInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRuleGroupResponse type GetRuleGroupOutput struct { _ struct{} `type:"structure"` @@ -12060,7 +11982,6 @@ func (s *GetRuleGroupOutput) SetRuleGroup(v *RuleGroup) *GetRuleGroupOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRuleRequest type GetRuleInput struct { _ struct{} `type:"structure"` @@ -12103,7 +12024,6 @@ func (s *GetRuleInput) SetRuleId(v string) *GetRuleInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRuleResponse type GetRuleOutput struct { _ struct{} `type:"structure"` @@ -12133,7 +12053,6 @@ func (s *GetRuleOutput) SetRule(v *Rule) *GetRuleOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSampledRequestsRequest type GetSampledRequestsInput struct { _ struct{} `type:"structure"` @@ -12241,7 +12160,6 @@ func (s *GetSampledRequestsInput) SetWebAclId(v string) *GetSampledRequestsInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSampledRequestsResponse type GetSampledRequestsOutput struct { _ struct{} `type:"structure"` @@ -12289,7 +12207,6 @@ func (s *GetSampledRequestsOutput) SetTimeWindow(v *TimeWindow) *GetSampledReque return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSizeConstraintSetRequest type GetSizeConstraintSetInput struct { _ struct{} `type:"structure"` @@ -12332,7 +12249,6 @@ func (s *GetSizeConstraintSetInput) SetSizeConstraintSetId(v string) *GetSizeCon return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSizeConstraintSetResponse type GetSizeConstraintSetOutput struct { _ struct{} `type:"structure"` @@ -12367,7 +12283,6 @@ func (s *GetSizeConstraintSetOutput) SetSizeConstraintSet(v *SizeConstraintSet) } // A request to get a SqlInjectionMatchSet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSqlInjectionMatchSetRequest type GetSqlInjectionMatchSetInput struct { _ struct{} `type:"structure"` @@ -12411,7 +12326,6 @@ func (s *GetSqlInjectionMatchSetInput) SetSqlInjectionMatchSetId(v string) *GetS } // The response to a GetSqlInjectionMatchSet request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSqlInjectionMatchSetResponse type GetSqlInjectionMatchSetOutput struct { _ struct{} `type:"structure"` @@ -12444,7 +12358,6 @@ func (s *GetSqlInjectionMatchSetOutput) SetSqlInjectionMatchSet(v *SqlInjectionM return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetWebACLRequest type GetWebACLInput struct { _ struct{} `type:"structure"` @@ -12487,7 +12400,6 @@ func (s *GetWebACLInput) SetWebACLId(v string) *GetWebACLInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetWebACLResponse type GetWebACLOutput struct { _ struct{} `type:"structure"` @@ -12523,7 +12435,6 @@ func (s *GetWebACLOutput) SetWebACL(v *WebACL) *GetWebACLOutput { } // A request to get an XssMatchSet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetXssMatchSetRequest type GetXssMatchSetInput struct { _ struct{} `type:"structure"` @@ -12567,7 +12478,6 @@ func (s *GetXssMatchSetInput) SetXssMatchSetId(v string) *GetXssMatchSetInput { } // The response to a GetXssMatchSet request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetXssMatchSetResponse type GetXssMatchSetOutput struct { _ struct{} `type:"structure"` @@ -12603,7 +12513,6 @@ func (s *GetXssMatchSetOutput) SetXssMatchSet(v *XssMatchSet) *GetXssMatchSetOut // type that appears as Headers in the response syntax. HTTPHeader contains // the names and values of all of the headers that appear in one of the web // requests that were returned by GetSampledRequests. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/HTTPHeader type HTTPHeader struct { _ struct{} `type:"structure"` @@ -12639,7 +12548,6 @@ func (s *HTTPHeader) SetValue(v string) *HTTPHeader { // The response from a GetSampledRequests request includes an HTTPRequest complex // type that appears as Request in the response syntax. HTTPRequest contains // information about one of the web requests that were returned by GetSampledRequests. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/HTTPRequest type HTTPRequest struct { _ struct{} `type:"structure"` @@ -12730,7 +12638,6 @@ func (s *HTTPRequest) SetURI(v string) *HTTPRequest { // you can specify a /128, /64, /56, /48, /32, /24, /16, or /8 CIDR. For more // information about CIDR notation, see the Wikipedia entry Classless Inter-Domain // Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/IPSet type IPSet struct { _ struct{} `type:"structure"` @@ -12788,7 +12695,6 @@ func (s *IPSet) SetName(v string) *IPSet { // Specifies the IP address type (IPV4 or IPV6) and the IP address range (in // CIDR format) that web requests originate from. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/IPSetDescriptor type IPSetDescriptor struct { _ struct{} `type:"structure"` @@ -12860,7 +12766,6 @@ func (s *IPSetDescriptor) SetValue(v string) *IPSetDescriptor { } // Contains the identifier and the name of the IPSet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/IPSetSummary type IPSetSummary struct { _ struct{} `type:"structure"` @@ -12900,7 +12805,6 @@ func (s *IPSetSummary) SetName(v string) *IPSetSummary { } // Specifies the type of update to perform to an IPSet with UpdateIPSet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/IPSetUpdate type IPSetUpdate struct { _ struct{} `type:"structure"` @@ -12959,7 +12863,6 @@ func (s *IPSetUpdate) SetIPSetDescriptor(v *IPSetDescriptor) *IPSetUpdate { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListActivatedRulesInRuleGroupRequest type ListActivatedRulesInRuleGroupInput struct { _ struct{} `type:"structure"` @@ -13025,7 +12928,6 @@ func (s *ListActivatedRulesInRuleGroupInput) SetRuleGroupId(v string) *ListActiv return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListActivatedRulesInRuleGroupResponse type ListActivatedRulesInRuleGroupOutput struct { _ struct{} `type:"structure"` @@ -13061,7 +12963,6 @@ func (s *ListActivatedRulesInRuleGroupOutput) SetNextMarker(v string) *ListActiv return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListByteMatchSetsRequest type ListByteMatchSetsInput struct { _ struct{} `type:"structure"` @@ -13114,7 +13015,6 @@ func (s *ListByteMatchSetsInput) SetNextMarker(v string) *ListByteMatchSetsInput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListByteMatchSetsResponse type ListByteMatchSetsOutput struct { _ struct{} `type:"structure"` @@ -13151,7 +13051,6 @@ func (s *ListByteMatchSetsOutput) SetNextMarker(v string) *ListByteMatchSetsOutp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListGeoMatchSetsRequest type ListGeoMatchSetsInput struct { _ struct{} `type:"structure"` @@ -13204,7 +13103,6 @@ func (s *ListGeoMatchSetsInput) SetNextMarker(v string) *ListGeoMatchSetsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListGeoMatchSetsResponse type ListGeoMatchSetsOutput struct { _ struct{} `type:"structure"` @@ -13241,7 +13139,6 @@ func (s *ListGeoMatchSetsOutput) SetNextMarker(v string) *ListGeoMatchSetsOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListIPSetsRequest type ListIPSetsInput struct { _ struct{} `type:"structure"` @@ -13294,7 +13191,6 @@ func (s *ListIPSetsInput) SetNextMarker(v string) *ListIPSetsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListIPSetsResponse type ListIPSetsOutput struct { _ struct{} `type:"structure"` @@ -13330,7 +13226,6 @@ func (s *ListIPSetsOutput) SetNextMarker(v string) *ListIPSetsOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRateBasedRulesRequest type ListRateBasedRulesInput struct { _ struct{} `type:"structure"` @@ -13382,7 +13277,6 @@ func (s *ListRateBasedRulesInput) SetNextMarker(v string) *ListRateBasedRulesInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRateBasedRulesResponse type ListRateBasedRulesOutput struct { _ struct{} `type:"structure"` @@ -13418,7 +13312,6 @@ func (s *ListRateBasedRulesOutput) SetRules(v []*RuleSummary) *ListRateBasedRule return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRegexMatchSetsRequest type ListRegexMatchSetsInput struct { _ struct{} `type:"structure"` @@ -13472,7 +13365,6 @@ func (s *ListRegexMatchSetsInput) SetNextMarker(v string) *ListRegexMatchSetsInp return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRegexMatchSetsResponse type ListRegexMatchSetsOutput struct { _ struct{} `type:"structure"` @@ -13509,7 +13401,6 @@ func (s *ListRegexMatchSetsOutput) SetRegexMatchSets(v []*RegexMatchSetSummary) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRegexPatternSetsRequest type ListRegexPatternSetsInput struct { _ struct{} `type:"structure"` @@ -13563,7 +13454,6 @@ func (s *ListRegexPatternSetsInput) SetNextMarker(v string) *ListRegexPatternSet return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRegexPatternSetsResponse type ListRegexPatternSetsOutput struct { _ struct{} `type:"structure"` @@ -13600,7 +13490,6 @@ func (s *ListRegexPatternSetsOutput) SetRegexPatternSets(v []*RegexPatternSetSum return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRuleGroupsRequest type ListRuleGroupsInput struct { _ struct{} `type:"structure"` @@ -13653,7 +13542,6 @@ func (s *ListRuleGroupsInput) SetNextMarker(v string) *ListRuleGroupsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRuleGroupsResponse type ListRuleGroupsOutput struct { _ struct{} `type:"structure"` @@ -13689,7 +13577,6 @@ func (s *ListRuleGroupsOutput) SetRuleGroups(v []*RuleGroupSummary) *ListRuleGro return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRulesRequest type ListRulesInput struct { _ struct{} `type:"structure"` @@ -13741,7 +13628,6 @@ func (s *ListRulesInput) SetNextMarker(v string) *ListRulesInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRulesResponse type ListRulesOutput struct { _ struct{} `type:"structure"` @@ -13777,7 +13663,6 @@ func (s *ListRulesOutput) SetRules(v []*RuleSummary) *ListRulesOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSizeConstraintSetsRequest type ListSizeConstraintSetsInput struct { _ struct{} `type:"structure"` @@ -13830,7 +13715,6 @@ func (s *ListSizeConstraintSetsInput) SetNextMarker(v string) *ListSizeConstrain return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSizeConstraintSetsResponse type ListSizeConstraintSetsOutput struct { _ struct{} `type:"structure"` @@ -13869,7 +13753,6 @@ func (s *ListSizeConstraintSetsOutput) SetSizeConstraintSets(v []*SizeConstraint // A request to list the SqlInjectionMatchSet objects created by the current // AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSqlInjectionMatchSetsRequest type ListSqlInjectionMatchSetsInput struct { _ struct{} `type:"structure"` @@ -13923,7 +13806,6 @@ func (s *ListSqlInjectionMatchSetsInput) SetNextMarker(v string) *ListSqlInjecti } // The response to a ListSqlInjectionMatchSets request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSqlInjectionMatchSetsResponse type ListSqlInjectionMatchSetsOutput struct { _ struct{} `type:"structure"` @@ -13960,7 +13842,6 @@ func (s *ListSqlInjectionMatchSetsOutput) SetSqlInjectionMatchSets(v []*SqlInjec return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSubscribedRuleGroupsRequest type ListSubscribedRuleGroupsInput struct { _ struct{} `type:"structure"` @@ -14014,7 +13895,6 @@ func (s *ListSubscribedRuleGroupsInput) SetNextMarker(v string) *ListSubscribedR return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSubscribedRuleGroupsResponse type ListSubscribedRuleGroupsOutput struct { _ struct{} `type:"structure"` @@ -14050,7 +13930,6 @@ func (s *ListSubscribedRuleGroupsOutput) SetRuleGroups(v []*SubscribedRuleGroupS return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListWebACLsRequest type ListWebACLsInput struct { _ struct{} `type:"structure"` @@ -14104,7 +13983,6 @@ func (s *ListWebACLsInput) SetNextMarker(v string) *ListWebACLsInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListWebACLsResponse type ListWebACLsOutput struct { _ struct{} `type:"structure"` @@ -14141,7 +14019,6 @@ func (s *ListWebACLsOutput) SetWebACLs(v []*WebACLSummary) *ListWebACLsOutput { } // A request to list the XssMatchSet objects created by the current AWS account. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListXssMatchSetsRequest type ListXssMatchSetsInput struct { _ struct{} `type:"structure"` @@ -14195,7 +14072,6 @@ func (s *ListXssMatchSetsInput) SetNextMarker(v string) *ListXssMatchSetsInput { } // The response to a ListXssMatchSets request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListXssMatchSetsResponse type ListXssMatchSetsOutput struct { _ struct{} `type:"structure"` @@ -14236,7 +14112,6 @@ func (s *ListXssMatchSetsOutput) SetXssMatchSets(v []*XssMatchSetSummary) *ListX // GeoMatchSet, and SizeConstraintSet objects that you want to add to a Rule // and, for each object, indicates whether you want to negate the settings, // for example, requests that do NOT originate from the IP address 192.0.2.44. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/Predicate type Predicate struct { _ struct{} `type:"structure"` @@ -14332,7 +14207,6 @@ func (s *Predicate) SetType(v string) *Predicate { // Requests that meet both of these conditions and exceed 15,000 requests every // five minutes trigger the rule's action (block or count), which is defined // in the web ACL. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/RateBasedRule type RateBasedRule struct { _ struct{} `type:"structure"` @@ -14434,7 +14308,6 @@ func (s *RateBasedRule) SetRuleId(v string) *RateBasedRule { // want AWS WAF to search for. If a RegexMatchSet contains more than one RegexMatchTuple // object, a request needs to match the settings in only one ByteMatchTuple // to be considered a match. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/RegexMatchSet type RegexMatchSet struct { _ struct{} `type:"structure"` @@ -14494,7 +14367,6 @@ func (s *RegexMatchSet) SetRegexMatchTuples(v []*RegexMatchTuple) *RegexMatchSet // Returned by ListRegexMatchSets. Each RegexMatchSetSummary object includes // the Name and RegexMatchSetId for one RegexMatchSet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/RegexMatchSetSummary type RegexMatchSetSummary struct { _ struct{} `type:"structure"` @@ -14538,7 +14410,6 @@ func (s *RegexMatchSetSummary) SetRegexMatchSetId(v string) *RegexMatchSetSummar // In an UpdateRegexMatchSet request, RegexMatchSetUpdate specifies whether // to insert or delete a RegexMatchTuple and includes the settings for the RegexMatchTuple. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/RegexMatchSetUpdate type RegexMatchSetUpdate struct { _ struct{} `type:"structure"` @@ -14612,7 +14483,6 @@ func (s *RegexMatchSetUpdate) SetRegexMatchTuple(v *RegexMatchTuple) *RegexMatch // // * Whether to perform any conversions on the request, such as converting // it to lowercase, before inspecting it for the specified string. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/RegexMatchTuple type RegexMatchTuple struct { _ struct{} `type:"structure"` @@ -14765,7 +14635,6 @@ func (s *RegexMatchTuple) SetTextTransformation(v string) *RegexMatchTuple { // The RegexPatternSet specifies the regular expression (regex) pattern that // you want AWS WAF to search for, such as B[a@]dB[o0]t. You can then configure // AWS WAF to reject those requests. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/RegexPatternSet type RegexPatternSet struct { _ struct{} `type:"structure"` @@ -14819,7 +14688,6 @@ func (s *RegexPatternSet) SetRegexPatternStrings(v []*string) *RegexPatternSet { // Returned by ListRegexPatternSets. Each RegexPatternSetSummary object includes // the Name and RegexPatternSetId for one RegexPatternSet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/RegexPatternSetSummary type RegexPatternSetSummary struct { _ struct{} `type:"structure"` @@ -14865,7 +14733,6 @@ func (s *RegexPatternSetSummary) SetRegexPatternSetId(v string) *RegexPatternSet // In an UpdateRegexPatternSet request, RegexPatternSetUpdate specifies whether // to insert or delete a RegexPatternString and includes the settings for the // RegexPatternString. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/RegexPatternSetUpdate type RegexPatternSetUpdate struct { _ struct{} `type:"structure"` @@ -14934,7 +14801,6 @@ func (s *RegexPatternSetUpdate) SetRegexPatternString(v string) *RegexPatternSet // // To match the settings in this Rule, a request must originate from 192.0.2.44 // AND include a User-Agent header for which the value is BadBot. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/Rule type Rule struct { _ struct{} `type:"structure"` @@ -15008,7 +14874,6 @@ func (s *Rule) SetRuleId(v string) *Rule { // * One rule group per web ACL. // // * Ten rules per rule group. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/RuleGroup type RuleGroup struct { _ struct{} `type:"structure"` @@ -15062,7 +14927,6 @@ func (s *RuleGroup) SetRuleGroupId(v string) *RuleGroup { } // Contains the identifier and the friendly name or description of the RuleGroup. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/RuleGroupSummary type RuleGroupSummary struct { _ struct{} `type:"structure"` @@ -15107,7 +14971,6 @@ func (s *RuleGroupSummary) SetRuleGroupId(v string) *RuleGroupSummary { // Specifies an ActivatedRule and indicates whether you want to add it to a // RuleGroup or delete it from a RuleGroup. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/RuleGroupUpdate type RuleGroupUpdate struct { _ struct{} `type:"structure"` @@ -15169,7 +15032,6 @@ func (s *RuleGroupUpdate) SetActivatedRule(v *ActivatedRule) *RuleGroupUpdate { } // Contains the identifier and the friendly name or description of the Rule. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/RuleSummary type RuleSummary struct { _ struct{} `type:"structure"` @@ -15214,7 +15076,6 @@ func (s *RuleSummary) SetRuleId(v string) *RuleSummary { // Specifies a Predicate (such as an IPSet) and indicates whether you want to // add it to a Rule or delete it from a Rule. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/RuleUpdate type RuleUpdate struct { _ struct{} `type:"structure"` @@ -15277,7 +15138,6 @@ func (s *RuleUpdate) SetPredicate(v *Predicate) *RuleUpdate { // complex type that appears as SampledRequests in the response syntax. SampledHTTPRequests // contains one SampledHTTPRequest object for each web request that is returned // by GetSampledRequests. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SampledHTTPRequest type SampledHTTPRequest struct { _ struct{} `type:"structure"` @@ -15352,7 +15212,6 @@ func (s *SampledHTTPRequest) SetWeight(v int64) *SampledHTTPRequest { // uses the Size, ComparisonOperator, and FieldToMatch to build an expression // in the form of "SizeComparisonOperator size in bytes of FieldToMatch". If // that expression is true, the SizeConstraint is considered to match. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SizeConstraint type SizeConstraint struct { _ struct{} `type:"structure"` @@ -15540,7 +15399,6 @@ func (s *SizeConstraint) SetTextTransformation(v string) *SizeConstraint { // of web requests that you want AWS WAF to inspect the size of. If a SizeConstraintSet // contains more than one SizeConstraint object, a request only needs to match // one constraint to be considered a match. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SizeConstraintSet type SizeConstraintSet struct { _ struct{} `type:"structure"` @@ -15593,7 +15451,6 @@ func (s *SizeConstraintSet) SetSizeConstraints(v []*SizeConstraint) *SizeConstra } // The Id and Name of a SizeConstraintSet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SizeConstraintSetSummary type SizeConstraintSetSummary struct { _ struct{} `type:"structure"` @@ -15639,7 +15496,6 @@ func (s *SizeConstraintSetSummary) SetSizeConstraintSetId(v string) *SizeConstra // Specifies the part of a web request that you want to inspect the size of // and indicates whether you want to add the specification to a SizeConstraintSet // or delete it from a SizeConstraintSet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SizeConstraintSetUpdate type SizeConstraintSetUpdate struct { _ struct{} `type:"structure"` @@ -15707,7 +15563,6 @@ func (s *SizeConstraintSetUpdate) SetSizeConstraint(v *SizeConstraint) *SizeCons // of the header. If a SqlInjectionMatchSet contains more than one SqlInjectionMatchTuple // object, a request needs to include snippets of SQL code in only one of the // specified parts of the request to be considered a match. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SqlInjectionMatchSet type SqlInjectionMatchSet struct { _ struct{} `type:"structure"` @@ -15761,7 +15616,6 @@ func (s *SqlInjectionMatchSet) SetSqlInjectionMatchTuples(v []*SqlInjectionMatch } // The Id and Name of a SqlInjectionMatchSet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SqlInjectionMatchSetSummary type SqlInjectionMatchSetSummary struct { _ struct{} `type:"structure"` @@ -15807,7 +15661,6 @@ func (s *SqlInjectionMatchSetSummary) SetSqlInjectionMatchSetId(v string) *SqlIn // Specifies the part of a web request that you want to inspect for snippets // of malicious SQL code and indicates whether you want to add the specification // to a SqlInjectionMatchSet or delete it from a SqlInjectionMatchSet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SqlInjectionMatchSetUpdate type SqlInjectionMatchSetUpdate struct { _ struct{} `type:"structure"` @@ -15871,7 +15724,6 @@ func (s *SqlInjectionMatchSetUpdate) SetSqlInjectionMatchTuple(v *SqlInjectionMa // Specifies the part of a web request that you want AWS WAF to inspect for // snippets of malicious SQL code and, if you want AWS WAF to inspect a header, // the name of the header. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SqlInjectionMatchTuple type SqlInjectionMatchTuple struct { _ struct{} `type:"structure"` @@ -15999,7 +15851,6 @@ func (s *SqlInjectionMatchTuple) SetTextTransformation(v string) *SqlInjectionMa } // A summary of the rule groups you are subscribed to. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SubscribedRuleGroupSummary type SubscribedRuleGroupSummary struct { _ struct{} `type:"structure"` @@ -16061,7 +15912,6 @@ func (s *SubscribedRuleGroupSummary) SetRuleGroupId(v string) *SubscribedRuleGro // If your resource receives more than 5,000 requests during that period, AWS // WAF stops sampling after the 5,000th request. In that case, EndTime is the // time that AWS WAF received the 5,000th request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/TimeWindow type TimeWindow struct { _ struct{} `type:"structure"` @@ -16120,7 +15970,6 @@ func (s *TimeWindow) SetStartTime(v time.Time) *TimeWindow { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateByteMatchSetRequest type UpdateByteMatchSetInput struct { _ struct{} `type:"structure"` @@ -16215,7 +16064,6 @@ func (s *UpdateByteMatchSetInput) SetUpdates(v []*ByteMatchSetUpdate) *UpdateByt return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateByteMatchSetResponse type UpdateByteMatchSetOutput struct { _ struct{} `type:"structure"` @@ -16241,7 +16089,6 @@ func (s *UpdateByteMatchSetOutput) SetChangeToken(v string) *UpdateByteMatchSetO return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateGeoMatchSetRequest type UpdateGeoMatchSetInput struct { _ struct{} `type:"structure"` @@ -16336,7 +16183,6 @@ func (s *UpdateGeoMatchSetInput) SetUpdates(v []*GeoMatchSetUpdate) *UpdateGeoMa return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateGeoMatchSetResponse type UpdateGeoMatchSetOutput struct { _ struct{} `type:"structure"` @@ -16362,7 +16208,6 @@ func (s *UpdateGeoMatchSetOutput) SetChangeToken(v string) *UpdateGeoMatchSetOut return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateIPSetRequest type UpdateIPSetInput struct { _ struct{} `type:"structure"` @@ -16454,7 +16299,6 @@ func (s *UpdateIPSetInput) SetUpdates(v []*IPSetUpdate) *UpdateIPSetInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateIPSetResponse type UpdateIPSetOutput struct { _ struct{} `type:"structure"` @@ -16480,7 +16324,6 @@ func (s *UpdateIPSetOutput) SetChangeToken(v string) *UpdateIPSetOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRateBasedRuleRequest type UpdateRateBasedRuleInput struct { _ struct{} `type:"structure"` @@ -16586,7 +16429,6 @@ func (s *UpdateRateBasedRuleInput) SetUpdates(v []*RuleUpdate) *UpdateRateBasedR return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRateBasedRuleResponse type UpdateRateBasedRuleOutput struct { _ struct{} `type:"structure"` @@ -16612,7 +16454,6 @@ func (s *UpdateRateBasedRuleOutput) SetChangeToken(v string) *UpdateRateBasedRul return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRegexMatchSetRequest type UpdateRegexMatchSetInput struct { _ struct{} `type:"structure"` @@ -16700,7 +16541,6 @@ func (s *UpdateRegexMatchSetInput) SetUpdates(v []*RegexMatchSetUpdate) *UpdateR return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRegexMatchSetResponse type UpdateRegexMatchSetOutput struct { _ struct{} `type:"structure"` @@ -16726,7 +16566,6 @@ func (s *UpdateRegexMatchSetOutput) SetChangeToken(v string) *UpdateRegexMatchSe return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRegexPatternSetRequest type UpdateRegexPatternSetInput struct { _ struct{} `type:"structure"` @@ -16814,7 +16653,6 @@ func (s *UpdateRegexPatternSetInput) SetUpdates(v []*RegexPatternSetUpdate) *Upd return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRegexPatternSetResponse type UpdateRegexPatternSetOutput struct { _ struct{} `type:"structure"` @@ -16840,7 +16678,6 @@ func (s *UpdateRegexPatternSetOutput) SetChangeToken(v string) *UpdateRegexPatte return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRuleGroupRequest type UpdateRuleGroupInput struct { _ struct{} `type:"structure"` @@ -16934,7 +16771,6 @@ func (s *UpdateRuleGroupInput) SetUpdates(v []*RuleGroupUpdate) *UpdateRuleGroup return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRuleGroupResponse type UpdateRuleGroupOutput struct { _ struct{} `type:"structure"` @@ -16960,7 +16796,6 @@ func (s *UpdateRuleGroupOutput) SetChangeToken(v string) *UpdateRuleGroupOutput return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRuleRequest type UpdateRuleInput struct { _ struct{} `type:"structure"` @@ -17051,7 +16886,6 @@ func (s *UpdateRuleInput) SetUpdates(v []*RuleUpdate) *UpdateRuleInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRuleResponse type UpdateRuleOutput struct { _ struct{} `type:"structure"` @@ -17077,7 +16911,6 @@ func (s *UpdateRuleOutput) SetChangeToken(v string) *UpdateRuleOutput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateSizeConstraintSetRequest type UpdateSizeConstraintSetInput struct { _ struct{} `type:"structure"` @@ -17173,7 +17006,6 @@ func (s *UpdateSizeConstraintSetInput) SetUpdates(v []*SizeConstraintSetUpdate) return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateSizeConstraintSetResponse type UpdateSizeConstraintSetOutput struct { _ struct{} `type:"structure"` @@ -17200,7 +17032,6 @@ func (s *UpdateSizeConstraintSetOutput) SetChangeToken(v string) *UpdateSizeCons } // A request to update a SqlInjectionMatchSet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateSqlInjectionMatchSetRequest type UpdateSqlInjectionMatchSetInput struct { _ struct{} `type:"structure"` @@ -17296,7 +17127,6 @@ func (s *UpdateSqlInjectionMatchSetInput) SetUpdates(v []*SqlInjectionMatchSetUp } // The response to an UpdateSqlInjectionMatchSets request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateSqlInjectionMatchSetResponse type UpdateSqlInjectionMatchSetOutput struct { _ struct{} `type:"structure"` @@ -17322,7 +17152,6 @@ func (s *UpdateSqlInjectionMatchSetOutput) SetChangeToken(v string) *UpdateSqlIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateWebACLRequest type UpdateWebACLInput struct { _ struct{} `type:"structure"` @@ -17429,7 +17258,6 @@ func (s *UpdateWebACLInput) SetWebACLId(v string) *UpdateWebACLInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateWebACLResponse type UpdateWebACLOutput struct { _ struct{} `type:"structure"` @@ -17456,7 +17284,6 @@ func (s *UpdateWebACLOutput) SetChangeToken(v string) *UpdateWebACLOutput { } // A request to update an XssMatchSet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateXssMatchSetRequest type UpdateXssMatchSetInput struct { _ struct{} `type:"structure"` @@ -17551,7 +17378,6 @@ func (s *UpdateXssMatchSetInput) SetXssMatchSetId(v string) *UpdateXssMatchSetIn } // The response to an UpdateXssMatchSets request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateXssMatchSetResponse type UpdateXssMatchSetOutput struct { _ struct{} `type:"structure"` @@ -17582,7 +17408,6 @@ func (s *UpdateXssMatchSetOutput) SetChangeToken(v string) *UpdateXssMatchSetOut // the conditions in a rule. For the default action in a WebACL, specifies the // action that you want AWS WAF to take when a web request doesn't match all // of the conditions in any of the rules in a WebACL. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/WafAction type WafAction struct { _ struct{} `type:"structure"` @@ -17632,7 +17457,6 @@ func (s *WafAction) SetType(v string) *WafAction { } // The action to take if any rule within the RuleGroup matches a request. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/WafOverrideAction type WafOverrideAction struct { _ struct{} `type:"structure"` @@ -17680,7 +17504,6 @@ func (s *WafOverrideAction) SetType(v string) *WafOverrideAction { // the requests that you want AWS WAF to filter. If you add more than one Rule // to a WebACL, a request needs to match only one of the specifications to be // allowed, blocked, or counted. For more information, see UpdateWebACL. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/WebACL type WebACL struct { _ struct{} `type:"structure"` @@ -17756,7 +17579,6 @@ func (s *WebACL) SetWebACLId(v string) *WebACL { } // Contains the identifier and the name or description of the WebACL. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/WebACLSummary type WebACLSummary struct { _ struct{} `type:"structure"` @@ -17799,7 +17621,6 @@ func (s *WebACLSummary) SetWebACLId(v string) *WebACLSummary { } // Specifies whether to insert a Rule into or delete a Rule from a WebACL. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/WebACLUpdate type WebACLUpdate struct { _ struct{} `type:"structure"` @@ -17866,7 +17687,6 @@ func (s *WebACLUpdate) SetActivatedRule(v *ActivatedRule) *WebACLUpdate { // If a XssMatchSet contains more than one XssMatchTuple object, a request needs // to include cross-site scripting attacks in only one of the specified parts // of the request to be considered a match. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/XssMatchSet type XssMatchSet struct { _ struct{} `type:"structure"` @@ -17919,7 +17739,6 @@ func (s *XssMatchSet) SetXssMatchTuples(v []*XssMatchTuple) *XssMatchSet { } // The Id and Name of an XssMatchSet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/XssMatchSetSummary type XssMatchSetSummary struct { _ struct{} `type:"structure"` @@ -17964,7 +17783,6 @@ func (s *XssMatchSetSummary) SetXssMatchSetId(v string) *XssMatchSetSummary { // Specifies the part of a web request that you want to inspect for cross-site // scripting attacks and indicates whether you want to add the specification // to an XssMatchSet or delete it from an XssMatchSet. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/XssMatchSetUpdate type XssMatchSetUpdate struct { _ struct{} `type:"structure"` @@ -18028,7 +17846,6 @@ func (s *XssMatchSetUpdate) SetXssMatchTuple(v *XssMatchTuple) *XssMatchSetUpdat // Specifies the part of a web request that you want AWS WAF to inspect for // cross-site scripting attacks and, if you want AWS WAF to inspect a header, // the name of the header. -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/XssMatchTuple type XssMatchTuple struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/wafregional/api.go b/vendor/github.com/aws/aws-sdk-go/service/wafregional/api.go index 81da5cb4a..e46b3e9d0 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/wafregional/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/wafregional/api.go @@ -8663,7 +8663,6 @@ func (c *WAFRegional) UpdateXssMatchSetWithContext(ctx aws.Context, input *waf.U return out, req.Send() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/AssociateWebACLRequest type AssociateWebACLInput struct { _ struct{} `type:"structure"` @@ -8722,7 +8721,6 @@ func (s *AssociateWebACLInput) SetWebACLId(v string) *AssociateWebACLInput { return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/AssociateWebACLResponse type AssociateWebACLOutput struct { _ struct{} `type:"structure"` } @@ -8737,7 +8735,6 @@ func (s AssociateWebACLOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DisassociateWebACLRequest type DisassociateWebACLInput struct { _ struct{} `type:"structure"` @@ -8780,7 +8777,6 @@ func (s *DisassociateWebACLInput) SetResourceArn(v string) *DisassociateWebACLIn return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DisassociateWebACLResponse type DisassociateWebACLOutput struct { _ struct{} `type:"structure"` } @@ -8795,7 +8791,6 @@ func (s DisassociateWebACLOutput) GoString() string { return s.String() } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetWebACLForResourceRequest type GetWebACLForResourceInput struct { _ struct{} `type:"structure"` @@ -8837,7 +8832,6 @@ func (s *GetWebACLForResourceInput) SetResourceArn(v string) *GetWebACLForResour return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetWebACLForResourceResponse type GetWebACLForResourceOutput struct { _ struct{} `type:"structure"` @@ -8862,7 +8856,6 @@ func (s *GetWebACLForResourceOutput) SetWebACLSummary(v *waf.WebACLSummary) *Get return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListResourcesForWebACLRequest type ListResourcesForWebACLInput struct { _ struct{} `type:"structure"` @@ -8905,7 +8898,6 @@ func (s *ListResourcesForWebACLInput) SetWebACLId(v string) *ListResourcesForWeb return s } -// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListResourcesForWebACLResponse type ListResourcesForWebACLOutput struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/CHANGELOG.md b/vendor/github.com/terraform-providers/terraform-provider-aws/CHANGELOG.md index be7047e20..2e0c0cd36 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/CHANGELOG.md +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/CHANGELOG.md @@ -1,3 +1,76 @@ +## 1.9.0 (February 09, 2018) + +NOTES: + +* data-source/aws_region: `current` field is deprecated and the data source defaults to the provider region if no endpoint or name is specified ([#3157](https://github.com/terraform-providers/terraform-provider-aws/issues/3157)) + +FEATURES: + +* **New Data Source:** `aws_elastic_beanstalk_hosted_zone` ([#3208](https://github.com/terraform-providers/terraform-provider-aws/issues/3208)) +* **New Data Source:** `aws_iam_policy` ([#1999](https://github.com/terraform-providers/terraform-provider-aws/issues/1999)) +* **New Resource:** `aws_acm_certificate` ([#2813](https://github.com/terraform-providers/terraform-provider-aws/issues/2813)) +* **New Resource:** `aws_acm_certificate_validation` ([#2813](https://github.com/terraform-providers/terraform-provider-aws/issues/2813)) +* **New Resource:** `aws_api_gateway_documentation_version` ([#3287](https://github.com/terraform-providers/terraform-provider-aws/issues/3287)) +* **New Resource:** `aws_cloud9_environment_ec2` ([#3291](https://github.com/terraform-providers/terraform-provider-aws/issues/3291)) +* **New Resource:** `aws_cognito_user_group` ([#3010](https://github.com/terraform-providers/terraform-provider-aws/issues/3010)) +* **New Resource:** `aws_dynamodb_table_item` ([#3238](https://github.com/terraform-providers/terraform-provider-aws/issues/3238)) +* **New Resource:** `aws_guardduty_ipset` ([#3161](https://github.com/terraform-providers/terraform-provider-aws/issues/3161)) +* **New Resource:** `aws_guardduty_threatintelset` ([#3200](https://github.com/terraform-providers/terraform-provider-aws/issues/3200)) +* **New Resource:** `aws_iot_topic_rule` ([#1858](https://github.com/terraform-providers/terraform-provider-aws/issues/1858)) +* **New Resource:** `aws_sns_platform_application` ([#1101](https://github.com/terraform-providers/terraform-provider-aws/issues/1101)] [[#3283](https://github.com/terraform-providers/terraform-provider-aws/issues/3283)) +* **New Resource:** `aws_vpc_endpoint_service_allowed_principal` ([#2515](https://github.com/terraform-providers/terraform-provider-aws/issues/2515)) +* **New Resource:** `aws_vpc_endpoint_service_connection_notification` ([#2515](https://github.com/terraform-providers/terraform-provider-aws/issues/2515)) +* **New Resource:** `aws_vpc_endpoint_service` ([#2515](https://github.com/terraform-providers/terraform-provider-aws/issues/2515)) +* **New Resource:** `aws_vpc_endpoint_subnet_association` ([#2515](https://github.com/terraform-providers/terraform-provider-aws/issues/2515)) + +ENHANCEMENTS: + +* provider: Automatically determine AWS partition from configured region ([#3173](https://github.com/terraform-providers/terraform-provider-aws/issues/3173)) +* provider: Automatically validate new regions from AWS SDK ([#3159](https://github.com/terraform-providers/terraform-provider-aws/issues/3159)) +* data-source/aws_acm_certificate Add `most_recent` attribute for filtering ([#1837](https://github.com/terraform-providers/terraform-provider-aws/issues/1837)) +* data-source/aws_iam_policy_document: Support layering via source_json and override_json attributes ([#2890](https://github.com/terraform-providers/terraform-provider-aws/issues/2890)) +* data-source/aws_lb_listener: Support load_balancer_arn and port arguments ([#2886](https://github.com/terraform-providers/terraform-provider-aws/issues/2886)) +* data-source/aws_network_interface: Add filter attribute ([#2851](https://github.com/terraform-providers/terraform-provider-aws/issues/2851)) +* data-source/aws_region: Remove EC2 API call and default to current if no endpoint or name specified ([#3157](https://github.com/terraform-providers/terraform-provider-aws/issues/3157)) +* data-source/aws_vpc_endpoint: Support AWS PrivateLink ([#2515](https://github.com/terraform-providers/terraform-provider-aws/issues/2515)) +* data-source/aws_vpc_endpoint_service: Support AWS PrivateLink ([#2515](https://github.com/terraform-providers/terraform-provider-aws/issues/2515)) +* resource/aws_athena_named_query: Support import ([#3231](https://github.com/terraform-providers/terraform-provider-aws/issues/3231)) +* resource/aws_dynamodb_table: Add custom creation timeout ([#3195](https://github.com/terraform-providers/terraform-provider-aws/issues/3195)) +* resource/aws_dynamodb_table: Validate attribute types ([#3188](https://github.com/terraform-providers/terraform-provider-aws/issues/3188)) +* resource/aws_ecr_lifecycle_policy: Support import ([#3246](https://github.com/terraform-providers/terraform-provider-aws/issues/3246)) +* resource/aws_ecs_service: Support import ([#2764](https://github.com/terraform-providers/terraform-provider-aws/issues/2764)) +* resource/aws_ecs_service: Add public_assign_ip argument for Fargate services ([#2559](https://github.com/terraform-providers/terraform-provider-aws/issues/2559)) +* resource/aws_kinesis_firehose_delivery_stream: Add splunk configuration ([#3117](https://github.com/terraform-providers/terraform-provider-aws/issues/3117)) +* resource/aws_mq_broker: Validate user password ([#3164](https://github.com/terraform-providers/terraform-provider-aws/issues/3164)) +* resource/aws_service_discovery_public_dns_namespace: Support import ([#3229](https://github.com/terraform-providers/terraform-provider-aws/issues/3229)) +* resource/aws_service_discovery_service: Support import ([#3227](https://github.com/terraform-providers/terraform-provider-aws/issues/3227)) +* resource/aws_rds_cluster: Add support for Aurora MySQL 5.7 ([#3278](https://github.com/terraform-providers/terraform-provider-aws/issues/3278)) +* resource/aws_sns_topic: Add support for delivery status ([#2872](https://github.com/terraform-providers/terraform-provider-aws/issues/2872)) +* resource/aws_sns_topic: Add support for name prefixes and fully generated names ([#2753](https://github.com/terraform-providers/terraform-provider-aws/issues/2753)) +* resource/aws_sns_topic_subscription: Support filter policy ([#2806](https://github.com/terraform-providers/terraform-provider-aws/issues/2806)) +* resource/aws_ssm_resource_data_sync: Support import ([#3232](https://github.com/terraform-providers/terraform-provider-aws/issues/3232)) +* resource/aws_vpc_endpoint: Support AWS PrivateLink ([#2515](https://github.com/terraform-providers/terraform-provider-aws/issues/2515)) +* resource/aws_vpc_endpoint_service: Support AWS PrivateLink ([#2515](https://github.com/terraform-providers/terraform-provider-aws/issues/2515)) +* resource/aws_vpn_gateway: Add support for Amazon side private ASN ([#1888](https://github.com/terraform-providers/terraform-provider-aws/issues/1888)) + +BUG FIXES: + +* data-source/aws_kms_alias: Prevent crash on aliases without target key ([#3203](https://github.com/terraform-providers/terraform-provider-aws/issues/3203)) +* data-source/aws_ssm_parameter: Fix wrong arn attribute for full path parameter names ([#3211](https://github.com/terraform-providers/terraform-provider-aws/issues/3211)) +* resource/aws_instance: Fix perpertual diff on default VPC instances using vpc_security_group_ids ([#2338](https://github.com/terraform-providers/terraform-provider-aws/issues/2338)) +* resource/aws_codebuild_project: Prevent crash when using source auth configuration ([#3271](https://github.com/terraform-providers/terraform-provider-aws/issues/3271)) +* resource/aws_cognito_identity_pool_roles_attachment: Fix validation for Token types ([#2894](https://github.com/terraform-providers/terraform-provider-aws/issues/2894)) +* resource/aws_db_parameter_group: fix permanent diff when specifying parameters with database-default values ([#3182](https://github.com/terraform-providers/terraform-provider-aws/issues/3182)) +* resource/aws_ecs_service: Retry only on ECS and IAM related InvalidParameterException ([#3240](https://github.com/terraform-providers/terraform-provider-aws/issues/3240)) +* resource/aws_kinesis_firehose_delivery_stream: Prevent crashes on empty CloudWatchLoggingOptions ([#3301](https://github.com/terraform-providers/terraform-provider-aws/issues/3301)) +* resource/aws_kinesis_firehose_delivery_stream: Fix extended_s3_configuration kms_key_arn handling from AWS API ([#3301](https://github.com/terraform-providers/terraform-provider-aws/issues/3301)) +* resource/aws_kinesis_stream: Retry deletion on `LimitExceededException` ([#3108](https://github.com/terraform-providers/terraform-provider-aws/issues/3108)) +* resource/aws_route53_record: Fix dualstack alias name regression trimming too many characters ([#3187](https://github.com/terraform-providers/terraform-provider-aws/issues/3187)) +* resource/aws_ses_template: Send only specified attributes for update ([#3214](https://github.com/terraform-providers/terraform-provider-aws/issues/3214)) +* resource/aws_dynamodb_table: Allow disabling stream with empty `stream_view_type` ([#3197](https://github.com/terraform-providers/terraform-provider-aws/issues/3197)] [[#3224](https://github.com/terraform-providers/terraform-provider-aws/issues/3224)) +* resource/aws_dx_connection_association: Retry disassociation ([#3212](https://github.com/terraform-providers/terraform-provider-aws/issues/3212)) +* resource/aws_volume_attachment: Allow updating `skip_destroy` and `force_detach` ([#2810](https://github.com/terraform-providers/terraform-provider-aws/issues/2810)) + ## 1.8.0 (January 29, 2018) FEATURES: diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/auth_helpers.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/auth_helpers.go index ca183ff1d..50221f56f 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/auth_helpers.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/auth_helpers.go @@ -5,10 +5,10 @@ import ( "fmt" "log" "os" - "strings" "time" "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/arn" "github.com/aws/aws-sdk-go/aws/awserr" awsCredentials "github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds" @@ -23,7 +23,7 @@ import ( "github.com/hashicorp/go-multierror" ) -func GetAccountInfo(iamconn *iam.IAM, stsconn *sts.STS, authProviderName string) (string, string, error) { +func GetAccountID(iamconn *iam.IAM, stsconn *sts.STS, authProviderName string) (string, error) { var errors error // If we have creds from instance profile, we can use metadata API if authProviderName == ec2rolecreds.ProviderName { @@ -33,13 +33,13 @@ func GetAccountInfo(iamconn *iam.IAM, stsconn *sts.STS, authProviderName string) setOptionalEndpoint(cfg) sess, err := session.NewSession(cfg) if err != nil { - return "", "", errwrap.Wrapf("Error creating AWS session: {{err}}", err) + return "", errwrap.Wrapf("Error creating AWS session: {{err}}", err) } metadataClient := ec2metadata.New(sess) info, err := metadataClient.IAMInfo() if err == nil { - return parseAccountInfoFromArn(info.InstanceProfileArn) + return parseAccountIDFromArn(info.InstanceProfileArn) } log.Printf("[DEBUG] Failed to get account info from metadata service: %s", err) errors = multierror.Append(errors, err) @@ -55,14 +55,14 @@ func GetAccountInfo(iamconn *iam.IAM, stsconn *sts.STS, authProviderName string) log.Println("[DEBUG] Trying to get account ID via iam:GetUser") outUser, err := iamconn.GetUser(nil) if err == nil { - return parseAccountInfoFromArn(*outUser.User.Arn) + return parseAccountIDFromArn(*outUser.User.Arn) } errors = multierror.Append(errors, err) awsErr, ok := err.(awserr.Error) // AccessDenied and ValidationError can be raised // if credentials belong to federated profile, so we ignore these if !ok || (awsErr.Code() != "AccessDenied" && awsErr.Code() != "ValidationError" && awsErr.Code() != "InvalidClientTokenId") { - return "", "", fmt.Errorf("Failed getting account ID via 'iam:GetUser': %s", err) + return "", fmt.Errorf("Failed getting account ID via 'iam:GetUser': %s", err) } log.Printf("[DEBUG] Getting account ID via iam:GetUser failed: %s", err) } @@ -71,7 +71,7 @@ func GetAccountInfo(iamconn *iam.IAM, stsconn *sts.STS, authProviderName string) log.Println("[DEBUG] Trying to get account ID via sts:GetCallerIdentity") outCallerIdentity, err := stsconn.GetCallerIdentity(&sts.GetCallerIdentityInput{}) if err == nil { - return parseAccountInfoFromArn(*outCallerIdentity.Arn) + return parseAccountIDFromArn(*outCallerIdentity.Arn) } log.Printf("[DEBUG] Getting account ID via sts:GetCallerIdentity failed: %s", err) errors = multierror.Append(errors, err) @@ -84,25 +84,25 @@ func GetAccountInfo(iamconn *iam.IAM, stsconn *sts.STS, authProviderName string) if err != nil { log.Printf("[DEBUG] Failed to get account ID via iam:ListRoles: %s", err) errors = multierror.Append(errors, err) - return "", "", fmt.Errorf("Failed getting account ID via all available methods. Errors: %s", errors) + return "", fmt.Errorf("Failed getting account ID via all available methods. Errors: %s", errors) } if len(outRoles.Roles) < 1 { err = fmt.Errorf("Failed to get account ID via iam:ListRoles: No roles available") log.Printf("[DEBUG] %s", err) errors = multierror.Append(errors, err) - return "", "", fmt.Errorf("Failed getting account ID via all available methods. Errors: %s", errors) + return "", fmt.Errorf("Failed getting account ID via all available methods. Errors: %s", errors) } - return parseAccountInfoFromArn(*outRoles.Roles[0].Arn) + return parseAccountIDFromArn(*outRoles.Roles[0].Arn) } -func parseAccountInfoFromArn(arn string) (string, string, error) { - parts := strings.Split(arn, ":") - if len(parts) < 5 { - return "", "", fmt.Errorf("Unable to parse ID from invalid ARN: %q", arn) +func parseAccountIDFromArn(inputARN string) (string, error) { + arn, err := arn.Parse(inputARN) + if err != nil { + return "", fmt.Errorf("Unable to parse ID from invalid ARN: %q", arn) } - return parts[1], parts[4], nil + return arn.AccountID, nil } // This function is responsible for reading credentials from the diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/config.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/config.go index 99a2e7347..efd4b2300 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/config.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/config.go @@ -12,6 +12,7 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/aws-sdk-go/aws/endpoints" "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/acm" @@ -20,6 +21,7 @@ import ( "github.com/aws/aws-sdk-go/service/athena" "github.com/aws/aws-sdk-go/service/autoscaling" "github.com/aws/aws-sdk-go/service/batch" + "github.com/aws/aws-sdk-go/service/cloud9" "github.com/aws/aws-sdk-go/service/cloudformation" "github.com/aws/aws-sdk-go/service/cloudfront" "github.com/aws/aws-sdk-go/service/cloudtrail" @@ -137,6 +139,7 @@ type Config struct { type AWSClient struct { cfconn *cloudformation.CloudFormation + cloud9conn *cloud9.Cloud9 cloudfrontconn *cloudfront.CloudFront cloudtrailconn *cloudtrail.CloudTrail cloudwatchconn *cloudwatch.CloudWatch @@ -216,20 +219,13 @@ func (c *AWSClient) DynamoDB() *dynamodb.DynamoDB { } func (c *AWSClient) IsGovCloud() bool { - if c.region == "us-gov-west-1" { - return true - } - return false + _, isGovCloud := endpoints.PartitionForRegion([]endpoints.Partition{endpoints.AwsUsGovPartition()}, c.region) + return isGovCloud } func (c *AWSClient) IsChinaCloud() bool { - if c.region == "cn-north-1" { - return true - } - if c.region == "cn-northwest-1" { - return true - } - return false + _, isChinaCloud := endpoints.PartitionForRegion([]endpoints.Partition{endpoints.AwsCnPartition()}, c.region) + return isChinaCloud } // Client configures and returns a fully initialized AWSClient @@ -370,11 +366,15 @@ func (c *Config) Client() (interface{}, error) { } } + // Infer AWS partition from configured region + if partition, ok := endpoints.PartitionForRegion(endpoints.DefaultPartitions(), client.region); ok { + client.partition = partition.ID() + } + if !c.SkipRequestingAccountId { - partition, accountId, err := GetAccountInfo(client.iamconn, client.stsconn, cp.ProviderName) + accountID, err := GetAccountID(client.iamconn, client.stsconn, cp.ProviderName) if err == nil { - client.partition = partition - client.accountid = accountId + client.accountid = accountID } } @@ -400,6 +400,7 @@ func (c *Config) Client() (interface{}, error) { client.apigateway = apigateway.New(awsApigatewaySess) client.appautoscalingconn = applicationautoscaling.New(sess) client.autoscalingconn = autoscaling.New(sess) + client.cloud9conn = cloud9.New(sess) client.cfconn = cloudformation.New(awsCfSess) client.cloudfrontconn = cloudfront.New(sess) client.cloudtrailconn = cloudtrail.New(sess) @@ -486,6 +487,29 @@ func (c *Config) Client() (interface{}, error) { } }) + // See https://github.com/aws/aws-sdk-go/pull/1276 + client.dynamodbconn.Handlers.Retry.PushBack(func(r *request.Request) { + if r.Operation.Name != "PutItem" && r.Operation.Name != "UpdateItem" && r.Operation.Name != "DeleteItem" { + return + } + if isAWSErr(r.Error, dynamodb.ErrCodeLimitExceededException, "Subscriber limit exceeded:") { + r.Retryable = aws.Bool(true) + } + }) + + client.kinesisconn.Handlers.Retry.PushBack(func(r *request.Request) { + if r.Operation.Name == "CreateStream" { + if isAWSErr(r.Error, kinesis.ErrCodeLimitExceededException, "simultaneously be in CREATING or DELETING") { + r.Retryable = aws.Bool(true) + } + } + if r.Operation.Name == "CreateStream" || r.Operation.Name == "DeleteStream" { + if isAWSErr(r.Error, kinesis.ErrCodeLimitExceededException, "Rate exceeded for stream") { + r.Retryable = aws.Bool(true) + } + } + }) + return &client, nil } @@ -501,32 +525,14 @@ func hasEc2Classic(platforms []string) bool { // ValidateRegion returns an error if the configured region is not a // valid aws region and nil otherwise. func (c *Config) ValidateRegion() error { - var regions = []string{ - "ap-northeast-1", - "ap-northeast-2", - "ap-south-1", - "ap-southeast-1", - "ap-southeast-2", - "ca-central-1", - "cn-north-1", - "cn-northwest-1", - "eu-central-1", - "eu-west-1", - "eu-west-2", - "eu-west-3", - "sa-east-1", - "us-east-1", - "us-east-2", - "us-gov-west-1", - "us-west-1", - "us-west-2", - } - - for _, valid := range regions { - if c.Region == valid { - return nil + for _, partition := range endpoints.DefaultPartitions() { + for _, region := range partition.Regions() { + if c.Region == region.ID() { + return nil + } } } + return fmt.Errorf("Not a valid region: %s", c.Region) } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_acm_certificate.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_acm_certificate.go index 12ce71576..a49ca9d88 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_acm_certificate.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_acm_certificate.go @@ -7,7 +7,6 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/acm" - "github.com/hashicorp/errwrap" "github.com/hashicorp/terraform/helper/schema" ) @@ -33,6 +32,11 @@ func dataSourceAwsAcmCertificate() *schema.Resource { Optional: true, Elem: &schema.Schema{Type: schema.TypeString}, }, + "most_recent": { + Type: schema.TypeBool, + Optional: true, + Default: false, + }, }, } } @@ -50,55 +54,115 @@ func dataSourceAwsAcmCertificateRead(d *schema.ResourceData, meta interface{}) e params.CertificateStatuses = []*string{aws.String("ISSUED")} } - var arns []string + var arns []*string log.Printf("[DEBUG] Reading ACM Certificate: %s", params) err := conn.ListCertificatesPages(params, func(page *acm.ListCertificatesOutput, lastPage bool) bool { for _, cert := range page.CertificateSummaryList { if *cert.DomainName == target { - arns = append(arns, *cert.CertificateArn) + arns = append(arns, cert.CertificateArn) } } return true }) if err != nil { - return errwrap.Wrapf("Error describing certificates: {{err}}", err) - } - - // filter based on certificate type (imported or aws-issued) - types, ok := d.GetOk("types") - if ok { - typesStrings := expandStringList(types.([]interface{})) - var matchedArns []string - for _, arn := range arns { - params := &acm.DescribeCertificateInput{} - params.CertificateArn = &arn - - description, err := conn.DescribeCertificate(params) - if err != nil { - return errwrap.Wrapf("Error describing certificates: {{err}}", err) - } - - for _, certType := range typesStrings { - if *description.Certificate.Type == *certType { - matchedArns = append(matchedArns, arn) - break - } - } - } - - arns = matchedArns + return fmt.Errorf("Error listing certificates: %q", err) } if len(arns) == 0 { - return fmt.Errorf("No certificate for domain %q found in this region.", target) + return fmt.Errorf("No certificate for domain %q found in this region", target) } - if len(arns) > 1 { - return fmt.Errorf("Multiple certificates for domain %q found in this region.", target) + + filterMostRecent := d.Get("most_recent").(bool) + filterTypes, filterTypesOk := d.GetOk("types") + + var matchedCertificate *acm.CertificateDetail + + if !filterMostRecent && !filterTypesOk && len(arns) > 1 { + // Multiple certificates have been found and no additional filtering set + return fmt.Errorf("Multiple certificates for domain %q found in this region", target) + } + + typesStrings := expandStringList(filterTypes.([]interface{})) + + for _, arn := range arns { + var err error + + input := &acm.DescribeCertificateInput{ + CertificateArn: aws.String(*arn), + } + log.Printf("[DEBUG] Describing ACM Certificate: %s", input) + output, err := conn.DescribeCertificate(input) + if err != nil { + return fmt.Errorf("Error describing ACM certificate: %q", err) + } + certificate := output.Certificate + + if filterTypesOk { + for _, certType := range typesStrings { + if *certificate.Type == *certType { + // We do not have a candidate certificate + if matchedCertificate == nil { + matchedCertificate = certificate + break + } + // At this point, we already have a candidate certificate + // Check if we are filtering by most recent and update if necessary + if filterMostRecent { + matchedCertificate, err = mostRecentAcmCertificate(certificate, matchedCertificate) + if err != nil { + return err + } + break + } + // Now we have multiple candidate certificates and we only allow one certificate + return fmt.Errorf("Multiple certificates for domain %q found in this region", target) + } + } + continue + } + // We do not have a candidate certificate + if matchedCertificate == nil { + matchedCertificate = certificate + continue + } + // At this point, we already have a candidate certificate + // Check if we are filtering by most recent and update if necessary + if filterMostRecent { + matchedCertificate, err = mostRecentAcmCertificate(certificate, matchedCertificate) + if err != nil { + return err + } + continue + } + // Now we have multiple candidate certificates and we only allow one certificate + return fmt.Errorf("Multiple certificates for domain %q found in this region", target) + } + + if matchedCertificate == nil { + return fmt.Errorf("No certificate for domain %q found in this region", target) } d.SetId(time.Now().UTC().String()) - d.Set("arn", arns[0]) + d.Set("arn", matchedCertificate.CertificateArn) return nil } + +func mostRecentAcmCertificate(i, j *acm.CertificateDetail) (*acm.CertificateDetail, error) { + if *i.Status != *j.Status { + return nil, fmt.Errorf("most_recent filtering on different ACM certificate statues is not supported") + } + // Cover IMPORTED and ISSUED AMAZON_ISSUED certificates + if *i.Status == acm.CertificateStatusIssued { + if (*i.NotBefore).After(*j.NotBefore) { + return i, nil + } + return j, nil + } + // Cover non-ISSUED AMAZON_ISSUED certificates + if (*i.CreatedAt).After(*j.CreatedAt) { + return i, nil + } + return j, nil +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_elastic_beanstalk_hosted_zone.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_elastic_beanstalk_hosted_zone.go new file mode 100644 index 000000000..d0f209eae --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_elastic_beanstalk_hosted_zone.go @@ -0,0 +1,56 @@ +package aws + +import ( + "fmt" + + "github.com/hashicorp/terraform/helper/schema" +) + +// See # http://docs.aws.amazon.com/general/latest/gr/rande.html#elasticbeanstalk_region +var elasticBeanstalkHostedZoneIds = map[string]string{ + "ap-southeast-1": "Z16FZ9L249IFLT", + "ap-southeast-2": "Z2PCDNR3VC2G1N", + "ap-northeast-1": "Z1R25G3KIG2GBW", + "ap-northeast-2": "Z3JE5OI70TWKCP", + "ap-south-1": "Z18NTBI3Y7N9TZ", + "ca-central-1": "ZJFCZL7SSZB5I", + "eu-central-1": "Z1FRNW7UH4DEZJ", + "eu-west-1": "Z2NYPWQ7DFZAZH", + "eu-west-2": "Z1GKAAAUGATPF1", + "eu-west-3": "Z5WN6GAYWG5OB", + "sa-east-1": "Z10X7K2B4QSOFV", + "us-east-1": "Z117KPS5GTRQ2G", + "us-east-2": "Z14LCN19Q5QHIC", + "us-west-1": "Z1LQECGX5PH1X", + "us-west-2": "Z38NKT9BP95V3O", +} + +func dataSourceAwsElasticBeanstalkHostedZone() *schema.Resource { + return &schema.Resource{ + Read: dataSourceAwsElasticBeanstalkHostedZoneRead, + + Schema: map[string]*schema.Schema{ + "region": { + Type: schema.TypeString, + Optional: true, + }, + }, + } +} + +func dataSourceAwsElasticBeanstalkHostedZoneRead(d *schema.ResourceData, meta interface{}) error { + region := meta.(*AWSClient).region + if v, ok := d.GetOk("region"); ok { + region = v.(string) + } + + zoneID, ok := elasticBeanstalkHostedZoneIds[region] + + if !ok { + return fmt.Errorf("Unsupported region: %s", region) + } + + d.SetId(zoneID) + d.Set("region", region) + return nil +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_iam_policy.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_iam_policy.go new file mode 100644 index 000000000..78ca5b91b --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_iam_policy.go @@ -0,0 +1,40 @@ +package aws + +import ( + "github.com/hashicorp/terraform/helper/schema" +) + +func dataSourceAwsIAMPolicy() *schema.Resource { + return &schema.Resource{ + Read: dataSourceAwsIAMPolicyRead, + + Schema: map[string]*schema.Schema{ + "arn": { + Type: schema.TypeString, + Required: true, + }, + "name": { + Type: schema.TypeString, + Computed: true, + }, + "policy": { + Type: schema.TypeString, + Computed: true, + }, + "path": { + Type: schema.TypeString, + Computed: true, + }, + + "description": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func dataSourceAwsIAMPolicyRead(d *schema.ResourceData, meta interface{}) error { + d.SetId(d.Get("arn").(string)) + return resourceAwsIamPolicyRead(d, meta) +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_iam_policy_document.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_iam_policy_document.go index 2c89355d6..0c7de6448 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_iam_policy_document.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_iam_policy_document.go @@ -1,14 +1,13 @@ package aws import ( - "fmt" - "encoding/json" + "fmt" + "strconv" "strings" "github.com/hashicorp/terraform/helper/hashcode" "github.com/hashicorp/terraform/helper/schema" - "strconv" ) var dataSourceAwsIamPolicyDocumentVarReplacer = strings.NewReplacer("&{", "${") @@ -26,10 +25,18 @@ func dataSourceAwsIamPolicyDocument() *schema.Resource { Read: dataSourceAwsIamPolicyDocumentRead, Schema: map[string]*schema.Schema{ + "override_json": { + Type: schema.TypeString, + Optional: true, + }, "policy_id": { Type: schema.TypeString, Optional: true, }, + "source_json": { + Type: schema.TypeString, + Optional: true, + }, "statement": { Type: schema.TypeList, Required: true, @@ -94,17 +101,26 @@ func dataSourceAwsIamPolicyDocument() *schema.Resource { } func dataSourceAwsIamPolicyDocumentRead(d *schema.ResourceData, meta interface{}) error { - doc := &IAMPolicyDoc{ - Version: "2012-10-17", + mergedDoc := &IAMPolicyDoc{} + + // populate mergedDoc directly with any source_json + if sourceJson, hasSourceJson := d.GetOk("source_json"); hasSourceJson { + if err := json.Unmarshal([]byte(sourceJson.(string)), mergedDoc); err != nil { + return err + } } + // process the current document + doc := &IAMPolicyDoc{} + + doc.Version = "2012-10-17" + if policyId, hasPolicyId := d.GetOk("policy_id"); hasPolicyId { doc.Id = policyId.(string) } var cfgStmts = d.Get("statement").([]interface{}) stmts := make([]*IAMPolicyStatement, len(cfgStmts)) - doc.Statements = stmts for i, stmtI := range cfgStmts { cfgStmt := stmtI.(map[string]interface{}) stmt := &IAMPolicyStatement{ @@ -148,7 +164,22 @@ func dataSourceAwsIamPolicyDocumentRead(d *schema.ResourceData, meta interface{} stmts[i] = stmt } - jsonDoc, err := json.MarshalIndent(doc, "", " ") + doc.Statements = stmts + + // merge our current document into mergedDoc + mergedDoc.Merge(doc) + + // merge in override_json + if overrideJson, hasOverrideJson := d.GetOk("override_json"); hasOverrideJson { + overrideDoc := &IAMPolicyDoc{} + if err := json.Unmarshal([]byte(overrideJson.(string)), overrideDoc); err != nil { + return err + } + + mergedDoc.Merge(overrideDoc) + } + + jsonDoc, err := json.MarshalIndent(mergedDoc, "", " ") if err != nil { // should never happen if the above code is correct return err diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_kms_alias.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_kms_alias.go index e9d786f95..c3a437904 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_kms_alias.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_kms_alias.go @@ -64,20 +64,25 @@ func dataSourceAwsKmsAliasRead(d *schema.ResourceData, meta interface{}) error { d.SetId(time.Now().UTC().String()) d.Set("arn", alias.AliasArn) - aliasARN, err := arn.Parse(*alias.AliasArn) - if err != nil { - return err - } - targetKeyARN := arn.ARN{ - Partition: aliasARN.Partition, - Service: aliasARN.Service, - Region: aliasARN.Region, - AccountID: aliasARN.AccountID, - Resource: fmt.Sprintf("key/%s", *alias.TargetKeyId), - } - d.Set("target_key_arn", targetKeyARN.String()) + // Some aliases do not return TargetKeyId (e.g. aliases for AWS services or + // aliases not associated with a Customer Managed Key (CMK)) + // https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html + if alias.TargetKeyId != nil { + aliasARN, err := arn.Parse(*alias.AliasArn) + if err != nil { + return err + } + targetKeyARN := arn.ARN{ + Partition: aliasARN.Partition, + Service: aliasARN.Service, + Region: aliasARN.Region, + AccountID: aliasARN.AccountID, + Resource: fmt.Sprintf("key/%s", *alias.TargetKeyId), + } + d.Set("target_key_arn", targetKeyARN.String()) - d.Set("target_key_id", alias.TargetKeyId) + d.Set("target_key_id", alias.TargetKeyId) + } return nil } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_lb_listener.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_lb_listener.go index dd7570a9f..f0357a5b7 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_lb_listener.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_lb_listener.go @@ -1,6 +1,13 @@ package aws -import "github.com/hashicorp/terraform/helper/schema" +import ( + "errors" + "fmt" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/elbv2" + "github.com/hashicorp/terraform/helper/schema" +) func dataSourceAwsLbListener() *schema.Resource { return &schema.Resource{ @@ -8,17 +15,20 @@ func dataSourceAwsLbListener() *schema.Resource { Schema: map[string]*schema.Schema{ "arn": { - Type: schema.TypeString, - Required: true, + Type: schema.TypeString, + Optional: true, + ConflictsWith: []string{"load_balancer_arn", "port"}, }, "load_balancer_arn": { - Type: schema.TypeString, - Computed: true, + Type: schema.TypeString, + Optional: true, + ConflictsWith: []string{"arn"}, }, "port": { - Type: schema.TypeInt, - Computed: true, + Type: schema.TypeInt, + Optional: true, + ConflictsWith: []string{"arn"}, }, "protocol": { @@ -57,6 +67,34 @@ func dataSourceAwsLbListener() *schema.Resource { } func dataSourceAwsLbListenerRead(d *schema.ResourceData, meta interface{}) error { - d.SetId(d.Get("arn").(string)) - return resourceAwsLbListenerRead(d, meta) + if _, ok := d.GetOk("arn"); ok { + d.SetId(d.Get("arn").(string)) + //log.Printf("[DEBUG] read listener %s", d.Get("arn").(string)) + return resourceAwsLbListenerRead(d, meta) + } + + conn := meta.(*AWSClient).elbv2conn + lbArn, lbOk := d.GetOk("load_balancer_arn") + port, portOk := d.GetOk("port") + if !lbOk || !portOk { + return errors.New("both load_balancer_arn and port must be set") + } + resp, err := conn.DescribeListeners(&elbv2.DescribeListenersInput{ + LoadBalancerArn: aws.String(lbArn.(string)), + }) + if err != nil { + return err + } + if len(resp.Listeners) == 0 { + return fmt.Errorf("[DEBUG] no listener exists for load balancer: %s", lbArn) + } + for _, listener := range resp.Listeners { + if *listener.Port == int64(port.(int)) { + //log.Printf("[DEBUG] get listener arn for %s:%s: %s", lbArn, port, *listener.Port) + d.SetId(*listener.ListenerArn) + return resourceAwsLbListenerRead(d, meta) + } + } + + return errors.New("failed to get listener arn with given arguments") } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_network_interface.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_network_interface.go index 26d4be418..858345770 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_network_interface.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_network_interface.go @@ -15,8 +15,10 @@ func dataSourceAwsNetworkInterface() *schema.Resource { Schema: map[string]*schema.Schema{ "id": { Type: schema.TypeString, - Required: true, + Optional: true, + Computed: true, }, + "filter": dataSourceFiltersSchema(), "association": { Type: schema.TypeList, Computed: true, @@ -132,8 +134,13 @@ func dataSourceAwsNetworkInterface() *schema.Resource { func dataSourceAwsNetworkInterfaceRead(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).ec2conn - input := &ec2.DescribeNetworkInterfacesInput{ - NetworkInterfaceIds: []*string{aws.String(d.Get("id").(string))}, + input := &ec2.DescribeNetworkInterfacesInput{} + if v, ok := d.GetOk("id"); ok { + input.NetworkInterfaceIds = []*string{aws.String(v.(string))} + } + + if v, ok := d.GetOk("filter"); ok { + input.Filters = buildAwsDataSourceFilters(v.(*schema.Set)) } log.Printf("[DEBUG] Reading Network Interface: %s", input) @@ -141,11 +148,13 @@ func dataSourceAwsNetworkInterfaceRead(d *schema.ResourceData, meta interface{}) if err != nil { return err } + if resp == nil || len(resp.NetworkInterfaces) == 0 { return fmt.Errorf("no matching network interface found") } + if len(resp.NetworkInterfaces) > 1 { - return fmt.Errorf("multiple network interfaces matched %s", d.Id()) + return fmt.Errorf("Your query returned more than one result. Please try a more specific search criteria") } eni := resp.NetworkInterfaces[0] diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_region.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_region.go index 018f4138a..b3424a8cb 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_region.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_region.go @@ -2,10 +2,9 @@ package aws import ( "fmt" - "log" + "strings" - "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/service/ec2" + "github.com/aws/aws-sdk-go/aws/endpoints" "github.com/hashicorp/terraform/helper/schema" ) @@ -21,9 +20,10 @@ func dataSourceAwsRegion() *schema.Resource { }, "current": { - Type: schema.TypeBool, - Optional: true, - Computed: true, + Type: schema.TypeBool, + Optional: true, + Computed: true, + Deprecated: "Defaults to current provider region if no other filtering is enabled", }, "endpoint": { @@ -36,48 +36,76 @@ func dataSourceAwsRegion() *schema.Resource { } func dataSourceAwsRegionRead(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*AWSClient).ec2conn - currentRegion := meta.(*AWSClient).region + providerRegion := meta.(*AWSClient).region - req := &ec2.DescribeRegionsInput{} + var region *endpoints.Region - req.RegionNames = make([]*string, 0, 2) - if name := d.Get("name").(string); name != "" { - req.RegionNames = append(req.RegionNames, aws.String(name)) + if v, ok := d.GetOk("endpoint"); ok { + endpoint := v.(string) + matchingRegion, err := findRegionByEc2Endpoint(endpoint) + if err != nil { + return err + } + region = matchingRegion } - if d.Get("current").(bool) { - req.RegionNames = append(req.RegionNames, aws.String(currentRegion)) + if v, ok := d.GetOk("name"); ok { + name := v.(string) + matchingRegion, err := findRegionByName(name) + if err != nil { + return err + } + if region != nil && region.ID() != matchingRegion.ID() { + return fmt.Errorf("multiple regions matched; use additional constraints to reduce matches to a single region") + } + region = matchingRegion } - req.Filters = buildEC2AttributeFilterList( - map[string]string{ - "endpoint": d.Get("endpoint").(string), - }, - ) - if len(req.Filters) == 0 { - // Don't send an empty filters list; the EC2 API won't accept it. - req.Filters = nil + // Default to provider current region if no other filters matched + if region == nil { + matchingRegion, err := findRegionByName(providerRegion) + if err != nil { + return err + } + region = matchingRegion } - log.Printf("[DEBUG] Reading Region: %s", req) - resp, err := conn.DescribeRegions(req) + d.SetId(region.ID()) + d.Set("current", region.ID() == providerRegion) + + regionEndpointEc2, err := region.ResolveEndpoint(endpoints.Ec2ServiceID) if err != nil { return err } - if resp == nil || len(resp.Regions) == 0 { - return fmt.Errorf("no matching regions found") - } - if len(resp.Regions) > 1 { - return fmt.Errorf("multiple regions matched; use additional constraints to reduce matches to a single region") - } + d.Set("endpoint", strings.TrimPrefix(regionEndpointEc2.URL, "https://")) - region := resp.Regions[0] - - d.SetId(*region.RegionName) - d.Set("name", region.RegionName) - d.Set("endpoint", region.Endpoint) - d.Set("current", *region.RegionName == currentRegion) + d.Set("name", region.ID()) return nil } + +func findRegionByEc2Endpoint(endpoint string) (*endpoints.Region, error) { + for _, partition := range endpoints.DefaultPartitions() { + for _, region := range partition.Regions() { + regionEndpointEc2, err := region.ResolveEndpoint(endpoints.Ec2ServiceID) + if err != nil { + return nil, err + } + if strings.TrimPrefix(regionEndpointEc2.URL, "https://") == endpoint { + return ®ion, nil + } + } + } + return nil, fmt.Errorf("region not found for endpoint: %s", endpoint) +} + +func findRegionByName(name string) (*endpoints.Region, error) { + for _, partition := range endpoints.DefaultPartitions() { + for _, region := range partition.Regions() { + if region.ID() == name { + return ®ion, nil + } + } + } + return nil, fmt.Errorf("region not found for name: %s", name) +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_s3_bucket.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_s3_bucket.go index 6a62841f1..1303ae35a 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_s3_bucket.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_s3_bucket.go @@ -91,9 +91,11 @@ func bucketLocation(d *schema.ResourceData, bucket string, conn *s3.S3) error { return err } - hostedZoneID := HostedZoneIDForRegion(region) - if err := d.Set("hosted_zone_id", hostedZoneID); err != nil { - return err + hostedZoneID, err := HostedZoneIDForRegion(region) + if err != nil { + log.Printf("[WARN] %s", err) + } else { + d.Set("hosted_zone_id", hostedZoneID) } _, websiteErr := conn.GetBucketWebsite( diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_ssm_parameter.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_ssm_parameter.go index 884ea7cd2..8c92b9a93 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_ssm_parameter.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_ssm_parameter.go @@ -3,6 +3,7 @@ package aws import ( "fmt" "log" + "strings" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/arn" @@ -72,7 +73,7 @@ func dataAwsSsmParameterRead(d *schema.ResourceData, meta interface{}) error { Region: meta.(*AWSClient).region, Service: "ssm", AccountID: meta.(*AWSClient).accountid, - Resource: fmt.Sprintf("parameter/%s", d.Id()), + Resource: fmt.Sprintf("parameter/%s", strings.TrimPrefix(d.Id(), "/")), } d.Set("arn", arn.String()) diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_vpc_endpoint.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_vpc_endpoint.go index 12af037e2..2669ceb8e 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_vpc_endpoint.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_vpc_endpoint.go @@ -5,11 +5,8 @@ import ( "log" "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/service/ec2" - "github.com/hashicorp/errwrap" "github.com/hashicorp/terraform/helper/schema" - "github.com/hashicorp/terraform/helper/structure" ) func dataSourceAwsVpcEndpoint() *schema.Resource { @@ -22,11 +19,6 @@ func dataSourceAwsVpcEndpoint() *schema.Resource { Optional: true, Computed: true, }, - "state": { - Type: schema.TypeString, - Optional: true, - Computed: true, - }, "vpc_id": { Type: schema.TypeString, Optional: true, @@ -37,6 +29,15 @@ func dataSourceAwsVpcEndpoint() *schema.Resource { Optional: true, Computed: true, }, + "state": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "vpc_endpoint_type": { + Type: schema.TypeString, + Computed: true, + }, "policy": { Type: schema.TypeString, Computed: true, @@ -51,6 +52,49 @@ func dataSourceAwsVpcEndpoint() *schema.Resource { Type: schema.TypeString, Computed: true, }, + "cidr_blocks": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "subnet_ids": { + Type: schema.TypeSet, + Computed: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Set: schema.HashString, + }, + "network_interface_ids": { + Type: schema.TypeSet, + Computed: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Set: schema.HashString, + }, + "security_group_ids": { + Type: schema.TypeSet, + Computed: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Set: schema.HashString, + }, + "private_dns_enabled": { + Type: schema.TypeBool, + Computed: true, + }, + "dns_entry": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "dns_name": { + Type: schema.TypeString, + Computed: true, + }, + "hosted_zone_id": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, }, } } @@ -89,43 +133,7 @@ func dataSourceAwsVpcEndpointRead(d *schema.ResourceData, meta interface{}) erro } vpce := resp.VpcEndpoints[0] - policy, err := structure.NormalizeJsonString(*vpce.PolicyDocument) - if err != nil { - return errwrap.Wrapf("policy contains an invalid JSON: {{err}}", err) - } - - prefixListServiceName := *vpce.ServiceName - prefixListInput := &ec2.DescribePrefixListsInput{ - Filters: []*ec2.Filter{ - {Name: aws.String("prefix-list-name"), Values: []*string{aws.String(prefixListServiceName)}}, - }, - } - log.Printf("[DEBUG] Reading VPC Endpoint prefix list: %s", prefixListServiceName) - prefixListsOutput, err := conn.DescribePrefixLists(prefixListInput) - - if err != nil { - _, ok := err.(awserr.Error) - if !ok { - return fmt.Errorf("Error reading VPC Endpoint prefix list: %s", err.Error()) - } - } - - if len(prefixListsOutput.PrefixLists) != 1 { - return fmt.Errorf("There are multiple prefix lists associated with the service name '%s'. Unexpected", prefixListServiceName) - } - d.SetId(aws.StringValue(vpce.VpcEndpointId)) - d.Set("state", vpce.State) - d.Set("vpc_id", vpce.VpcId) - d.Set("service_name", vpce.ServiceName) - d.Set("policy", policy) - pl := prefixListsOutput.PrefixLists[0] - d.Set("prefix_list_id", pl.PrefixListId) - - if err := d.Set("route_table_ids", aws.StringValueSlice(vpce.RouteTableIds)); err != nil { - return err - } - - return nil + return vpcEndpointAttributes(d, vpce, conn) } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_vpc_endpoint_service.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_vpc_endpoint_service.go index 769b7ec0e..428747cca 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_vpc_endpoint_service.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_vpc_endpoint_service.go @@ -4,7 +4,6 @@ import ( "fmt" "log" "strconv" - "strings" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/ec2" @@ -18,13 +17,48 @@ func dataSourceAwsVpcEndpointService() *schema.Resource { Schema: map[string]*schema.Schema{ "service": { - Type: schema.TypeString, - Required: true, + Type: schema.TypeString, + Optional: true, + ConflictsWith: []string{"service_name"}, }, "service_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ConflictsWith: []string{"service"}, + }, + "service_type": { Type: schema.TypeString, Computed: true, }, + "owner": { + Type: schema.TypeString, + Computed: true, + }, + "vpc_endpoint_policy_supported": { + Type: schema.TypeBool, + Computed: true, + }, + "acceptance_required": { + Type: schema.TypeBool, + Computed: true, + }, + "availability_zones": { + Type: schema.TypeSet, + Elem: &schema.Schema{Type: schema.TypeString}, + Computed: true, + Set: schema.HashString, + }, + "private_dns_name": { + Type: schema.TypeString, + Computed: true, + }, + "base_endpoint_dns_names": { + Type: schema.TypeSet, + Elem: &schema.Schema{Type: schema.TypeString}, + Computed: true, + Set: schema.HashString, + }, }, } } @@ -32,23 +66,43 @@ func dataSourceAwsVpcEndpointService() *schema.Resource { func dataSourceAwsVpcEndpointServiceRead(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).ec2conn - service := d.Get("service").(string) - request := &ec2.DescribeVpcEndpointServicesInput{} + var serviceName string + if v, ok := d.GetOk("service_name"); ok { + serviceName = v.(string) + } else if v, ok := d.GetOk("service"); ok { + serviceName = fmt.Sprintf("com.amazonaws.%s.%s", meta.(*AWSClient).region, v.(string)) + } else { + return fmt.Errorf( + "One of ['service', 'service_name'] must be set to query VPC Endpoint Services") + } - log.Printf("[DEBUG] Reading VPC Endpoint Service: %s", request) - resp, err := conn.DescribeVpcEndpointServices(request) + req := &ec2.DescribeVpcEndpointServicesInput{ + ServiceNames: aws.StringSlice([]string{serviceName}), + } + + log.Printf("[DEBUG] Reading VPC Endpoint Services: %s", req) + resp, err := conn.DescribeVpcEndpointServices(req) if err != nil { return fmt.Errorf("Error fetching VPC Endpoint Services: %s", err) } - - names := aws.StringValueSlice(resp.ServiceNames) - for _, name := range names { - if strings.HasSuffix(name, "."+service) { - d.SetId(strconv.Itoa(hashcode.String(name))) - d.Set("service_name", name) - return nil - } + if resp == nil || len(resp.ServiceDetails) == 0 { + return fmt.Errorf("no matching VPC Endpoint Service found") + } + if len(resp.ServiceDetails) > 1 { + return fmt.Errorf("multiple VPC Endpoint Services matched; use additional constraints to reduce matches to a single VPC Endpoint Service") } - return fmt.Errorf("VPC Endpoint Service (%s) not found", service) + sd := resp.ServiceDetails[0] + serviceName = aws.StringValue(sd.ServiceName) + d.SetId(strconv.Itoa(hashcode.String(serviceName))) + d.Set("service_name", serviceName) + d.Set("service_type", sd.ServiceType[0].ServiceType) + d.Set("owner", sd.Owner) + d.Set("vpc_endpoint_policy_supported", sd.VpcEndpointPolicySupported) + d.Set("acceptance_required", sd.AcceptanceRequired) + d.Set("availability_zones", flattenStringList(sd.AvailabilityZones)) + d.Set("private_dns_name", sd.PrivateDnsName) + d.Set("base_endpoint_dns_names", flattenStringList(sd.BaseEndpointDnsNames)) + + return nil } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_vpn_gateway.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_vpn_gateway.go index 10d33360c..2d0fa3277 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_vpn_gateway.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_vpn_gateway.go @@ -3,6 +3,7 @@ package aws import ( "fmt" "log" + "strconv" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/ec2" @@ -34,6 +35,11 @@ func dataSourceAwsVpnGateway() *schema.Resource { Optional: true, Computed: true, }, + "amazon_side_asn": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, "filter": ec2CustomFiltersSchema(), "tags": tagsSchemaComputed(), }, @@ -55,6 +61,13 @@ func dataSourceAwsVpnGatewayRead(d *schema.ResourceData, meta interface{}) error "availability-zone": d.Get("availability_zone").(string), }, ) + if asn, ok := d.GetOk("amazon_side_asn"); ok { + req.Filters = append(req.Filters, buildEC2AttributeFilterList( + map[string]string{ + "amazon-side-asn": asn.(string), + }, + )...) + } if id, ok := d.GetOk("attached_vpc_id"); ok { req.Filters = append(req.Filters, buildEC2AttributeFilterList( map[string]string{ @@ -91,6 +104,7 @@ func dataSourceAwsVpnGatewayRead(d *schema.ResourceData, meta interface{}) error d.SetId(aws.StringValue(vgw.VpnGatewayId)) d.Set("state", vgw.State) d.Set("availability_zone", vgw.AvailabilityZone) + d.Set("amazon_side_asn", strconv.FormatInt(aws.Int64Value(vgw.AmazonSideAsn), 10)) d.Set("tags", tagsToMap(vgw.Tags)) for _, attachment := range vgw.VpcAttachments { diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/hosted_zones.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/hosted_zones.go index 9550e46d6..a401c02c6 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/hosted_zones.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/hosted_zones.go @@ -1,5 +1,7 @@ package aws +import "fmt" + // This list is copied from // http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_website_region_endpoints // It currently cannot be generated from the API json. @@ -24,6 +26,9 @@ var hostedZoneIDsMap = map[string]string{ // Returns the hosted zone ID for an S3 website endpoint region. This can be // used as input to the aws_route53_record resource's zone_id argument. -func HostedZoneIDForRegion(region string) string { - return hostedZoneIDsMap[region] +func HostedZoneIDForRegion(region string) (string, error) { + if v, ok := hostedZoneIDsMap[region]; ok { + return v, nil + } + return "", fmt.Errorf("S3 hosted zone ID not found for region: %s", region) } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/iam_policy_model.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/iam_policy_model.go index 81306971d..9c74e297a 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/iam_policy_model.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/iam_policy_model.go @@ -2,6 +2,7 @@ package aws import ( "encoding/json" + "fmt" "sort" ) @@ -37,6 +38,38 @@ type IAMPolicyStatementCondition struct { type IAMPolicyStatementPrincipalSet []IAMPolicyStatementPrincipal type IAMPolicyStatementConditionSet []IAMPolicyStatementCondition +func (self *IAMPolicyDoc) Merge(newDoc *IAMPolicyDoc) { + // adopt newDoc's Id + if len(newDoc.Id) > 0 { + self.Id = newDoc.Id + } + + // let newDoc upgrade our Version + if newDoc.Version > self.Version { + self.Version = newDoc.Version + } + + // merge in newDoc's statements, overwriting any existing Sids + var seen bool + for _, newStatement := range newDoc.Statements { + if len(newStatement.Sid) == 0 { + self.Statements = append(self.Statements, newStatement) + continue + } + seen = false + for i, existingStatement := range self.Statements { + if existingStatement.Sid == newStatement.Sid { + self.Statements[i] = newStatement + seen = true + break + } + } + if !seen { + self.Statements = append(self.Statements, newStatement) + } + } +} + func (ps IAMPolicyStatementPrincipalSet) MarshalJSON() ([]byte, error) { raw := map[string]interface{}{} @@ -75,6 +108,29 @@ func (ps IAMPolicyStatementPrincipalSet) MarshalJSON() ([]byte, error) { return json.Marshal(&raw) } +func (ps *IAMPolicyStatementPrincipalSet) UnmarshalJSON(b []byte) error { + var out IAMPolicyStatementPrincipalSet + + var data interface{} + if err := json.Unmarshal(b, &data); err != nil { + return err + } + + switch t := data.(type) { + case string: + out = append(out, IAMPolicyStatementPrincipal{Type: "*", Identifiers: []string{"*"}}) + case map[string]interface{}: + for key, value := range data.(map[string]interface{}) { + out = append(out, IAMPolicyStatementPrincipal{Type: key, Identifiers: value}) + } + default: + return fmt.Errorf("Unsupported data type %s for IAMPolicyStatementPrincipalSet", t) + } + + *ps = out + return nil +} + func (cs IAMPolicyStatementConditionSet) MarshalJSON() ([]byte, error) { raw := map[string]map[string]interface{}{} @@ -99,6 +155,33 @@ func (cs IAMPolicyStatementConditionSet) MarshalJSON() ([]byte, error) { return json.Marshal(&raw) } +func (cs *IAMPolicyStatementConditionSet) UnmarshalJSON(b []byte) error { + var out IAMPolicyStatementConditionSet + + var data map[string]map[string]interface{} + if err := json.Unmarshal(b, &data); err != nil { + return err + } + + for test_key, test_value := range data { + for var_key, var_values := range test_value { + switch var_values.(type) { + case string: + out = append(out, IAMPolicyStatementCondition{Test: test_key, Variable: var_key, Values: []string{var_values.(string)}}) + case []interface{}: + values := []string{} + for _, v := range var_values.([]interface{}) { + values = append(values, v.(string)) + } + out = append(out, IAMPolicyStatementCondition{Test: test_key, Variable: var_key, Values: values}) + } + } + } + + *cs = out + return nil +} + func iamPolicyDecodeConfigStringList(lI []interface{}) interface{} { if len(lI) == 1 { return lI[0].(string) diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/provider.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/provider.go index 9a3706022..fb31a0b0a 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/provider.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/provider.go @@ -160,30 +160,31 @@ func Provider() terraform.ResourceProvider { }, DataSourcesMap: map[string]*schema.Resource{ - "aws_acm_certificate": dataSourceAwsAcmCertificate(), - "aws_ami": dataSourceAwsAmi(), - "aws_ami_ids": dataSourceAwsAmiIds(), - "aws_autoscaling_groups": dataSourceAwsAutoscalingGroups(), - "aws_availability_zone": dataSourceAwsAvailabilityZone(), - "aws_availability_zones": dataSourceAwsAvailabilityZones(), - "aws_billing_service_account": dataSourceAwsBillingServiceAccount(), - "aws_caller_identity": dataSourceAwsCallerIdentity(), - "aws_canonical_user_id": dataSourceAwsCanonicalUserId(), - "aws_cloudformation_stack": dataSourceAwsCloudFormationStack(), - "aws_cloudtrail_service_account": dataSourceAwsCloudTrailServiceAccount(), - "aws_db_instance": dataSourceAwsDbInstance(), - "aws_db_snapshot": dataSourceAwsDbSnapshot(), - "aws_dynamodb_table": dataSourceAwsDynamoDbTable(), - "aws_ebs_snapshot": dataSourceAwsEbsSnapshot(), - "aws_ebs_snapshot_ids": dataSourceAwsEbsSnapshotIds(), - "aws_ebs_volume": dataSourceAwsEbsVolume(), - "aws_ecr_repository": dataSourceAwsEcrRepository(), - "aws_ecs_cluster": dataSourceAwsEcsCluster(), - "aws_ecs_container_definition": dataSourceAwsEcsContainerDefinition(), - "aws_ecs_task_definition": dataSourceAwsEcsTaskDefinition(), - "aws_efs_file_system": dataSourceAwsEfsFileSystem(), - "aws_efs_mount_target": dataSourceAwsEfsMountTarget(), - "aws_eip": dataSourceAwsEip(), + "aws_acm_certificate": dataSourceAwsAcmCertificate(), + "aws_ami": dataSourceAwsAmi(), + "aws_ami_ids": dataSourceAwsAmiIds(), + "aws_autoscaling_groups": dataSourceAwsAutoscalingGroups(), + "aws_availability_zone": dataSourceAwsAvailabilityZone(), + "aws_availability_zones": dataSourceAwsAvailabilityZones(), + "aws_billing_service_account": dataSourceAwsBillingServiceAccount(), + "aws_caller_identity": dataSourceAwsCallerIdentity(), + "aws_canonical_user_id": dataSourceAwsCanonicalUserId(), + "aws_cloudformation_stack": dataSourceAwsCloudFormationStack(), + "aws_cloudtrail_service_account": dataSourceAwsCloudTrailServiceAccount(), + "aws_db_instance": dataSourceAwsDbInstance(), + "aws_db_snapshot": dataSourceAwsDbSnapshot(), + "aws_dynamodb_table": dataSourceAwsDynamoDbTable(), + "aws_ebs_snapshot": dataSourceAwsEbsSnapshot(), + "aws_ebs_snapshot_ids": dataSourceAwsEbsSnapshotIds(), + "aws_ebs_volume": dataSourceAwsEbsVolume(), + "aws_ecr_repository": dataSourceAwsEcrRepository(), + "aws_ecs_cluster": dataSourceAwsEcsCluster(), + "aws_ecs_container_definition": dataSourceAwsEcsContainerDefinition(), + "aws_ecs_task_definition": dataSourceAwsEcsTaskDefinition(), + "aws_efs_file_system": dataSourceAwsEfsFileSystem(), + "aws_efs_mount_target": dataSourceAwsEfsMountTarget(), + "aws_eip": dataSourceAwsEip(), + "aws_elastic_beanstalk_hosted_zone": dataSourceAwsElasticBeanstalkHostedZone(), "aws_elastic_beanstalk_solution_stack": dataSourceAwsElasticBeanstalkSolutionStack(), "aws_elasticache_cluster": dataSourceAwsElastiCacheCluster(), "aws_elb": dataSourceAwsElb(), @@ -193,6 +194,7 @@ func Provider() terraform.ResourceProvider { "aws_iam_account_alias": dataSourceAwsIamAccountAlias(), "aws_iam_group": dataSourceAwsIAMGroup(), "aws_iam_instance_profile": dataSourceAwsIAMInstanceProfile(), + "aws_iam_policy": dataSourceAwsIAMPolicy(), "aws_iam_policy_document": dataSourceAwsIamPolicyDocument(), "aws_iam_role": dataSourceAwsIAMRole(), "aws_iam_server_certificate": dataSourceAwsIAMServerCertificate(), @@ -237,6 +239,8 @@ func Provider() terraform.ResourceProvider { }, ResourcesMap: map[string]*schema.Resource{ + "aws_acm_certificate": resourceAwsAcmCertificate(), + "aws_acm_certificate_validation": resourceAwsAcmCertificateValidation(), "aws_ami": resourceAwsAmi(), "aws_ami_copy": resourceAwsAmiCopy(), "aws_ami_from_instance": resourceAwsAmiFromInstance(), @@ -248,6 +252,7 @@ func Provider() terraform.ResourceProvider { "aws_api_gateway_client_certificate": resourceAwsApiGatewayClientCertificate(), "aws_api_gateway_deployment": resourceAwsApiGatewayDeployment(), "aws_api_gateway_documentation_part": resourceAwsApiGatewayDocumentationPart(), + "aws_api_gateway_documentation_version": resourceAwsApiGatewayDocumentationVersion(), "aws_api_gateway_domain_name": resourceAwsApiGatewayDomainName(), "aws_api_gateway_gateway_response": resourceAwsApiGatewayGatewayResponse(), "aws_api_gateway_integration": resourceAwsApiGatewayIntegration(), @@ -274,6 +279,7 @@ func Provider() terraform.ResourceProvider { "aws_autoscaling_notification": resourceAwsAutoscalingNotification(), "aws_autoscaling_policy": resourceAwsAutoscalingPolicy(), "aws_autoscaling_schedule": resourceAwsAutoscalingSchedule(), + "aws_cloud9_environment_ec2": resourceAwsCloud9EnvironmentEc2(), "aws_cloudformation_stack": resourceAwsCloudFormationStack(), "aws_cloudfront_distribution": resourceAwsCloudFrontDistribution(), "aws_cloudfront_origin_access_identity": resourceAwsCloudFrontOriginAccessIdentity(), @@ -294,6 +300,7 @@ func Provider() terraform.ResourceProvider { "aws_config_delivery_channel": resourceAwsConfigDeliveryChannel(), "aws_cognito_identity_pool": resourceAwsCognitoIdentityPool(), "aws_cognito_identity_pool_roles_attachment": resourceAwsCognitoIdentityPoolRolesAttachment(), + "aws_cognito_user_group": resourceAwsCognitoUserGroup(), "aws_cognito_user_pool": resourceAwsCognitoUserPool(), "aws_cognito_user_pool_client": resourceAwsCognitoUserPoolClient(), "aws_cognito_user_pool_domain": resourceAwsCognitoUserPoolDomain(), @@ -325,6 +332,7 @@ func Provider() terraform.ResourceProvider { "aws_dx_connection": resourceAwsDxConnection(), "aws_dx_connection_association": resourceAwsDxConnectionAssociation(), "aws_dynamodb_table": resourceAwsDynamoDbTable(), + "aws_dynamodb_table_item": resourceAwsDynamoDbTableItem(), "aws_dynamodb_global_table": resourceAwsDynamoDbGlobalTable(), "aws_ebs_snapshot": resourceAwsEbsSnapshot(), "aws_ebs_volume": resourceAwsEbsVolume(), @@ -362,7 +370,9 @@ func Provider() terraform.ResourceProvider { "aws_glacier_vault": resourceAwsGlacierVault(), "aws_glue_catalog_database": resourceAwsGlueCatalogDatabase(), "aws_guardduty_detector": resourceAwsGuardDutyDetector(), + "aws_guardduty_ipset": resourceAwsGuardDutyIpset(), "aws_guardduty_member": resourceAwsGuardDutyMember(), + "aws_guardduty_threatintelset": resourceAwsGuardDutyThreatintelset(), "aws_iam_access_key": resourceAwsIamAccessKey(), "aws_iam_account_alias": resourceAwsIamAccountAlias(), "aws_iam_account_password_policy": resourceAwsIamAccountPasswordPolicy(), @@ -391,6 +401,7 @@ func Provider() terraform.ResourceProvider { "aws_internet_gateway": resourceAwsInternetGateway(), "aws_iot_certificate": resourceAwsIotCertificate(), "aws_iot_policy": resourceAwsIotPolicy(), + "aws_iot_topic_rule": resourceAwsIotTopicRule(), "aws_key_pair": resourceAwsKeyPair(), "aws_kinesis_firehose_delivery_stream": resourceAwsKinesisFirehoseDeliveryStream(), "aws_kinesis_stream": resourceAwsKinesisStream(), @@ -494,6 +505,7 @@ func Provider() terraform.ResourceProvider { "aws_sqs_queue": resourceAwsSqsQueue(), "aws_sqs_queue_policy": resourceAwsSqsQueuePolicy(), "aws_snapshot_create_volume_permission": resourceAwsSnapshotCreateVolumePermission(), + "aws_sns_platform_application": resourceAwsSnsPlatformApplication(), "aws_sns_topic": resourceAwsSnsTopic(), "aws_sns_topic_policy": resourceAwsSnsTopicPolicy(), "aws_sns_topic_subscription": resourceAwsSnsTopicSubscription(), @@ -510,7 +522,11 @@ func Provider() terraform.ResourceProvider { "aws_default_vpc": resourceAwsDefaultVpc(), "aws_vpc": resourceAwsVpc(), "aws_vpc_endpoint": resourceAwsVpcEndpoint(), + "aws_vpc_endpoint_connection_notification": resourceAwsVpcEndpointConnectionNotification(), "aws_vpc_endpoint_route_table_association": resourceAwsVpcEndpointRouteTableAssociation(), + "aws_vpc_endpoint_subnet_association": resourceAwsVpcEndpointSubnetAssociation(), + "aws_vpc_endpoint_service": resourceAwsVpcEndpointService(), + "aws_vpc_endpoint_service_allowed_principal": resourceAwsVpcEndpointServiceAllowedPrincipal(), "aws_vpn_connection": resourceAwsVpnConnection(), "aws_vpn_connection_route": resourceAwsVpnConnectionRoute(), "aws_vpn_gateway": resourceAwsVpnGateway(), diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_acm_certificate.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_acm_certificate.go new file mode 100644 index 000000000..4b2c06b36 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_acm_certificate.go @@ -0,0 +1,244 @@ +package aws + +import ( + "fmt" + "log" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/acm" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAwsAcmCertificate() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsAcmCertificateCreate, + Read: resourceAwsAcmCertificateRead, + Update: resourceAwsAcmCertificateUpdate, + Delete: resourceAwsAcmCertificateDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + + Schema: map[string]*schema.Schema{ + "domain_name": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "subject_alternative_names": { + Type: schema.TypeList, + Optional: true, + ForceNew: true, + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "validation_method": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "arn": { + Type: schema.TypeString, + Computed: true, + }, + "domain_validation_options": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "domain_name": { + Type: schema.TypeString, + Computed: true, + }, + "resource_record_name": { + Type: schema.TypeString, + Computed: true, + }, + "resource_record_type": { + Type: schema.TypeString, + Computed: true, + }, + "resource_record_value": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "validation_emails": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "tags": tagsSchema(), + }, + } +} + +func resourceAwsAcmCertificateCreate(d *schema.ResourceData, meta interface{}) error { + acmconn := meta.(*AWSClient).acmconn + params := &acm.RequestCertificateInput{ + DomainName: aws.String(d.Get("domain_name").(string)), + ValidationMethod: aws.String(d.Get("validation_method").(string)), + } + + sans, ok := d.GetOk("subject_alternative_names") + if ok { + sanStrings := sans.([]interface{}) + params.SubjectAlternativeNames = expandStringList(sanStrings) + } + + log.Printf("[DEBUG] ACM Certificate Request: %#v", params) + resp, err := acmconn.RequestCertificate(params) + + if err != nil { + return fmt.Errorf("Error requesting certificate: %s", err) + } + + d.SetId(*resp.CertificateArn) + if v, ok := d.GetOk("tags"); ok { + params := &acm.AddTagsToCertificateInput{ + CertificateArn: resp.CertificateArn, + Tags: tagsFromMapACM(v.(map[string]interface{})), + } + _, err := acmconn.AddTagsToCertificate(params) + + if err != nil { + return fmt.Errorf("Error requesting certificate: %s", err) + } + } + + return resourceAwsAcmCertificateRead(d, meta) +} + +func resourceAwsAcmCertificateRead(d *schema.ResourceData, meta interface{}) error { + acmconn := meta.(*AWSClient).acmconn + + params := &acm.DescribeCertificateInput{ + CertificateArn: aws.String(d.Id()), + } + + return resource.Retry(time.Duration(1)*time.Minute, func() *resource.RetryError { + resp, err := acmconn.DescribeCertificate(params) + + if err != nil { + if isAWSErr(err, acm.ErrCodeResourceNotFoundException, "") { + d.SetId("") + return nil + } + return resource.NonRetryableError(fmt.Errorf("Error describing certificate: %s", err)) + } + + d.Set("domain_name", resp.Certificate.DomainName) + d.Set("arn", resp.Certificate.CertificateArn) + + if err := d.Set("subject_alternative_names", cleanUpSubjectAlternativeNames(resp.Certificate)); err != nil { + return resource.NonRetryableError(err) + } + + domainValidationOptions, emailValidationOptions, err := convertValidationOptions(resp.Certificate) + + if err != nil { + return resource.RetryableError(err) + } + + if err := d.Set("domain_validation_options", domainValidationOptions); err != nil { + return resource.NonRetryableError(err) + } + if err := d.Set("validation_emails", emailValidationOptions); err != nil { + return resource.NonRetryableError(err) + } + d.Set("validation_method", resourceAwsAcmCertificateGuessValidationMethod(domainValidationOptions, emailValidationOptions)) + + params := &acm.ListTagsForCertificateInput{ + CertificateArn: aws.String(d.Id()), + } + + tagResp, err := acmconn.ListTagsForCertificate(params) + if err := d.Set("tags", tagsToMapACM(tagResp.Tags)); err != nil { + return resource.NonRetryableError(err) + } + + return nil + }) +} +func resourceAwsAcmCertificateGuessValidationMethod(domainValidationOptions []map[string]interface{}, emailValidationOptions []string) string { + // The DescribeCertificate Response doesn't have information on what validation method was used + // so we need to guess from the validation options we see... + if len(domainValidationOptions) > 0 { + return acm.ValidationMethodDns + } else if len(emailValidationOptions) > 0 { + return acm.ValidationMethodEmail + } else { + return "NONE" + } +} + +func resourceAwsAcmCertificateUpdate(d *schema.ResourceData, meta interface{}) error { + if d.HasChange("tags") { + acmconn := meta.(*AWSClient).acmconn + err := setTagsACM(acmconn, d) + if err != nil { + return err + } + } + return nil +} + +func cleanUpSubjectAlternativeNames(cert *acm.CertificateDetail) []string { + sans := cert.SubjectAlternativeNames + vs := make([]string, 0, len(sans)-1) + for _, v := range sans { + if *v != *cert.DomainName { + vs = append(vs, *v) + } + } + return vs + +} + +func convertValidationOptions(certificate *acm.CertificateDetail) ([]map[string]interface{}, []string, error) { + var domainValidationResult []map[string]interface{} + var emailValidationResult []string + + if *certificate.Type == acm.CertificateTypeAmazonIssued { + for _, o := range certificate.DomainValidationOptions { + if o.ResourceRecord != nil { + validationOption := map[string]interface{}{ + "domain_name": *o.DomainName, + "resource_record_name": *o.ResourceRecord.Name, + "resource_record_type": *o.ResourceRecord.Type, + "resource_record_value": *o.ResourceRecord.Value, + } + domainValidationResult = append(domainValidationResult, validationOption) + } else if o.ValidationEmails != nil && len(o.ValidationEmails) > 0 { + for _, validationEmail := range o.ValidationEmails { + emailValidationResult = append(emailValidationResult, *validationEmail) + } + } else { + log.Printf("[DEBUG] No validation options need to retry: %#v", o) + return nil, nil, fmt.Errorf("No validation options need to retry: %#v", o) + } + } + } + + return domainValidationResult, emailValidationResult, nil +} + +func resourceAwsAcmCertificateDelete(d *schema.ResourceData, meta interface{}) error { + acmconn := meta.(*AWSClient).acmconn + + params := &acm.DeleteCertificateInput{ + CertificateArn: aws.String(d.Id()), + } + + _, err := acmconn.DeleteCertificate(params) + + if err != nil && !isAWSErr(err, acm.ErrCodeResourceNotFoundException, "") { + return fmt.Errorf("Error deleting certificate: %s", err) + } + + d.SetId("") + return nil +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_acm_certificate_validation.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_acm_certificate_validation.go new file mode 100644 index 000000000..f71367d61 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_acm_certificate_validation.go @@ -0,0 +1,142 @@ +package aws + +import ( + "fmt" + "log" + "reflect" + "sort" + "strings" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/acm" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAwsAcmCertificateValidation() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsAcmCertificateValidationCreate, + Read: resourceAwsAcmCertificateValidationRead, + Delete: resourceAwsAcmCertificateValidationDelete, + + Schema: map[string]*schema.Schema{ + "certificate_arn": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "validation_record_fqdns": { + Type: schema.TypeSet, + Optional: true, + ForceNew: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Set: schema.HashString, + }, + }, + Timeouts: &schema.ResourceTimeout{ + Create: schema.DefaultTimeout(45 * time.Minute), + }, + } +} + +func resourceAwsAcmCertificateValidationCreate(d *schema.ResourceData, meta interface{}) error { + certificate_arn := d.Get("certificate_arn").(string) + + acmconn := meta.(*AWSClient).acmconn + params := &acm.DescribeCertificateInput{ + CertificateArn: aws.String(certificate_arn), + } + + resp, err := acmconn.DescribeCertificate(params) + + if err != nil { + return fmt.Errorf("Error describing certificate: %s", err) + } + + if *resp.Certificate.Type != "AMAZON_ISSUED" { + return fmt.Errorf("Certificate %s has type %s, no validation necessary", *resp.Certificate.CertificateArn, *resp.Certificate.Type) + } + + if validation_record_fqdns, ok := d.GetOk("validation_record_fqdns"); ok { + err := resourceAwsAcmCertificateCheckValidationRecords(validation_record_fqdns.(*schema.Set).List(), resp.Certificate) + if err != nil { + return err + } + } else { + log.Printf("[INFO] No validation_record_fqdns set, skipping check") + } + + return resource.Retry(d.Timeout(schema.TimeoutCreate), func() *resource.RetryError { + resp, err := acmconn.DescribeCertificate(params) + + if err != nil { + return resource.NonRetryableError(fmt.Errorf("Error describing certificate: %s", err)) + } + + if *resp.Certificate.Status != "ISSUED" { + return resource.RetryableError(fmt.Errorf("Expected certificate to be issued but was in state %s", *resp.Certificate.Status)) + } + + log.Printf("[INFO] ACM Certificate validation for %s done, certificate was issued", certificate_arn) + return resource.NonRetryableError(resourceAwsAcmCertificateValidationRead(d, meta)) + }) +} + +func resourceAwsAcmCertificateCheckValidationRecords(validation_record_fqdns []interface{}, cert *acm.CertificateDetail) error { + expected_fqdns := make([]string, len(cert.DomainValidationOptions)) + for i, v := range cert.DomainValidationOptions { + if *v.ValidationMethod == acm.ValidationMethodDns { + expected_fqdns[i] = strings.TrimSuffix(*v.ResourceRecord.Name, ".") + } + } + + actual_validation_record_fqdns := make([]string, 0, len(validation_record_fqdns)) + + for _, v := range validation_record_fqdns { + val := v.(string) + actual_validation_record_fqdns = append(actual_validation_record_fqdns, strings.TrimSuffix(val, ".")) + } + + sort.Strings(expected_fqdns) + sort.Strings(actual_validation_record_fqdns) + + log.Printf("[DEBUG] Checking validation_record_fqdns. Expected: %v, Actual: %v", expected_fqdns, actual_validation_record_fqdns) + + if !reflect.DeepEqual(expected_fqdns, actual_validation_record_fqdns) { + return fmt.Errorf("Certificate needs %v to be set but only %v was passed to validation_record_fqdns", expected_fqdns, actual_validation_record_fqdns) + } + + return nil +} + +func resourceAwsAcmCertificateValidationRead(d *schema.ResourceData, meta interface{}) error { + acmconn := meta.(*AWSClient).acmconn + + params := &acm.DescribeCertificateInput{ + CertificateArn: aws.String(d.Get("certificate_arn").(string)), + } + + resp, err := acmconn.DescribeCertificate(params) + + if err != nil && isAWSErr(err, acm.ErrCodeResourceNotFoundException, "") { + d.SetId("") + return nil + } else if err != nil { + return fmt.Errorf("Error describing certificate: %s", err) + } + + if *resp.Certificate.Status != "ISSUED" { + log.Printf("[INFO] Certificate status not issued, was %s, tainting validation", *resp.Certificate.Status) + d.SetId("") + } else { + d.SetId((*resp.Certificate.IssuedAt).String()) + } + return nil +} + +func resourceAwsAcmCertificateValidationDelete(d *schema.ResourceData, meta interface{}) error { + // No need to do anything, certificate will be deleted when acm_certificate is deleted + d.SetId("") + return nil +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_api_gateway_documentation_version.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_api_gateway_documentation_version.go new file mode 100644 index 000000000..6f0280744 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_api_gateway_documentation_version.go @@ -0,0 +1,137 @@ +package aws + +import ( + "fmt" + "log" + "strings" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/apigateway" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAwsApiGatewayDocumentationVersion() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsApiGatewayDocumentationVersionCreate, + Read: resourceAwsApiGatewayDocumentationVersionRead, + Update: resourceAwsApiGatewayDocumentationVersionUpdate, + Delete: resourceAwsApiGatewayDocumentationVersionDelete, + + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + + Schema: map[string]*schema.Schema{ + "version": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "rest_api_id": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "description": { + Type: schema.TypeString, + Optional: true, + }, + }, + } +} + +func resourceAwsApiGatewayDocumentationVersionCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).apigateway + + restApiId := d.Get("rest_api_id").(string) + + params := &apigateway.CreateDocumentationVersionInput{ + DocumentationVersion: aws.String(d.Get("version").(string)), + RestApiId: aws.String(restApiId), + } + if v, ok := d.GetOk("description"); ok { + params.Description = aws.String(v.(string)) + } + + log.Printf("[DEBUG] Creating API Gateway Documentation Version: %s", params) + + version, err := conn.CreateDocumentationVersion(params) + if err != nil { + return fmt.Errorf("Error creating API Gateway Documentation Version: %s", err) + } + + d.SetId(restApiId + "/" + *version.Version) + + return resourceAwsApiGatewayDocumentationVersionRead(d, meta) +} + +func resourceAwsApiGatewayDocumentationVersionRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).apigateway + log.Printf("[DEBUG] Reading API Gateway Documentation Version %s", d.Id()) + + apiId, docVersion, err := decodeApiGatewayDocumentationVersionId(d.Id()) + if err != nil { + return err + } + + version, err := conn.GetDocumentationVersion(&apigateway.GetDocumentationVersionInput{ + DocumentationVersion: aws.String(docVersion), + RestApiId: aws.String(apiId), + }) + if err != nil { + if isAWSErr(err, apigateway.ErrCodeNotFoundException, "") { + log.Printf("[WARN] API Gateway Documentation Version (%s) not found, removing from state", d.Id()) + d.SetId("") + return nil + } + return err + } + + d.Set("rest_api_id", apiId) + d.Set("description", version.Description) + d.Set("version", version.Version) + + return nil +} + +func resourceAwsApiGatewayDocumentationVersionUpdate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).apigateway + log.Printf("[DEBUG] Updating API Gateway Documentation Version %s", d.Id()) + + _, err := conn.UpdateDocumentationVersion(&apigateway.UpdateDocumentationVersionInput{ + DocumentationVersion: aws.String(d.Get("version").(string)), + RestApiId: aws.String(d.Get("rest_api_id").(string)), + PatchOperations: []*apigateway.PatchOperation{ + { + Op: aws.String(apigateway.OpReplace), + Path: aws.String("/description"), + Value: aws.String(d.Get("description").(string)), + }, + }, + }) + if err != nil { + return err + } + log.Printf("[DEBUG] Updated API Gateway Documentation Version %s", d.Id()) + + return resourceAwsApiGatewayDocumentationVersionRead(d, meta) +} + +func resourceAwsApiGatewayDocumentationVersionDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).apigateway + log.Printf("[DEBUG] Deleting API Gateway Documentation Version: %s", d.Id()) + + _, err := conn.DeleteDocumentationVersion(&apigateway.DeleteDocumentationVersionInput{ + DocumentationVersion: aws.String(d.Get("version").(string)), + RestApiId: aws.String(d.Get("rest_api_id").(string)), + }) + return err +} + +func decodeApiGatewayDocumentationVersionId(id string) (string, string, error) { + parts := strings.Split(id, "/") + if len(parts) != 2 { + return "", "", fmt.Errorf("Expected ID in the form of REST-API-ID/VERSION, given: %q", id) + } + return parts[0], parts[1], nil +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_appautoscaling_policy.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_appautoscaling_policy.go index 5fe29bb29..e56c09760 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_appautoscaling_policy.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_appautoscaling_policy.go @@ -49,16 +49,14 @@ func resourceAwsAppautoscalingPolicy() *schema.Resource { Required: true, }, "scalable_dimension": &schema.Schema{ - Type: schema.TypeString, - Required: true, - ForceNew: true, - ValidateFunc: validateAppautoscalingScalableDimension, + Type: schema.TypeString, + Required: true, + ForceNew: true, }, "service_namespace": &schema.Schema{ - Type: schema.TypeString, - Required: true, - ForceNew: true, - ValidateFunc: validateAppautoscalingServiceNamespace, + Type: schema.TypeString, + Required: true, + ForceNew: true, }, "step_scaling_policy_configuration": { Type: schema.TypeList, @@ -212,9 +210,8 @@ func resourceAwsAppautoscalingPolicy() *schema.Resource { Elem: &schema.Resource{ Schema: map[string]*schema.Schema{ "predefined_metric_type": &schema.Schema{ - Type: schema.TypeString, - Required: true, - ValidateFunc: validateAppautoscalingPredefinedMetricSpecification, + Type: schema.TypeString, + Required: true, }, "resource_label": &schema.Schema{ Type: schema.TypeString, diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_appautoscaling_target.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_appautoscaling_target.go index 8a2161e27..851f8057d 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_appautoscaling_target.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_appautoscaling_target.go @@ -40,16 +40,14 @@ func resourceAwsAppautoscalingTarget() *schema.Resource { Computed: true, }, "scalable_dimension": { - Type: schema.TypeString, - Required: true, - ForceNew: true, - ValidateFunc: validateAppautoscalingScalableDimension, + Type: schema.TypeString, + Required: true, + ForceNew: true, }, "service_namespace": { - Type: schema.TypeString, - Required: true, - ForceNew: true, - ValidateFunc: validateAppautoscalingServiceNamespace, + Type: schema.TypeString, + Required: true, + ForceNew: true, }, }, } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_athena_named_query.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_athena_named_query.go index 0df322f99..bfbd197c4 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_athena_named_query.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_athena_named_query.go @@ -14,23 +14,27 @@ func resourceAwsAthenaNamedQuery() *schema.Resource { Read: resourceAwsAthenaNamedQueryRead, Delete: resourceAwsAthenaNamedQueryDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Schema: map[string]*schema.Schema{ - "name": &schema.Schema{ + "name": { Type: schema.TypeString, Required: true, ForceNew: true, }, - "query": &schema.Schema{ + "query": { Type: schema.TypeString, Required: true, ForceNew: true, }, - "database": &schema.Schema{ + "database": { Type: schema.TypeString, Required: true, ForceNew: true, }, - "description": &schema.Schema{ + "description": { Type: schema.TypeString, Optional: true, ForceNew: true, @@ -66,7 +70,7 @@ func resourceAwsAthenaNamedQueryRead(d *schema.ResourceData, meta interface{}) e NamedQueryId: aws.String(d.Id()), } - _, err := conn.GetNamedQuery(input) + resp, err := conn.GetNamedQuery(input) if err != nil { if isAWSErr(err, athena.ErrCodeInvalidRequestException, d.Id()) { log.Printf("[WARN] Athena Named Query (%s) not found, removing from state", d.Id()) @@ -75,6 +79,11 @@ func resourceAwsAthenaNamedQueryRead(d *schema.ResourceData, meta interface{}) e } return err } + + d.Set("name", resp.NamedQuery.Name) + d.Set("query", resp.NamedQuery.QueryString) + d.Set("database", resp.NamedQuery.Database) + d.Set("description", resp.NamedQuery.Description) return nil } @@ -89,6 +98,6 @@ func resourceAwsAthenaNamedQueryDelete(d *schema.ResourceData, meta interface{}) if err != nil { return err } - d.SetId("") + return nil } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_cloud9_environment_ec2.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_cloud9_environment_ec2.go new file mode 100644 index 000000000..84d67fd62 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_cloud9_environment_ec2.go @@ -0,0 +1,218 @@ +package aws + +import ( + "fmt" + "log" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/cloud9" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAwsCloud9EnvironmentEc2() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsCloud9EnvironmentEc2Create, + Read: resourceAwsCloud9EnvironmentEc2Read, + Update: resourceAwsCloud9EnvironmentEc2Update, + Delete: resourceAwsCloud9EnvironmentEc2Delete, + + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + + Schema: map[string]*schema.Schema{ + "name": { + Type: schema.TypeString, + Required: true, + }, + "instance_type": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "automatic_stop_time_minutes": { + Type: schema.TypeInt, + Optional: true, + ForceNew: true, + }, + "description": { + Type: schema.TypeString, + Optional: true, + }, + "owner_arn": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + ValidateFunc: validateArn, + }, + "subnet_id": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "arn": { + Type: schema.TypeString, + Computed: true, + }, + "type": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func resourceAwsCloud9EnvironmentEc2Create(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).cloud9conn + + params := &cloud9.CreateEnvironmentEC2Input{ + InstanceType: aws.String(d.Get("instance_type").(string)), + Name: aws.String(d.Get("name").(string)), + ClientRequestToken: aws.String(resource.UniqueId()), + } + + if v, ok := d.GetOk("automatic_stop_time_minutes"); ok { + params.AutomaticStopTimeMinutes = aws.Int64(int64(v.(int))) + } + if v, ok := d.GetOk("description"); ok { + params.Description = aws.String(v.(string)) + } + if v, ok := d.GetOk("owner_arn"); ok { + params.OwnerArn = aws.String(v.(string)) + } + if v, ok := d.GetOk("subnet_id"); ok { + params.SubnetId = aws.String(v.(string)) + } + + out, err := conn.CreateEnvironmentEC2(params) + if err != nil { + return err + } + d.SetId(*out.EnvironmentId) + + stateConf := resource.StateChangeConf{ + Pending: []string{ + cloud9.EnvironmentStatusConnecting, + cloud9.EnvironmentStatusCreating, + }, + Target: []string{ + cloud9.EnvironmentStatusReady, + }, + Timeout: 10 * time.Minute, + Refresh: func() (interface{}, string, error) { + out, err := conn.DescribeEnvironmentStatus(&cloud9.DescribeEnvironmentStatusInput{ + EnvironmentId: aws.String(d.Id()), + }) + if err != nil { + return 42, "", err + } + + status := *out.Status + var sErr error + if status == cloud9.EnvironmentStatusError && out.Message != nil { + sErr = fmt.Errorf("Reason: %s", *out.Message) + } + + return out, status, sErr + }, + } + _, err = stateConf.WaitForState() + if err != nil { + return err + } + + return resourceAwsCloud9EnvironmentEc2Read(d, meta) +} + +func resourceAwsCloud9EnvironmentEc2Read(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).cloud9conn + + log.Printf("[INFO] Reading Cloud9 Environment EC2 %s", d.Id()) + + out, err := conn.DescribeEnvironments(&cloud9.DescribeEnvironmentsInput{ + EnvironmentIds: []*string{aws.String(d.Id())}, + }) + if err != nil { + if isAWSErr(err, cloud9.ErrCodeNotFoundException, "") { + log.Printf("[WARN] Cloud9 Environment EC2 (%s) not found, removing from state", d.Id()) + d.SetId("") + return nil + } + return err + } + if len(out.Environments) == 0 { + log.Printf("[WARN] Cloud9 Environment EC2 (%s) not found, removing from state", d.Id()) + d.SetId("") + return nil + } + env := out.Environments[0] + + d.Set("arn", env.Arn) + d.Set("description", env.Description) + d.Set("name", env.Name) + d.Set("owner_arn", env.OwnerArn) + d.Set("type", env.Type) + + log.Printf("[DEBUG] Received Cloud9 Environment EC2: %s", env) + + return nil +} + +func resourceAwsCloud9EnvironmentEc2Update(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).cloud9conn + + input := cloud9.UpdateEnvironmentInput{ + Description: aws.String(d.Get("description").(string)), + EnvironmentId: aws.String(d.Id()), + Name: aws.String(d.Get("name").(string)), + } + + log.Printf("[INFO] Updating Cloud9 Environment EC2: %s", input) + + out, err := conn.UpdateEnvironment(&input) + if err != nil { + return err + } + + log.Printf("[DEBUG] Cloud9 Environment EC2 updated: %s", out) + + return resourceAwsCloud9EnvironmentEc2Read(d, meta) +} + +func resourceAwsCloud9EnvironmentEc2Delete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).cloud9conn + + _, err := conn.DeleteEnvironment(&cloud9.DeleteEnvironmentInput{ + EnvironmentId: aws.String(d.Id()), + }) + if err != nil { + return err + } + err = resource.Retry(1*time.Minute, func() *resource.RetryError { + out, err := conn.DescribeEnvironments(&cloud9.DescribeEnvironmentsInput{ + EnvironmentIds: []*string{aws.String(d.Id())}, + }) + if err != nil { + if isAWSErr(err, cloud9.ErrCodeNotFoundException, "") { + return nil + } + // :'-( + if isAWSErr(err, "AccessDeniedException", "is not authorized to access this resource") { + return nil + } + return resource.NonRetryableError(err) + } + if len(out.Environments) == 0 { + return nil + } + return resource.RetryableError(fmt.Errorf("Cloud9 EC2 Environment %q still exists", d.Id())) + }) + if err != nil { + return err + } + + return err +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_codebuild_project.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_codebuild_project.go index 8715e038f..853902283 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_codebuild_project.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_codebuild_project.go @@ -532,7 +532,7 @@ func flattenAwsCodebuildProjectSource(source *codebuild.ProjectSource) []interfa m["type"] = *source.Type if source.Auth != nil { - m["auth"] = sourceAuthToMap(source.Auth) + m["auth"] = schema.NewSet(resourceAwsCodeBuildProjectSourceAuthHash, []interface{}{sourceAuthToMap(source.Auth)}) } if source.Buildspec != nil { diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_cognito_user_group.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_cognito_user_group.go new file mode 100644 index 000000000..f8f4464f0 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_cognito_user_group.go @@ -0,0 +1,174 @@ +package aws + +import ( + "errors" + "fmt" + "log" + "strings" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/cognitoidentityprovider" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAwsCognitoUserGroup() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsCognitoUserGroupCreate, + Read: resourceAwsCognitoUserGroupRead, + Update: resourceAwsCognitoUserGroupUpdate, + Delete: resourceAwsCognitoUserGroupDelete, + + Importer: &schema.ResourceImporter{ + State: resourceAwsCognitoUserGroupImport, + }, + + // https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateGroup.html + Schema: map[string]*schema.Schema{ + "description": { + Type: schema.TypeString, + Optional: true, + ValidateFunc: validateMaxLength(2048), + }, + "name": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validateCognitoUserGroupName, + }, + "precedence": { + Type: schema.TypeInt, + Optional: true, + }, + "role_arn": { + Type: schema.TypeString, + Optional: true, + ValidateFunc: validateArn, + }, + "user_pool_id": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validateCognitoUserPoolId, + }, + }, + } +} + +func resourceAwsCognitoUserGroupCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).cognitoidpconn + + params := &cognitoidentityprovider.CreateGroupInput{ + GroupName: aws.String(d.Get("name").(string)), + UserPoolId: aws.String(d.Get("user_pool_id").(string)), + } + + if v, ok := d.GetOk("description"); ok { + params.Description = aws.String(v.(string)) + } + + if v, ok := d.GetOk("precedence"); ok { + params.Precedence = aws.Int64(int64(v.(int))) + } + + if v, ok := d.GetOk("role_arn"); ok { + params.RoleArn = aws.String(v.(string)) + } + + log.Print("[DEBUG] Creating Cognito User Group") + + resp, err := conn.CreateGroup(params) + if err != nil { + return fmt.Errorf("Error creating Cognito User Group: %s", err) + } + + d.SetId(fmt.Sprintf("%s/%s", *resp.Group.UserPoolId, *resp.Group.GroupName)) + + return resourceAwsCognitoUserGroupRead(d, meta) +} + +func resourceAwsCognitoUserGroupRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).cognitoidpconn + + params := &cognitoidentityprovider.GetGroupInput{ + GroupName: aws.String(d.Get("name").(string)), + UserPoolId: aws.String(d.Get("user_pool_id").(string)), + } + + log.Print("[DEBUG] Reading Cognito User Group") + + resp, err := conn.GetGroup(params) + if err != nil { + if isAWSErr(err, "ResourceNotFoundException", "") { + log.Printf("[WARN] Cognito User Group %s is already gone", d.Id()) + d.SetId("") + return nil + } + return fmt.Errorf("Error reading Cognito User Group: %s", err) + } + + d.Set("description", resp.Group.Description) + d.Set("precedence", resp.Group.Precedence) + d.Set("role_arn", resp.Group.RoleArn) + + return nil +} + +func resourceAwsCognitoUserGroupUpdate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).cognitoidpconn + + params := &cognitoidentityprovider.UpdateGroupInput{ + GroupName: aws.String(d.Get("name").(string)), + UserPoolId: aws.String(d.Get("user_pool_id").(string)), + } + + if d.HasChange("description") { + params.Description = aws.String(d.Get("description").(string)) + } + + if d.HasChange("precedence") { + params.Precedence = aws.Int64(int64(d.Get("precedence").(int))) + } + + if d.HasChange("role_arn") { + params.RoleArn = aws.String(d.Get("description").(string)) + } + + log.Print("[DEBUG] Updating Cognito User Group") + + _, err := conn.UpdateGroup(params) + if err != nil { + return fmt.Errorf("Error updating Cognito User Group: %s", err) + } + + return resourceAwsCognitoUserGroupRead(d, meta) +} + +func resourceAwsCognitoUserGroupDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).cognitoidpconn + + params := &cognitoidentityprovider.DeleteGroupInput{ + GroupName: aws.String(d.Get("name").(string)), + UserPoolId: aws.String(d.Get("user_pool_id").(string)), + } + + log.Print("[DEBUG] Deleting Cognito User Group") + + _, err := conn.DeleteGroup(params) + if err != nil { + return fmt.Errorf("Error deleting Cognito User Group: %s", err) + } + + return nil +} + +func resourceAwsCognitoUserGroupImport(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) { + idSplit := strings.Split(d.Id(), "/") + if len(idSplit) != 2 { + return nil, errors.New("Error importing Cognito User Group. Must specify user_pool_id/group_name") + } + userPoolId := idSplit[0] + name := idSplit[1] + d.Set("user_pool_id", userPoolId) + d.Set("name", name) + return []*schema.ResourceData{d}, nil +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_db_parameter_group.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_db_parameter_group.go index 7d2be31dc..cbc00b4cf 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_db_parameter_group.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_db_parameter_group.go @@ -151,18 +151,80 @@ func resourceAwsDbParameterGroupRead(d *schema.ResourceData, meta interface{}) e d.Set("family", describeResp.DBParameterGroups[0].DBParameterGroupFamily) d.Set("description", describeResp.DBParameterGroups[0].Description) - // Only include user customized parameters as there's hundreds of system/default ones + configParams := d.Get("parameter").(*schema.Set) describeParametersOpts := rds.DescribeDBParametersInput{ DBParameterGroupName: aws.String(d.Id()), - Source: aws.String("user"), + } + if configParams.Len() < 1 { + // if we don't have any params in the ResourceData already, two possibilities + // first, we don't have a config available to us. Second, we do, but it has + // no parameters. We're going to assume the first, to be safe. In this case, + // we're only going to ask for the user-modified values, because any defaults + // the user may have _also_ set are indistinguishable from the hundreds of + // defaults AWS sets. If the user hasn't set any parameters, this will return + // an empty list anyways, so we just make some unnecessary requests. But in + // the more common case (I assume) of an import, this will make fewer requests + // and "do the right thing". + describeParametersOpts.Source = aws.String("user") } - describeParametersResp, err := rdsconn.DescribeDBParameters(&describeParametersOpts) + var parameters []*rds.Parameter + err = rdsconn.DescribeDBParametersPages(&describeParametersOpts, + func(describeParametersResp *rds.DescribeDBParametersOutput, lastPage bool) bool { + parameters = append(parameters, describeParametersResp.Parameters...) + return !lastPage + }) if err != nil { return err } - d.Set("parameter", flattenParameters(describeParametersResp.Parameters)) + var userParams []*rds.Parameter + if configParams.Len() < 1 { + // if we have no config/no parameters in config, we've already asked for only + // user-modified values, so we can just use the entire response. + userParams = parameters + } else { + // if we have a config available to us, we have two possible classes of value + // in the config. On the one hand, the user could have specified a parameter + // that _actually_ changed things, in which case its Source would be set to + // user. On the other, they may have specified a parameter that coincides with + // the default value. In that case, the Source will be set to "system" or + // "engine-default". We need to set the union of all "user" Source parameters + // _and_ the "system"/"engine-default" Source parameters _that appear in the + // config_ in the state, or the user gets a perpetual diff. See + // terraform-providers/terraform-provider-aws#593 for more context and details. + confParams, err := expandParameters(configParams.List()) + if err != nil { + return err + } + for _, param := range parameters { + if param.Source == nil || param.ParameterName == nil { + continue + } + if *param.Source == "user" { + userParams = append(userParams, param) + continue + } + var paramFound bool + for _, cp := range confParams { + if cp.ParameterName == nil { + continue + } + if *cp.ParameterName == *param.ParameterName { + userParams = append(userParams, param) + break + } + } + if !paramFound { + log.Printf("[DEBUG] Not persisting %s to state, as its source is %q and it isn't in the config", *param.ParameterName, *param.Source) + } + } + } + + err = d.Set("parameter", flattenParameters(userParams)) + if err != nil { + return fmt.Errorf("error setting 'parameter' in state: %#v", err) + } paramGroup := describeResp.DBParameterGroups[0] arn, err := buildRDSPGARN(d.Id(), meta.(*AWSClient).partition, meta.(*AWSClient).accountid, meta.(*AWSClient).region) diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dx_connection_association.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dx_connection_association.go index 9f478ce9b..3d6a9cb1a 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dx_connection_association.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dx_connection_association.go @@ -2,9 +2,11 @@ package aws import ( "fmt" + "time" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/directconnect" + "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/helper/schema" ) @@ -79,11 +81,14 @@ func resourceAwsDxConnectionAssociationDelete(d *schema.ResourceData, meta inter LagId: aws.String(d.Get("lag_id").(string)), } - _, err := conn.DisassociateConnectionFromLag(input) - if err != nil { - return err - } - - d.SetId("") - return nil + return resource.Retry(1*time.Minute, func() *resource.RetryError { + _, err := conn.DisassociateConnectionFromLag(input) + if err != nil { + if isAWSErr(err, directconnect.ErrCodeClientException, "is in a transitioning state.") { + return resource.RetryableError(err) + } + return resource.NonRetryableError(err) + } + return nil + }) } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_table.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_table.go index a138929a9..50cf27a08 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_table.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_table.go @@ -25,10 +25,15 @@ func resourceAwsDynamoDbTable() *schema.Resource { }, Timeouts: &schema.ResourceTimeout{ + Create: schema.DefaultTimeout(10 * time.Minute), Delete: schema.DefaultTimeout(10 * time.Minute), Update: schema.DefaultTimeout(10 * time.Minute), }, + CustomizeDiff: func(diff *schema.ResourceDiff, v interface{}) error { + return validateDynamoDbStreamSpec(diff) + }, + SchemaVersion: 1, MigrateState: resourceAwsDynamoDbTableMigrateState, @@ -70,8 +75,9 @@ func resourceAwsDynamoDbTable() *schema.Resource { Required: true, }, "type": { - Type: schema.TypeString, - Required: true, + Type: schema.TypeString, + Required: true, + ValidateFunc: validateDynamoAttributeType, }, }, }, @@ -171,7 +177,6 @@ func resourceAwsDynamoDbTable() *schema.Resource { "stream_enabled": { Type: schema.TypeBool, Optional: true, - Computed: true, }, "stream_view_type": { Type: schema.TypeString, @@ -271,7 +276,7 @@ func resourceAwsDynamoDbTableCreate(d *schema.ResourceData, meta interface{}) er d.SetId(*output.TableDescription.TableName) d.Set("arn", output.TableDescription.TableArn) - if err := waitForDynamoDbTableToBeActive(d.Id(), 10*time.Minute, conn); err != nil { + if err := waitForDynamoDbTableToBeActive(d.Id(), d.Timeout(schema.TimeoutCreate), conn); err != nil { return err } @@ -300,12 +305,16 @@ func resourceAwsDynamoDbTableUpdate(d *schema.ResourceData, meta interface{}) er } if (d.HasChange("stream_enabled") || d.HasChange("stream_view_type")) && !d.IsNewResource() { + toEnable := d.Get("stream_enabled").(bool) + streamSpec := dynamodb.StreamSpecification{ + StreamEnabled: aws.Bool(toEnable), + } + if toEnable { + streamSpec.StreamViewType = aws.String(d.Get("stream_view_type").(string)) + } input := &dynamodb.UpdateTableInput{ - TableName: aws.String(d.Id()), - StreamSpecification: &dynamodb.StreamSpecification{ - StreamEnabled: aws.Bool(d.Get("stream_enabled").(bool)), - StreamViewType: aws.String(d.Get("stream_view_type").(string)), - }, + TableName: aws.String(d.Id()), + StreamSpecification: &streamSpec, } _, err := conn.UpdateTable(input) if err != nil { diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_table_item.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_table_item.go new file mode 100644 index 000000000..764bf8b12 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_table_item.go @@ -0,0 +1,295 @@ +package aws + +import ( + "fmt" + "log" + "reflect" + "strings" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/dynamodb" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAwsDynamoDbTableItem() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsDynamoDbTableItemCreate, + Read: resourceAwsDynamoDbTableItemRead, + Update: resourceAwsDynamoDbTableItemUpdate, + Delete: resourceAwsDynamoDbTableItemDelete, + + Schema: map[string]*schema.Schema{ + "table_name": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "hash_key": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "range_key": { + Type: schema.TypeString, + ForceNew: true, + Optional: true, + }, + "item": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validateDynamoDbTableItem, + }, + }, + } +} + +func validateDynamoDbTableItem(v interface{}, k string) (ws []string, errors []error) { + _, err := expandDynamoDbTableItemAttributes(v.(string)) + if err != nil { + errors = append(errors, fmt.Errorf("Invalid format of %q: %s", k, err)) + } + return +} + +func resourceAwsDynamoDbTableItemCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).dynamodbconn + + tableName := d.Get("table_name").(string) + hashKey := d.Get("hash_key").(string) + item := d.Get("item").(string) + attributes, err := expandDynamoDbTableItemAttributes(item) + if err != nil { + return err + } + + log.Printf("[DEBUG] DynamoDB item create: %s", tableName) + + _, err = conn.PutItem(&dynamodb.PutItemInput{ + Item: attributes, + // Explode if item exists. We didn't create it. + Expected: map[string]*dynamodb.ExpectedAttributeValue{ + hashKey: { + Exists: aws.Bool(false), + }, + }, + TableName: aws.String(tableName), + }) + if err != nil { + return err + } + + rangeKey := d.Get("range_key").(string) + id := buildDynamoDbTableItemId(tableName, hashKey, rangeKey, attributes) + + d.SetId(id) + + return resourceAwsDynamoDbTableItemRead(d, meta) +} + +func resourceAwsDynamoDbTableItemUpdate(d *schema.ResourceData, meta interface{}) error { + log.Printf("[DEBUG] Updating DynamoDB table %s", d.Id()) + conn := meta.(*AWSClient).dynamodbconn + + if d.HasChange("item") { + tableName := d.Get("table_name").(string) + hashKey := d.Get("hash_key").(string) + rangeKey := d.Get("range_key").(string) + + oldItem, newItem := d.GetChange("item") + + attributes, err := expandDynamoDbTableItemAttributes(newItem.(string)) + if err != nil { + return err + } + newQueryKey := buildDynamoDbTableItemQueryKey(attributes, hashKey, rangeKey) + + updates := map[string]*dynamodb.AttributeValueUpdate{} + for key, value := range attributes { + // Hash keys are not updatable, so we'll basically create + // a new record and delete the old one below + if key == hashKey { + continue + } + updates[key] = &dynamodb.AttributeValueUpdate{ + Action: aws.String(dynamodb.AttributeActionPut), + Value: value, + } + } + + _, err = conn.UpdateItem(&dynamodb.UpdateItemInput{ + AttributeUpdates: updates, + TableName: aws.String(tableName), + Key: newQueryKey, + }) + if err != nil { + return err + } + + oItem := oldItem.(string) + oldAttributes, err := expandDynamoDbTableItemAttributes(oItem) + if err != nil { + return err + } + + // New record is created via UpdateItem in case we're changing hash key + // so we need to get rid of the old one + oldQueryKey := buildDynamoDbTableItemQueryKey(oldAttributes, hashKey, rangeKey) + if !reflect.DeepEqual(oldQueryKey, newQueryKey) { + log.Printf("[DEBUG] Deleting old record: %#v", oldQueryKey) + _, err := conn.DeleteItem(&dynamodb.DeleteItemInput{ + Key: oldQueryKey, + TableName: aws.String(tableName), + }) + if err != nil { + return err + } + } + + id := buildDynamoDbTableItemId(tableName, hashKey, rangeKey, attributes) + d.SetId(id) + } + + return resourceAwsDynamoDbTableItemRead(d, meta) +} + +func resourceAwsDynamoDbTableItemRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).dynamodbconn + + log.Printf("[DEBUG] Loading data for DynamoDB table item '%s'", d.Id()) + + tableName := d.Get("table_name").(string) + hashKey := d.Get("hash_key").(string) + rangeKey := d.Get("range_key").(string) + attributes, err := expandDynamoDbTableItemAttributes(d.Get("item").(string)) + if err != nil { + return err + } + + result, err := conn.GetItem(&dynamodb.GetItemInput{ + TableName: aws.String(tableName), + ConsistentRead: aws.Bool(true), + Key: buildDynamoDbTableItemQueryKey(attributes, hashKey, rangeKey), + ProjectionExpression: buildDynamoDbProjectionExpression(attributes), + ExpressionAttributeNames: buildDynamoDbExpressionAttributeNames(attributes), + }) + if err != nil { + if isAWSErr(err, dynamodb.ErrCodeResourceNotFoundException, "") { + log.Printf("[WARN] Dynamodb Table Item (%s) not found, error code (404)", d.Id()) + d.SetId("") + return nil + } + + return fmt.Errorf("Error retrieving DynamoDB table item: %s", err) + } + + if result.Item == nil { + log.Printf("[WARN] Dynamodb Table Item (%s) not found", d.Id()) + d.SetId("") + return nil + } + + // The record exists, now test if it differs from what is desired + if !reflect.DeepEqual(result.Item, attributes) { + itemAttrs, err := flattenDynamoDbTableItemAttributes(result.Item) + if err != nil { + return err + } + d.Set("item", itemAttrs) + id := buildDynamoDbTableItemId(tableName, hashKey, rangeKey, result.Item) + d.SetId(id) + } + + return nil +} + +func resourceAwsDynamoDbTableItemDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).dynamodbconn + + attributes, err := expandDynamoDbTableItemAttributes(d.Get("item").(string)) + if err != nil { + return err + } + hashKey := d.Get("hash_key").(string) + rangeKey := d.Get("range_key").(string) + queryKey := buildDynamoDbTableItemQueryKey(attributes, hashKey, rangeKey) + + _, err = conn.DeleteItem(&dynamodb.DeleteItemInput{ + Key: queryKey, + TableName: aws.String(d.Get("table_name").(string)), + }) + return err +} + +// Helpers + +func buildDynamoDbExpressionAttributeNames(attrs map[string]*dynamodb.AttributeValue) map[string]*string { + names := map[string]*string{} + for key, _ := range attrs { + names["#a_"+key] = aws.String(key) + } + + return names +} + +func buildDynamoDbProjectionExpression(attrs map[string]*dynamodb.AttributeValue) *string { + keys := []string{} + for key, _ := range attrs { + keys = append(keys, key) + } + return aws.String("#a_" + strings.Join(keys, ", #a_")) +} + +func buildDynamoDbTableItemId(tableName string, hashKey string, rangeKey string, attrs map[string]*dynamodb.AttributeValue) string { + hashVal := attrs[hashKey] + + id := []string{ + tableName, + hashKey, + base64Encode(hashVal.B), + } + + if hashVal.S != nil { + id = append(id, *hashVal.S) + } else { + id = append(id, "") + } + if hashVal.N != nil { + id = append(id, *hashVal.N) + } else { + id = append(id, "") + } + if rangeKey != "" { + rangeVal := attrs[rangeKey] + + id = append(id, + rangeKey, + base64Encode(rangeVal.B), + ) + + if rangeVal.S != nil { + id = append(id, *rangeVal.S) + } else { + id = append(id, "") + } + + if rangeVal.N != nil { + id = append(id, *rangeVal.N) + } else { + id = append(id, "") + } + + } + + return strings.Join(id, "|") +} + +func buildDynamoDbTableItemQueryKey(attrs map[string]*dynamodb.AttributeValue, hashKey string, rangeKey string) map[string]*dynamodb.AttributeValue { + queryKey := map[string]*dynamodb.AttributeValue{ + hashKey: attrs[hashKey], + } + if rangeKey != "" { + queryKey[rangeKey] = attrs[rangeKey] + } + + return queryKey +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ecr_lifecycle_policy.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ecr_lifecycle_policy.go index ebc0942df..4f5f4e658 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ecr_lifecycle_policy.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ecr_lifecycle_policy.go @@ -2,7 +2,6 @@ package aws import ( "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/service/ecr" "github.com/hashicorp/terraform/helper/schema" ) @@ -13,6 +12,10 @@ func resourceAwsEcrLifecyclePolicy() *schema.Resource { Read: resourceAwsEcrLifecyclePolicyRead, Delete: resourceAwsEcrLifecyclePolicyDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Schema: map[string]*schema.Schema{ "repository": &schema.Schema{ Type: schema.TypeString, @@ -20,10 +23,11 @@ func resourceAwsEcrLifecyclePolicy() *schema.Resource { ForceNew: true, }, "policy": &schema.Schema{ - Type: schema.TypeString, - Required: true, - ForceNew: true, - ValidateFunc: validateJsonString, + Type: schema.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validateJsonString, + DiffSuppressFunc: suppressEquivalentJsonDiffs, }, "registry_id": &schema.Schema{ Type: schema.TypeString, @@ -54,24 +58,26 @@ func resourceAwsEcrLifecyclePolicyRead(d *schema.ResourceData, meta interface{}) conn := meta.(*AWSClient).ecrconn input := &ecr.GetLifecyclePolicyInput{ - RegistryId: aws.String(d.Get("registry_id").(string)), - RepositoryName: aws.String(d.Get("repository").(string)), + RepositoryName: aws.String(d.Id()), } - _, err := conn.GetLifecyclePolicy(input) + resp, err := conn.GetLifecyclePolicy(input) if err != nil { - if aerr, ok := err.(awserr.Error); ok { - switch aerr.Code() { - case ecr.ErrCodeRepositoryNotFoundException, ecr.ErrCodeLifecyclePolicyNotFoundException: - d.SetId("") - return nil - default: - return err - } + if isAWSErr(err, ecr.ErrCodeRepositoryNotFoundException, "") { + d.SetId("") + return nil + } + if isAWSErr(err, ecr.ErrCodeLifecyclePolicyNotFoundException, "") { + d.SetId("") + return nil } return err } + d.Set("repository", resp.RepositoryName) + d.Set("registry_id", resp.RegistryId) + d.Set("policy", resp.LifecyclePolicyText) + return nil } @@ -79,20 +85,18 @@ func resourceAwsEcrLifecyclePolicyDelete(d *schema.ResourceData, meta interface{ conn := meta.(*AWSClient).ecrconn input := &ecr.DeleteLifecyclePolicyInput{ - RegistryId: aws.String(d.Get("registry_id").(string)), - RepositoryName: aws.String(d.Get("repository").(string)), + RepositoryName: aws.String(d.Id()), } _, err := conn.DeleteLifecyclePolicy(input) if err != nil { - if aerr, ok := err.(awserr.Error); ok { - switch aerr.Code() { - case ecr.ErrCodeRepositoryNotFoundException, ecr.ErrCodeLifecyclePolicyNotFoundException: - d.SetId("") - return nil - default: - return err - } + if isAWSErr(err, ecr.ErrCodeRepositoryNotFoundException, "") { + d.SetId("") + return nil + } + if isAWSErr(err, ecr.ErrCodeLifecyclePolicyNotFoundException, "") { + d.SetId("") + return nil } return err } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ecs_service.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ecs_service.go index 22f8eb945..44f7ee092 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ecs_service.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ecs_service.go @@ -9,7 +9,6 @@ import ( "time" "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/service/ecs" "github.com/hashicorp/terraform/helper/hashcode" "github.com/hashicorp/terraform/helper/resource" @@ -24,6 +23,9 @@ func resourceAwsEcsService() *schema.Resource { Read: resourceAwsEcsServiceRead, Update: resourceAwsEcsServiceUpdate, Delete: resourceAwsEcsServiceDelete, + Importer: &schema.ResourceImporter{ + State: resourceAwsEcsServiceImport, + }, Schema: map[string]*schema.Schema{ "name": { @@ -133,6 +135,11 @@ func resourceAwsEcsService() *schema.Resource { Elem: &schema.Schema{Type: schema.TypeString}, Set: schema.HashString, }, + "assign_public_ip": { + Type: schema.TypeBool, + Optional: true, + Default: false, + }, }, }, }, @@ -201,6 +208,26 @@ func resourceAwsEcsService() *schema.Resource { } } +func resourceAwsEcsServiceImport(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) { + if len(strings.Split(d.Id(), "/")) != 2 { + return []*schema.ResourceData{}, fmt.Errorf("[ERR] Wrong format of resource: %s. Please follow 'cluster-name/service-name'", d.Id()) + } + cluster := strings.Split(d.Id(), "/")[0] + name := strings.Split(d.Id(), "/")[1] + log.Printf("[DEBUG] Importing ECS service %s from cluster %s", name, cluster) + + d.SetId(name) + clusterArn := arnString( + meta.(*AWSClient).partition, + meta.(*AWSClient).region, + "ecs", + meta.(*AWSClient).accountid, + fmt.Sprintf("cluster/%s", cluster), + ) + d.Set("cluster", clusterArn) + return []*schema.ResourceData{d}, nil +} + func resourceAwsEcsServiceCreate(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).ecsconn @@ -236,7 +263,7 @@ func resourceAwsEcsServiceCreate(d *schema.ResourceData, meta interface{}) error input.Role = aws.String(v.(string)) } - input.NetworkConfiguration = expandEcsNetworkConfigration(d.Get("network_configuration").([]interface{})) + input.NetworkConfiguration = expandEcsNetworkConfiguration(d.Get("network_configuration").([]interface{})) strategies := d.Get("placement_strategy").(*schema.Set).List() if len(strategies) > 0 { @@ -287,21 +314,12 @@ func resourceAwsEcsServiceCreate(d *schema.ResourceData, meta interface{}) error out, err = conn.CreateService(&input) if err != nil { - awsErr, ok := err.(awserr.Error) - if !ok { - return resource.NonRetryableError(err) - } - if awsErr.Code() == "InvalidParameterException" { - log.Printf("[DEBUG] Trying to create ECS service again: %q", - awsErr.Message()) + if isAWSErr(err, ecs.ErrCodeClusterNotFoundException, "") { return resource.RetryableError(err) } - if awsErr.Code() == "ClusterNotFoundException" { - log.Printf("[DEBUG] Trying to create ECS service again: %q", - awsErr.Message()) + if isAWSErr(err, ecs.ErrCodeInvalidParameterException, "Please verify that the ECS service role being passed has the proper permissions.") { return resource.RetryableError(err) } - return resource.NonRetryableError(err) } @@ -316,7 +334,7 @@ func resourceAwsEcsServiceCreate(d *schema.ResourceData, meta interface{}) error log.Printf("[DEBUG] ECS service created: %s", *service.ServiceArn) d.SetId(*service.ServiceArn) - return resourceAwsEcsServiceUpdate(d, meta) + return resourceAwsEcsServiceRead(d, meta) } func resourceAwsEcsServiceRead(d *schema.ResourceData, meta interface{}) error { @@ -328,7 +346,18 @@ func resourceAwsEcsServiceRead(d *schema.ResourceData, meta interface{}) error { Cluster: aws.String(d.Get("cluster").(string)), } - out, err := conn.DescribeServices(&input) + var out *ecs.DescribeServicesOutput + err := resource.Retry(2*time.Minute, func() *resource.RetryError { + var err error + out, err = conn.DescribeServices(&input) + if err != nil { + if d.IsNewResource() && isAWSErr(err, ecs.ErrCodeServiceNotFoundException, "") { + return resource.RetryableError(err) + } + return resource.NonRetryableError(err) + } + return nil + }) if err != nil { return err } @@ -399,24 +428,30 @@ func resourceAwsEcsServiceRead(d *schema.ResourceData, meta interface{}) error { log.Printf("[ERR] Error setting placement_constraints for (%s): %s", d.Id(), err) } - if err := d.Set("network_configuration", flattenEcsNetworkConfigration(service.NetworkConfiguration)); err != nil { + if err := d.Set("network_configuration", flattenEcsNetworkConfiguration(service.NetworkConfiguration)); err != nil { return fmt.Errorf("[ERR] Error setting network_configuration for (%s): %s", d.Id(), err) } return nil } -func flattenEcsNetworkConfigration(nc *ecs.NetworkConfiguration) []interface{} { +func flattenEcsNetworkConfiguration(nc *ecs.NetworkConfiguration) []interface{} { if nc == nil { return nil } + result := make(map[string]interface{}) result["security_groups"] = schema.NewSet(schema.HashString, flattenStringList(nc.AwsvpcConfiguration.SecurityGroups)) result["subnets"] = schema.NewSet(schema.HashString, flattenStringList(nc.AwsvpcConfiguration.Subnets)) + + if nc.AwsvpcConfiguration.AssignPublicIp != nil { + result["assign_public_ip"] = *nc.AwsvpcConfiguration.AssignPublicIp == ecs.AssignPublicIpEnabled + } + return []interface{}{result} } -func expandEcsNetworkConfigration(nc []interface{}) *ecs.NetworkConfiguration { +func expandEcsNetworkConfiguration(nc []interface{}) *ecs.NetworkConfiguration { if len(nc) == 0 { return nil } @@ -426,6 +461,13 @@ func expandEcsNetworkConfigration(nc []interface{}) *ecs.NetworkConfiguration { awsVpcConfig.SecurityGroups = expandStringSet(val.(*schema.Set)) } awsVpcConfig.Subnets = expandStringSet(raw["subnets"].(*schema.Set)) + if val, ok := raw["assign_public_ip"].(bool); ok { + awsVpcConfig.AssignPublicIp = aws.String(ecs.AssignPublicIpDisabled) + if val { + awsVpcConfig.AssignPublicIp = aws.String(ecs.AssignPublicIpEnabled) + } + } + return &ecs.NetworkConfiguration{AwsvpcConfiguration: awsVpcConfig} } @@ -495,24 +537,17 @@ func resourceAwsEcsServiceUpdate(d *schema.ResourceData, meta interface{}) error } } - if d.HasChange("network_configration") { - input.NetworkConfiguration = expandEcsNetworkConfigration(d.Get("network_configuration").([]interface{})) + if d.HasChange("network_configuration") { + input.NetworkConfiguration = expandEcsNetworkConfiguration(d.Get("network_configuration").([]interface{})) } - // Retry due to IAM & ECS eventual consistency + // Retry due to IAM eventual consistency err := resource.Retry(2*time.Minute, func() *resource.RetryError { out, err := conn.UpdateService(&input) if err != nil { - awsErr, ok := err.(awserr.Error) - if ok && awsErr.Code() == "InvalidParameterException" { - log.Printf("[DEBUG] Trying to update ECS service again: %#v", err) + if isAWSErr(err, ecs.ErrCodeInvalidParameterException, "Please verify that the ECS service role being passed has the proper permissions.") { return resource.RetryableError(err) } - if ok && awsErr.Code() == "ServiceNotFoundException" { - log.Printf("[DEBUG] Trying to update ECS service again: %#v", err) - return resource.RetryableError(err) - } - return resource.NonRetryableError(err) } @@ -535,11 +570,17 @@ func resourceAwsEcsServiceDelete(d *schema.ResourceData, meta interface{}) error Cluster: aws.String(d.Get("cluster").(string)), }) if err != nil { + if isAWSErr(err, ecs.ErrCodeServiceNotFoundException, "") { + log.Printf("[DEBUG] Removing ECS Service from state, %q is already gone", d.Id()) + d.SetId("") + return nil + } return err } if len(resp.Services) == 0 { - log.Printf("[DEBUG] ECS Service %q is already gone", d.Id()) + log.Printf("[DEBUG] Removing ECS Service from state, %q is already gone", d.Id()) + d.SetId("") return nil } @@ -562,33 +603,23 @@ func resourceAwsEcsServiceDelete(d *schema.ResourceData, meta interface{}) error } } + input := ecs.DeleteServiceInput{ + Service: aws.String(d.Id()), + Cluster: aws.String(d.Get("cluster").(string)), + } // Wait until the ECS service is drained err = resource.Retry(5*time.Minute, func() *resource.RetryError { - input := ecs.DeleteServiceInput{ - Service: aws.String(d.Id()), - Cluster: aws.String(d.Get("cluster").(string)), - } - log.Printf("[DEBUG] Trying to delete ECS service %s", input) _, err := conn.DeleteService(&input) - if err == nil { - return nil - } - - ec2err, ok := err.(awserr.Error) - if !ok { + if err != nil { + if isAWSErr(err, ecs.ErrCodeInvalidParameterException, "The service cannot be stopped while deployments are active.") { + return resource.RetryableError(err) + } return resource.NonRetryableError(err) } - if ec2err.Code() == "InvalidParameterException" { - // Prevent "The service cannot be stopped while deployments are active." - log.Printf("[DEBUG] Trying to delete ECS service again: %q", - ec2err.Message()) - return resource.RetryableError(err) - } - - return resource.NonRetryableError(err) - + return nil }) + if err != nil { return err } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_guardduty_ipset.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_guardduty_ipset.go new file mode 100644 index 000000000..cb14525f3 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_guardduty_ipset.go @@ -0,0 +1,210 @@ +package aws + +import ( + "fmt" + "log" + "strings" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/guardduty" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAwsGuardDutyIpset() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsGuardDutyIpsetCreate, + Read: resourceAwsGuardDutyIpsetRead, + Update: resourceAwsGuardDutyIpsetUpdate, + Delete: resourceAwsGuardDutyIpsetDelete, + + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + + Schema: map[string]*schema.Schema{ + "detector_id": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "name": { + Type: schema.TypeString, + Required: true, + }, + "format": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validateGuardDutyIpsetFormat, + }, + "location": { + Type: schema.TypeString, + Required: true, + }, + "activate": { + Type: schema.TypeBool, + Required: true, + }, + }, + } +} + +func resourceAwsGuardDutyIpsetCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).guarddutyconn + + detectorID := d.Get("detector_id").(string) + input := &guardduty.CreateIPSetInput{ + DetectorId: aws.String(detectorID), + Name: aws.String(d.Get("name").(string)), + Format: aws.String(d.Get("format").(string)), + Location: aws.String(d.Get("location").(string)), + Activate: aws.Bool(d.Get("activate").(bool)), + } + + resp, err := conn.CreateIPSet(input) + if err != nil { + return err + } + + stateConf := &resource.StateChangeConf{ + Pending: []string{guardduty.IpSetStatusActivating, guardduty.IpSetStatusDeactivating}, + Target: []string{guardduty.IpSetStatusActive, guardduty.IpSetStatusInactive}, + Refresh: guardDutyIpsetRefreshStatusFunc(conn, *resp.IpSetId, detectorID), + Timeout: 5 * time.Minute, + MinTimeout: 3 * time.Second, + } + + _, err = stateConf.WaitForState() + if err != nil { + return fmt.Errorf("[WARN] Error waiting for GuardDuty IpSet status to be \"%s\" or \"%s\": %s", guardduty.IpSetStatusActive, guardduty.IpSetStatusInactive, err) + } + + d.SetId(fmt.Sprintf("%s:%s", detectorID, *resp.IpSetId)) + return resourceAwsGuardDutyIpsetRead(d, meta) +} + +func resourceAwsGuardDutyIpsetRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).guarddutyconn + + ipSetId, detectorId, err := decodeGuardDutyIpsetID(d.Id()) + if err != nil { + return err + } + input := &guardduty.GetIPSetInput{ + DetectorId: aws.String(detectorId), + IpSetId: aws.String(ipSetId), + } + + resp, err := conn.GetIPSet(input) + if err != nil { + if isAWSErr(err, guardduty.ErrCodeBadRequestException, "The request is rejected because the input detectorId is not owned by the current account.") { + log.Printf("[WARN] GuardDuty IpSet %q not found, removing from state", ipSetId) + d.SetId("") + return nil + } + return err + } + + d.Set("detector_id", detectorId) + d.Set("format", resp.Format) + d.Set("location", resp.Location) + d.Set("name", resp.Name) + d.Set("activate", *resp.Status == guardduty.IpSetStatusActive) + return nil +} + +func resourceAwsGuardDutyIpsetUpdate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).guarddutyconn + + ipSetId, detectorId, err := decodeGuardDutyIpsetID(d.Id()) + if err != nil { + return err + } + input := &guardduty.UpdateIPSetInput{ + DetectorId: aws.String(detectorId), + IpSetId: aws.String(ipSetId), + } + + if d.HasChange("name") { + input.Name = aws.String(d.Get("name").(string)) + } + if d.HasChange("location") { + input.Location = aws.String(d.Get("location").(string)) + } + if d.HasChange("activate") { + input.Activate = aws.Bool(d.Get("activate").(bool)) + } + + _, err = conn.UpdateIPSet(input) + if err != nil { + return err + } + + return resourceAwsGuardDutyIpsetRead(d, meta) +} + +func resourceAwsGuardDutyIpsetDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).guarddutyconn + + ipSetId, detectorId, err := decodeGuardDutyIpsetID(d.Id()) + if err != nil { + return err + } + input := &guardduty.DeleteIPSetInput{ + DetectorId: aws.String(detectorId), + IpSetId: aws.String(ipSetId), + } + + _, err = conn.DeleteIPSet(input) + if err != nil { + return err + } + + stateConf := &resource.StateChangeConf{ + Pending: []string{ + guardduty.IpSetStatusActive, + guardduty.IpSetStatusActivating, + guardduty.IpSetStatusInactive, + guardduty.IpSetStatusDeactivating, + guardduty.IpSetStatusDeletePending, + }, + Target: []string{guardduty.IpSetStatusDeleted}, + Refresh: guardDutyIpsetRefreshStatusFunc(conn, ipSetId, detectorId), + Timeout: 5 * time.Minute, + MinTimeout: 3 * time.Second, + } + + _, err = stateConf.WaitForState() + if err != nil { + return fmt.Errorf("[WARN] Error waiting for GuardDuty IpSet status to be \"%s\": %s", guardduty.IpSetStatusDeleted, err) + } + + return nil +} + +func guardDutyIpsetRefreshStatusFunc(conn *guardduty.GuardDuty, ipSetID, detectorID string) resource.StateRefreshFunc { + return func() (interface{}, string, error) { + input := &guardduty.GetIPSetInput{ + DetectorId: aws.String(detectorID), + IpSetId: aws.String(ipSetID), + } + resp, err := conn.GetIPSet(input) + if err != nil { + return nil, "failed", err + } + return resp, *resp.Status, nil + } +} + +func decodeGuardDutyIpsetID(id string) (ipsetID, detectorID string, err error) { + parts := strings.Split(id, ":") + if len(parts) != 2 { + err = fmt.Errorf("GuardDuty IPSet ID must be of the form :, was provided: %s", id) + return + } + ipsetID = parts[1] + detectorID = parts[0] + return +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_guardduty_threatintelset.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_guardduty_threatintelset.go new file mode 100644 index 000000000..e55989806 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_guardduty_threatintelset.go @@ -0,0 +1,211 @@ +package aws + +import ( + "fmt" + "log" + "strings" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/guardduty" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAwsGuardDutyThreatintelset() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsGuardDutyThreatintelsetCreate, + Read: resourceAwsGuardDutyThreatintelsetRead, + Update: resourceAwsGuardDutyThreatintelsetUpdate, + Delete: resourceAwsGuardDutyThreatintelsetDelete, + + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + + Schema: map[string]*schema.Schema{ + "detector_id": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "name": { + Type: schema.TypeString, + Required: true, + }, + "format": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validateGuardDutyThreatIntelSetFormat, + }, + "location": { + Type: schema.TypeString, + Required: true, + }, + "activate": { + Type: schema.TypeBool, + Required: true, + }, + }, + } +} + +func resourceAwsGuardDutyThreatintelsetCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).guarddutyconn + + detectorID := d.Get("detector_id").(string) + input := &guardduty.CreateThreatIntelSetInput{ + DetectorId: aws.String(detectorID), + Name: aws.String(d.Get("name").(string)), + Format: aws.String(d.Get("format").(string)), + Location: aws.String(d.Get("location").(string)), + Activate: aws.Bool(d.Get("activate").(bool)), + } + + resp, err := conn.CreateThreatIntelSet(input) + if err != nil { + return err + } + + stateConf := &resource.StateChangeConf{ + Pending: []string{guardduty.ThreatIntelSetStatusActivating, guardduty.ThreatIntelSetStatusDeactivating}, + Target: []string{guardduty.ThreatIntelSetStatusActive, guardduty.ThreatIntelSetStatusInactive}, + Refresh: guardDutyThreatintelsetRefreshStatusFunc(conn, *resp.ThreatIntelSetId, detectorID), + Timeout: 5 * time.Minute, + MinTimeout: 3 * time.Second, + } + + _, err = stateConf.WaitForState() + if err != nil { + return fmt.Errorf("[WARN] Error waiting for GuardDuty ThreatIntelSet status to be \"%s\" or \"%s\": %s", + guardduty.ThreatIntelSetStatusActive, guardduty.ThreatIntelSetStatusInactive, err) + } + + d.SetId(fmt.Sprintf("%s:%s", detectorID, *resp.ThreatIntelSetId)) + return resourceAwsGuardDutyThreatintelsetRead(d, meta) +} + +func resourceAwsGuardDutyThreatintelsetRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).guarddutyconn + + threatIntelSetId, detectorId, err := decodeGuardDutyThreatintelsetID(d.Id()) + if err != nil { + return err + } + input := &guardduty.GetThreatIntelSetInput{ + DetectorId: aws.String(detectorId), + ThreatIntelSetId: aws.String(threatIntelSetId), + } + + resp, err := conn.GetThreatIntelSet(input) + if err != nil { + if isAWSErr(err, guardduty.ErrCodeBadRequestException, "The request is rejected because the input detectorId is not owned by the current account.") { + log.Printf("[WARN] GuardDuty ThreatIntelSet %q not found, removing from state", threatIntelSetId) + d.SetId("") + return nil + } + return err + } + + d.Set("detector_id", detectorId) + d.Set("format", resp.Format) + d.Set("location", resp.Location) + d.Set("name", resp.Name) + d.Set("activate", *resp.Status == guardduty.ThreatIntelSetStatusActive) + return nil +} + +func resourceAwsGuardDutyThreatintelsetUpdate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).guarddutyconn + + threatIntelSetID, detectorId, err := decodeGuardDutyThreatintelsetID(d.Id()) + if err != nil { + return err + } + input := &guardduty.UpdateThreatIntelSetInput{ + DetectorId: aws.String(detectorId), + ThreatIntelSetId: aws.String(threatIntelSetID), + } + + if d.HasChange("name") { + input.Name = aws.String(d.Get("name").(string)) + } + if d.HasChange("location") { + input.Location = aws.String(d.Get("location").(string)) + } + if d.HasChange("activate") { + input.Activate = aws.Bool(d.Get("activate").(bool)) + } + + _, err = conn.UpdateThreatIntelSet(input) + if err != nil { + return err + } + + return resourceAwsGuardDutyThreatintelsetRead(d, meta) +} + +func resourceAwsGuardDutyThreatintelsetDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).guarddutyconn + + threatIntelSetID, detectorId, err := decodeGuardDutyThreatintelsetID(d.Id()) + if err != nil { + return err + } + input := &guardduty.DeleteThreatIntelSetInput{ + DetectorId: aws.String(detectorId), + ThreatIntelSetId: aws.String(threatIntelSetID), + } + + _, err = conn.DeleteThreatIntelSet(input) + if err != nil { + return err + } + + stateConf := &resource.StateChangeConf{ + Pending: []string{ + guardduty.ThreatIntelSetStatusActive, + guardduty.ThreatIntelSetStatusActivating, + guardduty.ThreatIntelSetStatusInactive, + guardduty.ThreatIntelSetStatusDeactivating, + guardduty.ThreatIntelSetStatusDeletePending, + }, + Target: []string{guardduty.ThreatIntelSetStatusDeleted}, + Refresh: guardDutyThreatintelsetRefreshStatusFunc(conn, threatIntelSetID, detectorId), + Timeout: 5 * time.Minute, + MinTimeout: 3 * time.Second, + } + + _, err = stateConf.WaitForState() + if err != nil { + return fmt.Errorf("[WARN] Error waiting for GuardDuty ThreatIntelSet status to be \"%s\": %s", guardduty.ThreatIntelSetStatusDeleted, err) + } + + return nil +} + +func guardDutyThreatintelsetRefreshStatusFunc(conn *guardduty.GuardDuty, threatIntelSetID, detectorID string) resource.StateRefreshFunc { + return func() (interface{}, string, error) { + input := &guardduty.GetThreatIntelSetInput{ + DetectorId: aws.String(detectorID), + ThreatIntelSetId: aws.String(threatIntelSetID), + } + resp, err := conn.GetThreatIntelSet(input) + if err != nil { + return nil, "failed", err + } + return resp, *resp.Status, nil + } +} + +func decodeGuardDutyThreatintelsetID(id string) (threatIntelSetID, detectorID string, err error) { + parts := strings.Split(id, ":") + if len(parts) != 2 { + err = fmt.Errorf("GuardDuty ThreatIntelSet ID must be of the form :, was provided: %s", id) + return + } + threatIntelSetID = parts[1] + detectorID = parts[0] + return +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_instance.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_instance.go index 29024e1eb..f5560814e 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_instance.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_instance.go @@ -1496,47 +1496,34 @@ func readVolumeTags(conn *ec2.EC2, d *schema.ResourceData) error { // Determine whether we're referring to security groups with // IDs or names. We use a heuristic to figure this out. By default, -// we use IDs if we're in a VPC. However, if we previously had an -// all-name list of security groups, we use names. Or, if we had any -// IDs, we use IDs. +// we use IDs if we're in a VPC, and names otherwise (EC2-Classic). +// However, the default VPC accepts either, so store them both here and let the +// config determine which one to use in Plan and Apply. func readSecurityGroups(d *schema.ResourceData, instance *ec2.Instance, conn *ec2.EC2) error { + // An instance with a subnet is in a VPC; an instance without a subnet is in EC2-Classic. hasSubnet := instance.SubnetId != nil && *instance.SubnetId != "" - useID := hasSubnet + useID, useName := hasSubnet, !hasSubnet - // We have no resource data (security_groups) during import - // so knowing which VPC is the instance part is useful - out, err := conn.DescribeVpcs(&ec2.DescribeVpcsInput{ - VpcIds: []*string{instance.VpcId}, - }) - if err != nil { - log.Printf("[WARN] Unable to describe VPC %q: %s", *instance.VpcId, err) - } else if len(out.Vpcs) == 0 { - // This may happen in Eucalyptus Cloud - log.Printf("[WARN] Unable to retrieve VPCs") - } else { - isInDefaultVpc := *out.Vpcs[0].IsDefault - useID = !isInDefaultVpc - } - - if v := d.Get("security_groups"); v != nil { - match := useID - sgs := v.(*schema.Set).List() - if len(sgs) > 0 { - match = false - for _, v := range v.(*schema.Set).List() { - if strings.HasPrefix(v.(string), "sg-") { - match = true - break - } - } + // If the instance is in a VPC, find out if that VPC is Default to determine + // whether to store names. + if instance.VpcId != nil && *instance.VpcId != "" { + out, err := conn.DescribeVpcs(&ec2.DescribeVpcsInput{ + VpcIds: []*string{instance.VpcId}, + }) + if err != nil { + log.Printf("[WARN] Unable to describe VPC %q: %s", *instance.VpcId, err) + } else if len(out.Vpcs) == 0 { + // This may happen in Eucalyptus Cloud + log.Printf("[WARN] Unable to retrieve VPCs") + } else { + isInDefaultVpc := *out.Vpcs[0].IsDefault + useName = isInDefaultVpc } - - useID = match } // Build up the security groups - sgs := make([]string, 0, len(instance.SecurityGroups)) if useID { + sgs := make([]string, 0, len(instance.SecurityGroups)) for _, sg := range instance.SecurityGroups { sgs = append(sgs, *sg.GroupId) } @@ -1544,10 +1531,13 @@ func readSecurityGroups(d *schema.ResourceData, instance *ec2.Instance, conn *ec if err := d.Set("vpc_security_group_ids", sgs); err != nil { return err } - if err := d.Set("security_groups", []string{}); err != nil { + } else { + if err := d.Set("vpc_security_group_ids", []string{}); err != nil { return err } - } else { + } + if useName { + sgs := make([]string, 0, len(instance.SecurityGroups)) for _, sg := range instance.SecurityGroups { sgs = append(sgs, *sg.GroupName) } @@ -1555,7 +1545,8 @@ func readSecurityGroups(d *schema.ResourceData, instance *ec2.Instance, conn *ec if err := d.Set("security_groups", sgs); err != nil { return err } - if err := d.Set("vpc_security_group_ids", []string{}); err != nil { + } else { + if err := d.Set("security_groups", []string{}); err != nil { return err } } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_iot_topic_rule.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_iot_topic_rule.go new file mode 100644 index 000000000..0017db710 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_iot_topic_rule.go @@ -0,0 +1,604 @@ +package aws + +import ( + "log" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/iot" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAwsIotTopicRule() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsIotTopicRuleCreate, + Read: resourceAwsIotTopicRuleRead, + Update: resourceAwsIotTopicRuleUpdate, + Delete: resourceAwsIotTopicRuleDelete, + + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + + Schema: map[string]*schema.Schema{ + "name": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validateIoTTopicRuleName, + }, + "description": { + Type: schema.TypeString, + Optional: true, + }, + "enabled": { + Type: schema.TypeBool, + Required: true, + }, + "sql": { + Type: schema.TypeString, + Required: true, + }, + "sql_version": { + Type: schema.TypeString, + Required: true, + }, + "cloudwatch_alarm": { + Type: schema.TypeSet, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "alarm_name": { + Type: schema.TypeString, + Required: true, + }, + "role_arn": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validateArn, + }, + "state_reason": { + Type: schema.TypeString, + Required: true, + }, + "state_value": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validateIoTTopicRuleCloudWatchAlarmStateValue, + }, + }, + }, + }, + "cloudwatch_metric": { + Type: schema.TypeSet, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "metric_name": { + Type: schema.TypeString, + Required: true, + }, + "metric_namespace": { + Type: schema.TypeString, + Required: true, + }, + "metric_timestamp": { + Type: schema.TypeString, + Optional: true, + ValidateFunc: validateIoTTopicRuleCloudWatchMetricTimestamp, + }, + "metric_unit": { + Type: schema.TypeString, + Required: true, + }, + "metric_value": { + Type: schema.TypeString, + Required: true, + }, + "role_arn": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validateArn, + }, + }, + }, + }, + "dynamodb": { + Type: schema.TypeSet, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "hash_key_field": { + Type: schema.TypeString, + Required: true, + }, + "hash_key_value": { + Type: schema.TypeString, + Required: true, + }, + "hash_key_type": { + Type: schema.TypeString, + Optional: true, + }, + "payload_field": { + Type: schema.TypeString, + Optional: true, + }, + "range_key_field": { + Type: schema.TypeString, + Required: true, + }, + "range_key_value": { + Type: schema.TypeString, + Required: true, + }, + "range_key_type": { + Type: schema.TypeString, + Optional: true, + }, + "role_arn": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validateArn, + }, + "table_name": { + Type: schema.TypeString, + Required: true, + }, + }, + }, + }, + "elasticsearch": { + Type: schema.TypeSet, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "endpoint": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validateIoTTopicRuleElasticSearchEndpoint, + }, + "id": { + Type: schema.TypeString, + Required: true, + }, + "index": { + Type: schema.TypeString, + Required: true, + }, + "role_arn": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validateArn, + }, + "type": { + Type: schema.TypeString, + Required: true, + }, + }, + }, + }, + "firehose": { + Type: schema.TypeSet, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "delivery_stream_name": { + Type: schema.TypeString, + Required: true, + }, + "role_arn": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validateArn, + }, + }, + }, + }, + "kinesis": { + Type: schema.TypeSet, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "partition_key": { + Type: schema.TypeString, + Optional: true, + }, + "role_arn": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validateArn, + }, + "stream_name": { + Type: schema.TypeString, + Required: true, + }, + }, + }, + }, + "lambda": { + Type: schema.TypeSet, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "function_arn": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validateArn, + }, + }, + }, + }, + "republish": { + Type: schema.TypeSet, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "role_arn": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validateArn, + }, + "topic": { + Type: schema.TypeString, + Required: true, + }, + }, + }, + }, + "s3": { + Type: schema.TypeSet, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "bucket_name": { + Type: schema.TypeString, + Required: true, + }, + "key": { + Type: schema.TypeString, + Required: true, + }, + "role_arn": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validateArn, + }, + }, + }, + }, + "sns": { + Type: schema.TypeSet, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "message_format": { + Type: schema.TypeString, + Default: iot.MessageFormatRaw, + Optional: true, + }, + "target_arn": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validateArn, + }, + "role_arn": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validateArn, + }, + }, + }, + }, + "sqs": { + Type: schema.TypeSet, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "queue_url": { + Type: schema.TypeString, + Required: true, + }, + "role_arn": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validateArn, + }, + "use_base64": { + Type: schema.TypeBool, + Required: true, + }, + }, + }, + }, + "arn": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func createTopicRulePayload(d *schema.ResourceData) *iot.TopicRulePayload { + cloudwatchAlarmActions := d.Get("cloudwatch_alarm").(*schema.Set).List() + cloudwatchMetricActions := d.Get("cloudwatch_metric").(*schema.Set).List() + dynamoDbActions := d.Get("dynamodb").(*schema.Set).List() + elasticsearchActions := d.Get("elasticsearch").(*schema.Set).List() + firehoseActions := d.Get("firehose").(*schema.Set).List() + kinesisActions := d.Get("kinesis").(*schema.Set).List() + lambdaActions := d.Get("lambda").(*schema.Set).List() + republishActions := d.Get("republish").(*schema.Set).List() + s3Actions := d.Get("s3").(*schema.Set).List() + snsActions := d.Get("sns").(*schema.Set).List() + sqsActions := d.Get("sqs").(*schema.Set).List() + + numActions := len(cloudwatchAlarmActions) + len(cloudwatchMetricActions) + + len(dynamoDbActions) + len(elasticsearchActions) + len(firehoseActions) + + len(kinesisActions) + len(lambdaActions) + len(republishActions) + + len(s3Actions) + len(snsActions) + len(sqsActions) + actions := make([]*iot.Action, numActions) + + i := 0 + // Add Cloudwatch Alarm actions + for _, a := range cloudwatchAlarmActions { + raw := a.(map[string]interface{}) + actions[i] = &iot.Action{ + CloudwatchAlarm: &iot.CloudwatchAlarmAction{ + AlarmName: aws.String(raw["alarm_name"].(string)), + RoleArn: aws.String(raw["role_arn"].(string)), + StateReason: aws.String(raw["state_reason"].(string)), + StateValue: aws.String(raw["state_value"].(string)), + }, + } + i++ + } + + // Add Cloudwatch Metric actions + for _, a := range cloudwatchMetricActions { + raw := a.(map[string]interface{}) + actions[i] = &iot.Action{ + CloudwatchMetric: &iot.CloudwatchMetricAction{ + MetricName: aws.String(raw["metric_name"].(string)), + MetricNamespace: aws.String(raw["metric_namespace"].(string)), + MetricUnit: aws.String(raw["metric_unit"].(string)), + MetricValue: aws.String(raw["metric_value"].(string)), + RoleArn: aws.String(raw["role_arn"].(string)), + MetricTimestamp: aws.String(raw["metric_timestamp"].(string)), + }, + } + i++ + } + + // Add DynamoDB actions + for _, a := range dynamoDbActions { + raw := a.(map[string]interface{}) + act := &iot.Action{ + DynamoDB: &iot.DynamoDBAction{ + HashKeyField: aws.String(raw["hash_key_field"].(string)), + HashKeyValue: aws.String(raw["hash_key_value"].(string)), + RangeKeyField: aws.String(raw["range_key_field"].(string)), + RangeKeyValue: aws.String(raw["range_key_value"].(string)), + RoleArn: aws.String(raw["role_arn"].(string)), + TableName: aws.String(raw["table_name"].(string)), + }, + } + if v, ok := raw["hash_key_type"].(string); ok && v != "" { + act.DynamoDB.HashKeyType = aws.String(v) + } + if v, ok := raw["range_key_type"].(string); ok && v != "" { + act.DynamoDB.RangeKeyType = aws.String(v) + } + if v, ok := raw["payload_field"].(string); ok && v != "" { + act.DynamoDB.PayloadField = aws.String(v) + } + actions[i] = act + i++ + } + + // Add Elasticsearch actions + + for _, a := range elasticsearchActions { + raw := a.(map[string]interface{}) + actions[i] = &iot.Action{ + Elasticsearch: &iot.ElasticsearchAction{ + Endpoint: aws.String(raw["endpoint"].(string)), + Id: aws.String(raw["id"].(string)), + Index: aws.String(raw["index"].(string)), + RoleArn: aws.String(raw["role_arn"].(string)), + Type: aws.String(raw["type"].(string)), + }, + } + i++ + } + + // Add Firehose actions + + for _, a := range firehoseActions { + raw := a.(map[string]interface{}) + actions[i] = &iot.Action{ + Firehose: &iot.FirehoseAction{ + DeliveryStreamName: aws.String(raw["delivery_stream_name"].(string)), + RoleArn: aws.String(raw["role_arn"].(string)), + }, + } + i++ + } + + // Add Kinesis actions + + for _, a := range kinesisActions { + raw := a.(map[string]interface{}) + act := &iot.Action{ + Kinesis: &iot.KinesisAction{ + RoleArn: aws.String(raw["role_arn"].(string)), + StreamName: aws.String(raw["stream_name"].(string)), + }, + } + if v, ok := raw["partition_key"].(string); ok && v != "" { + act.Kinesis.PartitionKey = aws.String(v) + } + actions[i] = act + i++ + } + + // Add Lambda actions + + for _, a := range lambdaActions { + raw := a.(map[string]interface{}) + actions[i] = &iot.Action{ + Lambda: &iot.LambdaAction{ + FunctionArn: aws.String(raw["function_arn"].(string)), + }, + } + i++ + } + + // Add Republish actions + + for _, a := range republishActions { + raw := a.(map[string]interface{}) + actions[i] = &iot.Action{ + Republish: &iot.RepublishAction{ + RoleArn: aws.String(raw["role_arn"].(string)), + Topic: aws.String(raw["topic"].(string)), + }, + } + i++ + } + + // Add S3 actions + + for _, a := range s3Actions { + raw := a.(map[string]interface{}) + actions[i] = &iot.Action{ + S3: &iot.S3Action{ + BucketName: aws.String(raw["bucket_name"].(string)), + Key: aws.String(raw["key"].(string)), + RoleArn: aws.String(raw["role_arn"].(string)), + }, + } + i++ + } + + // Add SNS actions + + for _, a := range snsActions { + raw := a.(map[string]interface{}) + actions[i] = &iot.Action{ + Sns: &iot.SnsAction{ + RoleArn: aws.String(raw["role_arn"].(string)), + TargetArn: aws.String(raw["target_arn"].(string)), + MessageFormat: aws.String(raw["message_format"].(string)), + }, + } + i++ + } + + // Add SQS actions + + for _, a := range sqsActions { + raw := a.(map[string]interface{}) + actions[i] = &iot.Action{ + Sqs: &iot.SqsAction{ + QueueUrl: aws.String(raw["queue_url"].(string)), + RoleArn: aws.String(raw["role_arn"].(string)), + UseBase64: aws.Bool(raw["use_base64"].(bool)), + }, + } + i++ + } + + return &iot.TopicRulePayload{ + Description: aws.String(d.Get("description").(string)), + RuleDisabled: aws.Bool(!d.Get("enabled").(bool)), + Sql: aws.String(d.Get("sql").(string)), + AwsIotSqlVersion: aws.String(d.Get("sql_version").(string)), + Actions: actions, + } +} + +func resourceAwsIotTopicRuleCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).iotconn + + ruleName := d.Get("name").(string) + + params := &iot.CreateTopicRuleInput{ + RuleName: aws.String(ruleName), + TopicRulePayload: createTopicRulePayload(d), + } + log.Printf("[DEBUG] Creating IoT Topic Rule: %s", params) + _, err := conn.CreateTopicRule(params) + + if err != nil { + return err + } + + d.SetId(ruleName) + + return resourceAwsIotTopicRuleRead(d, meta) +} + +func resourceAwsIotTopicRuleRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).iotconn + + params := &iot.GetTopicRuleInput{ + RuleName: aws.String(d.Id()), + } + log.Printf("[DEBUG] Reading IoT Topic Rule: %s", params) + out, err := conn.GetTopicRule(params) + + if err != nil { + return err + } + + d.Set("arn", out.RuleArn) + d.Set("name", out.Rule.RuleName) + d.Set("description", out.Rule.Description) + d.Set("enabled", !(*out.Rule.RuleDisabled)) + d.Set("sql", out.Rule.Sql) + d.Set("sql_version", out.Rule.AwsIotSqlVersion) + d.Set("cloudwatch_alarm", flattenIoTRuleCloudWatchAlarmActions(out.Rule.Actions)) + d.Set("cloudwatch_metric", flattenIoTRuleCloudWatchMetricActions(out.Rule.Actions)) + d.Set("dynamodb", flattenIoTRuleDynamoDbActions(out.Rule.Actions)) + d.Set("elasticsearch", flattenIoTRuleElasticSearchActions(out.Rule.Actions)) + d.Set("firehose", flattenIoTRuleFirehoseActions(out.Rule.Actions)) + d.Set("kinesis", flattenIoTRuleKinesisActions(out.Rule.Actions)) + d.Set("lambda", flattenIoTRuleLambdaActions(out.Rule.Actions)) + d.Set("republish", flattenIoTRuleRepublishActions(out.Rule.Actions)) + d.Set("s3", flattenIoTRuleS3Actions(out.Rule.Actions)) + d.Set("sns", flattenIoTRuleSnsActions(out.Rule.Actions)) + d.Set("sqs", flattenIoTRuleSqsActions(out.Rule.Actions)) + + return nil +} + +func resourceAwsIotTopicRuleUpdate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).iotconn + + params := &iot.ReplaceTopicRuleInput{ + RuleName: aws.String(d.Get("name").(string)), + TopicRulePayload: createTopicRulePayload(d), + } + log.Printf("[DEBUG] Updating IoT Topic Rule: %s", params) + _, err := conn.ReplaceTopicRule(params) + + if err != nil { + return err + } + + return resourceAwsIotTopicRuleRead(d, meta) +} + +func resourceAwsIotTopicRuleDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).iotconn + + params := &iot.DeleteTopicRuleInput{ + RuleName: aws.String(d.Id()), + } + log.Printf("[DEBUG] Deleting IoT Topic Rule: %s", params) + _, err := conn.DeleteTopicRule(params) + + if err != nil { + return err + } + + return nil +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_kinesis_firehose_delivery_stream.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_kinesis_firehose_delivery_stream.go index ce4e74c13..f3e72689d 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_kinesis_firehose_delivery_stream.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_kinesis_firehose_delivery_stream.go @@ -198,7 +198,7 @@ func flattenFirehoseS3Configuration(s3 firehose.S3DestinationDescription) []inte s3Configuration["cloudwatch_logging_options"] = flattenCloudwatchLoggingOptions(*s3.CloudWatchLoggingOptions) } if s3.EncryptionConfiguration.KMSEncryptionConfig != nil { - s3Configuration["kms_key_arn"] = *s3.EncryptionConfiguration.KMSEncryptionConfig + s3Configuration["kms_key_arn"] = *s3.EncryptionConfiguration.KMSEncryptionConfig.AWSKMSKeyARN } if s3.Prefix != nil { s3Configuration["prefix"] = *s3.Prefix @@ -263,20 +263,25 @@ func flattenKinesisFirehoseDeliveryStream(d *schema.ResourceData, s *firehose.De password := d.Get("redshift_configuration.0.password").(string) redshiftConfiguration := map[string]interface{}{ - "cluster_jdbcurl": *destination.RedshiftDestinationDescription.ClusterJDBCURL, - "role_arn": *destination.RedshiftDestinationDescription.RoleARN, - "username": *destination.RedshiftDestinationDescription.Username, - "password": password, - "data_table_name": *destination.RedshiftDestinationDescription.CopyCommand.DataTableName, - "copy_options": *destination.RedshiftDestinationDescription.CopyCommand.CopyOptions, - "data_table_columns": *destination.RedshiftDestinationDescription.CopyCommand.DataTableColumns, - "s3_backup_mode": *destination.RedshiftDestinationDescription.S3BackupMode, - "retry_duration": *destination.RedshiftDestinationDescription.RetryOptions.DurationInSeconds, - "cloudwatch_logging_options": flattenCloudwatchLoggingOptions(*destination.RedshiftDestinationDescription.CloudWatchLoggingOptions), + "cluster_jdbcurl": *destination.RedshiftDestinationDescription.ClusterJDBCURL, + "role_arn": *destination.RedshiftDestinationDescription.RoleARN, + "username": *destination.RedshiftDestinationDescription.Username, + "password": password, + "data_table_name": *destination.RedshiftDestinationDescription.CopyCommand.DataTableName, + "copy_options": *destination.RedshiftDestinationDescription.CopyCommand.CopyOptions, + "data_table_columns": *destination.RedshiftDestinationDescription.CopyCommand.DataTableColumns, + "s3_backup_mode": *destination.RedshiftDestinationDescription.S3BackupMode, + "retry_duration": *destination.RedshiftDestinationDescription.RetryOptions.DurationInSeconds, } - if s3bd := destination.RedshiftDestinationDescription.S3BackupDescription; s3bd != nil { - redshiftConfiguration["s3_backup_configuration"] = flattenFirehoseS3Configuration(*s3bd) + + if v := destination.RedshiftDestinationDescription.CloudWatchLoggingOptions; v != nil { + redshiftConfiguration["cloudwatch_logging_options"] = flattenCloudwatchLoggingOptions(*v) } + + if v := destination.RedshiftDestinationDescription.S3BackupDescription; v != nil { + redshiftConfiguration["s3_backup_configuration"] = flattenFirehoseS3Configuration(*v) + } + redshiftConfList := make([]map[string]interface{}, 1) redshiftConfList[0] = redshiftConfiguration d.Set("redshift_configuration", redshiftConfList) @@ -286,21 +291,45 @@ func flattenKinesisFirehoseDeliveryStream(d *schema.ResourceData, s *firehose.De d.Set("destination", "elasticsearch") elasticsearchConfiguration := map[string]interface{}{ - "buffering_interval": *destination.ElasticsearchDestinationDescription.BufferingHints.IntervalInSeconds, - "buffering_size": *destination.ElasticsearchDestinationDescription.BufferingHints.SizeInMBs, - "domain_arn": *destination.ElasticsearchDestinationDescription.DomainARN, - "role_arn": *destination.ElasticsearchDestinationDescription.RoleARN, - "type_name": *destination.ElasticsearchDestinationDescription.TypeName, - "index_name": *destination.ElasticsearchDestinationDescription.IndexName, - "s3_backup_mode": *destination.ElasticsearchDestinationDescription.S3BackupMode, - "retry_duration": *destination.ElasticsearchDestinationDescription.RetryOptions.DurationInSeconds, - "index_rotation_period": *destination.ElasticsearchDestinationDescription.IndexRotationPeriod, - "cloudwatch_logging_options": flattenCloudwatchLoggingOptions(*destination.ElasticsearchDestinationDescription.CloudWatchLoggingOptions), + "buffering_interval": *destination.ElasticsearchDestinationDescription.BufferingHints.IntervalInSeconds, + "buffering_size": *destination.ElasticsearchDestinationDescription.BufferingHints.SizeInMBs, + "domain_arn": *destination.ElasticsearchDestinationDescription.DomainARN, + "role_arn": *destination.ElasticsearchDestinationDescription.RoleARN, + "type_name": *destination.ElasticsearchDestinationDescription.TypeName, + "index_name": *destination.ElasticsearchDestinationDescription.IndexName, + "s3_backup_mode": *destination.ElasticsearchDestinationDescription.S3BackupMode, + "retry_duration": *destination.ElasticsearchDestinationDescription.RetryOptions.DurationInSeconds, + "index_rotation_period": *destination.ElasticsearchDestinationDescription.IndexRotationPeriod, } + + if v := destination.ElasticsearchDestinationDescription.CloudWatchLoggingOptions; v != nil { + elasticsearchConfiguration["cloudwatch_logging_options"] = flattenCloudwatchLoggingOptions(*v) + } + elasticsearchConfList := make([]map[string]interface{}, 1) elasticsearchConfList[0] = elasticsearchConfiguration d.Set("elasticsearch_configuration", elasticsearchConfList) d.Set("s3_configuration", flattenFirehoseS3Configuration(*destination.ElasticsearchDestinationDescription.S3DestinationDescription)) + } else if destination.SplunkDestinationDescription != nil { + d.Set("destination", "splunk") + + splunkConfiguration := map[string]interface{}{ + "hec_acknowledgment_timeout": *destination.SplunkDestinationDescription.HECAcknowledgmentTimeoutInSeconds, + "hec_endpoint": *destination.SplunkDestinationDescription.HECEndpoint, + "hec_endpoint_type": *destination.SplunkDestinationDescription.HECEndpointType, + "hec_token": *destination.SplunkDestinationDescription.HECToken, + "s3_backup_mode": *destination.SplunkDestinationDescription.S3BackupMode, + "retry_duration": *destination.SplunkDestinationDescription.RetryOptions.DurationInSeconds, + } + + if v := destination.SplunkDestinationDescription.CloudWatchLoggingOptions; v != nil { + splunkConfiguration["cloudwatch_logging_options"] = flattenCloudwatchLoggingOptions(*v) + } + + splunkConfList := make([]map[string]interface{}, 1) + splunkConfList[0] = splunkConfiguration + d.Set("splunk_configuration", splunkConfList) + d.Set("s3_configuration", flattenFirehoseS3Configuration(*destination.SplunkDestinationDescription.S3DestinationDescription)) } else if d.Get("destination").(string) == "s3" { d.Set("destination", "s3") d.Set("s3_configuration", flattenFirehoseS3Configuration(*destination.S3DestinationDescription)) @@ -317,13 +346,15 @@ func flattenKinesisFirehoseDeliveryStream(d *schema.ResourceData, s *firehose.De "prefix": *destination.ExtendedS3DestinationDescription.Prefix, "cloudwatch_logging_options": flattenCloudwatchLoggingOptions(*destination.ExtendedS3DestinationDescription.CloudWatchLoggingOptions), } - if destination.ExtendedS3DestinationDescription.EncryptionConfiguration.KMSEncryptionConfig != nil { - extendedS3Configuration["kms_key_arn"] = *destination.ExtendedS3DestinationDescription.EncryptionConfiguration.KMSEncryptionConfig + + if v := destination.ExtendedS3DestinationDescription.EncryptionConfiguration.KMSEncryptionConfig; v != nil { + extendedS3Configuration["kms_key_arn"] = *v.AWSKMSKeyARN } - if destination.ExtendedS3DestinationDescription.ProcessingConfiguration != nil { - extendedS3Configuration["processing_configuration"] = flattenProcessingConfiguration( - *destination.ExtendedS3DestinationDescription.ProcessingConfiguration, roleArn) + + if v := destination.ExtendedS3DestinationDescription.ProcessingConfiguration; v != nil { + extendedS3Configuration["processing_configuration"] = flattenProcessingConfiguration(*v, roleArn) } + extendedS3ConfList := make([]map[string]interface{}, 1) extendedS3ConfList[0] = extendedS3Configuration @@ -404,9 +435,9 @@ func resourceAwsKinesisFirehoseDeliveryStream() *schema.Resource { }, ValidateFunc: func(v interface{}, k string) (ws []string, errors []error) { value := v.(string) - if value != "s3" && value != "extended_s3" && value != "redshift" && value != "elasticsearch" { + if value != "s3" && value != "extended_s3" && value != "redshift" && value != "elasticsearch" && value != "splunk" { errors = append(errors, fmt.Errorf( - "%q must be one of 's3', 'extended_s3', 'redshift', 'elasticsearch'", k)) + "%q must be one of 's3', 'extended_s3', 'redshift', 'elasticsearch', 'splunk'", k)) } return }, @@ -653,6 +684,71 @@ func resourceAwsKinesisFirehoseDeliveryStream() *schema.Resource { }, }, + "splunk_configuration": { + Type: schema.TypeList, + Optional: true, + MaxItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "hec_acknowledgment_timeout": { + Type: schema.TypeInt, + Optional: true, + Default: 180, + ValidateFunc: validateIntegerInRange(180, 600), + }, + + "hec_endpoint": { + Type: schema.TypeString, + Required: true, + }, + + "hec_endpoint_type": { + Type: schema.TypeString, + Optional: true, + Default: firehose.HECEndpointTypeRaw, + ValidateFunc: func(v interface{}, k string) (ws []string, errors []error) { + value := v.(string) + if value != firehose.HECEndpointTypeRaw && value != firehose.HECEndpointTypeEvent { + errors = append(errors, fmt.Errorf( + "%q must be one of 'Raw', 'Event'", k)) + } + return + }, + }, + + "hec_token": { + Type: schema.TypeString, + Required: true, + }, + + "s3_backup_mode": { + Type: schema.TypeString, + Optional: true, + Default: firehose.SplunkS3BackupModeFailedEventsOnly, + ValidateFunc: func(v interface{}, k string) (ws []string, errors []error) { + value := v.(string) + if value != firehose.SplunkS3BackupModeFailedEventsOnly && value != firehose.SplunkS3BackupModeAllEvents { + errors = append(errors, fmt.Errorf( + "%q must be one of 'FailedEventsOnly', 'AllEvents'", k)) + } + return + }, + }, + + "retry_duration": { + Type: schema.TypeInt, + Optional: true, + Default: 3600, + ValidateFunc: validateIntegerInRange(0, 7200), + }, + + "cloudwatch_logging_options": cloudWatchLoggingOptionsSchema(), + + "processing_configuration": processingConfigurationSchema(), + }, + }, + }, + "arn": { Type: schema.TypeString, Optional: true, @@ -1052,6 +1148,62 @@ func updateElasticsearchConfig(d *schema.ResourceData, s3Update *firehose.S3Dest return update, nil } +func createSplunkConfig(d *schema.ResourceData, s3Config *firehose.S3DestinationConfiguration) (*firehose.SplunkDestinationConfiguration, error) { + splunkRaw, ok := d.GetOk("splunk_configuration") + if !ok { + return nil, fmt.Errorf("[ERR] Error loading Splunk Configuration for Kinesis Firehose: splunk_configuration not found") + } + sl := splunkRaw.([]interface{}) + + splunk := sl[0].(map[string]interface{}) + + configuration := &firehose.SplunkDestinationConfiguration{ + HECToken: aws.String(splunk["hec_token"].(string)), + HECEndpointType: aws.String(splunk["hec_endpoint_type"].(string)), + HECEndpoint: aws.String(splunk["hec_endpoint"].(string)), + HECAcknowledgmentTimeoutInSeconds: aws.Int64(int64(splunk["hec_acknowledgment_timeout"].(int))), + RetryOptions: extractSplunkRetryOptions(splunk), + S3Configuration: s3Config, + } + + if _, ok := splunk["cloudwatch_logging_options"]; ok { + configuration.CloudWatchLoggingOptions = extractCloudWatchLoggingConfiguration(splunk) + } + if s3BackupMode, ok := splunk["s3_backup_mode"]; ok { + configuration.S3BackupMode = aws.String(s3BackupMode.(string)) + } + + return configuration, nil +} + +func updateSplunkConfig(d *schema.ResourceData, s3Update *firehose.S3DestinationUpdate) (*firehose.SplunkDestinationUpdate, error) { + splunkRaw, ok := d.GetOk("splunk_configuration") + if !ok { + return nil, fmt.Errorf("[ERR] Error loading Splunk Configuration for Kinesis Firehose: splunk_configuration not found") + } + sl := splunkRaw.([]interface{}) + + splunk := sl[0].(map[string]interface{}) + + configuration := &firehose.SplunkDestinationUpdate{ + HECToken: aws.String(splunk["hec_token"].(string)), + HECEndpointType: aws.String(splunk["hec_endpoint_type"].(string)), + HECEndpoint: aws.String(splunk["hec_endpoint"].(string)), + HECAcknowledgmentTimeoutInSeconds: aws.Int64(int64(splunk["hec_acknowledgment_timeout"].(int))), + RetryOptions: extractSplunkRetryOptions(splunk), + S3Update: s3Update, + } + + if _, ok := splunk["cloudwatch_logging_options"]; ok { + configuration.CloudWatchLoggingOptions = extractCloudWatchLoggingConfiguration(splunk) + } + if s3BackupMode, ok := splunk["s3_backup_mode"]; ok { + configuration.S3BackupMode = aws.String(s3BackupMode.(string)) + } + + return configuration, nil +} + func extractBufferingHints(es map[string]interface{}) *firehose.ElasticsearchBufferingHints { bufferingHints := &firehose.ElasticsearchBufferingHints{} @@ -1085,6 +1237,16 @@ func extractRedshiftRetryOptions(redshift map[string]interface{}) *firehose.Reds return retryOptions } +func extractSplunkRetryOptions(splunk map[string]interface{}) *firehose.SplunkRetryOptions { + retryOptions := &firehose.SplunkRetryOptions{} + + if retryDuration, ok := splunk["retry_duration"].(int); ok { + retryOptions.DurationInSeconds = aws.Int64(int64(retryDuration)) + } + + return retryOptions +} + func extractCopyCommandConfiguration(redshift map[string]interface{}) *firehose.CopyCommand { cmd := &firehose.CopyCommand{ DataTableName: aws.String(redshift["data_table_name"].(string)), @@ -1136,12 +1298,18 @@ func resourceAwsKinesisFirehoseDeliveryStreamCreate(d *schema.ResourceData, meta return err } createInput.ElasticsearchDestinationConfiguration = esConfig - } else { + } else if d.Get("destination").(string) == "redshift" { rc, err := createRedshiftConfig(d, s3Config) if err != nil { return err } createInput.RedshiftDestinationConfiguration = rc + } else if d.Get("destination").(string) == "splunk" { + rc, err := createSplunkConfig(d, s3Config) + if err != nil { + return err + } + createInput.SplunkDestinationConfiguration = rc } } @@ -1258,12 +1426,18 @@ func resourceAwsKinesisFirehoseDeliveryStreamUpdate(d *schema.ResourceData, meta return err } updateInput.ElasticsearchDestinationUpdate = esUpdate - } else { + } else if d.Get("destination").(string) == "redshift" { rc, err := updateRedshiftConfig(d, s3Config) if err != nil { return err } updateInput.RedshiftDestinationUpdate = rc + } else if d.Get("destination").(string) == "splunk" { + rc, err := updateSplunkConfig(d, s3Config) + if err != nil { + return err + } + updateInput.SplunkDestinationUpdate = rc } } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_kinesis_stream.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_kinesis_stream.go index 49ffaa4dc..cf4a60430 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_kinesis_stream.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_kinesis_stream.go @@ -106,19 +106,7 @@ func resourceAwsKinesisStreamCreate(d *schema.ResourceData, meta interface{}) er StreamName: aws.String(sn), } - err := resource.Retry(5*time.Minute, func() *resource.RetryError { - _, err := conn.CreateStream(createOpts) - if isAWSErr(err, "LimitExceededException", "simultaneously be in CREATING or DELETING") { - return resource.RetryableError(err) - } - // AWS (un)helpfully raises LimitExceededException - // rather than ThrottlingException here - if isAWSErr(err, "LimitExceededException", "Rate exceeded for stream") { - return resource.RetryableError(err) - } - return resource.NonRetryableError(err) - }) - + _, err := conn.CreateStream(createOpts) if err != nil { return fmt.Errorf("Unable to create stream: %s", err) } @@ -221,10 +209,10 @@ func resourceAwsKinesisStreamRead(d *schema.ResourceData, meta interface{}) erro func resourceAwsKinesisStreamDelete(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).kinesisconn sn := d.Get("name").(string) + _, err := conn.DeleteStream(&kinesis.DeleteStreamInput{ StreamName: aws.String(sn), }) - if err != nil { return err } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_mq_broker.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_mq_broker.go index 3589a52b8..aa80ed629 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_mq_broker.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_mq_broker.go @@ -140,9 +140,10 @@ func resourceAwsMqBroker() *schema.Resource { Optional: true, }, "password": { - Type: schema.TypeString, - Required: true, - Sensitive: true, + Type: schema.TypeString, + Required: true, + Sensitive: true, + ValidateFunc: validateMqBrokerPassword, }, "username": { Type: schema.TypeString, @@ -535,3 +536,28 @@ func diffAwsMqBrokerUsers(bId string, oldUsers, newUsers []interface{}) ( return } + +func validateMqBrokerPassword(v interface{}, k string) (ws []string, errors []error) { + min := 12 + max := 250 + value := v.(string) + unique := make(map[string]bool) + + for _, v := range value { + if _, ok := unique[string(v)]; ok { + continue + } + if string(v) == "," { + errors = append(errors, fmt.Errorf("%q must not contain commas", k)) + } + unique[string(v)] = true + } + if len(unique) < 4 { + errors = append(errors, fmt.Errorf("%q must contain at least 4 unique characters", k)) + } + if len(value) < min || len(value) > max { + errors = append(errors, fmt.Errorf( + "%q must be %d to %d characters long. provided string length: %d", k, min, max, len(value))) + } + return +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_route53_record.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_route53_record.go index d3c414b77..7884b8a9f 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_route53_record.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_route53_record.go @@ -900,12 +900,9 @@ func nilString(s string) *string { } func normalizeAwsAliasName(alias interface{}) string { - input := alias.(string) - output := strings.ToLower(input) - if strings.HasPrefix(output, "dualstack.") { - output = strings.TrimLeft(output, "dualstack.") - } - return strings.TrimRight(output, ".") + input := strings.ToLower(alias.(string)) + output := strings.TrimPrefix(input, "dualstack.") + return strings.TrimSuffix(output, ".") } func parseRecordId(id string) [4]string { diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_s3_bucket.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_s3_bucket.go index 7a9074112..abf4bc7a1 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_s3_bucket.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_s3_bucket.go @@ -1033,9 +1033,11 @@ func resourceAwsS3BucketRead(d *schema.ResourceData, meta interface{}) error { } // Add the hosted zone ID for this bucket's region as an attribute - hostedZoneID := HostedZoneIDForRegion(region) - if err := d.Set("hosted_zone_id", hostedZoneID); err != nil { - return err + hostedZoneID, err := HostedZoneIDForRegion(region) + if err != nil { + log.Printf("[WARN] %s", err) + } else { + d.Set("hosted_zone_id", hostedZoneID) } // Add website_endpoint as an attribute diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_service_discovery_public_dns_namespace.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_service_discovery_public_dns_namespace.go index 52d0353be..33fba76a5 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_service_discovery_public_dns_namespace.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_service_discovery_public_dns_namespace.go @@ -16,6 +16,10 @@ func resourceAwsServiceDiscoveryPublicDnsNamespace() *schema.Resource { Read: resourceAwsServiceDiscoveryPublicDnsNamespaceRead, Delete: resourceAwsServiceDiscoveryPublicDnsNamespaceDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Schema: map[string]*schema.Schema{ "name": { Type: schema.TypeString, @@ -89,6 +93,7 @@ func resourceAwsServiceDiscoveryPublicDnsNamespaceRead(d *schema.ResourceData, m return err } + d.Set("name", resp.Namespace.Name) d.Set("description", resp.Namespace.Description) d.Set("arn", resp.Namespace.Arn) if resp.Namespace.Properties != nil { diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_service_discovery_service.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_service_discovery_service.go index 733fad69c..167b51ab7 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_service_discovery_service.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_service_discovery_service.go @@ -17,6 +17,10 @@ func resourceAwsServiceDiscoveryService() *schema.Resource { Update: resourceAwsServiceDiscoveryServiceUpdate, Delete: resourceAwsServiceDiscoveryServiceDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Schema: map[string]*schema.Schema{ "name": { Type: schema.TypeString, diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ses_template.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ses_template.go index e8b2ffd52..8ff56d22d 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ses_template.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ses_template.go @@ -110,10 +110,19 @@ func resourceAwsSesTemplateUpdate(d *schema.ResourceData, meta interface{}) erro templateName := d.Id() template := ses.Template{ - HtmlPart: aws.String(d.Get("html").(string)), TemplateName: aws.String(templateName), - SubjectPart: aws.String(d.Get("subject").(string)), - TextPart: aws.String(d.Get("text").(string)), + } + + if v, ok := d.GetOk("html"); ok { + template.HtmlPart = aws.String(v.(string)) + } + + if v, ok := d.GetOk("subject"); ok { + template.SubjectPart = aws.String(v.(string)) + } + + if v, ok := d.GetOk("text"); ok { + template.TextPart = aws.String(v.(string)) } input := ses.UpdateTemplateInput{ diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sns_platform_application.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sns_platform_application.go new file mode 100644 index 000000000..4fe82d850 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sns_platform_application.go @@ -0,0 +1,286 @@ +package aws + +import ( + "crypto/sha256" + "fmt" + "log" + "strings" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/arn" + "github.com/aws/aws-sdk-go/service/sns" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/helper/schema" +) + +var snsPlatformRequiresPlatformPrincipal = map[string]bool{ + "APNS": true, + "APNS_SANDBOX": true, +} + +// Mutable attributes +// http://docs.aws.amazon.com/sns/latest/api/API_SetPlatformApplicationAttributes.html +var snsPlatformApplicationAttributeMap = map[string]string{ + "event_delivery_failure_topic_arn": "EventDeliveryFailure", + "event_endpoint_created_topic_arn": "EventEndpointCreated", + "event_endpoint_deleted_topic_arn": "EventEndpointDeleted", + "event_endpoint_updated_topic_arn": "EventEndpointUpdated", + "failure_feedback_role_arn": "FailureFeedbackRoleArn", + "platform_principal": "PlatformPrincipal", + "success_feedback_role_arn": "SuccessFeedbackRoleArn", + "success_feedback_sample_rate": "SuccessFeedbackSampleRate", +} + +func resourceAwsSnsPlatformApplication() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsSnsPlatformApplicationCreate, + Read: resourceAwsSnsPlatformApplicationRead, + Update: resourceAwsSnsPlatformApplicationUpdate, + Delete: resourceAwsSnsPlatformApplicationDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + + CustomizeDiff: func(diff *schema.ResourceDiff, v interface{}) error { + return validateAwsSnsPlatformApplication(diff) + }, + + Schema: map[string]*schema.Schema{ + "name": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "platform": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "platform_credential": { + Type: schema.TypeString, + Required: true, + StateFunc: hashSum, + }, + "arn": { + Type: schema.TypeString, + Computed: true, + }, + "event_delivery_failure_topic_arn": { + Type: schema.TypeString, + Optional: true, + }, + "event_endpoint_created_topic_arn": { + Type: schema.TypeString, + Optional: true, + }, + "event_endpoint_deleted_topic_arn": { + Type: schema.TypeString, + Optional: true, + }, + "event_endpoint_updated_topic_arn": { + Type: schema.TypeString, + Optional: true, + }, + "failure_feedback_role_arn": { + Type: schema.TypeString, + Optional: true, + }, + "platform_principal": { + Type: schema.TypeString, + Optional: true, + StateFunc: hashSum, + }, + "success_feedback_role_arn": { + Type: schema.TypeString, + Optional: true, + }, + "success_feedback_sample_rate": { + Type: schema.TypeString, + Optional: true, + }, + }, + } +} + +func resourceAwsSnsPlatformApplicationCreate(d *schema.ResourceData, meta interface{}) error { + snsconn := meta.(*AWSClient).snsconn + + attributes := make(map[string]*string) + name := d.Get("name").(string) + platform := d.Get("platform").(string) + + attributes["PlatformCredential"] = aws.String(d.Get("platform_credential").(string)) + if v, ok := d.GetOk("platform_principal"); ok { + attributes["PlatformPrincipal"] = aws.String(v.(string)) + } + + req := &sns.CreatePlatformApplicationInput{ + Name: aws.String(name), + Platform: aws.String(platform), + Attributes: attributes, + } + + log.Printf("[DEBUG] SNS create application: %s", req) + + output, err := snsconn.CreatePlatformApplication(req) + if err != nil { + return fmt.Errorf("Error creating SNS platform application: %s", err) + } + + d.SetId(*output.PlatformApplicationArn) + + return resourceAwsSnsPlatformApplicationUpdate(d, meta) +} + +func resourceAwsSnsPlatformApplicationUpdate(d *schema.ResourceData, meta interface{}) error { + snsconn := meta.(*AWSClient).snsconn + + attributes := make(map[string]*string) + + for k, _ := range resourceAwsSnsPlatformApplication().Schema { + if attrKey, ok := snsPlatformApplicationAttributeMap[k]; ok { + if d.HasChange(k) { + log.Printf("[DEBUG] Updating %s", attrKey) + _, n := d.GetChange(k) + attributes[attrKey] = aws.String(n.(string)) + } + } + } + + if d.HasChange("platform_credential") { + attributes["PlatformCredential"] = aws.String(d.Get("platform_credential").(string)) + // If the platform requires a principal it must also be specified, even if it didn't change + // since credential is stored as a hash, the only way to update principal is to update both + // as they must be specified together in the request. + if v, ok := d.GetOk("platform_principal"); ok { + attributes["PlatformPrincipal"] = aws.String(v.(string)) + } + } + + // Make API call to update attributes + req := &sns.SetPlatformApplicationAttributesInput{ + PlatformApplicationArn: aws.String(d.Id()), + Attributes: attributes, + } + + err := resource.Retry(1*time.Minute, func() *resource.RetryError { + _, err := snsconn.SetPlatformApplicationAttributes(req) + if err != nil { + if isAWSErr(err, sns.ErrCodeInvalidParameterException, "is not a valid role to allow SNS to write to Cloudwatch Logs") { + return resource.RetryableError(err) + } + return resource.NonRetryableError(err) + } + return nil + }) + + if err != nil { + return fmt.Errorf("Error updating SNS platform application: %s", err) + } + + return resourceAwsSnsPlatformApplicationRead(d, meta) +} + +func resourceAwsSnsPlatformApplicationRead(d *schema.ResourceData, meta interface{}) error { + snsconn := meta.(*AWSClient).snsconn + + // There is no SNS Describe/GetPlatformApplication to fetch attributes like name and platform + // We will use the ID, which should be a platform application ARN, to: + // * Validate its an appropriate ARN on import + // * Parse out the name and platform + arn, name, platform, err := decodeResourceAwsSnsPlatformApplicationID(d.Id()) + if err != nil { + return err + } + + d.Set("arn", arn) + d.Set("name", name) + d.Set("platform", platform) + + attributeOutput, err := snsconn.GetPlatformApplicationAttributes(&sns.GetPlatformApplicationAttributesInput{ + PlatformApplicationArn: aws.String(arn), + }) + + if err != nil { + return err + } + + if attributeOutput.Attributes != nil && len(attributeOutput.Attributes) > 0 { + attrmap := attributeOutput.Attributes + resource := *resourceAwsSnsPlatformApplication() + // iKey = internal struct key, oKey = AWS Attribute Map key + for iKey, oKey := range snsPlatformApplicationAttributeMap { + log.Printf("[DEBUG] Updating %s => %s", iKey, oKey) + + if attrmap[oKey] != nil { + // Some of the fetched attributes are stateful properties such as + // the number of subscriptions, the owner, etc. skip those + if resource.Schema[iKey] != nil { + value := *attrmap[oKey] + log.Printf("[DEBUG] Updating %s => %s -> %s", iKey, oKey, value) + d.Set(iKey, *attrmap[oKey]) + } + } + } + } + + return nil +} + +func resourceAwsSnsPlatformApplicationDelete(d *schema.ResourceData, meta interface{}) error { + snsconn := meta.(*AWSClient).snsconn + + log.Printf("[DEBUG] SNS Delete Application: %s", d.Id()) + _, err := snsconn.DeletePlatformApplication(&sns.DeletePlatformApplicationInput{ + PlatformApplicationArn: aws.String(d.Id()), + }) + if err != nil { + return err + } + return nil +} + +func decodeResourceAwsSnsPlatformApplicationID(input string) (arnS, name, platform string, err error) { + platformApplicationArn, err := arn.Parse(input) + if err != nil { + err = fmt.Errorf( + "SNS Platform Application ID must be of the form "+ + "arn:PARTITION:sns:REGION:ACCOUNTID:app/PLATFORM/NAME, "+ + "was provided %q and received error: %s", input, err) + return + } + + platformApplicationArnResourceParts := strings.Split(platformApplicationArn.Resource, "/") + if len(platformApplicationArnResourceParts) != 3 || platformApplicationArnResourceParts[0] != "app" { + err = fmt.Errorf( + "SNS Platform Application ID must be of the form "+ + "arn:PARTITION:sns:REGION:ACCOUNTID:app/PLATFORM/NAME, "+ + "was provided: %s", input) + return + } + + arnS = platformApplicationArn.String() + name = platformApplicationArnResourceParts[2] + platform = platformApplicationArnResourceParts[1] + return +} + +func hashSum(contents interface{}) string { + return fmt.Sprintf("%x", sha256.Sum256([]byte(contents.(string)))) +} + +func validateAwsSnsPlatformApplication(d *schema.ResourceDiff) error { + platform := d.Get("platform").(string) + if snsPlatformRequiresPlatformPrincipal[platform] { + if v, ok := d.GetOk("platform_principal"); ok { + value := v.(string) + if len(value) == 0 { + return fmt.Errorf("platform_principal must be non-empty when platform = %s", platform) + } + return nil + } + return fmt.Errorf("platform_principal is required when platform = %s", platform) + } + return nil +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sns_topic.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sns_topic.go index 38f7456bb..2f8a55f4c 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sns_topic.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sns_topic.go @@ -9,17 +9,29 @@ import ( "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/service/sns" "github.com/hashicorp/errwrap" + "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/helper/schema" "github.com/hashicorp/terraform/helper/structure" ) // Mutable attributes var SNSAttributeMap = map[string]string{ - "arn": "TopicArn", - "display_name": "DisplayName", - "policy": "Policy", - "delivery_policy": "DeliveryPolicy", -} + "arn": "TopicArn", + "display_name": "DisplayName", + "policy": "Policy", + "delivery_policy": "DeliveryPolicy", + "application_success_feedback_role_arn": "ApplicationSuccessFeedbackRoleArn", + "application_success_feedback_sample_rate": "ApplicationSuccessFeedbackSampleRate", + "application_failure_feedback_role_arn": "ApplicationFailureFeedbackRoleArn", + "http_success_feedback_role_arn": "HTTPSuccessFeedbackRoleArn", + "http_success_feedback_sample_rate": "HTTPSuccessFeedbackSampleRate", + "http_failure_feedback_role_arn": "HTTPFailureFeedbackRoleArn", + "lambda_success_feedback_role_arn": "LambdaSuccessFeedbackRoleArn", + "lambda_success_feedback_sample_rate": "LambdaSuccessFeedbackSampleRate", + "lambda_failure_feedback_role_arn": "LambdaFailureFeedbackRoleArn", + "sqs_success_feedback_role_arn": "SQSSuccessFeedbackRoleArn", + "sqs_success_feedback_sample_rate": "SQSSuccessFeedbackSampleRate", + "sqs_failure_feedback_role_arn": "SQSFailureFeedbackRoleArn"} func resourceAwsSnsTopic() *schema.Resource { return &schema.Resource{ @@ -33,8 +45,15 @@ func resourceAwsSnsTopic() *schema.Resource { Schema: map[string]*schema.Schema{ "name": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + ConflictsWith: []string{"name_prefix"}, + }, + "name_prefix": &schema.Schema{ Type: schema.TypeString, - Required: true, + Optional: true, ForceNew: true, }, "display_name": &schema.Schema{ @@ -64,6 +83,58 @@ func resourceAwsSnsTopic() *schema.Resource { return json }, }, + "application_success_feedback_role_arn": { + Type: schema.TypeString, + Optional: true, + }, + "application_success_feedback_sample_rate": { + Type: schema.TypeInt, + Optional: true, + ValidateFunc: validateIntegerInRange(0, 100), + }, + "application_failure_feedback_role_arn": { + Type: schema.TypeString, + Optional: true, + }, + "http_success_feedback_role_arn": { + Type: schema.TypeString, + Optional: true, + }, + "http_success_feedback_sample_rate": { + Type: schema.TypeInt, + Optional: true, + ValidateFunc: validateIntegerInRange(0, 100), + }, + "http_failure_feedback_role_arn": { + Type: schema.TypeString, + Optional: true, + }, + "lambda_success_feedback_role_arn": { + Type: schema.TypeString, + Optional: true, + }, + "lambda_success_feedback_sample_rate": { + Type: schema.TypeInt, + Optional: true, + ValidateFunc: validateIntegerInRange(0, 100), + }, + "lambda_failure_feedback_role_arn": { + Type: schema.TypeString, + Optional: true, + }, + "sqs_success_feedback_role_arn": { + Type: schema.TypeString, + Optional: true, + }, + "sqs_success_feedback_sample_rate": { + Type: schema.TypeInt, + Optional: true, + ValidateFunc: validateIntegerInRange(0, 100), + }, + "sqs_failure_feedback_role_arn": { + Type: schema.TypeString, + Optional: true, + }, "arn": &schema.Schema{ Type: schema.TypeString, Computed: true, @@ -75,7 +146,14 @@ func resourceAwsSnsTopic() *schema.Resource { func resourceAwsSnsTopicCreate(d *schema.ResourceData, meta interface{}) error { snsconn := meta.(*AWSClient).snsconn - name := d.Get("name").(string) + var name string + if v, ok := d.GetOk("name"); ok { + name = v.(string) + } else if v, ok := d.GetOk("name_prefix"); ok { + name = resource.PrefixedUniqueId(v.(string)) + } else { + name = resource.UniqueId() + } log.Printf("[DEBUG] SNS create topic: %s", name) @@ -110,7 +188,7 @@ func resourceAwsSnsTopicUpdate(d *schema.ResourceData, meta interface{}) error { req := sns.SetTopicAttributesInput{ TopicArn: aws.String(d.Id()), AttributeName: aws.String(attrKey), - AttributeValue: aws.String(n.(string)), + AttributeValue: aws.String(fmt.Sprintf("%v", n)), } conn := meta.(*AWSClient).snsconn // Retry the update in the event of an eventually consistent style of diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sns_topic_subscription.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sns_topic_subscription.go index abe86b168..a1c499c53 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sns_topic_subscription.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sns_topic_subscription.go @@ -9,6 +9,7 @@ import ( "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/helper/schema" + "github.com/hashicorp/terraform/helper/structure" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" @@ -24,6 +25,7 @@ var SNSSubscriptionAttributeMap = map[string]string{ "endpoint": "Endpoint", "protocol": "Protocol", "raw_message_delivery": "RawMessageDelivery", + "filter_policy": "FilterPolicy", } func resourceAwsSnsTopicSubscription() *schema.Resource { @@ -76,6 +78,16 @@ func resourceAwsSnsTopicSubscription() *schema.Resource { Type: schema.TypeString, Computed: true, }, + "filter_policy": { + Type: schema.TypeString, + Optional: true, + ValidateFunc: validateJsonString, + DiffSuppressFunc: suppressEquivalentJsonDiffs, + StateFunc: func(v interface{}) string { + json, _ := structure.NormalizeJsonString(v) + return json + }, + }, }, } } @@ -127,6 +139,22 @@ func resourceAwsSnsTopicSubscriptionUpdate(d *schema.ResourceData, meta interfac } } + if d.HasChange("filter_policy") { + _, n := d.GetChange("filter_policy") + + attrValue := n.(string) + + req := &sns.SetSubscriptionAttributesInput{ + SubscriptionArn: aws.String(d.Id()), + AttributeName: aws.String("FilterPolicy"), + AttributeValue: aws.String(attrValue), + } + _, err := snsconn.SetSubscriptionAttributes(req) + + if err != nil { + return fmt.Errorf("Unable to set filter policy attribute on subscription: %s", err) + } + } return resourceAwsSnsTopicSubscriptionRead(d, meta) } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ssm_resource_data_sync.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ssm_resource_data_sync.go index 7426e1e22..2257bad5b 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ssm_resource_data_sync.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ssm_resource_data_sync.go @@ -15,6 +15,10 @@ func resourceAwsSsmResourceDataSync() *schema.Resource { Read: resourceAwsSsmResourceDataSyncRead, Delete: resourceAwsSsmResourceDataSyncDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + Schema: map[string]*schema.Schema{ "name": &schema.Schema{ Type: schema.TypeString, @@ -85,7 +89,7 @@ func resourceAwsSsmResourceDataSyncCreate(d *schema.ResourceData, meta interface func resourceAwsSsmResourceDataSyncRead(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).ssmconn - syncItem, err := findResourceDataSyncItem(conn, d.Get("name").(string)) + syncItem, err := findResourceDataSyncItem(conn, d.Id()) if err != nil { return err } @@ -93,6 +97,7 @@ func resourceAwsSsmResourceDataSyncRead(d *schema.ResourceData, meta interface{} d.SetId("") return nil } + d.Set("name", syncItem.SyncName) d.Set("s3_destination", flattenSsmResourceDataSyncS3Destination(syncItem.S3Destination)) return nil } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_volume_attachment.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_volume_attachment.go index f2235423b..49bf001ec 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_volume_attachment.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_volume_attachment.go @@ -18,6 +18,7 @@ func resourceAwsVolumeAttachment() *schema.Resource { return &schema.Resource{ Create: resourceAwsVolumeAttachmentCreate, Read: resourceAwsVolumeAttachmentRead, + Update: resourceAwsVolumeAttachmentUpdate, Delete: resourceAwsVolumeAttachmentDelete, Schema: map[string]*schema.Schema{ @@ -42,12 +43,10 @@ func resourceAwsVolumeAttachment() *schema.Resource { "force_detach": { Type: schema.TypeBool, Optional: true, - Computed: true, }, "skip_destroy": { Type: schema.TypeBool, Optional: true, - Computed: true, }, }, } @@ -205,6 +204,11 @@ func resourceAwsVolumeAttachmentRead(d *schema.ResourceData, meta interface{}) e return nil } +func resourceAwsVolumeAttachmentUpdate(d *schema.ResourceData, meta interface{}) error { + log.Printf("[DEBUG] Attaching Volume (%s) is updating which does nothing but updates a few params in state", d.Id()) + return nil +} + func resourceAwsVolumeAttachmentDelete(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).ec2conn diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint.go index f6f04d05b..96f26a17e 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint.go @@ -1,80 +1,140 @@ package aws import ( + "errors" "fmt" "log" + "time" "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/service/ec2" "github.com/hashicorp/errwrap" + "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/helper/schema" "github.com/hashicorp/terraform/helper/structure" + "github.com/hashicorp/terraform/helper/validation" ) func resourceAwsVpcEndpoint() *schema.Resource { return &schema.Resource{ - Create: resourceAwsVPCEndpointCreate, - Read: resourceAwsVPCEndpointRead, - Update: resourceAwsVPCEndpointUpdate, - Delete: resourceAwsVPCEndpointDelete, + Create: resourceAwsVpcEndpointCreate, + Read: resourceAwsVpcEndpointRead, + Update: resourceAwsVpcEndpointUpdate, + Delete: resourceAwsVpcEndpointDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, Schema: map[string]*schema.Schema{ - "policy": &schema.Schema{ + "vpc_id": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "vpc_endpoint_type": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + Default: ec2.VpcEndpointTypeGateway, + ValidateFunc: validation.StringInSlice([]string{ec2.VpcEndpointTypeGateway, ec2.VpcEndpointTypeInterface}, false), + }, + "service_name": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "policy": { Type: schema.TypeString, Optional: true, Computed: true, - ValidateFunc: validateJsonString, + ValidateFunc: validation.ValidateJsonString, StateFunc: func(v interface{}) string { json, _ := structure.NormalizeJsonString(v) return json }, }, - "vpc_id": &schema.Schema{ - Type: schema.TypeString, - Required: true, - ForceNew: true, - }, - "service_name": &schema.Schema{ - Type: schema.TypeString, - Required: true, - ForceNew: true, - }, - "route_table_ids": &schema.Schema{ + "route_table_ids": { Type: schema.TypeSet, Optional: true, Computed: true, Elem: &schema.Schema{Type: schema.TypeString}, Set: schema.HashString, }, - "prefix_list_id": &schema.Schema{ + "subnet_ids": { + Type: schema.TypeSet, + Optional: true, + Computed: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Set: schema.HashString, + }, + "security_group_ids": { + Type: schema.TypeSet, + Optional: true, + Computed: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Set: schema.HashString, + }, + "private_dns_enabled": { + Type: schema.TypeBool, + Optional: true, + Default: false, + }, + "state": { Type: schema.TypeString, Computed: true, }, - "cidr_blocks": &schema.Schema{ + "prefix_list_id": { + Type: schema.TypeString, + Computed: true, + }, + "cidr_blocks": { Type: schema.TypeList, Computed: true, Elem: &schema.Schema{Type: schema.TypeString}, }, + "network_interface_ids": { + Type: schema.TypeSet, + Computed: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Set: schema.HashString, + }, + "dns_entry": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "dns_name": { + Type: schema.TypeString, + Computed: true, + }, + "hosted_zone_id": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + "auto_accept": { + Type: schema.TypeBool, + Optional: true, + }, }, } } -func resourceAwsVPCEndpointCreate(d *schema.ResourceData, meta interface{}) error { - conn := meta.(*AWSClient).ec2conn - input := &ec2.CreateVpcEndpointInput{ - VpcId: aws.String(d.Get("vpc_id").(string)), - ServiceName: aws.String(d.Get("service_name").(string)), +func resourceAwsVpcEndpointCreate(d *schema.ResourceData, meta interface{}) error { + if d.Get("vpc_endpoint_type").(string) == ec2.VpcEndpointTypeInterface && + d.Get("security_group_ids").(*schema.Set).Len() == 0 { + return errors.New("An Interface VPC Endpoint must always have at least one Security Group") } - if v, ok := d.GetOk("route_table_ids"); ok { - list := v.(*schema.Set).List() - if len(list) > 0 { - input.RouteTableIds = expandStringList(list) - } + conn := meta.(*AWSClient).ec2conn + + req := &ec2.CreateVpcEndpointInput{ + VpcId: aws.String(d.Get("vpc_id").(string)), + VpcEndpointType: aws.String(d.Get("vpc_endpoint_type").(string)), + ServiceName: aws.String(d.Get("service_name").(string)), + PrivateDnsEnabled: aws.Bool(d.Get("private_dns_enabled").(bool)), } if v, ok := d.GetOk("policy"); ok { @@ -82,113 +142,70 @@ func resourceAwsVPCEndpointCreate(d *schema.ResourceData, meta interface{}) erro if err != nil { return errwrap.Wrapf("policy contains an invalid JSON: {{err}}", err) } - input.PolicyDocument = aws.String(policy) + req.PolicyDocument = aws.String(policy) } - log.Printf("[DEBUG] Creating VPC Endpoint: %#v", input) - output, err := conn.CreateVpcEndpoint(input) + setVpcEndpointCreateList(d, "route_table_ids", &req.RouteTableIds) + setVpcEndpointCreateList(d, "subnet_ids", &req.SubnetIds) + setVpcEndpointCreateList(d, "security_group_ids", &req.SecurityGroupIds) + + log.Printf("[DEBUG] Creating VPC Endpoint: %#v", req) + resp, err := conn.CreateVpcEndpoint(req) if err != nil { - return fmt.Errorf("Error creating VPC Endpoint: %s", err) + return fmt.Errorf("Error creating VPC Endpoint: %s", err.Error()) } - log.Printf("[DEBUG] VPC Endpoint %q created.", *output.VpcEndpoint.VpcEndpointId) - d.SetId(*output.VpcEndpoint.VpcEndpointId) + vpce := resp.VpcEndpoint + d.SetId(aws.StringValue(vpce.VpcEndpointId)) - return resourceAwsVPCEndpointRead(d, meta) + if _, ok := d.GetOk("auto_accept"); ok && aws.StringValue(vpce.State) == "pendingAcceptance" { + if err := vpcEndpointAccept(conn, d.Id(), aws.StringValue(vpce.ServiceName)); err != nil { + return err + } + } + + if err := vpcEndpointWaitUntilAvailable(d, conn); err != nil { + return err + } + + return resourceAwsVpcEndpointRead(d, meta) } -func resourceAwsVPCEndpointRead(d *schema.ResourceData, meta interface{}) error { +func resourceAwsVpcEndpointRead(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).ec2conn - input := &ec2.DescribeVpcEndpointsInput{ - VpcEndpointIds: []*string{aws.String(d.Id())}, - } - - log.Printf("[DEBUG] Reading VPC Endpoint: %q", d.Id()) - output, err := conn.DescribeVpcEndpoints(input) - - if err != nil { - ec2err, ok := err.(awserr.Error) - if !ok { - return fmt.Errorf("Error reading VPC Endpoint: %s", err.Error()) - } - - if ec2err.Code() == "InvalidVpcEndpointId.NotFound" { - log.Printf("[WARN] VPC Endpoint (%s) not found, removing from state", d.Id()) - d.SetId("") - return nil - } + vpce, state, err := vpcEndpointStateRefresh(conn, d.Id())() + if err != nil && state != "failed" { return fmt.Errorf("Error reading VPC Endpoint: %s", err.Error()) } - if len(output.VpcEndpoints) != 1 { - return fmt.Errorf("There's no unique VPC Endpoint, but %d endpoints: %#v", - len(output.VpcEndpoints), output.VpcEndpoints) + terminalStates := map[string]bool{ + "deleted": true, + "deleting": true, + "failed": true, + "expired": true, + "rejected": true, + } + if _, ok := terminalStates[state]; ok { + log.Printf("[WARN] VPC Endpoint (%s) in state (%s), removing from state", d.Id(), state) + d.SetId("") + return nil } - vpce := output.VpcEndpoints[0] - - // A VPC Endpoint is associated with exactly one prefix list name (also called Service Name). - // The prefix list ID can be used in security groups, so retrieve it to support that capability. - prefixListServiceName := *vpce.ServiceName - prefixListInput := &ec2.DescribePrefixListsInput{ - Filters: []*ec2.Filter{ - {Name: aws.String("prefix-list-name"), Values: []*string{aws.String(prefixListServiceName)}}, - }, - } - - log.Printf("[DEBUG] Reading VPC Endpoint prefix list: %s", prefixListServiceName) - prefixListsOutput, err := conn.DescribePrefixLists(prefixListInput) - - if err != nil { - _, ok := err.(awserr.Error) - if !ok { - return fmt.Errorf("Error reading VPC Endpoint prefix list: %s", err.Error()) - } - } - - if len(prefixListsOutput.PrefixLists) != 1 { - return fmt.Errorf("There are multiple prefix lists associated with the service name '%s'. Unexpected", prefixListServiceName) - } - - policy, err := structure.NormalizeJsonString(*vpce.PolicyDocument) - if err != nil { - return errwrap.Wrapf("policy contains an invalid JSON: {{err}}", err) - } - - d.Set("vpc_id", vpce.VpcId) - d.Set("policy", policy) - d.Set("service_name", vpce.ServiceName) - if err := d.Set("route_table_ids", aws.StringValueSlice(vpce.RouteTableIds)); err != nil { - return err - } - pl := prefixListsOutput.PrefixLists[0] - d.Set("prefix_list_id", pl.PrefixListId) - d.Set("cidr_blocks", aws.StringValueSlice(pl.Cidrs)) - - return nil + return vpcEndpointAttributes(d, vpce.(*ec2.VpcEndpoint), conn) } -func resourceAwsVPCEndpointUpdate(d *schema.ResourceData, meta interface{}) error { +func resourceAwsVpcEndpointUpdate(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).ec2conn - input := &ec2.ModifyVpcEndpointInput{ - VpcEndpointId: aws.String(d.Id()), + + if _, ok := d.GetOk("auto_accept"); ok && d.Get("state").(string) == "pendingAcceptance" { + if err := vpcEndpointAccept(conn, d.Id(), d.Get("service_name").(string)); err != nil { + return err + } } - if d.HasChange("route_table_ids") { - o, n := d.GetChange("route_table_ids") - os := o.(*schema.Set) - ns := n.(*schema.Set) - - add := expandStringList(ns.Difference(os).List()) - if len(add) > 0 { - input.AddRouteTableIds = add - } - - remove := expandStringList(os.Difference(ns).List()) - if len(remove) > 0 { - input.RemoveRouteTableIds = remove - } + req := &ec2.ModifyVpcEndpointInput{ + VpcEndpointId: aws.String(d.Id()), } if d.HasChange("policy") { @@ -196,43 +213,219 @@ func resourceAwsVPCEndpointUpdate(d *schema.ResourceData, meta interface{}) erro if err != nil { return errwrap.Wrapf("policy contains an invalid JSON: {{err}}", err) } - input.PolicyDocument = aws.String(policy) + + if policy == "" { + req.ResetPolicy = aws.Bool(true) + } else { + req.PolicyDocument = aws.String(policy) + } } - log.Printf("[DEBUG] Updating VPC Endpoint: %#v", input) - _, err := conn.ModifyVpcEndpoint(input) - if err != nil { - return fmt.Errorf("Error updating VPC Endpoint: %s", err) - } - log.Printf("[DEBUG] VPC Endpoint %q updated", input.VpcEndpointId) + setVpcEndpointUpdateLists(d, "route_table_ids", &req.AddRouteTableIds, &req.RemoveRouteTableIds) + setVpcEndpointUpdateLists(d, "subnet_ids", &req.AddSubnetIds, &req.RemoveSubnetIds) + setVpcEndpointUpdateLists(d, "security_group_ids", &req.AddSecurityGroupIds, &req.RemoveSecurityGroupIds) - return resourceAwsVPCEndpointRead(d, meta) + if d.HasChange("private_dns_enabled") { + req.PrivateDnsEnabled = aws.Bool(d.Get("private_dns_enabled").(bool)) + } + + log.Printf("[DEBUG] Updating VPC Endpoint: %#v", req) + if _, err := conn.ModifyVpcEndpoint(req); err != nil { + return fmt.Errorf("Error updating VPC Endpoint: %s", err.Error()) + } + + if err := vpcEndpointWaitUntilAvailable(d, conn); err != nil { + return err + } + + return resourceAwsVpcEndpointRead(d, meta) } -func resourceAwsVPCEndpointDelete(d *schema.ResourceData, meta interface{}) error { +func resourceAwsVpcEndpointDelete(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).ec2conn - input := &ec2.DeleteVpcEndpointsInput{ - VpcEndpointIds: []*string{aws.String(d.Id())}, - } - - log.Printf("[DEBUG] Deleting VPC Endpoint: %#v", input) - _, err := conn.DeleteVpcEndpoints(input) + log.Printf("[DEBUG] Deleting VPC Endpoint: %s", d.Id()) + _, err := conn.DeleteVpcEndpoints(&ec2.DeleteVpcEndpointsInput{ + VpcEndpointIds: aws.StringSlice([]string{d.Id()}), + }) if err != nil { - ec2err, ok := err.(awserr.Error) - if !ok { - return fmt.Errorf("Error deleting VPC Endpoint: %s", err.Error()) - } - - if ec2err.Code() == "InvalidVpcEndpointId.NotFound" { - log.Printf("[DEBUG] VPC Endpoint %q is already gone", d.Id()) + if isAWSErr(err, "InvalidVpcEndpointId.NotFound", "") { + log.Printf("[DEBUG] VPC Endpoint %s is already gone", d.Id()) } else { return fmt.Errorf("Error deleting VPC Endpoint: %s", err.Error()) } } - log.Printf("[DEBUG] VPC Endpoint %q deleted", d.Id()) - d.SetId("") + stateConf := &resource.StateChangeConf{ + Pending: []string{"available", "deleting"}, + Target: []string{"deleted"}, + Refresh: vpcEndpointStateRefresh(conn, d.Id()), + Timeout: 10 * time.Minute, + Delay: 5 * time.Second, + MinTimeout: 5 * time.Second, + } + if _, err = stateConf.WaitForState(); err != nil { + return fmt.Errorf("Error waiting for VPC Endpoint %s to delete: %s", d.Id(), err.Error()) + } return nil } + +func vpcEndpointAccept(conn *ec2.EC2, vpceId, svcName string) error { + describeSvcReq := &ec2.DescribeVpcEndpointServiceConfigurationsInput{} + describeSvcReq.Filters = buildEC2AttributeFilterList( + map[string]string{ + "service-name": svcName, + }, + ) + + describeSvcResp, err := conn.DescribeVpcEndpointServiceConfigurations(describeSvcReq) + if err != nil { + return fmt.Errorf("Error reading VPC Endpoint Service: %s", err.Error()) + } + if describeSvcResp == nil || len(describeSvcResp.ServiceConfigurations) == 0 { + return fmt.Errorf("No matching VPC Endpoint Service found") + } + + acceptEpReq := &ec2.AcceptVpcEndpointConnectionsInput{ + ServiceId: describeSvcResp.ServiceConfigurations[0].ServiceId, + VpcEndpointIds: aws.StringSlice([]string{vpceId}), + } + + log.Printf("[DEBUG] Accepting VPC Endpoint connection: %#v", acceptEpReq) + _, err = conn.AcceptVpcEndpointConnections(acceptEpReq) + if err != nil { + return fmt.Errorf("Error accepting VPC Endpoint connection: %s", err.Error()) + } + + return nil +} + +func vpcEndpointStateRefresh(conn *ec2.EC2, vpceId string) resource.StateRefreshFunc { + return func() (interface{}, string, error) { + log.Printf("[DEBUG] Reading VPC Endpoint: %s", vpceId) + resp, err := conn.DescribeVpcEndpoints(&ec2.DescribeVpcEndpointsInput{ + VpcEndpointIds: aws.StringSlice([]string{vpceId}), + }) + if err != nil { + if isAWSErr(err, "InvalidVpcEndpointId.NotFound", "") { + return false, "deleted", nil + } + + return nil, "", err + } + + vpce := resp.VpcEndpoints[0] + state := aws.StringValue(vpce.State) + // No use in retrying if the endpoint is in a failed state. + if state == "failed" { + return nil, state, errors.New("VPC Endpoint is in a failed state") + } + return vpce, state, nil + } +} + +func vpcEndpointWaitUntilAvailable(d *schema.ResourceData, conn *ec2.EC2) error { + stateConf := &resource.StateChangeConf{ + Pending: []string{"pending"}, + Target: []string{"available", "pendingAcceptance"}, + Refresh: vpcEndpointStateRefresh(conn, d.Id()), + Timeout: 10 * time.Minute, + Delay: 5 * time.Second, + MinTimeout: 5 * time.Second, + } + if _, err := stateConf.WaitForState(); err != nil { + return fmt.Errorf("Error waiting for VPC Endpoint %s to become available: %s", d.Id(), err.Error()) + } + + return nil +} + +func vpcEndpointAttributes(d *schema.ResourceData, vpce *ec2.VpcEndpoint, conn *ec2.EC2) error { + d.Set("state", vpce.State) + d.Set("vpc_id", vpce.VpcId) + + serviceName := aws.StringValue(vpce.ServiceName) + d.Set("service_name", serviceName) + vpceType := aws.StringValue(vpce.VpcEndpointType) + d.Set("vpc_endpoint_type", vpceType) + + policy, err := structure.NormalizeJsonString(aws.StringValue(vpce.PolicyDocument)) + if err != nil { + return errwrap.Wrapf("policy contains an invalid JSON: {{err}}", err) + } + d.Set("policy", policy) + + d.Set("route_table_ids", flattenStringList(vpce.RouteTableIds)) + + req := &ec2.DescribePrefixListsInput{} + req.Filters = buildEC2AttributeFilterList( + map[string]string{ + "prefix-list-name": serviceName, + }, + ) + resp, err := conn.DescribePrefixLists(req) + if err != nil { + return err + } + if resp != nil && len(resp.PrefixLists) > 0 { + if len(resp.PrefixLists) > 1 { + return fmt.Errorf("multiple prefix lists associated with the service name '%s'. Unexpected", serviceName) + } + + pl := resp.PrefixLists[0] + d.Set("prefix_list_id", pl.PrefixListId) + d.Set("cidr_blocks", flattenStringList(pl.Cidrs)) + } else { + d.Set("cidr_blocks", make([]string, 0)) + } + + d.Set("subnet_ids", flattenStringList(vpce.SubnetIds)) + d.Set("network_interface_ids", flattenStringList(vpce.NetworkInterfaceIds)) + + sgIds := make([]interface{}, 0, len(vpce.Groups)) + for _, group := range vpce.Groups { + sgIds = append(sgIds, aws.StringValue(group.GroupId)) + } + d.Set("security_group_ids", sgIds) + + d.Set("private_dns_enabled", vpce.PrivateDnsEnabled) + + dnsEntries := make([]interface{}, len(vpce.DnsEntries)) + for i, entry := range vpce.DnsEntries { + m := make(map[string]interface{}) + m["dns_name"] = aws.StringValue(entry.DnsName) + m["hosted_zone_id"] = aws.StringValue(entry.HostedZoneId) + dnsEntries[i] = m + } + d.Set("dns_entry", dnsEntries) + + return nil +} + +func setVpcEndpointCreateList(d *schema.ResourceData, key string, c *[]*string) { + if v, ok := d.GetOk(key); ok { + list := v.(*schema.Set).List() + if len(list) > 0 { + *c = expandStringList(list) + } + } +} + +func setVpcEndpointUpdateLists(d *schema.ResourceData, key string, a, r *[]*string) { + if d.HasChange(key) { + o, n := d.GetChange(key) + os := o.(*schema.Set) + ns := n.(*schema.Set) + + add := expandStringList(ns.Difference(os).List()) + if len(add) > 0 { + *a = add + } + + remove := expandStringList(os.Difference(ns).List()) + if len(remove) > 0 { + *r = remove + } + } +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint_connection_notification.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint_connection_notification.go new file mode 100644 index 000000000..be6f99035 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint_connection_notification.go @@ -0,0 +1,155 @@ +package aws + +import ( + "fmt" + "log" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/ec2" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAwsVpcEndpointConnectionNotification() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsVpcEndpointConnectionNotificationCreate, + Read: resourceAwsVpcEndpointConnectionNotificationRead, + Update: resourceAwsVpcEndpointConnectionNotificationUpdate, + Delete: resourceAwsVpcEndpointConnectionNotificationDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + + Schema: map[string]*schema.Schema{ + "vpc_endpoint_service_id": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + ConflictsWith: []string{"vpc_endpoint_id"}, + }, + "vpc_endpoint_id": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + ConflictsWith: []string{"vpc_endpoint_service_id"}, + }, + "connection_notification_arn": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validateArn, + }, + "connection_events": { + Type: schema.TypeSet, + Required: true, + MinItems: 1, + Elem: &schema.Schema{Type: schema.TypeString}, + Set: schema.HashString, + }, + "state": { + Type: schema.TypeString, + Computed: true, + }, + "notification_type": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func resourceAwsVpcEndpointConnectionNotificationCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).ec2conn + + req := &ec2.CreateVpcEndpointConnectionNotificationInput{ + ConnectionNotificationArn: aws.String(d.Get("connection_notification_arn").(string)), + ConnectionEvents: expandStringSet(d.Get("connection_events").(*schema.Set)), + } + if v, ok := d.GetOk("vpc_endpoint_service_id"); ok { + req.ServiceId = aws.String(v.(string)) + } else if v, ok := d.GetOk("vpc_endpoint_id"); ok { + req.VpcEndpointId = aws.String(v.(string)) + } else { + return fmt.Errorf( + "One of ['vpc_endpoint_service_id', 'vpc_endpoint_id'] must be set to create a VPC Endpoint connection notification") + } + + log.Printf("[DEBUG] Creating VPC Endpoint connection notification: %#v", req) + resp, err := conn.CreateVpcEndpointConnectionNotification(req) + if err != nil { + return fmt.Errorf("Error creating VPC Endpoint connection notification: %s", err.Error()) + } + + d.SetId(aws.StringValue(resp.ConnectionNotification.ConnectionNotificationId)) + + return resourceAwsVpcEndpointConnectionNotificationRead(d, meta) +} + +func resourceAwsVpcEndpointConnectionNotificationRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).ec2conn + + resp, err := conn.DescribeVpcEndpointConnectionNotifications(&ec2.DescribeVpcEndpointConnectionNotificationsInput{ + ConnectionNotificationId: aws.String(d.Id()), + }) + if err != nil { + if isAWSErr(err, "InvalidConnectionNotification", "") { + log.Printf("[WARN] VPC Endpoint connection notification (%s) not found, removing from state", d.Id()) + d.SetId("") + return nil + } + + return fmt.Errorf("Error reading VPC Endpoint connection notification: %s", err.Error()) + } + + return vpcEndpointConnectionNotificationAttributes(d, resp.ConnectionNotificationSet[0]) +} + +func resourceAwsVpcEndpointConnectionNotificationUpdate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).ec2conn + + req := &ec2.ModifyVpcEndpointConnectionNotificationInput{ + ConnectionNotificationId: aws.String(d.Id()), + } + + if d.HasChange("connection_notification_arn") { + req.ConnectionNotificationArn = aws.String(d.Get("connection_notification_arn").(string)) + } + + if d.HasChange("connection_events") { + req.ConnectionEvents = expandStringSet(d.Get("connection_events").(*schema.Set)) + } + + log.Printf("[DEBUG] Updating VPC Endpoint connection notification: %#v", req) + if _, err := conn.ModifyVpcEndpointConnectionNotification(req); err != nil { + return fmt.Errorf("Error updating VPC Endpoint connection notification: %s", err.Error()) + } + + return resourceAwsVpcEndpointConnectionNotificationRead(d, meta) +} + +func resourceAwsVpcEndpointConnectionNotificationDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).ec2conn + + log.Printf("[DEBUG] Deleting VPC Endpoint connection notification: %s", d.Id()) + _, err := conn.DeleteVpcEndpointConnectionNotifications(&ec2.DeleteVpcEndpointConnectionNotificationsInput{ + ConnectionNotificationIds: aws.StringSlice([]string{d.Id()}), + }) + if err != nil { + if isAWSErr(err, "InvalidConnectionNotification", "") { + log.Printf("[DEBUG] VPC Endpoint connection notification %s is already gone", d.Id()) + } else { + return fmt.Errorf("Error deleting VPC Endpoint connection notification: %s", err.Error()) + } + } + + return nil +} + +func vpcEndpointConnectionNotificationAttributes(d *schema.ResourceData, cn *ec2.ConnectionNotification) error { + d.Set("vpc_endpoint_service_id", cn.ServiceId) + d.Set("vpc_endpoint_id", cn.VpcEndpointId) + d.Set("connection_notification_arn", cn.ConnectionNotificationArn) + d.Set("connection_events", flattenStringList(cn.ConnectionEvents)) + d.Set("state", cn.ConnectionNotificationState) + d.Set("notification_type", cn.ConnectionNotificationType) + + return nil +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint_route_table_association.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint_route_table_association.go index 655638aa4..60a80bf06 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint_route_table_association.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint_route_table_association.go @@ -13,9 +13,9 @@ import ( func resourceAwsVpcEndpointRouteTableAssociation() *schema.Resource { return &schema.Resource{ - Create: resourceAwsVPCEndpointRouteTableAssociationCreate, - Read: resourceAwsVPCEndpointRouteTableAssociationRead, - Delete: resourceAwsVPCEndpointRouteTableAssociationDelete, + Create: resourceAwsVpcEndpointRouteTableAssociationCreate, + Read: resourceAwsVpcEndpointRouteTableAssociationRead, + Delete: resourceAwsVpcEndpointRouteTableAssociationDelete, Importer: &schema.ResourceImporter{ State: schema.ImportStatePassthrough, }, @@ -35,45 +35,40 @@ func resourceAwsVpcEndpointRouteTableAssociation() *schema.Resource { } } -func resourceAwsVPCEndpointRouteTableAssociationCreate(d *schema.ResourceData, meta interface{}) error { +func resourceAwsVpcEndpointRouteTableAssociationCreate(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).ec2conn + endpointId := d.Get("vpc_endpoint_id").(string) rtId := d.Get("route_table_id").(string) - _, err := findResourceVPCEndpoint(conn, endpointId) + _, err := findResourceVpcEndpoint(conn, endpointId) if err != nil { return err } - log.Printf( - "[INFO] Creating VPC Endpoint/Route Table association: %s => %s", - endpointId, rtId) - - input := &ec2.ModifyVpcEndpointInput{ + _, err = conn.ModifyVpcEndpoint(&ec2.ModifyVpcEndpointInput{ VpcEndpointId: aws.String(endpointId), AddRouteTableIds: aws.StringSlice([]string{rtId}), - } - - _, err = conn.ModifyVpcEndpoint(input) + }) if err != nil { return fmt.Errorf("Error creating VPC Endpoint/Route Table association: %s", err.Error()) } - id := vpcEndpointIdRouteTableIdHash(endpointId, rtId) - log.Printf("[DEBUG] VPC Endpoint/Route Table association %q created.", id) - d.SetId(id) + d.SetId(vpcEndpointIdRouteTableIdHash(endpointId, rtId)) - return resourceAwsVPCEndpointRouteTableAssociationRead(d, meta) + return resourceAwsVpcEndpointRouteTableAssociationRead(d, meta) } -func resourceAwsVPCEndpointRouteTableAssociationRead(d *schema.ResourceData, meta interface{}) error { +func resourceAwsVpcEndpointRouteTableAssociationRead(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).ec2conn + endpointId := d.Get("vpc_endpoint_id").(string) rtId := d.Get("route_table_id").(string) - vpce, err := findResourceVPCEndpoint(conn, endpointId) + vpce, err := findResourceVpcEndpoint(conn, endpointId) if err != nil { - if err, ok := err.(awserr.Error); ok && err.Code() == "InvalidVpcEndpointId.NotFound" { + if isAWSErr(err, "InvalidVpcEndpointId.NotFound", "") { + log.Printf("[WARN] VPC Endpoint (%s) not found, removing VPC Endpoint/Route Table association (%s) from state", endpointId, d.Id()) d.SetId("") return nil } @@ -83,35 +78,30 @@ func resourceAwsVPCEndpointRouteTableAssociationRead(d *schema.ResourceData, met found := false for _, id := range vpce.RouteTableIds { - if id != nil && *id == rtId { + if aws.StringValue(id) == rtId { found = true break } } if !found { - // The association no longer exists. + log.Printf("[WARN] VPC Endpoint/Route Table association (%s) not found, removing from state", d.Id()) d.SetId("") return nil } - id := vpcEndpointIdRouteTableIdHash(endpointId, rtId) - log.Printf("[DEBUG] Computed VPC Endpoint/Route Table ID %s", id) - d.SetId(id) - return nil } -func resourceAwsVPCEndpointRouteTableAssociationDelete(d *schema.ResourceData, meta interface{}) error { +func resourceAwsVpcEndpointRouteTableAssociationDelete(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).ec2conn + endpointId := d.Get("vpc_endpoint_id").(string) rtId := d.Get("route_table_id").(string) - input := &ec2.ModifyVpcEndpointInput{ + _, err := conn.ModifyVpcEndpoint(&ec2.ModifyVpcEndpointInput{ VpcEndpointId: aws.String(endpointId), RemoveRouteTableIds: aws.StringSlice([]string{rtId}), - } - - _, err := conn.ModifyVpcEndpoint(input) + }) if err != nil { ec2err, ok := err.(awserr.Error) if !ok { @@ -130,28 +120,22 @@ func resourceAwsVPCEndpointRouteTableAssociationDelete(d *schema.ResourceData, m } } - log.Printf("[DEBUG] VPC Endpoint/Route Table association %q deleted", d.Id()) - d.SetId("") - return nil } -func findResourceVPCEndpoint(conn *ec2.EC2, id string) (*ec2.VpcEndpoint, error) { - input := &ec2.DescribeVpcEndpointsInput{ +func findResourceVpcEndpoint(conn *ec2.EC2, id string) (*ec2.VpcEndpoint, error) { + resp, err := conn.DescribeVpcEndpoints(&ec2.DescribeVpcEndpointsInput{ VpcEndpointIds: aws.StringSlice([]string{id}), - } - - log.Printf("[DEBUG] Reading VPC Endpoint: %q", id) - output, err := conn.DescribeVpcEndpoints(input) + }) if err != nil { return nil, err } - if output.VpcEndpoints == nil { - return nil, fmt.Errorf("No VPC Endpoints were found for %q", id) + if resp.VpcEndpoints == nil || len(resp.VpcEndpoints) == 0 { + return nil, fmt.Errorf("No VPC Endpoints were found for %s", id) } - return output.VpcEndpoints[0], nil + return resp.VpcEndpoints[0], nil } func vpcEndpointIdRouteTableIdHash(endpointId, rtId string) string { diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint_service.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint_service.go new file mode 100644 index 000000000..56775f6e5 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint_service.go @@ -0,0 +1,279 @@ +package aws + +import ( + "errors" + "fmt" + "log" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/ec2" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAwsVpcEndpointService() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsVpcEndpointServiceCreate, + Read: resourceAwsVpcEndpointServiceRead, + Update: resourceAwsVpcEndpointServiceUpdate, + Delete: resourceAwsVpcEndpointServiceDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + + Schema: map[string]*schema.Schema{ + "acceptance_required": { + Type: schema.TypeBool, + Required: true, + }, + "network_load_balancer_arns": { + Type: schema.TypeSet, + Required: true, + MinItems: 1, + Elem: &schema.Schema{Type: schema.TypeString}, + Set: schema.HashString, + }, + "allowed_principals": { + Type: schema.TypeSet, + Optional: true, + Computed: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Set: schema.HashString, + }, + "state": { + Type: schema.TypeString, + Computed: true, + }, + "service_name": { + Type: schema.TypeString, + Computed: true, + }, + "service_type": { + Type: schema.TypeString, + Computed: true, + }, + "availability_zones": { + Type: schema.TypeSet, + Elem: &schema.Schema{Type: schema.TypeString}, + Computed: true, + Set: schema.HashString, + }, + "private_dns_name": { + Type: schema.TypeString, + Computed: true, + }, + "base_endpoint_dns_names": { + Type: schema.TypeSet, + Elem: &schema.Schema{Type: schema.TypeString}, + Computed: true, + Set: schema.HashString, + }, + }, + } +} + +func resourceAwsVpcEndpointServiceCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).ec2conn + + req := &ec2.CreateVpcEndpointServiceConfigurationInput{ + AcceptanceRequired: aws.Bool(d.Get("acceptance_required").(bool)), + NetworkLoadBalancerArns: expandStringSet(d.Get("network_load_balancer_arns").(*schema.Set)), + } + + log.Printf("[DEBUG] Creating VPC Endpoint Service configuration: %#v", req) + resp, err := conn.CreateVpcEndpointServiceConfiguration(req) + if err != nil { + return fmt.Errorf("Error creating VPC Endpoint Service configuration: %s", err.Error()) + } + + d.SetId(aws.StringValue(resp.ServiceConfiguration.ServiceId)) + + if err := vpcEndpointServiceWaitUntilAvailable(d, conn); err != nil { + return err + } + + return resourceAwsVpcEndpointServiceUpdate(d, meta) +} + +func resourceAwsVpcEndpointServiceRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).ec2conn + + svcCfg, state, err := vpcEndpointServiceStateRefresh(conn, d.Id())() + if err != nil && state != ec2.ServiceStateFailed { + return fmt.Errorf("Error reading VPC Endpoint Service: %s", err.Error()) + } + + terminalStates := map[string]bool{ + ec2.ServiceStateDeleted: true, + ec2.ServiceStateDeleting: true, + ec2.ServiceStateFailed: true, + } + if _, ok := terminalStates[state]; ok { + log.Printf("[WARN] VPC Endpoint Service (%s) not found, removing from state", d.Id()) + d.SetId("") + return nil + } + + return vpcEndpointServiceAttributes(d, svcCfg.(*ec2.ServiceConfiguration), conn) +} + +func resourceAwsVpcEndpointServiceUpdate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).ec2conn + + d.Partial(true) + svcId := d.Id() + + modifyCfgReq := &ec2.ModifyVpcEndpointServiceConfigurationInput{ + ServiceId: aws.String(svcId), + } + modifyCfg := false + if d.HasChange("acceptance_required") { + modifyCfgReq.AcceptanceRequired = aws.Bool(d.Get("acceptance_required").(bool)) + modifyCfg = true + } + if setVpcEndpointServiceUpdateLists(d, "network_load_balancer_arns", + &modifyCfgReq.AddNetworkLoadBalancerArns, &modifyCfgReq.RemoveNetworkLoadBalancerArns) { + modifyCfg = true + } + if modifyCfg { + log.Printf("[DEBUG] Modifying VPC Endpoint Service configuration: %#v", modifyCfgReq) + if _, err := conn.ModifyVpcEndpointServiceConfiguration(modifyCfgReq); err != nil { + return fmt.Errorf("Error modifying VPC Endpoint Service configuration: %s", err.Error()) + } + if err := vpcEndpointServiceWaitUntilAvailable(d, conn); err != nil { + return err + } + + d.SetPartial("network_load_balancer_arns") + } + + modifyPermReq := &ec2.ModifyVpcEndpointServicePermissionsInput{ + ServiceId: aws.String(svcId), + } + if setVpcEndpointServiceUpdateLists(d, "allowed_principals", + &modifyPermReq.AddAllowedPrincipals, &modifyPermReq.RemoveAllowedPrincipals) { + log.Printf("[DEBUG] Modifying VPC Endpoint Service permissions: %#v", modifyPermReq) + if _, err := conn.ModifyVpcEndpointServicePermissions(modifyPermReq); err != nil { + return fmt.Errorf("Error modifying VPC Endpoint Service permissions: %s", err.Error()) + } + + d.SetPartial("allowed_principals") + } + + d.Partial(false) + return resourceAwsVpcEndpointServiceRead(d, meta) +} + +func resourceAwsVpcEndpointServiceDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).ec2conn + + log.Printf("[DEBUG] Deleting VPC Endpoint Service: %s", d.Id()) + _, err := conn.DeleteVpcEndpointServiceConfigurations(&ec2.DeleteVpcEndpointServiceConfigurationsInput{ + ServiceIds: aws.StringSlice([]string{d.Id()}), + }) + if err != nil { + if isAWSErr(err, "InvalidVpcEndpointServiceId.NotFound", "") { + log.Printf("[DEBUG] VPC Endpoint Service %s is already gone", d.Id()) + } else { + return fmt.Errorf("Error deleting VPC Endpoint Service: %s", err.Error()) + } + } + + stateConf := &resource.StateChangeConf{ + Pending: []string{ec2.ServiceStateAvailable, ec2.ServiceStateDeleting}, + Target: []string{ec2.ServiceStateDeleted}, + Refresh: vpcEndpointServiceStateRefresh(conn, d.Id()), + Timeout: 10 * time.Minute, + Delay: 5 * time.Second, + MinTimeout: 5 * time.Second, + } + if _, err := stateConf.WaitForState(); err != nil { + return fmt.Errorf("Error waiting for VPC Endpoint Service %s to delete: %s", d.Id(), err.Error()) + } + + return nil +} + +func vpcEndpointServiceStateRefresh(conn *ec2.EC2, svcId string) resource.StateRefreshFunc { + return func() (interface{}, string, error) { + log.Printf("[DEBUG] Reading VPC Endpoint Service Configuration: %s", svcId) + resp, err := conn.DescribeVpcEndpointServiceConfigurations(&ec2.DescribeVpcEndpointServiceConfigurationsInput{ + ServiceIds: aws.StringSlice([]string{svcId}), + }) + if err != nil { + if isAWSErr(err, "InvalidVpcEndpointServiceId.NotFound", "") { + return false, ec2.ServiceStateDeleted, nil + } + + return nil, "", err + } + + svcCfg := resp.ServiceConfigurations[0] + state := aws.StringValue(svcCfg.ServiceState) + // No use in retrying if the endpoint service is in a failed state. + if state == ec2.ServiceStateFailed { + return nil, state, errors.New("VPC Endpoint Service is in a failed state") + } + return svcCfg, state, nil + } +} + +func vpcEndpointServiceWaitUntilAvailable(d *schema.ResourceData, conn *ec2.EC2) error { + stateConf := &resource.StateChangeConf{ + Pending: []string{ec2.ServiceStatePending}, + Target: []string{ec2.ServiceStateAvailable}, + Refresh: vpcEndpointServiceStateRefresh(conn, d.Id()), + Timeout: 10 * time.Minute, + Delay: 5 * time.Second, + MinTimeout: 5 * time.Second, + } + if _, err := stateConf.WaitForState(); err != nil { + return fmt.Errorf("Error waiting for VPC Endpoint Service %s to become available: %s", d.Id(), err.Error()) + } + + return nil +} + +func vpcEndpointServiceAttributes(d *schema.ResourceData, svcCfg *ec2.ServiceConfiguration, conn *ec2.EC2) error { + d.Set("acceptance_required", svcCfg.AcceptanceRequired) + d.Set("network_load_balancer_arns", flattenStringList(svcCfg.NetworkLoadBalancerArns)) + d.Set("state", svcCfg.ServiceState) + d.Set("service_name", svcCfg.ServiceName) + d.Set("service_type", svcCfg.ServiceType[0].ServiceType) + d.Set("availability_zones", flattenStringList(svcCfg.AvailabilityZones)) + d.Set("private_dns_name", svcCfg.PrivateDnsName) + d.Set("base_endpoint_dns_names", flattenStringList(svcCfg.BaseEndpointDnsNames)) + + resp, err := conn.DescribeVpcEndpointServicePermissions(&ec2.DescribeVpcEndpointServicePermissionsInput{ + ServiceId: aws.String(d.Id()), + }) + if err != nil { + return err + } + d.Set("allowed_principals", flattenVpcEndpointServiceAllowedPrincipals(resp.AllowedPrincipals)) + + return nil +} + +func setVpcEndpointServiceUpdateLists(d *schema.ResourceData, key string, a, r *[]*string) bool { + if !d.HasChange(key) { + return false + } + + o, n := d.GetChange(key) + os := o.(*schema.Set) + ns := n.(*schema.Set) + + add := expandStringList(ns.Difference(os).List()) + if len(add) > 0 { + *a = add + } + + remove := expandStringList(os.Difference(ns).List()) + if len(remove) > 0 { + *r = remove + } + + return true +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint_service_allowed_principal.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint_service_allowed_principal.go new file mode 100644 index 000000000..f34a054f8 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint_service_allowed_principal.go @@ -0,0 +1,123 @@ +package aws + +import ( + "fmt" + "log" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/ec2" + "github.com/hashicorp/terraform/helper/hashcode" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAwsVpcEndpointServiceAllowedPrincipal() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsVpcEndpointServiceAllowedPrincipalCreate, + Read: resourceAwsVpcEndpointServiceAllowedPrincipalRead, + Delete: resourceAwsVpcEndpointServiceAllowedPrincipalDelete, + + Schema: map[string]*schema.Schema{ + "vpc_endpoint_service_id": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "principal_arn": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + }, + } +} + +func resourceAwsVpcEndpointServiceAllowedPrincipalCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).ec2conn + + svcId := d.Get("vpc_endpoint_service_id").(string) + arn := d.Get("principal_arn").(string) + + _, err := findResourceVpcEndpointServiceAllowedPrincipals(conn, svcId) + if err != nil { + return err + } + + _, err = conn.ModifyVpcEndpointServicePermissions(&ec2.ModifyVpcEndpointServicePermissionsInput{ + ServiceId: aws.String(svcId), + AddAllowedPrincipals: aws.StringSlice([]string{arn}), + }) + if err != nil { + return fmt.Errorf("Error creating VPC Endpoint Service allowed principal: %s", err.Error()) + } + + d.SetId(vpcEndpointServiceIdPrincipalArnHash(svcId, arn)) + + return resourceAwsVpcEndpointServiceAllowedPrincipalRead(d, meta) +} + +func resourceAwsVpcEndpointServiceAllowedPrincipalRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).ec2conn + + svcId := d.Get("vpc_endpoint_service_id").(string) + arn := d.Get("principal_arn").(string) + + principals, err := findResourceVpcEndpointServiceAllowedPrincipals(conn, svcId) + if err != nil { + if isAWSErr(err, "InvalidVpcEndpointServiceId.NotFound", "") { + log.Printf("[WARN]VPC Endpoint Service (%s) not found, removing VPC Endpoint Service allowed principal (%s) from state", svcId, d.Id()) + d.SetId("") + return nil + } + + return err + } + + found := false + for _, principal := range principals { + if aws.StringValue(principal.Principal) == arn { + found = true + break + } + } + if !found { + log.Printf("[WARN] VPC Endpoint Service allowed principal (%s) not found, removing from state", d.Id()) + d.SetId("") + return nil + } + + return nil +} + +func resourceAwsVpcEndpointServiceAllowedPrincipalDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).ec2conn + + svcId := d.Get("vpc_endpoint_service_id").(string) + arn := d.Get("principal_arn").(string) + + _, err := conn.ModifyVpcEndpointServicePermissions(&ec2.ModifyVpcEndpointServicePermissionsInput{ + ServiceId: aws.String(svcId), + RemoveAllowedPrincipals: aws.StringSlice([]string{arn}), + }) + if err != nil { + if !isAWSErr(err, "InvalidVpcEndpointServiceId.NotFound", "") { + return fmt.Errorf("Error deleting VPC Endpoint Service allowed principal: %s", err.Error()) + } + } + + return nil +} + +func findResourceVpcEndpointServiceAllowedPrincipals(conn *ec2.EC2, id string) ([]*ec2.AllowedPrincipal, error) { + resp, err := conn.DescribeVpcEndpointServicePermissions(&ec2.DescribeVpcEndpointServicePermissionsInput{ + ServiceId: aws.String(id), + }) + if err != nil { + return nil, err + } + + return resp.AllowedPrincipals, nil +} + +func vpcEndpointServiceIdPrincipalArnHash(svcId, arn string) string { + return fmt.Sprintf("a-%s%d", svcId, hashcode.String(arn)) +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint_subnet_association.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint_subnet_association.go new file mode 100644 index 000000000..1fe3c4a18 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint_subnet_association.go @@ -0,0 +1,128 @@ +package aws + +import ( + "fmt" + "log" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awserr" + "github.com/aws/aws-sdk-go/service/ec2" + "github.com/hashicorp/terraform/helper/hashcode" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAwsVpcEndpointSubnetAssociation() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsVpcEndpointSubnetAssociationCreate, + Read: resourceAwsVpcEndpointSubnetAssociationRead, + Delete: resourceAwsVpcEndpointSubnetAssociationDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + + Schema: map[string]*schema.Schema{ + "vpc_endpoint_id": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "subnet_id": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + }, + } +} + +func resourceAwsVpcEndpointSubnetAssociationCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).ec2conn + + endpointId := d.Get("vpc_endpoint_id").(string) + snId := d.Get("subnet_id").(string) + + _, err := findResourceVpcEndpoint(conn, endpointId) + if err != nil { + return err + } + + _, err = conn.ModifyVpcEndpoint(&ec2.ModifyVpcEndpointInput{ + VpcEndpointId: aws.String(endpointId), + AddSubnetIds: aws.StringSlice([]string{snId}), + }) + if err != nil { + return fmt.Errorf("Error creating Vpc Endpoint/Subnet association: %s", err.Error()) + } + + d.SetId(vpcEndpointIdSubnetIdHash(endpointId, snId)) + + return resourceAwsVpcEndpointSubnetAssociationRead(d, meta) +} + +func resourceAwsVpcEndpointSubnetAssociationRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).ec2conn + + endpointId := d.Get("vpc_endpoint_id").(string) + snId := d.Get("subnet_id").(string) + + vpce, err := findResourceVpcEndpoint(conn, endpointId) + if err != nil { + if isAWSErr(err, "InvalidVpcEndpointId.NotFound", "") { + log.Printf("[WARN] Vpc Endpoint (%s) not found, removing Vpc Endpoint/Subnet association (%s) from state", endpointId, d.Id()) + d.SetId("") + return nil + } + + return err + } + + found := false + for _, id := range vpce.SubnetIds { + if aws.StringValue(id) == snId { + found = true + break + } + } + if !found { + log.Printf("[WARN] Vpc Endpoint/Subnet association (%s) not found, removing from state", d.Id()) + d.SetId("") + return nil + } + + return nil +} + +func resourceAwsVpcEndpointSubnetAssociationDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).ec2conn + + endpointId := d.Get("vpc_endpoint_id").(string) + snId := d.Get("subnet_id").(string) + + _, err := conn.ModifyVpcEndpoint(&ec2.ModifyVpcEndpointInput{ + VpcEndpointId: aws.String(endpointId), + RemoveSubnetIds: aws.StringSlice([]string{snId}), + }) + if err != nil { + ec2err, ok := err.(awserr.Error) + if !ok { + return fmt.Errorf("Error deleting Vpc Endpoint/Subnet association: %s", err.Error()) + } + + switch ec2err.Code() { + case "InvalidVpcEndpointId.NotFound": + fallthrough + case "InvalidRouteTableId.NotFound": + fallthrough + case "InvalidParameter": + log.Printf("[DEBUG] Vpc Endpoint/Subnet association is already gone") + default: + return fmt.Errorf("Error deleting Vpc Endpoint/Subnet association: %s", err.Error()) + } + } + + return nil +} + +func vpcEndpointIdSubnetIdHash(endpointId, snId string) string { + return fmt.Sprintf("a-%s%d", endpointId, hashcode.String(snId)) +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpn_gateway.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpn_gateway.go index af0a92e05..57ed8a586 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpn_gateway.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpn_gateway.go @@ -3,6 +3,7 @@ package aws import ( "fmt" "log" + "strconv" "time" "github.com/aws/aws-sdk-go/aws" @@ -23,13 +24,21 @@ func resourceAwsVpnGateway() *schema.Resource { }, Schema: map[string]*schema.Schema{ - "availability_zone": &schema.Schema{ + "availability_zone": { Type: schema.TypeString, Optional: true, ForceNew: true, }, - "vpc_id": &schema.Schema{ + "amazon_side_asn": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + Computed: true, + ValidateFunc: validateAmazonSideAsn, + }, + + "vpc_id": { Type: schema.TypeString, Optional: true, Computed: true, @@ -47,6 +56,13 @@ func resourceAwsVpnGatewayCreate(d *schema.ResourceData, meta interface{}) error AvailabilityZone: aws.String(d.Get("availability_zone").(string)), Type: aws.String("ipsec.1"), } + if asn, ok := d.GetOk("amazon_side_asn"); ok { + i, err := strconv.ParseInt(asn.(string), 10, 64) + if err != nil { + return err + } + createOpts.AmazonSideAsn = aws.Int64(i) + } // Create the VPN gateway log.Printf("[DEBUG] Creating VPN gateway") @@ -98,6 +114,7 @@ func resourceAwsVpnGatewayRead(d *schema.ResourceData, meta interface{}) error { if vpnGateway.AvailabilityZone != nil && *vpnGateway.AvailabilityZone != "" { d.Set("availability_zone", vpnGateway.AvailabilityZone) } + d.Set("amazon_side_asn", strconv.FormatInt(aws.Int64Value(vpnGateway.AmazonSideAsn), 10)) d.Set("tags", tagsToMap(vpnGateway.Tags)) return nil diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/structure.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/structure.go index 239d0bdc7..ca85a8f9c 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/structure.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/structure.go @@ -1,6 +1,7 @@ package aws import ( + "bytes" "encoding/json" "fmt" "reflect" @@ -26,6 +27,7 @@ import ( "github.com/aws/aws-sdk-go/service/elasticbeanstalk" elasticsearch "github.com/aws/aws-sdk-go/service/elasticsearchservice" "github.com/aws/aws-sdk-go/service/elb" + "github.com/aws/aws-sdk-go/service/iot" "github.com/aws/aws-sdk-go/service/kinesis" "github.com/aws/aws-sdk-go/service/lambda" "github.com/aws/aws-sdk-go/service/mq" @@ -2424,6 +2426,227 @@ func expandCognitoUserPoolPasswordPolicy(config map[string]interface{}) *cognito return configs } +func flattenIoTRuleCloudWatchAlarmActions(actions []*iot.Action) []map[string]interface{} { + results := make([]map[string]interface{}, 0) + + for _, a := range actions { + result := make(map[string]interface{}) + v := a.CloudwatchAlarm + if v != nil { + result["alarm_name"] = *v.AlarmName + result["role_arn"] = *v.RoleArn + result["state_reason"] = *v.StateReason + result["state_value"] = *v.StateValue + + results = append(results, result) + } + } + + return results +} + +func flattenIoTRuleCloudWatchMetricActions(actions []*iot.Action) []map[string]interface{} { + results := make([]map[string]interface{}, 0) + + for _, a := range actions { + result := make(map[string]interface{}) + v := a.CloudwatchMetric + if v != nil { + result["metric_name"] = *v.MetricName + result["role_arn"] = *v.RoleArn + result["metric_namespace"] = *v.MetricNamespace + result["metric_unit"] = *v.MetricUnit + result["metric_value"] = *v.MetricValue + + if v.MetricTimestamp != nil { + result["metric_timestamp"] = *v.MetricTimestamp + } + + results = append(results, result) + } + } + + return results +} + +func flattenIoTRuleDynamoDbActions(actions []*iot.Action) []map[string]interface{} { + results := make([]map[string]interface{}, 0) + + for _, a := range actions { + result := make(map[string]interface{}) + v := a.DynamoDB + if v != nil { + result["hash_key_field"] = *v.HashKeyField + result["hash_key_value"] = *v.HashKeyValue + result["range_key_field"] = *v.RangeKeyField + result["range_key_value"] = *v.RangeKeyValue + result["role_arn"] = *v.RoleArn + result["table_name"] = *v.TableName + + if v.HashKeyType != nil { + result["hash_key_type"] = *v.HashKeyType + } + + if v.PayloadField != nil { + result["payload_field"] = *v.PayloadField + } + + if v.RangeKeyType != nil { + result["range_key_type"] = *v.RangeKeyType + } + + results = append(results, result) + } + } + + return results +} + +func flattenIoTRuleElasticSearchActions(actions []*iot.Action) []map[string]interface{} { + results := make([]map[string]interface{}, 0) + + for _, a := range actions { + result := make(map[string]interface{}) + v := a.Elasticsearch + if v != nil { + result["role_arn"] = *v.RoleArn + result["endpoint"] = *v.Endpoint + result["id"] = *v.Id + result["index"] = *v.Index + result["type"] = *v.Type + + results = append(results, result) + } + } + + return results +} + +func flattenIoTRuleFirehoseActions(actions []*iot.Action) []map[string]interface{} { + results := make([]map[string]interface{}, 0) + + for _, a := range actions { + result := make(map[string]interface{}) + v := a.Firehose + if v != nil { + result["role_arn"] = *v.RoleArn + result["delivery_stream_name"] = *v.DeliveryStreamName + + results = append(results, result) + } + } + + return results +} + +func flattenIoTRuleKinesisActions(actions []*iot.Action) []map[string]interface{} { + results := make([]map[string]interface{}, 0) + + for _, a := range actions { + result := make(map[string]interface{}) + v := a.Kinesis + if v != nil { + result["role_arn"] = *v.RoleArn + result["stream_name"] = *v.StreamName + + if v.PartitionKey != nil { + result["partition_key"] = *v.PartitionKey + } + + results = append(results, result) + } + } + + return results +} + +func flattenIoTRuleLambdaActions(actions []*iot.Action) []map[string]interface{} { + results := make([]map[string]interface{}, 0) + + for _, a := range actions { + result := make(map[string]interface{}) + v := a.Lambda + if v != nil { + result["function_arn"] = *v.FunctionArn + + results = append(results, result) + } + } + + return results +} + +func flattenIoTRuleRepublishActions(actions []*iot.Action) []map[string]interface{} { + results := make([]map[string]interface{}, 0) + + for _, a := range actions { + result := make(map[string]interface{}) + v := a.Republish + if v != nil { + result["role_arn"] = *v.RoleArn + result["topic"] = *v.Topic + + results = append(results, result) + } + } + + return results +} + +func flattenIoTRuleS3Actions(actions []*iot.Action) []map[string]interface{} { + results := make([]map[string]interface{}, 0) + + for _, a := range actions { + result := make(map[string]interface{}) + v := a.S3 + if v != nil { + result["role_arn"] = *v.RoleArn + result["bucket_name"] = *v.BucketName + result["key"] = *v.Key + + results = append(results, result) + } + } + + return results +} + +func flattenIoTRuleSnsActions(actions []*iot.Action) []map[string]interface{} { + results := make([]map[string]interface{}, 0) + + for _, a := range actions { + result := make(map[string]interface{}) + v := a.Sns + if v != nil { + result["message_format"] = *v.MessageFormat + result["role_arn"] = *v.RoleArn + result["target_arn"] = *v.TargetArn + + results = append(results, result) + } + } + + return results +} + +func flattenIoTRuleSqsActions(actions []*iot.Action) []map[string]interface{} { + results := make([]map[string]interface{}, 0) + + for _, a := range actions { + result := make(map[string]interface{}) + v := a.Sqs + if v != nil { + result["role_arn"] = *v.RoleArn + result["use_base64"] = *v.UseBase64 + result["queue_url"] = *v.QueueUrl + + results = append(results, result) + } + } + + return results +} + func flattenCognitoUserPoolPasswordPolicy(s *cognitoidentityprovider.PasswordPolicyType) []map[string]interface{} { m := map[string]interface{}{} @@ -3287,10 +3510,14 @@ func flattenAwsDynamoDbTableResource(d *schema.ResourceData, table *dynamodb.Tab if table.StreamSpecification != nil { d.Set("stream_view_type", table.StreamSpecification.StreamViewType) d.Set("stream_enabled", table.StreamSpecification.StreamEnabled) - d.Set("stream_arn", table.LatestStreamArn) - d.Set("stream_label", table.LatestStreamLabel) + } else { + d.Set("stream_view_type", "") + d.Set("stream_enabled", false) } + d.Set("stream_arn", table.LatestStreamArn) + d.Set("stream_label", table.LatestStreamLabel) + err = d.Set("global_secondary_index", gsiList) if err != nil { return err @@ -3383,3 +3610,60 @@ func expandDynamoDbKeySchema(data map[string]interface{}) []*dynamodb.KeySchemaE return keySchema } + +func flattenVpcEndpointServiceAllowedPrincipals(allowedPrincipals []*ec2.AllowedPrincipal) []string { + result := make([]string, 0, len(allowedPrincipals)) + for _, allowedPrincipal := range allowedPrincipals { + if allowedPrincipal.Principal != nil { + result = append(result, *allowedPrincipal.Principal) + } + } + return result +} + +func expandDynamoDbTableItemAttributes(input string) (map[string]*dynamodb.AttributeValue, error) { + var attributes map[string]*dynamodb.AttributeValue + + dec := json.NewDecoder(strings.NewReader(input)) + err := dec.Decode(&attributes) + if err != nil { + return nil, fmt.Errorf("Decoding failed: %s", err) + } + + return attributes, nil +} + +func flattenDynamoDbTableItemAttributes(attrs map[string]*dynamodb.AttributeValue) (string, error) { + buf := bytes.NewBufferString("") + encoder := json.NewEncoder(buf) + err := encoder.Encode(attrs) + if err != nil { + return "", fmt.Errorf("Encoding failed: %s", err) + } + + var rawData map[string]map[string]interface{} + + // Reserialize so we get rid of the nulls + decoder := json.NewDecoder(strings.NewReader(buf.String())) + err = decoder.Decode(&rawData) + if err != nil { + return "", fmt.Errorf("Decoding failed: %s", err) + } + + for _, value := range rawData { + for typeName, typeVal := range value { + if typeVal == nil { + delete(value, typeName) + } + } + } + + rawBuffer := bytes.NewBufferString("") + rawEncoder := json.NewEncoder(rawBuffer) + err = rawEncoder.Encode(rawData) + if err != nil { + return "", fmt.Errorf("Re-encoding failed: %s", err) + } + + return rawBuffer.String(), nil +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/tagsACM.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/tagsACM.go new file mode 100644 index 000000000..5f8a88fa9 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/tagsACM.go @@ -0,0 +1,103 @@ +package aws + +import ( + "log" + "regexp" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/acm" + "github.com/hashicorp/terraform/helper/schema" +) + +func setTagsACM(conn *acm.ACM, d *schema.ResourceData) error { + if d.HasChange("tags") { + oraw, nraw := d.GetChange("tags") + o := oraw.(map[string]interface{}) + n := nraw.(map[string]interface{}) + create, remove := diffTagsACM(tagsFromMapACM(o), tagsFromMapACM(n)) + + // Set tags + if len(remove) > 0 { + input := acm.RemoveTagsFromCertificateInput{ + CertificateArn: aws.String(d.Get("arn").(string)), + Tags: remove, + } + log.Printf("[DEBUG] Removing ACM tags: %s", input) + _, err := conn.RemoveTagsFromCertificate(&input) + if err != nil { + return err + } + } + if len(create) > 0 { + input := acm.AddTagsToCertificateInput{ + CertificateArn: aws.String(d.Get("arn").(string)), + Tags: create, + } + log.Printf("[DEBUG] Adding ACM tags: %s", input) + _, err := conn.AddTagsToCertificate(&input) + if err != nil { + return err + } + } + } + + return nil +} + +// diffTags takes our tags locally and the ones remotely and returns +// the set of tags that must be created, and the set of tags that must +// be destroyed. +func diffTagsACM(oldTags, newTags []*acm.Tag) ([]*acm.Tag, []*acm.Tag) { + // First, we're creating everything we have + create := make(map[string]interface{}) + for _, t := range newTags { + create[*t.Key] = *t.Value + } + + // Build the list of what to remove + var remove []*acm.Tag + for _, t := range oldTags { + old, ok := create[*t.Key] + if !ok || old != *t.Value { + // Delete it! + remove = append(remove, t) + } + } + + return tagsFromMapACM(create), remove +} + +func tagsFromMapACM(m map[string]interface{}) []*acm.Tag { + result := []*acm.Tag{} + for k, v := range m { + result = append(result, &acm.Tag{ + Key: aws.String(k), + Value: aws.String(v.(string)), + }) + } + + return result +} + +func tagsToMapACM(ts []*acm.Tag) map[string]string { + result := map[string]string{} + for _, t := range ts { + result[*t.Key] = *t.Value + } + + return result +} + +// compare a tag against a list of strings and checks if it should +// be ignored or not +func tagIgnoredACM(t *acm.Tag) bool { + filter := []string{"^aws:"} + for _, v := range filter { + log.Printf("[DEBUG] Matching %v with %v\n", v, *t.Key) + if r, _ := regexp.MatchString(v, *t.Key); r == true { + log.Printf("[DEBUG] Found AWS specific tag %s (val: %s), ignoring.\n", *t.Key, *t.Value) + return true + } + } + return false +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/validators.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/validators.go index fdcfa1701..990f90b36 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/validators.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/validators.go @@ -1,18 +1,22 @@ package aws import ( + "errors" "fmt" "net" "net/url" "regexp" + "strconv" "strings" "time" "github.com/aws/aws-sdk-go/service/apigateway" - "github.com/aws/aws-sdk-go/service/applicationautoscaling" "github.com/aws/aws-sdk-go/service/cognitoidentity" "github.com/aws/aws-sdk-go/service/cognitoidentityprovider" + "github.com/aws/aws-sdk-go/service/dynamodb" + "github.com/aws/aws-sdk-go/service/ec2" "github.com/aws/aws-sdk-go/service/gamelift" + "github.com/aws/aws-sdk-go/service/guardduty" "github.com/aws/aws-sdk-go/service/s3" "github.com/hashicorp/terraform/helper/schema" "github.com/hashicorp/terraform/helper/structure" @@ -70,6 +74,7 @@ func validateRdsEngine(v interface{}, k string) (ws []string, errors []error) { validTypes := map[string]bool{ "aurora": true, + "aurora-mysql": true, "aurora-postgresql": true, } @@ -180,6 +185,11 @@ func validateDbParamGroupNamePrefix(v interface{}, k string) (ws []string, error func validateStreamViewType(v interface{}, k string) (ws []string, errors []error) { value := v.(string) + + if value == "" { + return + } + viewTypes := map[string]bool{ "KEYS_ONLY": true, "NEW_IMAGE": true, @@ -193,6 +203,25 @@ func validateStreamViewType(v interface{}, k string) (ws []string, errors []erro return } +func validateDynamoAttributeType(v interface{}, k string) (ws []string, errors []error) { + value := v.(string) + validTypes := []string{ + dynamodb.ScalarAttributeTypeB, + dynamodb.ScalarAttributeTypeN, + dynamodb.ScalarAttributeTypeS, + } + + for _, t := range validTypes { + if t == value { + return + } + } + + errors = append(errors, fmt.Errorf("%q must be a valid DynamoDB attribute type", k)) + + return +} + func validateElbName(v interface{}, k string) (ws []string, errors []error) { value := v.(string) if len(value) == 0 { @@ -1099,39 +1128,6 @@ func validateDmsReplicationTaskId(v interface{}, k string) (ws []string, es []er return } -func validateAppautoscalingScalableDimension(v interface{}, k string) (ws []string, errors []error) { - value := v.(string) - dimensions := map[string]bool{ - "ecs:service:DesiredCount": true, - "ec2:spot-fleet-request:TargetCapacity": true, - "elasticmapreduce:instancegroup:InstanceCount": true, - "dynamodb:table:ReadCapacityUnits": true, - "dynamodb:table:WriteCapacityUnits": true, - "dynamodb:index:ReadCapacityUnits": true, - "dynamodb:index:WriteCapacityUnits": true, - } - - if !dimensions[value] { - errors = append(errors, fmt.Errorf("%q must be a valid scalable dimension value: %q", k, value)) - } - return -} - -func validateAppautoscalingServiceNamespace(v interface{}, k string) (ws []string, errors []error) { - value := v.(string) - namespaces := map[string]bool{ - "ecs": true, - "ec2": true, - "dynamodb": true, - "elasticmapreduce": true, - } - - if !namespaces[value] { - errors = append(errors, fmt.Errorf("%q must be a valid service namespace value: %q", k, value)) - } - return -} - func validateAppautoscalingCustomizedMetricSpecificationStatistic(v interface{}, k string) (ws []string, errors []error) { validStatistic := []string{ "Average", @@ -1152,31 +1148,6 @@ func validateAppautoscalingCustomizedMetricSpecificationStatistic(v interface{}, return } -func validateAppautoscalingPredefinedMetricSpecification(v interface{}, k string) (ws []string, errors []error) { - validMetrics := []string{ - applicationautoscaling.MetricTypeAlbrequestCountPerTarget, - applicationautoscaling.MetricTypeDynamoDbreadCapacityUtilization, - applicationautoscaling.MetricTypeDynamoDbwriteCapacityUtilization, - applicationautoscaling.MetricTypeEc2spotFleetRequestAverageCpuutilization, - applicationautoscaling.MetricTypeEc2spotFleetRequestAverageNetworkIn, - applicationautoscaling.MetricTypeEc2spotFleetRequestAverageNetworkOut, - applicationautoscaling.MetricTypeEcsserviceAverageCpuutilization, - applicationautoscaling.MetricTypeEcsserviceAverageMemoryUtilization, - applicationautoscaling.MetricTypeRdsreaderAverageCpuutilization, - applicationautoscaling.MetricTypeRdsreaderAverageDatabaseConnections, - } - metric := v.(string) - for _, o := range validMetrics { - if metric == o { - return - } - } - errors = append(errors, fmt.Errorf( - "%q contains an invalid metric %q. Valid metric are %q.", - k, metric, validMetrics)) - return -} - func validateAppautoscalingPredefinedResourceLabel(v interface{}, k string) (ws []string, errors []error) { value := v.(string) if len(value) > 1023 { @@ -1506,6 +1477,22 @@ func validateCognitoIdentityProvidersProviderName(v interface{}, k string) (ws [ return } +func validateCognitoUserGroupName(v interface{}, k string) (ws []string, es []error) { + value := v.(string) + if len(value) < 1 { + es = append(es, fmt.Errorf("%q cannot be less than 1 character", k)) + } + + if len(value) > 128 { + es = append(es, fmt.Errorf("%q cannot be longer than 128 character", k)) + } + + if !regexp.MustCompile(`[\p{L}\p{M}\p{S}\p{N}\p{P}]+`).MatchString(value) { + es = append(es, fmt.Errorf("%q must satisfy regular expression pattern: [\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+", k)) + } + return +} + func validateCognitoUserPoolEmailVerificationMessage(v interface{}, k string) (ws []string, es []error) { value := v.(string) if len(value) < 6 { @@ -1538,6 +1525,14 @@ func validateCognitoUserPoolEmailVerificationSubject(v interface{}, k string) (w return } +func validateCognitoUserPoolId(v interface{}, k string) (ws []string, es []error) { + value := v.(string) + if !regexp.MustCompile(`^[\w-]+_[0-9a-zA-Z]+$`).MatchString(value) { + es = append(es, fmt.Errorf("%q must be the region name followed by an underscore and then alphanumeric pattern", k)) + } + return +} + func validateCognitoUserPoolMfaConfiguration(v interface{}, k string) (ws []string, es []error) { value := v.(string) @@ -1893,6 +1888,59 @@ func validateSecurityGroupRuleDescription(v interface{}, k string) (ws []string, return } +func validateIoTTopicRuleName(v interface{}, s string) ([]string, []error) { + name := v.(string) + if len(name) < 1 || len(name) > 128 { + return nil, []error{fmt.Errorf("Name must between 1 and 128 characters long")} + } + + matched, err := regexp.MatchReader("^[a-zA-Z0-9_]+$", strings.NewReader(name)) + + if err != nil { + return nil, []error{err} + } + + if !matched { + return nil, []error{fmt.Errorf("Name must match the pattern ^[a-zA-Z0-9_]+$")} + } + + return nil, nil +} + +func validateIoTTopicRuleCloudWatchAlarmStateValue(v interface{}, s string) ([]string, []error) { + switch v.(string) { + case + "OK", + "ALARM", + "INSUFFICIENT_DATA": + return nil, nil + } + + return nil, []error{fmt.Errorf("State must be one of OK, ALARM, or INSUFFICIENT_DATA")} +} + +func validateIoTTopicRuleCloudWatchMetricTimestamp(v interface{}, s string) ([]string, []error) { + dateString := v.(string) + + // https://docs.aws.amazon.com/iot/latest/apireference/API_CloudwatchMetricAction.html + if _, err := time.Parse(time.RFC3339, dateString); err != nil { + return nil, []error{err} + } + return nil, nil +} + +func validateIoTTopicRuleElasticSearchEndpoint(v interface{}, k string) (ws []string, errors []error) { + value := v.(string) + + // https://docs.aws.amazon.com/iot/latest/apireference/API_ElasticsearchAction.html + if !regexp.MustCompile(`https?://.*`).MatchString(value) { + errors = append(errors, fmt.Errorf( + "%q should be an URL: %q", + k, value)) + } + return +} + func validateServiceCatalogPortfolioName(v interface{}, k string) (ws []string, errors []error) { value := v.(string) if (len(value) > 20) || (len(value) == 0) { @@ -1955,14 +2003,16 @@ func validateCognitoRoleMappingsAmbiguousRoleResolutionAgainstType(v map[string] func validateCognitoRoleMappingsRulesConfiguration(v map[string]interface{}) (errors []error) { t := v["type"].(string) - value, ok := v["mapping_rule"] - valLength := len(value.([]interface{})) + valLength := 0 + if value, ok := v["mapping_rule"]; ok { + valLength = len(value.([]interface{})) + } - if (!ok || valLength == 0) && t == cognitoidentity.RoleMappingTypeRules { + if (valLength == 0) && t == cognitoidentity.RoleMappingTypeRules { errors = append(errors, fmt.Errorf("mapping_rule is required for Rules")) } - if (ok || valLength > 0) && t == cognitoidentity.RoleMappingTypeToken { + if (valLength > 0) && t == cognitoidentity.RoleMappingTypeToken { errors = append(errors, fmt.Errorf("mapping_rule must not be set for Token based role mapping")) } @@ -2133,3 +2183,91 @@ func validateGameliftOperatingSystem(v interface{}, k string) (ws []string, erro } return } + +func validateGuardDutyIpsetFormat(v interface{}, k string) (ws []string, errors []error) { + value := v.(string) + validType := []string{ + guardduty.IpSetFormatTxt, + guardduty.IpSetFormatStix, + guardduty.IpSetFormatOtxCsv, + guardduty.IpSetFormatAlienVault, + guardduty.IpSetFormatProofPoint, + guardduty.IpSetFormatFireEye, + } + for _, str := range validType { + if value == str { + return + } + } + errors = append(errors, fmt.Errorf("expected %s to be one of %v, got %s", k, validType, value)) + return +} + +func validateGuardDutyThreatIntelSetFormat(v interface{}, k string) (ws []string, errors []error) { + value := v.(string) + validType := []string{ + guardduty.ThreatIntelSetFormatTxt, + guardduty.ThreatIntelSetFormatStix, + guardduty.ThreatIntelSetFormatOtxCsv, + guardduty.ThreatIntelSetFormatAlienVault, + guardduty.ThreatIntelSetFormatProofPoint, + guardduty.ThreatIntelSetFormatFireEye, + } + for _, str := range validType { + if value == str { + return + } + } + errors = append(errors, fmt.Errorf("expected %s to be one of %v, got %s", k, validType, value)) + return +} + +func validateDynamoDbStreamSpec(d *schema.ResourceDiff) error { + enabled := d.Get("stream_enabled").(bool) + if enabled { + if v, ok := d.GetOk("stream_view_type"); ok { + value := v.(string) + if len(value) == 0 { + return errors.New("stream_view_type must be non-empty when stream_enabled = true") + } + return nil + } + return errors.New("stream_view_type is required when stream_enabled = true") + } + return nil +} + +func validateVpcEndpointType(v interface{}, k string) (ws []string, errors []error) { + return validateStringIn(ec2.VpcEndpointTypeGateway, ec2.VpcEndpointTypeInterface)(v, k) +} + +func validateStringIn(validValues ...string) schema.SchemaValidateFunc { + return func(v interface{}, k string) (ws []string, errors []error) { + value := v.(string) + for _, s := range validValues { + if value == s { + return + } + } + errors = append(errors, fmt.Errorf( + "%q contains an invalid value %q. Valid values are %q.", + k, value, validValues)) + return + } +} + +func validateAmazonSideAsn(v interface{}, k string) (ws []string, errors []error) { + value := v.(string) + + // http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateVpnGateway.html + asn, err := strconv.ParseInt(value, 10, 64) + if err != nil { + errors = append(errors, fmt.Errorf("%q (%q) must be a 64-bit integer", k, v)) + return + } + + if (asn < 64512) || (asn > 65534 && asn < 4200000000) || (asn > 4294967294) { + errors = append(errors, fmt.Errorf("%q (%q) must be in the range 64512 to 65534 or 4200000000 to 4294967294", k, v)) + } + return +} diff --git a/vendor/vendor.json b/vendor/vendor.json index 6622319d8..4da4a0692 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -261,756 +261,762 @@ "revisionTime": "2016-01-15T23:47:25Z" }, { - "checksumSHA1": "3qbWQO79tzfxr3IXc5P/l0XbVaI=", + "checksumSHA1": "3U3U5SzawV/N/rjwlntapRlgtWQ=", "path": "github.com/aws/aws-sdk-go/aws", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "DtuTqKH29YnLjrIJkRYX0HQtXY0=", "path": "github.com/aws/aws-sdk-go/aws/arn", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "Y9W+4GimK4Fuxq+vyIskVYFRnX4=", "path": "github.com/aws/aws-sdk-go/aws/awserr", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "yyYr41HZ1Aq0hWc3J5ijXwYEcac=", "path": "github.com/aws/aws-sdk-go/aws/awsutil", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "9nE/FjZ4pYrT883KtV2/aI+Gayo=", "path": "github.com/aws/aws-sdk-go/aws/client", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "ieAJ+Cvp/PKv1LpUEnUXpc3OI6E=", "path": "github.com/aws/aws-sdk-go/aws/client/metadata", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "7/8j/q0TWtOgXyvEcv4B2Dhl00o=", "path": "github.com/aws/aws-sdk-go/aws/corehandlers", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "Y+cPwQL0dZMyqp3wI+KJWmA9KQ8=", "path": "github.com/aws/aws-sdk-go/aws/credentials", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "u3GOAJLmdvbuNUeUEcZSEAOeL/0=", "path": "github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "NUJUTWlc1sV8b7WjfiYc4JZbXl0=", "path": "github.com/aws/aws-sdk-go/aws/credentials/endpointcreds", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "JEYqmF83O5n5bHkupAzA6STm0no=", "path": "github.com/aws/aws-sdk-go/aws/credentials/stscreds", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "OnU/n7R33oYXiB4SAGd5pK7I0Bs=", "path": "github.com/aws/aws-sdk-go/aws/defaults", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "/EXbk/z2TWjWc1Hvb4QYs3Wmhb8=", "path": "github.com/aws/aws-sdk-go/aws/ec2metadata", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "QzwFDjKBl8XUPtQ3Sgd7+rRestk=", + "checksumSHA1": "CJNEM69cgdO9tZi6c5Lj07jI+dk=", "path": "github.com/aws/aws-sdk-go/aws/endpoints", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "657ICMok3uC5dm5e9bKcVF2HaxE=", "path": "github.com/aws/aws-sdk-go/aws/request", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "HcGL4e6Uep4/80eCUI5xkcWjpQ0=", + "checksumSHA1": "DIn7B+oP++/nw603OB95fmupzu8=", "path": "github.com/aws/aws-sdk-go/aws/session", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "iU00ZjhAml/13g+1YXT21IqoXqg=", "path": "github.com/aws/aws-sdk-go/aws/signer/v4", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "04ypv4x12l4q0TksA1zEVsmgpvw=", "path": "github.com/aws/aws-sdk-go/internal/shareddefaults", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "NStHCXEvYqG72GknZyv1jaKaeH0=", "path": "github.com/aws/aws-sdk-go/private/protocol", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "1QmQ3FqV37w0Zi44qv8pA1GeR0A=", "path": "github.com/aws/aws-sdk-go/private/protocol/ec2query", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "yHfT5DTbeCLs4NE2Rgnqrhe15ls=", "path": "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "R00RL5jJXRYq1iiK1+PGvMfvXyM=", "path": "github.com/aws/aws-sdk-go/private/protocol/jsonrpc", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "ZqY5RWavBLWTo6j9xqdyBEaNFRk=", "path": "github.com/aws/aws-sdk-go/private/protocol/query", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "9V1PvtFQ9MObZTc3sa86WcuOtOU=", "path": "github.com/aws/aws-sdk-go/private/protocol/query/queryutil", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "pkeoOfZpHRvFG/AOZeTf0lwtsFg=", "path": "github.com/aws/aws-sdk-go/private/protocol/rest", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "Rpu8KBtHZgvhkwHxUfaky+qW+G4=", "path": "github.com/aws/aws-sdk-go/private/protocol/restjson", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "ODo+ko8D6unAxZuN1jGzMcN4QCc=", "path": "github.com/aws/aws-sdk-go/private/protocol/restxml", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "0qYPUga28aQVkxZgBR3Z86AbGUQ=", "path": "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "F6mth+G7dXN1GI+nktaGo8Lx8aE=", "path": "github.com/aws/aws-sdk-go/private/signer/v2", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "vnYDXA1NxJ7Hu+DMfXNk1UnmkWg=", + "checksumSHA1": "Ih4il2OyFyaSuoMv6hhvPUN8Gn4=", "path": "github.com/aws/aws-sdk-go/service/acm", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "DPl/OkvEUjrd+XKqX73l6nUNw3U=", "path": "github.com/aws/aws-sdk-go/service/apigateway", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "CW7pEkPsi8CNAAP4OQIblGUHgis=", + "checksumSHA1": "edPLU/Lb9QzcB2tFBgkKvF/WdY8=", "path": "github.com/aws/aws-sdk-go/service/applicationautoscaling", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "oBXDw1zQTfxcKsK3ZjtKcS7gBLI=", + "checksumSHA1": "wrOVdI/6ZTZ/H0Kxjh3bBEZtVzk=", "path": "github.com/aws/aws-sdk-go/service/athena", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "ITAwWyJp4t9AGfUXm9M3pFWTHVA=", + "checksumSHA1": "q4j8cW2zBulU/xx16A8/NxexXKE=", "path": "github.com/aws/aws-sdk-go/service/autoscaling", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "Zz8qI6RloveM1zrXAglLxJZT1ZA=", + "checksumSHA1": "P5gDOoqIdVjMU77e5Nhy48QLpS4=", "path": "github.com/aws/aws-sdk-go/service/batch", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "6gM3CZZgiB0JvS7EK1c31Q8L09U=", + "checksumSHA1": "EoaTzMilW+OIi5eETJUpd+giyTc=", + "path": "github.com/aws/aws-sdk-go/service/cloud9", + "revision": "e42d74a2cc63cbef14cc85399ad04181da129ded", + "revisionTime": "2018-02-12T21:54:04Z" + }, + { + "checksumSHA1": "yuFNzmUIWppfji/Xx6Aao0EE4cY=", "path": "github.com/aws/aws-sdk-go/service/cloudformation", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "T80IDetBz1hqJpq5Wqmx3MwCh8w=", + "checksumSHA1": "0nPnGWlegQG7bn/iIIfjJFoljyU=", "path": "github.com/aws/aws-sdk-go/service/cloudfront", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "bYrI9mxspB0xDFZEy3OIfWuez5g=", + "checksumSHA1": "VTc9UOMqIwuhWJ6oGQDsMkTW09I=", "path": "github.com/aws/aws-sdk-go/service/cloudtrail", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "oB+M+kOmYG28V0PuI75IF6E+/w8=", + "checksumSHA1": "ItXljM1vG/0goVleodRgbfYgyxQ=", "path": "github.com/aws/aws-sdk-go/service/cloudwatch", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "Nc3vXlV7s309PprScYpRDPQWeDQ=", + "checksumSHA1": "5lmoDceAWT0vrUTf3wKAaZRXwbg=", "path": "github.com/aws/aws-sdk-go/service/cloudwatchevents", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "bPh7NF3mLpGMV0rIakolMPHqMyw=", + "checksumSHA1": "HHct8eQygkIJ+vrQpKhB0IEDymQ=", "path": "github.com/aws/aws-sdk-go/service/cloudwatchlogs", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "GyuNxzdK9oSY6jMfmoqNx6tuCrk=", + "checksumSHA1": "22txzj8ItH1+lzyyLlFz/vtRV2I=", "path": "github.com/aws/aws-sdk-go/service/codebuild", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "7nW1Ho2X3RcUU8FaFBhJIUeuDNw=", + "checksumSHA1": "RRQCgy4s3k6CJQae3ueLepkK4PI=", "path": "github.com/aws/aws-sdk-go/service/codecommit", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "+petAU2sPfykSoVBAitmGxvGOlw=", + "checksumSHA1": "wvXGTyWPjtgC4OjXb80IxYdpqmE=", "path": "github.com/aws/aws-sdk-go/service/codedeploy", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "LKw7fnNwq17Eqy0clzS/LK89vS4=", + "checksumSHA1": "V1Y05qfjN4xOCy+GnPWSCqIeZb4=", "path": "github.com/aws/aws-sdk-go/service/codepipeline", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "aXh1KIbNX+g+tH+lh3pk++9lm3k=", + "checksumSHA1": "Ju8efcqcIgggB7N8io/as9ERVdc=", "path": "github.com/aws/aws-sdk-go/service/cognitoidentity", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "IWi9xZz+OncotjM/vJ87Iffg2Qk=", + "checksumSHA1": "Q4nvxp3mwkpNITKAPWGk5uFjLl8=", "path": "github.com/aws/aws-sdk-go/service/cognitoidentityprovider", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "56F6Stg8hQ1kxiAEzqB0TDctW9k=", + "checksumSHA1": "kt8wGmAKAo+iC1dR/g9iJn46nDo=", "path": "github.com/aws/aws-sdk-go/service/configservice", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "hYCwLQdIjHj8rMHLGVyUVhecI4s=", + "checksumSHA1": "45sgs1urdRiXDb35iuAhQPzl0e4=", "path": "github.com/aws/aws-sdk-go/service/databasemigrationservice", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "uGQnGyJS3cyOFwZA51eilwLVgtk=", + "checksumSHA1": "EaEfUc3nt1sS/cdfSYGq+JtSVKs=", "path": "github.com/aws/aws-sdk-go/service/devicefarm", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "6g94rUHAgjcqMMTtMqKUbLU37wY=", + "checksumSHA1": "LRdh5oXUe2yURIk5FDH6ceEZGMo=", "path": "github.com/aws/aws-sdk-go/service/directconnect", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "edM36y+5lmI7Hne0/38qapLzGO4=", + "checksumSHA1": "a7itHIwtyXtOGQ0KsiefmsHgu4s=", "path": "github.com/aws/aws-sdk-go/service/directoryservice", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "0TXXUPjrbOCHpX555B6suH36Nnk=", + "checksumSHA1": "8JiVrxMjFSdBOfVWCy1QU+JzB08=", "path": "github.com/aws/aws-sdk-go/service/dynamodb", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "4igS6faf4hrhDj6Jj9ErVcN1qKo=", + "checksumSHA1": "Sj6NTKuc/6+amv4RsMqrZkvkvpc=", "path": "github.com/aws/aws-sdk-go/service/ec2", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "uEv9kkBsVIjg7K4+Y8TVlU0Cc8o=", + "checksumSHA1": "kEgV0dSAj3M3M1waEkC27JS7VnU=", "path": "github.com/aws/aws-sdk-go/service/ecr", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "3B3RtWG7IY9qhFhWGEwroeMxnPI=", + "checksumSHA1": "WeevJuELH3BFpUQJC4cqZODz4c0=", "path": "github.com/aws/aws-sdk-go/service/ecs", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "eoM9nF5iVMbuGOmkY33d19aHt8Y=", + "checksumSHA1": "4XmkiujbDA68x39KGgURR1+uPiQ=", "path": "github.com/aws/aws-sdk-go/service/efs", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "dU5MPXUUOYD/E9sNncpFZ/U86Cw=", + "checksumSHA1": "o73xT1zFo3C+giQwKcRj02OAZhM=", "path": "github.com/aws/aws-sdk-go/service/elasticache", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "pj8mBWT3HE0Iid6HSmhw7lmyZDU=", + "checksumSHA1": "1U0w3+W7kvH901jSftehitrRHCg=", "path": "github.com/aws/aws-sdk-go/service/elasticbeanstalk", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "VYGtTaSiajfKOVTbi9/SNmbiIac=", "path": "github.com/aws/aws-sdk-go/service/elasticsearchservice", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "SZ7yLDZ6RvMhpWe0Goyem64kgyA=", "path": "github.com/aws/aws-sdk-go/service/elastictranscoder", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "qq+fTzQmiq0tCYK/90A0s5pVurM=", + "checksumSHA1": "iRI32eUYQfumh0LybzZ+5iWV3jE=", "path": "github.com/aws/aws-sdk-go/service/elb", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "E9GRArYlztF98yBDHBTvdD+NIkc=", + "checksumSHA1": "SvXeFtI3yR9UmamKEYKY/diBWDY=", "path": "github.com/aws/aws-sdk-go/service/elbv2", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "NbkH6F+792jQ7BW4lGCb+vJVw58=", + "checksumSHA1": "5x77vwxya74Qu5YEq75/lhyYkqY=", "path": "github.com/aws/aws-sdk-go/service/emr", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "5btWHj2fZrPc/zfYdJLPaOcivxI=", + "checksumSHA1": "t7BmfpJqmQ7Y0EYcj/CR9Aup9go=", "path": "github.com/aws/aws-sdk-go/service/firehose", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "Rodm1XwZ9Ncah1NLHep0behQpXg=", + "checksumSHA1": "iHyMxl+rkonWCTlysoO4ISkumCA=", "path": "github.com/aws/aws-sdk-go/service/gamelift", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "oDoGvSfmO2Z099ixV2HXn+SDeHE=", "path": "github.com/aws/aws-sdk-go/service/glacier", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "mJb6yp7wP+gyUQY+CFbbRkWEv1U=", + "checksumSHA1": "M01rYrldc6zwbpAeaLX5UJ6b25g=", "path": "github.com/aws/aws-sdk-go/service/glue", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "AFJ17uATPFQ6oUrtN5qZ+DEDncw=", + "checksumSHA1": "L+3qjFRMMQHkpY+Wg4PAtaN/lrg=", "path": "github.com/aws/aws-sdk-go/service/guardduty", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "oZaxMqnwl2rA+V/W0tJ3uownORI=", + "checksumSHA1": "I8CWKTI9BLrIF9ZKf6SpWhG+LXM=", "path": "github.com/aws/aws-sdk-go/service/iam", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "nMdRXIfhgvEKBHnLX61Ze3EUJWU=", + "checksumSHA1": "45gdBZuM7PWLQzWuBasytvZZpK0=", "path": "github.com/aws/aws-sdk-go/service/inspector", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "pZwCI4DpP5hcMa/ItKhiwo/ukd0=", "path": "github.com/aws/aws-sdk-go/service/iot", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "IoSyRZhlL0petrB28nXk5jKM9YA=", + "checksumSHA1": "DfzNze8B3ME2tV3TtXP7eQXUjD0=", "path": "github.com/aws/aws-sdk-go/service/kinesis", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "JOfgA6YehzwZ/4Mgh+3lY/+Gz3E=", + "checksumSHA1": "P132J6pP1Z5ddG/8UqeuQFmeei4=", "path": "github.com/aws/aws-sdk-go/service/kms", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "ybcV5s7X4jsDPiBy1fj1Hlm0hrc=", + "checksumSHA1": "lAgaKbwpyflY7+t4V3EeH18RwgA=", "path": "github.com/aws/aws-sdk-go/service/lambda", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "wjs9YBsHx0YQH0zKBA7Ibd1UV5Y=", + "checksumSHA1": "4yGrGQatXcr8eGRWUoBg3KqAHK8=", "path": "github.com/aws/aws-sdk-go/service/lightsail", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "QjiIL8LrlhwrQw8FboF+wMNvUF0=", + "checksumSHA1": "kEZmPI9Y9+05SWuRCdtt+QkqwLI=", "path": "github.com/aws/aws-sdk-go/service/mediastore", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "ynB7Flcudp0VOqBVKZJ+23DtLHU=", + "checksumSHA1": "3QV+ZVkQ8g8JkNkftwHaOCevyqM=", "path": "github.com/aws/aws-sdk-go/service/mq", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "fpsBu+F79ktlLRwal1GugVMUDo0=", + "checksumSHA1": "QuOSKqV8nFvvzN4wcsToltMFI1Y=", "path": "github.com/aws/aws-sdk-go/service/opsworks", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "+crsKabDoPzW0xaccqXP9T5h41s=", + "checksumSHA1": "9AwJ02ip5HmAz2PtMTOGHX0U984=", "path": "github.com/aws/aws-sdk-go/service/rds", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "vP1FcccUZbuUlin7ME89w1GVJtA=", + "checksumSHA1": "Pj9IgrR635tqA0YamoSC1GaHeao=", "path": "github.com/aws/aws-sdk-go/service/redshift", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "fgSXmayOZRgur/41Gp1tFvH0GGg=", + "checksumSHA1": "EaDeOWEVUQ21y3cFDyDuZPaK470=", "path": "github.com/aws/aws-sdk-go/service/route53", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "sCaHoPWsJXRHFbilUKwN71qFTOI=", + "checksumSHA1": "fXQn3V0ZRBZpTXUEHl4/yOjR4mQ=", "path": "github.com/aws/aws-sdk-go/service/s3", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "QZU8vR9cOIenYiH+Ywl4Gzfnlp0=", + "checksumSHA1": "rtKbVK1uZVIdkTR7yJIhAte97XQ=", "path": "github.com/aws/aws-sdk-go/service/servicecatalog", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "dk6ebvA0EYgdPyc5HPKLBPEtsm4=", + "checksumSHA1": "erg+1BSdtfOk1KFXmnJ2bFHJpBY=", "path": "github.com/aws/aws-sdk-go/service/servicediscovery", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "Ex1Ma0SFGpqeNuPbeXZtsliZ3zo=", + "checksumSHA1": "8LeTeLzNs+0vNxTeOjMCtSrSwqo=", "path": "github.com/aws/aws-sdk-go/service/ses", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "maVXeR3WDAkONlzf04e4mDgCYxo=", + "checksumSHA1": "u3AMeFxtHGtiJCxDeIm4dAwzBIc=", "path": "github.com/aws/aws-sdk-go/service/sfn", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "B3CgAFSREebpsFoFOo4vrQ6u04w=", "path": "github.com/aws/aws-sdk-go/service/simpledb", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "FfY8w4DM8XIULdRnFhd3Um8Mj8c=", + "checksumSHA1": "9Qj8yLl67q9uxBUCc0PT20YiP1M=", "path": "github.com/aws/aws-sdk-go/service/sns", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "Wx189wAbIhWChx4kVbvsyqKMF4U=", + "checksumSHA1": "XmEJe50M8MddNEkwbZoC+YvRjgg=", "path": "github.com/aws/aws-sdk-go/service/sqs", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "Ka9/jYIzdeR4/b8IHXigYe5LvZk=", + "checksumSHA1": "jl3IYnqe0OFL2bemYhF5tLOwvvs=", "path": "github.com/aws/aws-sdk-go/service/ssm", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "W1oFtpaT4TWIIJrAvFcn/XdcT7g=", + "checksumSHA1": "x7HCNPJnQi+4P6FKpBTY1hm3m6o=", "path": "github.com/aws/aws-sdk-go/service/sts", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "on6d7Hydx2bM9jkFOf1JZcZZgeY=", + "checksumSHA1": "ZKwkpd+UVwEKTOMhsbNpfXGUIvI=", "path": "github.com/aws/aws-sdk-go/service/waf", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { - "checksumSHA1": "rHqjsOndIR82gX5mSKybaRWf3UY=", + "checksumSHA1": "Uk2A+lTH7aAlQlkj7WIm2RFZV8A=", "path": "github.com/aws/aws-sdk-go/service/wafregional", - "revision": "1b176c5c6b57adb03bb982c21930e708ebca5a77", - "revisionTime": "2018-01-26T22:46:47Z", - "version": "v1.12.70", - "versionExact": "v1.12.70" + "revision": "de28909e9837364f0368d94ddcba085c57af3c12", + "revisionTime": "2018-02-08T20:25:49Z", + "version": "v1.12.73", + "versionExact": "v1.12.73" }, { "checksumSHA1": "usT4LCSQItkFvFOQT7cBlkCuGaE=", @@ -2122,20 +2128,20 @@ "revisionTime": "2016-09-27T10:08:44Z" }, { - "checksumSHA1": "5ZT/lsGfrt4BKyi2mLOKg4OUwnI=", + "checksumSHA1": "5XyfTtyMIFp/q/Xz3y0LgbhCnfQ=", "path": "github.com/terraform-providers/terraform-provider-aws", - "revision": "8937a3a4e9d77c8089cf147861b604e3a2d8cf7e", - "revisionTime": "2018-01-29T14:56:01Z", - "version": "v1.8.0", - "versionExact": "v1.8.0" + "revision": "5293a0e3b1366ee16d8742b9b2354781a79bfbd9", + "revisionTime": "2018-02-09T20:49:46Z", + "version": "v1.9.0", + "versionExact": "v1.9.0" }, { - "checksumSHA1": "14tQONjMFJtu11KjPPHCoVwjUts=", + "checksumSHA1": "YM2nvPlpKTnSeZ0bdpMdVgpy/XU=", "path": "github.com/terraform-providers/terraform-provider-aws/aws", - "revision": "8937a3a4e9d77c8089cf147861b604e3a2d8cf7e", - "revisionTime": "2018-01-29T14:56:01Z", - "version": "v1.8.0", - "versionExact": "v1.8.0" + "revision": "5293a0e3b1366ee16d8742b9b2354781a79bfbd9", + "revisionTime": "2018-02-09T20:49:46Z", + "version": "v1.9.0", + "versionExact": "v1.9.0" }, { "checksumSHA1": "7WDq0VsOJmABPUCEvfuerEp7mBg=", From 7475ce669ea18f9cda873ff5845a313d8126f68d Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Tue, 13 Feb 2018 11:50:42 -0500 Subject: [PATCH 030/156] Update CHANGELOG for #17216 --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f298aa09a..17cd4cfdd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## 0.11.4 (Unreleased) +IMPROVEMENTS: + +* backend/s3: add support for the cn-northwest-1 region [GH-17216] + BUG FIXES: * helper/schema: Prevent crash on removal of computed field in CustomizeDiff [GH-17261] From 52f6abf47b80093f7ed996d5a93c8aab4acbc43f Mon Sep 17 00:00:00 2001 From: Joshua Carp Date: Tue, 13 Feb 2018 15:07:05 -0500 Subject: [PATCH 031/156] Document aws_route53_record importable (#17306) See https://github.com/hashicorp/terraform-website/issues/20 --- website/docs/import/importability.html.md | 1 + 1 file changed, 1 insertion(+) diff --git a/website/docs/import/importability.html.md b/website/docs/import/importability.html.md index b8e86d25e..b29ba82a4 100644 --- a/website/docs/import/importability.html.md +++ b/website/docs/import/importability.html.md @@ -88,6 +88,7 @@ To make a resource importable, please see the * aws_redshift_subnet_group * aws_route53_delegation_set * aws_route53_health_check +* aws_route53_record * aws_route53_zone * aws_route_table * aws_s3_bucket From 848375b9a6507b1ab5278a86ff8bd4f441b3d67a Mon Sep 17 00:00:00 2001 From: Nolan Davidson Date: Tue, 13 Feb 2018 15:11:59 -0500 Subject: [PATCH 032/156] [provisioner-habitat] Allow custom service name (#17196) This change allows the Habitat supervisor service name to be configurable. Currently it is hard coded to `hab-supervisor`. Signed-off-by: Nolan Davidson --- .../provisioners/habitat/resource_provisioner.go | 15 +++++++++++---- website/docs/provisioners/habitat.html.markdown | 1 + 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/builtin/provisioners/habitat/resource_provisioner.go b/builtin/provisioners/habitat/resource_provisioner.go index 2db068bf9..14a98db9f 100644 --- a/builtin/provisioners/habitat/resource_provisioner.go +++ b/builtin/provisioners/habitat/resource_provisioner.go @@ -54,6 +54,7 @@ type provisioner struct { SkipInstall bool UseSudo bool ServiceType string + ServiceName string URL string Channel string Events string @@ -79,6 +80,11 @@ func Provisioner() terraform.ResourceProvisioner { Optional: true, Default: "systemd", }, + "service_name": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + Default: "hab-supervisor", + }, "use_sudo": &schema.Schema{ Type: schema.TypeBool, Optional: true, @@ -344,6 +350,7 @@ func decodeConfig(d *schema.ResourceData) (*provisioner, error) { Services: getServices(d.Get("service").(*schema.Set).List()), UseSudo: d.Get("use_sudo").(bool), ServiceType: d.Get("service_type").(string), + ServiceName: d.Get("service_name").(string), RingKey: d.Get("ring_key").(string), RingKeyContent: d.Get("ring_key_content").(string), PermanentPeer: d.Get("permanent_peer").(bool), @@ -569,9 +576,9 @@ func (p *provisioner) startHabSystemd(o terraform.UIOutput, comm communicator.Co var command string if p.UseSudo { - command = fmt.Sprintf("sudo echo '%s' | sudo tee /etc/systemd/system/hab-supervisor.service > /dev/null", &buf) + command = fmt.Sprintf("sudo echo '%s' | sudo tee /etc/systemd/system/%s.service > /dev/null", &buf, p.ServiceName) } else { - command = fmt.Sprintf("echo '%s' | tee /etc/systemd/system/hab-supervisor.service > /dev/null", &buf) + command = fmt.Sprintf("echo '%s' | tee /etc/systemd/system/%s.service > /dev/null", &buf, p.ServiceName) } if err := p.runCommand(o, comm, command); err != nil { @@ -579,9 +586,9 @@ func (p *provisioner) startHabSystemd(o terraform.UIOutput, comm communicator.Co } if p.UseSudo { - command = fmt.Sprintf("sudo systemctl start hab-supervisor") + command = fmt.Sprintf("sudo systemctl start %s", p.ServiceName) } else { - command = fmt.Sprintf("systemctl start hab-supervisor") + command = fmt.Sprintf("systemctl start %s", p.ServiceName) } return p.runCommand(o, comm, command) } diff --git a/website/docs/provisioners/habitat.html.markdown b/website/docs/provisioners/habitat.html.markdown index 23c084086..55ac2232b 100644 --- a/website/docs/provisioners/habitat.html.markdown +++ b/website/docs/provisioners/habitat.html.markdown @@ -49,6 +49,7 @@ There are 2 configuration levels, `supervisor` and `service`. Configuration pla * `version (string)` - (Optional) The Habitat version to install on the remote machine. If not specified, the latest available version is used. * `use_sudo (bool)` - (Optional) Use `sudo` when executing remote commands. Required when the user specified in the `connection` block is not `root`. (Defaults to `true`) * `service_type (string)` - (Optional) Method used to run the Habitat supervisor. Valid options are `unmanaged` and `systemd`. (Defaults to `systemd`) +* `service_name (string)` - (Optional) The name of the Habitat supervisor service, if using an init system such as `systemd`. (Defaults to `hab-supervisor`) * `peer (string)` - (Optional) IP or FQDN of a supervisor instance to peer with. (Defaults to none) * `permanent_peer (bool)` - (Optional) Marks this supervisor as a permanent peer. (Defaults to false) * `listen_gossip (string)` - (Optional) The listen address for the gossip system (Defaults to 0.0.0.0:9638) From f43e5928495098631c2a190b5d4de19adcdbc727 Mon Sep 17 00:00:00 2001 From: Nolan Davidson Date: Tue, 13 Feb 2018 15:13:22 -0500 Subject: [PATCH 033/156] [provisioner-habitat] Detect if hab user exists (#17195) Currently the provisioner will fail if the `hab` user already exists on the target system. This adds a check to see if we need to create the user before trying to add it. Fixes #17159 Signed-off-by: Nolan Davidson --- .../habitat/resource_provisioner.go | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/builtin/provisioners/habitat/resource_provisioner.go b/builtin/provisioners/habitat/resource_provisioner.go index 14a98db9f..f9d47ff07 100644 --- a/builtin/provisioners/habitat/resource_provisioner.go +++ b/builtin/provisioners/habitat/resource_provisioner.go @@ -594,7 +594,8 @@ func (p *provisioner) startHabSystemd(o terraform.UIOutput, comm communicator.Co } func (p *provisioner) createHabUser(o terraform.UIOutput, comm communicator.Communicator) error { - // Create the hab user + addUser := false + // Install busybox to get us the user tools we need command := fmt.Sprintf("env HAB_NONINTERACTIVE=true hab install core/busybox") if p.UseSudo { command = fmt.Sprintf("sudo %s", command) @@ -603,11 +604,25 @@ func (p *provisioner) createHabUser(o terraform.UIOutput, comm communicator.Comm return err } - command = fmt.Sprintf("hab pkg exec core/busybox adduser -D -g \"\" hab") + // Check for existing hab user + command = fmt.Sprintf("hab pkg exec core/busybox id hab") if p.UseSudo { command = fmt.Sprintf("sudo %s", command) } - return p.runCommand(o, comm, command) + if err := p.runCommand(o, comm, command); err != nil { + o.Output("No existing hab user detected, creating...") + addUser = true + } + + if addUser { + command = fmt.Sprintf("hab pkg exec core/busybox adduser -D -g \"\" hab") + if p.UseSudo { + command = fmt.Sprintf("sudo %s", command) + } + return p.runCommand(o, comm, command) + } + + return nil } func (p *provisioner) startHabService(o terraform.UIOutput, comm communicator.Communicator, service Service) error { From c2306be0fa7cd33699e70e21ef2ed45e2dbd4bd5 Mon Sep 17 00:00:00 2001 From: Clint Date: Tue, 13 Feb 2018 14:15:24 -0600 Subject: [PATCH 034/156] Update CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 17cd4cfdd..c40bedef6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,8 @@ IMPROVEMENTS: * backend/s3: add support for the cn-northwest-1 region [GH-17216] +* provisioner/habitat: Detect if hab user exists and only create if necessary [GH-17195] +* provisioner/habitat: Allow custom service name [GH-17196] BUG FIXES: From 5576b889abf2d3ce027394f9bf1213901f2424e6 Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Wed, 14 Feb 2018 12:02:45 -0500 Subject: [PATCH 035/156] docs/import: Remove out of date listing of importable resources and note where to find the information --- website/docs/import/importability.html.md | 267 +--------------------- 1 file changed, 4 insertions(+), 263 deletions(-) diff --git a/website/docs/import/importability.html.md b/website/docs/import/importability.html.md index b29ba82a4..dde7cb682 100644 --- a/website/docs/import/importability.html.md +++ b/website/docs/import/importability.html.md @@ -11,8 +11,10 @@ description: |- Each resource in Terraform must implement some basic logic to become importable. As a result, not all Terraform resources are currently importable. -If you find a resource that you want to import and Terraform reports -that it isn't importable, please report an issue. +For those resources that support import, they are documented at the bottom of +each resource documentation page, under the Import heading. If you find a +resource that you want to import and Terraform reports that it is not +importable, please report an issue in the relevant provider repository. Converting a resource to be importable is also relatively simple, so if you're interested in contributing that functionality, the Terraform team @@ -20,264 +22,3 @@ would be grateful. To make a resource importable, please see the [plugin documentation on writing a resource](/docs/plugins/provider.html). - -## Currently Available to Import - -### AWS - -* aws_api_gateway_account -* aws_api_gateway_api_key -* aws_autoscaling_group -* aws_cloudfront_distribution -* aws_cloudfront_origin_access_identity -* aws_cloudtrail -* aws_cloudwatch_event_rule -* aws_cloudwatch_log_group -* aws_cloudwatch_metric_alarm -* aws_customer_gateway -* aws_db_event_subscription -* aws_db_instance -* aws_db_option_group -* aws_db_parameter_group -* aws_db_security_group -* aws_db_subnet_group -* aws_dms_certificate -* aws_dms_endpoint -* aws_dms_replication_instance -* aws_dms_replication_subnet_group -* aws_dms_replication_task -* aws_dynamodb_table -* aws_ebs_volume -* aws_ecr_repository -* aws_efs_file_system -* aws_efs_mount_target -* aws_eip -* aws_elastic_beanstalk_application -* aws_elastic_beanstalk_environment -* aws_elasticache_cluster -* aws_elasticache_parameter_group -* aws_elasticache_subnet_group -* aws_elb -* aws_flow_log -* aws_glacier_vault -* aws_iam_account_password_policy -* aws_iam_group -* aws_iam_instance_profile -* aws_iam_role -* aws_iam_saml_provider -* aws_iam_server_certificate -* aws_iam_user -* aws_instance -* aws_internet_gateway -* aws_key_pair -* aws_kms_key -* aws_lambda_function -* aws_launch_configuration -* aws_nat_gateway -* aws_network_acl -* aws_network_interface -* aws_opsworks_custom_layer -* aws_opsworks_stack -* aws_placement_group -* aws_rds_cluster -* aws_rds_cluster_instance -* aws_rds_cluster_parameter_group -* aws_redshift_cluster -* aws_redshift_parameter_group -* aws_redshift_security_group -* aws_redshift_subnet_group -* aws_route53_delegation_set -* aws_route53_health_check -* aws_route53_record -* aws_route53_zone -* aws_route_table -* aws_s3_bucket -* aws_security_group -* aws_ses_domain_identity -* aws_ses_receipt_filter -* aws_ses_receipt_rule_set -* aws_simpledb_domain -* aws_sns_topic -* aws_sns_topic_subscription -* aws_sqs_queue -* aws_subnet -* aws_vpc -* aws_vpc_dhcp_options -* aws_vpc_endpoint -* aws_vpc_peering_connection -* aws_vpn_connection -* aws_vpn_gateway - -### Azure (Resource Manager) - -* azurerm_availability_set -* azurerm_cdn_endpoint -* azurerm_cdn_profile -* azurerm_container_registry -* azurerm_dns_a_record -* azurerm_dns_aaaa_record -* azurerm_dns_cname_record -* azurerm_dns_mx_record -* azurerm_dns_ns_record -* azurerm_dns_srv_record -* azurerm_dns_txt_record -* azurerm_dns_zone -* azurerm_eventhub -* azurerm_eventhub_authorization_rule -* azurerm_eventhub_consumer_group -* azurerm_eventhub_namespace -* azurerm_express_route_circuit -* azurerm_loadbalancer -* azurerm_loadbalancer_backend_address_pool -* azurerm_loadbalancer_nat_pool -* azurerm_loadbalancer_nat_rule -* azurerm_loadbalancer_probe -* azurerm_loadbalancer_rule -* azurerm_local_network_gateway -* azurerm_managed_disk -* azurerm_network_interface -* azurerm_network_security_group -* azurerm_network_security_rule -* azurerm_public_ip -* azurerm_resource_group -* azurerm_route -* azurerm_route_table -* azurerm_servicebus_namespace -* azurerm_servicebus_subscription -* azurerm_servicebus_topic -* azurerm_sql_firewall_rule -* azurerm_sql_server -* azurerm_storage_account -* azurerm_subnet -* azurerm_traffic_manager_endpoint -* azurerm_traffic_manager_profile -* azurerm_virtual_machine -* azurerm_virtual_machine_extension -* azurerm_virtual_machine_scale_set -* azurerm_virtual_network -* azurerm_virtual_network_peering - -### Circonus - -* circonus_check -* circonus_contact_group - -### DigitalOcean - -* digitalocean_domain -* digitalocean_droplet -* digitalocean_floating_ip -* digitalocean_ssh_key -* digitalocean_tag -* digitalocean_volume -### Dyn - -* dyn_record - -### Fastly - -* fastly_service_v1 - -### Github - -* github_branch_protection -* github_issue_label -* github_membership -* github_repository -* github_repository_collaborator -* github_team -* github_team_membership -* github_team_repository - -### Google - -* google_bigquery_dataset -* google_bigquery_table -* google_compute_address -* google_compute_autoscaler -* google_compute_backend_service -* google_compute_disk -* google_compute_firewall -* google_compute_forwarding_rule -* google_compute_global_address -* google_compute_http_health_check -* google_compute_instance_group_manager -* google_compute_instance_template -* google_compute_network -* google_compute_route -* google_compute_router_interface -* google_compute_router_peer -* google_compute_router -* google_compute_target_pool -* google_dns_managed_zone -* google_project -* google_sql_database_instance -* google_sql_database -* google_sql_user -* google_storage_bucket - -### Heroku - -* heroku_app -* heroku_addon -* heroku_space -* heroku_pipeline -* heroku_pipeline_coupling - -### OpenStack - -* openstack_blockstorage_volume_v1 -* openstack_blockstorage_volume_v2 -* openstack_compute_floatingip_v2 -* openstack_compute_keypair_v2 -* openstack_compute_secgroup_v2 -* openstack_compute_servergroup_v2 -* openstack_fw_firewall_v1 -* openstack_fw_policy_v1 -* openstack_fw_rule_v1 -* openstack_lb_member_v1 -* openstack_lb_monitor_v1 -* openstack_lb_pool_v1 -* openstack_lb_vip_v1 -* openstack_networking_floatingip_v2 -* openstack_networking_network_v2 -* openstack_networking_port_v2 -* openstack_networking_secgroup_rule_v2 -* openstack_networking_secgroup_v2 -* openstack_networking_subnet_v2 - -### OPC (Oracle Public Cloud) - -* opc_compute_acl -* opc_compute_image_list -* opc_compute_instance -* opc_compute_ip_address_association -* opc_compute_ip_address_prefix_set -* opc_compute_ip_address_reservation -* opc_compute_ip_association -* opc_compute_ip_network_exchange -* opc_compute_ip_network -* opc_compute_ip_reservation -* opc_compute_route -* opc_compute_sec_rule -* opc_compute_security_application -* opc_compute_security_association -* opc_compute_security_ip_list -* opc_compute_security_list -* opc_compute_security_protocol -* opc_compute_security_rule -* opc_compute_ssh_key -* opc_compute_storage_volume_snapshot -* opc_compute_storage_volume - -### PostgreSQL - -* postgresql_database - -### Triton - -* triton_key -* triton_firewall_rule -* triton_vlan -* triton_fabric -* triton_machine From 1a68fdb4f6144ffbdeb9959800e2a25f64a33c67 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Tue, 13 Feb 2018 19:27:56 -0500 Subject: [PATCH 036/156] add support for ssh host key checking Add `host_key` and `bastion_host_key` fields to the ssh communicator config for strict host key checking. Both fields expect the contents of an openssh formated public key. This key can either be the remote host's public key, or the public key of the CA which signed the remote host certificate. Support for signed certificates is limited, because the provisioner usually connects to a remote host by ip address rather than hostname, so the certificate would need to be signed appropriately. Connecting via a hostname needs to currently be done through a secondary provisioner, like one attached to a null_resource. --- communicator/ssh/communicator.go | 8 +++-- communicator/ssh/provisioner.go | 51 +++++++++++++++++++++++++++----- terraform/eval_validate.go | 2 ++ 3 files changed, 52 insertions(+), 9 deletions(-) diff --git a/communicator/ssh/communicator.go b/communicator/ssh/communicator.go index 4ad67aefc..ba0efe482 100644 --- a/communicator/ssh/communicator.go +++ b/communicator/ssh/communicator.go @@ -117,11 +117,13 @@ func (c *Communicator) Connect(o terraform.UIOutput) (err error) { " User: %s\n"+ " Password: %t\n"+ " Private key: %t\n"+ - " SSH Agent: %t", + " SSH Agent: %t\n"+ + " Checking Host Key: %t", c.connInfo.Host, c.connInfo.User, c.connInfo.Password != "", c.connInfo.PrivateKey != "", c.connInfo.Agent, + c.connInfo.HostKey != "", )) if c.connInfo.BastionHost != "" { @@ -131,11 +133,13 @@ func (c *Communicator) Connect(o terraform.UIOutput) (err error) { " User: %s\n"+ " Password: %t\n"+ " Private key: %t\n"+ - " SSH Agent: %t", + " SSH Agent: %t\n"+ + " Checking Host Key: %t", c.connInfo.BastionHost, c.connInfo.BastionUser, c.connInfo.BastionPassword != "", c.connInfo.BastionPrivateKey != "", c.connInfo.Agent, + c.connInfo.BastionHostKey != "", )) } } diff --git a/communicator/ssh/provisioner.go b/communicator/ssh/provisioner.go index 69923017e..b6cb1b05f 100644 --- a/communicator/ssh/provisioner.go +++ b/communicator/ssh/provisioner.go @@ -18,6 +18,7 @@ import ( "github.com/xanzy/ssh-agent" "golang.org/x/crypto/ssh" "golang.org/x/crypto/ssh/agent" + "golang.org/x/crypto/ssh/knownhosts" ) const ( @@ -43,6 +44,7 @@ type connectionInfo struct { Password string PrivateKey string `mapstructure:"private_key"` Host string + HostKey string `mapstructure:"host_key"` Port int Agent bool Timeout string @@ -53,6 +55,7 @@ type connectionInfo struct { BastionPassword string `mapstructure:"bastion_password"` BastionPrivateKey string `mapstructure:"bastion_private_key"` BastionHost string `mapstructure:"bastion_host"` + BastionHostKey string `mapstructure:"bastion_host_key"` BastionPort int `mapstructure:"bastion_port"` AgentIdentity string `mapstructure:"agent_identity"` @@ -144,34 +147,38 @@ func prepareSSHConfig(connInfo *connectionInfo) (*sshConfig, error) { return nil, err } + host := fmt.Sprintf("%s:%d", connInfo.Host, connInfo.Port) + sshConf, err := buildSSHClientConfig(sshClientConfigOpts{ user: connInfo.User, + host: host, privateKey: connInfo.PrivateKey, password: connInfo.Password, + hostKey: connInfo.HostKey, sshAgent: sshAgent, }) if err != nil { return nil, err } + connectFunc := ConnectFunc("tcp", host) + var bastionConf *ssh.ClientConfig if connInfo.BastionHost != "" { + bastionHost := fmt.Sprintf("%s:%d", connInfo.BastionHost, connInfo.BastionPort) + bastionConf, err = buildSSHClientConfig(sshClientConfigOpts{ user: connInfo.BastionUser, + host: bastionHost, privateKey: connInfo.BastionPrivateKey, password: connInfo.BastionPassword, + hostKey: connInfo.HostKey, sshAgent: sshAgent, }) if err != nil { return nil, err } - } - host := fmt.Sprintf("%s:%d", connInfo.Host, connInfo.Port) - connectFunc := ConnectFunc("tcp", host) - - if bastionConf != nil { - bastionHost := fmt.Sprintf("%s:%d", connInfo.BastionHost, connInfo.BastionPort) connectFunc = BastionConnectFunc("tcp", bastionHost, bastionConf, "tcp", host) } @@ -188,11 +195,41 @@ type sshClientConfigOpts struct { password string sshAgent *sshAgent user string + host string + hostKey string } func buildSSHClientConfig(opts sshClientConfigOpts) (*ssh.ClientConfig, error) { + hkCallback := ssh.InsecureIgnoreHostKey() + + if opts.hostKey != "" { + // The knownhosts package only takes paths to files, but terraform + // generally wants to handle config data in-memory. Rather than making + // the known_hosts file an exception, write out the data to a temporary + // file to create the HostKeyCallback. + tf, err := ioutil.TempFile("", "tf-known_hosts") + if err != nil { + return nil, fmt.Errorf("failed to create temp known_hosts file: %s", err) + } + defer tf.Close() + defer os.RemoveAll(tf.Name()) + + // we mark this as a CA as well, but the host key fallback will still + // use it as a direct match if the remote host doesn't return a + // certificate. + if _, err := tf.WriteString(fmt.Sprintf("@cert-authority %s %s\n", opts.host, opts.hostKey)); err != nil { + return nil, fmt.Errorf("failed to write temp known_hosts file: %s", err) + } + tf.Sync() + + hkCallback, err = knownhosts.New(tf.Name()) + if err != nil { + return nil, err + } + } + conf := &ssh.ClientConfig{ - HostKeyCallback: ssh.InsecureIgnoreHostKey(), + HostKeyCallback: hkCallback, User: opts.user, } diff --git a/terraform/eval_validate.go b/terraform/eval_validate.go index e48af84ac..16bca3587 100644 --- a/terraform/eval_validate.go +++ b/terraform/eval_validate.go @@ -144,8 +144,10 @@ func (n *EvalValidateProvisioner) validateConnConfig(connConfig *ResourceConfig) // For type=ssh only (enforced in ssh communicator) PrivateKey interface{} `mapstructure:"private_key"` + HostKey interface{} `mapstructure:"host_key"` Agent interface{} `mapstructure:"agent"` BastionHost interface{} `mapstructure:"bastion_host"` + BastionHostKey interface{} `mapstructure:"bastion_host_key"` BastionPort interface{} `mapstructure:"bastion_port"` BastionUser interface{} `mapstructure:"bastion_user"` BastionPassword interface{} `mapstructure:"bastion_password"` From e3e6104007c57a11533a8effa8f66d34721d9cb1 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Tue, 13 Feb 2018 19:28:10 -0500 Subject: [PATCH 037/156] update x/crypt/ssh and add knownhosts package --- .../internal/chacha20/chacha_generic.go | 198 +++++++ .../golang.org/x/crypto/poly1305/poly1305.go | 33 ++ .../golang.org/x/crypto/poly1305/sum_amd64.go | 22 + .../golang.org/x/crypto/poly1305/sum_amd64.s | 125 ++++ .../golang.org/x/crypto/poly1305/sum_arm.go | 22 + vendor/golang.org/x/crypto/poly1305/sum_arm.s | 427 ++++++++++++++ .../golang.org/x/crypto/poly1305/sum_ref.go | 141 +++++ vendor/golang.org/x/crypto/ssh/certs.go | 6 +- vendor/golang.org/x/crypto/ssh/cipher.go | 244 ++++++-- vendor/golang.org/x/crypto/ssh/client_auth.go | 95 +-- vendor/golang.org/x/crypto/ssh/common.go | 16 +- .../x/crypto/ssh/knownhosts/knownhosts.go | 546 ++++++++++++++++++ vendor/golang.org/x/crypto/ssh/transport.go | 58 +- vendor/vendor.json | 26 +- 14 files changed, 1820 insertions(+), 139 deletions(-) create mode 100644 vendor/golang.org/x/crypto/internal/chacha20/chacha_generic.go create mode 100644 vendor/golang.org/x/crypto/poly1305/poly1305.go create mode 100644 vendor/golang.org/x/crypto/poly1305/sum_amd64.go create mode 100644 vendor/golang.org/x/crypto/poly1305/sum_amd64.s create mode 100644 vendor/golang.org/x/crypto/poly1305/sum_arm.go create mode 100644 vendor/golang.org/x/crypto/poly1305/sum_arm.s create mode 100644 vendor/golang.org/x/crypto/poly1305/sum_ref.go create mode 100644 vendor/golang.org/x/crypto/ssh/knownhosts/knownhosts.go diff --git a/vendor/golang.org/x/crypto/internal/chacha20/chacha_generic.go b/vendor/golang.org/x/crypto/internal/chacha20/chacha_generic.go new file mode 100644 index 000000000..0f8efdbaa --- /dev/null +++ b/vendor/golang.org/x/crypto/internal/chacha20/chacha_generic.go @@ -0,0 +1,198 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package ChaCha20 implements the core ChaCha20 function as specified in https://tools.ietf.org/html/rfc7539#section-2.3. +package chacha20 + +import "encoding/binary" + +const rounds = 20 + +// core applies the ChaCha20 core function to 16-byte input in, 32-byte key k, +// and 16-byte constant c, and puts the result into 64-byte array out. +func core(out *[64]byte, in *[16]byte, k *[32]byte) { + j0 := uint32(0x61707865) + j1 := uint32(0x3320646e) + j2 := uint32(0x79622d32) + j3 := uint32(0x6b206574) + j4 := binary.LittleEndian.Uint32(k[0:4]) + j5 := binary.LittleEndian.Uint32(k[4:8]) + j6 := binary.LittleEndian.Uint32(k[8:12]) + j7 := binary.LittleEndian.Uint32(k[12:16]) + j8 := binary.LittleEndian.Uint32(k[16:20]) + j9 := binary.LittleEndian.Uint32(k[20:24]) + j10 := binary.LittleEndian.Uint32(k[24:28]) + j11 := binary.LittleEndian.Uint32(k[28:32]) + j12 := binary.LittleEndian.Uint32(in[0:4]) + j13 := binary.LittleEndian.Uint32(in[4:8]) + j14 := binary.LittleEndian.Uint32(in[8:12]) + j15 := binary.LittleEndian.Uint32(in[12:16]) + + x0, x1, x2, x3, x4, x5, x6, x7 := j0, j1, j2, j3, j4, j5, j6, j7 + x8, x9, x10, x11, x12, x13, x14, x15 := j8, j9, j10, j11, j12, j13, j14, j15 + + for i := 0; i < rounds; i += 2 { + x0 += x4 + x12 ^= x0 + x12 = (x12 << 16) | (x12 >> (16)) + x8 += x12 + x4 ^= x8 + x4 = (x4 << 12) | (x4 >> (20)) + x0 += x4 + x12 ^= x0 + x12 = (x12 << 8) | (x12 >> (24)) + x8 += x12 + x4 ^= x8 + x4 = (x4 << 7) | (x4 >> (25)) + x1 += x5 + x13 ^= x1 + x13 = (x13 << 16) | (x13 >> 16) + x9 += x13 + x5 ^= x9 + x5 = (x5 << 12) | (x5 >> 20) + x1 += x5 + x13 ^= x1 + x13 = (x13 << 8) | (x13 >> 24) + x9 += x13 + x5 ^= x9 + x5 = (x5 << 7) | (x5 >> 25) + x2 += x6 + x14 ^= x2 + x14 = (x14 << 16) | (x14 >> 16) + x10 += x14 + x6 ^= x10 + x6 = (x6 << 12) | (x6 >> 20) + x2 += x6 + x14 ^= x2 + x14 = (x14 << 8) | (x14 >> 24) + x10 += x14 + x6 ^= x10 + x6 = (x6 << 7) | (x6 >> 25) + x3 += x7 + x15 ^= x3 + x15 = (x15 << 16) | (x15 >> 16) + x11 += x15 + x7 ^= x11 + x7 = (x7 << 12) | (x7 >> 20) + x3 += x7 + x15 ^= x3 + x15 = (x15 << 8) | (x15 >> 24) + x11 += x15 + x7 ^= x11 + x7 = (x7 << 7) | (x7 >> 25) + x0 += x5 + x15 ^= x0 + x15 = (x15 << 16) | (x15 >> 16) + x10 += x15 + x5 ^= x10 + x5 = (x5 << 12) | (x5 >> 20) + x0 += x5 + x15 ^= x0 + x15 = (x15 << 8) | (x15 >> 24) + x10 += x15 + x5 ^= x10 + x5 = (x5 << 7) | (x5 >> 25) + x1 += x6 + x12 ^= x1 + x12 = (x12 << 16) | (x12 >> 16) + x11 += x12 + x6 ^= x11 + x6 = (x6 << 12) | (x6 >> 20) + x1 += x6 + x12 ^= x1 + x12 = (x12 << 8) | (x12 >> 24) + x11 += x12 + x6 ^= x11 + x6 = (x6 << 7) | (x6 >> 25) + x2 += x7 + x13 ^= x2 + x13 = (x13 << 16) | (x13 >> 16) + x8 += x13 + x7 ^= x8 + x7 = (x7 << 12) | (x7 >> 20) + x2 += x7 + x13 ^= x2 + x13 = (x13 << 8) | (x13 >> 24) + x8 += x13 + x7 ^= x8 + x7 = (x7 << 7) | (x7 >> 25) + x3 += x4 + x14 ^= x3 + x14 = (x14 << 16) | (x14 >> 16) + x9 += x14 + x4 ^= x9 + x4 = (x4 << 12) | (x4 >> 20) + x3 += x4 + x14 ^= x3 + x14 = (x14 << 8) | (x14 >> 24) + x9 += x14 + x4 ^= x9 + x4 = (x4 << 7) | (x4 >> 25) + } + + x0 += j0 + x1 += j1 + x2 += j2 + x3 += j3 + x4 += j4 + x5 += j5 + x6 += j6 + x7 += j7 + x8 += j8 + x9 += j9 + x10 += j10 + x11 += j11 + x12 += j12 + x13 += j13 + x14 += j14 + x15 += j15 + + binary.LittleEndian.PutUint32(out[0:4], x0) + binary.LittleEndian.PutUint32(out[4:8], x1) + binary.LittleEndian.PutUint32(out[8:12], x2) + binary.LittleEndian.PutUint32(out[12:16], x3) + binary.LittleEndian.PutUint32(out[16:20], x4) + binary.LittleEndian.PutUint32(out[20:24], x5) + binary.LittleEndian.PutUint32(out[24:28], x6) + binary.LittleEndian.PutUint32(out[28:32], x7) + binary.LittleEndian.PutUint32(out[32:36], x8) + binary.LittleEndian.PutUint32(out[36:40], x9) + binary.LittleEndian.PutUint32(out[40:44], x10) + binary.LittleEndian.PutUint32(out[44:48], x11) + binary.LittleEndian.PutUint32(out[48:52], x12) + binary.LittleEndian.PutUint32(out[52:56], x13) + binary.LittleEndian.PutUint32(out[56:60], x14) + binary.LittleEndian.PutUint32(out[60:64], x15) +} + +// XORKeyStream crypts bytes from in to out using the given key and counters. +// In and out must overlap entirely or not at all. Counter contains the raw +// ChaCha20 counter bytes (i.e. block counter followed by nonce). +func XORKeyStream(out, in []byte, counter *[16]byte, key *[32]byte) { + var block [64]byte + var counterCopy [16]byte + copy(counterCopy[:], counter[:]) + + for len(in) >= 64 { + core(&block, &counterCopy, key) + for i, x := range block { + out[i] = in[i] ^ x + } + u := uint32(1) + for i := 0; i < 4; i++ { + u += uint32(counterCopy[i]) + counterCopy[i] = byte(u) + u >>= 8 + } + in = in[64:] + out = out[64:] + } + + if len(in) > 0 { + core(&block, &counterCopy, key) + for i, v := range in { + out[i] = v ^ block[i] + } + } +} diff --git a/vendor/golang.org/x/crypto/poly1305/poly1305.go b/vendor/golang.org/x/crypto/poly1305/poly1305.go new file mode 100644 index 000000000..f562fa571 --- /dev/null +++ b/vendor/golang.org/x/crypto/poly1305/poly1305.go @@ -0,0 +1,33 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package poly1305 implements Poly1305 one-time message authentication code as +specified in https://cr.yp.to/mac/poly1305-20050329.pdf. + +Poly1305 is a fast, one-time authentication function. It is infeasible for an +attacker to generate an authenticator for a message without the key. However, a +key must only be used for a single message. Authenticating two different +messages with the same key allows an attacker to forge authenticators for other +messages with the same key. + +Poly1305 was originally coupled with AES in order to make Poly1305-AES. AES was +used with a fixed key in order to generate one-time keys from an nonce. +However, in this package AES isn't used and the one-time key is specified +directly. +*/ +package poly1305 // import "golang.org/x/crypto/poly1305" + +import "crypto/subtle" + +// TagSize is the size, in bytes, of a poly1305 authenticator. +const TagSize = 16 + +// Verify returns true if mac is a valid authenticator for m with the given +// key. +func Verify(mac *[16]byte, m []byte, key *[32]byte) bool { + var tmp [16]byte + Sum(&tmp, m, key) + return subtle.ConstantTimeCompare(tmp[:], mac[:]) == 1 +} diff --git a/vendor/golang.org/x/crypto/poly1305/sum_amd64.go b/vendor/golang.org/x/crypto/poly1305/sum_amd64.go new file mode 100644 index 000000000..4dd72fe79 --- /dev/null +++ b/vendor/golang.org/x/crypto/poly1305/sum_amd64.go @@ -0,0 +1,22 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build amd64,!gccgo,!appengine + +package poly1305 + +// This function is implemented in sum_amd64.s +//go:noescape +func poly1305(out *[16]byte, m *byte, mlen uint64, key *[32]byte) + +// Sum generates an authenticator for m using a one-time key and puts the +// 16-byte result into out. Authenticating two different messages with the same +// key allows an attacker to forge messages at will. +func Sum(out *[16]byte, m []byte, key *[32]byte) { + var mPtr *byte + if len(m) > 0 { + mPtr = &m[0] + } + poly1305(out, mPtr, uint64(len(m)), key) +} diff --git a/vendor/golang.org/x/crypto/poly1305/sum_amd64.s b/vendor/golang.org/x/crypto/poly1305/sum_amd64.s new file mode 100644 index 000000000..2edae6382 --- /dev/null +++ b/vendor/golang.org/x/crypto/poly1305/sum_amd64.s @@ -0,0 +1,125 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build amd64,!gccgo,!appengine + +#include "textflag.h" + +#define POLY1305_ADD(msg, h0, h1, h2) \ + ADDQ 0(msg), h0; \ + ADCQ 8(msg), h1; \ + ADCQ $1, h2; \ + LEAQ 16(msg), msg + +#define POLY1305_MUL(h0, h1, h2, r0, r1, t0, t1, t2, t3) \ + MOVQ r0, AX; \ + MULQ h0; \ + MOVQ AX, t0; \ + MOVQ DX, t1; \ + MOVQ r0, AX; \ + MULQ h1; \ + ADDQ AX, t1; \ + ADCQ $0, DX; \ + MOVQ r0, t2; \ + IMULQ h2, t2; \ + ADDQ DX, t2; \ + \ + MOVQ r1, AX; \ + MULQ h0; \ + ADDQ AX, t1; \ + ADCQ $0, DX; \ + MOVQ DX, h0; \ + MOVQ r1, t3; \ + IMULQ h2, t3; \ + MOVQ r1, AX; \ + MULQ h1; \ + ADDQ AX, t2; \ + ADCQ DX, t3; \ + ADDQ h0, t2; \ + ADCQ $0, t3; \ + \ + MOVQ t0, h0; \ + MOVQ t1, h1; \ + MOVQ t2, h2; \ + ANDQ $3, h2; \ + MOVQ t2, t0; \ + ANDQ $0xFFFFFFFFFFFFFFFC, t0; \ + ADDQ t0, h0; \ + ADCQ t3, h1; \ + ADCQ $0, h2; \ + SHRQ $2, t3, t2; \ + SHRQ $2, t3; \ + ADDQ t2, h0; \ + ADCQ t3, h1; \ + ADCQ $0, h2 + +DATA ·poly1305Mask<>+0x00(SB)/8, $0x0FFFFFFC0FFFFFFF +DATA ·poly1305Mask<>+0x08(SB)/8, $0x0FFFFFFC0FFFFFFC +GLOBL ·poly1305Mask<>(SB), RODATA, $16 + +// func poly1305(out *[16]byte, m *byte, mlen uint64, key *[32]key) +TEXT ·poly1305(SB), $0-32 + MOVQ out+0(FP), DI + MOVQ m+8(FP), SI + MOVQ mlen+16(FP), R15 + MOVQ key+24(FP), AX + + MOVQ 0(AX), R11 + MOVQ 8(AX), R12 + ANDQ ·poly1305Mask<>(SB), R11 // r0 + ANDQ ·poly1305Mask<>+8(SB), R12 // r1 + XORQ R8, R8 // h0 + XORQ R9, R9 // h1 + XORQ R10, R10 // h2 + + CMPQ R15, $16 + JB bytes_between_0_and_15 + +loop: + POLY1305_ADD(SI, R8, R9, R10) + +multiply: + POLY1305_MUL(R8, R9, R10, R11, R12, BX, CX, R13, R14) + SUBQ $16, R15 + CMPQ R15, $16 + JAE loop + +bytes_between_0_and_15: + TESTQ R15, R15 + JZ done + MOVQ $1, BX + XORQ CX, CX + XORQ R13, R13 + ADDQ R15, SI + +flush_buffer: + SHLQ $8, BX, CX + SHLQ $8, BX + MOVB -1(SI), R13 + XORQ R13, BX + DECQ SI + DECQ R15 + JNZ flush_buffer + + ADDQ BX, R8 + ADCQ CX, R9 + ADCQ $0, R10 + MOVQ $16, R15 + JMP multiply + +done: + MOVQ R8, AX + MOVQ R9, BX + SUBQ $0xFFFFFFFFFFFFFFFB, AX + SBBQ $0xFFFFFFFFFFFFFFFF, BX + SBBQ $3, R10 + CMOVQCS R8, AX + CMOVQCS R9, BX + MOVQ key+24(FP), R8 + ADDQ 16(R8), AX + ADCQ 24(R8), BX + + MOVQ AX, 0(DI) + MOVQ BX, 8(DI) + RET diff --git a/vendor/golang.org/x/crypto/poly1305/sum_arm.go b/vendor/golang.org/x/crypto/poly1305/sum_arm.go new file mode 100644 index 000000000..5dc321c2f --- /dev/null +++ b/vendor/golang.org/x/crypto/poly1305/sum_arm.go @@ -0,0 +1,22 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build arm,!gccgo,!appengine,!nacl + +package poly1305 + +// This function is implemented in sum_arm.s +//go:noescape +func poly1305_auth_armv6(out *[16]byte, m *byte, mlen uint32, key *[32]byte) + +// Sum generates an authenticator for m using a one-time key and puts the +// 16-byte result into out. Authenticating two different messages with the same +// key allows an attacker to forge messages at will. +func Sum(out *[16]byte, m []byte, key *[32]byte) { + var mPtr *byte + if len(m) > 0 { + mPtr = &m[0] + } + poly1305_auth_armv6(out, mPtr, uint32(len(m)), key) +} diff --git a/vendor/golang.org/x/crypto/poly1305/sum_arm.s b/vendor/golang.org/x/crypto/poly1305/sum_arm.s new file mode 100644 index 000000000..f70b4ac48 --- /dev/null +++ b/vendor/golang.org/x/crypto/poly1305/sum_arm.s @@ -0,0 +1,427 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build arm,!gccgo,!appengine,!nacl + +#include "textflag.h" + +// This code was translated into a form compatible with 5a from the public +// domain source by Andrew Moon: github.com/floodyberry/poly1305-opt/blob/master/app/extensions/poly1305. + +DATA ·poly1305_init_constants_armv6<>+0x00(SB)/4, $0x3ffffff +DATA ·poly1305_init_constants_armv6<>+0x04(SB)/4, $0x3ffff03 +DATA ·poly1305_init_constants_armv6<>+0x08(SB)/4, $0x3ffc0ff +DATA ·poly1305_init_constants_armv6<>+0x0c(SB)/4, $0x3f03fff +DATA ·poly1305_init_constants_armv6<>+0x10(SB)/4, $0x00fffff +GLOBL ·poly1305_init_constants_armv6<>(SB), 8, $20 + +// Warning: the linker may use R11 to synthesize certain instructions. Please +// take care and verify that no synthetic instructions use it. + +TEXT poly1305_init_ext_armv6<>(SB), NOSPLIT, $0 + // Needs 16 bytes of stack and 64 bytes of space pointed to by R0. (It + // might look like it's only 60 bytes of space but the final four bytes + // will be written by another function.) We need to skip over four + // bytes of stack because that's saving the value of 'g'. + ADD $4, R13, R8 + MOVM.IB [R4-R7], (R8) + MOVM.IA.W (R1), [R2-R5] + MOVW $·poly1305_init_constants_armv6<>(SB), R7 + MOVW R2, R8 + MOVW R2>>26, R9 + MOVW R3>>20, g + MOVW R4>>14, R11 + MOVW R5>>8, R12 + ORR R3<<6, R9, R9 + ORR R4<<12, g, g + ORR R5<<18, R11, R11 + MOVM.IA (R7), [R2-R6] + AND R8, R2, R2 + AND R9, R3, R3 + AND g, R4, R4 + AND R11, R5, R5 + AND R12, R6, R6 + MOVM.IA.W [R2-R6], (R0) + EOR R2, R2, R2 + EOR R3, R3, R3 + EOR R4, R4, R4 + EOR R5, R5, R5 + EOR R6, R6, R6 + MOVM.IA.W [R2-R6], (R0) + MOVM.IA.W (R1), [R2-R5] + MOVM.IA [R2-R6], (R0) + ADD $20, R13, R0 + MOVM.DA (R0), [R4-R7] + RET + +#define MOVW_UNALIGNED(Rsrc, Rdst, Rtmp, offset) \ + MOVBU (offset+0)(Rsrc), Rtmp; \ + MOVBU Rtmp, (offset+0)(Rdst); \ + MOVBU (offset+1)(Rsrc), Rtmp; \ + MOVBU Rtmp, (offset+1)(Rdst); \ + MOVBU (offset+2)(Rsrc), Rtmp; \ + MOVBU Rtmp, (offset+2)(Rdst); \ + MOVBU (offset+3)(Rsrc), Rtmp; \ + MOVBU Rtmp, (offset+3)(Rdst) + +TEXT poly1305_blocks_armv6<>(SB), NOSPLIT, $0 + // Needs 24 bytes of stack for saved registers and then 88 bytes of + // scratch space after that. We assume that 24 bytes at (R13) have + // already been used: four bytes for the link register saved in the + // prelude of poly1305_auth_armv6, four bytes for saving the value of g + // in that function and 16 bytes of scratch space used around + // poly1305_finish_ext_armv6_skip1. + ADD $24, R13, R12 + MOVM.IB [R4-R8, R14], (R12) + MOVW R0, 88(R13) + MOVW R1, 92(R13) + MOVW R2, 96(R13) + MOVW R1, R14 + MOVW R2, R12 + MOVW 56(R0), R8 + WORD $0xe1180008 // TST R8, R8 not working see issue 5921 + EOR R6, R6, R6 + MOVW.EQ $(1<<24), R6 + MOVW R6, 84(R13) + ADD $116, R13, g + MOVM.IA (R0), [R0-R9] + MOVM.IA [R0-R4], (g) + CMP $16, R12 + BLO poly1305_blocks_armv6_done + +poly1305_blocks_armv6_mainloop: + WORD $0xe31e0003 // TST R14, #3 not working see issue 5921 + BEQ poly1305_blocks_armv6_mainloop_aligned + ADD $100, R13, g + MOVW_UNALIGNED(R14, g, R0, 0) + MOVW_UNALIGNED(R14, g, R0, 4) + MOVW_UNALIGNED(R14, g, R0, 8) + MOVW_UNALIGNED(R14, g, R0, 12) + MOVM.IA (g), [R0-R3] + ADD $16, R14 + B poly1305_blocks_armv6_mainloop_loaded + +poly1305_blocks_armv6_mainloop_aligned: + MOVM.IA.W (R14), [R0-R3] + +poly1305_blocks_armv6_mainloop_loaded: + MOVW R0>>26, g + MOVW R1>>20, R11 + MOVW R2>>14, R12 + MOVW R14, 92(R13) + MOVW R3>>8, R4 + ORR R1<<6, g, g + ORR R2<<12, R11, R11 + ORR R3<<18, R12, R12 + BIC $0xfc000000, R0, R0 + BIC $0xfc000000, g, g + MOVW 84(R13), R3 + BIC $0xfc000000, R11, R11 + BIC $0xfc000000, R12, R12 + ADD R0, R5, R5 + ADD g, R6, R6 + ORR R3, R4, R4 + ADD R11, R7, R7 + ADD $116, R13, R14 + ADD R12, R8, R8 + ADD R4, R9, R9 + MOVM.IA (R14), [R0-R4] + MULLU R4, R5, (R11, g) + MULLU R3, R5, (R14, R12) + MULALU R3, R6, (R11, g) + MULALU R2, R6, (R14, R12) + MULALU R2, R7, (R11, g) + MULALU R1, R7, (R14, R12) + ADD R4<<2, R4, R4 + ADD R3<<2, R3, R3 + MULALU R1, R8, (R11, g) + MULALU R0, R8, (R14, R12) + MULALU R0, R9, (R11, g) + MULALU R4, R9, (R14, R12) + MOVW g, 76(R13) + MOVW R11, 80(R13) + MOVW R12, 68(R13) + MOVW R14, 72(R13) + MULLU R2, R5, (R11, g) + MULLU R1, R5, (R14, R12) + MULALU R1, R6, (R11, g) + MULALU R0, R6, (R14, R12) + MULALU R0, R7, (R11, g) + MULALU R4, R7, (R14, R12) + ADD R2<<2, R2, R2 + ADD R1<<2, R1, R1 + MULALU R4, R8, (R11, g) + MULALU R3, R8, (R14, R12) + MULALU R3, R9, (R11, g) + MULALU R2, R9, (R14, R12) + MOVW g, 60(R13) + MOVW R11, 64(R13) + MOVW R12, 52(R13) + MOVW R14, 56(R13) + MULLU R0, R5, (R11, g) + MULALU R4, R6, (R11, g) + MULALU R3, R7, (R11, g) + MULALU R2, R8, (R11, g) + MULALU R1, R9, (R11, g) + ADD $52, R13, R0 + MOVM.IA (R0), [R0-R7] + MOVW g>>26, R12 + MOVW R4>>26, R14 + ORR R11<<6, R12, R12 + ORR R5<<6, R14, R14 + BIC $0xfc000000, g, g + BIC $0xfc000000, R4, R4 + ADD.S R12, R0, R0 + ADC $0, R1, R1 + ADD.S R14, R6, R6 + ADC $0, R7, R7 + MOVW R0>>26, R12 + MOVW R6>>26, R14 + ORR R1<<6, R12, R12 + ORR R7<<6, R14, R14 + BIC $0xfc000000, R0, R0 + BIC $0xfc000000, R6, R6 + ADD R14<<2, R14, R14 + ADD.S R12, R2, R2 + ADC $0, R3, R3 + ADD R14, g, g + MOVW R2>>26, R12 + MOVW g>>26, R14 + ORR R3<<6, R12, R12 + BIC $0xfc000000, g, R5 + BIC $0xfc000000, R2, R7 + ADD R12, R4, R4 + ADD R14, R0, R0 + MOVW R4>>26, R12 + BIC $0xfc000000, R4, R8 + ADD R12, R6, R9 + MOVW 96(R13), R12 + MOVW 92(R13), R14 + MOVW R0, R6 + CMP $32, R12 + SUB $16, R12, R12 + MOVW R12, 96(R13) + BHS poly1305_blocks_armv6_mainloop + +poly1305_blocks_armv6_done: + MOVW 88(R13), R12 + MOVW R5, 20(R12) + MOVW R6, 24(R12) + MOVW R7, 28(R12) + MOVW R8, 32(R12) + MOVW R9, 36(R12) + ADD $48, R13, R0 + MOVM.DA (R0), [R4-R8, R14] + RET + +#define MOVHUP_UNALIGNED(Rsrc, Rdst, Rtmp) \ + MOVBU.P 1(Rsrc), Rtmp; \ + MOVBU.P Rtmp, 1(Rdst); \ + MOVBU.P 1(Rsrc), Rtmp; \ + MOVBU.P Rtmp, 1(Rdst) + +#define MOVWP_UNALIGNED(Rsrc, Rdst, Rtmp) \ + MOVHUP_UNALIGNED(Rsrc, Rdst, Rtmp); \ + MOVHUP_UNALIGNED(Rsrc, Rdst, Rtmp) + +// func poly1305_auth_armv6(out *[16]byte, m *byte, mlen uint32, key *[32]key) +TEXT ·poly1305_auth_armv6(SB), $196-16 + // The value 196, just above, is the sum of 64 (the size of the context + // structure) and 132 (the amount of stack needed). + // + // At this point, the stack pointer (R13) has been moved down. It + // points to the saved link register and there's 196 bytes of free + // space above it. + // + // The stack for this function looks like: + // + // +--------------------- + // | + // | 64 bytes of context structure + // | + // +--------------------- + // | + // | 112 bytes for poly1305_blocks_armv6 + // | + // +--------------------- + // | 16 bytes of final block, constructed at + // | poly1305_finish_ext_armv6_skip8 + // +--------------------- + // | four bytes of saved 'g' + // +--------------------- + // | lr, saved by prelude <- R13 points here + // +--------------------- + MOVW g, 4(R13) + + MOVW out+0(FP), R4 + MOVW m+4(FP), R5 + MOVW mlen+8(FP), R6 + MOVW key+12(FP), R7 + + ADD $136, R13, R0 // 136 = 4 + 4 + 16 + 112 + MOVW R7, R1 + + // poly1305_init_ext_armv6 will write to the stack from R13+4, but + // that's ok because none of the other values have been written yet. + BL poly1305_init_ext_armv6<>(SB) + BIC.S $15, R6, R2 + BEQ poly1305_auth_armv6_noblocks + ADD $136, R13, R0 + MOVW R5, R1 + ADD R2, R5, R5 + SUB R2, R6, R6 + BL poly1305_blocks_armv6<>(SB) + +poly1305_auth_armv6_noblocks: + ADD $136, R13, R0 + MOVW R5, R1 + MOVW R6, R2 + MOVW R4, R3 + + MOVW R0, R5 + MOVW R1, R6 + MOVW R2, R7 + MOVW R3, R8 + AND.S R2, R2, R2 + BEQ poly1305_finish_ext_armv6_noremaining + EOR R0, R0 + ADD $8, R13, R9 // 8 = offset to 16 byte scratch space + MOVW R0, (R9) + MOVW R0, 4(R9) + MOVW R0, 8(R9) + MOVW R0, 12(R9) + WORD $0xe3110003 // TST R1, #3 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_aligned + WORD $0xe3120008 // TST R2, #8 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip8 + MOVWP_UNALIGNED(R1, R9, g) + MOVWP_UNALIGNED(R1, R9, g) + +poly1305_finish_ext_armv6_skip8: + WORD $0xe3120004 // TST $4, R2 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip4 + MOVWP_UNALIGNED(R1, R9, g) + +poly1305_finish_ext_armv6_skip4: + WORD $0xe3120002 // TST $2, R2 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip2 + MOVHUP_UNALIGNED(R1, R9, g) + B poly1305_finish_ext_armv6_skip2 + +poly1305_finish_ext_armv6_aligned: + WORD $0xe3120008 // TST R2, #8 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip8_aligned + MOVM.IA.W (R1), [g-R11] + MOVM.IA.W [g-R11], (R9) + +poly1305_finish_ext_armv6_skip8_aligned: + WORD $0xe3120004 // TST $4, R2 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip4_aligned + MOVW.P 4(R1), g + MOVW.P g, 4(R9) + +poly1305_finish_ext_armv6_skip4_aligned: + WORD $0xe3120002 // TST $2, R2 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip2 + MOVHU.P 2(R1), g + MOVH.P g, 2(R9) + +poly1305_finish_ext_armv6_skip2: + WORD $0xe3120001 // TST $1, R2 not working see issue 5921 + BEQ poly1305_finish_ext_armv6_skip1 + MOVBU.P 1(R1), g + MOVBU.P g, 1(R9) + +poly1305_finish_ext_armv6_skip1: + MOVW $1, R11 + MOVBU R11, 0(R9) + MOVW R11, 56(R5) + MOVW R5, R0 + ADD $8, R13, R1 + MOVW $16, R2 + BL poly1305_blocks_armv6<>(SB) + +poly1305_finish_ext_armv6_noremaining: + MOVW 20(R5), R0 + MOVW 24(R5), R1 + MOVW 28(R5), R2 + MOVW 32(R5), R3 + MOVW 36(R5), R4 + MOVW R4>>26, R12 + BIC $0xfc000000, R4, R4 + ADD R12<<2, R12, R12 + ADD R12, R0, R0 + MOVW R0>>26, R12 + BIC $0xfc000000, R0, R0 + ADD R12, R1, R1 + MOVW R1>>26, R12 + BIC $0xfc000000, R1, R1 + ADD R12, R2, R2 + MOVW R2>>26, R12 + BIC $0xfc000000, R2, R2 + ADD R12, R3, R3 + MOVW R3>>26, R12 + BIC $0xfc000000, R3, R3 + ADD R12, R4, R4 + ADD $5, R0, R6 + MOVW R6>>26, R12 + BIC $0xfc000000, R6, R6 + ADD R12, R1, R7 + MOVW R7>>26, R12 + BIC $0xfc000000, R7, R7 + ADD R12, R2, g + MOVW g>>26, R12 + BIC $0xfc000000, g, g + ADD R12, R3, R11 + MOVW $-(1<<26), R12 + ADD R11>>26, R12, R12 + BIC $0xfc000000, R11, R11 + ADD R12, R4, R9 + MOVW R9>>31, R12 + SUB $1, R12 + AND R12, R6, R6 + AND R12, R7, R7 + AND R12, g, g + AND R12, R11, R11 + AND R12, R9, R9 + MVN R12, R12 + AND R12, R0, R0 + AND R12, R1, R1 + AND R12, R2, R2 + AND R12, R3, R3 + AND R12, R4, R4 + ORR R6, R0, R0 + ORR R7, R1, R1 + ORR g, R2, R2 + ORR R11, R3, R3 + ORR R9, R4, R4 + ORR R1<<26, R0, R0 + MOVW R1>>6, R1 + ORR R2<<20, R1, R1 + MOVW R2>>12, R2 + ORR R3<<14, R2, R2 + MOVW R3>>18, R3 + ORR R4<<8, R3, R3 + MOVW 40(R5), R6 + MOVW 44(R5), R7 + MOVW 48(R5), g + MOVW 52(R5), R11 + ADD.S R6, R0, R0 + ADC.S R7, R1, R1 + ADC.S g, R2, R2 + ADC.S R11, R3, R3 + MOVM.IA [R0-R3], (R8) + MOVW R5, R12 + EOR R0, R0, R0 + EOR R1, R1, R1 + EOR R2, R2, R2 + EOR R3, R3, R3 + EOR R4, R4, R4 + EOR R5, R5, R5 + EOR R6, R6, R6 + EOR R7, R7, R7 + MOVM.IA.W [R0-R7], (R12) + MOVM.IA [R0-R7], (R12) + MOVW 4(R13), g + RET diff --git a/vendor/golang.org/x/crypto/poly1305/sum_ref.go b/vendor/golang.org/x/crypto/poly1305/sum_ref.go new file mode 100644 index 000000000..b2805a5ca --- /dev/null +++ b/vendor/golang.org/x/crypto/poly1305/sum_ref.go @@ -0,0 +1,141 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build !amd64,!arm gccgo appengine nacl + +package poly1305 + +import "encoding/binary" + +// Sum generates an authenticator for msg using a one-time key and puts the +// 16-byte result into out. Authenticating two different messages with the same +// key allows an attacker to forge messages at will. +func Sum(out *[TagSize]byte, msg []byte, key *[32]byte) { + var ( + h0, h1, h2, h3, h4 uint32 // the hash accumulators + r0, r1, r2, r3, r4 uint64 // the r part of the key + ) + + r0 = uint64(binary.LittleEndian.Uint32(key[0:]) & 0x3ffffff) + r1 = uint64((binary.LittleEndian.Uint32(key[3:]) >> 2) & 0x3ffff03) + r2 = uint64((binary.LittleEndian.Uint32(key[6:]) >> 4) & 0x3ffc0ff) + r3 = uint64((binary.LittleEndian.Uint32(key[9:]) >> 6) & 0x3f03fff) + r4 = uint64((binary.LittleEndian.Uint32(key[12:]) >> 8) & 0x00fffff) + + R1, R2, R3, R4 := r1*5, r2*5, r3*5, r4*5 + + for len(msg) >= TagSize { + // h += msg + h0 += binary.LittleEndian.Uint32(msg[0:]) & 0x3ffffff + h1 += (binary.LittleEndian.Uint32(msg[3:]) >> 2) & 0x3ffffff + h2 += (binary.LittleEndian.Uint32(msg[6:]) >> 4) & 0x3ffffff + h3 += (binary.LittleEndian.Uint32(msg[9:]) >> 6) & 0x3ffffff + h4 += (binary.LittleEndian.Uint32(msg[12:]) >> 8) | (1 << 24) + + // h *= r + d0 := (uint64(h0) * r0) + (uint64(h1) * R4) + (uint64(h2) * R3) + (uint64(h3) * R2) + (uint64(h4) * R1) + d1 := (d0 >> 26) + (uint64(h0) * r1) + (uint64(h1) * r0) + (uint64(h2) * R4) + (uint64(h3) * R3) + (uint64(h4) * R2) + d2 := (d1 >> 26) + (uint64(h0) * r2) + (uint64(h1) * r1) + (uint64(h2) * r0) + (uint64(h3) * R4) + (uint64(h4) * R3) + d3 := (d2 >> 26) + (uint64(h0) * r3) + (uint64(h1) * r2) + (uint64(h2) * r1) + (uint64(h3) * r0) + (uint64(h4) * R4) + d4 := (d3 >> 26) + (uint64(h0) * r4) + (uint64(h1) * r3) + (uint64(h2) * r2) + (uint64(h3) * r1) + (uint64(h4) * r0) + + // h %= p + h0 = uint32(d0) & 0x3ffffff + h1 = uint32(d1) & 0x3ffffff + h2 = uint32(d2) & 0x3ffffff + h3 = uint32(d3) & 0x3ffffff + h4 = uint32(d4) & 0x3ffffff + + h0 += uint32(d4>>26) * 5 + h1 += h0 >> 26 + h0 = h0 & 0x3ffffff + + msg = msg[TagSize:] + } + + if len(msg) > 0 { + var block [TagSize]byte + off := copy(block[:], msg) + block[off] = 0x01 + + // h += msg + h0 += binary.LittleEndian.Uint32(block[0:]) & 0x3ffffff + h1 += (binary.LittleEndian.Uint32(block[3:]) >> 2) & 0x3ffffff + h2 += (binary.LittleEndian.Uint32(block[6:]) >> 4) & 0x3ffffff + h3 += (binary.LittleEndian.Uint32(block[9:]) >> 6) & 0x3ffffff + h4 += (binary.LittleEndian.Uint32(block[12:]) >> 8) + + // h *= r + d0 := (uint64(h0) * r0) + (uint64(h1) * R4) + (uint64(h2) * R3) + (uint64(h3) * R2) + (uint64(h4) * R1) + d1 := (d0 >> 26) + (uint64(h0) * r1) + (uint64(h1) * r0) + (uint64(h2) * R4) + (uint64(h3) * R3) + (uint64(h4) * R2) + d2 := (d1 >> 26) + (uint64(h0) * r2) + (uint64(h1) * r1) + (uint64(h2) * r0) + (uint64(h3) * R4) + (uint64(h4) * R3) + d3 := (d2 >> 26) + (uint64(h0) * r3) + (uint64(h1) * r2) + (uint64(h2) * r1) + (uint64(h3) * r0) + (uint64(h4) * R4) + d4 := (d3 >> 26) + (uint64(h0) * r4) + (uint64(h1) * r3) + (uint64(h2) * r2) + (uint64(h3) * r1) + (uint64(h4) * r0) + + // h %= p + h0 = uint32(d0) & 0x3ffffff + h1 = uint32(d1) & 0x3ffffff + h2 = uint32(d2) & 0x3ffffff + h3 = uint32(d3) & 0x3ffffff + h4 = uint32(d4) & 0x3ffffff + + h0 += uint32(d4>>26) * 5 + h1 += h0 >> 26 + h0 = h0 & 0x3ffffff + } + + // h %= p reduction + h2 += h1 >> 26 + h1 &= 0x3ffffff + h3 += h2 >> 26 + h2 &= 0x3ffffff + h4 += h3 >> 26 + h3 &= 0x3ffffff + h0 += 5 * (h4 >> 26) + h4 &= 0x3ffffff + h1 += h0 >> 26 + h0 &= 0x3ffffff + + // h - p + t0 := h0 + 5 + t1 := h1 + (t0 >> 26) + t2 := h2 + (t1 >> 26) + t3 := h3 + (t2 >> 26) + t4 := h4 + (t3 >> 26) - (1 << 26) + t0 &= 0x3ffffff + t1 &= 0x3ffffff + t2 &= 0x3ffffff + t3 &= 0x3ffffff + + // select h if h < p else h - p + t_mask := (t4 >> 31) - 1 + h_mask := ^t_mask + h0 = (h0 & h_mask) | (t0 & t_mask) + h1 = (h1 & h_mask) | (t1 & t_mask) + h2 = (h2 & h_mask) | (t2 & t_mask) + h3 = (h3 & h_mask) | (t3 & t_mask) + h4 = (h4 & h_mask) | (t4 & t_mask) + + // h %= 2^128 + h0 |= h1 << 26 + h1 = ((h1 >> 6) | (h2 << 20)) + h2 = ((h2 >> 12) | (h3 << 14)) + h3 = ((h3 >> 18) | (h4 << 8)) + + // s: the s part of the key + // tag = (h + s) % (2^128) + t := uint64(h0) + uint64(binary.LittleEndian.Uint32(key[16:])) + h0 = uint32(t) + t = uint64(h1) + uint64(binary.LittleEndian.Uint32(key[20:])) + (t >> 32) + h1 = uint32(t) + t = uint64(h2) + uint64(binary.LittleEndian.Uint32(key[24:])) + (t >> 32) + h2 = uint32(t) + t = uint64(h3) + uint64(binary.LittleEndian.Uint32(key[28:])) + (t >> 32) + h3 = uint32(t) + + binary.LittleEndian.PutUint32(out[0:], h0) + binary.LittleEndian.PutUint32(out[4:], h1) + binary.LittleEndian.PutUint32(out[8:], h2) + binary.LittleEndian.PutUint32(out[12:], h3) +} diff --git a/vendor/golang.org/x/crypto/ssh/certs.go b/vendor/golang.org/x/crypto/ssh/certs.go index 5c9fadcee..42106f3f2 100644 --- a/vendor/golang.org/x/crypto/ssh/certs.go +++ b/vendor/golang.org/x/crypto/ssh/certs.go @@ -44,7 +44,9 @@ type Signature struct { const CertTimeInfinity = 1<<64 - 1 // An Certificate represents an OpenSSH certificate as defined in -// [PROTOCOL.certkeys]?rev=1.8. +// [PROTOCOL.certkeys]?rev=1.8. The Certificate type implements the +// PublicKey interface, so it can be unmarshaled using +// ParsePublicKey. type Certificate struct { Nonce []byte Key PublicKey @@ -340,7 +342,7 @@ func (c *CertChecker) Authenticate(conn ConnMetadata, pubKey PublicKey) (*Permis // the signature of the certificate. func (c *CertChecker) CheckCert(principal string, cert *Certificate) error { if c.IsRevoked != nil && c.IsRevoked(cert) { - return fmt.Errorf("ssh: certicate serial %d revoked", cert.Serial) + return fmt.Errorf("ssh: certificate serial %d revoked", cert.Serial) } for opt := range cert.CriticalOptions { diff --git a/vendor/golang.org/x/crypto/ssh/cipher.go b/vendor/golang.org/x/crypto/ssh/cipher.go index e67c5e0aa..30a49fdf2 100644 --- a/vendor/golang.org/x/crypto/ssh/cipher.go +++ b/vendor/golang.org/x/crypto/ssh/cipher.go @@ -16,6 +16,9 @@ import ( "hash" "io" "io/ioutil" + + "golang.org/x/crypto/internal/chacha20" + "golang.org/x/crypto/poly1305" ) const ( @@ -53,78 +56,78 @@ func newRC4(key, iv []byte) (cipher.Stream, error) { return rc4.NewCipher(key) } -type streamCipherMode struct { - keySize int - ivSize int - skip int - createFunc func(key, iv []byte) (cipher.Stream, error) +type cipherMode struct { + keySize int + ivSize int + create func(key, iv []byte, macKey []byte, algs directionAlgorithms) (packetCipher, error) } -func (c *streamCipherMode) createStream(key, iv []byte) (cipher.Stream, error) { - if len(key) < c.keySize { - panic("ssh: key length too small for cipher") - } - if len(iv) < c.ivSize { - panic("ssh: iv too small for cipher") - } - - stream, err := c.createFunc(key[:c.keySize], iv[:c.ivSize]) - if err != nil { - return nil, err - } - - var streamDump []byte - if c.skip > 0 { - streamDump = make([]byte, 512) - } - - for remainingToDump := c.skip; remainingToDump > 0; { - dumpThisTime := remainingToDump - if dumpThisTime > len(streamDump) { - dumpThisTime = len(streamDump) +func streamCipherMode(skip int, createFunc func(key, iv []byte) (cipher.Stream, error)) func(key, iv []byte, macKey []byte, algs directionAlgorithms) (packetCipher, error) { + return func(key, iv, macKey []byte, algs directionAlgorithms) (packetCipher, error) { + stream, err := createFunc(key, iv) + if err != nil { + return nil, err } - stream.XORKeyStream(streamDump[:dumpThisTime], streamDump[:dumpThisTime]) - remainingToDump -= dumpThisTime - } - return stream, nil + var streamDump []byte + if skip > 0 { + streamDump = make([]byte, 512) + } + + for remainingToDump := skip; remainingToDump > 0; { + dumpThisTime := remainingToDump + if dumpThisTime > len(streamDump) { + dumpThisTime = len(streamDump) + } + stream.XORKeyStream(streamDump[:dumpThisTime], streamDump[:dumpThisTime]) + remainingToDump -= dumpThisTime + } + + mac := macModes[algs.MAC].new(macKey) + return &streamPacketCipher{ + mac: mac, + etm: macModes[algs.MAC].etm, + macResult: make([]byte, mac.Size()), + cipher: stream, + }, nil + } } // cipherModes documents properties of supported ciphers. Ciphers not included // are not supported and will not be negotiated, even if explicitly requested in // ClientConfig.Crypto.Ciphers. -var cipherModes = map[string]*streamCipherMode{ +var cipherModes = map[string]*cipherMode{ // Ciphers from RFC4344, which introduced many CTR-based ciphers. Algorithms // are defined in the order specified in the RFC. - "aes128-ctr": {16, aes.BlockSize, 0, newAESCTR}, - "aes192-ctr": {24, aes.BlockSize, 0, newAESCTR}, - "aes256-ctr": {32, aes.BlockSize, 0, newAESCTR}, + "aes128-ctr": {16, aes.BlockSize, streamCipherMode(0, newAESCTR)}, + "aes192-ctr": {24, aes.BlockSize, streamCipherMode(0, newAESCTR)}, + "aes256-ctr": {32, aes.BlockSize, streamCipherMode(0, newAESCTR)}, // Ciphers from RFC4345, which introduces security-improved arcfour ciphers. // They are defined in the order specified in the RFC. - "arcfour128": {16, 0, 1536, newRC4}, - "arcfour256": {32, 0, 1536, newRC4}, + "arcfour128": {16, 0, streamCipherMode(1536, newRC4)}, + "arcfour256": {32, 0, streamCipherMode(1536, newRC4)}, // Cipher defined in RFC 4253, which describes SSH Transport Layer Protocol. // Note that this cipher is not safe, as stated in RFC 4253: "Arcfour (and // RC4) has problems with weak keys, and should be used with caution." // RFC4345 introduces improved versions of Arcfour. - "arcfour": {16, 0, 0, newRC4}, + "arcfour": {16, 0, streamCipherMode(0, newRC4)}, - // AES-GCM is not a stream cipher, so it is constructed with a - // special case. If we add any more non-stream ciphers, we - // should invest a cleaner way to do this. - gcmCipherID: {16, 12, 0, nil}, + // AEAD ciphers + gcmCipherID: {16, 12, newGCMCipher}, + chacha20Poly1305ID: {64, 0, newChaCha20Cipher}, // CBC mode is insecure and so is not included in the default config. // (See http://www.isg.rhul.ac.uk/~kp/SandPfinal.pdf). If absolutely // needed, it's possible to specify a custom Config to enable it. // You should expect that an active attacker can recover plaintext if // you do. - aes128cbcID: {16, aes.BlockSize, 0, nil}, + aes128cbcID: {16, aes.BlockSize, newAESCBCCipher}, - // 3des-cbc is insecure and is disabled by default. - tripledescbcID: {24, des.BlockSize, 0, nil}, + // 3des-cbc is insecure and is not included in the default + // config. + tripledescbcID: {24, des.BlockSize, newTripleDESCBCCipher}, } // prefixLen is the length of the packet prefix that contains the packet length @@ -304,7 +307,7 @@ type gcmCipher struct { buf []byte } -func newGCMCipher(iv, key []byte) (packetCipher, error) { +func newGCMCipher(key, iv, unusedMacKey []byte, unusedAlgs directionAlgorithms) (packetCipher, error) { c, err := aes.NewCipher(key) if err != nil { return nil, err @@ -422,7 +425,7 @@ type cbcCipher struct { oracleCamouflage uint32 } -func newCBCCipher(c cipher.Block, iv, key, macKey []byte, algs directionAlgorithms) (packetCipher, error) { +func newCBCCipher(c cipher.Block, key, iv, macKey []byte, algs directionAlgorithms) (packetCipher, error) { cbc := &cbcCipher{ mac: macModes[algs.MAC].new(macKey), decrypter: cipher.NewCBCDecrypter(c, iv), @@ -436,13 +439,13 @@ func newCBCCipher(c cipher.Block, iv, key, macKey []byte, algs directionAlgorith return cbc, nil } -func newAESCBCCipher(iv, key, macKey []byte, algs directionAlgorithms) (packetCipher, error) { +func newAESCBCCipher(key, iv, macKey []byte, algs directionAlgorithms) (packetCipher, error) { c, err := aes.NewCipher(key) if err != nil { return nil, err } - cbc, err := newCBCCipher(c, iv, key, macKey, algs) + cbc, err := newCBCCipher(c, key, iv, macKey, algs) if err != nil { return nil, err } @@ -450,13 +453,13 @@ func newAESCBCCipher(iv, key, macKey []byte, algs directionAlgorithms) (packetCi return cbc, nil } -func newTripleDESCBCCipher(iv, key, macKey []byte, algs directionAlgorithms) (packetCipher, error) { +func newTripleDESCBCCipher(key, iv, macKey []byte, algs directionAlgorithms) (packetCipher, error) { c, err := des.NewTripleDESCipher(key) if err != nil { return nil, err } - cbc, err := newCBCCipher(c, iv, key, macKey, algs) + cbc, err := newCBCCipher(c, key, iv, macKey, algs) if err != nil { return nil, err } @@ -627,3 +630,142 @@ func (c *cbcCipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, pack return nil } + +const chacha20Poly1305ID = "chacha20-poly1305@openssh.com" + +// chacha20Poly1305Cipher implements the chacha20-poly1305@openssh.com +// AEAD, which is described here: +// +// https://tools.ietf.org/html/draft-josefsson-ssh-chacha20-poly1305-openssh-00 +// +// the methods here also implement padding, which RFC4253 Section 6 +// also requires of stream ciphers. +type chacha20Poly1305Cipher struct { + lengthKey [32]byte + contentKey [32]byte + buf []byte +} + +func newChaCha20Cipher(key, unusedIV, unusedMACKey []byte, unusedAlgs directionAlgorithms) (packetCipher, error) { + if len(key) != 64 { + panic(len(key)) + } + + c := &chacha20Poly1305Cipher{ + buf: make([]byte, 256), + } + + copy(c.contentKey[:], key[:32]) + copy(c.lengthKey[:], key[32:]) + return c, nil +} + +// The Poly1305 key is obtained by encrypting 32 0-bytes. +var chacha20PolyKeyInput [32]byte + +func (c *chacha20Poly1305Cipher) readPacket(seqNum uint32, r io.Reader) ([]byte, error) { + var counter [16]byte + binary.BigEndian.PutUint64(counter[8:], uint64(seqNum)) + + var polyKey [32]byte + chacha20.XORKeyStream(polyKey[:], chacha20PolyKeyInput[:], &counter, &c.contentKey) + + encryptedLength := c.buf[:4] + if _, err := io.ReadFull(r, encryptedLength); err != nil { + return nil, err + } + + var lenBytes [4]byte + chacha20.XORKeyStream(lenBytes[:], encryptedLength, &counter, &c.lengthKey) + + length := binary.BigEndian.Uint32(lenBytes[:]) + if length > maxPacket { + return nil, errors.New("ssh: invalid packet length, packet too large") + } + + contentEnd := 4 + length + packetEnd := contentEnd + poly1305.TagSize + if uint32(cap(c.buf)) < packetEnd { + c.buf = make([]byte, packetEnd) + copy(c.buf[:], encryptedLength) + } else { + c.buf = c.buf[:packetEnd] + } + + if _, err := io.ReadFull(r, c.buf[4:packetEnd]); err != nil { + return nil, err + } + + var mac [poly1305.TagSize]byte + copy(mac[:], c.buf[contentEnd:packetEnd]) + if !poly1305.Verify(&mac, c.buf[:contentEnd], &polyKey) { + return nil, errors.New("ssh: MAC failure") + } + + counter[0] = 1 + + plain := c.buf[4:contentEnd] + chacha20.XORKeyStream(plain, plain, &counter, &c.contentKey) + + padding := plain[0] + if padding < 4 { + // padding is a byte, so it automatically satisfies + // the maximum size, which is 255. + return nil, fmt.Errorf("ssh: illegal padding %d", padding) + } + + if int(padding)+1 >= len(plain) { + return nil, fmt.Errorf("ssh: padding %d too large", padding) + } + + plain = plain[1 : len(plain)-int(padding)] + + return plain, nil +} + +func (c *chacha20Poly1305Cipher) writePacket(seqNum uint32, w io.Writer, rand io.Reader, payload []byte) error { + var counter [16]byte + binary.BigEndian.PutUint64(counter[8:], uint64(seqNum)) + + var polyKey [32]byte + chacha20.XORKeyStream(polyKey[:], chacha20PolyKeyInput[:], &counter, &c.contentKey) + + // There is no blocksize, so fall back to multiple of 8 byte + // padding, as described in RFC 4253, Sec 6. + const packetSizeMultiple = 8 + + padding := packetSizeMultiple - (1+len(payload))%packetSizeMultiple + if padding < 4 { + padding += packetSizeMultiple + } + + // size (4 bytes), padding (1), payload, padding, tag. + totalLength := 4 + 1 + len(payload) + padding + poly1305.TagSize + if cap(c.buf) < totalLength { + c.buf = make([]byte, totalLength) + } else { + c.buf = c.buf[:totalLength] + } + + binary.BigEndian.PutUint32(c.buf, uint32(1+len(payload)+padding)) + chacha20.XORKeyStream(c.buf, c.buf[:4], &counter, &c.lengthKey) + c.buf[4] = byte(padding) + copy(c.buf[5:], payload) + packetEnd := 5 + len(payload) + padding + if _, err := io.ReadFull(rand, c.buf[5+len(payload):packetEnd]); err != nil { + return err + } + + counter[0] = 1 + chacha20.XORKeyStream(c.buf[4:], c.buf[4:packetEnd], &counter, &c.contentKey) + + var mac [poly1305.TagSize]byte + poly1305.Sum(&mac, c.buf[:packetEnd], &polyKey) + + copy(c.buf[packetEnd:], mac[:]) + + if _, err := w.Write(c.buf); err != nil { + return err + } + return nil +} diff --git a/vendor/golang.org/x/crypto/ssh/client_auth.go b/vendor/golang.org/x/crypto/ssh/client_auth.go index a1252cb9b..5f44b7740 100644 --- a/vendor/golang.org/x/crypto/ssh/client_auth.go +++ b/vendor/golang.org/x/crypto/ssh/client_auth.go @@ -11,6 +11,14 @@ import ( "io" ) +type authResult int + +const ( + authFailure authResult = iota + authPartialSuccess + authSuccess +) + // clientAuthenticate authenticates with the remote server. See RFC 4252. func (c *connection) clientAuthenticate(config *ClientConfig) error { // initiate user auth session @@ -37,11 +45,12 @@ func (c *connection) clientAuthenticate(config *ClientConfig) error { if err != nil { return err } - if ok { + if ok == authSuccess { // success return nil + } else if ok == authFailure { + tried[auth.method()] = true } - tried[auth.method()] = true if methods == nil { methods = lastMethods } @@ -82,7 +91,7 @@ type AuthMethod interface { // If authentication is not successful, a []string of alternative // method names is returned. If the slice is nil, it will be ignored // and the previous set of possible methods will be reused. - auth(session []byte, user string, p packetConn, rand io.Reader) (bool, []string, error) + auth(session []byte, user string, p packetConn, rand io.Reader) (authResult, []string, error) // method returns the RFC 4252 method name. method() string @@ -91,13 +100,13 @@ type AuthMethod interface { // "none" authentication, RFC 4252 section 5.2. type noneAuth int -func (n *noneAuth) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { +func (n *noneAuth) auth(session []byte, user string, c packetConn, rand io.Reader) (authResult, []string, error) { if err := c.writePacket(Marshal(&userAuthRequestMsg{ User: user, Service: serviceSSH, Method: "none", })); err != nil { - return false, nil, err + return authFailure, nil, err } return handleAuthResponse(c) @@ -111,7 +120,7 @@ func (n *noneAuth) method() string { // a function call, e.g. by prompting the user. type passwordCallback func() (password string, err error) -func (cb passwordCallback) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { +func (cb passwordCallback) auth(session []byte, user string, c packetConn, rand io.Reader) (authResult, []string, error) { type passwordAuthMsg struct { User string `sshtype:"50"` Service string @@ -125,7 +134,7 @@ func (cb passwordCallback) auth(session []byte, user string, c packetConn, rand // The program may only find out that the user doesn't have a password // when prompting. if err != nil { - return false, nil, err + return authFailure, nil, err } if err := c.writePacket(Marshal(&passwordAuthMsg{ @@ -135,7 +144,7 @@ func (cb passwordCallback) auth(session []byte, user string, c packetConn, rand Reply: false, Password: pw, })); err != nil { - return false, nil, err + return authFailure, nil, err } return handleAuthResponse(c) @@ -178,7 +187,7 @@ func (cb publicKeyCallback) method() string { return "publickey" } -func (cb publicKeyCallback) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { +func (cb publicKeyCallback) auth(session []byte, user string, c packetConn, rand io.Reader) (authResult, []string, error) { // Authentication is performed by sending an enquiry to test if a key is // acceptable to the remote. If the key is acceptable, the client will // attempt to authenticate with the valid key. If not the client will repeat @@ -186,13 +195,13 @@ func (cb publicKeyCallback) auth(session []byte, user string, c packetConn, rand signers, err := cb() if err != nil { - return false, nil, err + return authFailure, nil, err } var methods []string for _, signer := range signers { ok, err := validateKey(signer.PublicKey(), user, c) if err != nil { - return false, nil, err + return authFailure, nil, err } if !ok { continue @@ -206,7 +215,7 @@ func (cb publicKeyCallback) auth(session []byte, user string, c packetConn, rand Method: cb.method(), }, []byte(pub.Type()), pubKey)) if err != nil { - return false, nil, err + return authFailure, nil, err } // manually wrap the serialized signature in a string @@ -224,24 +233,24 @@ func (cb publicKeyCallback) auth(session []byte, user string, c packetConn, rand } p := Marshal(&msg) if err := c.writePacket(p); err != nil { - return false, nil, err + return authFailure, nil, err } - var success bool + var success authResult success, methods, err = handleAuthResponse(c) if err != nil { - return false, nil, err + return authFailure, nil, err } // If authentication succeeds or the list of available methods does not // contain the "publickey" method, do not attempt to authenticate with any // other keys. According to RFC 4252 Section 7, the latter can occur when // additional authentication methods are required. - if success || !containsMethod(methods, cb.method()) { + if success == authSuccess || !containsMethod(methods, cb.method()) { return success, methods, err } } - return false, methods, nil + return authFailure, methods, nil } func containsMethod(methods []string, method string) bool { @@ -318,28 +327,31 @@ func PublicKeysCallback(getSigners func() (signers []Signer, err error)) AuthMet // handleAuthResponse returns whether the preceding authentication request succeeded // along with a list of remaining authentication methods to try next and // an error if an unexpected response was received. -func handleAuthResponse(c packetConn) (bool, []string, error) { +func handleAuthResponse(c packetConn) (authResult, []string, error) { for { packet, err := c.readPacket() if err != nil { - return false, nil, err + return authFailure, nil, err } switch packet[0] { case msgUserAuthBanner: if err := handleBannerResponse(c, packet); err != nil { - return false, nil, err + return authFailure, nil, err } case msgUserAuthFailure: var msg userAuthFailureMsg if err := Unmarshal(packet, &msg); err != nil { - return false, nil, err + return authFailure, nil, err } - return false, msg.Methods, nil + if msg.PartialSuccess { + return authPartialSuccess, msg.Methods, nil + } + return authFailure, msg.Methods, nil case msgUserAuthSuccess: - return true, nil, nil + return authSuccess, nil, nil default: - return false, nil, unexpectedMessageError(msgUserAuthSuccess, packet[0]) + return authFailure, nil, unexpectedMessageError(msgUserAuthSuccess, packet[0]) } } } @@ -381,7 +393,7 @@ func (cb KeyboardInteractiveChallenge) method() string { return "keyboard-interactive" } -func (cb KeyboardInteractiveChallenge) auth(session []byte, user string, c packetConn, rand io.Reader) (bool, []string, error) { +func (cb KeyboardInteractiveChallenge) auth(session []byte, user string, c packetConn, rand io.Reader) (authResult, []string, error) { type initiateMsg struct { User string `sshtype:"50"` Service string @@ -395,20 +407,20 @@ func (cb KeyboardInteractiveChallenge) auth(session []byte, user string, c packe Service: serviceSSH, Method: "keyboard-interactive", })); err != nil { - return false, nil, err + return authFailure, nil, err } for { packet, err := c.readPacket() if err != nil { - return false, nil, err + return authFailure, nil, err } // like handleAuthResponse, but with less options. switch packet[0] { case msgUserAuthBanner: if err := handleBannerResponse(c, packet); err != nil { - return false, nil, err + return authFailure, nil, err } continue case msgUserAuthInfoRequest: @@ -416,18 +428,21 @@ func (cb KeyboardInteractiveChallenge) auth(session []byte, user string, c packe case msgUserAuthFailure: var msg userAuthFailureMsg if err := Unmarshal(packet, &msg); err != nil { - return false, nil, err + return authFailure, nil, err } - return false, msg.Methods, nil + if msg.PartialSuccess { + return authPartialSuccess, msg.Methods, nil + } + return authFailure, msg.Methods, nil case msgUserAuthSuccess: - return true, nil, nil + return authSuccess, nil, nil default: - return false, nil, unexpectedMessageError(msgUserAuthInfoRequest, packet[0]) + return authFailure, nil, unexpectedMessageError(msgUserAuthInfoRequest, packet[0]) } var msg userAuthInfoRequestMsg if err := Unmarshal(packet, &msg); err != nil { - return false, nil, err + return authFailure, nil, err } // Manually unpack the prompt/echo pairs. @@ -437,7 +452,7 @@ func (cb KeyboardInteractiveChallenge) auth(session []byte, user string, c packe for i := 0; i < int(msg.NumPrompts); i++ { prompt, r, ok := parseString(rest) if !ok || len(r) == 0 { - return false, nil, errors.New("ssh: prompt format error") + return authFailure, nil, errors.New("ssh: prompt format error") } prompts = append(prompts, string(prompt)) echos = append(echos, r[0] != 0) @@ -445,16 +460,16 @@ func (cb KeyboardInteractiveChallenge) auth(session []byte, user string, c packe } if len(rest) != 0 { - return false, nil, errors.New("ssh: extra data following keyboard-interactive pairs") + return authFailure, nil, errors.New("ssh: extra data following keyboard-interactive pairs") } answers, err := cb(msg.User, msg.Instruction, prompts, echos) if err != nil { - return false, nil, err + return authFailure, nil, err } if len(answers) != len(prompts) { - return false, nil, errors.New("ssh: not enough answers from keyboard-interactive callback") + return authFailure, nil, errors.New("ssh: not enough answers from keyboard-interactive callback") } responseLength := 1 + 4 for _, a := range answers { @@ -470,7 +485,7 @@ func (cb KeyboardInteractiveChallenge) auth(session []byte, user string, c packe } if err := c.writePacket(serialized); err != nil { - return false, nil, err + return authFailure, nil, err } } } @@ -480,10 +495,10 @@ type retryableAuthMethod struct { maxTries int } -func (r *retryableAuthMethod) auth(session []byte, user string, c packetConn, rand io.Reader) (ok bool, methods []string, err error) { +func (r *retryableAuthMethod) auth(session []byte, user string, c packetConn, rand io.Reader) (ok authResult, methods []string, err error) { for i := 0; r.maxTries <= 0 || i < r.maxTries; i++ { ok, methods, err = r.authMethod.auth(session, user, c, rand) - if ok || err != nil { // either success or error terminate + if ok != authFailure || err != nil { // either success, partial success or error terminate return ok, methods, err } } diff --git a/vendor/golang.org/x/crypto/ssh/common.go b/vendor/golang.org/x/crypto/ssh/common.go index 135b4edd7..04f3620b3 100644 --- a/vendor/golang.org/x/crypto/ssh/common.go +++ b/vendor/golang.org/x/crypto/ssh/common.go @@ -24,11 +24,21 @@ const ( serviceSSH = "ssh-connection" ) -// supportedCiphers specifies the supported ciphers in preference order. +// supportedCiphers lists ciphers we support but might not recommend. var supportedCiphers = []string{ "aes128-ctr", "aes192-ctr", "aes256-ctr", "aes128-gcm@openssh.com", - "arcfour256", "arcfour128", + chacha20Poly1305ID, + "arcfour256", "arcfour128", "arcfour", + aes128cbcID, + tripledescbcID, +} + +// preferredCiphers specifies the default preference for ciphers. +var preferredCiphers = []string{ + "aes128-gcm@openssh.com", + chacha20Poly1305ID, + "aes128-ctr", "aes192-ctr", "aes256-ctr", } // supportedKexAlgos specifies the supported key-exchange algorithms in @@ -211,7 +221,7 @@ func (c *Config) SetDefaults() { c.Rand = rand.Reader } if c.Ciphers == nil { - c.Ciphers = supportedCiphers + c.Ciphers = preferredCiphers } var ciphers []string for _, c := range c.Ciphers { diff --git a/vendor/golang.org/x/crypto/ssh/knownhosts/knownhosts.go b/vendor/golang.org/x/crypto/ssh/knownhosts/knownhosts.go new file mode 100644 index 000000000..46dad1401 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/knownhosts/knownhosts.go @@ -0,0 +1,546 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package knownhosts implements a parser for the OpenSSH +// known_hosts host key database. +package knownhosts + +import ( + "bufio" + "bytes" + "crypto/hmac" + "crypto/rand" + "crypto/sha1" + "encoding/base64" + "errors" + "fmt" + "io" + "net" + "os" + "strings" + + "golang.org/x/crypto/ssh" +) + +// See the sshd manpage +// (http://man.openbsd.org/sshd#SSH_KNOWN_HOSTS_FILE_FORMAT) for +// background. + +type addr struct{ host, port string } + +func (a *addr) String() string { + h := a.host + if strings.Contains(h, ":") { + h = "[" + h + "]" + } + return h + ":" + a.port +} + +type matcher interface { + match([]addr) bool +} + +type hostPattern struct { + negate bool + addr addr +} + +func (p *hostPattern) String() string { + n := "" + if p.negate { + n = "!" + } + + return n + p.addr.String() +} + +type hostPatterns []hostPattern + +func (ps hostPatterns) match(addrs []addr) bool { + matched := false + for _, p := range ps { + for _, a := range addrs { + m := p.match(a) + if !m { + continue + } + if p.negate { + return false + } + matched = true + } + } + return matched +} + +// See +// https://android.googlesource.com/platform/external/openssh/+/ab28f5495c85297e7a597c1ba62e996416da7c7e/addrmatch.c +// The matching of * has no regard for separators, unlike filesystem globs +func wildcardMatch(pat []byte, str []byte) bool { + for { + if len(pat) == 0 { + return len(str) == 0 + } + if len(str) == 0 { + return false + } + + if pat[0] == '*' { + if len(pat) == 1 { + return true + } + + for j := range str { + if wildcardMatch(pat[1:], str[j:]) { + return true + } + } + return false + } + + if pat[0] == '?' || pat[0] == str[0] { + pat = pat[1:] + str = str[1:] + } else { + return false + } + } +} + +func (p *hostPattern) match(a addr) bool { + return wildcardMatch([]byte(p.addr.host), []byte(a.host)) && p.addr.port == a.port +} + +type keyDBLine struct { + cert bool + matcher matcher + knownKey KnownKey +} + +func serialize(k ssh.PublicKey) string { + return k.Type() + " " + base64.StdEncoding.EncodeToString(k.Marshal()) +} + +func (l *keyDBLine) match(addrs []addr) bool { + return l.matcher.match(addrs) +} + +type hostKeyDB struct { + // Serialized version of revoked keys + revoked map[string]*KnownKey + lines []keyDBLine +} + +func newHostKeyDB() *hostKeyDB { + db := &hostKeyDB{ + revoked: make(map[string]*KnownKey), + } + + return db +} + +func keyEq(a, b ssh.PublicKey) bool { + return bytes.Equal(a.Marshal(), b.Marshal()) +} + +// IsAuthorityForHost can be used as a callback in ssh.CertChecker +func (db *hostKeyDB) IsHostAuthority(remote ssh.PublicKey, address string) bool { + h, p, err := net.SplitHostPort(address) + if err != nil { + return false + } + a := addr{host: h, port: p} + + for _, l := range db.lines { + if l.cert && keyEq(l.knownKey.Key, remote) && l.match([]addr{a}) { + return true + } + } + return false +} + +// IsRevoked can be used as a callback in ssh.CertChecker +func (db *hostKeyDB) IsRevoked(key *ssh.Certificate) bool { + _, ok := db.revoked[string(key.Marshal())] + return ok +} + +const markerCert = "@cert-authority" +const markerRevoked = "@revoked" + +func nextWord(line []byte) (string, []byte) { + i := bytes.IndexAny(line, "\t ") + if i == -1 { + return string(line), nil + } + + return string(line[:i]), bytes.TrimSpace(line[i:]) +} + +func parseLine(line []byte) (marker, host string, key ssh.PublicKey, err error) { + if w, next := nextWord(line); w == markerCert || w == markerRevoked { + marker = w + line = next + } + + host, line = nextWord(line) + if len(line) == 0 { + return "", "", nil, errors.New("knownhosts: missing host pattern") + } + + // ignore the keytype as it's in the key blob anyway. + _, line = nextWord(line) + if len(line) == 0 { + return "", "", nil, errors.New("knownhosts: missing key type pattern") + } + + keyBlob, _ := nextWord(line) + + keyBytes, err := base64.StdEncoding.DecodeString(keyBlob) + if err != nil { + return "", "", nil, err + } + key, err = ssh.ParsePublicKey(keyBytes) + if err != nil { + return "", "", nil, err + } + + return marker, host, key, nil +} + +func (db *hostKeyDB) parseLine(line []byte, filename string, linenum int) error { + marker, pattern, key, err := parseLine(line) + if err != nil { + return err + } + + if marker == markerRevoked { + db.revoked[string(key.Marshal())] = &KnownKey{ + Key: key, + Filename: filename, + Line: linenum, + } + + return nil + } + + entry := keyDBLine{ + cert: marker == markerCert, + knownKey: KnownKey{ + Filename: filename, + Line: linenum, + Key: key, + }, + } + + if pattern[0] == '|' { + entry.matcher, err = newHashedHost(pattern) + } else { + entry.matcher, err = newHostnameMatcher(pattern) + } + + if err != nil { + return err + } + + db.lines = append(db.lines, entry) + return nil +} + +func newHostnameMatcher(pattern string) (matcher, error) { + var hps hostPatterns + for _, p := range strings.Split(pattern, ",") { + if len(p) == 0 { + continue + } + + var a addr + var negate bool + if p[0] == '!' { + negate = true + p = p[1:] + } + + if len(p) == 0 { + return nil, errors.New("knownhosts: negation without following hostname") + } + + var err error + if p[0] == '[' { + a.host, a.port, err = net.SplitHostPort(p) + if err != nil { + return nil, err + } + } else { + a.host, a.port, err = net.SplitHostPort(p) + if err != nil { + a.host = p + a.port = "22" + } + } + hps = append(hps, hostPattern{ + negate: negate, + addr: a, + }) + } + return hps, nil +} + +// KnownKey represents a key declared in a known_hosts file. +type KnownKey struct { + Key ssh.PublicKey + Filename string + Line int +} + +func (k *KnownKey) String() string { + return fmt.Sprintf("%s:%d: %s", k.Filename, k.Line, serialize(k.Key)) +} + +// KeyError is returned if we did not find the key in the host key +// database, or there was a mismatch. Typically, in batch +// applications, this should be interpreted as failure. Interactive +// applications can offer an interactive prompt to the user. +type KeyError struct { + // Want holds the accepted host keys. For each key algorithm, + // there can be one hostkey. If Want is empty, the host is + // unknown. If Want is non-empty, there was a mismatch, which + // can signify a MITM attack. + Want []KnownKey +} + +func (u *KeyError) Error() string { + if len(u.Want) == 0 { + return "knownhosts: key is unknown" + } + return "knownhosts: key mismatch" +} + +// RevokedError is returned if we found a key that was revoked. +type RevokedError struct { + Revoked KnownKey +} + +func (r *RevokedError) Error() string { + return "knownhosts: key is revoked" +} + +// check checks a key against the host database. This should not be +// used for verifying certificates. +func (db *hostKeyDB) check(address string, remote net.Addr, remoteKey ssh.PublicKey) error { + if revoked := db.revoked[string(remoteKey.Marshal())]; revoked != nil { + return &RevokedError{Revoked: *revoked} + } + + host, port, err := net.SplitHostPort(remote.String()) + if err != nil { + return fmt.Errorf("knownhosts: SplitHostPort(%s): %v", remote, err) + } + + addrs := []addr{ + {host, port}, + } + + if address != "" { + host, port, err := net.SplitHostPort(address) + if err != nil { + return fmt.Errorf("knownhosts: SplitHostPort(%s): %v", address, err) + } + + addrs = append(addrs, addr{host, port}) + } + + return db.checkAddrs(addrs, remoteKey) +} + +// checkAddrs checks if we can find the given public key for any of +// the given addresses. If we only find an entry for the IP address, +// or only the hostname, then this still succeeds. +func (db *hostKeyDB) checkAddrs(addrs []addr, remoteKey ssh.PublicKey) error { + // TODO(hanwen): are these the right semantics? What if there + // is just a key for the IP address, but not for the + // hostname? + + // Algorithm => key. + knownKeys := map[string]KnownKey{} + for _, l := range db.lines { + if l.match(addrs) { + typ := l.knownKey.Key.Type() + if _, ok := knownKeys[typ]; !ok { + knownKeys[typ] = l.knownKey + } + } + } + + keyErr := &KeyError{} + for _, v := range knownKeys { + keyErr.Want = append(keyErr.Want, v) + } + + // Unknown remote host. + if len(knownKeys) == 0 { + return keyErr + } + + // If the remote host starts using a different, unknown key type, we + // also interpret that as a mismatch. + if known, ok := knownKeys[remoteKey.Type()]; !ok || !keyEq(known.Key, remoteKey) { + return keyErr + } + + return nil +} + +// The Read function parses file contents. +func (db *hostKeyDB) Read(r io.Reader, filename string) error { + scanner := bufio.NewScanner(r) + + lineNum := 0 + for scanner.Scan() { + lineNum++ + line := scanner.Bytes() + line = bytes.TrimSpace(line) + if len(line) == 0 || line[0] == '#' { + continue + } + + if err := db.parseLine(line, filename, lineNum); err != nil { + return fmt.Errorf("knownhosts: %s:%d: %v", filename, lineNum, err) + } + } + return scanner.Err() +} + +// New creates a host key callback from the given OpenSSH host key +// files. The returned callback is for use in +// ssh.ClientConfig.HostKeyCallback. +func New(files ...string) (ssh.HostKeyCallback, error) { + db := newHostKeyDB() + for _, fn := range files { + f, err := os.Open(fn) + if err != nil { + return nil, err + } + defer f.Close() + if err := db.Read(f, fn); err != nil { + return nil, err + } + } + + var certChecker ssh.CertChecker + certChecker.IsHostAuthority = db.IsHostAuthority + certChecker.IsRevoked = db.IsRevoked + certChecker.HostKeyFallback = db.check + + return certChecker.CheckHostKey, nil +} + +// Normalize normalizes an address into the form used in known_hosts +func Normalize(address string) string { + host, port, err := net.SplitHostPort(address) + if err != nil { + host = address + port = "22" + } + entry := host + if port != "22" { + entry = "[" + entry + "]:" + port + } else if strings.Contains(host, ":") && !strings.HasPrefix(host, "[") { + entry = "[" + entry + "]" + } + return entry +} + +// Line returns a line to add append to the known_hosts files. +func Line(addresses []string, key ssh.PublicKey) string { + var trimmed []string + for _, a := range addresses { + trimmed = append(trimmed, Normalize(a)) + } + + return strings.Join(trimmed, ",") + " " + serialize(key) +} + +// HashHostname hashes the given hostname. The hostname is not +// normalized before hashing. +func HashHostname(hostname string) string { + // TODO(hanwen): check if we can safely normalize this always. + salt := make([]byte, sha1.Size) + + _, err := rand.Read(salt) + if err != nil { + panic(fmt.Sprintf("crypto/rand failure %v", err)) + } + + hash := hashHost(hostname, salt) + return encodeHash(sha1HashType, salt, hash) +} + +func decodeHash(encoded string) (hashType string, salt, hash []byte, err error) { + if len(encoded) == 0 || encoded[0] != '|' { + err = errors.New("knownhosts: hashed host must start with '|'") + return + } + components := strings.Split(encoded, "|") + if len(components) != 4 { + err = fmt.Errorf("knownhosts: got %d components, want 3", len(components)) + return + } + + hashType = components[1] + if salt, err = base64.StdEncoding.DecodeString(components[2]); err != nil { + return + } + if hash, err = base64.StdEncoding.DecodeString(components[3]); err != nil { + return + } + return +} + +func encodeHash(typ string, salt []byte, hash []byte) string { + return strings.Join([]string{"", + typ, + base64.StdEncoding.EncodeToString(salt), + base64.StdEncoding.EncodeToString(hash), + }, "|") +} + +// See https://android.googlesource.com/platform/external/openssh/+/ab28f5495c85297e7a597c1ba62e996416da7c7e/hostfile.c#120 +func hashHost(hostname string, salt []byte) []byte { + mac := hmac.New(sha1.New, salt) + mac.Write([]byte(hostname)) + return mac.Sum(nil) +} + +type hashedHost struct { + salt []byte + hash []byte +} + +const sha1HashType = "1" + +func newHashedHost(encoded string) (*hashedHost, error) { + typ, salt, hash, err := decodeHash(encoded) + if err != nil { + return nil, err + } + + // The type field seems for future algorithm agility, but it's + // actually hardcoded in openssh currently, see + // https://android.googlesource.com/platform/external/openssh/+/ab28f5495c85297e7a597c1ba62e996416da7c7e/hostfile.c#120 + if typ != sha1HashType { + return nil, fmt.Errorf("knownhosts: got hash type %s, must be '1'", typ) + } + + return &hashedHost{salt: salt, hash: hash}, nil +} + +func (h *hashedHost) match(addrs []addr) bool { + for _, a := range addrs { + if bytes.Equal(hashHost(Normalize(a.String()), h.salt), h.hash) { + return true + } + } + return false +} diff --git a/vendor/golang.org/x/crypto/ssh/transport.go b/vendor/golang.org/x/crypto/ssh/transport.go index 01150eb89..f6fae1db4 100644 --- a/vendor/golang.org/x/crypto/ssh/transport.go +++ b/vendor/golang.org/x/crypto/ssh/transport.go @@ -6,6 +6,7 @@ package ssh import ( "bufio" + "bytes" "errors" "io" "log" @@ -232,52 +233,22 @@ var ( clientKeys = direction{[]byte{'A'}, []byte{'C'}, []byte{'E'}} ) -// generateKeys generates key material for IV, MAC and encryption. -func generateKeys(d direction, algs directionAlgorithms, kex *kexResult) (iv, key, macKey []byte) { - cipherMode := cipherModes[algs.Cipher] - macMode := macModes[algs.MAC] - - iv = make([]byte, cipherMode.ivSize) - key = make([]byte, cipherMode.keySize) - macKey = make([]byte, macMode.keySize) - - generateKeyMaterial(iv, d.ivTag, kex) - generateKeyMaterial(key, d.keyTag, kex) - generateKeyMaterial(macKey, d.macKeyTag, kex) - return -} - // setupKeys sets the cipher and MAC keys from kex.K, kex.H and sessionId, as // described in RFC 4253, section 6.4. direction should either be serverKeys // (to setup server->client keys) or clientKeys (for client->server keys). func newPacketCipher(d direction, algs directionAlgorithms, kex *kexResult) (packetCipher, error) { - iv, key, macKey := generateKeys(d, algs, kex) + cipherMode := cipherModes[algs.Cipher] + macMode := macModes[algs.MAC] - if algs.Cipher == gcmCipherID { - return newGCMCipher(iv, key) - } + iv := make([]byte, cipherMode.ivSize) + key := make([]byte, cipherMode.keySize) + macKey := make([]byte, macMode.keySize) - if algs.Cipher == aes128cbcID { - return newAESCBCCipher(iv, key, macKey, algs) - } + generateKeyMaterial(iv, d.ivTag, kex) + generateKeyMaterial(key, d.keyTag, kex) + generateKeyMaterial(macKey, d.macKeyTag, kex) - if algs.Cipher == tripledescbcID { - return newTripleDESCBCCipher(iv, key, macKey, algs) - } - - c := &streamPacketCipher{ - mac: macModes[algs.MAC].new(macKey), - etm: macModes[algs.MAC].etm, - } - c.macResult = make([]byte, c.mac.Size()) - - var err error - c.cipher, err = cipherModes[algs.Cipher].createStream(key, iv) - if err != nil { - return nil, err - } - - return c, nil + return cipherModes[algs.Cipher].create(key, iv, macKey, algs) } // generateKeyMaterial fills out with key material generated from tag, K, H @@ -342,7 +313,7 @@ func readVersion(r io.Reader) ([]byte, error) { var ok bool var buf [1]byte - for len(versionString) < maxVersionStringBytes { + for length := 0; length < maxVersionStringBytes; length++ { _, err := io.ReadFull(r, buf[:]) if err != nil { return nil, err @@ -350,6 +321,13 @@ func readVersion(r io.Reader) ([]byte, error) { // The RFC says that the version should be terminated with \r\n // but several SSH servers actually only send a \n. if buf[0] == '\n' { + if !bytes.HasPrefix(versionString, []byte("SSH-")) { + // RFC 4253 says we need to ignore all version string lines + // except the one containing the SSH version (provided that + // all the lines do not exceed 255 bytes in total). + versionString = versionString[:0] + continue + } ok = true break } diff --git a/vendor/vendor.json b/vendor/vendor.json index 6622319d8..45a53cd41 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -2257,6 +2257,12 @@ "revision": "453249f01cfeb54c3d549ddb75ff152ca243f9d8", "revisionTime": "2017-02-08T20:51:15Z" }, + { + "checksumSHA1": "hfABw6DX9B4Ma+88qDDGz9qY45s=", + "path": "golang.org/x/crypto/internal/chacha20", + "revision": "9de5f2eaf759b4c4550b3db39fed2e9e5f86f45c", + "revisionTime": "2018-02-11T11:39:43Z" + }, { "checksumSHA1": "MCeXr2RNeiG1XG6V+er1OR0qyeo=", "path": "golang.org/x/crypto/md4", @@ -2300,10 +2306,16 @@ "revisionTime": "2017-02-08T20:51:15Z" }, { - "checksumSHA1": "pySTR3iSeU7FhjbBnQPNxgyIa4I=", + "checksumSHA1": "kVKE0OX1Xdw5mG7XKT86DLLKE2I=", + "path": "golang.org/x/crypto/poly1305", + "revision": "9de5f2eaf759b4c4550b3db39fed2e9e5f86f45c", + "revisionTime": "2018-02-11T11:39:43Z" + }, + { + "checksumSHA1": "ZK4HWtg3hJzayz0RRcc6qHpkums=", "path": "golang.org/x/crypto/ssh", - "revision": "d585fd2cc9195196078f516b69daff6744ef5e84", - "revisionTime": "2017-12-16T04:08:15Z", + "revision": "9de5f2eaf759b4c4550b3db39fed2e9e5f86f45c", + "revisionTime": "2018-02-11T11:39:43Z", "version": "master", "versionExact": "master" }, @@ -2315,6 +2327,14 @@ "version": "master", "versionExact": "master" }, + { + "checksumSHA1": "He3gVAAa2cym6sK3f2tgZoCMdOk=", + "path": "golang.org/x/crypto/ssh/knownhosts", + "revision": "650f4a345ab4e5b245a3034b110ebc7299e68186", + "revisionTime": "2017-09-27T09:16:38Z", + "version": "master", + "versionExact": "master" + }, { "checksumSHA1": "9jjO5GjLa0XF/nfWihF02RoH4qc=", "path": "golang.org/x/net/context", From 1e7fd1c4ea370df820031caa0690e457c38e385d Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 14 Feb 2018 14:02:30 -0500 Subject: [PATCH 038/156] add test for host key validation This tests basic known_hosts validation for the ssh communicator. --- communicator/ssh/communicator_test.go | 70 +++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/communicator/ssh/communicator_test.go b/communicator/ssh/communicator_test.go index b2344fa55..5064a7e82 100644 --- a/communicator/ssh/communicator_test.go +++ b/communicator/ssh/communicator_test.go @@ -5,6 +5,7 @@ package ssh import ( "bufio" "bytes" + "encoding/base64" "fmt" "io" "io/ioutil" @@ -13,6 +14,7 @@ import ( "os" "path/filepath" "regexp" + "strconv" "strings" "testing" @@ -171,6 +173,74 @@ func TestStart(t *testing.T) { } } +func TestHostKey(t *testing.T) { + // get the server's public key + signer, err := ssh.ParsePrivateKey([]byte(testServerPrivateKey)) + if err != nil { + panic("unable to parse private key: " + err.Error()) + } + pubKey := fmt.Sprintf("ssh-rsa %s", base64.StdEncoding.EncodeToString(signer.PublicKey().Marshal())) + + address := newMockLineServer(t) + host, p, _ := net.SplitHostPort(address) + port, _ := strconv.Atoi(p) + + connInfo := &connectionInfo{ + User: "user", + Password: "pass", + Host: host, + HostKey: pubKey, + Port: port, + Timeout: "30s", + } + + cfg, err := prepareSSHConfig(connInfo) + if err != nil { + t.Fatal(err) + } + + c := &Communicator{ + connInfo: connInfo, + config: cfg, + } + + var cmd remote.Cmd + stdout := new(bytes.Buffer) + cmd.Command = "echo foo" + cmd.Stdout = stdout + + if err := c.Start(&cmd); err != nil { + t.Fatal(err) + } + if err := c.Disconnect(); err != nil { + t.Fatal(err) + } + + // now check with the wrong HostKey + address = newMockLineServer(t) + _, p, _ = net.SplitHostPort(address) + port, _ = strconv.Atoi(p) + + connInfo.HostKey = testClientPublicKey + connInfo.Port = port + + cfg, err = prepareSSHConfig(connInfo) + if err != nil { + t.Fatal(err) + } + + c = &Communicator{ + connInfo: connInfo, + config: cfg, + } + + err = c.Start(&cmd) + if err == nil || !strings.Contains(err.Error(), "mismatch") { + t.Fatalf("expected host key mismatch, got error:%v", err) + } + +} + func TestAccUploadFile(t *testing.T) { // use the local ssh server and scp binary to check uploads if ok := os.Getenv("SSH_UPLOAD_TEST"); ok == "" { From bdfa97dbdb7b4cfa4168b0478f7eaabe6bc51105 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 14 Feb 2018 15:23:07 -0500 Subject: [PATCH 039/156] add tests for signed host certs This checks that we can verify host certificates signed by a CA --- communicator/ssh/communicator_test.go | 109 ++++++++++++++++++++++---- 1 file changed, 94 insertions(+), 15 deletions(-) diff --git a/communicator/ssh/communicator_test.go b/communicator/ssh/communicator_test.go index 5064a7e82..9a2d715f2 100644 --- a/communicator/ssh/communicator_test.go +++ b/communicator/ssh/communicator_test.go @@ -52,21 +52,26 @@ gqnBycHj6AhEycjda75cs+0zybZvN4x65KZHOGW/O/7OAWEcZP5TPb3zf9ned3Hl NsZoFj52ponUM6+99A2CmezFCN16c4mbA//luWF+k3VVqR6BpkrhKw== -----END RSA PRIVATE KEY-----` -var serverConfig = &ssh.ServerConfig{ - PasswordCallback: acceptUserPass("user", "pass"), - PublicKeyCallback: acceptPublicKey(testClientPublicKey), -} +// this cert was signed by the key from testCAPublicKey +const testServerHostCert = `ssh-rsa-cert-v01@openssh.com AAAAHHNzaC1yc2EtY2VydC12MDFAb3BlbnNzaC5jb20AAAAgvQ3Bs1ex7277b9q6I0fNaWsVEC16f+LcT8RLPSVMEVMAAAADAQABAAABAQDX2UZWxOohPmKI1hGCehjULCRsRNblyr5HOTm/+ROV/fVelJTvQdVaRtMREQKNph1czaAZxtv6zGmroa1d/UzeRWibJyqHHCE+/gKvpenhZP+OQXH3P4UXOl6h0YlaM4fovYfm5fUK+v0QN1Cn2338nfb+oEWe1jwbChQj/L/UxJOYyIW26l0w4M3Tri93eDIwpPCuVDy1kzppi7I4+y60uVRjsznHkXAwNi+c8NJ7JP8jDTOzcH40LKp54x3ZPtjNAWdEBOPQzuszkuhKzsNWpWuI4QAGywXIuPfU9uhqguE4qByqgz2SGQ3OvsUdW+L4OFgzaMPQPC+pks3o2acvAAAAAAAAAAAAAAACAAAAB2NhLXRlc3QAAAANAAAACTEyNy4wLjAuMQAAAABag0jkAAAAAHDcHtAAAAAAAAAAAAAAAAAAAAEXAAAAB3NzaC1yc2EAAAADAQABAAABAQCrozyZIhdEvalCn+eSzHH94cO9ykiywA13ntWI7mJcHBwYTeCYWG8E9zGXyp2iDOjCGudM0Tdt8o0OofKChk9Z/qiUN0G8y1kmaXBlBM3qA5R9NPpvMYMNkYLfX6ivtZCnqrsbzaoqN2Oc/7H2StHzJWh/XCGu9otQZA6vdv1oSmAsZOjw/xIGaGQqDUaLq21J280PP1qSbdJHf76iSHE+TWe3YpqV946JWM5tCh0DykZ10VznvxYpUjzhr07IN3tVKxOXbPnnU7lX6IaLIWgfzLqwSyheeux05c3JLF9iF4sFu8ou4hwQz1iuUTU1jxgwZP0w/bkXgFFs0949lW81AAABDwAAAAdzc2gtcnNhAAABAEyoiVkZ5z79nh3WSU5mU2U7e2BItnnEqsJIm9EN+35uG0yORSXmQoaa9mtli7G3r79tyqEJd/C95EdNvU/9TjaoDcbH8OHP+Ue9XSfUzBuQ6bGSXe6mlZlO7QJ1cIyWphFP3MkrweDSiJ+SpeXzLzZkiJ7zKv5czhBEyG/MujFgvikotL+eUNG42y2cgsesXSjENSBS3l11q55a+RM2QKt3W32im8CsSxrH6Mz6p4JXQNgsVvZRknLxNlWXULFB2HLTunPKzJNMTf6xZf66oivSBAXVIdNKhlVpAQ3dT/dW5K6J4aQF/hjWByyLprFwZ16cPDqvtalnTCpbRYelNbw=` -func init() { - // Parse and set the private key of the server, required to accept connections - signer, err := ssh.ParsePrivateKey([]byte(testServerPrivateKey)) - if err != nil { - panic("unable to parse private key: " + err.Error()) +const testCAPublicKey = `ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrozyZIhdEvalCn+eSzHH94cO9ykiywA13ntWI7mJcHBwYTeCYWG8E9zGXyp2iDOjCGudM0Tdt8o0OofKChk9Z/qiUN0G8y1kmaXBlBM3qA5R9NPpvMYMNkYLfX6ivtZCnqrsbzaoqN2Oc/7H2StHzJWh/XCGu9otQZA6vdv1oSmAsZOjw/xIGaGQqDUaLq21J280PP1qSbdJHf76iSHE+TWe3YpqV946JWM5tCh0DykZ10VznvxYpUjzhr07IN3tVKxOXbPnnU7lX6IaLIWgfzLqwSyheeux05c3JLF9iF4sFu8ou4hwQz1iuUTU1jxgwZP0w/bkXgFFs0949lW81` + +func newMockLineServer(t *testing.T, signer ssh.Signer) string { + serverConfig := &ssh.ServerConfig{ + PasswordCallback: acceptUserPass("user", "pass"), + PublicKeyCallback: acceptPublicKey(testClientPublicKey), + } + + var err error + if signer == nil { + signer, err = ssh.ParsePrivateKey([]byte(testServerPrivateKey)) + if err != nil { + t.Fatalf("unable to parse private key: %s", err) + } } serverConfig.AddHostKey(signer) -} -func newMockLineServer(t *testing.T) string { l, err := net.Listen("tcp", "127.0.0.1:0") if err != nil { t.Fatalf("Unable to listen for connection: %s", err) @@ -113,7 +118,7 @@ func newMockLineServer(t *testing.T) string { } func TestNew_Invalid(t *testing.T) { - address := newMockLineServer(t) + address := newMockLineServer(t, nil) parts := strings.Split(address, ":") r := &terraform.InstanceState{ @@ -141,7 +146,7 @@ func TestNew_Invalid(t *testing.T) { } func TestStart(t *testing.T) { - address := newMockLineServer(t) + address := newMockLineServer(t, nil) parts := strings.Split(address, ":") r := &terraform.InstanceState{ @@ -181,7 +186,7 @@ func TestHostKey(t *testing.T) { } pubKey := fmt.Sprintf("ssh-rsa %s", base64.StdEncoding.EncodeToString(signer.PublicKey().Marshal())) - address := newMockLineServer(t) + address := newMockLineServer(t, nil) host, p, _ := net.SplitHostPort(address) port, _ := strconv.Atoi(p) @@ -217,7 +222,7 @@ func TestHostKey(t *testing.T) { } // now check with the wrong HostKey - address = newMockLineServer(t) + address = newMockLineServer(t, nil) _, p, _ = net.SplitHostPort(address) port, _ = strconv.Atoi(p) @@ -238,7 +243,81 @@ func TestHostKey(t *testing.T) { if err == nil || !strings.Contains(err.Error(), "mismatch") { t.Fatalf("expected host key mismatch, got error:%v", err) } +} +func TestHostCert(t *testing.T) { + pk, _, _, _, err := ssh.ParseAuthorizedKey([]byte(testServerHostCert)) + if err != nil { + t.Fatal(err) + } + + signer, err := ssh.ParsePrivateKey([]byte(testServerPrivateKey)) + if err != nil { + t.Fatal(err) + } + + signer, err = ssh.NewCertSigner(pk.(*ssh.Certificate), signer) + if err != nil { + t.Fatal(err) + } + + address := newMockLineServer(t, signer) + host, p, _ := net.SplitHostPort(address) + port, _ := strconv.Atoi(p) + + connInfo := &connectionInfo{ + User: "user", + Password: "pass", + Host: host, + HostKey: testCAPublicKey, + Port: port, + Timeout: "30s", + } + + cfg, err := prepareSSHConfig(connInfo) + if err != nil { + t.Fatal(err) + } + + c := &Communicator{ + connInfo: connInfo, + config: cfg, + } + + var cmd remote.Cmd + stdout := new(bytes.Buffer) + cmd.Command = "echo foo" + cmd.Stdout = stdout + + if err := c.Start(&cmd); err != nil { + t.Fatal(err) + } + if err := c.Disconnect(); err != nil { + t.Fatal(err) + } + + // now check with the wrong HostKey + address = newMockLineServer(t, signer) + _, p, _ = net.SplitHostPort(address) + port, _ = strconv.Atoi(p) + + connInfo.HostKey = testClientPublicKey + connInfo.Port = port + + cfg, err = prepareSSHConfig(connInfo) + if err != nil { + t.Fatal(err) + } + + c = &Communicator{ + connInfo: connInfo, + config: cfg, + } + + err = c.Start(&cmd) + if err == nil || !strings.Contains(err.Error(), "authorities") { + t.Fatalf("expected host key mismatch, got error:%v", err) + } } func TestAccUploadFile(t *testing.T) { From 194a4e88e21282e28d963d3f97df7e5cc556c610 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 14 Feb 2018 15:30:18 -0500 Subject: [PATCH 040/156] add host_key and bastion_host_key to the docs --- website/docs/provisioners/connection.html.markdown | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/website/docs/provisioners/connection.html.markdown b/website/docs/provisioners/connection.html.markdown index 9a499bcab..10954f4d1 100644 --- a/website/docs/provisioners/connection.html.markdown +++ b/website/docs/provisioners/connection.html.markdown @@ -83,6 +83,9 @@ provisioner "file" { * `agent_identity` - The preferred identity from the ssh agent for authentication. +* `host_key` - The public key from the remote host or the signing CA, used to + verify the connection. + **Additional arguments only supported by the `winrm` connection type:** * `https` - Set to `true` to connect using HTTPS instead of HTTP. @@ -100,6 +103,9 @@ The `ssh` connection also supports the following fields to facilitate connnectio * `bastion_host` - Setting this enables the bastion Host connection. This host will be connected to first, and then the `host` connection will be made from there. +* `bastion_host_key` - The public key from the remote host or the signing CA, + used to verify the host connection. + * `bastion_port` - The port to use connect to the bastion host. Defaults to the value of the `port` field. From bc90eca19f5d27c16c19bb732a10a95e15419858 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 14 Feb 2018 18:18:12 -0500 Subject: [PATCH 041/156] add the remote-exec retry function to communicator Every provisioner that uses communicator implements its own retryFunc. Take the remote-exec implementation (since it's the most complete) and put it in the communicator package for each provisioner to use. Add a public interface `communicator.Fatal`, which can wrap an error to indicate a fatal error that should not be retried. --- communicator/communicator.go | 93 +++++++++++++++++++++++++++++++ communicator/communicator_test.go | 68 ++++++++++++++++++++++ 2 files changed, 161 insertions(+) diff --git a/communicator/communicator.go b/communicator/communicator.go index 5fa2631a4..3749a9f98 100644 --- a/communicator/communicator.go +++ b/communicator/communicator.go @@ -1,8 +1,11 @@ package communicator import ( + "context" "fmt" "io" + "log" + "sync/atomic" "time" "github.com/hashicorp/terraform/communicator/remote" @@ -51,3 +54,93 @@ func New(s *terraform.InstanceState) (Communicator, error) { return nil, fmt.Errorf("connection type '%s' not supported", connType) } } + +// maxBackoffDealy is the maximum delay between retry attempts +var maxBackoffDelay = 10 * time.Second +var initialBackoffDelay = time.Second + +type Fatal interface { + FatalError() error +} + +func Retry(ctx context.Context, f func() error) error { + // container for atomic error value + type errWrap struct { + E error + } + + // Try the function in a goroutine + var errVal atomic.Value + doneCh := make(chan struct{}) + go func() { + defer close(doneCh) + + delay := time.Duration(0) + for { + // If our context ended, we want to exit right away. + select { + case <-ctx.Done(): + return + case <-time.After(delay): + } + + // Try the function call + err := f() + + // return if we have no error, or a FatalError + done := false + switch e := err.(type) { + case nil: + done = true + case Fatal: + err = e.FatalError() + done = true + } + + errVal.Store(&errWrap{err}) + + if done { + return + } + + log.Printf("[WARN] retryable error: %v", err) + + delay *= 2 + + if delay == 0 { + delay = initialBackoffDelay + } + + if delay > maxBackoffDelay { + delay = maxBackoffDelay + } + + log.Printf("[INFO] sleeping for %s", delay) + } + }() + + // Wait for completion + select { + case <-ctx.Done(): + case <-doneCh: + } + + var lastErr error + // Check if we got an error executing + if ev, ok := errVal.Load().(errWrap); ok { + lastErr = ev.E + } + + // Check if we have a context error to check if we're interrupted or timeout + switch ctx.Err() { + case context.Canceled: + return fmt.Errorf("interrupted - last error: %v", lastErr) + case context.DeadlineExceeded: + return fmt.Errorf("timeout - last error: %v", lastErr) + } + + if lastErr != nil { + return lastErr + } + return nil +} diff --git a/communicator/communicator_test.go b/communicator/communicator_test.go index 33a91cd6f..659222421 100644 --- a/communicator/communicator_test.go +++ b/communicator/communicator_test.go @@ -1,7 +1,12 @@ package communicator import ( + "context" + "errors" + "io" + "net" "testing" + "time" "github.com/hashicorp/terraform/terraform" ) @@ -28,3 +33,66 @@ func TestCommunicator_new(t *testing.T) { t.Fatalf("err: %v", err) } } +func TestRetryFunc(t *testing.T) { + origMax := maxBackoffDelay + maxBackoffDelay = time.Second + origStart := initialBackoffDelay + initialBackoffDelay = 10 * time.Millisecond + + defer func() { + maxBackoffDelay = origMax + initialBackoffDelay = origStart + }() + + // succeed on the third try + errs := []error{io.EOF, &net.OpError{Err: errors.New("ERROR")}, nil} + count := 0 + + ctx, cancel := context.WithTimeout(context.Background(), time.Second) + defer cancel() + + err := Retry(ctx, func() error { + if count >= len(errs) { + return errors.New("failed to stop after nil error") + } + + err := errs[count] + count++ + + return err + }) + + if count != 3 { + t.Fatal("retry func should have been called 3 times") + } + + if err != nil { + t.Fatal(err) + } +} + +func TestRetryFuncBackoff(t *testing.T) { + origMax := maxBackoffDelay + maxBackoffDelay = time.Second + origStart := initialBackoffDelay + initialBackoffDelay = 100 * time.Millisecond + + defer func() { + maxBackoffDelay = origMax + initialBackoffDelay = origStart + }() + + count := 0 + + ctx, cancel := context.WithTimeout(context.Background(), time.Second) + defer cancel() + + Retry(ctx, func() error { + count++ + return io.EOF + }) + + if count > 4 { + t.Fatalf("retry func failed to backoff. called %d times", count) + } +} From f5b8091e2ced4d0d77d00f7106ebf2e2ffa947ce Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 14 Feb 2018 18:21:26 -0500 Subject: [PATCH 042/156] remove retryFunc It's now in the communicator package --- .../remote-exec/resource_provisioner.go | 80 +------------------ .../remote-exec/resource_provisioner_test.go | 62 -------------- 2 files changed, 4 insertions(+), 138 deletions(-) diff --git a/builtin/provisioners/remote-exec/resource_provisioner.go b/builtin/provisioners/remote-exec/resource_provisioner.go index ba811dafe..8c8c09298 100644 --- a/builtin/provisioners/remote-exec/resource_provisioner.go +++ b/builtin/provisioners/remote-exec/resource_provisioner.go @@ -9,7 +9,6 @@ import ( "log" "os" "strings" - "sync/atomic" "time" "github.com/hashicorp/terraform/communicator" @@ -159,7 +158,7 @@ func runScripts( scripts []io.ReadCloser) error { // Wrap out context in a cancelation function that we use to // kill the connection. - ctx, cancelFunc := context.WithCancel(ctx) + ctx, cancelFunc := context.WithTimeout(ctx, comm.Timeout()) defer cancelFunc() // Wait for the context to end and then disconnect @@ -169,7 +168,7 @@ func runScripts( }() // Wait and retry until we establish the connection - err := retryFunc(ctx, comm.Timeout(), func() error { + err := communicator.Retry(ctx, func() error { err := comm.Connect(o) return err }) @@ -187,7 +186,8 @@ func runScripts( go copyOutput(o, errR, errDoneCh) remotePath := comm.ScriptPath() - err = retryFunc(ctx, comm.Timeout(), func() error { + + err = communicator.Retry(ctx, func() error { if err := comm.UploadScript(remotePath, script); err != nil { return fmt.Errorf("Failed to upload script: %v", err) } @@ -248,75 +248,3 @@ func copyOutput( o.Output(line) } } - -// retryFunc is used to retry a function for a given duration -func retryFunc(ctx context.Context, timeout time.Duration, f func() error) error { - // Build a new context with the timeout - ctx, done := context.WithTimeout(ctx, timeout) - defer done() - - // container for atomic error value - type errWrap struct { - E error - } - - // Try the function in a goroutine - var errVal atomic.Value - doneCh := make(chan struct{}) - go func() { - defer close(doneCh) - - delay := time.Duration(0) - for { - // If our context ended, we want to exit right away. - select { - case <-ctx.Done(): - return - case <-time.After(delay): - } - - // Try the function call - err := f() - errVal.Store(&errWrap{err}) - - if err == nil { - return - } - - log.Printf("[WARN] retryable error: %v", err) - - delay *= 2 - - if delay == 0 { - delay = initialBackoffDelay - } - - if delay > maxBackoffDelay { - delay = maxBackoffDelay - } - - log.Printf("[INFO] sleeping for %s", delay) - } - }() - - // Wait for completion - select { - case <-ctx.Done(): - case <-doneCh: - } - - // Check if we have a context error to check if we're interrupted or timeout - switch ctx.Err() { - case context.Canceled: - return fmt.Errorf("interrupted") - case context.DeadlineExceeded: - return fmt.Errorf("timeout") - } - - // Check if we got an error executing - if ev, ok := errVal.Load().(errWrap); ok { - return ev.E - } - - return nil -} diff --git a/builtin/provisioners/remote-exec/resource_provisioner_test.go b/builtin/provisioners/remote-exec/resource_provisioner_test.go index 8c447788d..a6e024fe5 100644 --- a/builtin/provisioners/remote-exec/resource_provisioner_test.go +++ b/builtin/provisioners/remote-exec/resource_provisioner_test.go @@ -2,12 +2,8 @@ package remoteexec import ( "bytes" - "context" - "errors" "io" - "net" "testing" - "time" "strings" @@ -210,64 +206,6 @@ func TestResourceProvider_CollectScripts_scriptsEmpty(t *testing.T) { } } -func TestRetryFunc(t *testing.T) { - origMax := maxBackoffDelay - maxBackoffDelay = time.Second - origStart := initialBackoffDelay - initialBackoffDelay = 10 * time.Millisecond - - defer func() { - maxBackoffDelay = origMax - initialBackoffDelay = origStart - }() - - // succeed on the third try - errs := []error{io.EOF, &net.OpError{Err: errors.New("ERROR")}, nil} - count := 0 - - err := retryFunc(context.Background(), time.Second, func() error { - if count >= len(errs) { - return errors.New("failed to stop after nil error") - } - - err := errs[count] - count++ - - return err - }) - - if count != 3 { - t.Fatal("retry func should have been called 3 times") - } - - if err != nil { - t.Fatal(err) - } -} - -func TestRetryFuncBackoff(t *testing.T) { - origMax := maxBackoffDelay - maxBackoffDelay = time.Second - origStart := initialBackoffDelay - initialBackoffDelay = 100 * time.Millisecond - - defer func() { - maxBackoffDelay = origMax - initialBackoffDelay = origStart - }() - - count := 0 - - retryFunc(context.Background(), time.Second, func() error { - count++ - return io.EOF - }) - - if count > 4 { - t.Fatalf("retry func failed to backoff. called %d times", count) - } -} - func testConfig(t *testing.T, c map[string]interface{}) *terraform.ResourceConfig { r, err := config.NewRawConfig(c) if err != nil { From 89a0ac6e8939fc8764bff1174f1ea68930cfc8e6 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 14 Feb 2018 18:25:05 -0500 Subject: [PATCH 043/156] remove retryFunc It's now in the communicator package --- .../provisioners/chef/resource_provisioner.go | 24 ++++--------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/builtin/provisioners/chef/resource_provisioner.go b/builtin/provisioners/chef/resource_provisioner.go index 8fc45e59e..6edf973f3 100644 --- a/builtin/provisioners/chef/resource_provisioner.go +++ b/builtin/provisioners/chef/resource_provisioner.go @@ -15,7 +15,6 @@ import ( "strings" "sync" "text/template" - "time" "github.com/hashicorp/terraform/communicator" "github.com/hashicorp/terraform/communicator/remote" @@ -307,8 +306,11 @@ func applyFn(ctx context.Context) error { return err } + ctx, cancel := context.WithTimeout(ctx, comm.Timeout()) + defer cancel() + // Wait and retry until we establish the connection - err = retryFunc(comm.Timeout(), func() error { + err = communicator.Retry(ctx, func() error { return comm.Connect(o) }) if err != nil { @@ -717,24 +719,6 @@ func (p *provisioner) copyOutput(o terraform.UIOutput, r io.Reader, doneCh chan< } } -// retryFunc is used to retry a function for a given duration -func retryFunc(timeout time.Duration, f func() error) error { - finish := time.After(timeout) - for { - err := f() - if err == nil { - return nil - } - log.Printf("Retryable error: %v", err) - - select { - case <-finish: - return err - case <-time.After(3 * time.Second): - } - } -} - func decodeConfig(d *schema.ResourceData) (*provisioner, error) { p := &provisioner{ ClientOptions: getStringList(d.Get("client_options")), From d02250c2b94ba20dfbbeb3913e893a2c32cf503c Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 14 Feb 2018 18:30:20 -0500 Subject: [PATCH 044/156] remove retryFunc it's now in the communicator package --- .../provisioners/file/resource_provisioner.go | 41 ++++--------------- 1 file changed, 7 insertions(+), 34 deletions(-) diff --git a/builtin/provisioners/file/resource_provisioner.go b/builtin/provisioners/file/resource_provisioner.go index 9b9e8a97b..30ed5e359 100644 --- a/builtin/provisioners/file/resource_provisioner.go +++ b/builtin/provisioners/file/resource_provisioner.go @@ -4,9 +4,7 @@ import ( "context" "fmt" "io/ioutil" - "log" "os" - "time" "github.com/hashicorp/terraform/communicator" "github.com/hashicorp/terraform/helper/schema" @@ -50,6 +48,9 @@ func applyFn(ctx context.Context) error { return err } + ctx, cancel := context.WithTimeout(ctx, comm.Timeout()) + defer cancel() + // Get the source src, deleteSource, err := getSrc(data) if err != nil { @@ -61,21 +62,11 @@ func applyFn(ctx context.Context) error { // Begin the file copy dst := data.Get("destination").(string) - resultCh := make(chan error, 1) - go func() { - resultCh <- copyFiles(comm, src, dst) - }() - // Allow the file copy to complete unless there is an interrupt. - // If there is an interrupt we make no attempt to cleanly close - // the connection currently. We just abruptly exit. Because Terraform - // taints the resource, this is fine. - select { - case err := <-resultCh: + if err := copyFiles(ctx, comm, src, dst); err != nil { return err - case <-ctx.Done(): - return fmt.Errorf("file transfer interrupted") } + return nil } func validateFn(c *terraform.ResourceConfig) (ws []string, es []error) { @@ -107,9 +98,9 @@ func getSrc(data *schema.ResourceData) (string, bool, error) { } // copyFiles is used to copy the files from a source to a destination -func copyFiles(comm communicator.Communicator, src, dst string) error { +func copyFiles(ctx context.Context, comm communicator.Communicator, src, dst string) error { // Wait and retry until we establish the connection - err := retryFunc(comm.Timeout(), func() error { + err := communicator.Retry(ctx, func() error { err := comm.Connect(nil) return err }) @@ -144,21 +135,3 @@ func copyFiles(comm communicator.Communicator, src, dst string) error { } return err } - -// retryFunc is used to retry a function for a given duration -func retryFunc(timeout time.Duration, f func() error) error { - finish := time.After(timeout) - for { - err := f() - if err == nil { - return nil - } - log.Printf("Retryable error: %v", err) - - select { - case <-finish: - return err - case <-time.After(3 * time.Second): - } - } -} From e331ae9842eebc09cfedf7ba828fd288c7d5f3ee Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 14 Feb 2018 18:32:29 -0500 Subject: [PATCH 045/156] remove retryFunc it's now in the communicator package --- .../habitat/resource_provisioner.go | 29 ++++--------------- 1 file changed, 6 insertions(+), 23 deletions(-) diff --git a/builtin/provisioners/habitat/resource_provisioner.go b/builtin/provisioners/habitat/resource_provisioner.go index f9d47ff07..aa404dae1 100644 --- a/builtin/provisioners/habitat/resource_provisioner.go +++ b/builtin/provisioners/habitat/resource_provisioner.go @@ -6,12 +6,10 @@ import ( "errors" "fmt" "io" - "log" "net/url" "path" "strings" "text/template" - "time" "github.com/hashicorp/terraform/communicator" "github.com/hashicorp/terraform/communicator/remote" @@ -233,10 +231,13 @@ func applyFn(ctx context.Context) error { return err } - err = retryFunc(comm.Timeout(), func() error { - err = comm.Connect(o) - return err + ctx, cancel := context.WithTimeout(ctx, comm.Timeout()) + defer cancel() + + err = communicator.Retry(ctx, func() error { + return comm.Connect(o) }) + if err != nil { return err } @@ -728,24 +729,6 @@ func (p *provisioner) uploadUserTOML(o terraform.UIOutput, comm communicator.Com } -func retryFunc(timeout time.Duration, f func() error) error { - finish := time.After(timeout) - - for { - err := f() - if err == nil { - return nil - } - log.Printf("Retryable error: %v", err) - - select { - case <-finish: - return err - case <-time.After(3 * time.Second): - } - } -} - func (p *provisioner) copyOutput(o terraform.UIOutput, r io.Reader, doneCh chan<- struct{}) { defer close(doneCh) lr := linereader.New(r) From e06f76b90f2b47db63f732d36f523450a3b4d19f Mon Sep 17 00:00:00 2001 From: James Bardin Date: Thu, 15 Feb 2018 14:04:17 -0500 Subject: [PATCH 046/156] Fix type assertion when loading stored error Fix a bug where the last error was not retrieved from errVal.Load due to an incorrect type assertion. --- communicator/communicator.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/communicator/communicator.go b/communicator/communicator.go index 3749a9f98..440c1c727 100644 --- a/communicator/communicator.go +++ b/communicator/communicator.go @@ -55,14 +55,17 @@ func New(s *terraform.InstanceState) (Communicator, error) { } } -// maxBackoffDealy is the maximum delay between retry attempts -var maxBackoffDelay = 10 * time.Second +// maxBackoffDelay is the maximum delay between retry attempts +var maxBackoffDelay = 20 * time.Second var initialBackoffDelay = time.Second +// Fatal is an interface that error values can return to halt Retry type Fatal interface { FatalError() error } +// Retry retries the function f until it returns a nil error, a Fatal error, or +// the context expires. func Retry(ctx context.Context, f func() error) error { // container for atomic error value type errWrap struct { @@ -97,7 +100,7 @@ func Retry(ctx context.Context, f func() error) error { done = true } - errVal.Store(&errWrap{err}) + errVal.Store(errWrap{err}) if done { return From c1b35ad69b75bb637780603fe258f67f5a0e0ea1 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Thu, 15 Feb 2018 14:16:37 -0500 Subject: [PATCH 047/156] have the ssh communicator return fatal errors This will let the retry loop abort when there are errors which aren't going to ever be corrected. --- .../remote-exec/resource_provisioner.go | 4 ++-- communicator/ssh/communicator.go | 14 +++++++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/builtin/provisioners/remote-exec/resource_provisioner.go b/builtin/provisioners/remote-exec/resource_provisioner.go index 8c8c09298..082675ce1 100644 --- a/builtin/provisioners/remote-exec/resource_provisioner.go +++ b/builtin/provisioners/remote-exec/resource_provisioner.go @@ -169,9 +169,9 @@ func runScripts( // Wait and retry until we establish the connection err := communicator.Retry(ctx, func() error { - err := comm.Connect(o) - return err + return comm.Connect(o) }) + if err != nil { return err } diff --git a/communicator/ssh/communicator.go b/communicator/ssh/communicator.go index 4ad67aefc..85dabb6b5 100644 --- a/communicator/ssh/communicator.go +++ b/communicator/ssh/communicator.go @@ -63,6 +63,14 @@ type sshConfig struct { sshAgent *sshAgent } +type fatalError struct { + error +} + +func (e fatalError) FatalError() error { + return e.error +} + // New creates a new communicator implementation over SSH. func New(s *terraform.InstanceState) (*Communicator, error) { connInfo, err := parseConnectionInfo(s) @@ -159,8 +167,8 @@ func (c *Communicator) Connect(o terraform.UIOutput) (err error) { host := fmt.Sprintf("%s:%d", c.connInfo.Host, c.connInfo.Port) sshConn, sshChan, req, err := ssh.NewClientConn(c.conn, host, c.config.config) if err != nil { - log.Printf("handshake error: %s", err) - return err + log.Printf("fatal handshake error: %s", err) + return fatalError{err} } c.client = ssh.NewClient(sshConn, sshChan, req) @@ -168,7 +176,7 @@ func (c *Communicator) Connect(o terraform.UIOutput) (err error) { if c.config.sshAgent != nil { log.Printf("[DEBUG] Telling SSH config to forward to agent") if err := c.config.sshAgent.ForwardToAgent(c.client); err != nil { - return err + return fatalError{err} } log.Printf("[DEBUG] Setting up a session to request agent forwarding") From 0345d960b2068cdddc6546df2b06a9b22411b8b4 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Thu, 15 Feb 2018 15:01:55 -0500 Subject: [PATCH 048/156] simplify remote-exec runScripts There no reason to retry around the execution of remote scripts. We've already established a connection, so the only that could happen here is to continually retry uploading or executing a script that can't succeed. This also simplifies the streaming output from the command, which doesn't need such explicit synchronization. Closing the output pipes is sufficient to stop the copyOutput functions, and they don't close around any values that are accessed again after the command executes. --- .../provisioners/file/resource_provisioner.go | 11 +++- .../remote-exec/resource_provisioner.go | 63 ++++++------------- 2 files changed, 28 insertions(+), 46 deletions(-) diff --git a/builtin/provisioners/file/resource_provisioner.go b/builtin/provisioners/file/resource_provisioner.go index 30ed5e359..5514250d7 100644 --- a/builtin/provisioners/file/resource_provisioner.go +++ b/builtin/provisioners/file/resource_provisioner.go @@ -101,13 +101,18 @@ func getSrc(data *schema.ResourceData) (string, bool, error) { func copyFiles(ctx context.Context, comm communicator.Communicator, src, dst string) error { // Wait and retry until we establish the connection err := communicator.Retry(ctx, func() error { - err := comm.Connect(nil) - return err + return comm.Connect(nil) }) if err != nil { return err } - defer comm.Disconnect() + + // disconnect when the context is canceled, which will close this after + // Apply as well. + go func() { + <-ctx.Done() + comm.Disconnect() + }() info, err := os.Stat(src) if err != nil { diff --git a/builtin/provisioners/remote-exec/resource_provisioner.go b/builtin/provisioners/remote-exec/resource_provisioner.go index 082675ce1..378a282ed 100644 --- a/builtin/provisioners/remote-exec/resource_provisioner.go +++ b/builtin/provisioners/remote-exec/resource_provisioner.go @@ -171,57 +171,40 @@ func runScripts( err := communicator.Retry(ctx, func() error { return comm.Connect(o) }) - if err != nil { return err } for _, script := range scripts { var cmd *remote.Cmd + outR, outW := io.Pipe() errR, errW := io.Pipe() - outDoneCh := make(chan struct{}) - errDoneCh := make(chan struct{}) - go copyOutput(o, outR, outDoneCh) - go copyOutput(o, errR, errDoneCh) + defer outW.Close() + defer errW.Close() + + go copyOutput(o, outR) + go copyOutput(o, errR) remotePath := comm.ScriptPath() - err = communicator.Retry(ctx, func() error { - if err := comm.UploadScript(remotePath, script); err != nil { - return fmt.Errorf("Failed to upload script: %v", err) - } - - cmd = &remote.Cmd{ - Command: remotePath, - Stdout: outW, - Stderr: errW, - } - if err := comm.Start(cmd); err != nil { - return fmt.Errorf("Error starting script: %v", err) - } - - return nil - }) - if err == nil { - cmd.Wait() - if cmd.ExitStatus != 0 { - err = fmt.Errorf("Script exited with non-zero exit status: %d", cmd.ExitStatus) - } + if err := comm.UploadScript(remotePath, script); err != nil { + return fmt.Errorf("Failed to upload script: %v", err) } - // If we have an error, end our context so the disconnect happens. - // This has to happen before the output cleanup below since during - // an interrupt this will cause the outputs to end. - if err != nil { - cancelFunc() + cmd = &remote.Cmd{ + Command: remotePath, + Stdout: outW, + Stderr: errW, + } + if err := comm.Start(cmd); err != nil { + return fmt.Errorf("Error starting script: %v", err) } - // Wait for output to clean up - outW.Close() - errW.Close() - <-outDoneCh - <-errDoneCh + cmd.Wait() + if cmd.ExitStatus != 0 { + err = fmt.Errorf("Script exited with non-zero exit status: %d", cmd.ExitStatus) + } // Upload a blank follow up file in the same path to prevent residual // script contents from remaining on remote machine @@ -230,19 +213,13 @@ func runScripts( // This feature is best-effort. log.Printf("[WARN] Failed to upload empty follow up script: %v", err) } - - // If we have an error, return it out now that we've cleaned up - if err != nil { - return err - } } return nil } func copyOutput( - o terraform.UIOutput, r io.Reader, doneCh chan<- struct{}) { - defer close(doneCh) + o terraform.UIOutput, r io.Reader) { lr := linereader.New(r) for line := range lr.Ch { o.Output(line) From 5458ea9aff9d9cabfbacc7f1927d59bd1785323f Mon Sep 17 00:00:00 2001 From: James Bardin Date: Thu, 15 Feb 2018 17:13:24 -0500 Subject: [PATCH 049/156] update etcd documentation links Add missing link to ectdv3. Update etcd v2 link to the current v2 README, which highlights the pending deprecation. --- website/docs/backends/types/etcd.html.md | 2 +- website/layouts/backend-types.erb | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/website/docs/backends/types/etcd.html.md b/website/docs/backends/types/etcd.html.md index ce394ccc2..2e4cf089f 100644 --- a/website/docs/backends/types/etcd.html.md +++ b/website/docs/backends/types/etcd.html.md @@ -10,7 +10,7 @@ description: |- **Kind: Standard (with no locking)** -Stores the state in [etcd](https://coreos.com/etcd/) at a given path. +Stores the state in [etcd 2.x](https://coreos.com/etcd/docs/latest/v2/README.html) at a given path. ## Example Configuration diff --git a/website/layouts/backend-types.erb b/website/layouts/backend-types.erb index 977086f00..3db21a0e7 100644 --- a/website/layouts/backend-types.erb +++ b/website/layouts/backend-types.erb @@ -35,6 +35,9 @@ > etcd + > + etcd + > gcs From 976d85ae926ef3a35f4d9039b949d3374ea7f0ff Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Thu, 1 Feb 2018 17:02:07 -0800 Subject: [PATCH 050/156] govendor fetch github.com/spf13/afero/... --- vendor/github.com/spf13/afero/LICENSE.txt | 174 +++++++ vendor/github.com/spf13/afero/README.md | 452 ++++++++++++++++++ vendor/github.com/spf13/afero/afero.go | 108 +++++ vendor/github.com/spf13/afero/appveyor.yml | 15 + vendor/github.com/spf13/afero/basepath.go | 145 ++++++ .../github.com/spf13/afero/cacheOnReadFs.go | 290 +++++++++++ vendor/github.com/spf13/afero/const_bsds.go | 22 + .../github.com/spf13/afero/const_win_unix.go | 25 + .../github.com/spf13/afero/copyOnWriteFs.go | 253 ++++++++++ vendor/github.com/spf13/afero/httpFs.go | 110 +++++ vendor/github.com/spf13/afero/ioutil.go | 230 +++++++++ vendor/github.com/spf13/afero/match.go | 110 +++++ vendor/github.com/spf13/afero/mem/dir.go | 37 ++ vendor/github.com/spf13/afero/mem/dirmap.go | 43 ++ vendor/github.com/spf13/afero/mem/file.go | 314 ++++++++++++ vendor/github.com/spf13/afero/memmap.go | 365 ++++++++++++++ vendor/github.com/spf13/afero/os.go | 94 ++++ vendor/github.com/spf13/afero/path.go | 108 +++++ vendor/github.com/spf13/afero/readonlyfs.go | 70 +++ vendor/github.com/spf13/afero/regexpfs.go | 214 +++++++++ vendor/github.com/spf13/afero/unionFile.go | 274 +++++++++++ vendor/github.com/spf13/afero/util.go | 330 +++++++++++++ vendor/vendor.json | 12 + 23 files changed, 3795 insertions(+) create mode 100644 vendor/github.com/spf13/afero/LICENSE.txt create mode 100644 vendor/github.com/spf13/afero/README.md create mode 100644 vendor/github.com/spf13/afero/afero.go create mode 100644 vendor/github.com/spf13/afero/appveyor.yml create mode 100644 vendor/github.com/spf13/afero/basepath.go create mode 100644 vendor/github.com/spf13/afero/cacheOnReadFs.go create mode 100644 vendor/github.com/spf13/afero/const_bsds.go create mode 100644 vendor/github.com/spf13/afero/const_win_unix.go create mode 100644 vendor/github.com/spf13/afero/copyOnWriteFs.go create mode 100644 vendor/github.com/spf13/afero/httpFs.go create mode 100644 vendor/github.com/spf13/afero/ioutil.go create mode 100644 vendor/github.com/spf13/afero/match.go create mode 100644 vendor/github.com/spf13/afero/mem/dir.go create mode 100644 vendor/github.com/spf13/afero/mem/dirmap.go create mode 100644 vendor/github.com/spf13/afero/mem/file.go create mode 100644 vendor/github.com/spf13/afero/memmap.go create mode 100644 vendor/github.com/spf13/afero/os.go create mode 100644 vendor/github.com/spf13/afero/path.go create mode 100644 vendor/github.com/spf13/afero/readonlyfs.go create mode 100644 vendor/github.com/spf13/afero/regexpfs.go create mode 100644 vendor/github.com/spf13/afero/unionFile.go create mode 100644 vendor/github.com/spf13/afero/util.go diff --git a/vendor/github.com/spf13/afero/LICENSE.txt b/vendor/github.com/spf13/afero/LICENSE.txt new file mode 100644 index 000000000..298f0e266 --- /dev/null +++ b/vendor/github.com/spf13/afero/LICENSE.txt @@ -0,0 +1,174 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. diff --git a/vendor/github.com/spf13/afero/README.md b/vendor/github.com/spf13/afero/README.md new file mode 100644 index 000000000..0c9b04b53 --- /dev/null +++ b/vendor/github.com/spf13/afero/README.md @@ -0,0 +1,452 @@ +![afero logo-sm](https://cloud.githubusercontent.com/assets/173412/11490338/d50e16dc-97a5-11e5-8b12-019a300d0fcb.png) + +A FileSystem Abstraction System for Go + +[![Build Status](https://travis-ci.org/spf13/afero.svg)](https://travis-ci.org/spf13/afero) [![Build status](https://ci.appveyor.com/api/projects/status/github/spf13/afero?branch=master&svg=true)](https://ci.appveyor.com/project/spf13/afero) [![GoDoc](https://godoc.org/github.com/spf13/afero?status.svg)](https://godoc.org/github.com/spf13/afero) [![Join the chat at https://gitter.im/spf13/afero](https://badges.gitter.im/Dev%20Chat.svg)](https://gitter.im/spf13/afero?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +# Overview + +Afero is an filesystem framework providing a simple, uniform and universal API +interacting with any filesystem, as an abstraction layer providing interfaces, +types and methods. Afero has an exceptionally clean interface and simple design +without needless constructors or initialization methods. + +Afero is also a library providing a base set of interoperable backend +filesystems that make it easy to work with afero while retaining all the power +and benefit of the os and ioutil packages. + +Afero provides significant improvements over using the os package alone, most +notably the ability to create mock and testing filesystems without relying on the disk. + +It is suitable for use in a any situation where you would consider using the OS +package as it provides an additional abstraction that makes it easy to use a +memory backed file system during testing. It also adds support for the http +filesystem for full interoperability. + + +## Afero Features + +* A single consistent API for accessing a variety of filesystems +* Interoperation between a variety of file system types +* A set of interfaces to encourage and enforce interoperability between backends +* An atomic cross platform memory backed file system +* Support for compositional (union) file systems by combining multiple file systems acting as one +* Specialized backends which modify existing filesystems (Read Only, Regexp filtered) +* A set of utility functions ported from io, ioutil & hugo to be afero aware + + +# Using Afero + +Afero is easy to use and easier to adopt. + +A few different ways you could use Afero: + +* Use the interfaces alone to define you own file system. +* Wrap for the OS packages. +* Define different filesystems for different parts of your application. +* Use Afero for mock filesystems while testing + +## Step 1: Install Afero + +First use go get to install the latest version of the library. + + $ go get github.com/spf13/afero + +Next include Afero in your application. +```go +import "github.com/spf13/afero" +``` + +## Step 2: Declare a backend + +First define a package variable and set it to a pointer to a filesystem. +```go +var AppFs = afero.NewMemMapFs() + +or + +var AppFs = afero.NewOsFs() +``` +It is important to note that if you repeat the composite literal you +will be using a completely new and isolated filesystem. In the case of +OsFs it will still use the same underlying filesystem but will reduce +the ability to drop in other filesystems as desired. + +## Step 3: Use it like you would the OS package + +Throughout your application use any function and method like you normally +would. + +So if my application before had: +```go +os.Open('/tmp/foo') +``` +We would replace it with: +```go +AppFs.Open('/tmp/foo') +``` + +`AppFs` being the variable we defined above. + + +## List of all available functions + +File System Methods Available: +```go +Chmod(name string, mode os.FileMode) : error +Chtimes(name string, atime time.Time, mtime time.Time) : error +Create(name string) : File, error +Mkdir(name string, perm os.FileMode) : error +MkdirAll(path string, perm os.FileMode) : error +Name() : string +Open(name string) : File, error +OpenFile(name string, flag int, perm os.FileMode) : File, error +Remove(name string) : error +RemoveAll(path string) : error +Rename(oldname, newname string) : error +Stat(name string) : os.FileInfo, error +``` +File Interfaces and Methods Available: +```go +io.Closer +io.Reader +io.ReaderAt +io.Seeker +io.Writer +io.WriterAt + +Name() : string +Readdir(count int) : []os.FileInfo, error +Readdirnames(n int) : []string, error +Stat() : os.FileInfo, error +Sync() : error +Truncate(size int64) : error +WriteString(s string) : ret int, err error +``` +In some applications it may make sense to define a new package that +simply exports the file system variable for easy access from anywhere. + +## Using Afero's utility functions + +Afero provides a set of functions to make it easier to use the underlying file systems. +These functions have been primarily ported from io & ioutil with some developed for Hugo. + +The afero utilities support all afero compatible backends. + +The list of utilities includes: + +```go +DirExists(path string) (bool, error) +Exists(path string) (bool, error) +FileContainsBytes(filename string, subslice []byte) (bool, error) +GetTempDir(subPath string) string +IsDir(path string) (bool, error) +IsEmpty(path string) (bool, error) +ReadDir(dirname string) ([]os.FileInfo, error) +ReadFile(filename string) ([]byte, error) +SafeWriteReader(path string, r io.Reader) (err error) +TempDir(dir, prefix string) (name string, err error) +TempFile(dir, prefix string) (f File, err error) +Walk(root string, walkFn filepath.WalkFunc) error +WriteFile(filename string, data []byte, perm os.FileMode) error +WriteReader(path string, r io.Reader) (err error) +``` +For a complete list see [Afero's GoDoc](https://godoc.org/github.com/spf13/afero) + +They are available under two different approaches to use. You can either call +them directly where the first parameter of each function will be the file +system, or you can declare a new `Afero`, a custom type used to bind these +functions as methods to a given filesystem. + +### Calling utilities directly + +```go +fs := new(afero.MemMapFs) +f, err := afero.TempFile(fs,"", "ioutil-test") + +``` + +### Calling via Afero + +```go +fs := afero.NewMemMapFs() +afs := &afero.Afero{Fs: fs} +f, err := afs.TempFile("", "ioutil-test") +``` + +## Using Afero for Testing + +There is a large benefit to using a mock filesystem for testing. It has a +completely blank state every time it is initialized and can be easily +reproducible regardless of OS. You could create files to your heart’s content +and the file access would be fast while also saving you from all the annoying +issues with deleting temporary files, Windows file locking, etc. The MemMapFs +backend is perfect for testing. + +* Much faster than performing I/O operations on disk +* Avoid security issues and permissions +* Far more control. 'rm -rf /' with confidence +* Test setup is far more easier to do +* No test cleanup needed + +One way to accomplish this is to define a variable as mentioned above. +In your application this will be set to afero.NewOsFs() during testing you +can set it to afero.NewMemMapFs(). + +It wouldn't be uncommon to have each test initialize a blank slate memory +backend. To do this I would define my `appFS = afero.NewOsFs()` somewhere +appropriate in my application code. This approach ensures that Tests are order +independent, with no test relying on the state left by an earlier test. + +Then in my tests I would initialize a new MemMapFs for each test: +```go +func TestExist(t *testing.T) { + appFS := afero.NewMemMapFs() + // create test files and directories + appFS.MkdirAll("src/a", 0755) + afero.WriteFile(appFS, "src/a/b", []byte("file b"), 0644) + afero.WriteFile(appFS, "src/c", []byte("file c"), 0644) + name := "src/c" + _, err := appFS.Stat(name) + if os.IsNotExist(err) { + t.Errorf("file \"%s\" does not exist.\n", name) + } +} +``` + +# Available Backends + +## Operating System Native + +### OsFs + +The first is simply a wrapper around the native OS calls. This makes it +very easy to use as all of the calls are the same as the existing OS +calls. It also makes it trivial to have your code use the OS during +operation and a mock filesystem during testing or as needed. + +```go +appfs := afero.NewOsFs() +appfs.MkdirAll("src/a", 0755)) +``` + +## Memory Backed Storage + +### MemMapFs + +Afero also provides a fully atomic memory backed filesystem perfect for use in +mocking and to speed up unnecessary disk io when persistence isn’t +necessary. It is fully concurrent and will work within go routines +safely. + +```go +mm := afero.NewMemMapFs() +mm.MkdirAll("src/a", 0755)) +``` + +#### InMemoryFile + +As part of MemMapFs, Afero also provides an atomic, fully concurrent memory +backed file implementation. This can be used in other memory backed file +systems with ease. Plans are to add a radix tree memory stored file +system using InMemoryFile. + +## Network Interfaces + +### SftpFs + +Afero has experimental support for secure file transfer protocol (sftp). Which can +be used to perform file operations over a encrypted channel. + +## Filtering Backends + +### BasePathFs + +The BasePathFs restricts all operations to a given path within an Fs. +The given file name to the operations on this Fs will be prepended with +the base path before calling the source Fs. + +```go +bp := afero.NewBasePathFs(afero.NewOsFs(), "/base/path") +``` + +### ReadOnlyFs + +A thin wrapper around the source Fs providing a read only view. + +```go +fs := afero.NewReadOnlyFs(afero.NewOsFs()) +_, err := fs.Create("/file.txt") +// err = syscall.EPERM +``` + +# RegexpFs + +A filtered view on file names, any file NOT matching +the passed regexp will be treated as non-existing. +Files not matching the regexp provided will not be created. +Directories are not filtered. + +```go +fs := afero.NewRegexpFs(afero.NewMemMapFs(), regexp.MustCompile(`\.txt$`)) +_, err := fs.Create("/file.html") +// err = syscall.ENOENT +``` + +### HttpFs + +Afero provides an http compatible backend which can wrap any of the existing +backends. + +The Http package requires a slightly specific version of Open which +returns an http.File type. + +Afero provides an httpFs file system which satisfies this requirement. +Any Afero FileSystem can be used as an httpFs. + +```go +httpFs := afero.NewHttpFs() +fileserver := http.FileServer(httpFs.Dir())) +http.Handle("/", fileserver) +``` + +## Composite Backends + +Afero provides the ability have two filesystems (or more) act as a single +file system. + +### CacheOnReadFs + +The CacheOnReadFs will lazily make copies of any accessed files from the base +layer into the overlay. Subsequent reads will be pulled from the overlay +directly permitting the request is within the cache duration of when it was +created in the overlay. + +If the base filesystem is writeable, any changes to files will be +done first to the base, then to the overlay layer. Write calls to open file +handles like `Write()` or `Truncate()` to the overlay first. + +To writing files to the overlay only, you can use the overlay Fs directly (not +via the union Fs). + +Cache files in the layer for the given time.Duration, a cache duration of 0 +means "forever" meaning the file will not be re-requested from the base ever. + +A read-only base will make the overlay also read-only but still copy files +from the base to the overlay when they're not present (or outdated) in the +caching layer. + +```go +base := afero.NewOsFs() +layer := afero.NewMemMapFs() +ufs := afero.NewCacheOnReadFs(base, layer, 100 * time.Second) +``` + +### CopyOnWriteFs() + +The CopyOnWriteFs is a read only base file system with a potentially +writeable layer on top. + +Read operations will first look in the overlay and if not found there, will +serve the file from the base. + +Changes to the file system will only be made in the overlay. + +Any attempt to modify a file found only in the base will copy the file to the +overlay layer before modification (including opening a file with a writable +handle). + +Removing and Renaming files present only in the base layer is not currently +permitted. If a file is present in the base layer and the overlay, only the +overlay will be removed/renamed. + +```go + base := afero.NewOsFs() + roBase := afero.NewReadOnlyFs(base) + ufs := afero.NewCopyOnWriteFs(roBase, afero.NewMemMapFs()) + + fh, _ = ufs.Create("/home/test/file2.txt") + fh.WriteString("This is a test") + fh.Close() +``` + +In this example all write operations will only occur in memory (MemMapFs) +leaving the base filesystem (OsFs) untouched. + + +## Desired/possible backends + +The following is a short list of possible backends we hope someone will +implement: + +* SSH +* ZIP +* TAR +* S3 + +# About the project + +## What's in the name + +Afero comes from the latin roots Ad-Facere. + +**"Ad"** is a prefix meaning "to". + +**"Facere"** is a form of the root "faciō" making "make or do". + +The literal meaning of afero is "to make" or "to do" which seems very fitting +for a library that allows one to make files and directories and do things with them. + +The English word that shares the same roots as Afero is "affair". Affair shares +the same concept but as a noun it means "something that is made or done" or "an +object of a particular type". + +It's also nice that unlike some of my other libraries (hugo, cobra, viper) it +Googles very well. + +## Release Notes + +* **0.10.0** 2015.12.10 + * Full compatibility with Windows + * Introduction of afero utilities + * Test suite rewritten to work cross platform + * Normalize paths for MemMapFs + * Adding Sync to the file interface + * **Breaking Change** Walk and ReadDir have changed parameter order + * Moving types used by MemMapFs to a subpackage + * General bugfixes and improvements +* **0.9.0** 2015.11.05 + * New Walk function similar to filepath.Walk + * MemMapFs.OpenFile handles O_CREATE, O_APPEND, O_TRUNC + * MemMapFs.Remove now really deletes the file + * InMemoryFile.Readdir and Readdirnames work correctly + * InMemoryFile functions lock it for concurrent access + * Test suite improvements +* **0.8.0** 2014.10.28 + * First public version + * Interfaces feel ready for people to build using + * Interfaces satisfy all known uses + * MemMapFs passes the majority of the OS test suite + * OsFs passes the majority of the OS test suite + +## Contributing + +1. Fork it +2. Create your feature branch (`git checkout -b my-new-feature`) +3. Commit your changes (`git commit -am 'Add some feature'`) +4. Push to the branch (`git push origin my-new-feature`) +5. Create new Pull Request + +## Contributors + +Names in no particular order: + +* [spf13](https://github.com/spf13) +* [jaqx0r](https://github.com/jaqx0r) +* [mbertschler](https://github.com/mbertschler) +* [xor-gate](https://github.com/xor-gate) + +## License + +Afero is released under the Apache 2.0 license. See +[LICENSE.txt](https://github.com/spf13/afero/blob/master/LICENSE.txt) diff --git a/vendor/github.com/spf13/afero/afero.go b/vendor/github.com/spf13/afero/afero.go new file mode 100644 index 000000000..f5b5e127c --- /dev/null +++ b/vendor/github.com/spf13/afero/afero.go @@ -0,0 +1,108 @@ +// Copyright © 2014 Steve Francia . +// Copyright 2013 tsuru authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package afero provides types and methods for interacting with the filesystem, +// as an abstraction layer. + +// Afero also provides a few implementations that are mostly interoperable. One that +// uses the operating system filesystem, one that uses memory to store files +// (cross platform) and an interface that should be implemented if you want to +// provide your own filesystem. + +package afero + +import ( + "errors" + "io" + "os" + "time" +) + +type Afero struct { + Fs +} + +// File represents a file in the filesystem. +type File interface { + io.Closer + io.Reader + io.ReaderAt + io.Seeker + io.Writer + io.WriterAt + + Name() string + Readdir(count int) ([]os.FileInfo, error) + Readdirnames(n int) ([]string, error) + Stat() (os.FileInfo, error) + Sync() error + Truncate(size int64) error + WriteString(s string) (ret int, err error) +} + +// Fs is the filesystem interface. +// +// Any simulated or real filesystem should implement this interface. +type Fs interface { + // Create creates a file in the filesystem, returning the file and an + // error, if any happens. + Create(name string) (File, error) + + // Mkdir creates a directory in the filesystem, return an error if any + // happens. + Mkdir(name string, perm os.FileMode) error + + // MkdirAll creates a directory path and all parents that does not exist + // yet. + MkdirAll(path string, perm os.FileMode) error + + // Open opens a file, returning it or an error, if any happens. + Open(name string) (File, error) + + // OpenFile opens a file using the given flags and the given mode. + OpenFile(name string, flag int, perm os.FileMode) (File, error) + + // Remove removes a file identified by name, returning an error, if any + // happens. + Remove(name string) error + + // RemoveAll removes a directory path and any children it contains. It + // does not fail if the path does not exist (return nil). + RemoveAll(path string) error + + // Rename renames a file. + Rename(oldname, newname string) error + + // Stat returns a FileInfo describing the named file, or an error, if any + // happens. + Stat(name string) (os.FileInfo, error) + + // The name of this FileSystem + Name() string + + //Chmod changes the mode of the named file to mode. + Chmod(name string, mode os.FileMode) error + + //Chtimes changes the access and modification times of the named file + Chtimes(name string, atime time.Time, mtime time.Time) error +} + +var ( + ErrFileClosed = errors.New("File is closed") + ErrOutOfRange = errors.New("Out of range") + ErrTooLarge = errors.New("Too large") + ErrFileNotFound = os.ErrNotExist + ErrFileExists = os.ErrExist + ErrDestinationExists = os.ErrExist +) diff --git a/vendor/github.com/spf13/afero/appveyor.yml b/vendor/github.com/spf13/afero/appveyor.yml new file mode 100644 index 000000000..a633ad500 --- /dev/null +++ b/vendor/github.com/spf13/afero/appveyor.yml @@ -0,0 +1,15 @@ +version: '{build}' +clone_folder: C:\gopath\src\github.com\spf13\afero +environment: + GOPATH: C:\gopath +build_script: +- cmd: >- + go version + + go env + + go get -v github.com/spf13/afero/... + + go build github.com/spf13/afero +test_script: +- cmd: go test -race -v github.com/spf13/afero/... diff --git a/vendor/github.com/spf13/afero/basepath.go b/vendor/github.com/spf13/afero/basepath.go new file mode 100644 index 000000000..5e4fc2ec0 --- /dev/null +++ b/vendor/github.com/spf13/afero/basepath.go @@ -0,0 +1,145 @@ +package afero + +import ( + "errors" + "os" + "path/filepath" + "runtime" + "strings" + "time" +) + +// The BasePathFs restricts all operations to a given path within an Fs. +// The given file name to the operations on this Fs will be prepended with +// the base path before calling the base Fs. +// Any file name (after filepath.Clean()) outside this base path will be +// treated as non existing file. +// +// Note that it does not clean the error messages on return, so you may +// reveal the real path on errors. +type BasePathFs struct { + source Fs + path string +} + +func NewBasePathFs(source Fs, path string) Fs { + return &BasePathFs{source: source, path: path} +} + +// on a file outside the base path it returns the given file name and an error, +// else the given file with the base path prepended +func (b *BasePathFs) RealPath(name string) (path string, err error) { + if err := validateBasePathName(name); err != nil { + return "", err + } + + bpath := filepath.Clean(b.path) + path = filepath.Clean(filepath.Join(bpath, name)) + if !strings.HasPrefix(path, bpath) { + return name, os.ErrNotExist + } + + return path, nil +} + +func validateBasePathName(name string) error { + if runtime.GOOS != "windows" { + // Not much to do here; + // the virtual file paths all look absolute on *nix. + return nil + } + + // On Windows a common mistake would be to provide an absolute OS path + // We could strip out the base part, but that would not be very portable. + if filepath.IsAbs(name) { + return &os.PathError{Op: "realPath", Path: name, Err: errors.New("got a real OS path instead of a virtual")} + } + + return nil +} + +func (b *BasePathFs) Chtimes(name string, atime, mtime time.Time) (err error) { + if name, err = b.RealPath(name); err != nil { + return &os.PathError{Op: "chtimes", Path: name, Err: err} + } + return b.source.Chtimes(name, atime, mtime) +} + +func (b *BasePathFs) Chmod(name string, mode os.FileMode) (err error) { + if name, err = b.RealPath(name); err != nil { + return &os.PathError{Op: "chmod", Path: name, Err: err} + } + return b.source.Chmod(name, mode) +} + +func (b *BasePathFs) Name() string { + return "BasePathFs" +} + +func (b *BasePathFs) Stat(name string) (fi os.FileInfo, err error) { + if name, err = b.RealPath(name); err != nil { + return nil, &os.PathError{Op: "stat", Path: name, Err: err} + } + return b.source.Stat(name) +} + +func (b *BasePathFs) Rename(oldname, newname string) (err error) { + if oldname, err = b.RealPath(oldname); err != nil { + return &os.PathError{Op: "rename", Path: oldname, Err: err} + } + if newname, err = b.RealPath(newname); err != nil { + return &os.PathError{Op: "rename", Path: newname, Err: err} + } + return b.source.Rename(oldname, newname) +} + +func (b *BasePathFs) RemoveAll(name string) (err error) { + if name, err = b.RealPath(name); err != nil { + return &os.PathError{Op: "remove_all", Path: name, Err: err} + } + return b.source.RemoveAll(name) +} + +func (b *BasePathFs) Remove(name string) (err error) { + if name, err = b.RealPath(name); err != nil { + return &os.PathError{Op: "remove", Path: name, Err: err} + } + return b.source.Remove(name) +} + +func (b *BasePathFs) OpenFile(name string, flag int, mode os.FileMode) (f File, err error) { + if name, err = b.RealPath(name); err != nil { + return nil, &os.PathError{Op: "openfile", Path: name, Err: err} + } + return b.source.OpenFile(name, flag, mode) +} + +func (b *BasePathFs) Open(name string) (f File, err error) { + if name, err = b.RealPath(name); err != nil { + return nil, &os.PathError{Op: "open", Path: name, Err: err} + } + return b.source.Open(name) +} + +func (b *BasePathFs) Mkdir(name string, mode os.FileMode) (err error) { + if name, err = b.RealPath(name); err != nil { + return &os.PathError{Op: "mkdir", Path: name, Err: err} + } + return b.source.Mkdir(name, mode) +} + +func (b *BasePathFs) MkdirAll(name string, mode os.FileMode) (err error) { + if name, err = b.RealPath(name); err != nil { + return &os.PathError{Op: "mkdir", Path: name, Err: err} + } + return b.source.MkdirAll(name, mode) +} + +func (b *BasePathFs) Create(name string) (f File, err error) { + if name, err = b.RealPath(name); err != nil { + return nil, &os.PathError{Op: "create", Path: name, Err: err} + } + return b.source.Create(name) +} + +// vim: ts=4 sw=4 noexpandtab nolist syn=go diff --git a/vendor/github.com/spf13/afero/cacheOnReadFs.go b/vendor/github.com/spf13/afero/cacheOnReadFs.go new file mode 100644 index 000000000..b026e0de8 --- /dev/null +++ b/vendor/github.com/spf13/afero/cacheOnReadFs.go @@ -0,0 +1,290 @@ +package afero + +import ( + "os" + "syscall" + "time" +) + +// If the cache duration is 0, cache time will be unlimited, i.e. once +// a file is in the layer, the base will never be read again for this file. +// +// For cache times greater than 0, the modification time of a file is +// checked. Note that a lot of file system implementations only allow a +// resolution of a second for timestamps... or as the godoc for os.Chtimes() +// states: "The underlying filesystem may truncate or round the values to a +// less precise time unit." +// +// This caching union will forward all write calls also to the base file +// system first. To prevent writing to the base Fs, wrap it in a read-only +// filter - Note: this will also make the overlay read-only, for writing files +// in the overlay, use the overlay Fs directly, not via the union Fs. +type CacheOnReadFs struct { + base Fs + layer Fs + cacheTime time.Duration +} + +func NewCacheOnReadFs(base Fs, layer Fs, cacheTime time.Duration) Fs { + return &CacheOnReadFs{base: base, layer: layer, cacheTime: cacheTime} +} + +type cacheState int + +const ( + // not present in the overlay, unknown if it exists in the base: + cacheMiss cacheState = iota + // present in the overlay and in base, base file is newer: + cacheStale + // present in the overlay - with cache time == 0 it may exist in the base, + // with cacheTime > 0 it exists in the base and is same age or newer in the + // overlay + cacheHit + // happens if someone writes directly to the overlay without + // going through this union + cacheLocal +) + +func (u *CacheOnReadFs) cacheStatus(name string) (state cacheState, fi os.FileInfo, err error) { + var lfi, bfi os.FileInfo + lfi, err = u.layer.Stat(name) + if err == nil { + if u.cacheTime == 0 { + return cacheHit, lfi, nil + } + if lfi.ModTime().Add(u.cacheTime).Before(time.Now()) { + bfi, err = u.base.Stat(name) + if err != nil { + return cacheLocal, lfi, nil + } + if bfi.ModTime().After(lfi.ModTime()) { + return cacheStale, bfi, nil + } + } + return cacheHit, lfi, nil + } + + if err == syscall.ENOENT || os.IsNotExist(err) { + return cacheMiss, nil, nil + } + + return cacheMiss, nil, err +} + +func (u *CacheOnReadFs) copyToLayer(name string) error { + return copyToLayer(u.base, u.layer, name) +} + +func (u *CacheOnReadFs) Chtimes(name string, atime, mtime time.Time) error { + st, _, err := u.cacheStatus(name) + if err != nil { + return err + } + switch st { + case cacheLocal: + case cacheHit: + err = u.base.Chtimes(name, atime, mtime) + case cacheStale, cacheMiss: + if err := u.copyToLayer(name); err != nil { + return err + } + err = u.base.Chtimes(name, atime, mtime) + } + if err != nil { + return err + } + return u.layer.Chtimes(name, atime, mtime) +} + +func (u *CacheOnReadFs) Chmod(name string, mode os.FileMode) error { + st, _, err := u.cacheStatus(name) + if err != nil { + return err + } + switch st { + case cacheLocal: + case cacheHit: + err = u.base.Chmod(name, mode) + case cacheStale, cacheMiss: + if err := u.copyToLayer(name); err != nil { + return err + } + err = u.base.Chmod(name, mode) + } + if err != nil { + return err + } + return u.layer.Chmod(name, mode) +} + +func (u *CacheOnReadFs) Stat(name string) (os.FileInfo, error) { + st, fi, err := u.cacheStatus(name) + if err != nil { + return nil, err + } + switch st { + case cacheMiss: + return u.base.Stat(name) + default: // cacheStale has base, cacheHit and cacheLocal the layer os.FileInfo + return fi, nil + } +} + +func (u *CacheOnReadFs) Rename(oldname, newname string) error { + st, _, err := u.cacheStatus(oldname) + if err != nil { + return err + } + switch st { + case cacheLocal: + case cacheHit: + err = u.base.Rename(oldname, newname) + case cacheStale, cacheMiss: + if err := u.copyToLayer(oldname); err != nil { + return err + } + err = u.base.Rename(oldname, newname) + } + if err != nil { + return err + } + return u.layer.Rename(oldname, newname) +} + +func (u *CacheOnReadFs) Remove(name string) error { + st, _, err := u.cacheStatus(name) + if err != nil { + return err + } + switch st { + case cacheLocal: + case cacheHit, cacheStale, cacheMiss: + err = u.base.Remove(name) + } + if err != nil { + return err + } + return u.layer.Remove(name) +} + +func (u *CacheOnReadFs) RemoveAll(name string) error { + st, _, err := u.cacheStatus(name) + if err != nil { + return err + } + switch st { + case cacheLocal: + case cacheHit, cacheStale, cacheMiss: + err = u.base.RemoveAll(name) + } + if err != nil { + return err + } + return u.layer.RemoveAll(name) +} + +func (u *CacheOnReadFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { + st, _, err := u.cacheStatus(name) + if err != nil { + return nil, err + } + switch st { + case cacheLocal, cacheHit: + default: + if err := u.copyToLayer(name); err != nil { + return nil, err + } + } + if flag&(os.O_WRONLY|syscall.O_RDWR|os.O_APPEND|os.O_CREATE|os.O_TRUNC) != 0 { + bfi, err := u.base.OpenFile(name, flag, perm) + if err != nil { + return nil, err + } + lfi, err := u.layer.OpenFile(name, flag, perm) + if err != nil { + bfi.Close() // oops, what if O_TRUNC was set and file opening in the layer failed...? + return nil, err + } + return &UnionFile{base: bfi, layer: lfi}, nil + } + return u.layer.OpenFile(name, flag, perm) +} + +func (u *CacheOnReadFs) Open(name string) (File, error) { + st, fi, err := u.cacheStatus(name) + if err != nil { + return nil, err + } + + switch st { + case cacheLocal: + return u.layer.Open(name) + + case cacheMiss: + bfi, err := u.base.Stat(name) + if err != nil { + return nil, err + } + if bfi.IsDir() { + return u.base.Open(name) + } + if err := u.copyToLayer(name); err != nil { + return nil, err + } + return u.layer.Open(name) + + case cacheStale: + if !fi.IsDir() { + if err := u.copyToLayer(name); err != nil { + return nil, err + } + return u.layer.Open(name) + } + case cacheHit: + if !fi.IsDir() { + return u.layer.Open(name) + } + } + // the dirs from cacheHit, cacheStale fall down here: + bfile, _ := u.base.Open(name) + lfile, err := u.layer.Open(name) + if err != nil && bfile == nil { + return nil, err + } + return &UnionFile{base: bfile, layer: lfile}, nil +} + +func (u *CacheOnReadFs) Mkdir(name string, perm os.FileMode) error { + err := u.base.Mkdir(name, perm) + if err != nil { + return err + } + return u.layer.MkdirAll(name, perm) // yes, MkdirAll... we cannot assume it exists in the cache +} + +func (u *CacheOnReadFs) Name() string { + return "CacheOnReadFs" +} + +func (u *CacheOnReadFs) MkdirAll(name string, perm os.FileMode) error { + err := u.base.MkdirAll(name, perm) + if err != nil { + return err + } + return u.layer.MkdirAll(name, perm) +} + +func (u *CacheOnReadFs) Create(name string) (File, error) { + bfh, err := u.base.Create(name) + if err != nil { + return nil, err + } + lfh, err := u.layer.Create(name) + if err != nil { + // oops, see comment about OS_TRUNC above, should we remove? then we have to + // remember if the file did not exist before + bfh.Close() + return nil, err + } + return &UnionFile{base: bfh, layer: lfh}, nil +} diff --git a/vendor/github.com/spf13/afero/const_bsds.go b/vendor/github.com/spf13/afero/const_bsds.go new file mode 100644 index 000000000..5728243d9 --- /dev/null +++ b/vendor/github.com/spf13/afero/const_bsds.go @@ -0,0 +1,22 @@ +// Copyright © 2016 Steve Francia . +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// +build darwin openbsd freebsd netbsd dragonfly + +package afero + +import ( + "syscall" +) + +const BADFD = syscall.EBADF diff --git a/vendor/github.com/spf13/afero/const_win_unix.go b/vendor/github.com/spf13/afero/const_win_unix.go new file mode 100644 index 000000000..968fc2783 --- /dev/null +++ b/vendor/github.com/spf13/afero/const_win_unix.go @@ -0,0 +1,25 @@ +// Copyright © 2016 Steve Francia . +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +build !darwin +// +build !openbsd +// +build !freebsd +// +build !dragonfly +// +build !netbsd + +package afero + +import ( + "syscall" +) + +const BADFD = syscall.EBADFD diff --git a/vendor/github.com/spf13/afero/copyOnWriteFs.go b/vendor/github.com/spf13/afero/copyOnWriteFs.go new file mode 100644 index 000000000..f2ebcd226 --- /dev/null +++ b/vendor/github.com/spf13/afero/copyOnWriteFs.go @@ -0,0 +1,253 @@ +package afero + +import ( + "fmt" + "os" + "path/filepath" + "syscall" + "time" +) + +// The CopyOnWriteFs is a union filesystem: a read only base file system with +// a possibly writeable layer on top. Changes to the file system will only +// be made in the overlay: Changing an existing file in the base layer which +// is not present in the overlay will copy the file to the overlay ("changing" +// includes also calls to e.g. Chtimes() and Chmod()). +// +// Reading directories is currently only supported via Open(), not OpenFile(). +type CopyOnWriteFs struct { + base Fs + layer Fs +} + +func NewCopyOnWriteFs(base Fs, layer Fs) Fs { + return &CopyOnWriteFs{base: base, layer: layer} +} + +// Returns true if the file is not in the overlay +func (u *CopyOnWriteFs) isBaseFile(name string) (bool, error) { + if _, err := u.layer.Stat(name); err == nil { + return false, nil + } + _, err := u.base.Stat(name) + if err != nil { + if oerr, ok := err.(*os.PathError); ok { + if oerr.Err == os.ErrNotExist || oerr.Err == syscall.ENOENT || oerr.Err == syscall.ENOTDIR { + return false, nil + } + } + if err == syscall.ENOENT { + return false, nil + } + } + return true, err +} + +func (u *CopyOnWriteFs) copyToLayer(name string) error { + return copyToLayer(u.base, u.layer, name) +} + +func (u *CopyOnWriteFs) Chtimes(name string, atime, mtime time.Time) error { + b, err := u.isBaseFile(name) + if err != nil { + return err + } + if b { + if err := u.copyToLayer(name); err != nil { + return err + } + } + return u.layer.Chtimes(name, atime, mtime) +} + +func (u *CopyOnWriteFs) Chmod(name string, mode os.FileMode) error { + b, err := u.isBaseFile(name) + if err != nil { + return err + } + if b { + if err := u.copyToLayer(name); err != nil { + return err + } + } + return u.layer.Chmod(name, mode) +} + +func (u *CopyOnWriteFs) Stat(name string) (os.FileInfo, error) { + fi, err := u.layer.Stat(name) + if err != nil { + origErr := err + if e, ok := err.(*os.PathError); ok { + err = e.Err + } + if err == os.ErrNotExist || err == syscall.ENOENT || err == syscall.ENOTDIR { + return u.base.Stat(name) + } + return nil, origErr + } + return fi, nil +} + +// Renaming files present only in the base layer is not permitted +func (u *CopyOnWriteFs) Rename(oldname, newname string) error { + b, err := u.isBaseFile(oldname) + if err != nil { + return err + } + if b { + return syscall.EPERM + } + return u.layer.Rename(oldname, newname) +} + +// Removing files present only in the base layer is not permitted. If +// a file is present in the base layer and the overlay, only the overlay +// will be removed. +func (u *CopyOnWriteFs) Remove(name string) error { + err := u.layer.Remove(name) + switch err { + case syscall.ENOENT: + _, err = u.base.Stat(name) + if err == nil { + return syscall.EPERM + } + return syscall.ENOENT + default: + return err + } +} + +func (u *CopyOnWriteFs) RemoveAll(name string) error { + err := u.layer.RemoveAll(name) + switch err { + case syscall.ENOENT: + _, err = u.base.Stat(name) + if err == nil { + return syscall.EPERM + } + return syscall.ENOENT + default: + return err + } +} + +func (u *CopyOnWriteFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { + b, err := u.isBaseFile(name) + if err != nil { + return nil, err + } + + if flag&(os.O_WRONLY|os.O_RDWR|os.O_APPEND|os.O_CREATE|os.O_TRUNC) != 0 { + if b { + if err = u.copyToLayer(name); err != nil { + return nil, err + } + return u.layer.OpenFile(name, flag, perm) + } + + dir := filepath.Dir(name) + isaDir, err := IsDir(u.base, dir) + if err != nil && !os.IsNotExist(err) { + return nil, err + } + if isaDir { + if err = u.layer.MkdirAll(dir, 0777); err != nil { + return nil, err + } + return u.layer.OpenFile(name, flag, perm) + } + + isaDir, err = IsDir(u.layer, dir) + if err != nil { + return nil, err + } + if isaDir { + return u.layer.OpenFile(name, flag, perm) + } + + return nil, &os.PathError{Op: "open", Path: name, Err: syscall.ENOTDIR} // ...or os.ErrNotExist? + } + if b { + return u.base.OpenFile(name, flag, perm) + } + return u.layer.OpenFile(name, flag, perm) +} + +// This function handles the 9 different possibilities caused +// by the union which are the intersection of the following... +// layer: doesn't exist, exists as a file, and exists as a directory +// base: doesn't exist, exists as a file, and exists as a directory +func (u *CopyOnWriteFs) Open(name string) (File, error) { + // Since the overlay overrides the base we check that first + b, err := u.isBaseFile(name) + if err != nil { + return nil, err + } + + // If overlay doesn't exist, return the base (base state irrelevant) + if b { + return u.base.Open(name) + } + + // If overlay is a file, return it (base state irrelevant) + dir, err := IsDir(u.layer, name) + if err != nil { + return nil, err + } + if !dir { + return u.layer.Open(name) + } + + // Overlay is a directory, base state now matters. + // Base state has 3 states to check but 2 outcomes: + // A. It's a file or non-readable in the base (return just the overlay) + // B. It's an accessible directory in the base (return a UnionFile) + + // If base is file or nonreadable, return overlay + dir, err = IsDir(u.base, name) + if !dir || err != nil { + return u.layer.Open(name) + } + + // Both base & layer are directories + // Return union file (if opens are without error) + bfile, bErr := u.base.Open(name) + lfile, lErr := u.layer.Open(name) + + // If either have errors at this point something is very wrong. Return nil and the errors + if bErr != nil || lErr != nil { + return nil, fmt.Errorf("BaseErr: %v\nOverlayErr: %v", bErr, lErr) + } + + return &UnionFile{base: bfile, layer: lfile}, nil +} + +func (u *CopyOnWriteFs) Mkdir(name string, perm os.FileMode) error { + dir, err := IsDir(u.base, name) + if err != nil { + return u.layer.MkdirAll(name, perm) + } + if dir { + return syscall.EEXIST + } + return u.layer.MkdirAll(name, perm) +} + +func (u *CopyOnWriteFs) Name() string { + return "CopyOnWriteFs" +} + +func (u *CopyOnWriteFs) MkdirAll(name string, perm os.FileMode) error { + dir, err := IsDir(u.base, name) + if err != nil { + return u.layer.MkdirAll(name, perm) + } + if dir { + return syscall.EEXIST + } + return u.layer.MkdirAll(name, perm) +} + +func (u *CopyOnWriteFs) Create(name string) (File, error) { + return u.OpenFile(name, os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0666) +} diff --git a/vendor/github.com/spf13/afero/httpFs.go b/vendor/github.com/spf13/afero/httpFs.go new file mode 100644 index 000000000..c42193688 --- /dev/null +++ b/vendor/github.com/spf13/afero/httpFs.go @@ -0,0 +1,110 @@ +// Copyright © 2014 Steve Francia . +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package afero + +import ( + "errors" + "net/http" + "os" + "path" + "path/filepath" + "strings" + "time" +) + +type httpDir struct { + basePath string + fs HttpFs +} + +func (d httpDir) Open(name string) (http.File, error) { + if filepath.Separator != '/' && strings.IndexRune(name, filepath.Separator) >= 0 || + strings.Contains(name, "\x00") { + return nil, errors.New("http: invalid character in file path") + } + dir := string(d.basePath) + if dir == "" { + dir = "." + } + + f, err := d.fs.Open(filepath.Join(dir, filepath.FromSlash(path.Clean("/"+name)))) + if err != nil { + return nil, err + } + return f, nil +} + +type HttpFs struct { + source Fs +} + +func NewHttpFs(source Fs) *HttpFs { + return &HttpFs{source: source} +} + +func (h HttpFs) Dir(s string) *httpDir { + return &httpDir{basePath: s, fs: h} +} + +func (h HttpFs) Name() string { return "h HttpFs" } + +func (h HttpFs) Create(name string) (File, error) { + return h.source.Create(name) +} + +func (h HttpFs) Chmod(name string, mode os.FileMode) error { + return h.source.Chmod(name, mode) +} + +func (h HttpFs) Chtimes(name string, atime time.Time, mtime time.Time) error { + return h.source.Chtimes(name, atime, mtime) +} + +func (h HttpFs) Mkdir(name string, perm os.FileMode) error { + return h.source.Mkdir(name, perm) +} + +func (h HttpFs) MkdirAll(path string, perm os.FileMode) error { + return h.source.MkdirAll(path, perm) +} + +func (h HttpFs) Open(name string) (http.File, error) { + f, err := h.source.Open(name) + if err == nil { + if httpfile, ok := f.(http.File); ok { + return httpfile, nil + } + } + return nil, err +} + +func (h HttpFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { + return h.source.OpenFile(name, flag, perm) +} + +func (h HttpFs) Remove(name string) error { + return h.source.Remove(name) +} + +func (h HttpFs) RemoveAll(path string) error { + return h.source.RemoveAll(path) +} + +func (h HttpFs) Rename(oldname, newname string) error { + return h.source.Rename(oldname, newname) +} + +func (h HttpFs) Stat(name string) (os.FileInfo, error) { + return h.source.Stat(name) +} diff --git a/vendor/github.com/spf13/afero/ioutil.go b/vendor/github.com/spf13/afero/ioutil.go new file mode 100644 index 000000000..5c3a3d8ff --- /dev/null +++ b/vendor/github.com/spf13/afero/ioutil.go @@ -0,0 +1,230 @@ +// Copyright ©2015 The Go Authors +// Copyright ©2015 Steve Francia +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package afero + +import ( + "bytes" + "io" + "os" + "path/filepath" + "sort" + "strconv" + "sync" + "time" +) + +// byName implements sort.Interface. +type byName []os.FileInfo + +func (f byName) Len() int { return len(f) } +func (f byName) Less(i, j int) bool { return f[i].Name() < f[j].Name() } +func (f byName) Swap(i, j int) { f[i], f[j] = f[j], f[i] } + +// ReadDir reads the directory named by dirname and returns +// a list of sorted directory entries. +func (a Afero) ReadDir(dirname string) ([]os.FileInfo, error) { + return ReadDir(a.Fs, dirname) +} + +func ReadDir(fs Fs, dirname string) ([]os.FileInfo, error) { + f, err := fs.Open(dirname) + if err != nil { + return nil, err + } + list, err := f.Readdir(-1) + f.Close() + if err != nil { + return nil, err + } + sort.Sort(byName(list)) + return list, nil +} + +// ReadFile reads the file named by filename and returns the contents. +// A successful call returns err == nil, not err == EOF. Because ReadFile +// reads the whole file, it does not treat an EOF from Read as an error +// to be reported. +func (a Afero) ReadFile(filename string) ([]byte, error) { + return ReadFile(a.Fs, filename) +} + +func ReadFile(fs Fs, filename string) ([]byte, error) { + f, err := fs.Open(filename) + if err != nil { + return nil, err + } + defer f.Close() + // It's a good but not certain bet that FileInfo will tell us exactly how much to + // read, so let's try it but be prepared for the answer to be wrong. + var n int64 + + if fi, err := f.Stat(); err == nil { + // Don't preallocate a huge buffer, just in case. + if size := fi.Size(); size < 1e9 { + n = size + } + } + // As initial capacity for readAll, use n + a little extra in case Size is zero, + // and to avoid another allocation after Read has filled the buffer. The readAll + // call will read into its allocated internal buffer cheaply. If the size was + // wrong, we'll either waste some space off the end or reallocate as needed, but + // in the overwhelmingly common case we'll get it just right. + return readAll(f, n+bytes.MinRead) +} + +// readAll reads from r until an error or EOF and returns the data it read +// from the internal buffer allocated with a specified capacity. +func readAll(r io.Reader, capacity int64) (b []byte, err error) { + buf := bytes.NewBuffer(make([]byte, 0, capacity)) + // If the buffer overflows, we will get bytes.ErrTooLarge. + // Return that as an error. Any other panic remains. + defer func() { + e := recover() + if e == nil { + return + } + if panicErr, ok := e.(error); ok && panicErr == bytes.ErrTooLarge { + err = panicErr + } else { + panic(e) + } + }() + _, err = buf.ReadFrom(r) + return buf.Bytes(), err +} + +// ReadAll reads from r until an error or EOF and returns the data it read. +// A successful call returns err == nil, not err == EOF. Because ReadAll is +// defined to read from src until EOF, it does not treat an EOF from Read +// as an error to be reported. +func ReadAll(r io.Reader) ([]byte, error) { + return readAll(r, bytes.MinRead) +} + +// WriteFile writes data to a file named by filename. +// If the file does not exist, WriteFile creates it with permissions perm; +// otherwise WriteFile truncates it before writing. +func (a Afero) WriteFile(filename string, data []byte, perm os.FileMode) error { + return WriteFile(a.Fs, filename, data, perm) +} + +func WriteFile(fs Fs, filename string, data []byte, perm os.FileMode) error { + f, err := fs.OpenFile(filename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, perm) + if err != nil { + return err + } + n, err := f.Write(data) + if err == nil && n < len(data) { + err = io.ErrShortWrite + } + if err1 := f.Close(); err == nil { + err = err1 + } + return err +} + +// Random number state. +// We generate random temporary file names so that there's a good +// chance the file doesn't exist yet - keeps the number of tries in +// TempFile to a minimum. +var rand uint32 +var randmu sync.Mutex + +func reseed() uint32 { + return uint32(time.Now().UnixNano() + int64(os.Getpid())) +} + +func nextSuffix() string { + randmu.Lock() + r := rand + if r == 0 { + r = reseed() + } + r = r*1664525 + 1013904223 // constants from Numerical Recipes + rand = r + randmu.Unlock() + return strconv.Itoa(int(1e9 + r%1e9))[1:] +} + +// TempFile creates a new temporary file in the directory dir +// with a name beginning with prefix, opens the file for reading +// and writing, and returns the resulting *File. +// If dir is the empty string, TempFile uses the default directory +// for temporary files (see os.TempDir). +// Multiple programs calling TempFile simultaneously +// will not choose the same file. The caller can use f.Name() +// to find the pathname of the file. It is the caller's responsibility +// to remove the file when no longer needed. +func (a Afero) TempFile(dir, prefix string) (f File, err error) { + return TempFile(a.Fs, dir, prefix) +} + +func TempFile(fs Fs, dir, prefix string) (f File, err error) { + if dir == "" { + dir = os.TempDir() + } + + nconflict := 0 + for i := 0; i < 10000; i++ { + name := filepath.Join(dir, prefix+nextSuffix()) + f, err = fs.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_EXCL, 0600) + if os.IsExist(err) { + if nconflict++; nconflict > 10 { + randmu.Lock() + rand = reseed() + randmu.Unlock() + } + continue + } + break + } + return +} + +// TempDir creates a new temporary directory in the directory dir +// with a name beginning with prefix and returns the path of the +// new directory. If dir is the empty string, TempDir uses the +// default directory for temporary files (see os.TempDir). +// Multiple programs calling TempDir simultaneously +// will not choose the same directory. It is the caller's responsibility +// to remove the directory when no longer needed. +func (a Afero) TempDir(dir, prefix string) (name string, err error) { + return TempDir(a.Fs, dir, prefix) +} +func TempDir(fs Fs, dir, prefix string) (name string, err error) { + if dir == "" { + dir = os.TempDir() + } + + nconflict := 0 + for i := 0; i < 10000; i++ { + try := filepath.Join(dir, prefix+nextSuffix()) + err = fs.Mkdir(try, 0700) + if os.IsExist(err) { + if nconflict++; nconflict > 10 { + randmu.Lock() + rand = reseed() + randmu.Unlock() + } + continue + } + if err == nil { + name = try + } + break + } + return +} diff --git a/vendor/github.com/spf13/afero/match.go b/vendor/github.com/spf13/afero/match.go new file mode 100644 index 000000000..08b3b7e01 --- /dev/null +++ b/vendor/github.com/spf13/afero/match.go @@ -0,0 +1,110 @@ +// Copyright © 2014 Steve Francia . +// Copyright 2009 The Go Authors. All rights reserved. + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package afero + +import ( + "path/filepath" + "sort" + "strings" +) + +// Glob returns the names of all files matching pattern or nil +// if there is no matching file. The syntax of patterns is the same +// as in Match. The pattern may describe hierarchical names such as +// /usr/*/bin/ed (assuming the Separator is '/'). +// +// Glob ignores file system errors such as I/O errors reading directories. +// The only possible returned error is ErrBadPattern, when pattern +// is malformed. +// +// This was adapted from (http://golang.org/pkg/path/filepath) and uses several +// built-ins from that package. +func Glob(fs Fs, pattern string) (matches []string, err error) { + if !hasMeta(pattern) { + // afero does not support Lstat directly. + if _, err = lstatIfOs(fs, pattern); err != nil { + return nil, nil + } + return []string{pattern}, nil + } + + dir, file := filepath.Split(pattern) + switch dir { + case "": + dir = "." + case string(filepath.Separator): + // nothing + default: + dir = dir[0 : len(dir)-1] // chop off trailing separator + } + + if !hasMeta(dir) { + return glob(fs, dir, file, nil) + } + + var m []string + m, err = Glob(fs, dir) + if err != nil { + return + } + for _, d := range m { + matches, err = glob(fs, d, file, matches) + if err != nil { + return + } + } + return +} + +// glob searches for files matching pattern in the directory dir +// and appends them to matches. If the directory cannot be +// opened, it returns the existing matches. New matches are +// added in lexicographical order. +func glob(fs Fs, dir, pattern string, matches []string) (m []string, e error) { + m = matches + fi, err := fs.Stat(dir) + if err != nil { + return + } + if !fi.IsDir() { + return + } + d, err := fs.Open(dir) + if err != nil { + return + } + defer d.Close() + + names, _ := d.Readdirnames(-1) + sort.Strings(names) + + for _, n := range names { + matched, err := filepath.Match(pattern, n) + if err != nil { + return m, err + } + if matched { + m = append(m, filepath.Join(dir, n)) + } + } + return +} + +// hasMeta reports whether path contains any of the magic characters +// recognized by Match. +func hasMeta(path string) bool { + // TODO(niemeyer): Should other magic characters be added here? + return strings.IndexAny(path, "*?[") >= 0 +} diff --git a/vendor/github.com/spf13/afero/mem/dir.go b/vendor/github.com/spf13/afero/mem/dir.go new file mode 100644 index 000000000..e104013f4 --- /dev/null +++ b/vendor/github.com/spf13/afero/mem/dir.go @@ -0,0 +1,37 @@ +// Copyright © 2014 Steve Francia . +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package mem + +type Dir interface { + Len() int + Names() []string + Files() []*FileData + Add(*FileData) + Remove(*FileData) +} + +func RemoveFromMemDir(dir *FileData, f *FileData) { + dir.memDir.Remove(f) +} + +func AddToMemDir(dir *FileData, f *FileData) { + dir.memDir.Add(f) +} + +func InitializeDir(d *FileData) { + if d.memDir == nil { + d.dir = true + d.memDir = &DirMap{} + } +} diff --git a/vendor/github.com/spf13/afero/mem/dirmap.go b/vendor/github.com/spf13/afero/mem/dirmap.go new file mode 100644 index 000000000..03a57ee5b --- /dev/null +++ b/vendor/github.com/spf13/afero/mem/dirmap.go @@ -0,0 +1,43 @@ +// Copyright © 2015 Steve Francia . +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package mem + +import "sort" + +type DirMap map[string]*FileData + +func (m DirMap) Len() int { return len(m) } +func (m DirMap) Add(f *FileData) { m[f.name] = f } +func (m DirMap) Remove(f *FileData) { delete(m, f.name) } +func (m DirMap) Files() (files []*FileData) { + for _, f := range m { + files = append(files, f) + } + sort.Sort(filesSorter(files)) + return files +} + +// implement sort.Interface for []*FileData +type filesSorter []*FileData + +func (s filesSorter) Len() int { return len(s) } +func (s filesSorter) Swap(i, j int) { s[i], s[j] = s[j], s[i] } +func (s filesSorter) Less(i, j int) bool { return s[i].name < s[j].name } + +func (m DirMap) Names() (names []string) { + for x := range m { + names = append(names, x) + } + return names +} diff --git a/vendor/github.com/spf13/afero/mem/file.go b/vendor/github.com/spf13/afero/mem/file.go new file mode 100644 index 000000000..885e55429 --- /dev/null +++ b/vendor/github.com/spf13/afero/mem/file.go @@ -0,0 +1,314 @@ +// Copyright © 2015 Steve Francia . +// Copyright 2013 tsuru authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package mem + +import ( + "bytes" + "errors" + "io" + "os" + "path/filepath" + "sync" + "sync/atomic" +) + +import "time" + +const FilePathSeparator = string(filepath.Separator) + +type File struct { + // atomic requires 64-bit alignment for struct field access + at int64 + readDirCount int64 + closed bool + readOnly bool + fileData *FileData +} + +func NewFileHandle(data *FileData) *File { + return &File{fileData: data} +} + +func NewReadOnlyFileHandle(data *FileData) *File { + return &File{fileData: data, readOnly: true} +} + +func (f File) Data() *FileData { + return f.fileData +} + +type FileData struct { + sync.Mutex + name string + data []byte + memDir Dir + dir bool + mode os.FileMode + modtime time.Time +} + +func (d *FileData) Name() string { + d.Lock() + defer d.Unlock() + return d.name +} + +func CreateFile(name string) *FileData { + return &FileData{name: name, mode: os.ModeTemporary, modtime: time.Now()} +} + +func CreateDir(name string) *FileData { + return &FileData{name: name, memDir: &DirMap{}, dir: true} +} + +func ChangeFileName(f *FileData, newname string) { + f.Lock() + f.name = newname + f.Unlock() +} + +func SetMode(f *FileData, mode os.FileMode) { + f.Lock() + f.mode = mode + f.Unlock() +} + +func SetModTime(f *FileData, mtime time.Time) { + f.Lock() + setModTime(f, mtime) + f.Unlock() +} + +func setModTime(f *FileData, mtime time.Time) { + f.modtime = mtime +} + +func GetFileInfo(f *FileData) *FileInfo { + return &FileInfo{f} +} + +func (f *File) Open() error { + atomic.StoreInt64(&f.at, 0) + atomic.StoreInt64(&f.readDirCount, 0) + f.fileData.Lock() + f.closed = false + f.fileData.Unlock() + return nil +} + +func (f *File) Close() error { + f.fileData.Lock() + f.closed = true + if !f.readOnly { + setModTime(f.fileData, time.Now()) + } + f.fileData.Unlock() + return nil +} + +func (f *File) Name() string { + return f.fileData.Name() +} + +func (f *File) Stat() (os.FileInfo, error) { + return &FileInfo{f.fileData}, nil +} + +func (f *File) Sync() error { + return nil +} + +func (f *File) Readdir(count int) (res []os.FileInfo, err error) { + var outLength int64 + + f.fileData.Lock() + files := f.fileData.memDir.Files()[f.readDirCount:] + if count > 0 { + if len(files) < count { + outLength = int64(len(files)) + } else { + outLength = int64(count) + } + if len(files) == 0 { + err = io.EOF + } + } else { + outLength = int64(len(files)) + } + f.readDirCount += outLength + f.fileData.Unlock() + + res = make([]os.FileInfo, outLength) + for i := range res { + res[i] = &FileInfo{files[i]} + } + + return res, err +} + +func (f *File) Readdirnames(n int) (names []string, err error) { + fi, err := f.Readdir(n) + names = make([]string, len(fi)) + for i, f := range fi { + _, names[i] = filepath.Split(f.Name()) + } + return names, err +} + +func (f *File) Read(b []byte) (n int, err error) { + f.fileData.Lock() + defer f.fileData.Unlock() + if f.closed == true { + return 0, ErrFileClosed + } + if len(b) > 0 && int(f.at) == len(f.fileData.data) { + return 0, io.EOF + } + if int(f.at) > len(f.fileData.data) { + return 0, io.ErrUnexpectedEOF + } + if len(f.fileData.data)-int(f.at) >= len(b) { + n = len(b) + } else { + n = len(f.fileData.data) - int(f.at) + } + copy(b, f.fileData.data[f.at:f.at+int64(n)]) + atomic.AddInt64(&f.at, int64(n)) + return +} + +func (f *File) ReadAt(b []byte, off int64) (n int, err error) { + atomic.StoreInt64(&f.at, off) + return f.Read(b) +} + +func (f *File) Truncate(size int64) error { + if f.closed == true { + return ErrFileClosed + } + if f.readOnly { + return &os.PathError{Op: "truncate", Path: f.fileData.name, Err: errors.New("file handle is read only")} + } + if size < 0 { + return ErrOutOfRange + } + if size > int64(len(f.fileData.data)) { + diff := size - int64(len(f.fileData.data)) + f.fileData.data = append(f.fileData.data, bytes.Repeat([]byte{00}, int(diff))...) + } else { + f.fileData.data = f.fileData.data[0:size] + } + setModTime(f.fileData, time.Now()) + return nil +} + +func (f *File) Seek(offset int64, whence int) (int64, error) { + if f.closed == true { + return 0, ErrFileClosed + } + switch whence { + case 0: + atomic.StoreInt64(&f.at, offset) + case 1: + atomic.AddInt64(&f.at, int64(offset)) + case 2: + atomic.StoreInt64(&f.at, int64(len(f.fileData.data))+offset) + } + return f.at, nil +} + +func (f *File) Write(b []byte) (n int, err error) { + if f.readOnly { + return 0, &os.PathError{Op: "write", Path: f.fileData.name, Err: errors.New("file handle is read only")} + } + n = len(b) + cur := atomic.LoadInt64(&f.at) + f.fileData.Lock() + defer f.fileData.Unlock() + diff := cur - int64(len(f.fileData.data)) + var tail []byte + if n+int(cur) < len(f.fileData.data) { + tail = f.fileData.data[n+int(cur):] + } + if diff > 0 { + f.fileData.data = append(bytes.Repeat([]byte{00}, int(diff)), b...) + f.fileData.data = append(f.fileData.data, tail...) + } else { + f.fileData.data = append(f.fileData.data[:cur], b...) + f.fileData.data = append(f.fileData.data, tail...) + } + setModTime(f.fileData, time.Now()) + + atomic.StoreInt64(&f.at, int64(len(f.fileData.data))) + return +} + +func (f *File) WriteAt(b []byte, off int64) (n int, err error) { + atomic.StoreInt64(&f.at, off) + return f.Write(b) +} + +func (f *File) WriteString(s string) (ret int, err error) { + return f.Write([]byte(s)) +} + +func (f *File) Info() *FileInfo { + return &FileInfo{f.fileData} +} + +type FileInfo struct { + *FileData +} + +// Implements os.FileInfo +func (s *FileInfo) Name() string { + s.Lock() + _, name := filepath.Split(s.name) + s.Unlock() + return name +} +func (s *FileInfo) Mode() os.FileMode { + s.Lock() + defer s.Unlock() + return s.mode +} +func (s *FileInfo) ModTime() time.Time { + s.Lock() + defer s.Unlock() + return s.modtime +} +func (s *FileInfo) IsDir() bool { + s.Lock() + defer s.Unlock() + return s.dir +} +func (s *FileInfo) Sys() interface{} { return nil } +func (s *FileInfo) Size() int64 { + if s.IsDir() { + return int64(42) + } + s.Lock() + defer s.Unlock() + return int64(len(s.data)) +} + +var ( + ErrFileClosed = errors.New("File is closed") + ErrOutOfRange = errors.New("Out of range") + ErrTooLarge = errors.New("Too large") + ErrFileNotFound = os.ErrNotExist + ErrFileExists = os.ErrExist + ErrDestinationExists = os.ErrExist +) diff --git a/vendor/github.com/spf13/afero/memmap.go b/vendor/github.com/spf13/afero/memmap.go new file mode 100644 index 000000000..09498e70f --- /dev/null +++ b/vendor/github.com/spf13/afero/memmap.go @@ -0,0 +1,365 @@ +// Copyright © 2014 Steve Francia . +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package afero + +import ( + "fmt" + "log" + "os" + "path/filepath" + "strings" + "sync" + "time" + + "github.com/spf13/afero/mem" +) + +type MemMapFs struct { + mu sync.RWMutex + data map[string]*mem.FileData + init sync.Once +} + +func NewMemMapFs() Fs { + return &MemMapFs{} +} + +func (m *MemMapFs) getData() map[string]*mem.FileData { + m.init.Do(func() { + m.data = make(map[string]*mem.FileData) + // Root should always exist, right? + // TODO: what about windows? + m.data[FilePathSeparator] = mem.CreateDir(FilePathSeparator) + }) + return m.data +} + +func (*MemMapFs) Name() string { return "MemMapFS" } + +func (m *MemMapFs) Create(name string) (File, error) { + name = normalizePath(name) + m.mu.Lock() + file := mem.CreateFile(name) + m.getData()[name] = file + m.registerWithParent(file) + m.mu.Unlock() + return mem.NewFileHandle(file), nil +} + +func (m *MemMapFs) unRegisterWithParent(fileName string) error { + f, err := m.lockfreeOpen(fileName) + if err != nil { + return err + } + parent := m.findParent(f) + if parent == nil { + log.Panic("parent of ", f.Name(), " is nil") + } + + parent.Lock() + mem.RemoveFromMemDir(parent, f) + parent.Unlock() + return nil +} + +func (m *MemMapFs) findParent(f *mem.FileData) *mem.FileData { + pdir, _ := filepath.Split(f.Name()) + pdir = filepath.Clean(pdir) + pfile, err := m.lockfreeOpen(pdir) + if err != nil { + return nil + } + return pfile +} + +func (m *MemMapFs) registerWithParent(f *mem.FileData) { + if f == nil { + return + } + parent := m.findParent(f) + if parent == nil { + pdir := filepath.Dir(filepath.Clean(f.Name())) + err := m.lockfreeMkdir(pdir, 0777) + if err != nil { + //log.Println("Mkdir error:", err) + return + } + parent, err = m.lockfreeOpen(pdir) + if err != nil { + //log.Println("Open after Mkdir error:", err) + return + } + } + + parent.Lock() + mem.InitializeDir(parent) + mem.AddToMemDir(parent, f) + parent.Unlock() +} + +func (m *MemMapFs) lockfreeMkdir(name string, perm os.FileMode) error { + name = normalizePath(name) + x, ok := m.getData()[name] + if ok { + // Only return ErrFileExists if it's a file, not a directory. + i := mem.FileInfo{FileData: x} + if !i.IsDir() { + return ErrFileExists + } + } else { + item := mem.CreateDir(name) + m.getData()[name] = item + m.registerWithParent(item) + } + return nil +} + +func (m *MemMapFs) Mkdir(name string, perm os.FileMode) error { + name = normalizePath(name) + + m.mu.RLock() + _, ok := m.getData()[name] + m.mu.RUnlock() + if ok { + return &os.PathError{Op: "mkdir", Path: name, Err: ErrFileExists} + } + + m.mu.Lock() + item := mem.CreateDir(name) + m.getData()[name] = item + m.registerWithParent(item) + m.mu.Unlock() + + m.Chmod(name, perm|os.ModeDir) + + return nil +} + +func (m *MemMapFs) MkdirAll(path string, perm os.FileMode) error { + err := m.Mkdir(path, perm) + if err != nil { + if err.(*os.PathError).Err == ErrFileExists { + return nil + } + return err + } + return nil +} + +// Handle some relative paths +func normalizePath(path string) string { + path = filepath.Clean(path) + + switch path { + case ".": + return FilePathSeparator + case "..": + return FilePathSeparator + default: + return path + } +} + +func (m *MemMapFs) Open(name string) (File, error) { + f, err := m.open(name) + if f != nil { + return mem.NewReadOnlyFileHandle(f), err + } + return nil, err +} + +func (m *MemMapFs) openWrite(name string) (File, error) { + f, err := m.open(name) + if f != nil { + return mem.NewFileHandle(f), err + } + return nil, err +} + +func (m *MemMapFs) open(name string) (*mem.FileData, error) { + name = normalizePath(name) + + m.mu.RLock() + f, ok := m.getData()[name] + m.mu.RUnlock() + if !ok { + return nil, &os.PathError{Op: "open", Path: name, Err: ErrFileNotFound} + } + return f, nil +} + +func (m *MemMapFs) lockfreeOpen(name string) (*mem.FileData, error) { + name = normalizePath(name) + f, ok := m.getData()[name] + if ok { + return f, nil + } else { + return nil, ErrFileNotFound + } +} + +func (m *MemMapFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { + chmod := false + file, err := m.openWrite(name) + if os.IsNotExist(err) && (flag&os.O_CREATE > 0) { + file, err = m.Create(name) + chmod = true + } + if err != nil { + return nil, err + } + if flag == os.O_RDONLY { + file = mem.NewReadOnlyFileHandle(file.(*mem.File).Data()) + } + if flag&os.O_APPEND > 0 { + _, err = file.Seek(0, os.SEEK_END) + if err != nil { + file.Close() + return nil, err + } + } + if flag&os.O_TRUNC > 0 && flag&(os.O_RDWR|os.O_WRONLY) > 0 { + err = file.Truncate(0) + if err != nil { + file.Close() + return nil, err + } + } + if chmod { + m.Chmod(name, perm) + } + return file, nil +} + +func (m *MemMapFs) Remove(name string) error { + name = normalizePath(name) + + m.mu.Lock() + defer m.mu.Unlock() + + if _, ok := m.getData()[name]; ok { + err := m.unRegisterWithParent(name) + if err != nil { + return &os.PathError{Op: "remove", Path: name, Err: err} + } + delete(m.getData(), name) + } else { + return &os.PathError{Op: "remove", Path: name, Err: os.ErrNotExist} + } + return nil +} + +func (m *MemMapFs) RemoveAll(path string) error { + path = normalizePath(path) + m.mu.Lock() + m.unRegisterWithParent(path) + m.mu.Unlock() + + m.mu.RLock() + defer m.mu.RUnlock() + + for p, _ := range m.getData() { + if strings.HasPrefix(p, path) { + m.mu.RUnlock() + m.mu.Lock() + delete(m.getData(), p) + m.mu.Unlock() + m.mu.RLock() + } + } + return nil +} + +func (m *MemMapFs) Rename(oldname, newname string) error { + oldname = normalizePath(oldname) + newname = normalizePath(newname) + + if oldname == newname { + return nil + } + + m.mu.RLock() + defer m.mu.RUnlock() + if _, ok := m.getData()[oldname]; ok { + m.mu.RUnlock() + m.mu.Lock() + m.unRegisterWithParent(oldname) + fileData := m.getData()[oldname] + delete(m.getData(), oldname) + mem.ChangeFileName(fileData, newname) + m.getData()[newname] = fileData + m.registerWithParent(fileData) + m.mu.Unlock() + m.mu.RLock() + } else { + return &os.PathError{Op: "rename", Path: oldname, Err: ErrFileNotFound} + } + return nil +} + +func (m *MemMapFs) Stat(name string) (os.FileInfo, error) { + f, err := m.Open(name) + if err != nil { + return nil, err + } + fi := mem.GetFileInfo(f.(*mem.File).Data()) + return fi, nil +} + +func (m *MemMapFs) Chmod(name string, mode os.FileMode) error { + name = normalizePath(name) + + m.mu.RLock() + f, ok := m.getData()[name] + m.mu.RUnlock() + if !ok { + return &os.PathError{Op: "chmod", Path: name, Err: ErrFileNotFound} + } + + m.mu.Lock() + mem.SetMode(f, mode) + m.mu.Unlock() + + return nil +} + +func (m *MemMapFs) Chtimes(name string, atime time.Time, mtime time.Time) error { + name = normalizePath(name) + + m.mu.RLock() + f, ok := m.getData()[name] + m.mu.RUnlock() + if !ok { + return &os.PathError{Op: "chtimes", Path: name, Err: ErrFileNotFound} + } + + m.mu.Lock() + mem.SetModTime(f, mtime) + m.mu.Unlock() + + return nil +} + +func (m *MemMapFs) List() { + for _, x := range m.data { + y := mem.FileInfo{FileData: x} + fmt.Println(x.Name(), y.Size()) + } +} + +// func debugMemMapList(fs Fs) { +// if x, ok := fs.(*MemMapFs); ok { +// x.List() +// } +// } diff --git a/vendor/github.com/spf13/afero/os.go b/vendor/github.com/spf13/afero/os.go new file mode 100644 index 000000000..6b8bce1c5 --- /dev/null +++ b/vendor/github.com/spf13/afero/os.go @@ -0,0 +1,94 @@ +// Copyright © 2014 Steve Francia . +// Copyright 2013 tsuru authors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package afero + +import ( + "os" + "time" +) + +// OsFs is a Fs implementation that uses functions provided by the os package. +// +// For details in any method, check the documentation of the os package +// (http://golang.org/pkg/os/). +type OsFs struct{} + +func NewOsFs() Fs { + return &OsFs{} +} + +func (OsFs) Name() string { return "OsFs" } + +func (OsFs) Create(name string) (File, error) { + f, e := os.Create(name) + if f == nil { + // while this looks strange, we need to return a bare nil (of type nil) not + // a nil value of type *os.File or nil won't be nil + return nil, e + } + return f, e +} + +func (OsFs) Mkdir(name string, perm os.FileMode) error { + return os.Mkdir(name, perm) +} + +func (OsFs) MkdirAll(path string, perm os.FileMode) error { + return os.MkdirAll(path, perm) +} + +func (OsFs) Open(name string) (File, error) { + f, e := os.Open(name) + if f == nil { + // while this looks strange, we need to return a bare nil (of type nil) not + // a nil value of type *os.File or nil won't be nil + return nil, e + } + return f, e +} + +func (OsFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { + f, e := os.OpenFile(name, flag, perm) + if f == nil { + // while this looks strange, we need to return a bare nil (of type nil) not + // a nil value of type *os.File or nil won't be nil + return nil, e + } + return f, e +} + +func (OsFs) Remove(name string) error { + return os.Remove(name) +} + +func (OsFs) RemoveAll(path string) error { + return os.RemoveAll(path) +} + +func (OsFs) Rename(oldname, newname string) error { + return os.Rename(oldname, newname) +} + +func (OsFs) Stat(name string) (os.FileInfo, error) { + return os.Stat(name) +} + +func (OsFs) Chmod(name string, mode os.FileMode) error { + return os.Chmod(name, mode) +} + +func (OsFs) Chtimes(name string, atime time.Time, mtime time.Time) error { + return os.Chtimes(name, atime, mtime) +} diff --git a/vendor/github.com/spf13/afero/path.go b/vendor/github.com/spf13/afero/path.go new file mode 100644 index 000000000..1d90e46dd --- /dev/null +++ b/vendor/github.com/spf13/afero/path.go @@ -0,0 +1,108 @@ +// Copyright ©2015 The Go Authors +// Copyright ©2015 Steve Francia +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package afero + +import ( + "os" + "path/filepath" + "sort" +) + +// readDirNames reads the directory named by dirname and returns +// a sorted list of directory entries. +// adapted from https://golang.org/src/path/filepath/path.go +func readDirNames(fs Fs, dirname string) ([]string, error) { + f, err := fs.Open(dirname) + if err != nil { + return nil, err + } + names, err := f.Readdirnames(-1) + f.Close() + if err != nil { + return nil, err + } + sort.Strings(names) + return names, nil +} + +// walk recursively descends path, calling walkFn +// adapted from https://golang.org/src/path/filepath/path.go +func walk(fs Fs, path string, info os.FileInfo, walkFn filepath.WalkFunc) error { + err := walkFn(path, info, nil) + if err != nil { + if info.IsDir() && err == filepath.SkipDir { + return nil + } + return err + } + + if !info.IsDir() { + return nil + } + + names, err := readDirNames(fs, path) + if err != nil { + return walkFn(path, info, err) + } + + for _, name := range names { + filename := filepath.Join(path, name) + fileInfo, err := lstatIfOs(fs, filename) + if err != nil { + if err := walkFn(filename, fileInfo, err); err != nil && err != filepath.SkipDir { + return err + } + } else { + err = walk(fs, filename, fileInfo, walkFn) + if err != nil { + if !fileInfo.IsDir() || err != filepath.SkipDir { + return err + } + } + } + } + return nil +} + +// if the filesystem is OsFs use Lstat, else use fs.Stat +func lstatIfOs(fs Fs, path string) (info os.FileInfo, err error) { + _, ok := fs.(*OsFs) + if ok { + info, err = os.Lstat(path) + } else { + info, err = fs.Stat(path) + } + return +} + +// Walk walks the file tree rooted at root, calling walkFn for each file or +// directory in the tree, including root. All errors that arise visiting files +// and directories are filtered by walkFn. The files are walked in lexical +// order, which makes the output deterministic but means that for very +// large directories Walk can be inefficient. +// Walk does not follow symbolic links. + +func (a Afero) Walk(root string, walkFn filepath.WalkFunc) error { + return Walk(a.Fs, root, walkFn) +} + +func Walk(fs Fs, root string, walkFn filepath.WalkFunc) error { + info, err := lstatIfOs(fs, root) + if err != nil { + return walkFn(root, nil, err) + } + return walk(fs, root, info, walkFn) +} diff --git a/vendor/github.com/spf13/afero/readonlyfs.go b/vendor/github.com/spf13/afero/readonlyfs.go new file mode 100644 index 000000000..f1fa55bcf --- /dev/null +++ b/vendor/github.com/spf13/afero/readonlyfs.go @@ -0,0 +1,70 @@ +package afero + +import ( + "os" + "syscall" + "time" +) + +type ReadOnlyFs struct { + source Fs +} + +func NewReadOnlyFs(source Fs) Fs { + return &ReadOnlyFs{source: source} +} + +func (r *ReadOnlyFs) ReadDir(name string) ([]os.FileInfo, error) { + return ReadDir(r.source, name) +} + +func (r *ReadOnlyFs) Chtimes(n string, a, m time.Time) error { + return syscall.EPERM +} + +func (r *ReadOnlyFs) Chmod(n string, m os.FileMode) error { + return syscall.EPERM +} + +func (r *ReadOnlyFs) Name() string { + return "ReadOnlyFilter" +} + +func (r *ReadOnlyFs) Stat(name string) (os.FileInfo, error) { + return r.source.Stat(name) +} + +func (r *ReadOnlyFs) Rename(o, n string) error { + return syscall.EPERM +} + +func (r *ReadOnlyFs) RemoveAll(p string) error { + return syscall.EPERM +} + +func (r *ReadOnlyFs) Remove(n string) error { + return syscall.EPERM +} + +func (r *ReadOnlyFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { + if flag&(os.O_WRONLY|syscall.O_RDWR|os.O_APPEND|os.O_CREATE|os.O_TRUNC) != 0 { + return nil, syscall.EPERM + } + return r.source.OpenFile(name, flag, perm) +} + +func (r *ReadOnlyFs) Open(n string) (File, error) { + return r.source.Open(n) +} + +func (r *ReadOnlyFs) Mkdir(n string, p os.FileMode) error { + return syscall.EPERM +} + +func (r *ReadOnlyFs) MkdirAll(n string, p os.FileMode) error { + return syscall.EPERM +} + +func (r *ReadOnlyFs) Create(n string) (File, error) { + return nil, syscall.EPERM +} diff --git a/vendor/github.com/spf13/afero/regexpfs.go b/vendor/github.com/spf13/afero/regexpfs.go new file mode 100644 index 000000000..9d92dbc05 --- /dev/null +++ b/vendor/github.com/spf13/afero/regexpfs.go @@ -0,0 +1,214 @@ +package afero + +import ( + "os" + "regexp" + "syscall" + "time" +) + +// The RegexpFs filters files (not directories) by regular expression. Only +// files matching the given regexp will be allowed, all others get a ENOENT error ( +// "No such file or directory"). +// +type RegexpFs struct { + re *regexp.Regexp + source Fs +} + +func NewRegexpFs(source Fs, re *regexp.Regexp) Fs { + return &RegexpFs{source: source, re: re} +} + +type RegexpFile struct { + f File + re *regexp.Regexp +} + +func (r *RegexpFs) matchesName(name string) error { + if r.re == nil { + return nil + } + if r.re.MatchString(name) { + return nil + } + return syscall.ENOENT +} + +func (r *RegexpFs) dirOrMatches(name string) error { + dir, err := IsDir(r.source, name) + if err != nil { + return err + } + if dir { + return nil + } + return r.matchesName(name) +} + +func (r *RegexpFs) Chtimes(name string, a, m time.Time) error { + if err := r.dirOrMatches(name); err != nil { + return err + } + return r.source.Chtimes(name, a, m) +} + +func (r *RegexpFs) Chmod(name string, mode os.FileMode) error { + if err := r.dirOrMatches(name); err != nil { + return err + } + return r.source.Chmod(name, mode) +} + +func (r *RegexpFs) Name() string { + return "RegexpFs" +} + +func (r *RegexpFs) Stat(name string) (os.FileInfo, error) { + if err := r.dirOrMatches(name); err != nil { + return nil, err + } + return r.source.Stat(name) +} + +func (r *RegexpFs) Rename(oldname, newname string) error { + dir, err := IsDir(r.source, oldname) + if err != nil { + return err + } + if dir { + return nil + } + if err := r.matchesName(oldname); err != nil { + return err + } + if err := r.matchesName(newname); err != nil { + return err + } + return r.source.Rename(oldname, newname) +} + +func (r *RegexpFs) RemoveAll(p string) error { + dir, err := IsDir(r.source, p) + if err != nil { + return err + } + if !dir { + if err := r.matchesName(p); err != nil { + return err + } + } + return r.source.RemoveAll(p) +} + +func (r *RegexpFs) Remove(name string) error { + if err := r.dirOrMatches(name); err != nil { + return err + } + return r.source.Remove(name) +} + +func (r *RegexpFs) OpenFile(name string, flag int, perm os.FileMode) (File, error) { + if err := r.dirOrMatches(name); err != nil { + return nil, err + } + return r.source.OpenFile(name, flag, perm) +} + +func (r *RegexpFs) Open(name string) (File, error) { + dir, err := IsDir(r.source, name) + if err != nil { + return nil, err + } + if !dir { + if err := r.matchesName(name); err != nil { + return nil, err + } + } + f, err := r.source.Open(name) + return &RegexpFile{f: f, re: r.re}, nil +} + +func (r *RegexpFs) Mkdir(n string, p os.FileMode) error { + return r.source.Mkdir(n, p) +} + +func (r *RegexpFs) MkdirAll(n string, p os.FileMode) error { + return r.source.MkdirAll(n, p) +} + +func (r *RegexpFs) Create(name string) (File, error) { + if err := r.matchesName(name); err != nil { + return nil, err + } + return r.source.Create(name) +} + +func (f *RegexpFile) Close() error { + return f.f.Close() +} + +func (f *RegexpFile) Read(s []byte) (int, error) { + return f.f.Read(s) +} + +func (f *RegexpFile) ReadAt(s []byte, o int64) (int, error) { + return f.f.ReadAt(s, o) +} + +func (f *RegexpFile) Seek(o int64, w int) (int64, error) { + return f.f.Seek(o, w) +} + +func (f *RegexpFile) Write(s []byte) (int, error) { + return f.f.Write(s) +} + +func (f *RegexpFile) WriteAt(s []byte, o int64) (int, error) { + return f.f.WriteAt(s, o) +} + +func (f *RegexpFile) Name() string { + return f.f.Name() +} + +func (f *RegexpFile) Readdir(c int) (fi []os.FileInfo, err error) { + var rfi []os.FileInfo + rfi, err = f.f.Readdir(c) + if err != nil { + return nil, err + } + for _, i := range rfi { + if i.IsDir() || f.re.MatchString(i.Name()) { + fi = append(fi, i) + } + } + return fi, nil +} + +func (f *RegexpFile) Readdirnames(c int) (n []string, err error) { + fi, err := f.Readdir(c) + if err != nil { + return nil, err + } + for _, s := range fi { + n = append(n, s.Name()) + } + return n, nil +} + +func (f *RegexpFile) Stat() (os.FileInfo, error) { + return f.f.Stat() +} + +func (f *RegexpFile) Sync() error { + return f.f.Sync() +} + +func (f *RegexpFile) Truncate(s int64) error { + return f.f.Truncate(s) +} + +func (f *RegexpFile) WriteString(s string) (int, error) { + return f.f.WriteString(s) +} diff --git a/vendor/github.com/spf13/afero/unionFile.go b/vendor/github.com/spf13/afero/unionFile.go new file mode 100644 index 000000000..99f9e5db2 --- /dev/null +++ b/vendor/github.com/spf13/afero/unionFile.go @@ -0,0 +1,274 @@ +package afero + +import ( + "io" + "os" + "path/filepath" + "syscall" +) + +// The UnionFile implements the afero.File interface and will be returned +// when reading a directory present at least in the overlay or opening a file +// for writing. +// +// The calls to +// Readdir() and Readdirnames() merge the file os.FileInfo / names from the +// base and the overlay - for files present in both layers, only those +// from the overlay will be used. +// +// When opening files for writing (Create() / OpenFile() with the right flags) +// the operations will be done in both layers, starting with the overlay. A +// successful read in the overlay will move the cursor position in the base layer +// by the number of bytes read. +type UnionFile struct { + base File + layer File + off int + files []os.FileInfo +} + +func (f *UnionFile) Close() error { + // first close base, so we have a newer timestamp in the overlay. If we'd close + // the overlay first, we'd get a cacheStale the next time we access this file + // -> cache would be useless ;-) + if f.base != nil { + f.base.Close() + } + if f.layer != nil { + return f.layer.Close() + } + return BADFD +} + +func (f *UnionFile) Read(s []byte) (int, error) { + if f.layer != nil { + n, err := f.layer.Read(s) + if (err == nil || err == io.EOF) && f.base != nil { + // advance the file position also in the base file, the next + // call may be a write at this position (or a seek with SEEK_CUR) + if _, seekErr := f.base.Seek(int64(n), os.SEEK_CUR); seekErr != nil { + // only overwrite err in case the seek fails: we need to + // report an eventual io.EOF to the caller + err = seekErr + } + } + return n, err + } + if f.base != nil { + return f.base.Read(s) + } + return 0, BADFD +} + +func (f *UnionFile) ReadAt(s []byte, o int64) (int, error) { + if f.layer != nil { + n, err := f.layer.ReadAt(s, o) + if (err == nil || err == io.EOF) && f.base != nil { + _, err = f.base.Seek(o+int64(n), os.SEEK_SET) + } + return n, err + } + if f.base != nil { + return f.base.ReadAt(s, o) + } + return 0, BADFD +} + +func (f *UnionFile) Seek(o int64, w int) (pos int64, err error) { + if f.layer != nil { + pos, err = f.layer.Seek(o, w) + if (err == nil || err == io.EOF) && f.base != nil { + _, err = f.base.Seek(o, w) + } + return pos, err + } + if f.base != nil { + return f.base.Seek(o, w) + } + return 0, BADFD +} + +func (f *UnionFile) Write(s []byte) (n int, err error) { + if f.layer != nil { + n, err = f.layer.Write(s) + if err == nil && f.base != nil { // hmm, do we have fixed size files where a write may hit the EOF mark? + _, err = f.base.Write(s) + } + return n, err + } + if f.base != nil { + return f.base.Write(s) + } + return 0, BADFD +} + +func (f *UnionFile) WriteAt(s []byte, o int64) (n int, err error) { + if f.layer != nil { + n, err = f.layer.WriteAt(s, o) + if err == nil && f.base != nil { + _, err = f.base.WriteAt(s, o) + } + return n, err + } + if f.base != nil { + return f.base.WriteAt(s, o) + } + return 0, BADFD +} + +func (f *UnionFile) Name() string { + if f.layer != nil { + return f.layer.Name() + } + return f.base.Name() +} + +// Readdir will weave the two directories together and +// return a single view of the overlayed directories +func (f *UnionFile) Readdir(c int) (ofi []os.FileInfo, err error) { + if f.off == 0 { + var files = make(map[string]os.FileInfo) + var rfi []os.FileInfo + if f.layer != nil { + rfi, err = f.layer.Readdir(-1) + if err != nil { + return nil, err + } + for _, fi := range rfi { + files[fi.Name()] = fi + } + } + + if f.base != nil { + rfi, err = f.base.Readdir(-1) + if err != nil { + return nil, err + } + for _, fi := range rfi { + if _, exists := files[fi.Name()]; !exists { + files[fi.Name()] = fi + } + } + } + for _, fi := range files { + f.files = append(f.files, fi) + } + } + if c == -1 { + return f.files[f.off:], nil + } + defer func() { f.off += c }() + return f.files[f.off:c], nil +} + +func (f *UnionFile) Readdirnames(c int) ([]string, error) { + rfi, err := f.Readdir(c) + if err != nil { + return nil, err + } + var names []string + for _, fi := range rfi { + names = append(names, fi.Name()) + } + return names, nil +} + +func (f *UnionFile) Stat() (os.FileInfo, error) { + if f.layer != nil { + return f.layer.Stat() + } + if f.base != nil { + return f.base.Stat() + } + return nil, BADFD +} + +func (f *UnionFile) Sync() (err error) { + if f.layer != nil { + err = f.layer.Sync() + if err == nil && f.base != nil { + err = f.base.Sync() + } + return err + } + if f.base != nil { + return f.base.Sync() + } + return BADFD +} + +func (f *UnionFile) Truncate(s int64) (err error) { + if f.layer != nil { + err = f.layer.Truncate(s) + if err == nil && f.base != nil { + err = f.base.Truncate(s) + } + return err + } + if f.base != nil { + return f.base.Truncate(s) + } + return BADFD +} + +func (f *UnionFile) WriteString(s string) (n int, err error) { + if f.layer != nil { + n, err = f.layer.WriteString(s) + if err == nil && f.base != nil { + _, err = f.base.WriteString(s) + } + return n, err + } + if f.base != nil { + return f.base.WriteString(s) + } + return 0, BADFD +} + +func copyToLayer(base Fs, layer Fs, name string) error { + bfh, err := base.Open(name) + if err != nil { + return err + } + defer bfh.Close() + + // First make sure the directory exists + exists, err := Exists(layer, filepath.Dir(name)) + if err != nil { + return err + } + if !exists { + err = layer.MkdirAll(filepath.Dir(name), 0777) // FIXME? + if err != nil { + return err + } + } + + // Create the file on the overlay + lfh, err := layer.Create(name) + if err != nil { + return err + } + n, err := io.Copy(lfh, bfh) + if err != nil { + // If anything fails, clean up the file + layer.Remove(name) + lfh.Close() + return err + } + + bfi, err := bfh.Stat() + if err != nil || bfi.Size() != n { + layer.Remove(name) + lfh.Close() + return syscall.EIO + } + + err = lfh.Close() + if err != nil { + layer.Remove(name) + lfh.Close() + return err + } + return layer.Chtimes(name, bfi.ModTime(), bfi.ModTime()) +} diff --git a/vendor/github.com/spf13/afero/util.go b/vendor/github.com/spf13/afero/util.go new file mode 100644 index 000000000..4f253f481 --- /dev/null +++ b/vendor/github.com/spf13/afero/util.go @@ -0,0 +1,330 @@ +// Copyright ©2015 Steve Francia +// Portions Copyright ©2015 The Hugo Authors +// Portions Copyright 2016-present Bjørn Erik Pedersen +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package afero + +import ( + "bytes" + "fmt" + "io" + "os" + "path/filepath" + "strings" + "unicode" + + "golang.org/x/text/transform" + "golang.org/x/text/unicode/norm" +) + +// Filepath separator defined by os.Separator. +const FilePathSeparator = string(filepath.Separator) + +// Takes a reader and a path and writes the content +func (a Afero) WriteReader(path string, r io.Reader) (err error) { + return WriteReader(a.Fs, path, r) +} + +func WriteReader(fs Fs, path string, r io.Reader) (err error) { + dir, _ := filepath.Split(path) + ospath := filepath.FromSlash(dir) + + if ospath != "" { + err = fs.MkdirAll(ospath, 0777) // rwx, rw, r + if err != nil { + if err != os.ErrExist { + return err + } + } + } + + file, err := fs.Create(path) + if err != nil { + return + } + defer file.Close() + + _, err = io.Copy(file, r) + return +} + +// Same as WriteReader but checks to see if file/directory already exists. +func (a Afero) SafeWriteReader(path string, r io.Reader) (err error) { + return SafeWriteReader(a.Fs, path, r) +} + +func SafeWriteReader(fs Fs, path string, r io.Reader) (err error) { + dir, _ := filepath.Split(path) + ospath := filepath.FromSlash(dir) + + if ospath != "" { + err = fs.MkdirAll(ospath, 0777) // rwx, rw, r + if err != nil { + return + } + } + + exists, err := Exists(fs, path) + if err != nil { + return + } + if exists { + return fmt.Errorf("%v already exists", path) + } + + file, err := fs.Create(path) + if err != nil { + return + } + defer file.Close() + + _, err = io.Copy(file, r) + return +} + +func (a Afero) GetTempDir(subPath string) string { + return GetTempDir(a.Fs, subPath) +} + +// GetTempDir returns the default temp directory with trailing slash +// if subPath is not empty then it will be created recursively with mode 777 rwx rwx rwx +func GetTempDir(fs Fs, subPath string) string { + addSlash := func(p string) string { + if FilePathSeparator != p[len(p)-1:] { + p = p + FilePathSeparator + } + return p + } + dir := addSlash(os.TempDir()) + + if subPath != "" { + // preserve windows backslash :-( + if FilePathSeparator == "\\" { + subPath = strings.Replace(subPath, "\\", "____", -1) + } + dir = dir + UnicodeSanitize((subPath)) + if FilePathSeparator == "\\" { + dir = strings.Replace(dir, "____", "\\", -1) + } + + if exists, _ := Exists(fs, dir); exists { + return addSlash(dir) + } + + err := fs.MkdirAll(dir, 0777) + if err != nil { + panic(err) + } + dir = addSlash(dir) + } + return dir +} + +// Rewrite string to remove non-standard path characters +func UnicodeSanitize(s string) string { + source := []rune(s) + target := make([]rune, 0, len(source)) + + for _, r := range source { + if unicode.IsLetter(r) || + unicode.IsDigit(r) || + unicode.IsMark(r) || + r == '.' || + r == '/' || + r == '\\' || + r == '_' || + r == '-' || + r == '%' || + r == ' ' || + r == '#' { + target = append(target, r) + } + } + + return string(target) +} + +// Transform characters with accents into plain forms. +func NeuterAccents(s string) string { + t := transform.Chain(norm.NFD, transform.RemoveFunc(isMn), norm.NFC) + result, _, _ := transform.String(t, string(s)) + + return result +} + +func isMn(r rune) bool { + return unicode.Is(unicode.Mn, r) // Mn: nonspacing marks +} + +func (a Afero) FileContainsBytes(filename string, subslice []byte) (bool, error) { + return FileContainsBytes(a.Fs, filename, subslice) +} + +// Check if a file contains a specified byte slice. +func FileContainsBytes(fs Fs, filename string, subslice []byte) (bool, error) { + f, err := fs.Open(filename) + if err != nil { + return false, err + } + defer f.Close() + + return readerContainsAny(f, subslice), nil +} + +func (a Afero) FileContainsAnyBytes(filename string, subslices [][]byte) (bool, error) { + return FileContainsAnyBytes(a.Fs, filename, subslices) +} + +// Check if a file contains any of the specified byte slices. +func FileContainsAnyBytes(fs Fs, filename string, subslices [][]byte) (bool, error) { + f, err := fs.Open(filename) + if err != nil { + return false, err + } + defer f.Close() + + return readerContainsAny(f, subslices...), nil +} + +// readerContains reports whether any of the subslices is within r. +func readerContainsAny(r io.Reader, subslices ...[]byte) bool { + + if r == nil || len(subslices) == 0 { + return false + } + + largestSlice := 0 + + for _, sl := range subslices { + if len(sl) > largestSlice { + largestSlice = len(sl) + } + } + + if largestSlice == 0 { + return false + } + + bufflen := largestSlice * 4 + halflen := bufflen / 2 + buff := make([]byte, bufflen) + var err error + var n, i int + + for { + i++ + if i == 1 { + n, err = io.ReadAtLeast(r, buff[:halflen], halflen) + } else { + if i != 2 { + // shift left to catch overlapping matches + copy(buff[:], buff[halflen:]) + } + n, err = io.ReadAtLeast(r, buff[halflen:], halflen) + } + + if n > 0 { + for _, sl := range subslices { + if bytes.Contains(buff, sl) { + return true + } + } + } + + if err != nil { + break + } + } + return false +} + +func (a Afero) DirExists(path string) (bool, error) { + return DirExists(a.Fs, path) +} + +// DirExists checks if a path exists and is a directory. +func DirExists(fs Fs, path string) (bool, error) { + fi, err := fs.Stat(path) + if err == nil && fi.IsDir() { + return true, nil + } + if os.IsNotExist(err) { + return false, nil + } + return false, err +} + +func (a Afero) IsDir(path string) (bool, error) { + return IsDir(a.Fs, path) +} + +// IsDir checks if a given path is a directory. +func IsDir(fs Fs, path string) (bool, error) { + fi, err := fs.Stat(path) + if err != nil { + return false, err + } + return fi.IsDir(), nil +} + +func (a Afero) IsEmpty(path string) (bool, error) { + return IsEmpty(a.Fs, path) +} + +// IsEmpty checks if a given file or directory is empty. +func IsEmpty(fs Fs, path string) (bool, error) { + if b, _ := Exists(fs, path); !b { + return false, fmt.Errorf("%q path does not exist", path) + } + fi, err := fs.Stat(path) + if err != nil { + return false, err + } + if fi.IsDir() { + f, err := fs.Open(path) + if err != nil { + return false, err + } + defer f.Close() + list, err := f.Readdir(-1) + return len(list) == 0, nil + } + return fi.Size() == 0, nil +} + +func (a Afero) Exists(path string) (bool, error) { + return Exists(a.Fs, path) +} + +// Check if a file or directory exists. +func Exists(fs Fs, path string) (bool, error) { + _, err := fs.Stat(path) + if err == nil { + return true, nil + } + if os.IsNotExist(err) { + return false, nil + } + return false, err +} + +func FullBaseFsPath(basePathFs *BasePathFs, relativePath string) string { + combinedPath := filepath.Join(basePathFs.path, relativePath) + if parent, ok := basePathFs.source.(*BasePathFs); ok { + return FullBaseFsPath(parent, combinedPath) + } + + return combinedPath +} diff --git a/vendor/vendor.json b/vendor/vendor.json index 4da4a0692..0a9fdf263 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -2127,6 +2127,18 @@ "revision": "b061729afc07e77a8aa4fad0a2fd840958f1942a", "revisionTime": "2016-09-27T10:08:44Z" }, + { + "checksumSHA1": "F3JU4T4XXvZTRAcv6rhTao4QGos=", + "path": "github.com/spf13/afero", + "revision": "bb8f1927f2a9d3ab41c9340aa034f6b803f4359c", + "revisionTime": "2018-01-15T19:27:20Z" + }, + { + "checksumSHA1": "X6RueW0rO55PbOQ0sMWSQOxVl4I=", + "path": "github.com/spf13/afero/mem", + "revision": "bb8f1927f2a9d3ab41c9340aa034f6b803f4359c", + "revisionTime": "2018-01-15T19:27:20Z" + }, { "checksumSHA1": "5XyfTtyMIFp/q/Xz3y0LgbhCnfQ=", "path": "github.com/terraform-providers/terraform-provider-aws", From 7987a2fdb25c892b7ec7eaee3f62efd7bd05fa77 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Thu, 1 Feb 2018 19:03:54 -0800 Subject: [PATCH 051/156] configs: new package for HCL2-based configuration There's a lot of complexity in our existing "config" package that results from our approach to handling configuration with HCL and HIL. A lot of that functionality is no longer needed -- or must work in a significantly different way -- for HCL2. The new package "configs", which is named following the convention of some Go standard library packages like "strings", is a re-imagination of some of the functionality from the "config" package for an HCL2-only world. The scope of this package will be slightly smaller than "config", since it only deals with config loading and not with expression evaluation. Another package "lang" (mentioned in the docstring here but not yet added) will deal with the more dynamic portions of of configuration handling, including populating an hcl.EvalContext to evaluate expressions. --- configs/doc.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 configs/doc.go diff --git a/configs/doc.go b/configs/doc.go new file mode 100644 index 000000000..9688b36cd --- /dev/null +++ b/configs/doc.go @@ -0,0 +1,14 @@ +// Package configs contains types that represent Terraform configurations and +// the different elements thereof. +// +// The functionality in this package can be used for some static analyses of +// Terraform configurations, but this package generally exposes representations +// of the configuration source code rather than the result of evaluating these +// objects. The sibling package "lang" deals with evaluation of structures +// and expressions in the configuration. +// +// Due to its close relationship with HCL, this package makes frequent use +// of types from the HCL API, including raw HCL diagnostic messages. Such +// diagnostics can be converted into Terraform-flavored diagnostics, if needed, +// using functions in the sibling package tfdiags. +package configs From a0f4a313ef9d9f6cbab300cc72a03ad4d4b21941 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Thu, 1 Feb 2018 19:07:02 -0800 Subject: [PATCH 052/156] configs: Parser type configs.Parser is the entry-point for this package, providing functions to load and parse HCL-based configuration files. We use the library "afero" to decouple the parser from the physical OS filesystem, which here allows us to easily use an in-memory filesystem for testing and will, in future, allow us to read files from more unusual places, such as configuration embedded in a plan file. --- configs/parser.go | 85 ++++++++++++++++++++++++++++++++++++++++++ configs/parser_test.go | 31 +++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 configs/parser.go create mode 100644 configs/parser_test.go diff --git a/configs/parser.go b/configs/parser.go new file mode 100644 index 000000000..3d3f07ff1 --- /dev/null +++ b/configs/parser.go @@ -0,0 +1,85 @@ +package configs + +import ( + "fmt" + "strings" + + "github.com/hashicorp/hcl2/hcl" + "github.com/hashicorp/hcl2/hclparse" + "github.com/spf13/afero" +) + +// Parser is the main interface to read configuration files and other related +// files from disk. +// +// It retains a cache of all files that are loaded so that they can be used +// to create source code snippets in diagnostics, etc. +type Parser struct { + fs afero.Afero + p *hclparse.Parser +} + +// NewParser creates and returns a new Parser that reads files from the given +// filesystem. If a nil filesystem is passed then the system's "real" filesystem +// will be used, via afero.OsFs. +func NewParser(fs afero.Fs) *Parser { + if fs == nil { + fs = afero.OsFs{} + } + + return &Parser{ + fs: afero.Afero{Fs: fs}, + p: hclparse.NewParser(), + } +} + +// LoadHCLFile is a low-level method that reads the file at the given path, +// parses it, and returns the hcl.Body representing its root. In many cases +// it is better to use one of the other Load*File methods on this type, +// which additionally decode the root body in some way and return a higher-level +// construct. +// +// If the file cannot be read at all -- e.g. because it does not exist -- then +// this method will return a nil body and error diagnostics. In this case +// callers may wish to ignore the provided error diagnostics and produce +// a more context-sensitive error instead. +// +// The file will be parsed using the HCL native syntax unless the filename +// ends with ".json", in which case the HCL JSON syntax will be used. +func (p *Parser) LoadHCLFile(path string) (hcl.Body, hcl.Diagnostics) { + src, err := p.fs.ReadFile(path) + + if err != nil { + return nil, hcl.Diagnostics{ + { + Severity: hcl.DiagError, + Summary: "Failed to read file", + Detail: fmt.Sprintf("The file %q could not be read.", path), + }, + } + } + + var file *hcl.File + var diags hcl.Diagnostics + switch { + case strings.HasSuffix(path, ".json"): + file, diags = p.p.ParseJSON(src, path) + default: + file, diags = p.p.ParseHCL(src, path) + } + + // If the returned file or body is nil, then we'll return a non-nil empty + // body so we'll meet our contract that nil means an error reading the file. + if file == nil || file.Body == nil { + return hcl.EmptyBody(), diags + } + + return file.Body, diags +} + +// Sources returns a map of the cached source buffers for all files that +// have been loaded through this parser, with source filenames (as requested +// when each file was opened) as the keys. +func (p *Parser) Sources() map[string][]byte { + return p.p.Sources() +} diff --git a/configs/parser_test.go b/configs/parser_test.go new file mode 100644 index 000000000..316a09e5d --- /dev/null +++ b/configs/parser_test.go @@ -0,0 +1,31 @@ +package configs + +import ( + "os" + "path" + + "github.com/spf13/afero" +) + +// testParser returns a parser that reads files from the given map, which +// is from paths to file contents. +// +// Since this function uses only in-memory objects, it should never fail. +// If any errors are encountered in practice, this function will panic. +func testParser(files map[string]string) *Parser { + fs := afero.Afero{Fs: afero.NewMemMapFs()} + + for filePath, contents := range files { + dirPath := path.Dir(filePath) + err := fs.MkdirAll(dirPath, os.ModePerm) + if err != nil { + panic(err) + } + err = fs.WriteFile(filePath, []byte(contents), os.ModePerm) + if err != nil { + panic(err) + } + } + + return NewParser(fs) +} From 05e3b47ba1b6a7b18b7facf5a0fa4e8274bd9f51 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Thu, 1 Feb 2018 19:12:56 -0800 Subject: [PATCH 053/156] configs: Parser.LoadValuesFile This method loads a "values file" -- also known as a "tfvars file" -- and returns the values found inside. A values file is an HCL file (in either native or JSON syntax) whose top-level body is treated as a set of arbitrary key/value pairs whose values may not depend on any variables or functions. We will load values files through a configs.Parser -- even though values files are not strictly-speaking part of configuration -- because this causes them to be registered in our source code cache so that we can generate source code snippets if we need to report any diagnostics. --- configs/parser_values.go | 43 +++++++++++++ configs/parser_values_test.go | 113 ++++++++++++++++++++++++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 configs/parser_values.go create mode 100644 configs/parser_values_test.go diff --git a/configs/parser_values.go b/configs/parser_values.go new file mode 100644 index 000000000..b7f1c1c5d --- /dev/null +++ b/configs/parser_values.go @@ -0,0 +1,43 @@ +package configs + +import ( + "github.com/hashicorp/hcl2/hcl" + "github.com/zclconf/go-cty/cty" +) + +// LoadValuesFile reads the file at the given path and parses it as a "values +// file", which is an HCL config file whose top-level attributes are treated +// as arbitrary key.value pairs. +// +// If the file cannot be read -- for example, if it does not exist -- then +// a nil map will be returned along with error diagnostics. Callers may wish +// to disregard the returned diagnostics in this case and instead generate +// their own error message(s) with additional context. +// +// If the returned diagnostics has errors when a non-nil map is returned +// then the map may be incomplete but should be valid enough for careful +// static analysis. +// +// This method wraps LoadHCLFile, and so it inherits the syntax selection +// behaviors documented for that method. +func (p *Parser) LoadValuesFile(path string) (map[string]cty.Value, hcl.Diagnostics) { + body, diags := p.LoadHCLFile(path) + if body == nil { + return nil, diags + } + + vals := make(map[string]cty.Value) + attrs, attrDiags := body.JustAttributes() + diags = append(diags, attrDiags...) + if attrs == nil { + return vals, diags + } + + for name, attr := range attrs { + val, valDiags := attr.Expr.Value(nil) + diags = append(diags, valDiags...) + vals[name] = val + } + + return vals, diags +} diff --git a/configs/parser_values_test.go b/configs/parser_values_test.go new file mode 100644 index 000000000..9c95b65f2 --- /dev/null +++ b/configs/parser_values_test.go @@ -0,0 +1,113 @@ +package configs + +import ( + "testing" + + "github.com/zclconf/go-cty/cty" +) + +func TestParserLoadValuesFile(t *testing.T) { + tests := map[string]struct { + Source string + Want map[string]cty.Value + DiagCount int + }{ + "empty.tfvars": { + "", + map[string]cty.Value{}, + 0, + }, + "empty.json": { + "{}", + map[string]cty.Value{}, + 0, + }, + "zerolen.json": { + "", + map[string]cty.Value{}, + 2, // syntax error and missing root object + }, + "one-number.tfvars": { + "foo = 1\n", + map[string]cty.Value{ + "foo": cty.NumberIntVal(1), + }, + 0, + }, + "one-number.tfvars.json": { + `{"foo": 1}`, + map[string]cty.Value{ + "foo": cty.NumberIntVal(1), + }, + 0, + }, + "two-bools.tfvars": { + "foo = true\nbar = false\n", + map[string]cty.Value{ + "foo": cty.True, + "bar": cty.False, + }, + 0, + }, + "two-bools.tfvars.json": { + `{"foo": true, "bar": false}`, + map[string]cty.Value{ + "foo": cty.True, + "bar": cty.False, + }, + 0, + }, + "invalid-syntax.tfvars": { + "foo bar baz\n", + map[string]cty.Value{}, + 1, // attribute or block definition required + }, + "block.tfvars": { + "foo = true\ninvalid {\n}\n", + map[string]cty.Value{ + "foo": cty.True, + }, + 1, // blocks are not allowed + }, + "variables.tfvars": { + "baz = true\nfoo = var.baz\n", + map[string]cty.Value{ + "baz": cty.True, + "foo": cty.DynamicVal, + }, + 1, // variables cannot be referenced here + }, + } + + for name, test := range tests { + t.Run(name, func(t *testing.T) { + p := testParser(map[string]string{ + name: test.Source, + }) + got, diags := p.LoadValuesFile(name) + if len(diags) != test.DiagCount { + t.Errorf("wrong number of diagnostics %d; want %d", len(diags), test.DiagCount) + for _, diag := range diags { + t.Logf("- %s", diag) + } + } + + if len(got) != len(test.Want) { + t.Errorf("wrong number of result keys %d; want %d", len(got), len(test.Want)) + } + + for name, gotVal := range got { + wantVal := test.Want[name] + if wantVal == cty.NilVal { + t.Errorf("unexpected result key %q", name) + continue + } + + if !gotVal.RawEquals(wantVal) { + t.Errorf("wrong value for %q\ngot: %#v\nwant: %#v", name, gotVal, wantVal) + continue + } + } + }) + } +} From 13fa73c63e36b5fb22867d094c7d3e1c958c6dae Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Thu, 1 Feb 2018 20:33:06 -0800 Subject: [PATCH 054/156] configs: stub out main configuration structs These types represent the individual elements within configuration, the modules a configuration is made of, and the configuration (static module tree) itself. --- configs/backend.go | 14 +++++ configs/config.go | 30 +++++++++ configs/module.go | 66 ++++++++++++++++++++ configs/module_call.go | 18 ++++++ configs/named_values.go | 37 +++++++++++ configs/provider.go | 28 +++++++++ configs/provisioneronfailure_string.go | 16 +++++ configs/provisionerwhen_string.go | 16 +++++ configs/resource.go | 86 ++++++++++++++++++++++++++ configs/variable_type_hint.go | 45 ++++++++++++++ configs/variabletypehint_string.go | 29 +++++++++ configs/version_constraint.go | 15 +++++ 12 files changed, 400 insertions(+) create mode 100644 configs/backend.go create mode 100644 configs/config.go create mode 100644 configs/module.go create mode 100644 configs/module_call.go create mode 100644 configs/named_values.go create mode 100644 configs/provider.go create mode 100644 configs/provisioneronfailure_string.go create mode 100644 configs/provisionerwhen_string.go create mode 100644 configs/resource.go create mode 100644 configs/variable_type_hint.go create mode 100644 configs/variabletypehint_string.go create mode 100644 configs/version_constraint.go diff --git a/configs/backend.go b/configs/backend.go new file mode 100644 index 000000000..43e872bed --- /dev/null +++ b/configs/backend.go @@ -0,0 +1,14 @@ +package configs + +import ( + "github.com/hashicorp/hcl2/hcl" +) + +// Backend represents a "backend" block inside a "terraform" block in a module +// or file. +type Backend struct { + Type string + Config hcl.Body + + DeclRange hcl.Range +} diff --git a/configs/config.go b/configs/config.go new file mode 100644 index 000000000..07f6ed0a5 --- /dev/null +++ b/configs/config.go @@ -0,0 +1,30 @@ +package configs + +// A Config is a node in the tree of modules within a configuration. +// +// The module tree is constructed by following ModuleCall instances recursively +// through the root module transitively into descendent modules. +// +// A module tree described in *this* package represents the static tree +// represented by configuration. During evaluation a static ModuleNode may +// expand into zero or more module instances depending on the use of count and +// for_each configuration attributes within each call. +type Config struct { + // RootModule points to the Config for the root module within the same + // module tree as this module. If this module _is_ the root module then + // this is self-referential. + Root *Config + + // ParentModule points to the Config for the module that directly calls + // this module. If this is the root module then this field is nil. + Parent *Config + + // ChildModules points to the Config for each of the direct child modules + // called from this module. The keys in this map match the keys in + // Module.ModuleCalls. + Children map[string]*Config + + // Elements points to the object describing the configuration for the + // various elements (variables, resources, etc) defined by this module. + Elements *Module +} diff --git a/configs/module.go b/configs/module.go new file mode 100644 index 000000000..5b9f51041 --- /dev/null +++ b/configs/module.go @@ -0,0 +1,66 @@ +package configs + +import ( + "github.com/hashicorp/hcl2/hcl" +) + +// Module is a container for a set of configuration constructs that are +// evaluated within a common namespace. +type Module struct { + CoreVersionConstraints []VersionConstraint + + Backend *Backend + ProviderConfigs map[string]*Provider + ProviderRequirements map[string][]VersionConstraint + + Variables map[string]*Variable + Locals map[string]*Local + Outputs map[string]*Output + + ModuleCalls map[string]*ModuleCall + + ManagedResources map[string]*ManagedResource + DataResources map[string]*DataResource +} + +// NewModule takes a list of primary files and a list of override files and +// produces a *Module by combining the files together. +// +// If there are any conflicting declarations in the given files -- for example, +// if the same variable name is defined twice -- then the resulting module +// will be incomplete and error diagnostics will be returned. Careful static +// analysis of the returned Module is still possible in this case, but the +// module will probably not be semantically valid. +func NewModule(primaryFiles, overrideFiles []*File) (*Module, hcl.Diagnostics) { + // TODO: process each file in turn, combining and merging as necessary + // to produce a single flat *Module. + panic("NewModule not yet implemented") +} + +// File describes the contents of a single configuration file. +// +// Individual files are not usually used alone, but rather combined together +// with other files (conventionally, those in the same directory) to produce +// a *Module, using NewModule. +// +// At the level of an individual file we represent directly the structural +// elements present in the file, without any attempt to detect conflicting +// declarations. A File object can therefore be used for some basic static +// analysis of individual elements, but must be built into a Module to detect +// duplicate declarations. +type File struct { + CoreVersionConstraints []*VersionConstraint + + Backends []*Backend + ProviderConfigs []*Provider + ProviderRequirements []*ProviderRequirement + + Variables []*Variable + Locals []*Local + Outputs []*Output + + ModuleCalls []*ModuleCall + + ManagedResources []*ManagedResource + DataResources []*DataResource +} diff --git a/configs/module_call.go b/configs/module_call.go new file mode 100644 index 000000000..ca3205cc4 --- /dev/null +++ b/configs/module_call.go @@ -0,0 +1,18 @@ +package configs + +import ( + "github.com/hashicorp/hcl2/hcl" +) + +// ModuleCall represents a "module" block in a module or file. +type ModuleCall struct { + Source string + SourceRange hcl.Range + + Version VersionConstraint + + Count hcl.Expression + ForEach hcl.Expression + + DeclRange hcl.Range +} diff --git a/configs/named_values.go b/configs/named_values.go new file mode 100644 index 000000000..c2d2c8b83 --- /dev/null +++ b/configs/named_values.go @@ -0,0 +1,37 @@ +package configs + +import ( + "github.com/hashicorp/hcl2/hcl" + "github.com/zclconf/go-cty/cty" +) + +// Variable represents a "variable" block in a module or file. +type Variable struct { + Name string + Description string + Default cty.Value + TypeHint VariableTypeHint + + DeclRange hcl.Range +} + +// Output represents an "output" block in a module or file. +type Output struct { + Name string + Description string + Expr hcl.Expression + DependsOn []hcl.Traversal + Sensitive bool + + DeclRange hcl.Range +} + +// Local represents a single entry from a "locals" block in a module or file. +// The "locals" block itself is not represented, because it serves only to +// provide context for us to interpret its contents. +type Local struct { + Name string + Expr hcl.Expression + + DeclRange hcl.Range +} diff --git a/configs/provider.go b/configs/provider.go new file mode 100644 index 000000000..8145a87dc --- /dev/null +++ b/configs/provider.go @@ -0,0 +1,28 @@ +package configs + +import ( + "github.com/hashicorp/hcl2/hcl" +) + +// Provider represents a "provider" block in a module or file. A provider +// block is a provider configuration, and there can be zero or more +// configurations for each actual provider. +type Provider struct { + Name string + Alias string + AliasRange hcl.Range + + Version VersionConstraint + + Config hcl.Body + + DeclRange hcl.Range +} + +// ProviderRequirement represents a declaration of a dependency on a particular +// provider version without actually configuring that provider. This is used in +// child modules that expect a provider to be passed in from their parent. +type ProviderRequirement struct { + Name string + Requirement VersionConstraint +} diff --git a/configs/provisioneronfailure_string.go b/configs/provisioneronfailure_string.go new file mode 100644 index 000000000..8704b0861 --- /dev/null +++ b/configs/provisioneronfailure_string.go @@ -0,0 +1,16 @@ +// Code generated by "stringer -type ProvisionerOnFailure"; DO NOT EDIT. + +package configs + +import "strconv" + +const _ProvisionerOnFailure_name = "ProvisionerOnFailureInvalidProvisionerOnFailureContinueProvisionerOnFailureFail" + +var _ProvisionerOnFailure_index = [...]uint8{0, 27, 55, 79} + +func (i ProvisionerOnFailure) String() string { + if i < 0 || i >= ProvisionerOnFailure(len(_ProvisionerOnFailure_index)-1) { + return "ProvisionerOnFailure(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _ProvisionerOnFailure_name[_ProvisionerOnFailure_index[i]:_ProvisionerOnFailure_index[i+1]] +} diff --git a/configs/provisionerwhen_string.go b/configs/provisionerwhen_string.go new file mode 100644 index 000000000..cbecb20ae --- /dev/null +++ b/configs/provisionerwhen_string.go @@ -0,0 +1,16 @@ +// Code generated by "stringer -type ProvisionerWhen"; DO NOT EDIT. + +package configs + +import "strconv" + +const _ProvisionerWhen_name = "ProvisionerWhenInvalidProvisionerWhenCreateProvisionerWhenDestroy" + +var _ProvisionerWhen_index = [...]uint8{0, 22, 43, 65} + +func (i ProvisionerWhen) String() string { + if i < 0 || i >= ProvisionerWhen(len(_ProvisionerWhen_index)-1) { + return "ProvisionerWhen(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _ProvisionerWhen_name[_ProvisionerWhen_index[i]:_ProvisionerWhen_index[i+1]] +} diff --git a/configs/resource.go b/configs/resource.go new file mode 100644 index 000000000..459ce0d3d --- /dev/null +++ b/configs/resource.go @@ -0,0 +1,86 @@ +package configs + +import ( + "github.com/hashicorp/hcl2/hcl" +) + +// ManagedResource represents a "resource" block in a module or file. +type ManagedResource struct { + Name string + Type string + Config hcl.Body + Count hcl.Expression + ForEach hcl.Expression + + ProviderConfigAddr hcl.Traversal + + DependsOn []hcl.Traversal + + Connection *Connection + Provisioners []*Provisioner + + CreateBeforeDestroy bool + PreventDestroy bool + IgnoreChanges []hcl.Traversal + + DeclRange hcl.Range +} + +// DataResource represents a "data" block in a module or file. +type DataResource struct { + Name string + Type string + Config hcl.Body + Count hcl.Expression + ForEach hcl.Expression + + ProviderConfigAddr hcl.Traversal + + DependsOn []hcl.Traversal + + DeclRange hcl.Range +} + +// Provisioner represents a "provisioner" block when used within a +// "resource" block in a module or file. +type Provisioner struct { + Type string + Config hcl.Body + Connection *Connection + When ProvisionerWhen + OnFailure ProvisionerOnFailure + + DeclRange hcl.Range +} + +// Connection represents a "connection" block when used within either a +// "resource" or "provisioner" block in a module or file. +type Connection struct { + Type string + Config hcl.Body + + DeclRange hcl.Range +} + +// ProvisionerWhen is an enum for valid values for when to run provisioners. +type ProvisionerWhen int + +//go:generate stringer -type ProvisionerWhen + +const ( + ProvisionerWhenInvalid ProvisionerWhen = iota + ProvisionerWhenCreate + ProvisionerWhenDestroy +) + +// ProvisionerOnFailure is an enum for valid values for on_failure options +// for provisioners. +type ProvisionerOnFailure int + +//go:generate stringer -type ProvisionerOnFailure + +const ( + ProvisionerOnFailureInvalid ProvisionerOnFailure = iota + ProvisionerOnFailureContinue + ProvisionerOnFailureFail +) diff --git a/configs/variable_type_hint.go b/configs/variable_type_hint.go new file mode 100644 index 000000000..204efd120 --- /dev/null +++ b/configs/variable_type_hint.go @@ -0,0 +1,45 @@ +package configs + +// VariableTypeHint is an enumeration used for the Variable.TypeHint field, +// which is an incompletely-specified type for the variable which is used +// as a hint for whether a value provided in an ambiguous context (on the +// command line or in an environment variable) should be taken literally as a +// string or parsed as an HCL expression to produce a data structure. +// +// The type hint is applied to runtime values as well, but since it does not +// accurately describe a precise type it is not fully-sufficient to infer +// the dynamic type of a value passed through a variable. +// +// These hints use inaccurate terminology for historical reasons. Full details +// are in the documentation for each constant in this enumeration, but in +// summary: +// +// TypeHintString requires a primitive type +// TypeHintList requires a type that could be converted to a tuple +// TypeHintMap requires a type that could be converted to an object +type VariableTypeHint rune + +//go:generate stringer -type VariableTypeHint + +// TypeHintNone indicates the absense of a type hint. Values specified in +// ambiguous contexts will be treated as literal strings, as if TypeHintString +// were selected, but no runtime value checks will be applied. This is reasonable +// type hint for a module that is never intended to be used at the top-level +// of a configuration, since descendent modules never recieve values from +// ambiguous contexts. +const TypeHintNone VariableTypeHint = 0 + +// TypeHintString spec indicates that a value provided in an ambiguous context +// should be treated as a literal string, and additionally requires that the +// runtime value for the variable is of a primitive type (string, number, bool). +const TypeHintString VariableTypeHint = 'S' + +// TypeHintList indicates that a value provided in an ambiguous context should +// be treated as an HCL expression, and additionally requires that the +// runtime value for the variable is of an tuple, list, or set type. +const TypeHintList VariableTypeHint = 'L' + +// TypeHintMap indicates that a value provided in an ambiguous context should +// be treated as an HCL expression, and additionally requires that the +// runtime value for the variable is of an object or map type. +const TypeHintMap VariableTypeHint = 'M' diff --git a/configs/variabletypehint_string.go b/configs/variabletypehint_string.go new file mode 100644 index 000000000..4447cf556 --- /dev/null +++ b/configs/variabletypehint_string.go @@ -0,0 +1,29 @@ +// Code generated by "stringer -type VariableTypeHint"; DO NOT EDIT. + +package configs + +import "strconv" + +const ( + _VariableTypeHint_name_0 = "TypeHintNone" + _VariableTypeHint_name_1 = "TypeHintListTypeHintMap" + _VariableTypeHint_name_2 = "TypeHintString" +) + +var ( + _VariableTypeHint_index_1 = [...]uint8{0, 12, 23} +) + +func (i VariableTypeHint) String() string { + switch { + case i == 0: + return _VariableTypeHint_name_0 + case 76 <= i && i <= 77: + i -= 76 + return _VariableTypeHint_name_1[_VariableTypeHint_index_1[i]:_VariableTypeHint_index_1[i+1]] + case i == 83: + return _VariableTypeHint_name_2 + default: + return "VariableTypeHint(" + strconv.FormatInt(int64(i), 10) + ")" + } +} diff --git a/configs/version_constraint.go b/configs/version_constraint.go new file mode 100644 index 000000000..6b2882cee --- /dev/null +++ b/configs/version_constraint.go @@ -0,0 +1,15 @@ +package configs + +import ( + version "github.com/hashicorp/go-version" + "github.com/hashicorp/hcl2/hcl" +) + +// VersionConstraint represents a version constraint on some resource +// (e.g. Terraform Core, a provider, a module, ...) that carries with it +// a source range so that a helpful diagnostic can be printed in the event +// that a particular constraint does not match. +type VersionConstraint struct { + Required []version.Constraints + DeclRange hcl.Range +} From b865d62bb843621aa0e2bd1fa21269959b1aaaf0 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Fri, 2 Feb 2018 11:15:48 -0800 Subject: [PATCH 055/156] govendor fetch github.com/hashicorp/hcl2/... This just catches us up with the latest fixes and improvements in upstream HCL2. --- .../hashicorp/hcl2/hcl/diagnostic_text.go | 85 +- .../hashicorp/hcl2/hcl/expr_list.go | 37 + .../hashicorp/hcl2/hcl/expr_unwrap.go | 68 + .../hashicorp/hcl2/hcl/hclsyntax/doc.go | 4 +- .../hcl2/hcl/hclsyntax/expression.go | 16 +- .../hashicorp/hcl2/hcl/hclsyntax/generate.go | 2 + .../hcl2/hcl/hclsyntax/navigation.go | 2 +- .../hashicorp/hcl2/hcl/hclsyntax/parser.go | 247 +- .../hcl2/hcl/hclsyntax/parser_template.go | 4 +- .../hashicorp/hcl2/hcl/hclsyntax/public.go | 30 +- .../hcl2/hcl/hclsyntax/scan_string_lit.go | 301 +++ .../hcl2/hcl/hclsyntax/scan_string_lit.rl | 105 + .../hcl2/hcl/hclsyntax/scan_tokens.go | 2329 ++++++++++++++--- .../hcl2/hcl/hclsyntax/scan_tokens.rl | 36 +- .../hashicorp/hcl2/hcl/hclsyntax/structure.go | 2 +- .../hashicorp/hcl2/hcl/hclsyntax/token.go | 1 + .../hcl2/hcl/hclsyntax/token_type_string.go | 4 +- .../hashicorp/hcl2/hcl/json/navigation.go | 2 +- .../hashicorp/hcl2/hcl/json/parser.go | 2 +- .../hashicorp/hcl2/hcl/json/public.go | 29 +- .../hashicorp/hcl2/hcl/json/spec.md | 2 +- .../hashicorp/hcl2/hcl/json/structure.go | 74 +- vendor/github.com/hashicorp/hcl2/hcl/ops.go | 2 +- vendor/github.com/hashicorp/hcl2/hcl/pos.go | 166 ++ .../hashicorp/hcl2/hcl/pos_scanner.go | 148 ++ vendor/github.com/hashicorp/hcl2/hcl/spec.md | 4 +- .../hashicorp/hcl2/hcl/traversal.go | 28 + .../hashicorp/hcl2/hcl/traversal_for_expr.go | 121 + .../hashicorp/hcl2/hcldec/public.go | 25 + .../github.com/hashicorp/hcl2/hcldec/spec.go | 139 + .../github.com/hashicorp/hcl2/hcltest/mock.go | 124 +- .../github.com/hashicorp/hcl2/hclwrite/ast.go | 2 +- .../hashicorp/hcl2/hclwrite/format.go | 2 +- .../hashicorp/hcl2/hclwrite/parser.go | 14 +- .../hashicorp/hcl2/hclwrite/public.go | 2 +- .../hashicorp/hcl2/hclwrite/tokens.go | 4 +- vendor/vendor.json | 48 +- 37 files changed, 3532 insertions(+), 679 deletions(-) create mode 100644 vendor/github.com/hashicorp/hcl2/hcl/expr_list.go create mode 100644 vendor/github.com/hashicorp/hcl2/hcl/expr_unwrap.go create mode 100644 vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_string_lit.go create mode 100644 vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_string_lit.rl create mode 100644 vendor/github.com/hashicorp/hcl2/hcl/pos_scanner.go create mode 100644 vendor/github.com/hashicorp/hcl2/hcl/traversal_for_expr.go diff --git a/vendor/github.com/hashicorp/hcl2/hcl/diagnostic_text.go b/vendor/github.com/hashicorp/hcl2/hcl/diagnostic_text.go index 9776f04de..dfa473add 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/diagnostic_text.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/diagnostic_text.go @@ -2,7 +2,6 @@ package hcl import ( "bufio" - "bytes" "errors" "fmt" "io" @@ -43,7 +42,7 @@ func (w *diagnosticTextWriter) WriteDiagnostic(diag *Diagnostic) error { return errors.New("nil diagnostic") } - var colorCode, resetCode string + var colorCode, highlightCode, resetCode string if w.color { switch diag.Severity { case DiagError: @@ -52,6 +51,7 @@ func (w *diagnosticTextWriter) WriteDiagnostic(diag *Diagnostic) error { colorCode = "\x1b[33m" } resetCode = "\x1b[0m" + highlightCode = "\x1b[1;4m" } var severityStr string @@ -68,24 +68,31 @@ func (w *diagnosticTextWriter) WriteDiagnostic(diag *Diagnostic) error { fmt.Fprintf(w.wr, "%s%s%s: %s\n\n", colorCode, severityStr, resetCode, diag.Summary) if diag.Subject != nil { + snipRange := *diag.Subject + highlightRange := snipRange + if diag.Context != nil { + // Show enough of the source code to include both the subject + // and context ranges, which overlap in all reasonable + // situations. + snipRange = RangeOver(snipRange, *diag.Context) + } + // We can't illustrate an empty range, so we'll turn such ranges into + // single-character ranges, which might not be totally valid (may point + // off the end of a line, or off the end of the file) but are good + // enough for the bounds checks we do below. + if snipRange.Empty() { + snipRange.End.Byte++ + snipRange.End.Column++ + } + if highlightRange.Empty() { + highlightRange.End.Byte++ + highlightRange.End.Column++ + } file := w.files[diag.Subject.Filename] if file == nil || file.Bytes == nil { fmt.Fprintf(w.wr, " on %s line %d:\n (source code not available)\n\n", diag.Subject.Filename, diag.Subject.Start.Line) } else { - src := file.Bytes - r := bytes.NewReader(src) - sc := bufio.NewScanner(r) - sc.Split(bufio.ScanLines) - - var startLine, endLine int - if diag.Context != nil { - startLine = diag.Context.Start.Line - endLine = diag.Context.End.Line - } else { - startLine = diag.Subject.Start.Line - endLine = diag.Subject.End.Line - } var contextLine string if diag.Subject != nil { @@ -95,35 +102,33 @@ func (w *diagnosticTextWriter) WriteDiagnostic(diag *Diagnostic) error { } } - li := 1 - var ls string - for sc.Scan() { - ls = sc.Text() - - if li == startLine { - break - } - li++ - } - fmt.Fprintf(w.wr, " on %s line %d%s:\n", diag.Subject.Filename, diag.Subject.Start.Line, contextLine) - // TODO: Generate markers for the specific characters that are in the Context and Subject ranges. - // For now, we just print out the lines. + src := file.Bytes + sc := NewRangeScanner(src, diag.Subject.Filename, bufio.ScanLines) - fmt.Fprintf(w.wr, "%4d: %s\n", li, ls) - - if endLine > li { - for sc.Scan() { - ls = sc.Text() - li++ - - fmt.Fprintf(w.wr, "%4d: %s\n", li, ls) - - if li == endLine { - break - } + for sc.Scan() { + lineRange := sc.Range() + if !lineRange.Overlaps(snipRange) { + continue } + + beforeRange, highlightedRange, afterRange := lineRange.PartitionAround(highlightRange) + if highlightedRange.Empty() { + fmt.Fprintf(w.wr, "%4d: %s\n", lineRange.Start.Line, sc.Bytes()) + } else { + before := beforeRange.SliceBytes(src) + highlighted := highlightedRange.SliceBytes(src) + after := afterRange.SliceBytes(src) + fmt.Fprintf( + w.wr, "%4d: %s%s%s%s%s\n", + lineRange.Start.Line, + before, + highlightCode, highlighted, resetCode, + after, + ) + } + } w.wr.Write([]byte{'\n'}) diff --git a/vendor/github.com/hashicorp/hcl2/hcl/expr_list.go b/vendor/github.com/hashicorp/hcl2/hcl/expr_list.go new file mode 100644 index 000000000..d05cca0b9 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl2/hcl/expr_list.go @@ -0,0 +1,37 @@ +package hcl + +// ExprList tests if the given expression is a static list construct and, +// if so, extracts the expressions that represent the list elements. +// If the given expression is not a static list, error diagnostics are +// returned. +// +// A particular Expression implementation can support this function by +// offering a method called ExprList that takes no arguments and returns +// []Expression. This method should return nil if a static list cannot +// be extracted. Alternatively, an implementation can support +// UnwrapExpression to delegate handling of this function to a wrapped +// Expression object. +func ExprList(expr Expression) ([]Expression, Diagnostics) { + type exprList interface { + ExprList() []Expression + } + + physExpr := UnwrapExpressionUntil(expr, func(expr Expression) bool { + _, supported := expr.(exprList) + return supported + }) + + if exL, supported := physExpr.(exprList); supported { + if list := exL.ExprList(); list != nil { + return list, nil + } + } + return nil, Diagnostics{ + &Diagnostic{ + Severity: DiagError, + Summary: "Invalid expression", + Detail: "A static list expression is required.", + Subject: expr.StartRange().Ptr(), + }, + } +} diff --git a/vendor/github.com/hashicorp/hcl2/hcl/expr_unwrap.go b/vendor/github.com/hashicorp/hcl2/hcl/expr_unwrap.go new file mode 100644 index 000000000..6d5d205c4 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl2/hcl/expr_unwrap.go @@ -0,0 +1,68 @@ +package hcl + +type unwrapExpression interface { + UnwrapExpression() Expression +} + +// UnwrapExpression removes any "wrapper" expressions from the given expression, +// to recover the representation of the physical expression given in source +// code. +// +// Sometimes wrapping expressions are used to modify expression behavior, e.g. +// in extensions that need to make some local variables available to certain +// sub-trees of the configuration. This can make it difficult to reliably +// type-assert on the physical AST types used by the underlying syntax. +// +// Unwrapping an expression may modify its behavior by stripping away any +// additional constraints or capabilities being applied to the Value and +// Variables methods, so this function should generally only be used prior +// to operations that concern themselves with the static syntax of the input +// configuration, and not with the effective value of the expression. +// +// Wrapper expression types must support unwrapping by implementing a method +// called UnwrapExpression that takes no arguments and returns the embedded +// Expression. Implementations of this method should peel away only one level +// of wrapping, if multiple are present. This method may return nil to +// indicate _dynamically_ that no wrapped expression is available, for +// expression types that might only behave as wrappers in certain cases. +func UnwrapExpression(expr Expression) Expression { + for { + unwrap, wrapped := expr.(unwrapExpression) + if !wrapped { + return expr + } + innerExpr := unwrap.UnwrapExpression() + if innerExpr == nil { + return expr + } + expr = innerExpr + } +} + +// UnwrapExpressionUntil is similar to UnwrapExpression except it gives the +// caller an opportunity to test each level of unwrapping to see each a +// particular expression is accepted. +// +// This could be used, for example, to unwrap until a particular other +// interface is satisfied, regardless of wrap wrapping level it is satisfied +// at. +// +// The given callback function must return false to continue wrapping, or +// true to accept and return the proposed expression given. If the callback +// function rejects even the final, physical expression then the result of +// this function is nil. +func UnwrapExpressionUntil(expr Expression, until func(Expression) bool) Expression { + for { + if until(expr) { + return expr + } + unwrap, wrapped := expr.(unwrapExpression) + if !wrapped { + return nil + } + expr = unwrap.UnwrapExpression() + if expr == nil { + return nil + } + } +} diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/doc.go b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/doc.go index 8db11573f..617bc29dc 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/doc.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/doc.go @@ -1,7 +1,7 @@ -// Package hclsyntax contains the parser, AST, etc for zcl's native language, +// Package hclsyntax contains the parser, AST, etc for HCL's native language, // as opposed to the JSON variant. // // In normal use applications should rarely depend on this package directly, // instead preferring the higher-level interface of the main hcl package and -// its companion hclparse. +// its companion package hclparse. package hclsyntax diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/expression.go b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/expression.go index e90ac2be6..4fa1988bf 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/expression.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/expression.go @@ -9,7 +9,7 @@ import ( "github.com/zclconf/go-cty/cty/function" ) -// Expression is the abstract type for nodes that behave as zcl expressions. +// Expression is the abstract type for nodes that behave as HCL expressions. type Expression interface { Node @@ -70,6 +70,11 @@ func (e *ScopeTraversalExpr) StartRange() hcl.Range { return e.SrcRange } +// Implementation for hcl.AbsTraversalForExpr. +func (e *ScopeTraversalExpr) AsTraversal() hcl.Traversal { + return e.Traversal +} + // RelativeTraversalExpr is an Expression that retrieves a value from another // value using a _relative_ traversal. type RelativeTraversalExpr struct { @@ -539,6 +544,15 @@ func (e *TupleConsExpr) StartRange() hcl.Range { return e.OpenRange } +// Implementation for hcl.ExprList +func (e *TupleConsExpr) ExprList() []hcl.Expression { + ret := make([]hcl.Expression, len(e.Exprs)) + for i, expr := range e.Exprs { + ret[i] = expr + } + return ret +} + type ObjectConsExpr struct { Items []ObjectConsItem diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/generate.go b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/generate.go index ecc389f11..841656a6a 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/generate.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/generate.go @@ -4,4 +4,6 @@ package hclsyntax //go:generate ruby unicode2ragel.rb --url=http://www.unicode.org/Public/9.0.0/ucd/DerivedCoreProperties.txt -m UnicodeDerived -p ID_Start,ID_Continue -o unicode_derived.rl //go:generate ragel -Z scan_tokens.rl //go:generate gofmt -w scan_tokens.go +//go:generate ragel -Z scan_string_lit.rl +//go:generate gofmt -w scan_string_lit.go //go:generate stringer -type TokenType -output token_type_string.go diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/navigation.go b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/navigation.go index 8a04c2081..4d41b6b66 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/navigation.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/navigation.go @@ -9,7 +9,7 @@ type navigation struct { root *Body } -// Implementation of zcled.ContextString +// Implementation of hcled.ContextString func (n navigation) ContextString(offset int) string { // We will walk our top-level blocks until we find one that contains // the given offset, and then construct a representation of the header diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/parser.go b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/parser.go index 0f81ddfb1..28c6a7b19 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/parser.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/parser.go @@ -1,9 +1,10 @@ package hclsyntax import ( - "bufio" "bytes" "fmt" + "strconv" + "unicode/utf8" "github.com/apparentlymart/go-textseg/textseg" "github.com/hashicorp/hcl2/hcl" @@ -627,7 +628,7 @@ Traversal: if lit, isLit := keyExpr.(*LiteralValueExpr); isLit { litKey, _ := lit.Value(nil) rng := hcl.RangeBetween(open.Range, close.Range) - step := &hcl.TraverseIndex{ + step := hcl.TraverseIndex{ Key: litKey, SrcRange: rng, } @@ -1476,139 +1477,149 @@ func (p *parser) decodeStringLit(tok Token) (string, hcl.Diagnostics) { var diags hcl.Diagnostics ret := make([]byte, 0, len(tok.Bytes)) - var esc []byte + slices := scanStringLit(tok.Bytes, quoted) - sc := bufio.NewScanner(bytes.NewReader(tok.Bytes)) - sc.Split(textseg.ScanGraphemeClusters) + // We will mutate rng constantly as we walk through our token slices below. + // Any diagnostics must take a copy of this rng rather than simply pointing + // to it, e.g. by using rng.Ptr() rather than &rng. + rng := tok.Range + rng.End = rng.Start - pos := tok.Range.Start - newPos := pos -Character: - for sc.Scan() { - pos = newPos - ch := sc.Bytes() - - // Adjust position based on our new character. - // \r\n is considered to be a single character in text segmentation, - if (len(ch) == 1 && ch[0] == '\n') || (len(ch) == 2 && ch[1] == '\n') { - newPos.Line++ - newPos.Column = 0 - } else { - newPos.Column++ +Slices: + for _, slice := range slices { + if len(slice) == 0 { + continue } - newPos.Byte += len(ch) - if len(esc) > 0 { - switch esc[0] { - case '\\': - if len(ch) == 1 { - switch ch[0] { + // Advance the start of our range to where the previous token ended + rng.Start = rng.End - // TODO: numeric character escapes with \uXXXX - - case 'n': - ret = append(ret, '\n') - esc = esc[:0] - continue Character - case 'r': - ret = append(ret, '\r') - esc = esc[:0] - continue Character - case 't': - ret = append(ret, '\t') - esc = esc[:0] - continue Character - case '"': - ret = append(ret, '"') - esc = esc[:0] - continue Character - case '\\': - ret = append(ret, '\\') - esc = esc[:0] - continue Character - } - } - - var detail string - switch { - case len(ch) == 1 && (ch[0] == '$' || ch[0] == '!'): - detail = fmt.Sprintf( - "The characters \"\\%s\" do not form a recognized escape sequence. To escape a \"%s{\" template sequence, use \"%s%s{\".", - ch, ch, ch, ch, - ) - default: - detail = fmt.Sprintf("The characters \"\\%s\" do not form a recognized escape sequence.", ch) - } + // Advance the end of our range to after our token. + b := slice + for len(b) > 0 { + adv, ch, _ := textseg.ScanGraphemeClusters(b, true) + rng.End.Byte += adv + switch ch[0] { + case '\r', '\n': + rng.End.Line++ + rng.End.Column = 1 + default: + rng.End.Column++ + } + b = b[adv:] + } + TokenType: + switch slice[0] { + case '\\': + if !quoted { + // If we're not in quoted mode then just treat this token as + // normal. (Slices can still start with backslash even if we're + // not specifically looking for backslash sequences.) + break TokenType + } + if len(slice) < 2 { diags = append(diags, &hcl.Diagnostic{ Severity: hcl.DiagError, Summary: "Invalid escape sequence", - Detail: detail, - Subject: &hcl.Range{ - Filename: tok.Range.Filename, - Start: hcl.Pos{ - Line: pos.Line, - Column: pos.Column - 1, // safe because we know the previous character must be a backslash - Byte: pos.Byte - 1, - }, - End: hcl.Pos{ - Line: pos.Line, - Column: pos.Column + 1, // safe because we know the previous character must be a backslash - Byte: pos.Byte + len(ch), - }, - }, + Detail: "Backslash must be followed by an escape sequence selector character.", + Subject: rng.Ptr(), }) - ret = append(ret, ch...) - esc = esc[:0] - continue Character + break TokenType + } - case '$', '!': - switch len(esc) { - case 1: - if len(ch) == 1 && ch[0] == esc[0] { - esc = append(esc, ch[0]) - continue Character - } + switch slice[1] { - // Any other character means this wasn't an escape sequence - // after all. - ret = append(ret, esc...) - ret = append(ret, ch...) - esc = esc[:0] - case 2: - if len(ch) == 1 && ch[0] == '{' { - // successful escape sequence - ret = append(ret, esc[0]) - } else { - // not an escape sequence, so just output literal - ret = append(ret, esc...) - } - ret = append(ret, ch...) - esc = esc[:0] - default: - // should never happen - panic("have invalid escape sequence >2 characters") + case 'n': + ret = append(ret, '\n') + continue Slices + case 'r': + ret = append(ret, '\r') + continue Slices + case 't': + ret = append(ret, '\t') + continue Slices + case '"': + ret = append(ret, '"') + continue Slices + case '\\': + ret = append(ret, '\\') + continue Slices + case 'u', 'U': + if slice[1] == 'u' && len(slice) != 6 { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid escape sequence", + Detail: "The \\u escape sequence must be followed by four hexadecimal digits.", + Subject: rng.Ptr(), + }) + break TokenType + } else if slice[1] == 'U' && len(slice) != 10 { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid escape sequence", + Detail: "The \\U escape sequence must be followed by eight hexadecimal digits.", + Subject: rng.Ptr(), + }) + break TokenType } - } - } else { - if len(ch) == 1 { - switch ch[0] { - case '\\': - if quoted { // ignore backslashes in unquoted mode - esc = append(esc, '\\') - continue Character - } - case '$': - esc = append(esc, '$') - continue Character - case '!': - esc = append(esc, '!') - continue Character + numHex := string(slice[2:]) + num, err := strconv.ParseUint(numHex, 16, 32) + if err != nil { + // Should never happen because the scanner won't match + // a sequence of digits that isn't valid. + panic(err) } + + r := rune(num) + l := utf8.RuneLen(r) + if l == -1 { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid escape sequence", + Detail: fmt.Sprintf("Cannot encode character U+%04x in UTF-8.", num), + Subject: rng.Ptr(), + }) + break TokenType + } + for i := 0; i < l; i++ { + ret = append(ret, 0) + } + rb := ret[len(ret)-l:] + utf8.EncodeRune(rb, r) + + continue Slices + + default: + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid escape sequence", + Detail: fmt.Sprintf("The symbol %q is not a valid escape sequence selector.", slice[1:]), + Subject: rng.Ptr(), + }) + ret = append(ret, slice[1:]...) + continue Slices } - ret = append(ret, ch...) + + case '$', '%': + if len(slice) != 3 { + // Not long enough to be our escape sequence, so it's literal. + break TokenType + } + + if slice[1] == slice[0] && slice[2] == '{' { + ret = append(ret, slice[0]) + ret = append(ret, '{') + continue Slices + } + + break TokenType } + + // If we fall out here or break out of here from the switch above + // then this slice is just a literal. + ret = append(ret, slice...) } return string(ret), diags diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/parser_template.go b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/parser_template.go index e04c8e0f3..3711067ee 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/parser_template.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/parser_template.go @@ -435,7 +435,7 @@ Token: }) case TokenTemplateControl: - // if the opener is !{~ then we want to eat any trailing whitespace + // if the opener is %{~ then we want to eat any trailing whitespace // in the preceding literal token, assuming it is indeed a literal // token. if canTrimPrev && len(next.Bytes) == 3 && next.Bytes[2] == '~' && len(parts) > 0 { @@ -452,7 +452,7 @@ Token: diags = append(diags, &hcl.Diagnostic{ Severity: hcl.DiagError, Summary: "Invalid template directive", - Detail: "A template directive keyword (\"if\", \"for\", etc) is expected at the beginning of a !{ sequence.", + Detail: "A template directive keyword (\"if\", \"for\", etc) is expected at the beginning of a %{ sequence.", Subject: &kw.Range, Context: hcl.RangeBetween(next.Range, kw.Range).Ptr(), }) diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/public.go b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/public.go index 49d8ab182..e527d63f4 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/public.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/public.go @@ -4,13 +4,13 @@ import ( "github.com/hashicorp/hcl2/hcl" ) -// ParseConfig parses the given buffer as a whole zcl config file, returning +// ParseConfig parses the given buffer as a whole HCL config file, returning // a *hcl.File representing its contents. If HasErrors called on the returned // diagnostics returns true, the returned body is likely to be incomplete // and should therefore be used with care. // -// The body in the returned file has dynamic type *zclsyntax.Body, so callers -// may freely type-assert this to get access to the full zclsyntax API in +// The body in the returned file has dynamic type *hclsyntax.Body, so callers +// may freely type-assert this to get access to the full hclsyntax API in // situations where detailed access is required. However, most common use-cases // should be served using the hcl.Body interface to ensure compatibility with // other configurationg syntaxes, such as JSON. @@ -30,7 +30,7 @@ func ParseConfig(src []byte, filename string, start hcl.Pos) (*hcl.File, hcl.Dia }, diags } -// ParseExpression parses the given buffer as a standalone zcl expression, +// ParseExpression parses the given buffer as a standalone HCL expression, // returning it as an instance of Expression. func ParseExpression(src []byte, filename string, start hcl.Pos) (Expression, hcl.Diagnostics) { tokens, diags := LexExpression(src, filename, start) @@ -57,7 +57,7 @@ func ParseExpression(src []byte, filename string, start hcl.Pos) (Expression, hc return expr, diags } -// ParseTemplate parses the given buffer as a standalone zcl template, +// ParseTemplate parses the given buffer as a standalone HCL template, // returning it as an instance of Expression. func ParseTemplate(src []byte, filename string, start hcl.Pos) (Expression, hcl.Diagnostics) { tokens, diags := LexTemplate(src, filename, start) @@ -89,7 +89,7 @@ func ParseTraversalAbs(src []byte, filename string, start hcl.Pos) (hcl.Traversa } // LexConfig performs lexical analysis on the given buffer, treating it as a -// whole zcl config file, and returns the resulting tokens. +// whole HCL config file, and returns the resulting tokens. // // Only minimal validation is done during lexical analysis, so the returned // diagnostics may include errors about lexical issues such as bad character @@ -102,7 +102,7 @@ func LexConfig(src []byte, filename string, start hcl.Pos) (Tokens, hcl.Diagnost } // LexExpression performs lexical analysis on the given buffer, treating it as -// a standalone zcl expression, and returns the resulting tokens. +// a standalone HCL expression, and returns the resulting tokens. // // Only minimal validation is done during lexical analysis, so the returned // diagnostics may include errors about lexical issues such as bad character @@ -117,7 +117,7 @@ func LexExpression(src []byte, filename string, start hcl.Pos) (Tokens, hcl.Diag } // LexTemplate performs lexical analysis on the given buffer, treating it as a -// standalone zcl template, and returns the resulting tokens. +// standalone HCL template, and returns the resulting tokens. // // Only minimal validation is done during lexical analysis, so the returned // diagnostics may include errors about lexical issues such as bad character @@ -128,3 +128,17 @@ func LexTemplate(src []byte, filename string, start hcl.Pos) (Tokens, hcl.Diagno diags := checkInvalidTokens(tokens) return tokens, diags } + +// ValidIdentifier tests if the given string could be a valid identifier in +// a native syntax expression. +// +// This is useful when accepting names from the user that will be used as +// variable or attribute names in the scope, to ensure that any name chosen +// will be traversable using the variable or attribute traversal syntax. +func ValidIdentifier(s string) bool { + // This is a kinda-expensive way to do something pretty simple, but it + // is easiest to do with our existing scanner-related infrastructure here + // and nobody should be validating identifiers in a tight loop. + tokens := scanTokens([]byte(s), "", hcl.Pos{}, scanIdentOnly) + return len(tokens) == 2 && tokens[0].Type == TokenIdent && tokens[1].Type == TokenEOF +} diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_string_lit.go b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_string_lit.go new file mode 100644 index 000000000..de1f524ca --- /dev/null +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_string_lit.go @@ -0,0 +1,301 @@ +// line 1 "scan_string_lit.rl" + +package hclsyntax + +// This file is generated from scan_string_lit.rl. DO NOT EDIT. + +// line 9 "scan_string_lit.go" +var _hclstrtok_actions []byte = []byte{ + 0, 1, 0, 1, 1, 2, 1, 0, +} + +var _hclstrtok_key_offsets []byte = []byte{ + 0, 0, 2, 4, 6, 10, 14, 18, + 22, 27, 31, 36, 41, 46, 51, 57, + 62, 74, 85, 96, 107, 118, 129, 140, + 151, +} + +var _hclstrtok_trans_keys []byte = []byte{ + 128, 191, 128, 191, 128, 191, 10, 13, + 36, 37, 10, 13, 36, 37, 10, 13, + 36, 37, 10, 13, 36, 37, 10, 13, + 36, 37, 123, 10, 13, 36, 37, 10, + 13, 36, 37, 92, 10, 13, 36, 37, + 92, 10, 13, 36, 37, 92, 10, 13, + 36, 37, 92, 10, 13, 36, 37, 92, + 123, 10, 13, 36, 37, 92, 85, 117, + 128, 191, 192, 223, 224, 239, 240, 247, + 248, 255, 10, 13, 36, 37, 92, 48, + 57, 65, 70, 97, 102, 10, 13, 36, + 37, 92, 48, 57, 65, 70, 97, 102, + 10, 13, 36, 37, 92, 48, 57, 65, + 70, 97, 102, 10, 13, 36, 37, 92, + 48, 57, 65, 70, 97, 102, 10, 13, + 36, 37, 92, 48, 57, 65, 70, 97, + 102, 10, 13, 36, 37, 92, 48, 57, + 65, 70, 97, 102, 10, 13, 36, 37, + 92, 48, 57, 65, 70, 97, 102, 10, + 13, 36, 37, 92, 48, 57, 65, 70, + 97, 102, +} + +var _hclstrtok_single_lengths []byte = []byte{ + 0, 0, 0, 0, 4, 4, 4, 4, + 5, 4, 5, 5, 5, 5, 6, 5, + 2, 5, 5, 5, 5, 5, 5, 5, + 5, +} + +var _hclstrtok_range_lengths []byte = []byte{ + 0, 1, 1, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 5, 3, 3, 3, 3, 3, 3, 3, + 3, +} + +var _hclstrtok_index_offsets []byte = []byte{ + 0, 0, 2, 4, 6, 11, 16, 21, + 26, 32, 37, 43, 49, 55, 61, 68, + 74, 82, 91, 100, 109, 118, 127, 136, + 145, +} + +var _hclstrtok_indicies []byte = []byte{ + 0, 1, 2, 1, 3, 1, 5, 6, + 7, 8, 4, 10, 11, 12, 13, 9, + 14, 11, 12, 13, 9, 10, 11, 15, + 13, 9, 10, 11, 12, 13, 14, 9, + 10, 11, 12, 15, 9, 17, 18, 19, + 20, 21, 16, 23, 24, 25, 26, 27, + 22, 0, 24, 25, 26, 27, 22, 23, + 24, 28, 26, 27, 22, 23, 24, 25, + 26, 27, 0, 22, 23, 24, 25, 28, + 27, 22, 29, 30, 22, 2, 3, 31, + 22, 0, 23, 24, 25, 26, 27, 32, + 32, 32, 22, 23, 24, 25, 26, 27, + 33, 33, 33, 22, 23, 24, 25, 26, + 27, 34, 34, 34, 22, 23, 24, 25, + 26, 27, 30, 30, 30, 22, 23, 24, + 25, 26, 27, 35, 35, 35, 22, 23, + 24, 25, 26, 27, 36, 36, 36, 22, + 23, 24, 25, 26, 27, 37, 37, 37, + 22, 23, 24, 25, 26, 27, 0, 0, + 0, 22, +} + +var _hclstrtok_trans_targs []byte = []byte{ + 11, 0, 1, 2, 4, 5, 6, 7, + 9, 4, 5, 6, 7, 9, 5, 8, + 10, 11, 12, 13, 15, 16, 10, 11, + 12, 13, 15, 16, 14, 17, 21, 3, + 18, 19, 20, 22, 23, 24, +} + +var _hclstrtok_trans_actions []byte = []byte{ + 0, 0, 0, 0, 0, 1, 1, 1, + 1, 3, 5, 5, 5, 5, 0, 0, + 0, 1, 1, 1, 1, 1, 3, 5, + 5, 5, 5, 5, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, +} + +var _hclstrtok_eof_actions []byte = []byte{ + 0, 0, 0, 0, 0, 3, 3, 3, + 3, 3, 0, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, +} + +const hclstrtok_start int = 4 +const hclstrtok_first_final int = 4 +const hclstrtok_error int = 0 + +const hclstrtok_en_quoted int = 10 +const hclstrtok_en_unquoted int = 4 + +// line 10 "scan_string_lit.rl" + +func scanStringLit(data []byte, quoted bool) [][]byte { + var ret [][]byte + + // line 61 "scan_string_lit.rl" + + // Ragel state + p := 0 // "Pointer" into data + pe := len(data) // End-of-data "pointer" + ts := 0 + te := 0 + eof := pe + + var cs int // current state + switch { + case quoted: + cs = hclstrtok_en_quoted + default: + cs = hclstrtok_en_unquoted + } + + // Make Go compiler happy + _ = ts + _ = eof + + /*token := func () { + ret = append(ret, data[ts:te]) + }*/ + + // line 154 "scan_string_lit.go" + { + } + + // line 158 "scan_string_lit.go" + { + var _klen int + var _trans int + var _acts int + var _nacts uint + var _keys int + if p == pe { + goto _test_eof + } + if cs == 0 { + goto _out + } + _resume: + _keys = int(_hclstrtok_key_offsets[cs]) + _trans = int(_hclstrtok_index_offsets[cs]) + + _klen = int(_hclstrtok_single_lengths[cs]) + if _klen > 0 { + _lower := int(_keys) + var _mid int + _upper := int(_keys + _klen - 1) + for { + if _upper < _lower { + break + } + + _mid = _lower + ((_upper - _lower) >> 1) + switch { + case data[p] < _hclstrtok_trans_keys[_mid]: + _upper = _mid - 1 + case data[p] > _hclstrtok_trans_keys[_mid]: + _lower = _mid + 1 + default: + _trans += int(_mid - int(_keys)) + goto _match + } + } + _keys += _klen + _trans += _klen + } + + _klen = int(_hclstrtok_range_lengths[cs]) + if _klen > 0 { + _lower := int(_keys) + var _mid int + _upper := int(_keys + (_klen << 1) - 2) + for { + if _upper < _lower { + break + } + + _mid = _lower + (((_upper - _lower) >> 1) & ^1) + switch { + case data[p] < _hclstrtok_trans_keys[_mid]: + _upper = _mid - 2 + case data[p] > _hclstrtok_trans_keys[_mid+1]: + _lower = _mid + 2 + default: + _trans += int((_mid - int(_keys)) >> 1) + goto _match + } + } + _trans += _klen + } + + _match: + _trans = int(_hclstrtok_indicies[_trans]) + cs = int(_hclstrtok_trans_targs[_trans]) + + if _hclstrtok_trans_actions[_trans] == 0 { + goto _again + } + + _acts = int(_hclstrtok_trans_actions[_trans]) + _nacts = uint(_hclstrtok_actions[_acts]) + _acts++ + for ; _nacts > 0; _nacts-- { + _acts++ + switch _hclstrtok_actions[_acts-1] { + case 0: + // line 40 "scan_string_lit.rl" + + // If te is behind p then we've skipped over some literal + // characters which we must now return. + if te < p { + ret = append(ret, data[te:p]) + } + ts = p + + case 1: + // line 48 "scan_string_lit.rl" + + te = p + ret = append(ret, data[ts:te]) + + // line 255 "scan_string_lit.go" + } + } + + _again: + if cs == 0 { + goto _out + } + p++ + if p != pe { + goto _resume + } + _test_eof: + { + } + if p == eof { + __acts := _hclstrtok_eof_actions[cs] + __nacts := uint(_hclstrtok_actions[__acts]) + __acts++ + for ; __nacts > 0; __nacts-- { + __acts++ + switch _hclstrtok_actions[__acts-1] { + case 1: + // line 48 "scan_string_lit.rl" + + te = p + ret = append(ret, data[ts:te]) + + // line 281 "scan_string_lit.go" + } + } + } + + _out: + { + } + } + + // line 89 "scan_string_lit.rl" + + if te < p { + // Collect any leftover literal characters at the end of the input + ret = append(ret, data[te:p]) + } + + // If we fall out here without being in a final state then we've + // encountered something that the scanner can't match, which should + // be impossible (the scanner matches all bytes _somehow_) but we'll + // tolerate it and let the caller deal with it. + if cs < hclstrtok_first_final { + ret = append(ret, data[p:len(data)]) + } + + return ret +} diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_string_lit.rl b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_string_lit.rl new file mode 100644 index 000000000..f8ac11751 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_string_lit.rl @@ -0,0 +1,105 @@ + +package hclsyntax + +// This file is generated from scan_string_lit.rl. DO NOT EDIT. +%%{ + # (except you are actually in scan_string_lit.rl here, so edit away!) + + machine hclstrtok; + write data; +}%% + +func scanStringLit(data []byte, quoted bool) [][]byte { + var ret [][]byte + + %%{ + include UnicodeDerived "unicode_derived.rl"; + + UTF8Cont = 0x80 .. 0xBF; + AnyUTF8 = ( + 0x00..0x7F | + 0xC0..0xDF . UTF8Cont | + 0xE0..0xEF . UTF8Cont . UTF8Cont | + 0xF0..0xF7 . UTF8Cont . UTF8Cont . UTF8Cont + ); + BadUTF8 = any - AnyUTF8; + + Hex = ('0'..'9' | 'a'..'f' | 'A'..'F'); + + # Our goal with this patterns is to capture user intent as best as + # possible, even if the input is invalid. The caller will then verify + # whether each token is valid and generate suitable error messages + # if not. + UnicodeEscapeShort = "\\u" . Hex{0,4}; + UnicodeEscapeLong = "\\U" . Hex{0,8}; + UnicodeEscape = (UnicodeEscapeShort | UnicodeEscapeLong); + SimpleEscape = "\\" . (AnyUTF8 - ('U'|'u'))?; + TemplateEscape = ("$" . ("$" . ("{"?))?) | ("%" . ("%" . ("{"?))?); + Newline = ("\r\n" | "\r" | "\n"); + + action Begin { + // If te is behind p then we've skipped over some literal + // characters which we must now return. + if te < p { + ret = append(ret, data[te:p]) + } + ts = p; + } + action End { + te = p; + ret = append(ret, data[ts:te]); + } + + QuotedToken = (UnicodeEscape | SimpleEscape | TemplateEscape | Newline) >Begin %End; + UnquotedToken = (TemplateEscape | Newline) >Begin %End; + QuotedLiteral = (any - ("\\" | "$" | "%" | "\r" | "\n")); + UnquotedLiteral = (any - ("$" | "%" | "\r" | "\n")); + + quoted := (QuotedToken | QuotedLiteral)**; + unquoted := (UnquotedToken | UnquotedLiteral)**; + + }%% + + // Ragel state + p := 0 // "Pointer" into data + pe := len(data) // End-of-data "pointer" + ts := 0 + te := 0 + eof := pe + + var cs int // current state + switch { + case quoted: + cs = hclstrtok_en_quoted + default: + cs = hclstrtok_en_unquoted + } + + // Make Go compiler happy + _ = ts + _ = eof + + /*token := func () { + ret = append(ret, data[ts:te]) + }*/ + + %%{ + write init nocs; + write exec; + }%% + + if te < p { + // Collect any leftover literal characters at the end of the input + ret = append(ret, data[te:p]) + } + + // If we fall out here without being in a final state then we've + // encountered something that the scanner can't match, which should + // be impossible (the scanner matches all bytes _somehow_) but we'll + // tolerate it and let the caller deal with it. + if cs < hclstrtok_first_final { + ret = append(ret, data[p:len(data)]) + } + + return ret +} diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_tokens.go b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_tokens.go index a8ab57c3e..7d557c08d 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_tokens.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_tokens.go @@ -1,4 +1,5 @@ // line 1 "scan_tokens.rl" + package hclsyntax import ( @@ -9,8 +10,8 @@ import ( // This file is generated from scan_tokens.rl. DO NOT EDIT. -// line 14 "scan_tokens.go" -var _zcltok_actions []byte = []byte{ +// line 15 "scan_tokens.go" +var _hcltok_actions []byte = []byte{ 0, 1, 0, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 1, 12, @@ -19,22 +20,24 @@ var _zcltok_actions []byte = []byte{ 1, 23, 1, 24, 1, 25, 1, 26, 1, 27, 1, 30, 1, 31, 1, 32, 1, 33, 1, 34, 1, 35, 1, 36, - 1, 37, 1, 38, 1, 39, 1, 45, - 1, 46, 1, 47, 1, 48, 1, 49, - 1, 50, 1, 51, 1, 52, 1, 53, - 1, 54, 1, 55, 1, 56, 1, 57, - 1, 58, 1, 59, 1, 60, 1, 61, - 1, 62, 1, 63, 1, 64, 1, 65, - 1, 66, 1, 67, 1, 68, 1, 69, - 1, 70, 1, 71, 1, 72, 1, 73, - 1, 74, 1, 75, 2, 0, 1, 2, - 3, 16, 2, 3, 17, 2, 3, 28, - 2, 3, 29, 2, 3, 40, 2, 3, - 41, 2, 3, 42, 2, 3, 43, 2, - 3, 44, + 1, 37, 1, 38, 1, 39, 1, 42, + 1, 43, 1, 44, 1, 45, 1, 46, + 1, 47, 1, 48, 1, 54, 1, 55, + 1, 56, 1, 57, 1, 58, 1, 59, + 1, 60, 1, 61, 1, 62, 1, 63, + 1, 64, 1, 65, 1, 66, 1, 67, + 1, 68, 1, 69, 1, 70, 1, 71, + 1, 72, 1, 73, 1, 74, 1, 75, + 1, 76, 1, 77, 1, 78, 1, 79, + 1, 80, 1, 81, 1, 82, 1, 83, + 2, 0, 1, 2, 3, 16, 2, 3, + 17, 2, 3, 28, 2, 3, 29, 2, + 3, 40, 2, 3, 41, 2, 3, 49, + 2, 3, 50, 2, 3, 51, 2, 3, + 52, 2, 3, 53, } -var _zcltok_key_offsets []int16 = []int16{ +var _hcltok_key_offsets []int16 = []int16{ 0, 0, 1, 2, 3, 5, 10, 14, 16, 57, 97, 143, 144, 148, 154, 154, 156, 158, 167, 173, 180, 181, 184, 185, @@ -153,20 +156,89 @@ var _zcltok_key_offsets []int16 = []int16{ 5909, 5913, 5917, 5922, 5926, 5928, 5935, 5939, 5947, 5951, 5952, 5954, 5956, 5958, 5960, 5962, 5963, 5964, 5966, 5968, 5970, 5971, 5972, 5973, - 5974, 5976, 5978, 5980, 5981, 5982, 6057, 6058, - 6059, 6060, 6061, 6062, 6063, 6064, 6066, 6067, - 6072, 6074, 6076, 6077, 6121, 6122, 6123, 6125, - 6130, 6134, 6134, 6136, 6138, 6149, 6159, 6167, - 6168, 6170, 6171, 6175, 6179, 6189, 6193, 6200, - 6211, 6218, 6222, 6228, 6239, 6271, 6320, 6335, - 6350, 6355, 6357, 6362, 6394, 6402, 6404, 6426, - 6448, 6450, 6466, 6482, 6497, 6506, 6520, 6534, - 6550, 6551, 6552, 6553, 6554, 6556, 6558, 6560, - 6574, 6588, 6589, 6590, 6592, 6594, 6596, 6610, - 6624, 6625, 6626, 6628, 6630, + 5974, 5976, 5978, 5980, 5981, 5982, 5986, 5992, + 5992, 5994, 5996, 6005, 6011, 6018, 6019, 6022, + 6023, 6027, 6032, 6041, 6045, 6049, 6057, 6059, + 6061, 6063, 6066, 6098, 6100, 6102, 6106, 6110, + 6113, 6124, 6137, 6156, 6169, 6185, 6197, 6213, + 6228, 6249, 6259, 6271, 6282, 6296, 6311, 6321, + 6333, 6342, 6354, 6356, 6360, 6381, 6390, 6400, + 6406, 6412, 6413, 6462, 6464, 6468, 6470, 6476, + 6483, 6491, 6498, 6501, 6507, 6511, 6515, 6517, + 6521, 6525, 6529, 6535, 6543, 6551, 6557, 6559, + 6563, 6565, 6571, 6575, 6579, 6583, 6587, 6592, + 6599, 6605, 6607, 6609, 6613, 6615, 6621, 6625, + 6629, 6639, 6644, 6658, 6673, 6675, 6683, 6685, + 6690, 6704, 6709, 6711, 6715, 6716, 6720, 6726, + 6732, 6742, 6752, 6763, 6771, 6774, 6777, 6781, + 6785, 6787, 6790, 6790, 6793, 6795, 6825, 6827, + 6829, 6833, 6838, 6842, 6847, 6849, 6851, 6853, + 6862, 6866, 6870, 6876, 6878, 6886, 6894, 6906, + 6909, 6915, 6919, 6921, 6925, 6945, 6947, 6949, + 6960, 6966, 6968, 6970, 6972, 6976, 6982, 6988, + 6990, 6995, 6999, 7001, 7009, 7027, 7067, 7077, + 7081, 7083, 7085, 7086, 7090, 7094, 7098, 7102, + 7106, 7111, 7115, 7119, 7123, 7125, 7127, 7131, + 7141, 7145, 7147, 7151, 7155, 7159, 7172, 7174, + 7176, 7180, 7182, 7186, 7188, 7190, 7220, 7224, + 7228, 7232, 7235, 7242, 7247, 7258, 7262, 7278, + 7292, 7296, 7301, 7305, 7309, 7315, 7317, 7323, + 7325, 7329, 7331, 7337, 7342, 7347, 7357, 7359, + 7361, 7365, 7369, 7371, 7384, 7386, 7390, 7394, + 7402, 7404, 7408, 7410, 7411, 7414, 7419, 7421, + 7423, 7427, 7429, 7433, 7439, 7459, 7465, 7471, + 7473, 7474, 7484, 7485, 7493, 7500, 7502, 7505, + 7507, 7509, 7511, 7516, 7520, 7524, 7529, 7539, + 7549, 7553, 7557, 7571, 7597, 7607, 7609, 7611, + 7614, 7616, 7619, 7621, 7625, 7627, 7628, 7632, + 7634, 7636, 7643, 7647, 7654, 7661, 7670, 7686, + 7698, 7716, 7727, 7739, 7747, 7765, 7773, 7803, + 7806, 7816, 7826, 7838, 7849, 7858, 7871, 7883, + 7887, 7893, 7920, 7929, 7932, 7937, 7943, 7948, + 7969, 7973, 7979, 7979, 7986, 7995, 8003, 8006, + 8010, 8016, 8022, 8025, 8029, 8036, 8042, 8051, + 8060, 8064, 8068, 8072, 8076, 8083, 8087, 8091, + 8101, 8107, 8111, 8117, 8121, 8124, 8130, 8136, + 8148, 8152, 8156, 8166, 8170, 8181, 8183, 8185, + 8189, 8201, 8206, 8230, 8234, 8240, 8262, 8271, + 8275, 8278, 8279, 8287, 8295, 8301, 8311, 8318, + 8336, 8339, 8342, 8350, 8356, 8360, 8364, 8368, + 8374, 8382, 8387, 8393, 8397, 8405, 8412, 8416, + 8423, 8429, 8437, 8445, 8451, 8457, 8468, 8472, + 8484, 8493, 8510, 8527, 8530, 8534, 8536, 8542, + 8544, 8548, 8563, 8567, 8571, 8575, 8579, 8583, + 8585, 8591, 8596, 8600, 8606, 8613, 8616, 8634, + 8636, 8681, 8687, 8693, 8697, 8701, 8707, 8711, + 8717, 8723, 8730, 8732, 8738, 8744, 8748, 8752, + 8760, 8773, 8779, 8786, 8794, 8800, 8809, 8815, + 8819, 8824, 8828, 8836, 8840, 8844, 8874, 8880, + 8886, 8892, 8898, 8905, 8911, 8918, 8923, 8933, + 8937, 8944, 8950, 8954, 8961, 8965, 8971, 8974, + 8978, 8982, 8986, 8990, 8995, 9000, 9004, 9015, + 9019, 9023, 9029, 9037, 9041, 9058, 9062, 9068, + 9078, 9084, 9090, 9093, 9098, 9107, 9111, 9115, + 9121, 9125, 9131, 9139, 9157, 9158, 9168, 9169, + 9178, 9186, 9188, 9191, 9193, 9195, 9197, 9202, + 9215, 9219, 9234, 9263, 9274, 9276, 9280, 9284, + 9289, 9293, 9295, 9302, 9306, 9314, 9318, 9393, + 9395, 9396, 9397, 9398, 9399, 9400, 9402, 9403, + 9408, 9410, 9412, 9413, 9457, 9458, 9459, 9461, + 9466, 9470, 9470, 9472, 9474, 9485, 9495, 9503, + 9504, 9506, 9507, 9511, 9515, 9525, 9529, 9536, + 9547, 9554, 9558, 9564, 9575, 9607, 9656, 9671, + 9686, 9691, 9693, 9698, 9730, 9738, 9740, 9762, + 9784, 9786, 9802, 9818, 9833, 9842, 9856, 9870, + 9886, 9887, 9888, 9889, 9890, 9892, 9894, 9896, + 9910, 9924, 9925, 9926, 9928, 9930, 9932, 9946, + 9960, 9961, 9962, 9964, 9966, 9968, 10016, 10060, + 10062, 10067, 10071, 10071, 10073, 10075, 10086, 10096, + 10104, 10105, 10107, 10108, 10112, 10116, 10126, 10130, + 10137, 10148, 10155, 10159, 10165, 10176, 10208, 10257, + 10272, 10287, 10292, 10294, 10299, 10331, 10339, 10341, + 10363, 10385, } -var _zcltok_trans_keys []byte = []byte{ +var _hcltok_trans_keys []byte = []byte{ 10, 46, 42, 42, 47, 46, 69, 101, 48, 57, 43, 45, 48, 57, 48, 57, 45, 194, 195, 198, 199, 203, 205, 206, @@ -186,7 +258,7 @@ var _zcltok_trans_keys []byte = []byte{ 234, 237, 239, 240, 243, 48, 57, 65, 90, 97, 122, 196, 218, 229, 236, 10, 170, 181, 183, 186, 128, 150, 152, 182, - 184, 255, 192, 255, 0, 127, 173, 130, + 184, 255, 192, 255, 128, 255, 173, 130, 133, 146, 159, 165, 171, 175, 255, 181, 190, 184, 185, 192, 255, 140, 134, 138, 142, 161, 163, 255, 182, 130, 136, 137, @@ -914,7 +986,424 @@ var _zcltok_trans_keys []byte = []byte{ 128, 191, 128, 191, 128, 191, 128, 191, 128, 191, 10, 123, 128, 191, 128, 191, 128, 191, 123, 123, 10, 123, 128, 191, - 128, 191, 128, 191, 123, 123, 9, 10, + 128, 191, 128, 191, 123, 123, 170, 181, + 183, 186, 128, 150, 152, 182, 184, 255, + 192, 255, 128, 255, 173, 130, 133, 146, + 159, 165, 171, 175, 255, 181, 190, 184, + 185, 192, 255, 140, 134, 138, 142, 161, + 163, 255, 182, 130, 136, 137, 176, 151, + 152, 154, 160, 190, 136, 144, 192, 255, + 135, 129, 130, 132, 133, 144, 170, 176, + 178, 144, 154, 160, 191, 128, 169, 174, + 255, 148, 169, 157, 158, 189, 190, 192, + 255, 144, 255, 139, 140, 178, 255, 186, + 128, 181, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 128, 173, 128, 155, 160, 180, + 182, 189, 148, 161, 163, 255, 176, 164, + 165, 132, 169, 177, 141, 142, 145, 146, + 179, 181, 186, 187, 158, 133, 134, 137, + 138, 143, 150, 152, 155, 164, 165, 178, + 255, 188, 129, 131, 133, 138, 143, 144, + 147, 168, 170, 176, 178, 179, 181, 182, + 184, 185, 190, 255, 157, 131, 134, 137, + 138, 142, 144, 146, 152, 159, 165, 182, + 255, 129, 131, 133, 141, 143, 145, 147, + 168, 170, 176, 178, 179, 181, 185, 188, + 255, 134, 138, 142, 143, 145, 159, 164, + 165, 176, 184, 186, 255, 129, 131, 133, + 140, 143, 144, 147, 168, 170, 176, 178, + 179, 181, 185, 188, 191, 177, 128, 132, + 135, 136, 139, 141, 150, 151, 156, 157, + 159, 163, 166, 175, 156, 130, 131, 133, + 138, 142, 144, 146, 149, 153, 154, 158, + 159, 163, 164, 168, 170, 174, 185, 190, + 191, 144, 151, 128, 130, 134, 136, 138, + 141, 166, 175, 128, 131, 133, 140, 142, + 144, 146, 168, 170, 185, 189, 255, 133, + 137, 151, 142, 148, 155, 159, 164, 165, + 176, 255, 128, 131, 133, 140, 142, 144, + 146, 168, 170, 179, 181, 185, 188, 191, + 158, 128, 132, 134, 136, 138, 141, 149, + 150, 160, 163, 166, 175, 177, 178, 129, + 131, 133, 140, 142, 144, 146, 186, 189, + 255, 133, 137, 143, 147, 152, 158, 164, + 165, 176, 185, 192, 255, 189, 130, 131, + 133, 150, 154, 177, 179, 187, 138, 150, + 128, 134, 143, 148, 152, 159, 166, 175, + 178, 179, 129, 186, 128, 142, 144, 153, + 132, 138, 141, 165, 167, 129, 130, 135, + 136, 148, 151, 153, 159, 161, 163, 170, + 171, 173, 185, 187, 189, 134, 128, 132, + 136, 141, 144, 153, 156, 159, 128, 181, + 183, 185, 152, 153, 160, 169, 190, 191, + 128, 135, 137, 172, 177, 191, 128, 132, + 134, 151, 153, 188, 134, 128, 129, 130, + 131, 137, 138, 139, 140, 141, 142, 143, + 144, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 173, 175, 176, 177, 178, + 179, 181, 182, 183, 188, 189, 190, 191, + 132, 152, 172, 184, 185, 187, 128, 191, + 128, 137, 144, 255, 158, 159, 134, 187, + 136, 140, 142, 143, 137, 151, 153, 142, + 143, 158, 159, 137, 177, 142, 143, 182, + 183, 191, 255, 128, 130, 133, 136, 150, + 152, 255, 145, 150, 151, 155, 156, 160, + 168, 178, 255, 128, 143, 160, 255, 182, + 183, 190, 255, 129, 255, 173, 174, 192, + 255, 129, 154, 160, 255, 171, 173, 185, + 255, 128, 140, 142, 148, 160, 180, 128, + 147, 160, 172, 174, 176, 178, 179, 148, + 150, 152, 155, 158, 159, 170, 255, 139, + 141, 144, 153, 160, 255, 184, 255, 128, + 170, 176, 255, 182, 255, 128, 158, 160, + 171, 176, 187, 134, 173, 176, 180, 128, + 171, 176, 255, 138, 143, 155, 255, 128, + 155, 160, 255, 159, 189, 190, 192, 255, + 167, 128, 137, 144, 153, 176, 189, 140, + 143, 154, 170, 180, 255, 180, 255, 128, + 183, 128, 137, 141, 189, 128, 136, 144, + 146, 148, 182, 184, 185, 128, 181, 187, + 191, 150, 151, 158, 159, 152, 154, 156, + 158, 134, 135, 142, 143, 190, 255, 190, + 128, 180, 182, 188, 130, 132, 134, 140, + 144, 147, 150, 155, 160, 172, 178, 180, + 182, 188, 128, 129, 130, 131, 132, 133, + 134, 176, 177, 178, 179, 180, 181, 182, + 183, 191, 255, 129, 147, 149, 176, 178, + 190, 192, 255, 144, 156, 161, 144, 156, + 165, 176, 130, 135, 149, 164, 166, 168, + 138, 147, 152, 157, 170, 185, 188, 191, + 142, 133, 137, 160, 255, 137, 255, 128, + 174, 176, 255, 159, 165, 170, 180, 255, + 167, 173, 128, 165, 176, 255, 168, 174, + 176, 190, 192, 255, 128, 150, 160, 166, + 168, 174, 176, 182, 184, 190, 128, 134, + 136, 142, 144, 150, 152, 158, 160, 191, + 128, 129, 130, 131, 132, 133, 134, 135, + 144, 145, 255, 133, 135, 161, 175, 177, + 181, 184, 188, 160, 151, 152, 187, 192, + 255, 133, 173, 177, 255, 143, 159, 187, + 255, 176, 191, 182, 183, 184, 191, 192, + 255, 150, 255, 128, 146, 147, 148, 152, + 153, 154, 155, 156, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 129, + 255, 141, 255, 144, 189, 141, 143, 172, + 255, 191, 128, 175, 180, 189, 151, 159, + 162, 255, 175, 137, 138, 184, 255, 183, + 255, 168, 255, 128, 179, 188, 134, 143, + 154, 159, 184, 186, 190, 255, 128, 173, + 176, 255, 148, 159, 189, 255, 129, 142, + 154, 159, 191, 255, 128, 182, 128, 141, + 144, 153, 160, 182, 186, 255, 128, 130, + 155, 157, 160, 175, 178, 182, 129, 134, + 137, 142, 145, 150, 160, 166, 168, 174, + 176, 255, 155, 166, 175, 128, 170, 172, + 173, 176, 185, 158, 159, 160, 255, 164, + 175, 135, 138, 188, 255, 164, 169, 171, + 172, 173, 174, 175, 180, 181, 182, 183, + 184, 185, 187, 188, 189, 190, 191, 165, + 186, 174, 175, 154, 255, 190, 128, 134, + 147, 151, 157, 168, 170, 182, 184, 188, + 128, 129, 131, 132, 134, 255, 147, 255, + 190, 255, 144, 145, 136, 175, 188, 255, + 128, 143, 160, 175, 179, 180, 141, 143, + 176, 180, 182, 255, 189, 255, 191, 144, + 153, 161, 186, 129, 154, 166, 255, 191, + 255, 130, 135, 138, 143, 146, 151, 154, + 156, 144, 145, 146, 147, 148, 150, 151, + 152, 155, 157, 158, 160, 170, 171, 172, + 175, 161, 169, 128, 129, 130, 131, 133, + 135, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 152, 156, 157, + 160, 161, 162, 163, 164, 166, 168, 169, + 170, 171, 172, 173, 174, 176, 177, 153, + 155, 178, 179, 128, 139, 141, 166, 168, + 186, 188, 189, 191, 255, 142, 143, 158, + 255, 187, 255, 128, 180, 189, 128, 156, + 160, 255, 145, 159, 161, 255, 128, 159, + 176, 255, 139, 143, 187, 255, 128, 157, + 160, 255, 144, 132, 135, 150, 255, 158, + 159, 170, 175, 148, 151, 188, 255, 128, + 167, 176, 255, 164, 255, 183, 255, 128, + 149, 160, 167, 136, 188, 128, 133, 138, + 181, 183, 184, 191, 255, 150, 159, 183, + 255, 128, 158, 160, 178, 180, 181, 128, + 149, 160, 185, 128, 183, 190, 191, 191, + 128, 131, 133, 134, 140, 147, 149, 151, + 153, 179, 184, 186, 160, 188, 128, 156, + 128, 135, 137, 166, 128, 181, 128, 149, + 160, 178, 128, 145, 128, 178, 129, 130, + 131, 132, 133, 135, 136, 138, 139, 140, + 141, 144, 145, 146, 147, 150, 151, 152, + 153, 154, 155, 156, 162, 163, 171, 176, + 177, 178, 128, 134, 135, 165, 176, 190, + 144, 168, 176, 185, 128, 180, 182, 191, + 182, 144, 179, 155, 133, 137, 141, 143, + 157, 255, 190, 128, 145, 147, 183, 136, + 128, 134, 138, 141, 143, 157, 159, 168, + 176, 255, 171, 175, 186, 255, 128, 131, + 133, 140, 143, 144, 147, 168, 170, 176, + 178, 179, 181, 185, 188, 191, 144, 151, + 128, 132, 135, 136, 139, 141, 157, 163, + 166, 172, 176, 180, 128, 138, 144, 153, + 134, 136, 143, 154, 255, 128, 181, 184, + 255, 129, 151, 158, 255, 129, 131, 133, + 143, 154, 255, 128, 137, 128, 153, 157, + 171, 176, 185, 160, 255, 170, 190, 192, + 255, 128, 184, 128, 136, 138, 182, 184, + 191, 128, 144, 153, 178, 255, 168, 144, + 145, 183, 255, 128, 142, 145, 149, 129, + 141, 144, 146, 147, 148, 175, 255, 132, + 255, 128, 144, 129, 143, 144, 153, 145, + 152, 135, 255, 160, 168, 169, 171, 172, + 173, 174, 188, 189, 190, 191, 161, 167, + 185, 255, 128, 158, 160, 169, 144, 173, + 176, 180, 128, 131, 144, 153, 163, 183, + 189, 255, 144, 255, 133, 143, 191, 255, + 143, 159, 160, 128, 129, 255, 159, 160, + 171, 172, 255, 173, 255, 179, 255, 128, + 176, 177, 178, 128, 129, 171, 175, 189, + 255, 128, 136, 144, 153, 157, 158, 133, + 134, 137, 144, 145, 146, 147, 148, 149, + 154, 155, 156, 157, 158, 159, 168, 169, + 170, 150, 153, 165, 169, 173, 178, 187, + 255, 131, 132, 140, 169, 174, 255, 130, + 132, 149, 157, 173, 186, 188, 160, 161, + 163, 164, 167, 168, 132, 134, 149, 157, + 186, 139, 140, 191, 255, 134, 128, 132, + 138, 144, 146, 255, 166, 167, 129, 155, + 187, 149, 181, 143, 175, 137, 169, 131, + 140, 141, 192, 255, 128, 182, 187, 255, + 173, 180, 182, 255, 132, 155, 159, 161, + 175, 128, 160, 163, 164, 165, 184, 185, + 186, 161, 162, 128, 134, 136, 152, 155, + 161, 163, 164, 166, 170, 133, 143, 151, + 255, 139, 143, 154, 255, 164, 167, 185, + 187, 128, 131, 133, 159, 161, 162, 169, + 178, 180, 183, 130, 135, 137, 139, 148, + 151, 153, 155, 157, 159, 164, 190, 141, + 143, 145, 146, 161, 162, 167, 170, 172, + 178, 180, 183, 185, 188, 128, 137, 139, + 155, 161, 163, 165, 169, 171, 187, 155, + 156, 151, 255, 156, 157, 160, 181, 255, + 186, 187, 255, 162, 255, 160, 168, 161, + 167, 158, 255, 160, 132, 135, 133, 134, + 176, 255, 128, 191, 154, 164, 168, 128, + 149, 150, 191, 128, 152, 153, 191, 181, + 128, 159, 160, 189, 190, 191, 189, 128, + 131, 132, 185, 186, 191, 144, 128, 151, + 152, 161, 162, 176, 177, 255, 169, 177, + 129, 132, 141, 142, 145, 146, 179, 181, + 186, 188, 190, 191, 192, 255, 142, 158, + 128, 155, 156, 161, 162, 175, 176, 177, + 178, 191, 169, 177, 180, 183, 128, 132, + 133, 138, 139, 142, 143, 144, 145, 146, + 147, 185, 186, 191, 157, 128, 152, 153, + 158, 159, 177, 178, 180, 181, 191, 142, + 146, 169, 177, 180, 189, 128, 132, 133, + 185, 186, 191, 144, 185, 128, 159, 160, + 161, 162, 191, 169, 177, 180, 189, 128, + 132, 133, 140, 141, 142, 143, 144, 145, + 146, 147, 185, 186, 191, 158, 177, 128, + 155, 156, 161, 162, 191, 131, 145, 155, + 157, 128, 132, 133, 138, 139, 141, 142, + 149, 150, 152, 153, 159, 160, 162, 163, + 164, 165, 167, 168, 170, 171, 173, 174, + 185, 186, 191, 144, 128, 191, 141, 145, + 169, 189, 128, 132, 133, 185, 186, 191, + 128, 151, 152, 154, 155, 159, 160, 161, + 162, 191, 128, 141, 145, 169, 180, 189, + 129, 132, 133, 185, 186, 191, 158, 128, + 159, 160, 161, 162, 176, 177, 178, 179, + 191, 141, 145, 189, 128, 132, 133, 186, + 187, 191, 142, 128, 147, 148, 150, 151, + 158, 159, 161, 162, 185, 186, 191, 178, + 188, 128, 132, 133, 150, 151, 153, 154, + 189, 190, 191, 128, 134, 135, 191, 128, + 177, 129, 179, 180, 191, 128, 131, 137, + 141, 152, 160, 164, 166, 172, 177, 189, + 129, 132, 133, 134, 135, 138, 139, 147, + 148, 167, 168, 169, 170, 179, 180, 191, + 133, 128, 134, 135, 155, 156, 159, 160, + 191, 128, 129, 191, 136, 128, 172, 173, + 191, 128, 135, 136, 140, 141, 191, 191, + 128, 170, 171, 190, 161, 128, 143, 144, + 149, 150, 153, 154, 157, 158, 164, 165, + 166, 167, 173, 174, 176, 177, 180, 181, + 255, 130, 141, 143, 159, 134, 187, 136, + 140, 142, 143, 137, 151, 153, 142, 143, + 158, 159, 137, 177, 191, 142, 143, 182, + 183, 192, 255, 129, 151, 128, 133, 134, + 135, 136, 255, 145, 150, 151, 155, 191, + 192, 255, 128, 143, 144, 159, 160, 255, + 182, 183, 190, 191, 192, 255, 128, 129, + 255, 173, 174, 192, 255, 128, 129, 154, + 155, 159, 160, 255, 171, 173, 185, 191, + 192, 255, 141, 128, 145, 146, 159, 160, + 177, 178, 191, 173, 128, 145, 146, 159, + 160, 176, 177, 191, 128, 179, 180, 191, + 151, 156, 128, 191, 128, 159, 160, 255, + 184, 191, 192, 255, 169, 128, 170, 171, + 175, 176, 255, 182, 191, 192, 255, 128, + 158, 159, 191, 128, 143, 144, 173, 174, + 175, 176, 180, 181, 191, 128, 171, 172, + 175, 176, 255, 138, 191, 192, 255, 128, + 150, 151, 159, 160, 255, 149, 191, 192, + 255, 167, 128, 191, 128, 132, 133, 179, + 180, 191, 128, 132, 133, 139, 140, 191, + 128, 130, 131, 160, 161, 173, 174, 175, + 176, 185, 186, 255, 166, 191, 192, 255, + 128, 163, 164, 191, 128, 140, 141, 143, + 144, 153, 154, 189, 190, 191, 128, 136, + 137, 191, 173, 128, 168, 169, 177, 178, + 180, 181, 182, 183, 191, 0, 127, 192, + 255, 150, 151, 158, 159, 152, 154, 156, + 158, 134, 135, 142, 143, 190, 191, 192, + 255, 181, 189, 191, 128, 190, 133, 181, + 128, 129, 130, 140, 141, 143, 144, 147, + 148, 149, 150, 155, 156, 159, 160, 172, + 173, 177, 178, 188, 189, 191, 177, 191, + 128, 190, 128, 143, 144, 156, 157, 191, + 130, 135, 148, 164, 166, 168, 128, 137, + 138, 149, 150, 151, 152, 157, 158, 169, + 170, 185, 186, 187, 188, 191, 142, 128, + 132, 133, 137, 138, 159, 160, 255, 137, + 191, 192, 255, 175, 128, 255, 159, 165, + 170, 175, 177, 180, 191, 192, 255, 166, + 173, 128, 167, 168, 175, 176, 255, 168, + 174, 176, 191, 192, 255, 167, 175, 183, + 191, 128, 150, 151, 159, 160, 190, 135, + 143, 151, 128, 158, 159, 191, 128, 132, + 133, 135, 136, 160, 161, 169, 170, 176, + 177, 181, 182, 183, 184, 188, 189, 191, + 160, 151, 154, 187, 192, 255, 128, 132, + 133, 173, 174, 176, 177, 255, 143, 159, + 187, 191, 192, 255, 128, 175, 176, 191, + 150, 191, 192, 255, 141, 191, 192, 255, + 128, 143, 144, 189, 190, 191, 141, 143, + 160, 169, 172, 191, 192, 255, 191, 128, + 174, 175, 190, 128, 157, 158, 159, 160, + 255, 176, 191, 192, 255, 128, 150, 151, + 159, 160, 161, 162, 255, 175, 137, 138, + 184, 191, 192, 255, 128, 182, 183, 255, + 130, 134, 139, 163, 191, 192, 255, 128, + 129, 130, 179, 180, 191, 187, 189, 128, + 177, 178, 183, 184, 191, 128, 137, 138, + 165, 166, 175, 176, 255, 135, 159, 189, + 191, 192, 255, 128, 131, 132, 178, 179, + 191, 143, 165, 191, 128, 159, 160, 175, + 176, 185, 186, 190, 128, 168, 169, 191, + 131, 186, 128, 139, 140, 159, 160, 182, + 183, 189, 190, 255, 176, 178, 180, 183, + 184, 190, 191, 192, 255, 129, 128, 130, + 131, 154, 155, 157, 158, 159, 160, 170, + 171, 177, 178, 180, 181, 191, 128, 167, + 175, 129, 134, 135, 136, 137, 142, 143, + 144, 145, 150, 151, 159, 160, 255, 155, + 166, 175, 128, 162, 163, 191, 164, 175, + 135, 138, 188, 191, 192, 255, 174, 175, + 154, 191, 192, 255, 157, 169, 183, 189, + 191, 128, 134, 135, 146, 147, 151, 152, + 158, 159, 190, 130, 133, 128, 255, 178, + 191, 192, 255, 128, 146, 147, 255, 190, + 191, 192, 255, 128, 143, 144, 255, 144, + 145, 136, 175, 188, 191, 192, 255, 181, + 128, 175, 176, 255, 189, 191, 192, 255, + 128, 160, 161, 186, 187, 191, 128, 129, + 154, 155, 165, 166, 255, 191, 192, 255, + 128, 129, 130, 135, 136, 137, 138, 143, + 144, 145, 146, 151, 152, 153, 154, 156, + 157, 191, 128, 191, 128, 129, 130, 131, + 133, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 152, 156, 157, + 160, 161, 162, 163, 164, 166, 168, 169, + 170, 171, 172, 173, 174, 176, 177, 132, + 151, 153, 155, 158, 175, 178, 179, 180, + 191, 140, 167, 187, 190, 128, 255, 142, + 143, 158, 191, 192, 255, 187, 191, 192, + 255, 128, 180, 181, 191, 128, 156, 157, + 159, 160, 255, 145, 191, 192, 255, 128, + 159, 160, 175, 176, 255, 139, 143, 182, + 191, 192, 255, 144, 132, 135, 150, 191, + 192, 255, 158, 175, 148, 151, 188, 191, + 192, 255, 128, 167, 168, 175, 176, 255, + 164, 191, 192, 255, 183, 191, 192, 255, + 128, 149, 150, 159, 160, 167, 168, 191, + 136, 182, 188, 128, 133, 134, 137, 138, + 184, 185, 190, 191, 255, 150, 159, 183, + 191, 192, 255, 179, 128, 159, 160, 181, + 182, 191, 128, 149, 150, 159, 160, 185, + 186, 191, 128, 183, 184, 189, 190, 191, + 128, 148, 152, 129, 143, 144, 179, 180, + 191, 128, 159, 160, 188, 189, 191, 128, + 156, 157, 191, 136, 128, 164, 165, 191, + 128, 181, 182, 191, 128, 149, 150, 159, + 160, 178, 179, 191, 128, 145, 146, 191, + 128, 178, 179, 191, 128, 130, 131, 132, + 133, 134, 135, 136, 138, 139, 140, 141, + 144, 145, 146, 147, 150, 151, 152, 153, + 154, 156, 162, 163, 171, 176, 177, 178, + 129, 191, 128, 130, 131, 183, 184, 191, + 128, 130, 131, 175, 176, 191, 128, 143, + 144, 168, 169, 191, 128, 130, 131, 166, + 167, 191, 182, 128, 143, 144, 178, 179, + 191, 128, 130, 131, 178, 179, 191, 128, + 154, 156, 129, 132, 133, 191, 146, 128, + 171, 172, 191, 135, 137, 142, 158, 128, + 168, 169, 175, 176, 255, 159, 191, 192, + 255, 144, 128, 156, 157, 161, 162, 191, + 128, 134, 135, 138, 139, 191, 128, 175, + 176, 191, 134, 128, 131, 132, 135, 136, + 191, 128, 174, 175, 191, 128, 151, 152, + 155, 156, 191, 132, 128, 191, 128, 170, + 171, 191, 128, 153, 154, 191, 160, 190, + 192, 255, 128, 184, 185, 191, 137, 128, + 174, 175, 191, 128, 129, 177, 178, 255, + 144, 191, 192, 255, 128, 142, 143, 144, + 145, 146, 149, 129, 148, 150, 191, 175, + 191, 192, 255, 132, 191, 192, 255, 128, + 144, 129, 143, 145, 191, 144, 153, 128, + 143, 145, 152, 154, 191, 135, 191, 192, + 255, 160, 168, 169, 171, 172, 173, 174, + 188, 189, 190, 191, 128, 159, 161, 167, + 170, 187, 185, 191, 192, 255, 128, 143, + 144, 173, 174, 191, 128, 131, 132, 162, + 163, 183, 184, 188, 189, 255, 133, 143, + 145, 191, 192, 255, 128, 146, 147, 159, + 160, 191, 160, 128, 191, 128, 129, 191, + 192, 255, 159, 160, 171, 128, 170, 172, + 191, 192, 255, 173, 191, 192, 255, 179, + 191, 192, 255, 128, 176, 177, 178, 129, + 191, 128, 129, 130, 191, 171, 175, 189, + 191, 192, 255, 128, 136, 137, 143, 144, + 153, 154, 191, 144, 145, 146, 147, 148, + 149, 154, 155, 156, 157, 158, 159, 128, + 143, 150, 153, 160, 191, 149, 157, 173, + 186, 188, 160, 161, 163, 164, 167, 168, + 132, 134, 149, 157, 186, 191, 139, 140, + 192, 255, 133, 145, 128, 134, 135, 137, + 138, 255, 166, 167, 129, 155, 187, 149, + 181, 143, 175, 137, 169, 131, 140, 191, + 192, 255, 160, 163, 164, 165, 184, 185, + 186, 128, 159, 161, 162, 166, 191, 133, + 191, 192, 255, 132, 160, 163, 167, 179, + 184, 186, 128, 164, 165, 168, 169, 187, + 188, 191, 130, 135, 137, 139, 144, 147, + 151, 153, 155, 157, 159, 163, 171, 179, + 184, 189, 191, 128, 140, 141, 148, 149, + 160, 161, 164, 165, 166, 167, 190, 138, + 164, 170, 128, 155, 156, 160, 161, 187, + 188, 191, 128, 191, 155, 156, 128, 191, + 151, 191, 192, 255, 156, 157, 160, 128, + 191, 181, 191, 192, 255, 158, 159, 186, + 128, 185, 187, 191, 192, 255, 162, 191, + 192, 255, 160, 168, 128, 159, 161, 167, + 169, 191, 158, 191, 192, 255, 9, 10, 13, 32, 33, 34, 35, 38, 46, 47, 60, 61, 62, 64, 92, 95, 123, 124, 125, 126, 127, 194, 195, 198, 199, 203, @@ -924,7 +1413,7 @@ var _zcltok_trans_keys []byte = []byte{ 238, 239, 240, 0, 39, 40, 45, 48, 57, 58, 63, 65, 90, 91, 96, 97, 122, 192, 193, 196, 218, 229, 236, 241, - 247, 9, 10, 32, 61, 10, 38, 46, + 247, 9, 32, 10, 61, 10, 38, 46, 42, 47, 42, 46, 69, 101, 48, 57, 60, 61, 61, 62, 61, 45, 95, 194, 195, 198, 199, 203, 204, 205, 206, 207, @@ -996,9 +1485,62 @@ var _zcltok_trans_keys []byte = []byte{ 248, 255, 10, 13, 36, 37, 128, 191, 192, 223, 224, 239, 240, 247, 248, 255, 126, 126, 128, 191, 128, 191, 128, 191, + 194, 195, 198, 199, 203, 204, 205, 206, + 207, 210, 212, 213, 214, 215, 216, 217, + 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 233, 234, 237, 238, 239, 240, + 65, 90, 97, 122, 128, 191, 192, 193, + 196, 218, 229, 236, 241, 247, 248, 255, + 45, 95, 194, 195, 198, 199, 203, 204, + 205, 206, 207, 210, 212, 213, 214, 215, + 216, 217, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 233, 234, 237, 239, + 240, 243, 48, 57, 65, 90, 97, 122, + 196, 218, 229, 236, 128, 191, 170, 181, + 186, 128, 191, 151, 183, 128, 255, 192, + 255, 0, 127, 173, 130, 133, 146, 159, + 165, 171, 175, 191, 192, 255, 181, 190, + 128, 175, 176, 183, 184, 185, 186, 191, + 134, 139, 141, 162, 128, 135, 136, 255, + 182, 130, 137, 176, 151, 152, 154, 160, + 136, 191, 192, 255, 128, 143, 144, 170, + 171, 175, 176, 178, 179, 191, 128, 159, + 160, 191, 176, 128, 138, 139, 173, 174, + 255, 148, 150, 164, 167, 173, 176, 185, + 189, 190, 192, 255, 144, 128, 145, 146, + 175, 176, 191, 128, 140, 141, 255, 166, + 176, 178, 191, 192, 255, 186, 128, 137, + 138, 170, 171, 179, 180, 181, 182, 191, + 160, 161, 162, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 128, 191, + 128, 129, 130, 131, 137, 138, 139, 140, + 141, 142, 143, 144, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, + 182, 183, 184, 188, 189, 190, 191, 132, + 187, 129, 130, 132, 133, 134, 176, 177, + 178, 179, 180, 181, 182, 183, 128, 191, + 128, 129, 130, 131, 132, 133, 134, 135, + 144, 136, 143, 145, 191, 192, 255, 182, + 183, 184, 128, 191, 128, 191, 191, 128, + 190, 192, 255, 128, 146, 147, 148, 152, + 153, 154, 155, 156, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 129, + 191, 192, 255, 158, 159, 128, 157, 160, + 191, 192, 255, 128, 191, 164, 169, 171, + 172, 173, 174, 175, 180, 181, 182, 183, + 184, 185, 187, 188, 189, 190, 191, 128, + 163, 165, 186, 144, 145, 146, 147, 148, + 150, 151, 152, 155, 157, 158, 160, 170, + 171, 172, 175, 128, 159, 161, 169, 173, + 191, 128, 191, } -var _zcltok_single_lengths []byte = []byte{ +var _hcltok_single_lengths []byte = []byte{ 0, 1, 1, 1, 2, 3, 2, 0, 31, 30, 36, 1, 4, 0, 0, 0, 0, 1, 2, 1, 1, 1, 1, 0, @@ -1117,7 +1659,71 @@ var _zcltok_single_lengths []byte = []byte{ 2, 0, 3, 0, 0, 1, 0, 2, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, - 0, 0, 0, 1, 1, 53, 1, 1, + 0, 0, 0, 1, 1, 4, 0, 0, + 0, 0, 1, 2, 1, 1, 1, 1, + 0, 1, 1, 0, 0, 2, 0, 0, + 0, 1, 32, 0, 0, 0, 0, 1, + 3, 1, 1, 1, 0, 2, 0, 1, + 1, 2, 0, 3, 0, 1, 0, 2, + 1, 2, 0, 0, 5, 1, 4, 0, + 0, 1, 43, 0, 0, 0, 2, 3, + 2, 1, 1, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 1, + 0, 0, 0, 0, 0, 0, 0, 0, + 4, 1, 0, 15, 0, 0, 0, 1, + 6, 1, 0, 0, 1, 0, 2, 0, + 0, 0, 9, 0, 1, 1, 0, 0, + 0, 3, 0, 1, 0, 28, 0, 0, + 0, 1, 0, 1, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 1, + 0, 2, 0, 0, 18, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 16, 36, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 1, 0, 0, 0, 0, 0, 0, 2, + 0, 0, 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 28, 0, 0, + 0, 1, 1, 1, 1, 0, 0, 2, + 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 4, 0, 0, + 2, 2, 0, 11, 0, 0, 0, 0, + 0, 0, 0, 1, 1, 3, 0, 0, + 4, 0, 0, 0, 18, 0, 0, 0, + 1, 4, 1, 4, 1, 0, 3, 2, + 2, 2, 1, 0, 0, 1, 8, 0, + 0, 0, 4, 12, 0, 2, 0, 3, + 0, 1, 0, 2, 0, 1, 2, 0, + 0, 3, 0, 1, 1, 1, 2, 2, + 4, 1, 6, 2, 4, 2, 4, 1, + 4, 0, 6, 1, 3, 1, 2, 0, + 2, 11, 1, 1, 1, 0, 1, 1, + 0, 2, 0, 3, 3, 2, 1, 0, + 0, 0, 1, 0, 1, 0, 1, 1, + 0, 2, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 0, 0, 1, 0, 0, 0, + 4, 3, 2, 2, 0, 6, 1, 0, + 1, 1, 0, 2, 0, 4, 3, 0, + 1, 1, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 1, 0, 3, + 0, 2, 0, 0, 0, 3, 0, 2, + 1, 1, 3, 1, 0, 0, 0, 0, + 0, 5, 2, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 1, 1, 0, 0, + 35, 4, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 0, 0, 0, + 3, 0, 1, 0, 0, 3, 0, 0, + 1, 0, 0, 0, 0, 28, 0, 0, + 0, 0, 1, 0, 3, 1, 4, 0, + 1, 0, 0, 1, 0, 0, 1, 0, + 0, 0, 0, 1, 1, 0, 7, 0, + 0, 2, 2, 0, 11, 0, 0, 0, + 0, 0, 1, 1, 3, 0, 0, 4, + 0, 0, 0, 12, 1, 4, 1, 5, + 2, 0, 3, 2, 2, 2, 1, 7, + 0, 7, 17, 3, 0, 2, 0, 3, + 0, 0, 1, 0, 2, 0, 53, 2, 1, 1, 1, 1, 1, 2, 1, 3, 2, 2, 1, 34, 1, 1, 0, 3, 2, 0, 0, 0, 1, 2, 4, 1, @@ -1127,10 +1733,15 @@ var _zcltok_single_lengths []byte = []byte{ 0, 6, 4, 3, 1, 4, 4, 4, 1, 1, 1, 1, 0, 0, 0, 4, 2, 1, 1, 0, 0, 0, 4, 2, - 1, 1, 0, 0, 0, + 1, 1, 0, 0, 0, 32, 34, 0, + 3, 2, 0, 0, 0, 1, 2, 4, + 1, 0, 1, 0, 0, 0, 0, 1, + 1, 1, 0, 0, 1, 30, 47, 13, + 9, 3, 0, 1, 28, 2, 0, 18, + 16, 0, } -var _zcltok_range_lengths []byte = []byte{ +var _hcltok_range_lengths []byte = []byte{ 0, 0, 0, 0, 0, 1, 1, 1, 5, 5, 5, 0, 0, 3, 0, 1, 1, 4, 2, 3, 0, 1, 0, 2, @@ -1249,7 +1860,71 @@ var _zcltok_range_lengths []byte = []byte{ 1, 2, 1, 2, 1, 3, 2, 3, 2, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, - 1, 1, 1, 0, 0, 11, 0, 0, + 1, 1, 1, 0, 0, 0, 3, 0, + 1, 1, 4, 2, 3, 0, 1, 0, + 2, 2, 4, 2, 2, 3, 1, 1, + 1, 1, 0, 1, 1, 2, 2, 1, + 4, 6, 9, 6, 8, 5, 8, 7, + 10, 4, 6, 4, 7, 7, 5, 5, + 4, 5, 1, 2, 8, 4, 3, 3, + 3, 0, 3, 1, 2, 1, 2, 2, + 3, 3, 1, 3, 2, 2, 1, 2, + 2, 2, 3, 4, 4, 3, 1, 2, + 1, 3, 2, 2, 2, 2, 2, 3, + 3, 1, 1, 2, 1, 3, 2, 2, + 3, 2, 7, 0, 1, 4, 1, 2, + 4, 2, 1, 2, 0, 2, 2, 3, + 5, 5, 1, 4, 1, 1, 2, 2, + 1, 0, 0, 1, 1, 1, 1, 1, + 2, 2, 2, 2, 1, 1, 1, 4, + 2, 2, 3, 1, 4, 4, 6, 1, + 3, 1, 1, 2, 1, 1, 1, 5, + 3, 1, 1, 1, 2, 3, 3, 1, + 2, 2, 1, 4, 1, 2, 5, 2, + 1, 1, 0, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 1, 1, 2, 4, + 2, 1, 2, 2, 2, 6, 1, 1, + 2, 1, 2, 1, 1, 1, 2, 2, + 2, 1, 3, 2, 5, 2, 8, 6, + 2, 2, 2, 2, 3, 1, 3, 1, + 2, 1, 3, 2, 2, 3, 1, 1, + 1, 1, 1, 1, 1, 2, 2, 4, + 1, 2, 1, 0, 1, 1, 1, 1, + 0, 1, 2, 3, 1, 3, 3, 1, + 0, 3, 0, 2, 3, 1, 0, 0, + 0, 0, 2, 2, 2, 2, 1, 5, + 2, 2, 5, 7, 5, 0, 1, 0, + 1, 1, 1, 1, 1, 0, 1, 1, + 1, 2, 2, 3, 3, 4, 7, 5, + 7, 5, 3, 3, 7, 3, 13, 1, + 3, 5, 3, 5, 3, 6, 5, 2, + 2, 8, 4, 1, 2, 3, 2, 10, + 2, 2, 0, 2, 3, 3, 1, 2, + 3, 3, 1, 2, 3, 3, 4, 4, + 2, 1, 2, 2, 3, 2, 2, 5, + 3, 2, 3, 2, 1, 3, 3, 6, + 2, 2, 5, 2, 5, 1, 1, 2, + 4, 1, 11, 1, 3, 8, 4, 2, + 1, 0, 4, 3, 3, 3, 2, 9, + 1, 1, 4, 3, 2, 2, 2, 3, + 4, 2, 3, 2, 4, 3, 2, 2, + 3, 3, 4, 3, 3, 4, 2, 5, + 4, 8, 7, 1, 2, 1, 3, 1, + 2, 5, 1, 2, 2, 2, 2, 1, + 3, 2, 2, 3, 3, 1, 9, 1, + 5, 1, 3, 2, 2, 3, 2, 3, + 3, 3, 1, 3, 3, 2, 2, 4, + 5, 3, 3, 4, 3, 3, 3, 2, + 2, 2, 4, 2, 2, 1, 3, 3, + 3, 3, 3, 3, 2, 2, 3, 2, + 3, 3, 2, 3, 2, 3, 1, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 3, 2, 3, 2, 3, 5, + 3, 3, 1, 2, 3, 2, 2, 1, + 2, 3, 4, 3, 0, 3, 0, 2, + 3, 1, 0, 0, 0, 0, 2, 3, + 2, 4, 6, 4, 1, 1, 2, 1, + 2, 1, 3, 2, 3, 2, 11, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 1, 1, 1, 0, 1, 1, 5, 4, 2, 0, @@ -1259,10 +1934,15 @@ var _zcltok_range_lengths []byte = []byte{ 1, 5, 6, 6, 4, 5, 5, 6, 0, 0, 0, 0, 1, 1, 1, 5, 6, 0, 0, 1, 1, 1, 5, 6, - 0, 0, 1, 1, 1, + 0, 0, 1, 1, 1, 8, 5, 1, + 1, 1, 0, 1, 1, 5, 4, 2, + 0, 1, 0, 2, 2, 5, 2, 3, + 5, 3, 2, 3, 5, 1, 1, 1, + 3, 1, 1, 2, 2, 3, 1, 2, + 3, 1, } -var _zcltok_index_offsets []int16 = []int16{ +var _hcltok_index_offsets []int16 = []int16{ 0, 0, 2, 4, 6, 9, 14, 18, 20, 57, 93, 135, 137, 142, 146, 147, 149, 151, 157, 162, 167, 169, 172, 174, @@ -1381,20 +2061,89 @@ var _zcltok_index_offsets []int16 = []int16{ 4692, 4696, 4699, 4704, 4707, 4709, 4714, 4717, 4723, 4726, 4728, 4730, 4732, 4734, 4736, 4738, 4740, 4742, 4744, 4746, 4748, 4750, 4752, 4754, - 4756, 4758, 4760, 4762, 4764, 4766, 4831, 4833, - 4835, 4837, 4839, 4841, 4843, 4845, 4848, 4850, - 4855, 4858, 4861, 4863, 4903, 4905, 4907, 4909, - 4914, 4918, 4919, 4921, 4923, 4930, 4937, 4944, - 4946, 4948, 4950, 4953, 4956, 4962, 4965, 4970, - 4977, 4982, 4985, 4989, 4996, 5028, 5077, 5092, - 5105, 5110, 5112, 5116, 5147, 5153, 5155, 5176, - 5196, 5198, 5210, 5221, 5231, 5237, 5247, 5257, - 5268, 5270, 5272, 5274, 5276, 5278, 5280, 5282, - 5292, 5301, 5303, 5305, 5307, 5309, 5311, 5321, - 5330, 5332, 5334, 5336, 5338, + 4756, 4758, 4760, 4762, 4764, 4766, 4771, 4775, + 4776, 4778, 4780, 4786, 4791, 4796, 4798, 4801, + 4803, 4806, 4810, 4816, 4819, 4822, 4828, 4830, + 4832, 4834, 4837, 4870, 4872, 4874, 4877, 4880, + 4883, 4891, 4899, 4910, 4918, 4927, 4935, 4944, + 4953, 4965, 4972, 4979, 4987, 4995, 5004, 5010, + 5018, 5024, 5032, 5034, 5037, 5051, 5057, 5065, + 5069, 5073, 5075, 5122, 5124, 5127, 5129, 5134, + 5140, 5146, 5151, 5154, 5158, 5161, 5164, 5166, + 5169, 5172, 5175, 5179, 5184, 5189, 5193, 5195, + 5198, 5200, 5204, 5207, 5210, 5213, 5216, 5220, + 5225, 5229, 5231, 5233, 5236, 5238, 5242, 5245, + 5248, 5256, 5260, 5268, 5284, 5286, 5291, 5293, + 5297, 5308, 5312, 5314, 5317, 5319, 5322, 5327, + 5331, 5337, 5343, 5354, 5359, 5362, 5365, 5368, + 5371, 5373, 5377, 5378, 5381, 5383, 5413, 5415, + 5417, 5420, 5424, 5427, 5431, 5433, 5435, 5437, + 5443, 5446, 5449, 5453, 5455, 5460, 5465, 5472, + 5475, 5479, 5483, 5485, 5488, 5508, 5510, 5512, + 5519, 5523, 5525, 5527, 5529, 5532, 5536, 5540, + 5542, 5546, 5549, 5551, 5556, 5574, 5613, 5619, + 5622, 5624, 5626, 5628, 5631, 5634, 5637, 5640, + 5643, 5647, 5650, 5653, 5656, 5658, 5660, 5663, + 5670, 5673, 5675, 5678, 5681, 5684, 5692, 5694, + 5696, 5699, 5701, 5704, 5706, 5708, 5738, 5741, + 5744, 5747, 5750, 5755, 5759, 5766, 5769, 5778, + 5787, 5790, 5794, 5797, 5800, 5804, 5806, 5810, + 5812, 5815, 5817, 5821, 5825, 5829, 5837, 5839, + 5841, 5845, 5849, 5851, 5864, 5866, 5869, 5872, + 5877, 5879, 5882, 5884, 5886, 5889, 5894, 5896, + 5898, 5903, 5905, 5908, 5912, 5932, 5936, 5940, + 5942, 5944, 5952, 5954, 5961, 5966, 5968, 5972, + 5975, 5978, 5981, 5985, 5988, 5991, 5995, 6005, + 6011, 6014, 6017, 6027, 6047, 6053, 6056, 6058, + 6062, 6064, 6067, 6069, 6073, 6075, 6077, 6081, + 6083, 6085, 6091, 6094, 6099, 6104, 6110, 6120, + 6128, 6140, 6147, 6157, 6163, 6175, 6181, 6199, + 6202, 6210, 6216, 6226, 6233, 6240, 6248, 6256, + 6259, 6264, 6284, 6290, 6293, 6297, 6301, 6305, + 6317, 6320, 6325, 6326, 6332, 6339, 6345, 6348, + 6351, 6355, 6359, 6362, 6365, 6370, 6374, 6380, + 6386, 6389, 6393, 6396, 6399, 6404, 6407, 6410, + 6416, 6420, 6423, 6427, 6430, 6433, 6437, 6441, + 6448, 6451, 6454, 6460, 6463, 6470, 6472, 6474, + 6477, 6486, 6491, 6505, 6509, 6513, 6528, 6534, + 6537, 6540, 6542, 6547, 6553, 6557, 6565, 6571, + 6581, 6584, 6587, 6592, 6596, 6599, 6602, 6605, + 6609, 6614, 6618, 6622, 6625, 6630, 6635, 6638, + 6644, 6648, 6654, 6659, 6663, 6667, 6675, 6678, + 6686, 6692, 6702, 6713, 6716, 6719, 6721, 6725, + 6727, 6730, 6741, 6745, 6748, 6751, 6754, 6757, + 6759, 6763, 6767, 6770, 6774, 6779, 6782, 6792, + 6794, 6835, 6841, 6845, 6848, 6851, 6855, 6858, + 6862, 6866, 6871, 6873, 6877, 6881, 6884, 6887, + 6892, 6901, 6905, 6910, 6915, 6919, 6926, 6930, + 6933, 6937, 6940, 6945, 6948, 6951, 6981, 6985, + 6989, 6993, 6997, 7002, 7006, 7012, 7016, 7024, + 7027, 7032, 7036, 7039, 7044, 7047, 7051, 7054, + 7057, 7060, 7063, 7066, 7070, 7074, 7077, 7087, + 7090, 7093, 7098, 7104, 7107, 7122, 7125, 7129, + 7135, 7139, 7143, 7146, 7150, 7157, 7160, 7163, + 7169, 7172, 7176, 7181, 7197, 7199, 7207, 7209, + 7217, 7223, 7225, 7229, 7232, 7235, 7238, 7242, + 7253, 7256, 7268, 7292, 7300, 7302, 7306, 7309, + 7314, 7317, 7319, 7324, 7327, 7333, 7336, 7401, + 7404, 7406, 7408, 7410, 7412, 7414, 7417, 7419, + 7424, 7427, 7430, 7432, 7472, 7474, 7476, 7478, + 7483, 7487, 7488, 7490, 7492, 7499, 7506, 7513, + 7515, 7517, 7519, 7522, 7525, 7531, 7534, 7539, + 7546, 7551, 7554, 7558, 7565, 7597, 7646, 7661, + 7674, 7679, 7681, 7685, 7716, 7722, 7724, 7745, + 7765, 7767, 7779, 7790, 7800, 7806, 7816, 7826, + 7837, 7839, 7841, 7843, 7845, 7847, 7849, 7851, + 7861, 7870, 7872, 7874, 7876, 7878, 7880, 7890, + 7899, 7901, 7903, 7905, 7907, 7909, 7950, 7990, + 7992, 7997, 8001, 8002, 8004, 8006, 8013, 8020, + 8027, 8029, 8031, 8033, 8036, 8039, 8045, 8048, + 8053, 8060, 8065, 8068, 8072, 8079, 8111, 8160, + 8175, 8188, 8193, 8195, 8199, 8230, 8236, 8238, + 8259, 8279, } -var _zcltok_indicies []int16 = []int16{ +var _hcltok_indicies []int16 = []int16{ 2, 1, 4, 3, 6, 5, 6, 7, 5, 9, 11, 11, 10, 8, 12, 12, 10, 8, 10, 8, 13, 15, 16, 18, @@ -1413,7 +2162,7 @@ var _zcltok_indicies []int16 = []int16{ 64, 65, 40, 42, 66, 44, 67, 68, 69, 14, 14, 14, 17, 41, 3, 47, 3, 14, 14, 14, 14, 3, 14, 14, - 14, 3, 14, 3, 14, 3, 14, 3, + 14, 3, 14, 3, 14, 14, 3, 3, 3, 3, 3, 3, 14, 3, 3, 3, 3, 14, 14, 14, 14, 14, 3, 3, 14, 3, 3, 14, 3, 14, 3, 3, @@ -1990,88 +2739,456 @@ var _zcltok_indicies []int16 = []int16{ 773, 772, 775, 774, 776, 777, 777, 774, 778, 774, 779, 776, 780, 777, 781, 777, 783, 782, 784, 785, 785, 782, 786, 782, - 787, 784, 788, 785, 789, 785, 790, 791, - 792, 793, 794, 795, 796, 797, 799, 800, - 801, 802, 803, 672, 672, 672, 804, 805, - 806, 807, 672, 810, 811, 813, 814, 815, - 809, 816, 817, 818, 819, 820, 821, 822, - 823, 824, 825, 826, 827, 828, 829, 830, - 831, 832, 833, 834, 835, 837, 838, 839, - 840, 841, 842, 672, 798, 10, 798, 422, - 798, 422, 809, 812, 836, 843, 808, 790, - 844, 791, 845, 793, 846, 848, 847, 2, - 1, 849, 847, 850, 847, 5, 1, 847, - 6, 5, 9, 11, 11, 10, 852, 853, - 854, 847, 855, 856, 847, 857, 847, 422, - 422, 859, 860, 491, 472, 861, 472, 862, - 863, 864, 865, 866, 867, 868, 869, 870, - 871, 872, 546, 873, 522, 874, 875, 876, - 877, 878, 879, 880, 881, 882, 883, 884, - 885, 422, 422, 422, 427, 567, 858, 886, - 847, 887, 847, 672, 888, 422, 422, 422, - 672, 888, 672, 672, 422, 888, 422, 888, - 422, 888, 422, 672, 672, 672, 672, 672, - 888, 422, 672, 672, 672, 422, 672, 422, - 888, 422, 672, 672, 672, 672, 422, 888, - 672, 422, 672, 422, 672, 422, 672, 672, - 422, 672, 888, 422, 672, 422, 672, 422, - 672, 888, 672, 422, 888, 672, 422, 672, - 422, 888, 672, 672, 672, 672, 672, 888, - 422, 422, 672, 422, 672, 888, 672, 422, - 888, 672, 672, 888, 422, 422, 672, 422, - 672, 422, 672, 888, 889, 890, 891, 892, - 893, 894, 895, 896, 897, 898, 899, 717, - 900, 901, 902, 903, 904, 905, 906, 907, - 908, 909, 910, 911, 910, 912, 913, 914, - 915, 916, 673, 888, 917, 918, 919, 920, - 921, 922, 923, 924, 925, 926, 927, 928, - 929, 930, 931, 932, 933, 934, 935, 727, - 936, 937, 938, 694, 939, 940, 941, 942, - 943, 944, 673, 945, 946, 947, 948, 949, - 950, 951, 952, 676, 953, 673, 676, 954, - 955, 956, 957, 685, 888, 958, 959, 960, - 961, 705, 962, 963, 685, 964, 965, 966, - 967, 968, 673, 888, 969, 928, 970, 971, - 972, 685, 973, 974, 676, 673, 685, 427, - 888, 938, 673, 676, 685, 427, 685, 427, - 975, 685, 888, 427, 676, 976, 977, 676, - 978, 979, 683, 980, 981, 982, 983, 984, - 934, 985, 986, 987, 988, 989, 990, 991, - 992, 993, 994, 995, 996, 953, 997, 676, - 685, 427, 888, 998, 999, 685, 673, 888, - 427, 673, 888, 676, 1000, 733, 1001, 1002, - 1003, 1004, 1005, 1006, 1007, 1008, 673, 1009, - 1010, 1011, 1012, 1013, 1014, 673, 685, 888, - 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, - 1024, 1025, 1026, 1022, 1028, 1029, 1030, 1031, - 1015, 1027, 1015, 888, 1015, 888, 1032, 1032, - 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, - 1037, 769, 1041, 1041, 1041, 1036, 1042, 1041, - 770, 771, 1043, 1041, 769, 1041, 1041, 1036, - 1044, 1041, 770, 771, 1043, 1041, 769, 1036, - 1044, 1045, 1046, 1047, 769, 1041, 1041, 1041, - 1036, 1042, 770, 771, 1043, 1041, 769, 1041, - 1041, 1041, 1036, 1042, 770, 771, 1043, 1041, - 769, 1041, 1041, 1041, 1036, 1042, 771, 770, - 771, 1043, 1041, 769, 1049, 769, 1051, 1050, - 1052, 769, 1054, 1053, 769, 1055, 773, 1055, - 1056, 1055, 775, 1057, 1058, 1059, 1060, 1061, - 1062, 1063, 1060, 777, 775, 1057, 1065, 1064, - 778, 779, 1066, 1064, 777, 1068, 1067, 1070, - 1069, 777, 1071, 778, 1071, 779, 1071, 783, - 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1075, - 785, 783, 1072, 1080, 1079, 786, 787, 1081, - 1079, 785, 1083, 1082, 1085, 1084, 785, 1086, - 786, 1086, 787, 1086, + 787, 784, 788, 785, 789, 785, 791, 791, + 791, 791, 790, 791, 791, 791, 790, 791, + 790, 791, 791, 790, 790, 790, 790, 790, + 790, 791, 790, 790, 790, 790, 791, 791, + 791, 791, 791, 790, 790, 791, 790, 790, + 791, 790, 791, 790, 790, 791, 790, 790, + 790, 791, 791, 791, 791, 791, 791, 790, + 791, 791, 790, 791, 791, 790, 790, 790, + 790, 790, 790, 791, 791, 790, 790, 791, + 790, 791, 791, 791, 790, 793, 794, 795, + 796, 797, 798, 799, 800, 801, 802, 803, + 804, 805, 806, 807, 808, 809, 810, 811, + 812, 813, 814, 815, 816, 817, 818, 819, + 820, 821, 822, 823, 824, 790, 791, 790, + 791, 790, 791, 791, 790, 791, 791, 790, + 790, 790, 791, 790, 790, 790, 790, 790, + 790, 790, 791, 790, 790, 790, 790, 790, + 790, 790, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 790, 790, 790, + 790, 790, 790, 790, 790, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 790, 790, + 790, 790, 790, 790, 790, 790, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 790, + 791, 791, 791, 791, 791, 791, 791, 791, + 790, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 790, 791, 791, 791, + 791, 791, 791, 790, 791, 791, 791, 791, + 791, 791, 790, 790, 790, 790, 790, 790, + 790, 790, 791, 791, 791, 791, 791, 791, + 791, 791, 790, 791, 791, 791, 791, 791, + 791, 791, 791, 790, 791, 791, 791, 791, + 791, 790, 790, 790, 790, 790, 790, 790, + 790, 791, 791, 791, 791, 791, 791, 790, + 791, 791, 791, 791, 791, 791, 791, 790, + 791, 790, 791, 791, 790, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 790, 791, 791, 791, 791, 791, + 790, 791, 791, 791, 791, 791, 791, 791, + 790, 791, 791, 791, 790, 791, 791, 791, + 790, 791, 790, 825, 826, 827, 828, 829, + 830, 831, 832, 833, 834, 835, 836, 837, + 838, 839, 840, 841, 842, 843, 844, 845, + 846, 847, 848, 849, 850, 851, 852, 853, + 854, 855, 856, 857, 858, 859, 860, 797, + 861, 862, 863, 864, 865, 866, 797, 842, + 797, 790, 791, 790, 791, 791, 790, 790, + 791, 790, 790, 790, 790, 791, 790, 790, + 790, 790, 790, 791, 790, 790, 790, 790, + 790, 791, 791, 791, 791, 791, 790, 790, + 790, 791, 790, 790, 790, 791, 791, 791, + 790, 790, 790, 791, 791, 790, 790, 790, + 791, 791, 791, 790, 790, 790, 791, 791, + 791, 791, 790, 791, 791, 791, 791, 790, + 790, 790, 790, 790, 791, 791, 791, 791, + 790, 790, 791, 791, 791, 790, 790, 791, + 791, 791, 791, 790, 791, 791, 790, 791, + 791, 790, 790, 790, 791, 791, 791, 790, + 790, 790, 790, 791, 791, 791, 791, 791, + 790, 790, 790, 790, 791, 790, 791, 791, + 790, 791, 791, 790, 791, 790, 791, 791, + 791, 790, 791, 791, 790, 790, 790, 791, + 790, 790, 790, 790, 790, 790, 790, 791, + 791, 791, 791, 790, 791, 791, 791, 791, + 791, 791, 791, 790, 867, 868, 869, 870, + 871, 872, 873, 874, 875, 797, 876, 877, + 878, 879, 880, 790, 791, 790, 790, 790, + 790, 790, 791, 791, 790, 791, 791, 791, + 790, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 790, 791, 791, 791, 790, + 790, 791, 791, 791, 790, 790, 791, 790, + 790, 791, 791, 791, 791, 791, 790, 790, + 790, 790, 791, 791, 791, 791, 791, 791, + 790, 791, 791, 791, 791, 791, 790, 881, + 836, 882, 883, 884, 797, 885, 886, 842, + 797, 790, 791, 791, 791, 791, 790, 790, + 790, 791, 790, 790, 791, 791, 791, 790, + 790, 790, 791, 791, 790, 847, 790, 842, + 797, 797, 887, 790, 797, 790, 791, 842, + 888, 889, 842, 890, 891, 842, 892, 893, + 894, 895, 896, 897, 842, 898, 899, 900, + 842, 901, 902, 903, 861, 904, 905, 906, + 861, 907, 842, 797, 790, 790, 791, 791, + 790, 790, 790, 791, 791, 791, 791, 790, + 791, 791, 790, 790, 790, 790, 791, 791, + 790, 790, 791, 791, 790, 790, 790, 790, + 790, 790, 791, 791, 791, 790, 790, 790, + 791, 790, 790, 790, 791, 791, 790, 791, + 791, 791, 791, 790, 791, 791, 791, 791, + 790, 791, 791, 791, 791, 791, 791, 790, + 790, 790, 791, 791, 791, 791, 790, 908, + 909, 790, 797, 790, 791, 790, 790, 791, + 842, 910, 911, 912, 913, 892, 914, 915, + 916, 917, 918, 919, 920, 921, 922, 923, + 924, 925, 797, 790, 790, 791, 790, 791, + 791, 791, 791, 791, 791, 791, 790, 791, + 791, 791, 790, 791, 790, 790, 791, 790, + 791, 790, 790, 791, 791, 791, 791, 790, + 791, 791, 791, 790, 790, 791, 791, 791, + 791, 790, 791, 791, 790, 790, 791, 791, + 791, 791, 791, 790, 926, 927, 928, 929, + 930, 931, 932, 933, 934, 935, 936, 932, + 938, 939, 940, 941, 937, 790, 942, 943, + 842, 944, 945, 946, 947, 948, 949, 950, + 951, 952, 842, 797, 953, 954, 955, 956, + 842, 957, 958, 959, 960, 961, 962, 963, + 964, 965, 966, 967, 968, 969, 970, 971, + 842, 873, 797, 972, 790, 791, 791, 791, + 791, 791, 790, 790, 790, 791, 790, 791, + 791, 790, 791, 790, 791, 791, 790, 790, + 790, 791, 791, 791, 790, 790, 790, 791, + 791, 791, 790, 790, 790, 790, 791, 790, + 790, 791, 790, 790, 791, 791, 791, 790, + 790, 791, 790, 791, 791, 791, 790, 791, + 791, 791, 791, 791, 791, 790, 790, 790, + 791, 791, 790, 791, 791, 790, 791, 791, + 790, 791, 791, 790, 791, 791, 791, 791, + 791, 791, 791, 790, 791, 790, 791, 790, + 791, 791, 790, 791, 790, 791, 791, 790, + 791, 790, 791, 790, 973, 944, 974, 975, + 976, 977, 978, 979, 980, 981, 982, 825, + 983, 842, 984, 985, 986, 842, 987, 857, + 988, 989, 990, 991, 992, 993, 994, 995, + 842, 790, 790, 790, 791, 791, 791, 790, + 791, 791, 790, 791, 791, 790, 790, 790, + 790, 790, 791, 791, 791, 791, 790, 791, + 791, 791, 791, 791, 791, 790, 790, 790, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 790, 791, 791, 791, 791, 791, 791, + 791, 791, 790, 791, 791, 790, 790, 790, + 790, 791, 791, 791, 790, 790, 790, 791, + 790, 790, 790, 791, 791, 790, 791, 791, + 791, 790, 791, 790, 790, 790, 791, 791, + 790, 791, 791, 791, 790, 791, 791, 791, + 790, 790, 790, 790, 791, 842, 911, 996, + 997, 797, 842, 797, 790, 790, 791, 790, + 791, 842, 996, 797, 790, 842, 998, 797, + 790, 790, 791, 842, 999, 1000, 1001, 902, + 1002, 1003, 842, 1004, 1005, 1006, 797, 790, + 790, 791, 791, 791, 790, 791, 791, 790, + 791, 791, 791, 791, 790, 790, 791, 790, + 790, 791, 791, 790, 791, 790, 842, 797, + 790, 1007, 842, 1008, 790, 797, 790, 791, + 790, 791, 1009, 842, 1010, 1011, 790, 791, + 790, 790, 790, 791, 791, 791, 791, 790, + 1012, 1013, 1014, 842, 1015, 1016, 1017, 1018, + 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, + 1027, 1028, 797, 790, 791, 791, 791, 790, + 790, 790, 790, 791, 791, 790, 790, 791, + 790, 790, 790, 790, 790, 790, 790, 791, + 790, 791, 790, 790, 790, 790, 790, 790, + 791, 791, 791, 791, 791, 790, 790, 791, + 790, 790, 790, 791, 790, 790, 791, 790, + 790, 791, 790, 790, 791, 790, 790, 790, + 791, 791, 791, 790, 790, 790, 791, 791, + 791, 791, 790, 1029, 842, 1030, 842, 1031, + 1032, 1033, 1034, 797, 790, 791, 791, 791, + 791, 791, 790, 790, 790, 791, 790, 790, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 790, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 790, 791, + 791, 791, 791, 791, 790, 1035, 842, 797, + 790, 791, 1036, 842, 827, 797, 790, 791, + 1037, 790, 797, 790, 791, 842, 1038, 797, + 790, 790, 791, 1039, 790, 842, 1040, 797, + 790, 790, 791, 1042, 1041, 791, 791, 791, + 791, 1042, 1041, 791, 1042, 1041, 1042, 1042, + 791, 1042, 1041, 791, 1042, 791, 1042, 1041, + 791, 1042, 791, 1042, 791, 1041, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1041, 791, + 791, 1042, 1042, 791, 1042, 791, 1042, 1041, + 1042, 1042, 1042, 1042, 1042, 791, 1042, 791, + 1042, 791, 1042, 1041, 1042, 1042, 791, 1042, + 791, 1042, 1041, 1042, 1042, 1042, 1042, 1042, + 791, 1042, 791, 1042, 1041, 791, 791, 1042, + 791, 1042, 1041, 1042, 1042, 1042, 791, 1042, + 791, 1042, 791, 1042, 791, 1042, 1041, 1042, + 791, 1042, 791, 1042, 1041, 791, 1042, 1042, + 1042, 1042, 791, 1042, 791, 1042, 791, 1042, + 791, 1042, 791, 1042, 791, 1042, 1041, 791, + 1042, 1041, 1042, 1042, 1042, 791, 1042, 791, + 1042, 1041, 1042, 791, 1042, 791, 1042, 1041, + 791, 1042, 1042, 1042, 1042, 791, 1042, 791, + 1042, 1041, 791, 1042, 791, 1042, 791, 1042, + 1041, 1042, 1042, 791, 1042, 791, 1042, 1041, + 791, 1042, 791, 1042, 791, 1042, 791, 1041, + 1042, 1042, 1042, 791, 1042, 791, 1042, 1041, + 791, 1042, 1041, 1042, 1042, 791, 1042, 1041, + 1042, 1042, 1042, 791, 1042, 1042, 1042, 1042, + 1042, 1042, 791, 791, 1042, 791, 1042, 791, + 1042, 791, 1042, 1041, 1042, 791, 1042, 791, + 1042, 1041, 791, 1042, 1041, 1042, 791, 1042, + 1041, 1042, 791, 1042, 1041, 791, 791, 1042, + 1041, 791, 1042, 791, 1042, 791, 1042, 791, + 1042, 791, 1042, 791, 1041, 1042, 1042, 791, + 1042, 1042, 1042, 1042, 791, 791, 1042, 1042, + 1042, 1042, 1042, 791, 1042, 1042, 1042, 1042, + 1042, 1041, 791, 1042, 1042, 791, 1042, 791, + 1041, 1042, 1042, 791, 1042, 1041, 791, 791, + 1042, 791, 1041, 1042, 1042, 1041, 791, 1042, + 791, 1041, 1042, 1041, 791, 1042, 791, 1042, + 791, 1041, 1042, 1042, 1041, 791, 1042, 791, + 1042, 791, 1042, 1041, 1042, 791, 1042, 791, + 1042, 1041, 791, 1042, 1041, 791, 791, 1042, + 1041, 1042, 791, 1041, 1042, 1041, 791, 1042, + 791, 1042, 791, 1041, 1042, 1041, 791, 791, + 1042, 1041, 1042, 791, 1042, 791, 1042, 1041, + 791, 1042, 791, 1041, 1042, 1041, 791, 791, + 1042, 791, 1041, 1042, 1041, 791, 791, 1042, + 1041, 1042, 791, 1042, 1041, 1042, 791, 1042, + 1041, 1042, 791, 1042, 791, 1042, 791, 1041, + 1042, 1041, 791, 791, 1042, 1041, 1042, 791, + 1042, 791, 1042, 1041, 791, 1042, 1041, 1042, + 1042, 791, 1042, 791, 1042, 1041, 1041, 791, + 1041, 791, 1042, 1042, 791, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1041, 791, 1042, 1042, + 1042, 791, 1041, 1042, 1042, 1042, 791, 1042, + 791, 1042, 791, 1042, 791, 1042, 791, 1042, + 1041, 791, 791, 1042, 1041, 1042, 791, 1042, + 1041, 791, 791, 1042, 791, 791, 791, 1042, + 791, 1042, 791, 1042, 791, 1042, 791, 1041, + 791, 1042, 791, 1042, 791, 1041, 1042, 1041, + 791, 1042, 791, 1041, 1042, 791, 1042, 1042, + 1042, 1041, 791, 1042, 791, 791, 1042, 791, + 1041, 1042, 1042, 1041, 791, 1042, 1042, 1042, + 1042, 791, 1042, 791, 1041, 1042, 1042, 1042, + 791, 1042, 1041, 1042, 791, 1042, 791, 1042, + 791, 1042, 791, 1042, 1041, 1042, 1042, 791, + 1042, 1041, 791, 1042, 791, 1042, 791, 1041, + 1042, 1042, 1041, 791, 1042, 791, 1041, 1042, + 1041, 791, 1042, 1041, 791, 1042, 791, 1042, + 1041, 1042, 1042, 1042, 1041, 791, 791, 791, + 1042, 1041, 791, 1042, 791, 1041, 1042, 1041, + 791, 1042, 791, 1042, 791, 1041, 1042, 1042, + 1042, 1041, 791, 1042, 791, 1041, 1042, 1042, + 1042, 1042, 1041, 791, 1042, 791, 1042, 1041, + 791, 791, 1042, 791, 1042, 1041, 1042, 791, + 1042, 791, 1041, 1042, 1042, 1041, 791, 1042, + 791, 1042, 1041, 791, 1042, 1042, 1042, 791, + 1042, 791, 1041, 791, 1042, 1041, 1042, 791, + 791, 1042, 791, 1042, 791, 1041, 1042, 1042, + 1042, 1042, 1041, 791, 1042, 791, 1042, 791, + 1042, 791, 1042, 791, 1042, 1041, 1042, 1042, + 1042, 791, 1042, 791, 1042, 791, 1042, 791, + 1041, 1042, 1042, 791, 791, 1042, 1041, 1042, + 791, 1042, 1042, 1041, 791, 1042, 791, 1042, + 1041, 791, 791, 1042, 1042, 1042, 1042, 791, + 1042, 791, 1042, 791, 1041, 1042, 1042, 791, + 1041, 1042, 1041, 791, 1042, 791, 1041, 1042, + 1041, 791, 1042, 791, 1041, 1042, 791, 1042, + 1042, 1041, 791, 1042, 1042, 791, 1041, 1042, + 1041, 791, 1042, 791, 1042, 1041, 1042, 791, + 1042, 791, 1041, 1042, 1041, 791, 1042, 791, + 1042, 791, 1042, 791, 1042, 791, 1042, 1041, + 1043, 1041, 1044, 1045, 1046, 1047, 1048, 1049, + 1050, 1051, 1052, 1053, 1054, 1046, 1055, 1056, + 1057, 1058, 1059, 1046, 1060, 1061, 1062, 1063, + 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, + 1072, 1073, 1074, 1046, 1075, 1043, 1055, 1043, + 1076, 1043, 1041, 1042, 1042, 1042, 1042, 791, + 1041, 1042, 1042, 1041, 791, 1042, 1041, 791, + 791, 1042, 1041, 791, 1042, 791, 1041, 1042, + 1041, 791, 791, 1042, 791, 1041, 1042, 1042, + 1041, 791, 1042, 1042, 1042, 1041, 791, 1042, + 791, 1042, 1042, 1041, 791, 791, 1042, 791, + 1041, 1042, 1041, 791, 1042, 1041, 791, 791, + 1042, 791, 1042, 1041, 791, 1042, 791, 791, + 1042, 791, 1042, 791, 1041, 1042, 1042, 1041, + 791, 1042, 1042, 791, 1042, 1041, 791, 1042, + 791, 1042, 1041, 791, 1042, 791, 1041, 791, + 1042, 1042, 1042, 791, 1042, 1041, 1042, 791, + 1042, 1041, 791, 1042, 1041, 1042, 791, 1042, + 1041, 791, 1042, 1041, 791, 1042, 791, 1042, + 1041, 791, 1042, 1041, 791, 1042, 1041, 1077, + 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, + 1086, 1087, 1088, 1048, 1089, 1090, 1091, 1092, + 1093, 1090, 1094, 1095, 1096, 1097, 1098, 1099, + 1100, 1101, 1102, 1043, 1041, 1042, 791, 1042, + 1041, 1042, 791, 1042, 1041, 1042, 791, 1042, + 1041, 1042, 791, 1042, 1041, 791, 1042, 791, + 1042, 1041, 1042, 791, 1042, 1041, 1042, 791, + 791, 791, 1042, 1041, 1042, 791, 1042, 1041, + 1042, 1042, 1042, 1042, 791, 1042, 791, 1041, + 1042, 1041, 791, 791, 1042, 791, 1042, 1041, + 1042, 791, 1042, 1041, 791, 1042, 1041, 1042, + 1042, 791, 1042, 1041, 791, 1042, 1041, 1042, + 791, 1042, 1041, 791, 1042, 1041, 791, 1042, + 1041, 791, 1042, 1041, 1042, 1041, 791, 791, + 1042, 1041, 1042, 791, 1042, 1041, 791, 1042, + 791, 1041, 1042, 1041, 791, 1046, 1103, 1043, + 1046, 1104, 1046, 1105, 1055, 1043, 1041, 1042, + 1041, 791, 1042, 1041, 791, 1046, 1104, 1055, + 1043, 1041, 1046, 1106, 1043, 1055, 1043, 1041, + 1042, 1041, 791, 1046, 1107, 1064, 1108, 1090, + 1109, 1102, 1046, 1110, 1111, 1112, 1043, 1055, + 1043, 1041, 1042, 1041, 791, 1042, 791, 1042, + 1041, 791, 1042, 791, 1042, 791, 1041, 1042, + 1042, 1041, 791, 1042, 791, 1042, 1041, 791, + 1042, 1041, 1046, 1055, 797, 1041, 1113, 1046, + 1114, 1055, 1043, 1041, 797, 1042, 1041, 791, + 1042, 1041, 791, 1115, 1046, 1116, 1117, 1043, + 1041, 791, 1042, 1041, 1042, 1042, 1041, 791, + 791, 1042, 791, 1042, 1041, 1046, 1118, 1119, + 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, + 1128, 1043, 1055, 1043, 1041, 1042, 791, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 791, 1042, + 791, 1042, 1042, 1042, 1042, 1042, 1042, 1041, + 791, 1042, 1042, 791, 1042, 791, 1041, 1042, + 791, 1042, 1042, 1042, 791, 1042, 1042, 791, + 1042, 1042, 791, 1042, 1042, 791, 1042, 1042, + 1041, 791, 1046, 1129, 1046, 1105, 1130, 1131, + 1132, 1043, 1055, 1043, 1041, 1042, 1041, 791, + 1042, 1042, 1042, 791, 1042, 1042, 1042, 791, + 1042, 791, 1042, 1041, 791, 791, 791, 791, + 1042, 1042, 791, 791, 791, 791, 791, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 791, 1042, + 791, 1042, 791, 1041, 1042, 1042, 1042, 791, + 1042, 791, 1042, 1041, 1055, 797, 1133, 1046, + 1055, 797, 1042, 1041, 791, 1134, 1046, 1135, + 1055, 797, 1042, 1041, 791, 1042, 791, 1136, + 1055, 1043, 1041, 797, 1042, 1041, 791, 1046, + 1137, 1043, 1055, 1043, 1041, 1042, 1041, 791, + 1138, 1139, 1140, 1138, 1141, 1142, 1143, 1144, + 1146, 1147, 1148, 1149, 1150, 672, 672, 672, + 1151, 1152, 1153, 1154, 672, 1157, 1158, 1160, + 1161, 1162, 1156, 1163, 1164, 1165, 1166, 1167, + 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, + 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1184, + 1185, 1186, 1187, 1188, 1189, 672, 1145, 10, + 1145, 422, 1145, 422, 1156, 1159, 1183, 1190, + 1155, 1138, 1138, 1191, 1139, 1192, 1194, 1193, + 2, 1, 1195, 1193, 1196, 1193, 5, 1, + 1193, 6, 5, 9, 11, 11, 10, 1198, + 1199, 1200, 1193, 1201, 1202, 1193, 1203, 1193, + 422, 422, 1205, 1206, 491, 472, 1207, 472, + 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, + 1216, 1217, 1218, 546, 1219, 522, 1220, 1221, + 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, + 1230, 1231, 422, 422, 422, 427, 567, 1204, + 1232, 1193, 1233, 1193, 672, 1234, 422, 422, + 422, 672, 1234, 672, 672, 422, 1234, 422, + 1234, 422, 1234, 422, 672, 672, 672, 672, + 672, 1234, 422, 672, 672, 672, 422, 672, + 422, 1234, 422, 672, 672, 672, 672, 422, + 1234, 672, 422, 672, 422, 672, 422, 672, + 672, 422, 672, 1234, 422, 672, 422, 672, + 422, 672, 1234, 672, 422, 1234, 672, 422, + 672, 422, 1234, 672, 672, 672, 672, 672, + 1234, 422, 422, 672, 422, 672, 1234, 672, + 422, 1234, 672, 672, 1234, 422, 422, 672, + 422, 672, 422, 672, 1234, 1235, 1236, 1237, + 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, + 717, 1246, 1247, 1248, 1249, 1250, 1251, 1252, + 1253, 1254, 1255, 1256, 1257, 1256, 1258, 1259, + 1260, 1261, 1262, 673, 1234, 1263, 1264, 1265, + 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, + 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, + 727, 1282, 1283, 1284, 694, 1285, 1286, 1287, + 1288, 1289, 1290, 673, 1291, 1292, 1293, 1294, + 1295, 1296, 1297, 1298, 676, 1299, 673, 676, + 1300, 1301, 1302, 1303, 685, 1234, 1304, 1305, + 1306, 1307, 705, 1308, 1309, 685, 1310, 1311, + 1312, 1313, 1314, 673, 1234, 1315, 1274, 1316, + 1317, 1318, 685, 1319, 1320, 676, 673, 685, + 427, 1234, 1284, 673, 676, 685, 427, 685, + 427, 1321, 685, 1234, 427, 676, 1322, 1323, + 676, 1324, 1325, 683, 1326, 1327, 1328, 1329, + 1330, 1280, 1331, 1332, 1333, 1334, 1335, 1336, + 1337, 1338, 1339, 1340, 1341, 1342, 1299, 1343, + 676, 685, 427, 1234, 1344, 1345, 685, 673, + 1234, 427, 673, 1234, 676, 1346, 733, 1347, + 1348, 1349, 1350, 1351, 1352, 1353, 1354, 673, + 1355, 1356, 1357, 1358, 1359, 1360, 673, 685, + 1234, 1362, 1363, 1364, 1365, 1366, 1367, 1368, + 1369, 1370, 1371, 1372, 1368, 1374, 1375, 1376, + 1377, 1361, 1373, 1361, 1234, 1361, 1234, 1378, + 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, + 1386, 1383, 769, 1387, 1387, 1387, 1382, 1388, + 1387, 770, 771, 1389, 1387, 769, 1387, 1387, + 1382, 1390, 1387, 770, 771, 1389, 1387, 769, + 1382, 1390, 1391, 1392, 1393, 769, 1387, 1387, + 1387, 1382, 1388, 770, 771, 1389, 1387, 769, + 1387, 1387, 1387, 1382, 1388, 770, 771, 1389, + 1387, 769, 1387, 1387, 1387, 1382, 1388, 771, + 770, 771, 1389, 1387, 769, 1395, 769, 1397, + 1396, 1398, 769, 1400, 1399, 769, 1401, 773, + 1401, 1402, 1401, 775, 1403, 1404, 1405, 1406, + 1407, 1408, 1409, 1406, 777, 775, 1403, 1411, + 1410, 778, 779, 1412, 1410, 777, 1414, 1413, + 1416, 1415, 777, 1417, 778, 1417, 779, 1417, + 783, 1418, 1419, 1420, 1421, 1422, 1423, 1424, + 1421, 785, 783, 1418, 1426, 1425, 786, 787, + 1427, 1425, 785, 1429, 1428, 1431, 1430, 785, + 1432, 786, 1432, 787, 1432, 1435, 1436, 1438, + 1439, 1440, 1434, 1441, 1442, 1443, 1444, 1445, + 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, + 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1462, + 1463, 1464, 1465, 1466, 1467, 791, 791, 1433, + 1434, 1437, 1461, 1468, 1433, 1042, 791, 791, + 1470, 1471, 861, 842, 1472, 842, 1473, 1474, + 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, + 1483, 916, 1484, 892, 1485, 1486, 1487, 1488, + 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, + 791, 791, 791, 797, 937, 1469, 1042, 1497, + 791, 791, 791, 1042, 1497, 1042, 1042, 791, + 1497, 791, 1497, 791, 1497, 791, 1042, 1042, + 1042, 1042, 1042, 1497, 791, 1042, 1042, 1042, + 791, 1042, 791, 1497, 791, 1042, 1042, 1042, + 1042, 791, 1497, 1042, 791, 1042, 791, 1042, + 791, 1042, 1042, 791, 1042, 1497, 791, 1042, + 791, 1042, 791, 1042, 1497, 1042, 791, 1497, + 1042, 791, 1042, 791, 1497, 1042, 1042, 1042, + 1042, 1042, 1497, 791, 791, 1042, 791, 1042, + 1497, 1042, 791, 1497, 1042, 1042, 1497, 791, + 791, 1042, 791, 1042, 791, 1042, 1497, 1498, + 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, + 1507, 1508, 1087, 1509, 1510, 1511, 1512, 1513, + 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1519, + 1521, 1522, 1523, 1524, 1525, 1043, 1497, 1526, + 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, + 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, + 1543, 1544, 1097, 1545, 1546, 1547, 1064, 1548, + 1549, 1550, 1551, 1552, 1553, 1043, 1554, 1555, + 1556, 1557, 1558, 1559, 1560, 1561, 1046, 1562, + 1043, 1046, 1563, 1564, 1565, 1566, 1055, 1497, + 1567, 1568, 1569, 1570, 1075, 1571, 1572, 1055, + 1573, 1574, 1575, 1576, 1577, 1043, 1497, 1578, + 1537, 1579, 1580, 1581, 1055, 1582, 1583, 1046, + 1043, 1055, 797, 1497, 1547, 1043, 1046, 1055, + 797, 1055, 797, 1584, 1055, 1497, 797, 1046, + 1585, 1586, 1046, 1587, 1588, 1053, 1589, 1590, + 1591, 1592, 1593, 1543, 1594, 1595, 1596, 1597, + 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, + 1562, 1606, 1046, 1055, 797, 1497, 1607, 1608, + 1055, 1043, 1497, 797, 1043, 1497, 1046, 1609, + 1103, 1610, 1611, 1612, 1613, 1614, 1615, 1616, + 1617, 1043, 1618, 1619, 1620, 1621, 1622, 1623, + 1043, 1055, 1497, 1625, 1626, 1627, 1628, 1629, + 1630, 1631, 1632, 1633, 1634, 1635, 1631, 1637, + 1638, 1639, 1640, 1624, 1636, 1624, 1497, 1624, + 1497, } -var _zcltok_trans_targs []int16 = []int16{ - 949, 1, 949, 949, 949, 3, 4, 958, - 949, 5, 959, 6, 7, 9, 10, 287, +var _hcltok_trans_targs []int16 = []int16{ + 1462, 1, 1462, 1462, 1462, 3, 4, 1470, + 1462, 5, 1471, 6, 7, 9, 10, 287, 13, 14, 15, 16, 17, 288, 289, 20, 290, 22, 23, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 329, 349, 354, - 128, 129, 130, 357, 152, 372, 376, 949, + 128, 129, 130, 357, 152, 372, 376, 1462, 11, 12, 18, 19, 21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 65, 106, 121, 132, 155, 171, 284, 34, 35, @@ -2118,7 +3235,7 @@ var _zcltok_trans_targs []int16 = []int16{ 382, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 406, 407, - 408, 409, 411, 413, 415, 949, 963, 438, + 408, 409, 411, 413, 415, 1462, 1475, 438, 439, 440, 441, 418, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, @@ -2149,8 +3266,8 @@ var _zcltok_trans_targs []int16 = []int16{ 653, 654, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 674, 675, 676, 677, 678, - 679, 681, 683, 685, 687, 689, 690, 949, - 949, 691, 828, 829, 760, 830, 831, 832, + 679, 681, 683, 685, 687, 689, 690, 1462, + 1462, 691, 828, 829, 760, 830, 831, 832, 833, 834, 835, 789, 836, 725, 837, 838, 839, 840, 841, 842, 843, 844, 745, 845, 846, 847, 848, 849, 850, 851, 852, 853, @@ -2162,55 +3279,125 @@ var _zcltok_trans_targs []int16 = []int16{ 897, 899, 900, 901, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 915, 916, 917, 918, 921, 923, 924, 926, 928, - 1001, 1002, 930, 931, 1001, 933, 1015, 1015, - 1015, 1016, 937, 938, 1017, 1018, 1022, 1022, - 1022, 1023, 944, 945, 1024, 1025, 950, 949, - 951, 952, 953, 949, 954, 955, 949, 956, - 957, 960, 961, 962, 949, 964, 949, 965, - 949, 966, 967, 968, 969, 970, 971, 972, - 973, 974, 975, 976, 977, 978, 979, 980, - 981, 982, 983, 984, 985, 986, 987, 988, - 989, 990, 991, 992, 993, 994, 995, 996, - 997, 998, 999, 1000, 949, 949, 949, 949, - 949, 949, 2, 949, 949, 8, 949, 949, - 949, 949, 949, 416, 417, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, - 432, 434, 436, 437, 469, 510, 525, 532, - 534, 536, 556, 559, 575, 688, 949, 949, - 949, 692, 693, 694, 695, 696, 697, 698, - 699, 700, 701, 702, 704, 705, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, - 716, 717, 718, 719, 720, 721, 722, 723, - 724, 726, 727, 728, 729, 730, 731, 732, - 733, 734, 735, 736, 737, 738, 739, 740, - 742, 743, 744, 746, 747, 748, 749, 750, - 751, 752, 753, 754, 755, 756, 757, 758, - 759, 761, 762, 763, 764, 765, 766, 767, - 768, 769, 771, 772, 773, 774, 775, 776, - 777, 778, 779, 780, 781, 782, 783, 784, - 785, 786, 787, 788, 790, 791, 792, 793, - 794, 795, 796, 797, 798, 799, 800, 801, - 802, 803, 804, 805, 806, 807, 808, 809, - 810, 812, 813, 814, 815, 816, 817, 818, - 819, 820, 821, 822, 823, 824, 825, 826, - 827, 856, 881, 884, 885, 887, 894, 895, - 898, 902, 914, 919, 920, 922, 925, 927, - 1001, 1001, 1008, 1010, 1003, 1001, 1012, 1013, - 1014, 1001, 929, 932, 1004, 1005, 1006, 1007, - 1001, 1009, 1001, 1001, 1011, 1001, 1001, 1001, - 934, 935, 940, 941, 1015, 1019, 1020, 1021, - 1015, 936, 939, 1015, 1015, 1015, 1015, 1015, - 942, 947, 948, 1022, 1026, 1027, 1028, 1022, - 943, 946, 1022, 1022, 1022, 1022, 1022, + 1513, 1514, 930, 931, 1513, 933, 1527, 1527, + 1527, 1528, 937, 938, 1529, 1530, 1534, 1534, + 1534, 1535, 944, 945, 1536, 1537, 1541, 1542, + 1541, 971, 972, 973, 974, 951, 975, 976, + 977, 978, 979, 980, 981, 982, 983, 984, + 985, 986, 987, 988, 989, 990, 991, 992, + 993, 994, 995, 996, 997, 998, 999, 1000, + 1001, 1003, 1004, 1005, 1006, 1007, 1008, 1009, + 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, + 1018, 1019, 953, 1020, 1021, 1022, 1023, 1024, + 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, + 1033, 1034, 1035, 1036, 1037, 952, 1038, 1039, + 1040, 1041, 1042, 1044, 1045, 1046, 1047, 1048, + 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, + 1057, 1059, 1060, 1061, 1062, 1063, 1064, 1068, + 1070, 1071, 1072, 1073, 968, 1074, 1075, 1076, + 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, + 1085, 1086, 1087, 1088, 1090, 1091, 1093, 1094, + 1095, 1096, 1097, 1098, 966, 1099, 1100, 1101, + 1102, 1103, 1104, 1105, 1106, 1107, 1109, 1141, + 1165, 1168, 1169, 1171, 1180, 1181, 1184, 1188, + 1206, 1066, 1213, 1215, 1217, 1219, 1110, 1111, + 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, + 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, + 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, + 1136, 1137, 1138, 1139, 1140, 1142, 1143, 1144, + 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, + 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, + 1161, 1162, 1163, 1164, 1166, 1167, 1170, 1172, + 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1182, + 1183, 1185, 1186, 1187, 1189, 1190, 1191, 1192, + 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, + 1201, 1202, 1203, 1204, 1205, 1207, 1208, 1209, + 1210, 1211, 1212, 1214, 1216, 1218, 1220, 1222, + 1223, 1541, 1541, 1224, 1361, 1362, 1293, 1363, + 1364, 1365, 1366, 1367, 1368, 1322, 1369, 1258, + 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, + 1278, 1378, 1379, 1380, 1381, 1382, 1383, 1384, + 1385, 1386, 1387, 1303, 1388, 1390, 1391, 1392, + 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1236, + 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, + 1408, 1274, 1409, 1410, 1411, 1412, 1413, 1344, + 1415, 1416, 1419, 1421, 1422, 1423, 1424, 1425, + 1426, 1429, 1430, 1432, 1433, 1434, 1436, 1437, + 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, + 1446, 1448, 1449, 1450, 1451, 1454, 1456, 1457, + 1459, 1461, 1463, 1462, 1464, 1465, 1462, 1466, + 1467, 1462, 1468, 1469, 1472, 1473, 1474, 1462, + 1476, 1462, 1477, 1462, 1478, 1479, 1480, 1481, + 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, + 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, + 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, + 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1462, + 1462, 1462, 1462, 1462, 2, 1462, 1462, 8, + 1462, 1462, 1462, 1462, 1462, 416, 417, 421, + 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 434, 436, 437, 469, 510, + 525, 532, 534, 536, 556, 559, 575, 688, + 1462, 1462, 1462, 692, 693, 694, 695, 696, + 697, 698, 699, 700, 701, 702, 704, 705, + 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, + 722, 723, 724, 726, 727, 728, 729, 730, + 731, 732, 733, 734, 735, 736, 737, 738, + 739, 740, 742, 743, 744, 746, 747, 748, + 749, 750, 751, 752, 753, 754, 755, 756, + 757, 758, 759, 761, 762, 763, 764, 765, + 766, 767, 768, 769, 771, 772, 773, 774, + 775, 776, 777, 778, 779, 780, 781, 782, + 783, 784, 785, 786, 787, 788, 790, 791, + 792, 793, 794, 795, 796, 797, 798, 799, + 800, 801, 802, 803, 804, 805, 806, 807, + 808, 809, 810, 812, 813, 814, 815, 816, + 817, 818, 819, 820, 821, 822, 823, 824, + 825, 826, 827, 856, 881, 884, 885, 887, + 894, 895, 898, 902, 914, 919, 920, 922, + 925, 927, 1513, 1513, 1520, 1522, 1515, 1513, + 1524, 1525, 1526, 1513, 929, 932, 1516, 1517, + 1518, 1519, 1513, 1521, 1513, 1513, 1523, 1513, + 1513, 1513, 934, 935, 940, 941, 1527, 1531, + 1532, 1533, 1527, 936, 939, 1527, 1527, 1527, + 1527, 1527, 942, 947, 948, 1534, 1538, 1539, + 1540, 1534, 943, 946, 1534, 1534, 1534, 1534, + 1534, 1541, 1543, 1544, 1545, 1546, 1547, 1548, + 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, + 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, + 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, + 1573, 1574, 1575, 1576, 1577, 1541, 949, 950, + 954, 955, 956, 957, 958, 959, 960, 961, + 962, 963, 964, 965, 967, 969, 970, 1002, + 1043, 1058, 1065, 1067, 1069, 1089, 1092, 1108, + 1221, 1541, 1225, 1226, 1227, 1228, 1229, 1230, + 1231, 1232, 1233, 1234, 1235, 1237, 1238, 1239, + 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, + 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, + 1256, 1257, 1259, 1260, 1261, 1262, 1263, 1264, + 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, + 1273, 1275, 1276, 1277, 1279, 1280, 1281, 1282, + 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, + 1291, 1292, 1294, 1295, 1296, 1297, 1298, 1299, + 1300, 1301, 1302, 1304, 1305, 1306, 1307, 1308, + 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, + 1317, 1318, 1319, 1320, 1321, 1323, 1324, 1325, + 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, + 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, + 1342, 1343, 1345, 1346, 1347, 1348, 1349, 1350, + 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, + 1359, 1360, 1389, 1414, 1417, 1418, 1420, 1427, + 1428, 1431, 1435, 1447, 1452, 1453, 1455, 1458, + 1460, } -var _zcltok_trans_actions []byte = []byte{ - 131, 0, 71, 127, 87, 0, 0, 151, - 123, 0, 5, 0, 0, 0, 0, 0, +var _hcltok_trans_actions []byte = []byte{ + 143, 0, 85, 139, 101, 0, 0, 169, + 135, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 101, + 0, 0, 0, 0, 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2257,7 +3444,7 @@ var _zcltok_trans_actions []byte = []byte{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 125, 148, 0, + 0, 0, 0, 0, 0, 137, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2288,34 +3475,7 @@ var _zcltok_trans_actions []byte = []byte{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 129, - 105, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 27, 5, 0, 0, 29, 0, 49, 35, - 47, 136, 0, 0, 0, 0, 69, 55, - 67, 142, 0, 0, 0, 0, 0, 73, - 0, 0, 0, 99, 160, 0, 91, 5, - 154, 5, 0, 0, 93, 0, 95, 0, - 103, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 5, - 5, 5, 157, 157, 157, 157, 157, 157, - 5, 5, 157, 5, 117, 121, 107, 115, - 77, 83, 0, 113, 109, 0, 81, 75, - 89, 79, 111, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 85, 97, + 0, 0, 0, 0, 0, 0, 0, 141, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2328,22 +3488,119 @@ var _zcltok_trans_actions []byte = []byte{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27, 5, 0, 0, 29, 0, 49, 35, + 47, 148, 0, 0, 0, 0, 69, 55, + 67, 154, 0, 0, 0, 0, 79, 160, + 83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 13, 11, 0, 0, 5, 15, 0, 5, - 5, 21, 0, 0, 0, 5, 5, 5, - 23, 0, 17, 7, 0, 19, 9, 25, - 0, 0, 0, 0, 37, 0, 139, 139, - 43, 0, 0, 39, 31, 41, 33, 45, - 0, 0, 0, 57, 0, 145, 145, 63, - 0, 0, 59, 51, 61, 53, 65, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 81, 73, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 87, 0, 0, 113, 178, + 0, 105, 5, 172, 5, 0, 0, 107, + 0, 109, 0, 117, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 5, 5, 175, 175, 175, + 175, 175, 175, 5, 5, 175, 5, 121, + 133, 129, 91, 97, 0, 127, 123, 0, + 95, 89, 103, 93, 125, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 99, 111, 131, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 13, 11, 0, 0, 5, 15, + 0, 5, 5, 21, 0, 0, 0, 5, + 5, 5, 23, 0, 17, 7, 0, 19, + 9, 25, 0, 0, 0, 0, 37, 0, + 151, 151, 43, 0, 0, 39, 31, 41, + 33, 45, 0, 0, 0, 57, 0, 157, + 157, 63, 0, 0, 59, 51, 61, 53, + 65, 71, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 5, 5, 5, 163, 163, 163, 163, 163, + 163, 5, 5, 163, 5, 75, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 77, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, } -var _zcltok_to_state_actions []byte = []byte{ +var _hcltok_to_state_actions []byte = []byte{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2462,7 +3719,71 @@ var _zcltok_to_state_actions []byte = []byte{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2470,12 +3791,17 @@ var _zcltok_to_state_actions []byte = []byte{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 133, - 0, 0, 0, 0, 0, 0, 133, 0, - 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 145, + 0, 0, 0, 0, 0, 0, 145, 0, + 0, 0, 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, } -var _zcltok_from_state_actions []byte = []byte{ +var _hcltok_from_state_actions []byte = []byte{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2594,7 +3920,71 @@ var _zcltok_from_state_actions []byte = []byte{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2604,10 +3994,15 @@ var _zcltok_from_state_actions []byte = []byte{ 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, } -var _zcltok_eof_trans []int16 = []int16{ +var _hcltok_eof_trans []int16 = []int16{ 0, 1, 4, 1, 1, 9, 9, 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, @@ -2726,29 +4121,99 @@ var _zcltok_eof_trans []int16 = []int16{ 672, 672, 672, 672, 672, 672, 672, 672, 672, 769, 769, 769, 769, 773, 773, 775, 777, 775, 775, 777, 0, 0, 783, 785, - 783, 783, 785, 0, 0, 0, 845, 846, - 847, 848, 846, 848, 848, 848, 852, 853, - 848, 848, 848, 859, 848, 848, 889, 889, - 889, 889, 889, 889, 889, 889, 889, 889, - 889, 889, 889, 889, 889, 889, 889, 889, - 889, 889, 889, 889, 889, 889, 889, 889, - 889, 889, 889, 889, 889, 889, 889, 889, - 889, 0, 1042, 1042, 1042, 1042, 1042, 1042, - 1049, 1051, 1049, 1054, 1056, 1056, 1056, 0, - 1065, 1068, 1070, 1072, 1072, 1072, 0, 1080, - 1083, 1085, 1087, 1087, 1087, + 783, 783, 785, 0, 0, 791, 791, 793, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 791, 791, 791, 791, 791, 791, 791, 791, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, + 1042, 1042, 1042, 1042, 1042, 1042, 0, 1192, + 1193, 1194, 1193, 1194, 1194, 1194, 1198, 1199, + 1194, 1194, 1194, 1205, 1194, 1194, 1235, 1235, + 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, + 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, + 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, + 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, + 1235, 0, 1388, 1388, 1388, 1388, 1388, 1388, + 1395, 1397, 1395, 1400, 1402, 1402, 1402, 0, + 1411, 1414, 1416, 1418, 1418, 1418, 0, 1426, + 1429, 1431, 1433, 1433, 1433, 0, 1470, 1498, + 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, + 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, + 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, + 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, + 1498, 1498, } -const zcltok_start int = 949 -const zcltok_first_final int = 949 -const zcltok_error int = 0 +const hcltok_start int = 1462 +const hcltok_first_final int = 1462 +const hcltok_error int = 0 -const zcltok_en_stringTemplate int = 1001 -const zcltok_en_heredocTemplate int = 1015 -const zcltok_en_bareTemplate int = 1022 -const zcltok_en_main int = 949 +const hcltok_en_stringTemplate int = 1513 +const hcltok_en_heredocTemplate int = 1527 +const hcltok_en_bareTemplate int = 1534 +const hcltok_en_identOnly int = 1541 +const hcltok_en_main int = 1462 -// line 15 "scan_tokens.rl" +// line 16 "scan_tokens.rl" func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []Token { f := &tokenAccum{ @@ -2757,7 +4222,7 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To Pos: start, } - // line 272 "scan_tokens.rl" + // line 276 "scan_tokens.rl" // Ragel state p := 0 // "Pointer" into data @@ -2772,9 +4237,11 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To var cs int // current state switch mode { case scanNormal: - cs = zcltok_en_main + cs = hcltok_en_main case scanTemplate: - cs = zcltok_en_bareTemplate + cs = hcltok_en_bareTemplate + case scanIdentOnly: + cs = hcltok_en_identOnly default: panic("invalid scanMode") } @@ -2783,7 +4250,7 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To var retBraces []int // stack of brace levels that cause us to use fret var heredocs []heredocInProgress // stack of heredocs we're currently processing - // line 305 "scan_tokens.rl" + // line 311 "scan_tokens.rl" // Make Go compiler happy _ = ts @@ -2803,7 +4270,7 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To f.emitToken(TokenType(b[0]), ts, te) } - // line 2816 "scan_tokens.go" + // line 4282 "scan_tokens.go" { top = 0 ts = 0 @@ -2811,7 +4278,7 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To act = 0 } - // line 2824 "scan_tokens.go" + // line 4290 "scan_tokens.go" { var _klen int var _trans int @@ -2825,25 +4292,25 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To goto _out } _resume: - _acts = int(_zcltok_from_state_actions[cs]) - _nacts = uint(_zcltok_actions[_acts]) + _acts = int(_hcltok_from_state_actions[cs]) + _nacts = uint(_hcltok_actions[_acts]) _acts++ for ; _nacts > 0; _nacts-- { _acts++ - switch _zcltok_actions[_acts-1] { + switch _hcltok_actions[_acts-1] { case 2: // line 1 "NONE" ts = p - // line 2848 "scan_tokens.go" + // line 4314 "scan_tokens.go" } } - _keys = int(_zcltok_key_offsets[cs]) - _trans = int(_zcltok_index_offsets[cs]) + _keys = int(_hcltok_key_offsets[cs]) + _trans = int(_hcltok_index_offsets[cs]) - _klen = int(_zcltok_single_lengths[cs]) + _klen = int(_hcltok_single_lengths[cs]) if _klen > 0 { _lower := int(_keys) var _mid int @@ -2855,9 +4322,9 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To _mid = _lower + ((_upper - _lower) >> 1) switch { - case data[p] < _zcltok_trans_keys[_mid]: + case data[p] < _hcltok_trans_keys[_mid]: _upper = _mid - 1 - case data[p] > _zcltok_trans_keys[_mid]: + case data[p] > _hcltok_trans_keys[_mid]: _lower = _mid + 1 default: _trans += int(_mid - int(_keys)) @@ -2868,7 +4335,7 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To _trans += _klen } - _klen = int(_zcltok_range_lengths[cs]) + _klen = int(_hcltok_range_lengths[cs]) if _klen > 0 { _lower := int(_keys) var _mid int @@ -2880,9 +4347,9 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To _mid = _lower + (((_upper - _lower) >> 1) & ^1) switch { - case data[p] < _zcltok_trans_keys[_mid]: + case data[p] < _hcltok_trans_keys[_mid]: _upper = _mid - 2 - case data[p] > _zcltok_trans_keys[_mid+1]: + case data[p] > _hcltok_trans_keys[_mid+1]: _lower = _mid + 2 default: _trans += int((_mid - int(_keys)) >> 1) @@ -2893,27 +4360,27 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To } _match: - _trans = int(_zcltok_indicies[_trans]) + _trans = int(_hcltok_indicies[_trans]) _eof_trans: - cs = int(_zcltok_trans_targs[_trans]) + cs = int(_hcltok_trans_targs[_trans]) - if _zcltok_trans_actions[_trans] == 0 { + if _hcltok_trans_actions[_trans] == 0 { goto _again } - _acts = int(_zcltok_trans_actions[_trans]) - _nacts = uint(_zcltok_actions[_acts]) + _acts = int(_hcltok_trans_actions[_trans]) + _nacts = uint(_hcltok_actions[_acts]) _acts++ for ; _nacts > 0; _nacts-- { _acts++ - switch _zcltok_actions[_acts-1] { + switch _hcltok_actions[_acts-1] { case 3: // line 1 "NONE" te = p + 1 case 4: - // line 138 "scan_tokens.rl" + // line 137 "scan_tokens.rl" te = p + 1 { @@ -2927,12 +4394,12 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 949 + cs = 1462 goto _again } } case 5: - // line 148 "scan_tokens.rl" + // line 147 "scan_tokens.rl" te = p + 1 { @@ -2946,12 +4413,12 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 949 + cs = 1462 goto _again } } case 6: - // line 80 "scan_tokens.rl" + // line 79 "scan_tokens.rl" te = p + 1 { @@ -2965,21 +4432,21 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To } case 7: - // line 222 "scan_tokens.rl" + // line 221 "scan_tokens.rl" te = p + 1 { token(TokenInvalid) } case 8: - // line 223 "scan_tokens.rl" + // line 222 "scan_tokens.rl" te = p + 1 { token(TokenBadUTF8) } case 9: - // line 138 "scan_tokens.rl" + // line 137 "scan_tokens.rl" te = p p-- @@ -2994,12 +4461,12 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 949 + cs = 1462 goto _again } } case 10: - // line 148 "scan_tokens.rl" + // line 147 "scan_tokens.rl" te = p p-- @@ -3014,12 +4481,12 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 949 + cs = 1462 goto _again } } case 11: - // line 221 "scan_tokens.rl" + // line 220 "scan_tokens.rl" te = p p-- @@ -3027,7 +4494,7 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To token(TokenQuotedLit) } case 12: - // line 222 "scan_tokens.rl" + // line 221 "scan_tokens.rl" te = p p-- @@ -3035,7 +4502,7 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To token(TokenInvalid) } case 13: - // line 223 "scan_tokens.rl" + // line 222 "scan_tokens.rl" te = p p-- @@ -3043,29 +4510,29 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To token(TokenBadUTF8) } case 14: - // line 221 "scan_tokens.rl" + // line 220 "scan_tokens.rl" p = (te) - 1 { token(TokenQuotedLit) } case 15: - // line 223 "scan_tokens.rl" + // line 222 "scan_tokens.rl" p = (te) - 1 { token(TokenBadUTF8) } case 16: - // line 126 "scan_tokens.rl" + // line 125 "scan_tokens.rl" act = 10 case 17: - // line 231 "scan_tokens.rl" + // line 230 "scan_tokens.rl" act = 11 case 18: - // line 138 "scan_tokens.rl" + // line 137 "scan_tokens.rl" te = p + 1 { @@ -3079,12 +4546,12 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 949 + cs = 1462 goto _again } } case 19: - // line 148 "scan_tokens.rl" + // line 147 "scan_tokens.rl" te = p + 1 { @@ -3098,12 +4565,12 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 949 + cs = 1462 goto _again } } case 20: - // line 107 "scan_tokens.rl" + // line 106 "scan_tokens.rl" te = p + 1 { @@ -3131,14 +4598,14 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To token(TokenStringLit) } case 21: - // line 231 "scan_tokens.rl" + // line 230 "scan_tokens.rl" te = p + 1 { token(TokenBadUTF8) } case 22: - // line 138 "scan_tokens.rl" + // line 137 "scan_tokens.rl" te = p p-- @@ -3153,12 +4620,12 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 949 + cs = 1462 goto _again } } case 23: - // line 148 "scan_tokens.rl" + // line 147 "scan_tokens.rl" te = p p-- @@ -3173,12 +4640,12 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 949 + cs = 1462 goto _again } } case 24: - // line 126 "scan_tokens.rl" + // line 125 "scan_tokens.rl" te = p p-- @@ -3190,7 +4657,7 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To token(TokenStringLit) } case 25: - // line 231 "scan_tokens.rl" + // line 230 "scan_tokens.rl" te = p p-- @@ -3198,7 +4665,7 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To token(TokenBadUTF8) } case 26: - // line 126 "scan_tokens.rl" + // line 125 "scan_tokens.rl" p = (te) - 1 { @@ -3235,15 +4702,15 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To } case 28: - // line 134 "scan_tokens.rl" + // line 133 "scan_tokens.rl" act = 14 case 29: - // line 238 "scan_tokens.rl" + // line 237 "scan_tokens.rl" act = 15 case 30: - // line 138 "scan_tokens.rl" + // line 137 "scan_tokens.rl" te = p + 1 { @@ -3257,12 +4724,12 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 949 + cs = 1462 goto _again } } case 31: - // line 148 "scan_tokens.rl" + // line 147 "scan_tokens.rl" te = p + 1 { @@ -3276,26 +4743,26 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 949 + cs = 1462 goto _again } } case 32: - // line 134 "scan_tokens.rl" + // line 133 "scan_tokens.rl" te = p + 1 { token(TokenStringLit) } case 33: - // line 238 "scan_tokens.rl" + // line 237 "scan_tokens.rl" te = p + 1 { token(TokenBadUTF8) } case 34: - // line 138 "scan_tokens.rl" + // line 137 "scan_tokens.rl" te = p p-- @@ -3310,12 +4777,12 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 949 + cs = 1462 goto _again } } case 35: - // line 148 "scan_tokens.rl" + // line 147 "scan_tokens.rl" te = p p-- @@ -3330,12 +4797,12 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 949 + cs = 1462 goto _again } } case 36: - // line 134 "scan_tokens.rl" + // line 133 "scan_tokens.rl" te = p p-- @@ -3343,7 +4810,7 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To token(TokenStringLit) } case 37: - // line 238 "scan_tokens.rl" + // line 237 "scan_tokens.rl" te = p p-- @@ -3351,7 +4818,7 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To token(TokenBadUTF8) } case 38: - // line 134 "scan_tokens.rl" + // line 133 "scan_tokens.rl" p = (te) - 1 { @@ -3380,112 +4847,180 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To } case 40: - // line 244 "scan_tokens.rl" + // line 241 "scan_tokens.rl" - act = 18 + act = 16 case 41: - // line 246 "scan_tokens.rl" + // line 242 "scan_tokens.rl" - act = 19 + act = 17 case 42: - // line 257 "scan_tokens.rl" + // line 242 "scan_tokens.rl" - act = 29 + te = p + 1 + { + token(TokenBadUTF8) + } case 43: - // line 268 "scan_tokens.rl" + // line 243 "scan_tokens.rl" - act = 36 + te = p + 1 + { + token(TokenInvalid) + } case 44: - // line 269 "scan_tokens.rl" + // line 241 "scan_tokens.rl" - act = 37 + te = p + p-- + { + token(TokenIdent) + } case 45: - // line 246 "scan_tokens.rl" + // line 242 "scan_tokens.rl" + + te = p + p-- + { + token(TokenBadUTF8) + } + case 46: + // line 241 "scan_tokens.rl" + + p = (te) - 1 + { + token(TokenIdent) + } + case 47: + // line 242 "scan_tokens.rl" + + p = (te) - 1 + { + token(TokenBadUTF8) + } + case 48: + // line 1 "NONE" + + switch act { + case 16: + { + p = (te) - 1 + token(TokenIdent) + } + case 17: + { + p = (te) - 1 + token(TokenBadUTF8) + } + } + + case 49: + // line 249 "scan_tokens.rl" + + act = 21 + case 50: + // line 251 "scan_tokens.rl" + + act = 22 + case 51: + // line 262 "scan_tokens.rl" + + act = 32 + case 52: + // line 272 "scan_tokens.rl" + + act = 38 + case 53: + // line 273 "scan_tokens.rl" + + act = 39 + case 54: + // line 251 "scan_tokens.rl" te = p + 1 { token(TokenComment) } - case 46: - // line 247 "scan_tokens.rl" + case 55: + // line 252 "scan_tokens.rl" te = p + 1 { token(TokenNewline) } - case 47: - // line 249 "scan_tokens.rl" + case 56: + // line 254 "scan_tokens.rl" te = p + 1 { token(TokenEqualOp) } - case 48: - // line 250 "scan_tokens.rl" + case 57: + // line 255 "scan_tokens.rl" te = p + 1 { token(TokenNotEqual) } - case 49: - // line 251 "scan_tokens.rl" + case 58: + // line 256 "scan_tokens.rl" te = p + 1 { token(TokenGreaterThanEq) } - case 50: - // line 252 "scan_tokens.rl" + case 59: + // line 257 "scan_tokens.rl" te = p + 1 { token(TokenLessThanEq) } - case 51: - // line 253 "scan_tokens.rl" + case 60: + // line 258 "scan_tokens.rl" te = p + 1 { token(TokenAnd) } - case 52: - // line 254 "scan_tokens.rl" + case 61: + // line 259 "scan_tokens.rl" te = p + 1 { token(TokenOr) } - case 53: - // line 255 "scan_tokens.rl" + case 62: + // line 260 "scan_tokens.rl" te = p + 1 { token(TokenEllipsis) } - case 54: - // line 256 "scan_tokens.rl" + case 63: + // line 261 "scan_tokens.rl" te = p + 1 { token(TokenFatArrow) } - case 55: - // line 257 "scan_tokens.rl" + case 64: + // line 262 "scan_tokens.rl" te = p + 1 { selfToken() } - case 56: - // line 158 "scan_tokens.rl" + case 65: + // line 157 "scan_tokens.rl" te = p + 1 { token(TokenOBrace) braces++ } - case 57: - // line 163 "scan_tokens.rl" + case 66: + // line 162 "scan_tokens.rl" te = p + 1 { @@ -3505,8 +5040,8 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To braces-- } } - case 58: - // line 175 "scan_tokens.rl" + case 67: + // line 174 "scan_tokens.rl" te = p + 1 { @@ -3535,8 +5070,8 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To braces-- } } - case 59: - // line 75 "scan_tokens.rl" + case 68: + // line 74 "scan_tokens.rl" te = p + 1 { @@ -3545,12 +5080,12 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 1001 + cs = 1513 goto _again } } - case 60: - // line 85 "scan_tokens.rl" + case 69: + // line 84 "scan_tokens.rl" te = p + 1 { @@ -3576,156 +5111,148 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 1015 + cs = 1527 goto _again } } - case 61: - // line 268 "scan_tokens.rl" + case 70: + // line 272 "scan_tokens.rl" te = p + 1 { token(TokenBadUTF8) } - case 62: - // line 269 "scan_tokens.rl" + case 71: + // line 273 "scan_tokens.rl" te = p + 1 { token(TokenInvalid) } - case 63: - // line 242 "scan_tokens.rl" + case 72: + // line 247 "scan_tokens.rl" te = p p-- - case 64: - // line 243 "scan_tokens.rl" + case 73: + // line 248 "scan_tokens.rl" te = p p-- { token(TokenNumberLit) } - case 65: - // line 244 "scan_tokens.rl" + case 74: + // line 249 "scan_tokens.rl" te = p p-- { token(TokenIdent) } - case 66: - // line 246 "scan_tokens.rl" + case 75: + // line 251 "scan_tokens.rl" te = p p-- { token(TokenComment) } - case 67: - // line 257 "scan_tokens.rl" + case 76: + // line 262 "scan_tokens.rl" te = p p-- { selfToken() } - case 68: - // line 267 "scan_tokens.rl" - - te = p - p-- - { - token(TokenTabs) - } - case 69: - // line 268 "scan_tokens.rl" + case 77: + // line 272 "scan_tokens.rl" te = p p-- { token(TokenBadUTF8) } - case 70: - // line 269 "scan_tokens.rl" + case 78: + // line 273 "scan_tokens.rl" te = p p-- { token(TokenInvalid) } - case 71: - // line 243 "scan_tokens.rl" + case 79: + // line 248 "scan_tokens.rl" p = (te) - 1 { token(TokenNumberLit) } - case 72: - // line 244 "scan_tokens.rl" + case 80: + // line 249 "scan_tokens.rl" p = (te) - 1 { token(TokenIdent) } - case 73: - // line 257 "scan_tokens.rl" + case 81: + // line 262 "scan_tokens.rl" p = (te) - 1 { selfToken() } - case 74: - // line 268 "scan_tokens.rl" + case 82: + // line 272 "scan_tokens.rl" p = (te) - 1 { token(TokenBadUTF8) } - case 75: + case 83: // line 1 "NONE" switch act { - case 18: + case 21: { p = (te) - 1 token(TokenIdent) } - case 19: + case 22: { p = (te) - 1 token(TokenComment) } - case 29: + case 32: { p = (te) - 1 selfToken() } - case 36: + case 38: { p = (te) - 1 token(TokenBadUTF8) } - case 37: + case 39: { p = (te) - 1 token(TokenInvalid) } } - // line 3592 "scan_tokens.go" + // line 5104 "scan_tokens.go" } } _again: - _acts = int(_zcltok_to_state_actions[cs]) - _nacts = uint(_zcltok_actions[_acts]) + _acts = int(_hcltok_to_state_actions[cs]) + _nacts = uint(_hcltok_actions[_acts]) _acts++ for ; _nacts > 0; _nacts-- { _acts++ - switch _zcltok_actions[_acts-1] { + switch _hcltok_actions[_acts-1] { case 0: // line 1 "NONE" @@ -3736,7 +5263,7 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To act = 0 - // line 3612 "scan_tokens.go" + // line 5124 "scan_tokens.go" } } @@ -3751,8 +5278,8 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To { } if p == eof { - if _zcltok_eof_trans[cs] > 0 { - _trans = int(_zcltok_eof_trans[cs] - 1) + if _hcltok_eof_trans[cs] > 0 { + _trans = int(_hcltok_eof_trans[cs] - 1) goto _eof_trans } } @@ -3762,12 +5289,12 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To } } - // line 328 "scan_tokens.rl" + // line 334 "scan_tokens.rl" // If we fall out here without being in a final state then we've // encountered something that the scanner can't match, which we'll // deal with as an invalid. - if cs < zcltok_first_final { + if cs < hcltok_first_final { f.emitToken(TokenInvalid, p, len(data)) } diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_tokens.rl b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_tokens.rl index 4a395c133..dc3f56b9b 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_tokens.rl +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_tokens.rl @@ -1,16 +1,17 @@ -package zclsyntax + +package hclsyntax import ( "bytes" - "github.com/zclconf/go-zcl/zcl" + "github.com/hashicorp/hcl2/hcl" ) // This file is generated from scan_tokens.rl. DO NOT EDIT. %%{ # (except you are actually in scan_tokens.rl here, so edit away!) - machine zcltok; + machine hcltok; write data; }%% @@ -62,15 +63,13 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To ("/*" any* "*/") ); - # Tabs are not valid, but we accept them in the scanner and mark them - # as tokens so that we can produce diagnostics advising the user to - # use spaces instead. - Tabs = 0x09+; - - # Note: zclwrite assumes that only ASCII spaces appear between tokens, + # Note: hclwrite assumes that only ASCII spaces appear between tokens, # and uses this assumption to recreate the spaces between tokens by - # looking at byte offset differences. - Spaces = ' '+; + # looking at byte offset differences. This means it will produce + # incorrect results in the presence of tabs, but that's acceptable + # because the canonical style (which hclwrite itself can impose + # automatically is to never use tabs). + Spaces = (' ' | 0x09)+; action beginStringTemplate { token(TokenOQuote); @@ -238,6 +237,12 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To BrokenUTF8 => { token(TokenBadUTF8); }; *|; + identOnly := |* + Ident => { token(TokenIdent) }; + BrokenUTF8 => { token(TokenBadUTF8) }; + AnyUTF8 => { token(TokenInvalid) }; + *|; + main := |* Spaces => {}; NumberLit => { token(TokenNumberLit) }; @@ -264,7 +269,6 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To BeginStringTmpl => beginStringTemplate; BeginHeredocTmpl => beginHeredocTemplate; - Tabs => { token(TokenTabs) }; BrokenUTF8 => { token(TokenBadUTF8) }; AnyUTF8 => { token(TokenInvalid) }; *|; @@ -284,9 +288,11 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To var cs int // current state switch mode { case scanNormal: - cs = zcltok_en_main + cs = hcltok_en_main case scanTemplate: - cs = zcltok_en_bareTemplate + cs = hcltok_en_bareTemplate + case scanIdentOnly: + cs = hcltok_en_identOnly default: panic("invalid scanMode") } @@ -330,7 +336,7 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To // If we fall out here without being in a final state then we've // encountered something that the scanner can't match, which we'll // deal with as an invalid. - if cs < zcltok_first_final { + if cs < hcltok_first_final { f.emitToken(TokenInvalid, p, len(data)) } diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/structure.go b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/structure.go index eb686d5de..d69f65b62 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/structure.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/structure.go @@ -25,7 +25,7 @@ func (b *Block) AsHCLBlock() *hcl.Block { } } -// Body is the implementation of hcl.Body for the zcl native syntax. +// Body is the implementation of hcl.Body for the HCL native syntax. type Body struct { Attributes Attributes Blocks Blocks diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/token.go b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/token.go index 00d6d720a..53e847d13 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/token.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/token.go @@ -110,6 +110,7 @@ type scanMode int const ( scanNormal scanMode = iota scanTemplate + scanIdentOnly ) type tokenAccum struct { diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/token_type_string.go b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/token_type_string.go index dfe69b21a..93de7ee9d 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/token_type_string.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/token_type_string.go @@ -2,7 +2,7 @@ package hclsyntax -import "fmt" +import "strconv" const _TokenType_name = "TokenNilTokenNewlineTokenBangTokenPercentTokenBitwiseAndTokenOParenTokenCParenTokenStarTokenPlusTokenCommaTokenMinusTokenDotTokenSlashTokenColonTokenSemicolonTokenLessThanTokenEqualTokenGreaterThanTokenQuestionTokenCommentTokenOHeredocTokenIdentTokenNumberLitTokenQuotedLitTokenStringLitTokenOBrackTokenCBrackTokenBitwiseXorTokenBacktickTokenCHeredocTokenOBraceTokenBitwiseOrTokenCBraceTokenBitwiseNotTokenOQuoteTokenCQuoteTokenTemplateControlTokenEllipsisTokenFatArrowTokenTemplateSeqEndTokenAndTokenOrTokenTemplateInterpTokenEqualOpTokenNotEqualTokenLessThanEqTokenGreaterThanEqTokenEOFTokenTabsTokenStarStarTokenInvalidTokenBadUTF8" @@ -65,5 +65,5 @@ func (i TokenType) String() string { if str, ok := _TokenType_map[i]; ok { return str } - return fmt.Sprintf("TokenType(%d)", i) + return "TokenType(" + strconv.FormatInt(int64(i), 10) + ")" } diff --git a/vendor/github.com/hashicorp/hcl2/hcl/json/navigation.go b/vendor/github.com/hashicorp/hcl2/hcl/json/navigation.go index d28e6037e..307eebb2c 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/json/navigation.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/json/navigation.go @@ -8,7 +8,7 @@ type navigation struct { root *objectVal } -// Implementation of zcled.ContextString +// Implementation of hcled.ContextString func (n navigation) ContextString(offset int) string { steps := navigationStepsRev(n.root, offset) if steps == nil { diff --git a/vendor/github.com/hashicorp/hcl2/hcl/json/parser.go b/vendor/github.com/hashicorp/hcl2/hcl/json/parser.go index 41d05fb4c..f36625e0f 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/json/parser.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/json/parser.go @@ -168,7 +168,7 @@ Token: } if colon.Type == tokenEquals { - // Possible confusion with native zcl syntax. + // Possible confusion with native HCL syntax. return nil, diags.Append(&hcl.Diagnostic{ Severity: hcl.DiagError, Summary: "Missing attribute value colon", diff --git a/vendor/github.com/hashicorp/hcl2/hcl/json/public.go b/vendor/github.com/hashicorp/hcl2/hcl/json/public.go index 8d4b05262..04ee9147c 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/json/public.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/json/public.go @@ -9,10 +9,10 @@ import ( ) // Parse attempts to parse the given buffer as JSON and, if successful, returns -// a hcl.File for the zcl configuration represented by it. +// a hcl.File for the HCL configuration represented by it. // // This is not a generic JSON parser. Instead, it deals only with the profile -// of JSON used to express zcl configuration. +// of JSON used to express HCL configuration. // // The returned file is valid only if the returned diagnostics returns false // from its HasErrors method. If HasErrors returns true, the file represents @@ -88,28 +88,3 @@ func ParseFile(filename string) (*hcl.File, hcl.Diagnostics) { return Parse(src, filename) } - -// ParseWithHIL is like Parse except the returned file will use the HIL -// template syntax for expressions in strings, rather than the native zcl -// template syntax. -// -// This is intended for providing backward compatibility for applications that -// used to use HCL/HIL and thus had a JSON-based format with HIL -// interpolations. -func ParseWithHIL(src []byte, filename string) (*hcl.File, hcl.Diagnostics) { - file, diags := Parse(src, filename) - if file != nil && file.Body != nil { - file.Body.(*body).useHIL = true - } - return file, diags -} - -// ParseFileWithHIL is like ParseWithHIL but it reads data from a file before -// parsing it. -func ParseFileWithHIL(filename string) (*hcl.File, hcl.Diagnostics) { - file, diags := ParseFile(filename) - if file != nil && file.Body != nil { - file.Body.(*body).useHIL = true - } - return file, diags -} diff --git a/vendor/github.com/hashicorp/hcl2/hcl/json/spec.md b/vendor/github.com/hashicorp/hcl2/hcl/json/spec.md index d6e8bf696..9b08a4f26 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/json/spec.md +++ b/vendor/github.com/hashicorp/hcl2/hcl/json/spec.md @@ -3,7 +3,7 @@ This is the specification for the JSON serialization for hcl. HCL is a system for defining configuration languages for applications. The HCL information model is designed to support multiple concrete syntaxes for configuration, -and this JSON-based format complements [the native syntax](../zclsyntax/spec.md) +and this JSON-based format complements [the native syntax](../hclsyntax/spec.md) by being easy to machine-generate, whereas the native syntax is oriented towards human authoring and maintenence. diff --git a/vendor/github.com/hashicorp/hcl2/hcl/json/structure.go b/vendor/github.com/hashicorp/hcl2/hcl/json/structure.go index d13607eed..fc9f580db 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/json/structure.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/json/structure.go @@ -3,8 +3,8 @@ package json import ( "fmt" - "github.com/hashicorp/hcl2/hcl/hclsyntax" "github.com/hashicorp/hcl2/hcl" + "github.com/hashicorp/hcl2/hcl/hclsyntax" "github.com/zclconf/go-cty/cty" ) @@ -17,12 +17,6 @@ type body struct { // be treated as non-existing. This is used when Body.PartialContent is // called, to produce the "remaining content" Body. hiddenAttrs map[string]struct{} - - // If set, string values are turned into expressions using HIL's template - // language, rather than the native zcl language. This is intended to - // allow applications moving from HCL to zcl to continue to parse the - // JSON variant of their config that HCL handled previously. - useHIL bool } // expression is the implementation of "Expression" used for files processed @@ -133,7 +127,6 @@ func (b *body) PartialContent(schema *hcl.BodySchema) (*hcl.BodyContent, hcl.Bod unusedBody := &body{ obj: b.obj, hiddenAttrs: usedNames, - useHIL: b.useHIL, } return content, unusedBody, diags @@ -219,8 +212,7 @@ func (b *body) unpackBlock(v node, typeName string, typeRange *hcl.Range, labels Type: typeName, Labels: labels, Body: &body{ - obj: tv, - useHIL: b.useHIL, + obj: tv, }, DefRange: tv.OpenRange, @@ -245,8 +237,7 @@ func (b *body) unpackBlock(v node, typeName string, typeRange *hcl.Range, labels Type: typeName, Labels: labels, Body: &body{ - obj: ov, - useHIL: b.useHIL, + obj: ov, }, DefRange: tv.OpenRange, @@ -269,7 +260,7 @@ func (e *expression) Value(ctx *hcl.EvalContext) (cty.Value, hcl.Diagnostics) { switch v := e.src.(type) { case *stringVal: if ctx != nil { - // Parse string contents as a zcl native language expression. + // Parse string contents as a HCL native language expression. // We only do this if we have a context, so passing a nil context // is how the caller specifies that interpolations are not allowed // and that the string should just be returned verbatim. @@ -279,7 +270,7 @@ func (e *expression) Value(ctx *hcl.EvalContext) (cty.Value, hcl.Diagnostics) { v.SrcRange.Filename, // This won't produce _exactly_ the right result, since - // the zclsyntax parser can't "see" any escapes we removed + // the hclsyntax parser can't "see" any escapes we removed // while parsing JSON, but it's better than nothing. hcl.Pos{ Line: v.SrcRange.Start.Line, @@ -297,8 +288,6 @@ func (e *expression) Value(ctx *hcl.EvalContext) (cty.Value, hcl.Diagnostics) { return val, diags } - // FIXME: Once the native zcl template language parser is implemented, - // parse string values as templates and evaluate them. return cty.StringVal(v.Value), nil case *numberVal: return cty.NumberVal(v.Value), nil @@ -330,8 +319,26 @@ func (e *expression) Variables() []hcl.Traversal { switch v := e.src.(type) { case *stringVal: - // FIXME: Once the native zcl template language parser is implemented, - // parse with that and look for variables in there too, + templateSrc := v.Value + expr, diags := hclsyntax.ParseTemplate( + []byte(templateSrc), + v.SrcRange.Filename, + + // This won't produce _exactly_ the right result, since + // the hclsyntax parser can't "see" any escapes we removed + // while parsing JSON, but it's better than nothing. + hcl.Pos{ + Line: v.SrcRange.Start.Line, + + // skip over the opening quote mark + Byte: v.SrcRange.Start.Byte + 1, + Column: v.SrcRange.Start.Column + 1, + }, + ) + if diags.HasErrors() { + return vars + } + return expr.Variables() case *arrayVal: for _, jsonVal := range v.Values { @@ -353,3 +360,34 @@ func (e *expression) Range() hcl.Range { func (e *expression) StartRange() hcl.Range { return e.src.StartRange() } + +// Implementation for hcl.AbsTraversalForExpr. +func (e *expression) AsTraversal() hcl.Traversal { + // In JSON-based syntax a traversal is given as a string containing + // traversal syntax as defined by hclsyntax.ParseTraversalAbs. + + switch v := e.src.(type) { + case *stringVal: + traversal, diags := hclsyntax.ParseTraversalAbs([]byte(v.Value), v.SrcRange.Filename, v.SrcRange.Start) + if diags.HasErrors() { + return nil + } + return traversal + default: + return nil + } +} + +// Implementation for hcl.ExprList. +func (e *expression) ExprList() []hcl.Expression { + switch v := e.src.(type) { + case *arrayVal: + ret := make([]hcl.Expression, len(v.Values)) + for i, node := range v.Values { + ret[i] = &expression{src: node} + } + return ret + default: + return nil + } +} diff --git a/vendor/github.com/hashicorp/hcl2/hcl/ops.go b/vendor/github.com/hashicorp/hcl2/hcl/ops.go index 80312b010..f4e30b09c 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/ops.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/ops.go @@ -8,7 +8,7 @@ import ( ) // Index is a helper function that performs the same operation as the index -// operator in the zcl expression language. That is, the result is the +// operator in the HCL expression language. That is, the result is the // same as it would be for collection[key] in a configuration expression. // // This is exported so that applications can perform indexing in a manner diff --git a/vendor/github.com/hashicorp/hcl2/hcl/pos.go b/vendor/github.com/hashicorp/hcl2/hcl/pos.go index 3ccdfacb8..1a4b329dc 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/pos.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/pos.go @@ -60,6 +60,40 @@ func RangeBetween(start, end Range) Range { } } +// RangeOver returns a new range that covers both of the given ranges and +// possibly additional content between them if the two ranges do not overlap. +// +// If either range is empty then it is ignored. The result is empty if both +// given ranges are empty. +// +// The result is meaningless if the two ranges to not belong to the same +// source file. +func RangeOver(a, b Range) Range { + if a.Empty() { + return b + } + if b.Empty() { + return a + } + + var start, end Pos + if a.Start.Byte < b.Start.Byte { + start = a.Start + } else { + start = b.Start + } + if a.End.Byte > b.End.Byte { + end = a.End + } else { + end = b.End + } + return Range{ + Filename: a.Filename, + Start: start, + End: end, + } +} + // ContainsOffset returns true if and only if the given byte offset is within // the receiving Range. func (r Range) ContainsOffset(offset int) bool { @@ -94,3 +128,135 @@ func (r Range) String() string { ) } } + +func (r Range) Empty() bool { + return r.Start.Byte == r.End.Byte +} + +// CanSliceBytes returns true if SliceBytes could return an accurate +// sub-slice of the given slice. +// +// This effectively tests whether the start and end offsets of the range +// are within the bounds of the slice, and thus whether SliceBytes can be +// trusted to produce an accurate start and end position within that slice. +func (r Range) CanSliceBytes(b []byte) bool { + switch { + case r.Start.Byte < 0 || r.Start.Byte > len(b): + return false + case r.End.Byte < 0 || r.End.Byte > len(b): + return false + case r.End.Byte < r.Start.Byte: + return false + default: + return true + } +} + +// SliceBytes returns a sub-slice of the given slice that is covered by the +// receiving range, assuming that the given slice is the source code of the +// file indicated by r.Filename. +// +// If the receiver refers to any byte offsets that are outside of the slice +// then the result is constrained to the overlapping portion only, to avoid +// a panic. Use CanSliceBytes to determine if the result is guaranteed to +// be an accurate span of the requested range. +func (r Range) SliceBytes(b []byte) []byte { + start := r.Start.Byte + end := r.End.Byte + if start < 0 { + start = 0 + } else if start > len(b) { + start = len(b) + } + if end < 0 { + end = 0 + } else if end > len(b) { + end = len(b) + } + if end < start { + end = start + } + return b[start:end] +} + +// Overlaps returns true if the receiver and the other given range share any +// characters in common. +func (r Range) Overlaps(other Range) bool { + switch { + case r.Filename != other.Filename: + // If the ranges are in different files then they can't possibly overlap + return false + case r.Empty() || other.Empty(): + // Empty ranges can never overlap + return false + case r.ContainsOffset(other.Start.Byte) || r.ContainsOffset(other.End.Byte): + return true + case other.ContainsOffset(r.Start.Byte) || other.ContainsOffset(r.End.Byte): + return true + default: + return false + } +} + +// Overlap finds a range that is either identical to or a sub-range of both +// the receiver and the other given range. It returns an empty range +// within the receiver if there is no overlap between the two ranges. +// +// A non-empty result is either identical to or a subset of the receiver. +func (r Range) Overlap(other Range) Range { + if !r.Overlaps(other) { + // Start == End indicates an empty range + return Range{ + Filename: r.Filename, + Start: r.Start, + End: r.Start, + } + } + + var start, end Pos + if r.Start.Byte > other.Start.Byte { + start = r.Start + } else { + start = other.Start + } + if r.End.Byte < other.End.Byte { + end = r.End + } else { + end = other.End + } + + return Range{ + Filename: r.Filename, + Start: start, + End: end, + } +} + +// PartitionAround finds the portion of the given range that overlaps with +// the reciever and returns three ranges: the portion of the reciever that +// precedes the overlap, the overlap itself, and then the portion of the +// reciever that comes after the overlap. +// +// If the two ranges do not overlap then all three returned ranges are empty. +// +// If the given range aligns with or extends beyond either extent of the +// reciever then the corresponding outer range will be empty. +func (r Range) PartitionAround(other Range) (before, overlap, after Range) { + overlap = r.Overlap(other) + if overlap.Empty() { + return overlap, overlap, overlap + } + + before = Range{ + Filename: r.Filename, + Start: r.Start, + End: overlap.Start, + } + after = Range{ + Filename: r.Filename, + Start: overlap.End, + End: r.End, + } + + return before, overlap, after +} diff --git a/vendor/github.com/hashicorp/hcl2/hcl/pos_scanner.go b/vendor/github.com/hashicorp/hcl2/hcl/pos_scanner.go new file mode 100644 index 000000000..7c8f2dfa5 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl2/hcl/pos_scanner.go @@ -0,0 +1,148 @@ +package hcl + +import ( + "bufio" + "bytes" + + "github.com/apparentlymart/go-textseg/textseg" +) + +// RangeScanner is a helper that will scan over a buffer using a bufio.SplitFunc +// and visit a source range for each token matched. +// +// For example, this can be used with bufio.ScanLines to find the source range +// for each line in the file, skipping over the actual newline characters, which +// may be useful when printing source code snippets as part of diagnostic +// messages. +// +// The line and column information in the returned ranges is produced by +// counting newline characters and grapheme clusters respectively, which +// mimics the behavior we expect from a parser when producing ranges. +type RangeScanner struct { + filename string + b []byte + cb bufio.SplitFunc + + pos Pos // position of next byte to process in b + cur Range // latest range + tok []byte // slice of b that is covered by cur + err error // error from last scan, if any +} + +// Create a new RangeScanner for the given buffer, producing ranges for the +// given filename. +// +// Since ranges have grapheme-cluster granularity rather than byte granularity, +// the scanner will produce incorrect results if the given SplitFunc creates +// tokens between grapheme cluster boundaries. In particular, it is incorrect +// to use RangeScanner with bufio.ScanRunes because it will produce tokens +// around individual UTF-8 sequences, which will split any multi-sequence +// grapheme clusters. +func NewRangeScanner(b []byte, filename string, cb bufio.SplitFunc) *RangeScanner { + return &RangeScanner{ + filename: filename, + b: b, + cb: cb, + pos: Pos{ + Byte: 0, + Line: 1, + Column: 1, + }, + } +} + +func (sc *RangeScanner) Scan() bool { + if sc.pos.Byte >= len(sc.b) || sc.err != nil { + // All done + return false + } + + // Since we're operating on an in-memory buffer, we always pass the whole + // remainder of the buffer to our SplitFunc and set isEOF to let it know + // that it has the whole thing. + advance, token, err := sc.cb(sc.b[sc.pos.Byte:], true) + + // Since we are setting isEOF to true this should never happen, but + // if it does we will just abort and assume the SplitFunc is misbehaving. + if advance == 0 && token == nil && err == nil { + return false + } + + if err != nil { + sc.err = err + sc.cur = Range{ + Filename: sc.filename, + Start: sc.pos, + End: sc.pos, + } + sc.tok = nil + return false + } + + sc.tok = token + start := sc.pos + end := sc.pos + new := sc.pos + + // adv is similar to token but it also includes any subsequent characters + // we're being asked to skip over by the SplitFunc. + // adv is a slice covering any additional bytes we are skipping over, based + // on what the SplitFunc told us to do with advance. + adv := sc.b[sc.pos.Byte : sc.pos.Byte+advance] + + // We now need to scan over our token to count the grapheme clusters + // so we can correctly advance Column, and count the newlines so we + // can correctly advance Line. + advR := bytes.NewReader(adv) + gsc := bufio.NewScanner(advR) + advanced := 0 + gsc.Split(textseg.ScanGraphemeClusters) + for gsc.Scan() { + gr := gsc.Bytes() + new.Byte += len(gr) + new.Column++ + + // We rely here on the fact that \r\n is considered a grapheme cluster + // and so we don't need to worry about miscounting additional lines + // on files with Windows-style line endings. + if len(gr) != 0 && (gr[0] == '\r' || gr[0] == '\n') { + new.Column = 1 + new.Line++ + } + + if advanced < len(token) { + // If we've not yet found the end of our token then we'll + // also push our "end" marker along. + // (if advance > len(token) then we'll stop moving "end" early + // so that the caller only sees the range covered by token.) + end = new + } + advanced += len(gr) + } + + sc.cur = Range{ + Filename: sc.filename, + Start: start, + End: end, + } + sc.pos = new + return true +} + +// Range returns a range that covers the latest token obtained after a call +// to Scan returns true. +func (sc *RangeScanner) Range() Range { + return sc.cur +} + +// Bytes returns the slice of the input buffer that is covered by the range +// that would be returned by Range. +func (sc *RangeScanner) Bytes() []byte { + return sc.tok +} + +// Err can be called after Scan returns false to determine if the latest read +// resulted in an error, and obtain that error if so. +func (sc *RangeScanner) Err() error { + return sc.err +} diff --git a/vendor/github.com/hashicorp/hcl2/hcl/spec.md b/vendor/github.com/hashicorp/hcl2/hcl/spec.md index db4e9ef97..e50bd73a2 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/spec.md +++ b/vendor/github.com/hashicorp/hcl2/hcl/spec.md @@ -7,7 +7,7 @@ concrete syntaxes for configuration, each with a mapping to the model defined in this specification. The two primary syntaxes intended for use in conjunction with this model are -[the HCL native syntax](./zclsyntax/spec.md) and [the JSON syntax](./json/spec.md). +[the HCL native syntax](./hclsyntax/spec.md) and [the JSON syntax](./json/spec.md). In principle other syntaxes are possible as long as either their language model is sufficiently rich to express the concepts described in this specification or the language targets a well-defined subset of the specification. @@ -159,7 +159,7 @@ a computation in terms of literal values, variables, and functions. Each syntax defines its own representation of expressions. For syntaxes based in languages that do not have any non-literal expression syntax, it is recommended to embed the template language from -[the native syntax](./zclsyntax/spec.md) e.g. as a post-processing step on +[the native syntax](./hclsyntax/spec.md) e.g. as a post-processing step on string literals. ### Expression Evaluation diff --git a/vendor/github.com/hashicorp/hcl2/hcl/traversal.go b/vendor/github.com/hashicorp/hcl2/hcl/traversal.go index 867ed425f..24f4c91b7 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/traversal.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/traversal.go @@ -156,6 +156,17 @@ func (t Traversal) RootName() string { return t[0].(TraverseRoot).Name } +// SourceRange returns the source range for the traversal. +func (t Traversal) SourceRange() Range { + if len(t) == 0 { + // Nothing useful to return here, but we'll return something + // that's correctly-typed at least. + return Range{} + } + + return RangeBetween(t[0].SourceRange(), t[len(t)-1].SourceRange()) +} + // TraversalSplit represents a pair of traversals, the first of which is // an absolute traversal and the second of which is relative to the first. // @@ -206,6 +217,7 @@ func (t TraversalSplit) RootName() string { // A Traverser is a step within a Traversal. type Traverser interface { TraversalStep(cty.Value) (cty.Value, Diagnostics) + SourceRange() Range isTraverserSigil() isTraverser } @@ -231,6 +243,10 @@ func (tn TraverseRoot) TraversalStep(cty.Value) (cty.Value, Diagnostics) { panic("Cannot traverse an absolute traversal") } +func (tn TraverseRoot) SourceRange() Range { + return tn.SrcRange +} + // TraverseAttr looks up an attribute in its initial value. type TraverseAttr struct { isTraverser @@ -301,6 +317,10 @@ func (tn TraverseAttr) TraversalStep(val cty.Value) (cty.Value, Diagnostics) { } } +func (tn TraverseAttr) SourceRange() Range { + return tn.SrcRange +} + // TraverseIndex applies the index operation to its initial value. type TraverseIndex struct { isTraverser @@ -312,6 +332,10 @@ func (tn TraverseIndex) TraversalStep(val cty.Value) (cty.Value, Diagnostics) { return Index(val, tn.Key, &tn.SrcRange) } +func (tn TraverseIndex) SourceRange() Range { + return tn.SrcRange +} + // TraverseSplat applies the splat operation to its initial value. type TraverseSplat struct { isTraverser @@ -322,3 +346,7 @@ type TraverseSplat struct { func (tn TraverseSplat) TraversalStep(val cty.Value) (cty.Value, Diagnostics) { panic("TraverseSplat not yet implemented") } + +func (tn TraverseSplat) SourceRange() Range { + return tn.SrcRange +} diff --git a/vendor/github.com/hashicorp/hcl2/hcl/traversal_for_expr.go b/vendor/github.com/hashicorp/hcl2/hcl/traversal_for_expr.go new file mode 100644 index 000000000..5f529467b --- /dev/null +++ b/vendor/github.com/hashicorp/hcl2/hcl/traversal_for_expr.go @@ -0,0 +1,121 @@ +package hcl + +// AbsTraversalForExpr attempts to interpret the given expression as +// an absolute traversal, or returns error diagnostic(s) if that is +// not possible for the given expression. +// +// A particular Expression implementation can support this function by +// offering a method called AsTraversal that takes no arguments and +// returns either a valid absolute traversal or nil to indicate that +// no traversal is possible. Alternatively, an implementation can support +// UnwrapExpression to delegate handling of this function to a wrapped +// Expression object. +// +// In most cases the calling application is interested in the value +// that results from an expression, but in rarer cases the application +// needs to see the the name of the variable and subsequent +// attributes/indexes itself, for example to allow users to give references +// to the variables themselves rather than to their values. An implementer +// of this function should at least support attribute and index steps. +func AbsTraversalForExpr(expr Expression) (Traversal, Diagnostics) { + type asTraversal interface { + AsTraversal() Traversal + } + + physExpr := UnwrapExpressionUntil(expr, func(expr Expression) bool { + _, supported := expr.(asTraversal) + return supported + }) + + if asT, supported := physExpr.(asTraversal); supported { + if traversal := asT.AsTraversal(); traversal != nil { + return traversal, nil + } + } + return nil, Diagnostics{ + &Diagnostic{ + Severity: DiagError, + Summary: "Invalid expression", + Detail: "A static variable reference is required.", + Subject: expr.Range().Ptr(), + }, + } +} + +// RelTraversalForExpr is similar to AbsTraversalForExpr but it returns +// a relative traversal instead. Due to the nature of HCL expressions, the +// first element of the returned traversal is always a TraverseAttr, and +// then it will be followed by zero or more other expressions. +// +// Any expression accepted by AbsTraversalForExpr is also accepted by +// RelTraversalForExpr. +func RelTraversalForExpr(expr Expression) (Traversal, Diagnostics) { + traversal, diags := AbsTraversalForExpr(expr) + if len(traversal) > 0 { + root := traversal[0].(TraverseRoot) + traversal[0] = TraverseAttr{ + Name: root.Name, + SrcRange: root.SrcRange, + } + } + return traversal, diags +} + +// ExprAsKeyword attempts to interpret the given expression as a static keyword, +// returning the keyword string if possible, and the empty string if not. +// +// A static keyword, for the sake of this function, is a single identifier. +// For example, the following attribute has an expression that would produce +// the keyword "foo": +// +// example = foo +// +// This function is a variant of AbsTraversalForExpr, which uses the same +// interface on the given expression. This helper constrains the result +// further by requiring only a single root identifier. +// +// This function is intended to be used with the following idiom, to recognize +// situations where one of a fixed set of keywords is required and arbitrary +// expressions are not allowed: +// +// switch hcl.ExprAsKeyword(expr) { +// case "allow": +// // (take suitable action for keyword "allow") +// case "deny": +// // (take suitable action for keyword "deny") +// default: +// diags = append(diags, &hcl.Diagnostic{ +// // ... "invalid keyword" diagnostic message ... +// }) +// } +// +// The above approach will generate the same message for both the use of an +// unrecognized keyword and for not using a keyword at all, which is usually +// reasonable if the message specifies that the given value must be a keyword +// from that fixed list. +// +// Note that in the native syntax the keywords "true", "false", and "null" are +// recognized as literal values during parsing and so these reserved words +// cannot not be accepted as keywords by this function. +// +// Since interpreting an expression as a keyword bypasses usual expression +// evaluation, it should be used sparingly for situations where e.g. one of +// a fixed set of keywords is used in a structural way in a special attribute +// to affect the further processing of a block. +func ExprAsKeyword(expr Expression) string { + type asTraversal interface { + AsTraversal() Traversal + } + + physExpr := UnwrapExpressionUntil(expr, func(expr Expression) bool { + _, supported := expr.(asTraversal) + return supported + }) + + if asT, supported := physExpr.(asTraversal); supported { + if traversal := asT.AsTraversal(); len(traversal) == 1 { + return traversal.RootName() + } + } + return "" +} diff --git a/vendor/github.com/hashicorp/hcl2/hcldec/public.go b/vendor/github.com/hashicorp/hcl2/hcldec/public.go index 3e58f7b3c..5d1f10a3d 100644 --- a/vendor/github.com/hashicorp/hcl2/hcldec/public.go +++ b/vendor/github.com/hashicorp/hcl2/hcldec/public.go @@ -51,3 +51,28 @@ func ImpliedType(spec Spec) cty.Type { func SourceRange(body hcl.Body, spec Spec) hcl.Range { return sourceRange(body, nil, spec) } + +// ChildBlockTypes returns a map of all of the child block types declared +// by the given spec, with block type names as keys and the associated +// nested body specs as values. +func ChildBlockTypes(spec Spec) map[string]Spec { + ret := map[string]Spec{} + + // visitSameBodyChildren walks through the spec structure, calling + // the given callback for each descendent spec encountered. We are + // interested in the specs that reference attributes and blocks. + var visit visitFunc + visit = func(s Spec) { + if bs, ok := s.(blockSpec); ok { + for _, blockS := range bs.blockHeaderSchemata() { + ret[blockS.Type] = bs.nestedSpec() + } + } + + s.visitSameBodyChildren(visit) + } + + visit(spec) + + return ret +} diff --git a/vendor/github.com/hashicorp/hcl2/hcldec/spec.go b/vendor/github.com/hashicorp/hcl2/hcldec/spec.go index f0e6842be..25cafcd97 100644 --- a/vendor/github.com/hashicorp/hcl2/hcldec/spec.go +++ b/vendor/github.com/hashicorp/hcl2/hcldec/spec.go @@ -7,6 +7,7 @@ import ( "github.com/hashicorp/hcl2/hcl" "github.com/zclconf/go-cty/cty" "github.com/zclconf/go-cty/cty/convert" + "github.com/zclconf/go-cty/cty/function" ) // A Spec is a description of how to decode a hcl.Body to a cty.Value. @@ -52,6 +53,7 @@ type attrSpec interface { // blockSpec is implemented by specs that require blocks from the body. type blockSpec interface { blockHeaderSchemata() []hcl.BlockHeaderSchema + nestedSpec() Spec } // specNeedingVariables is implemented by specs that can use variables @@ -298,6 +300,11 @@ func (s *BlockSpec) blockHeaderSchemata() []hcl.BlockHeaderSchema { } } +// blockSpec implementation +func (s *BlockSpec) nestedSpec() Spec { + return s.Nested +} + // specNeedingVariables implementation func (s *BlockSpec) variablesNeeded(content *hcl.BodyContent) []hcl.Traversal { var childBlock *hcl.Block @@ -409,6 +416,11 @@ func (s *BlockListSpec) blockHeaderSchemata() []hcl.BlockHeaderSchema { } } +// blockSpec implementation +func (s *BlockListSpec) nestedSpec() Spec { + return s.Nested +} + // specNeedingVariables implementation func (s *BlockListSpec) variablesNeeded(content *hcl.BodyContent) []hcl.Traversal { var ret []hcl.Traversal @@ -519,6 +531,11 @@ func (s *BlockSetSpec) blockHeaderSchemata() []hcl.BlockHeaderSchema { } } +// blockSpec implementation +func (s *BlockSetSpec) nestedSpec() Spec { + return s.Nested +} + // specNeedingVariables implementation func (s *BlockSetSpec) variablesNeeded(content *hcl.BodyContent) []hcl.Traversal { var ret []hcl.Traversal @@ -631,6 +648,11 @@ func (s *BlockMapSpec) blockHeaderSchemata() []hcl.BlockHeaderSchema { } } +// blockSpec implementation +func (s *BlockMapSpec) nestedSpec() Spec { + return s.Nested +} + // specNeedingVariables implementation func (s *BlockMapSpec) variablesNeeded(content *hcl.BodyContent) []hcl.Traversal { var ret []hcl.Traversal @@ -857,3 +879,120 @@ func (s *DefaultSpec) sourceRange(content *hcl.BodyContent, blockLabels []blockL // reasonable source range to return anyway. return s.Primary.sourceRange(content, blockLabels) } + +// TransformExprSpec is a spec that wraps another and then evaluates a given +// hcl.Expression on the result. +// +// The implied type of this spec is determined by evaluating the expression +// with an unknown value of the nested spec's implied type, which may cause +// the result to be imprecise. This spec should not be used in situations where +// precise result type information is needed. +type TransformExprSpec struct { + Wrapped Spec + Expr hcl.Expression + TransformCtx *hcl.EvalContext + VarName string +} + +func (s *TransformExprSpec) visitSameBodyChildren(cb visitFunc) { + cb(s.Wrapped) +} + +func (s *TransformExprSpec) decode(content *hcl.BodyContent, blockLabels []blockLabel, ctx *hcl.EvalContext) (cty.Value, hcl.Diagnostics) { + wrappedVal, diags := s.Wrapped.decode(content, blockLabels, ctx) + if diags.HasErrors() { + // We won't try to run our function in this case, because it'll probably + // generate confusing additional errors that will distract from the + // root cause. + return cty.UnknownVal(s.impliedType()), diags + } + + chiCtx := s.TransformCtx.NewChild() + chiCtx.Variables = map[string]cty.Value{ + s.VarName: wrappedVal, + } + resultVal, resultDiags := s.Expr.Value(chiCtx) + diags = append(diags, resultDiags...) + return resultVal, diags +} + +func (s *TransformExprSpec) impliedType() cty.Type { + wrappedTy := s.Wrapped.impliedType() + chiCtx := s.TransformCtx.NewChild() + chiCtx.Variables = map[string]cty.Value{ + s.VarName: cty.UnknownVal(wrappedTy), + } + resultVal, _ := s.Expr.Value(chiCtx) + return resultVal.Type() +} + +func (s *TransformExprSpec) sourceRange(content *hcl.BodyContent, blockLabels []blockLabel) hcl.Range { + // We'll just pass through our wrapped range here, even though that's + // not super-accurate, because there's nothing better to return. + return s.Wrapped.sourceRange(content, blockLabels) +} + +// TransformFuncSpec is a spec that wraps another and then evaluates a given +// cty function with the result. The given function must expect exactly one +// argument, where the result of the wrapped spec will be passed. +// +// The implied type of this spec is determined by type-checking the function +// with an unknown value of the nested spec's implied type, which may cause +// the result to be imprecise. This spec should not be used in situations where +// precise result type information is needed. +// +// If the given function produces an error when run, this spec will produce +// a non-user-actionable diagnostic message. It's the caller's responsibility +// to ensure that the given function cannot fail for any non-error result +// of the wrapped spec. +type TransformFuncSpec struct { + Wrapped Spec + Func function.Function +} + +func (s *TransformFuncSpec) visitSameBodyChildren(cb visitFunc) { + cb(s.Wrapped) +} + +func (s *TransformFuncSpec) decode(content *hcl.BodyContent, blockLabels []blockLabel, ctx *hcl.EvalContext) (cty.Value, hcl.Diagnostics) { + wrappedVal, diags := s.Wrapped.decode(content, blockLabels, ctx) + if diags.HasErrors() { + // We won't try to run our function in this case, because it'll probably + // generate confusing additional errors that will distract from the + // root cause. + return cty.UnknownVal(s.impliedType()), diags + } + + resultVal, err := s.Func.Call([]cty.Value{wrappedVal}) + if err != nil { + // This is not a good example of a diagnostic because it is reporting + // a programming error in the calling application, rather than something + // an end-user could act on. + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Transform function failed", + Detail: fmt.Sprintf("Decoder transform returned an error: %s", err), + Subject: s.sourceRange(content, blockLabels).Ptr(), + }) + return cty.UnknownVal(s.impliedType()), diags + } + + return resultVal, diags +} + +func (s *TransformFuncSpec) impliedType() cty.Type { + wrappedTy := s.Wrapped.impliedType() + resultTy, err := s.Func.ReturnType([]cty.Type{wrappedTy}) + if err != nil { + // Should never happen with a correctly-configured spec + return cty.DynamicPseudoType + } + + return resultTy +} + +func (s *TransformFuncSpec) sourceRange(content *hcl.BodyContent, blockLabels []blockLabel) hcl.Range { + // We'll just pass through our wrapped range here, even though that's + // not super-accurate, because there's nothing better to return. + return s.Wrapped.sourceRange(content, blockLabels) +} diff --git a/vendor/github.com/hashicorp/hcl2/hcltest/mock.go b/vendor/github.com/hashicorp/hcl2/hcltest/mock.go index a886bed8e..510fc2497 100644 --- a/vendor/github.com/hashicorp/hcl2/hcltest/mock.go +++ b/vendor/github.com/hashicorp/hcl2/hcltest/mock.go @@ -3,13 +3,15 @@ package hcltest import ( "fmt" + "github.com/hashicorp/hcl2/hcl/hclsyntax" + "github.com/hashicorp/hcl2/hcl" "github.com/zclconf/go-cty/cty" ) // MockBody returns a hcl.Body implementation that works in terms of a // caller-constructed hcl.BodyContent, thus avoiding the need to parse -// a "real" zcl config file to use as input to a test. +// a "real" HCL config file to use as input to a test. func MockBody(content *hcl.BodyContent) hcl.Body { return mockBody{content} } @@ -149,6 +151,21 @@ func (e mockExprLiteral) StartRange() hcl.Range { return e.Range() } +// Implementation for hcl.ExprList +func (e mockExprLiteral) ExprList() []hcl.Expression { + v := e.V + ty := v.Type() + if v.IsKnown() && !v.IsNull() && (ty.IsListType() || ty.IsTupleType()) { + ret := make([]hcl.Expression, 0, v.LengthInt()) + for it := v.ElementIterator(); it.Next(); { + _, v := it.Element() + ret = append(ret, MockExprLiteral(v)) + } + return ret + } + return nil +} + // MockExprVariable returns a hcl.Expression that evaluates to the value of // the variable with the given name. func MockExprVariable(name string) hcl.Expression { @@ -197,6 +214,111 @@ func (e mockExprVariable) StartRange() hcl.Range { return e.Range() } +// Implementation for hcl.AbsTraversalForExpr and hcl.RelTraversalForExpr. +func (e mockExprVariable) AsTraversal() hcl.Traversal { + return hcl.Traversal{ + hcl.TraverseRoot{ + Name: string(e), + SrcRange: e.Range(), + }, + } +} + +// MockExprTraversal returns a hcl.Expression that evaluates the given +// absolute traversal. +func MockExprTraversal(traversal hcl.Traversal) hcl.Expression { + return mockExprTraversal{ + Traversal: traversal, + } +} + +// MockExprTraversalSrc is like MockExprTraversal except it takes a +// traversal string as defined by the native syntax and parses it first. +// +// This method is primarily for testing with hard-coded traversal strings, so +// it will panic if the given string is not syntactically correct. +func MockExprTraversalSrc(src string) hcl.Expression { + traversal, diags := hclsyntax.ParseTraversalAbs([]byte(src), "MockExprTraversal", hcl.Pos{}) + if diags.HasErrors() { + panic("invalid traversal string") + } + return MockExprTraversal(traversal) +} + +type mockExprTraversal struct { + Traversal hcl.Traversal +} + +func (e mockExprTraversal) Value(ctx *hcl.EvalContext) (cty.Value, hcl.Diagnostics) { + return e.Traversal.TraverseAbs(ctx) +} + +func (e mockExprTraversal) Variables() []hcl.Traversal { + return []hcl.Traversal{e.Traversal} +} + +func (e mockExprTraversal) Range() hcl.Range { + return e.Traversal.SourceRange() +} + +func (e mockExprTraversal) StartRange() hcl.Range { + return e.Range() +} + +// Implementation for hcl.AbsTraversalForExpr and hcl.RelTraversalForExpr. +func (e mockExprTraversal) AsTraversal() hcl.Traversal { + return e.Traversal +} + +func MockExprList(exprs []hcl.Expression) hcl.Expression { + return mockExprList{ + Exprs: exprs, + } +} + +type mockExprList struct { + Exprs []hcl.Expression +} + +func (e mockExprList) Value(ctx *hcl.EvalContext) (cty.Value, hcl.Diagnostics) { + if len(e.Exprs) == 0 { + return cty.ListValEmpty(cty.DynamicPseudoType), nil + } + vals := make([]cty.Value, 0, len(e.Exprs)) + var diags hcl.Diagnostics + + for _, expr := range e.Exprs { + val, valDiags := expr.Value(ctx) + diags = append(diags, valDiags...) + vals = append(vals, val) + } + + return cty.ListVal(vals), diags +} + +func (e mockExprList) Variables() []hcl.Traversal { + var traversals []hcl.Traversal + for _, expr := range e.Exprs { + traversals = append(traversals, expr.Variables()...) + } + return traversals +} + +func (e mockExprList) Range() hcl.Range { + return hcl.Range{ + Filename: "MockExprList", + } +} + +func (e mockExprList) StartRange() hcl.Range { + return e.Range() +} + +// Implementation for hcl.ExprList +func (e mockExprList) ExprList() []hcl.Expression { + return e.Exprs +} + // MockAttrs constructs and returns a hcl.Attributes map with attributes // derived from the given expression map. // diff --git a/vendor/github.com/hashicorp/hcl2/hclwrite/ast.go b/vendor/github.com/hashicorp/hcl2/hclwrite/ast.go index 35c746bd6..19d00703c 100644 --- a/vendor/github.com/hashicorp/hcl2/hclwrite/ast.go +++ b/vendor/github.com/hashicorp/hcl2/hclwrite/ast.go @@ -82,7 +82,7 @@ func (n *Body) AppendUnstructuredTokens(seq *TokenSeq) { // given name, or returns nil if there is currently no matching attribute. // // A valid AST has only one definition of each attribute, but that constraint -// is not enforced in the zclwrite AST, so a tree that has been mutated by +// is not enforced in the hclwrite AST, so a tree that has been mutated by // other calls may contain additional matching attributes that cannot be seen // by this method. func (n *Body) FindAttribute(name string) *Attribute { diff --git a/vendor/github.com/hashicorp/hcl2/hclwrite/format.go b/vendor/github.com/hashicorp/hcl2/hclwrite/format.go index 1ccc78f5f..64f161dab 100644 --- a/vendor/github.com/hashicorp/hcl2/hclwrite/format.go +++ b/vendor/github.com/hashicorp/hcl2/hclwrite/format.go @@ -49,7 +49,7 @@ func formatIndent(lines []formatLine) { // We'll start our indent stack at a reasonable capacity to minimize the // chance of us needing to grow it; 10 here means 10 levels of indent, - // which should be more than enough for reasonable zcl uses. + // which should be more than enough for reasonable HCL uses. indents := make([]int, 0, 10) for i := range lines { diff --git a/vendor/github.com/hashicorp/hcl2/hclwrite/parser.go b/vendor/github.com/hashicorp/hcl2/hclwrite/parser.go index 72802d311..4a4851adc 100644 --- a/vendor/github.com/hashicorp/hcl2/hclwrite/parser.go +++ b/vendor/github.com/hashicorp/hcl2/hclwrite/parser.go @@ -3,18 +3,18 @@ package hclwrite import ( "sort" - "github.com/hashicorp/hcl2/hcl/hclsyntax" "github.com/hashicorp/hcl2/hcl" + "github.com/hashicorp/hcl2/hcl/hclsyntax" ) // Our "parser" here is actually not doing any parsing of its own. Instead, -// it leans on the native parser in zclsyntax, and then uses the source ranges +// it leans on the native parser in hclsyntax, and then uses the source ranges // from the AST to partition the raw token sequence to match the raw tokens // up to AST nodes. // // This strategy feels somewhat counter-intuitive, since most of the work the // parser does is thrown away here, but this strategy is chosen because the -// normal parsing work done by zclsyntax is considered to be the "main case", +// normal parsing work done by hclsyntax is considered to be the "main case", // while modifying and re-printing source is more of an edge case, used only // in ancillary tools, and so it's good to keep all the main parsing logic // with the main case but keep all of the extra complexity of token wrangling @@ -30,7 +30,7 @@ func parse(src []byte, filename string, start hcl.Pos) (*File, hcl.Diagnostics) return nil, diags } - // To do our work here, we use the "native" tokens (those from zclsyntax) + // To do our work here, we use the "native" tokens (those from hclsyntax) // to match against source ranges in the AST, but ultimately produce // slices from our sequence of "writer" tokens, which contain only // *relative* position information that is more appropriate for @@ -333,7 +333,7 @@ func parseExpression(nativeExpr hclsyntax.Expression, from inputTokens) *Express } } -// writerTokens takes a sequence of tokens as produced by the main zclsyntax +// writerTokens takes a sequence of tokens as produced by the main hclsyntax // package and transforms it into an equivalent sequence of tokens using // this package's own token model. // @@ -389,7 +389,7 @@ func writerTokens(nativeTokens hclsyntax.Tokens) Tokens { // true then it will make a best effort that may produce strange results at // the boundaries. // -// Native zclsyntax tokens are used here, because they contain the necessary +// Native hclsyntax tokens are used here, because they contain the necessary // absolute position information. However, since writerTokens produces a // correlatable sequence of writer tokens, the resulting indices can be // used also to index into its result, allowing the partitioning of writer @@ -488,7 +488,7 @@ func partitionLineEndTokens(toks hclsyntax.Tokens) (afterComment, afterNewline i return len(toks), len(toks) } -// lexConfig uses the zclsyntax scanner to get a token stream and then +// lexConfig uses the hclsyntax scanner to get a token stream and then // rewrites it into this package's token model. // // Any errors produced during scanning are ignored, so the results of this diff --git a/vendor/github.com/hashicorp/hcl2/hclwrite/public.go b/vendor/github.com/hashicorp/hcl2/hclwrite/public.go index ee2d92044..d9b0dd5aa 100644 --- a/vendor/github.com/hashicorp/hcl2/hclwrite/public.go +++ b/vendor/github.com/hashicorp/hcl2/hclwrite/public.go @@ -6,7 +6,7 @@ import ( "github.com/hashicorp/hcl2/hcl" ) -// ParseConfig interprets the given source bytes into a *zclwrite.File. The +// ParseConfig interprets the given source bytes into a *hclwrite.File. The // resulting AST can be used to perform surgical edits on the source code // before turning it back into bytes again. func ParseConfig(src []byte, filename string, start hcl.Pos) (*File, hcl.Diagnostics) { diff --git a/vendor/github.com/hashicorp/hcl2/hclwrite/tokens.go b/vendor/github.com/hashicorp/hcl2/hclwrite/tokens.go index 18689ea47..8fb87f252 100644 --- a/vendor/github.com/hashicorp/hcl2/hclwrite/tokens.go +++ b/vendor/github.com/hashicorp/hcl2/hclwrite/tokens.go @@ -9,7 +9,7 @@ import ( ) // TokenGen is an abstract type that can append tokens to a list. It is the -// low-level foundation underlying the zclwrite AST; the AST provides a +// low-level foundation underlying the hclwrite AST; the AST provides a // convenient abstraction over raw token sequences to facilitate common tasks, // but it's also possible to directly manipulate the tree of token generators // to make changes that the AST API doesn't directly allow. @@ -22,7 +22,7 @@ type TokenGen interface { type TokenCallback func(*Token) // Token is a single sequence of bytes annotated with a type. It is similar -// in purpose to zclsyntax.Token, but discards the source position information +// in purpose to hclsyntax.Token, but discards the source position information // since that is not useful in code generation. type Token struct { Type hclsyntax.TokenType diff --git a/vendor/vendor.json b/vendor/vendor.json index 0a9fdf263..3465886dd 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -1697,56 +1697,56 @@ { "checksumSHA1": "6kxMiZSmgazD/CZgmnEeEMJSAOM=", "path": "github.com/hashicorp/hcl2/gohcl", - "revision": "44bad6dbf5490f5da17ec991e664df3d017b706f", - "revisionTime": "2017-10-03T23:27:34Z" + "revision": "5ca9713bf06addcefc0a4e16f779e43a2c88570c", + "revisionTime": "2018-02-05T02:55:09Z" }, { - "checksumSHA1": "TsNlThzf92FMwcnM4Fc0mArHroU=", + "checksumSHA1": "l2zkxDVi2EUwFdvsVcIfyuOr4zo=", "path": "github.com/hashicorp/hcl2/hcl", - "revision": "44bad6dbf5490f5da17ec991e664df3d017b706f", - "revisionTime": "2017-10-03T23:27:34Z" + "revision": "5ca9713bf06addcefc0a4e16f779e43a2c88570c", + "revisionTime": "2018-02-05T02:55:09Z" }, { - "checksumSHA1": "+Dv8V2cfl7Vy6rUklhXj5Cli8aU=", + "checksumSHA1": "iLOUzHOej23ORpmbXAndg5Ft5H0=", "path": "github.com/hashicorp/hcl2/hcl/hclsyntax", - "revision": "44bad6dbf5490f5da17ec991e664df3d017b706f", - "revisionTime": "2017-10-03T23:27:34Z" + "revision": "5ca9713bf06addcefc0a4e16f779e43a2c88570c", + "revisionTime": "2018-02-05T02:55:09Z" }, { - "checksumSHA1": "GAArMzjaoFNPa7HFnhjZmaeBZII=", + "checksumSHA1": "O8jJfHiwuQFmAo0ivcBhni4pWyg=", "path": "github.com/hashicorp/hcl2/hcl/json", - "revision": "44bad6dbf5490f5da17ec991e664df3d017b706f", - "revisionTime": "2017-10-03T23:27:34Z" + "revision": "5ca9713bf06addcefc0a4e16f779e43a2c88570c", + "revisionTime": "2018-02-05T02:55:09Z" }, { - "checksumSHA1": "u6YPoPz3GflgHb1dN1YN8nCWAXY=", + "checksumSHA1": "672O/GQ9z+OFsG3eHLKq1yg3ZGM=", "path": "github.com/hashicorp/hcl2/hcldec", - "revision": "44bad6dbf5490f5da17ec991e664df3d017b706f", - "revisionTime": "2017-10-03T23:27:34Z" + "revision": "5ca9713bf06addcefc0a4e16f779e43a2c88570c", + "revisionTime": "2018-02-05T02:55:09Z" }, { "checksumSHA1": "sySYF9Ew71VS/LfrG+s/0jK+1VQ=", "path": "github.com/hashicorp/hcl2/hcled", - "revision": "44bad6dbf5490f5da17ec991e664df3d017b706f", - "revisionTime": "2017-10-03T23:27:34Z" + "revision": "5ca9713bf06addcefc0a4e16f779e43a2c88570c", + "revisionTime": "2018-02-05T02:55:09Z" }, { "checksumSHA1": "IzmftuG99BqNhbFGhxZaGwtiMtM=", "path": "github.com/hashicorp/hcl2/hclparse", - "revision": "44bad6dbf5490f5da17ec991e664df3d017b706f", - "revisionTime": "2017-10-03T23:27:34Z" + "revision": "5ca9713bf06addcefc0a4e16f779e43a2c88570c", + "revisionTime": "2018-02-05T02:55:09Z" }, { - "checksumSHA1": "4supppf3CMdAEUEDrXP8niXvAR0=", + "checksumSHA1": "v5qx2XghQ+EtvFLa4a0Efjiwt9I=", "path": "github.com/hashicorp/hcl2/hcltest", - "revision": "44bad6dbf5490f5da17ec991e664df3d017b706f", - "revisionTime": "2017-10-03T23:27:34Z" + "revision": "5ca9713bf06addcefc0a4e16f779e43a2c88570c", + "revisionTime": "2018-02-05T02:55:09Z" }, { - "checksumSHA1": "p+dun/Fx4beswXTtoEjVnwDJE+Y=", + "checksumSHA1": "9UCSLRG+TEAsNKOZJUaJj/7d6r8=", "path": "github.com/hashicorp/hcl2/hclwrite", - "revision": "44bad6dbf5490f5da17ec991e664df3d017b706f", - "revisionTime": "2017-10-03T23:27:34Z" + "revision": "5ca9713bf06addcefc0a4e16f779e43a2c88570c", + "revisionTime": "2018-02-05T02:55:09Z" }, { "checksumSHA1": "M09yxoBoCEtG7EcHR8aEWLzMMJc=", From e15ec486bf4701d04dd6eb6ed6cedf9861375b1c Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Fri, 2 Feb 2018 17:22:25 -0800 Subject: [PATCH 056/156] configs: Parser.LoadConfigFile This is a first pass of decoding of the main Terraform configuration file format. It hasn't yet been tested with any real-world configurations, so it will need to be revised further as we test it more thoroughly. --- configs/backend.go | 10 + configs/depends_on.go | 37 ++++ configs/module.go | 2 +- configs/module_call.go | 80 +++++++- configs/named_values.go | 181 ++++++++++++++++++ configs/parser_config.go | 235 +++++++++++++++++++++++ configs/provider.go | 67 ++++++- configs/provisioner.go | 185 ++++++++++++++++++ configs/resource.go | 341 ++++++++++++++++++++++++++++++---- configs/util.go | 18 ++ configs/version_constraint.go | 48 ++++- 11 files changed, 1164 insertions(+), 40 deletions(-) create mode 100644 configs/depends_on.go create mode 100644 configs/parser_config.go create mode 100644 configs/provisioner.go create mode 100644 configs/util.go diff --git a/configs/backend.go b/configs/backend.go index 43e872bed..20dc97657 100644 --- a/configs/backend.go +++ b/configs/backend.go @@ -10,5 +10,15 @@ type Backend struct { Type string Config hcl.Body + TypeRange hcl.Range DeclRange hcl.Range } + +func decodeBackendBlock(block *hcl.Block) (*Backend, hcl.Diagnostics) { + return &Backend{ + Type: block.Labels[0], + TypeRange: block.LabelRanges[0], + Config: block.Body, + DeclRange: block.DefRange, + }, nil +} diff --git a/configs/depends_on.go b/configs/depends_on.go new file mode 100644 index 000000000..f20c58167 --- /dev/null +++ b/configs/depends_on.go @@ -0,0 +1,37 @@ +package configs + +import ( + "fmt" + + "github.com/hashicorp/hcl2/hcl" +) + +func decodeDependsOn(attr *hcl.Attribute) ([]hcl.Traversal, hcl.Diagnostics) { + var ret []hcl.Traversal + exprs, diags := hcl.ExprList(attr.Expr) + + for _, expr := range exprs { + // A dependency reference was given as a string literal in the legacy + // configuration language and there are lots of examples out there + // showing that usage, so we'll sniff for that situation here and + // produce a specialized error message for it to help users find + // the new correct form. + if exprIsNativeQuotedString(expr) { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid explicit dependency reference", + Detail: fmt.Sprintf("%s elements must not be given in quotes.", attr.Name), + Subject: attr.Expr.Range().Ptr(), + }) + continue + } + + traversal, travDiags := hcl.AbsTraversalForExpr(expr) + diags = append(diags, travDiags...) + if len(traversal) != 0 { + ret = append(ret, traversal) + } + } + + return ret, diags +} diff --git a/configs/module.go b/configs/module.go index 5b9f51041..0a4d5b916 100644 --- a/configs/module.go +++ b/configs/module.go @@ -49,7 +49,7 @@ func NewModule(primaryFiles, overrideFiles []*File) (*Module, hcl.Diagnostics) { // analysis of individual elements, but must be built into a Module to detect // duplicate declarations. type File struct { - CoreVersionConstraints []*VersionConstraint + CoreVersionConstraints []VersionConstraint Backends []*Backend ProviderConfigs []*Provider diff --git a/configs/module_call.go b/configs/module_call.go index ca3205cc4..befccb28a 100644 --- a/configs/module_call.go +++ b/configs/module_call.go @@ -1,18 +1,94 @@ package configs import ( + "github.com/hashicorp/hcl2/gohcl" "github.com/hashicorp/hcl2/hcl" + "github.com/hashicorp/hcl2/hcl/hclsyntax" ) // ModuleCall represents a "module" block in a module or file. type ModuleCall struct { - Source string - SourceRange hcl.Range + Name string + + SourceAddr string + SourceAddrRange hcl.Range + + Config hcl.Body Version VersionConstraint Count hcl.Expression ForEach hcl.Expression + DependsOn []hcl.Traversal + DeclRange hcl.Range } + +func decodeModuleBlock(block *hcl.Block) (*ModuleCall, hcl.Diagnostics) { + mc := &ModuleCall{ + Name: block.Labels[0], + DeclRange: block.DefRange, + } + + content, remain, diags := block.Body.PartialContent(moduleBlockSchema) + mc.Config = remain + + if !hclsyntax.ValidIdentifier(mc.Name) { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid module instance name", + Detail: badIdentifierDetail, + Subject: &block.LabelRanges[0], + }) + } + + if attr, exists := content.Attributes["source"]; exists { + valDiags := gohcl.DecodeExpression(attr.Expr, nil, &mc.SourceAddr) + diags = append(diags, valDiags...) + mc.SourceAddrRange = attr.Expr.Range() + } + + if attr, exists := content.Attributes["version"]; exists { + var versionDiags hcl.Diagnostics + mc.Version, versionDiags = decodeVersionConstraint(attr) + diags = append(diags, versionDiags...) + } + + if attr, exists := content.Attributes["count"]; exists { + mc.Count = attr.Expr + } + + if attr, exists := content.Attributes["for_each"]; exists { + mc.ForEach = attr.Expr + } + + if attr, exists := content.Attributes["depends_on"]; exists { + deps, depsDiags := decodeDependsOn(attr) + diags = append(diags, depsDiags...) + mc.DependsOn = append(mc.DependsOn, deps...) + } + + return mc, diags +} + +var moduleBlockSchema = &hcl.BodySchema{ + Attributes: []hcl.AttributeSchema{ + { + Name: "source", + Required: true, + }, + { + Name: "version", + }, + { + Name: "count", + }, + { + Name: "for_each", + }, + { + Name: "depends_on", + }, + }, +} diff --git a/configs/named_values.go b/configs/named_values.go index c2d2c8b83..052b04017 100644 --- a/configs/named_values.go +++ b/configs/named_values.go @@ -1,10 +1,17 @@ package configs import ( + "fmt" + + "github.com/hashicorp/hcl2/gohcl" "github.com/hashicorp/hcl2/hcl" + "github.com/hashicorp/hcl2/hcl/hclsyntax" "github.com/zclconf/go-cty/cty" ) +// A consistent detail message for all "not a valid identifier" diagnostics. +const badIdentifierDetail = "A name must start with a letter and may contain only letters, digits, underscores, and dashes." + // Variable represents a "variable" block in a module or file. type Variable struct { Name string @@ -15,6 +22,82 @@ type Variable struct { DeclRange hcl.Range } +func decodeVariableBlock(block *hcl.Block) (*Variable, hcl.Diagnostics) { + v := &Variable{ + Name: block.Labels[0], + DeclRange: block.DefRange, + } + + content, diags := block.Body.Content(variableBlockSchema) + + if !hclsyntax.ValidIdentifier(v.Name) { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid variable name", + Detail: badIdentifierDetail, + Subject: &block.LabelRanges[0], + }) + } + + // Don't allow declaration of variables that would conflict with the + // reserved attribute and block type names in a "module" block, since + // these won't be usable for child modules. + for _, attr := range moduleBlockSchema.Attributes { + if attr.Name == v.Name { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid variable name", + Detail: fmt.Sprintf("The variable name %q is reserved due to its special meaning inside module blocks.", attr.Name), + Subject: &block.LabelRanges[0], + }) + } + } + + if attr, exists := content.Attributes["description"]; exists { + valDiags := gohcl.DecodeExpression(attr.Expr, nil, &v.Description) + diags = append(diags, valDiags...) + } + + if attr, exists := content.Attributes["default"]; exists { + val, valDiags := attr.Expr.Value(nil) + diags = append(diags, valDiags...) + v.Default = val + } + + if attr, exists := content.Attributes["type"]; exists { + switch hcl.ExprAsKeyword(attr.Expr) { + case "string": + v.TypeHint = TypeHintString + case "list": + v.TypeHint = TypeHintList + case "map": + v.TypeHint = TypeHintMap + default: + // In our legacy configuration format these keywords would've been + // provided as quoted strings, so we'll generate a special error + // message for that to help those who find outdated examples and + // would otherwise be confused. + if exprIsNativeQuotedString(attr.Expr) { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid variable type hint", + Detail: "The type hint keyword must not be given in quotes.", + Subject: attr.Expr.Range().Ptr(), + }) + } else { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid variable type hint", + Detail: "The type argument requires one of the following keywords: string, list, or map.", + Subject: attr.Expr.Range().Ptr(), + }) + } + } + } + + return v, diags +} + // Output represents an "output" block in a module or file. type Output struct { Name string @@ -26,6 +109,46 @@ type Output struct { DeclRange hcl.Range } +func decodeOutputBlock(block *hcl.Block) (*Output, hcl.Diagnostics) { + o := &Output{ + Name: block.Labels[0], + DeclRange: block.DefRange, + } + + content, diags := block.Body.Content(outputBlockSchema) + + if !hclsyntax.ValidIdentifier(o.Name) { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid output name", + Detail: badIdentifierDetail, + Subject: &block.LabelRanges[0], + }) + } + + if attr, exists := content.Attributes["description"]; exists { + valDiags := gohcl.DecodeExpression(attr.Expr, nil, &o.Description) + diags = append(diags, valDiags...) + } + + if attr, exists := content.Attributes["value"]; exists { + o.Expr = attr.Expr + } + + if attr, exists := content.Attributes["sensitive"]; exists { + valDiags := gohcl.DecodeExpression(attr.Expr, nil, &o.Sensitive) + diags = append(diags, valDiags...) + } + + if attr, exists := content.Attributes["depends_on"]; exists { + deps, depsDiags := decodeDependsOn(attr) + diags = append(diags, depsDiags...) + o.DependsOn = append(o.DependsOn, deps...) + } + + return o, diags +} + // Local represents a single entry from a "locals" block in a module or file. // The "locals" block itself is not represented, because it serves only to // provide context for us to interpret its contents. @@ -35,3 +158,61 @@ type Local struct { DeclRange hcl.Range } + +func decodeLocalsBlock(block *hcl.Block) ([]*Local, hcl.Diagnostics) { + attrs, diags := block.Body.JustAttributes() + if len(attrs) == 0 { + return nil, diags + } + + locals := make([]*Local, 0, len(attrs)) + for name, attr := range attrs { + if !hclsyntax.ValidIdentifier(name) { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid local value name", + Detail: badIdentifierDetail, + Subject: &attr.NameRange, + }) + } + + locals = append(locals, &Local{ + Name: name, + Expr: attr.Expr, + DeclRange: attr.Range, + }) + } + return locals, diags +} + +var variableBlockSchema = &hcl.BodySchema{ + Attributes: []hcl.AttributeSchema{ + { + Name: "description", + }, + { + Name: "default", + }, + { + Name: "type", + }, + }, +} + +var outputBlockSchema = &hcl.BodySchema{ + Attributes: []hcl.AttributeSchema{ + { + Name: "description", + }, + { + Name: "value", + Required: true, + }, + { + Name: "depends_on", + }, + { + Name: "sensitive", + }, + }, +} diff --git a/configs/parser_config.go b/configs/parser_config.go new file mode 100644 index 000000000..16eb77c34 --- /dev/null +++ b/configs/parser_config.go @@ -0,0 +1,235 @@ +package configs + +import ( + "github.com/hashicorp/hcl2/hcl" +) + +// LoadConfigFile reads the file at the given path and parses it as a config +// file. +// +// If the file cannot be read -- for example, if it does not exist -- then +// a nil *File will be returned along with error diagnostics. Callers may wish +// to disregard the returned diagnostics in this case and instead generate +// their own error message(s) with additional context. +// +// If the returned diagnostics has errors when a non-nil map is returned +// then the map may be incomplete but should be valid enough for careful +// static analysis. +// +// This method wraps LoadHCLFile, and so it inherits the syntax selection +// behaviors documented for that method. +func (p *Parser) LoadConfigFile(path string) (*File, hcl.Diagnostics) { + body, diags := p.LoadHCLFile(path) + if body == nil { + return nil, diags + } + + file := &File{} + + var reqDiags hcl.Diagnostics + file.CoreVersionConstraints, reqDiags = sniffCoreVersionRequirements(body) + diags = append(diags, reqDiags...) + + content, contentDiags := body.Content(configFileSchema) + diags = append(diags, contentDiags...) + + for _, block := range content.Blocks { + switch block.Type { + + case "terraform": + content, contentDiags := block.Body.Content(terraformBlockSchema) + diags = append(diags, contentDiags...) + + // We ignore the "terraform_version" attribute here because + // sniffCoreVersionRequirements already dealt with that above. + + for _, innerBlock := range content.Blocks { + switch innerBlock.Type { + + case "backend": + backendCfg, cfgDiags := decodeBackendBlock(innerBlock) + diags = append(diags, cfgDiags...) + if backendCfg != nil { + file.Backends = append(file.Backends, backendCfg) + } + + case "required_providers": + reqs, reqsDiags := decodeRequiredProvidersBlock(innerBlock) + diags = append(diags, reqsDiags...) + file.ProviderRequirements = append(file.ProviderRequirements, reqs...) + + default: + // Should never happen because the above cases should be exhaustive + // for all block type names in our schema. + continue + + } + } + + case "provider": + cfg, cfgDiags := decodeProviderBlock(block) + diags = append(diags, cfgDiags...) + if cfg != nil { + file.ProviderConfigs = append(file.ProviderConfigs, cfg) + } + + case "variable": + cfg, cfgDiags := decodeVariableBlock(block) + diags = append(diags, cfgDiags...) + if cfg != nil { + file.Variables = append(file.Variables, cfg) + } + + case "locals": + defs, defsDiags := decodeLocalsBlock(block) + diags = append(diags, defsDiags...) + file.Locals = append(file.Locals, defs...) + + case "output": + cfg, cfgDiags := decodeOutputBlock(block) + diags = append(diags, cfgDiags...) + if cfg != nil { + file.Outputs = append(file.Outputs, cfg) + } + + case "module": + cfg, cfgDiags := decodeModuleBlock(block) + diags = append(diags, cfgDiags...) + if cfg != nil { + file.ModuleCalls = append(file.ModuleCalls, cfg) + } + + case "resource": + cfg, cfgDiags := decodeResourceBlock(block) + diags = append(diags, cfgDiags...) + if cfg != nil { + file.ManagedResources = append(file.ManagedResources, cfg) + } + + case "data": + cfg, cfgDiags := decodeDataBlock(block) + diags = append(diags, cfgDiags...) + if cfg != nil { + file.DataResources = append(file.DataResources, cfg) + } + + default: + // Should never happen because the above cases should be exhaustive + // for all block type names in our schema. + continue + + } + } + + return file, diags +} + +// sniffCoreVersionRequirements does minimal parsing of the given body for +// "terraform" blocks with "required_version" attributes, returning the +// requirements found. +// +// This is intended to maximize the chance that we'll be able to read the +// requirements (syntax errors notwithstanding) even if the config file contains +// constructs that might've been added in future Terraform versions +// +// This is a "best effort" sort of method which will return constraints it is +// able to find, but may return no constraints at all if the given body is +// so invalid that it cannot be decoded at all. +func sniffCoreVersionRequirements(body hcl.Body) ([]VersionConstraint, hcl.Diagnostics) { + rootContent, _, diags := body.PartialContent(configFileVersionSniffRootSchema) + + var constraints []VersionConstraint + + for _, block := range rootContent.Blocks { + content, _, blockDiags := block.Body.PartialContent(configFileVersionSniffBlockSchema) + diags = append(diags, blockDiags...) + + attr, exists := content.Attributes["required_version"] + if !exists { + continue + } + + constraint, constraintDiags := decodeVersionConstraint(attr) + diags = append(diags, constraintDiags...) + if !constraintDiags.HasErrors() { + constraints = append(constraints, constraint) + } + } + + return constraints, diags +} + +// configFileSchema is the schema for the top-level of a config file. We use +// the low-level HCL API for this level so we can easily deal with each +// block type separately with its own decoding logic. +var configFileSchema = &hcl.BodySchema{ + Blocks: []hcl.BlockHeaderSchema{ + { + Type: "terraform", + }, + { + Type: "provider", + LabelNames: []string{"name"}, + }, + { + Type: "variable", + LabelNames: []string{"name"}, + }, + { + Type: "locals", + }, + { + Type: "output", + LabelNames: []string{"name"}, + }, + { + Type: "module", + LabelNames: []string{"name"}, + }, + { + Type: "resource", + LabelNames: []string{"type", "name"}, + }, + { + Type: "data", + LabelNames: []string{"type", "name"}, + }, + }, +} + +// terraformBlockSchema is the schema for a top-level "terraform" block in +// a configuration file. +var terraformBlockSchema = &hcl.BodySchema{ + Attributes: []hcl.AttributeSchema{ + { + Name: "required_version", + }, + }, + Blocks: []hcl.BlockHeaderSchema{ + { + Type: "backend", + LabelNames: []string{"type"}, + }, + { + Type: "required_providers", + }, + }, +} + +// configFileVersionSniffRootSchema is a schema for sniffCoreVersionRequirements +var configFileVersionSniffRootSchema = &hcl.BodySchema{ + Blocks: []hcl.BlockHeaderSchema{ + { + Type: "terraform", + }, + }, +} + +// configFileVersionSniffBlockSchema is a schema for sniffCoreVersionRequirements +var configFileVersionSniffBlockSchema = &hcl.BodySchema{ + Attributes: []hcl.AttributeSchema{ + { + Name: "required_version", + }, + }, +} diff --git a/configs/provider.go b/configs/provider.go index 8145a87dc..d55874ad3 100644 --- a/configs/provider.go +++ b/configs/provider.go @@ -1,7 +1,11 @@ package configs import ( + "fmt" + + "github.com/hashicorp/hcl2/gohcl" "github.com/hashicorp/hcl2/hcl" + "github.com/hashicorp/hcl2/hcl/hclsyntax" ) // Provider represents a "provider" block in a module or file. A provider @@ -9,8 +13,9 @@ import ( // configurations for each actual provider. type Provider struct { Name string + NameRange hcl.Range Alias string - AliasRange hcl.Range + AliasRange *hcl.Range // nil if no alias set Version VersionConstraint @@ -19,6 +24,39 @@ type Provider struct { DeclRange hcl.Range } +func decodeProviderBlock(block *hcl.Block) (*Provider, hcl.Diagnostics) { + content, config, diags := block.Body.PartialContent(providerBlockSchema) + + provider := &Provider{ + Name: block.Labels[0], + NameRange: block.LabelRanges[0], + Config: config, + DeclRange: block.DefRange, + } + + if attr, exists := content.Attributes["alias"]; exists { + valDiags := gohcl.DecodeExpression(attr.Expr, nil, &provider.Alias) + diags = append(diags, valDiags...) + provider.AliasRange = attr.Expr.Range().Ptr() + + if !hclsyntax.ValidIdentifier(provider.Alias) { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid provider configuration alias", + Detail: fmt.Sprintf("An alias must be a valid name. %s", badIdentifierDetail), + }) + } + } + + if attr, exists := content.Attributes["version"]; exists { + var versionDiags hcl.Diagnostics + provider.Version, versionDiags = decodeVersionConstraint(attr) + diags = append(diags, versionDiags...) + } + + return provider, diags +} + // ProviderRequirement represents a declaration of a dependency on a particular // provider version without actually configuring that provider. This is used in // child modules that expect a provider to be passed in from their parent. @@ -26,3 +64,30 @@ type ProviderRequirement struct { Name string Requirement VersionConstraint } + +func decodeRequiredProvidersBlock(block *hcl.Block) ([]*ProviderRequirement, hcl.Diagnostics) { + attrs, diags := block.Body.JustAttributes() + var reqs []*ProviderRequirement + for name, attr := range attrs { + req, reqDiags := decodeVersionConstraint(attr) + diags = append(diags, reqDiags...) + if !diags.HasErrors() { + reqs = append(reqs, &ProviderRequirement{ + Name: name, + Requirement: req, + }) + } + } + return reqs, diags +} + +var providerBlockSchema = &hcl.BodySchema{ + Attributes: []hcl.AttributeSchema{ + { + Name: "alias", + }, + { + Name: "version", + }, + }, +} diff --git a/configs/provisioner.go b/configs/provisioner.go new file mode 100644 index 000000000..03c14e16c --- /dev/null +++ b/configs/provisioner.go @@ -0,0 +1,185 @@ +package configs + +import ( + "fmt" + + "github.com/hashicorp/hcl2/gohcl" + "github.com/hashicorp/hcl2/hcl" +) + +// Provisioner represents a "provisioner" block when used within a +// "resource" block in a module or file. +type Provisioner struct { + Type string + Config hcl.Body + Connection *Connection + When ProvisionerWhen + OnFailure ProvisionerOnFailure + + DeclRange hcl.Range + TypeRange hcl.Range +} + +func decodeProvisionerBlock(block *hcl.Block) (*Provisioner, hcl.Diagnostics) { + pv := &Provisioner{ + Type: block.Labels[0], + TypeRange: block.LabelRanges[0], + DeclRange: block.DefRange, + When: ProvisionerWhenCreate, + OnFailure: ProvisionerOnFailureFail, + } + + content, config, diags := block.Body.PartialContent(provisionerBlockSchema) + pv.Config = config + + if attr, exists := content.Attributes["when"]; exists { + switch hcl.ExprAsKeyword(attr.Expr) { + case "create": + pv.When = ProvisionerWhenCreate + case "destroy": + pv.When = ProvisionerWhenDestroy + default: + if exprIsNativeQuotedString(attr.Expr) { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid \"when\" keyword", + Detail: "The \"when\" argument keyword must not be given in quotes.", + Subject: attr.Expr.Range().Ptr(), + }) + } else { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid \"when\" keyword", + Detail: "The \"when\" argument requires one of the following keywords: create or destroy.", + Subject: attr.Expr.Range().Ptr(), + }) + } + } + } + + if attr, exists := content.Attributes["on_failure"]; exists { + switch hcl.ExprAsKeyword(attr.Expr) { + case "continue": + pv.OnFailure = ProvisionerOnFailureContinue + case "fail": + pv.OnFailure = ProvisionerOnFailureFail + default: + if exprIsNativeQuotedString(attr.Expr) { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid \"on_failure\" keyword", + Detail: "The \"on_failure\" argument keyword must not be given in quotes.", + Subject: attr.Expr.Range().Ptr(), + }) + } else { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid \"on_failure\" keyword", + Detail: "The \"on_failure\" argument requires one of the following keywords: continue or fail.", + Subject: attr.Expr.Range().Ptr(), + }) + } + } + } + + var seenConnection *hcl.Block + for _, block := range content.Blocks { + switch block.Type { + + case "connection": + if seenConnection != nil { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Duplicate connection block", + Detail: fmt.Sprintf("This provisioner already has a connection block at %s.", seenConnection.DefRange), + Subject: &block.DefRange, + }) + continue + } + seenConnection = block + + conn, connDiags := decodeConnectionBlock(block) + diags = append(diags, connDiags...) + pv.Connection = conn + + default: + // Should never happen because there are no other block types + // declared in our schema. + } + } + + return pv, diags +} + +// Connection represents a "connection" block when used within either a +// "resource" or "provisioner" block in a module or file. +type Connection struct { + Type string + Config hcl.Body + + DeclRange hcl.Range + TypeRange *hcl.Range // nil if type is not set +} + +func decodeConnectionBlock(block *hcl.Block) (*Connection, hcl.Diagnostics) { + content, config, diags := block.Body.PartialContent(&hcl.BodySchema{ + Attributes: []hcl.AttributeSchema{ + { + Name: "type", + }, + }, + }) + + conn := &Connection{ + Type: "ssh", + Config: config, + DeclRange: block.DefRange, + } + + if attr, exists := content.Attributes["type"]; exists { + valDiags := gohcl.DecodeExpression(attr.Expr, nil, &conn.Type) + diags = append(diags, valDiags...) + conn.TypeRange = attr.Expr.Range().Ptr() + } + + return conn, diags +} + +// ProvisionerWhen is an enum for valid values for when to run provisioners. +type ProvisionerWhen int + +//go:generate stringer -type ProvisionerWhen + +const ( + ProvisionerWhenInvalid ProvisionerWhen = iota + ProvisionerWhenCreate + ProvisionerWhenDestroy +) + +// ProvisionerOnFailure is an enum for valid values for on_failure options +// for provisioners. +type ProvisionerOnFailure int + +//go:generate stringer -type ProvisionerOnFailure + +const ( + ProvisionerOnFailureInvalid ProvisionerOnFailure = iota + ProvisionerOnFailureContinue + ProvisionerOnFailureFail +) + +var provisionerBlockSchema = &hcl.BodySchema{ + Attributes: []hcl.AttributeSchema{ + { + Name: "when", + }, + { + Name: "on_failure", + }, + }, + Blocks: []hcl.BlockHeaderSchema{ + { + Type: "connection", + }, + }, +} diff --git a/configs/resource.go b/configs/resource.go index 459ce0d3d..027d04b2b 100644 --- a/configs/resource.go +++ b/configs/resource.go @@ -1,7 +1,11 @@ package configs import ( + "fmt" + + "github.com/hashicorp/hcl2/gohcl" "github.com/hashicorp/hcl2/hcl" + "github.com/hashicorp/hcl2/hcl/hclsyntax" ) // ManagedResource represents a "resource" block in a module or file. @@ -12,7 +16,7 @@ type ManagedResource struct { Count hcl.Expression ForEach hcl.Expression - ProviderConfigAddr hcl.Traversal + ProviderConfigRef *ProviderConfigRef DependsOn []hcl.Traversal @@ -24,6 +28,130 @@ type ManagedResource struct { IgnoreChanges []hcl.Traversal DeclRange hcl.Range + TypeRange hcl.Range +} + +func decodeResourceBlock(block *hcl.Block) (*ManagedResource, hcl.Diagnostics) { + r := &ManagedResource{ + Type: block.Labels[0], + Name: block.Labels[1], + DeclRange: block.DefRange, + TypeRange: block.LabelRanges[0], + } + + content, remain, diags := block.Body.PartialContent(resourceBlockSchema) + r.Config = remain + + if !hclsyntax.ValidIdentifier(r.Type) { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid resource type name", + Detail: badIdentifierDetail, + Subject: &block.LabelRanges[0], + }) + } + if !hclsyntax.ValidIdentifier(r.Name) { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid resource name", + Detail: badIdentifierDetail, + Subject: &block.LabelRanges[0], + }) + } + + if attr, exists := content.Attributes["count"]; exists { + r.Count = attr.Expr + } + + if attr, exists := content.Attributes["for_each"]; exists { + r.Count = attr.Expr + } + + if attr, exists := content.Attributes["provider"]; exists { + var providerDiags hcl.Diagnostics + r.ProviderConfigRef, providerDiags = decodeProviderConfigRef(attr) + diags = append(diags, providerDiags...) + } + + if attr, exists := content.Attributes["depends_on"]; exists { + deps, depsDiags := decodeDependsOn(attr) + diags = append(diags, depsDiags...) + r.DependsOn = append(r.DependsOn, deps...) + } + + var seenLifecycle *hcl.Block + var seenConnection *hcl.Block + for _, block := range content.Blocks { + switch block.Type { + case "lifecycle": + if seenLifecycle != nil { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Duplicate lifecycle block", + Detail: fmt.Sprintf("This resource already has a lifecycle block at %s.", seenLifecycle.DefRange), + Subject: &block.DefRange, + }) + continue + } + seenLifecycle = block + + lcContent, lcDiags := block.Body.Content(resourceLifecycleBlockSchema) + diags = append(diags, lcDiags...) + + if attr, exists := lcContent.Attributes["create_before_destroy"]; exists { + valDiags := gohcl.DecodeExpression(attr.Expr, nil, &r.CreateBeforeDestroy) + diags = append(diags, valDiags...) + } + + if attr, exists := lcContent.Attributes["prevent_destroy"]; exists { + valDiags := gohcl.DecodeExpression(attr.Expr, nil, &r.PreventDestroy) + diags = append(diags, valDiags...) + } + + if attr, exists := lcContent.Attributes["ignore_changes"]; exists { + exprs, listDiags := hcl.ExprList(attr.Expr) + diags = append(diags, listDiags...) + + for _, expr := range exprs { + traversal, travDiags := hcl.RelTraversalForExpr(expr) + diags = append(diags, travDiags...) + if len(traversal) != 0 { + r.IgnoreChanges = append(r.IgnoreChanges, traversal) + } + } + } + + case "connection": + if seenConnection != nil { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Duplicate connection block", + Detail: fmt.Sprintf("This resource already has a connection block at %s.", seenConnection.DefRange), + Subject: &block.DefRange, + }) + continue + } + seenConnection = block + + conn, connDiags := decodeConnectionBlock(block) + diags = append(diags, connDiags...) + r.Connection = conn + + case "provisioner": + pv, pvDiags := decodeProvisionerBlock(block) + diags = append(diags, pvDiags...) + if pv != nil { + r.Provisioners = append(r.Provisioners, pv) + } + + default: + // Should never happen, because the above cases should always be + // exhaustive for all the types specified in our schema. + continue + } + } + + return r, diags } // DataResource represents a "data" block in a module or file. @@ -34,53 +162,196 @@ type DataResource struct { Count hcl.Expression ForEach hcl.Expression - ProviderConfigAddr hcl.Traversal + ProviderConfigRef *ProviderConfigRef DependsOn []hcl.Traversal DeclRange hcl.Range + TypeRange hcl.Range } -// Provisioner represents a "provisioner" block when used within a -// "resource" block in a module or file. -type Provisioner struct { - Type string - Config hcl.Body - Connection *Connection - When ProvisionerWhen - OnFailure ProvisionerOnFailure +func decodeDataBlock(block *hcl.Block) (*DataResource, hcl.Diagnostics) { + r := &DataResource{ + Type: block.Labels[0], + Name: block.Labels[1], + DeclRange: block.DefRange, + TypeRange: block.LabelRanges[0], + } - DeclRange hcl.Range + content, remain, diags := block.Body.PartialContent(dataBlockSchema) + r.Config = remain + + if !hclsyntax.ValidIdentifier(r.Type) { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid data source name", + Detail: badIdentifierDetail, + Subject: &block.LabelRanges[0], + }) + } + if !hclsyntax.ValidIdentifier(r.Name) { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid data resource name", + Detail: badIdentifierDetail, + Subject: &block.LabelRanges[0], + }) + } + + if attr, exists := content.Attributes["count"]; exists { + r.Count = attr.Expr + } + + if attr, exists := content.Attributes["for_each"]; exists { + r.Count = attr.Expr + } + + if attr, exists := content.Attributes["provider"]; exists { + var providerDiags hcl.Diagnostics + r.ProviderConfigRef, providerDiags = decodeProviderConfigRef(attr) + diags = append(diags, providerDiags...) + } + + if attr, exists := content.Attributes["depends_on"]; exists { + deps, depsDiags := decodeDependsOn(attr) + diags = append(diags, depsDiags...) + r.DependsOn = append(r.DependsOn, deps...) + } + + for _, block := range content.Blocks { + // Our schema only allows for "lifecycle" blocks, so we can assume + // that this is all we will see here. We don't have any lifecycle + // attributes for data resources currently, so we'll just produce + // an error. + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Unsupported lifecycle block", + Detail: "Data resources do not have lifecycle settings, so a lifecycle block is not allowed.", + Subject: &block.DefRange, + }) + break + } + + return r, diags } -// Connection represents a "connection" block when used within either a -// "resource" or "provisioner" block in a module or file. -type Connection struct { - Type string - Config hcl.Body - - DeclRange hcl.Range +type ProviderConfigRef struct { + Name string + NameRange hcl.Range + Alias string + AliasRange *hcl.Range // nil if alias not set } -// ProvisionerWhen is an enum for valid values for when to run provisioners. -type ProvisionerWhen int +func decodeProviderConfigRef(attr *hcl.Attribute) (*ProviderConfigRef, hcl.Diagnostics) { + var diags hcl.Diagnostics + traversal, travDiags := hcl.AbsTraversalForExpr(attr.Expr) -//go:generate stringer -type ProvisionerWhen + // AbsTraversalForExpr produces only generic errors, so we'll discard + // the errors given and produce our own with extra context. If we didn't + // get any errors then we might still have warnings, though. + if !travDiags.HasErrors() { + diags = append(diags, travDiags...) + } -const ( - ProvisionerWhenInvalid ProvisionerWhen = iota - ProvisionerWhenCreate - ProvisionerWhenDestroy -) + if len(traversal) < 1 && len(traversal) > 2 { + // A provider reference was given as a string literal in the legacy + // configuration language and there are lots of examples out there + // showing that usage, so we'll sniff for that situation here and + // produce a specialized error message for it to help users find + // the new correct form. + if exprIsNativeQuotedString(attr.Expr) { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid provider configuration reference", + Detail: "A provider configuration reference must not be given in quotes.", + Subject: attr.Expr.Range().Ptr(), + }) + return nil, diags + } -// ProvisionerOnFailure is an enum for valid values for on_failure options -// for provisioners. -type ProvisionerOnFailure int + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid provider configuration reference", + Detail: fmt.Sprintf("The %s argument requires a provider type name, optionally followed by a period and then a configuration alias.", attr.Name), + Subject: attr.Expr.Range().Ptr(), + }) + return nil, diags + } -//go:generate stringer -type ProvisionerOnFailure + ret := &ProviderConfigRef{ + Name: traversal.RootName(), + NameRange: traversal[0].SourceRange(), + } -const ( - ProvisionerOnFailureInvalid ProvisionerOnFailure = iota - ProvisionerOnFailureContinue - ProvisionerOnFailureFail -) + if len(traversal) > 1 { + aliasStep, ok := traversal[1].(hcl.TraverseAttr) + if !ok { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid provider configuration reference", + Detail: "Provider name must either stand alone or be followed by a period and then a configuration alias.", + Subject: traversal[1].SourceRange().Ptr(), + }) + return ret, diags + } + + ret.Alias = aliasStep.Name + ret.AliasRange = aliasStep.SourceRange().Ptr() + } + + return ret, diags +} + +var commonResourceAttributes = []hcl.AttributeSchema{ + { + Name: "count", + }, + { + Name: "for_each", + }, + { + Name: "provider", + }, + { + Name: "depends_on", + }, +} + +var resourceBlockSchema = &hcl.BodySchema{ + Attributes: commonResourceAttributes, + Blocks: []hcl.BlockHeaderSchema{ + { + Type: "lifecycle", + }, + { + Type: "connection", + }, + { + Type: "provisioner", + LabelNames: []string{"type"}, + }, + }, +} + +var dataBlockSchema = &hcl.BodySchema{ + Attributes: commonResourceAttributes, + Blocks: []hcl.BlockHeaderSchema{ + { + Type: "lifecycle", + }, + }, +} + +var resourceLifecycleBlockSchema = &hcl.BodySchema{ + Attributes: []hcl.AttributeSchema{ + { + Name: "create_before_destroy", + }, + { + Name: "prevent_destroy", + }, + { + Name: "ignore_changes", + }, + }, +} diff --git a/configs/util.go b/configs/util.go new file mode 100644 index 000000000..9594cbeee --- /dev/null +++ b/configs/util.go @@ -0,0 +1,18 @@ +package configs + +import ( + "github.com/hashicorp/hcl2/hcl" + "github.com/hashicorp/hcl2/hcl/hclsyntax" +) + +// exprIsNativeQuotedString determines whether the given expression looks like +// it's a quoted string in the HCL native syntax. +// +// This should be used sparingly only for situations where our legacy HCL +// decoding would've expected a keyword or reference in quotes but our new +// decoding expects the keyword or reference to be provided directly as +// an identifier-based expression. +func exprIsNativeQuotedString(expr hcl.Expression) bool { + _, ok := expr.(*hclsyntax.TemplateExpr) + return ok +} diff --git a/configs/version_constraint.go b/configs/version_constraint.go index 6b2882cee..00dc739a7 100644 --- a/configs/version_constraint.go +++ b/configs/version_constraint.go @@ -1,8 +1,12 @@ package configs import ( + "fmt" + version "github.com/hashicorp/go-version" "github.com/hashicorp/hcl2/hcl" + "github.com/zclconf/go-cty/cty" + "github.com/zclconf/go-cty/cty/convert" ) // VersionConstraint represents a version constraint on some resource @@ -10,6 +14,48 @@ import ( // a source range so that a helpful diagnostic can be printed in the event // that a particular constraint does not match. type VersionConstraint struct { - Required []version.Constraints + Required version.Constraints DeclRange hcl.Range } + +func decodeVersionConstraint(attr *hcl.Attribute) (VersionConstraint, hcl.Diagnostics) { + ret := VersionConstraint{ + DeclRange: attr.Range, + } + + val, diags := attr.Expr.Value(nil) + var err error + val, err = convert.Convert(val, cty.String) + if err != nil { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid version constraint", + Detail: fmt.Sprintf("A string value is required for %s.", attr.Name), + Subject: attr.Expr.Range().Ptr(), + }) + return ret, diags + } + + if val.IsNull() { + // A null version constraint is strange, but we'll just treat it + // like an empty constraint set. + return ret, diags + } + + constraintStr := val.AsString() + constraints, err := version.NewConstraint(constraintStr) + if err != nil { + // NewConstraint doesn't return user-friendly errors, so we'll just + // ignore the provided error and produce our own generic one. + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid version constraint", + Detail: "This string does not use correct version constraint syntax.", // Not very actionable :( + Subject: attr.Expr.Range().Ptr(), + }) + return ret, diags + } + + ret.Required = constraints + return ret, diags +} From e524d1eb95c22e5b37dade909935f550db8b2190 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Fri, 2 Feb 2018 17:24:28 -0800 Subject: [PATCH 057/156] configs: Simple test of loading valid configuration files This test is intended to be an easy-to-maintain catalog of good examples that we can use to catch certain parsing or decoding regressions easily. It's not a fully-comprehensive test since it doesn't check the result of decoding, instead just accepting any decode that completes without errors. However, an easy-to-maintain test like this is a good complement to some more specialized tests since we can easily collect good examples over time and just add them in here. --- configs/parser_config_test.go | 43 +++++++++++++++++++ configs/test-fixtures/valid-files/backend.tf | 10 +++++ .../test-fixtures/valid-files/data-sources.tf | 15 +++++++ configs/test-fixtures/valid-files/empty.tf | 0 .../test-fixtures/valid-files/empty.tf.json | 1 + configs/test-fixtures/valid-files/locals.tf | 16 +++++++ .../test-fixtures/valid-files/locals.tf.json | 10 +++++ .../test-fixtures/valid-files/module-calls.tf | 26 +++++++++++ configs/test-fixtures/valid-files/outputs.tf | 25 +++++++++++ .../valid-files/provider-configs.tf | 15 +++++++ .../valid-files/required-providers.tf | 7 +++ .../valid-files/required-version.tf | 4 ++ .../test-fixtures/valid-files/resources.tf | 42 ++++++++++++++++++ .../test-fixtures/valid-files/variables.tf | 24 +++++++++++ .../valid-files/variables.tf.json | 21 +++++++++ 15 files changed, 259 insertions(+) create mode 100644 configs/parser_config_test.go create mode 100644 configs/test-fixtures/valid-files/backend.tf create mode 100644 configs/test-fixtures/valid-files/data-sources.tf create mode 100644 configs/test-fixtures/valid-files/empty.tf create mode 100644 configs/test-fixtures/valid-files/empty.tf.json create mode 100644 configs/test-fixtures/valid-files/locals.tf create mode 100644 configs/test-fixtures/valid-files/locals.tf.json create mode 100644 configs/test-fixtures/valid-files/module-calls.tf create mode 100644 configs/test-fixtures/valid-files/outputs.tf create mode 100644 configs/test-fixtures/valid-files/provider-configs.tf create mode 100644 configs/test-fixtures/valid-files/required-providers.tf create mode 100644 configs/test-fixtures/valid-files/required-version.tf create mode 100644 configs/test-fixtures/valid-files/resources.tf create mode 100644 configs/test-fixtures/valid-files/variables.tf create mode 100644 configs/test-fixtures/valid-files/variables.tf.json diff --git a/configs/parser_config_test.go b/configs/parser_config_test.go new file mode 100644 index 000000000..affc94626 --- /dev/null +++ b/configs/parser_config_test.go @@ -0,0 +1,43 @@ +package configs + +import ( + "io/ioutil" + "path/filepath" + "testing" +) + +// TestParseLoadConfigFileSuccess is a simple test that just verifies that +// a number of test configuration files (in test-fixtures/valid-files) can +// be parsed without raising any diagnostics. +// +// This test does not verify that reading these files produces the correct +// file element contents. More detailed assertions may be made on some subset +// of these configuration files in other tests. +func TestParserLoadConfigFileSuccess(t *testing.T) { + files, err := ioutil.ReadDir("test-fixtures/valid-files") + if err != nil { + t.Fatal(err) + } + + for _, info := range files { + name := info.Name() + t.Run(name, func(t *testing.T) { + src, err := ioutil.ReadFile(filepath.Join("test-fixtures/valid-files", name)) + if err != nil { + t.Fatal(err) + } + + parser := testParser(map[string]string{ + name: string(src), + }) + + _, diags := parser.LoadConfigFile(name) + if len(diags) != 0 { + t.Errorf("unexpected diagnostics") + for _, diag := range diags { + t.Logf("- %s", diag) + } + } + }) + } +} diff --git a/configs/test-fixtures/valid-files/backend.tf b/configs/test-fixtures/valid-files/backend.tf new file mode 100644 index 000000000..bd8e0f669 --- /dev/null +++ b/configs/test-fixtures/valid-files/backend.tf @@ -0,0 +1,10 @@ + +terraform { + backend "example" { + foo = "bar" + + baz { + bar = "foo" + } + } +} diff --git a/configs/test-fixtures/valid-files/data-sources.tf b/configs/test-fixtures/valid-files/data-sources.tf new file mode 100644 index 000000000..f14dffdac --- /dev/null +++ b/configs/test-fixtures/valid-files/data-sources.tf @@ -0,0 +1,15 @@ +data "http" "example1" { +} + +data "http" "example2" { + url = "http://example.com/" + + request_headers = { + "Accept" = "application/json" + } + + count = 5 + depends_on = [ + data.http.example1, + ] +} diff --git a/configs/test-fixtures/valid-files/empty.tf b/configs/test-fixtures/valid-files/empty.tf new file mode 100644 index 000000000..e69de29bb diff --git a/configs/test-fixtures/valid-files/empty.tf.json b/configs/test-fixtures/valid-files/empty.tf.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/configs/test-fixtures/valid-files/empty.tf.json @@ -0,0 +1 @@ +{} diff --git a/configs/test-fixtures/valid-files/locals.tf b/configs/test-fixtures/valid-files/locals.tf new file mode 100644 index 000000000..f2ee4a7c4 --- /dev/null +++ b/configs/test-fixtures/valid-files/locals.tf @@ -0,0 +1,16 @@ + +locals { + # This block intentionally left blank +} + +locals { + foo = "foo" + bar = true +} + +locals { + baz = "oink" + dunno = "🤷" + rowing = "🚣‍♀️" + π = 3.14159265359 +} diff --git a/configs/test-fixtures/valid-files/locals.tf.json b/configs/test-fixtures/valid-files/locals.tf.json new file mode 100644 index 000000000..525f69d6f --- /dev/null +++ b/configs/test-fixtures/valid-files/locals.tf.json @@ -0,0 +1,10 @@ +{ + "locals": { + "foo": "foo", + "bar": true, + "baz": "oink", + "dunno": "🤷", + "rowing": "🚣‍♀️", + "π": 3.14159265359 + } +} diff --git a/configs/test-fixtures/valid-files/module-calls.tf b/configs/test-fixtures/valid-files/module-calls.tf new file mode 100644 index 000000000..abd423586 --- /dev/null +++ b/configs/test-fixtures/valid-files/module-calls.tf @@ -0,0 +1,26 @@ + +module "foo" { + source = "./foo" + # this block intentionally left (almost) blank +} + +module "bar" { + source = "hashicorp/bar/aws" + + boom = "🎆" + yes = true +} + +module "baz" { + source = "git::https://example.com/" + + a = 1 + + count = 12 + for_each = ["a", "b", "c"] + + depends_on = [ + module.bar, + ] +} + diff --git a/configs/test-fixtures/valid-files/outputs.tf b/configs/test-fixtures/valid-files/outputs.tf new file mode 100644 index 000000000..7a8066686 --- /dev/null +++ b/configs/test-fixtures/valid-files/outputs.tf @@ -0,0 +1,25 @@ + +output "foo" { + value = "hello" +} + +output "bar" { + value = local.bar +} + +output "baz" { + value = "ssshhhhhhh" + sensitive = true +} + +output "cheeze_pizza" { + description = "Nothing special" + value = "🍕" +} + +output "π" { + value = 3.14159265359 + depends_on = [ + pizza.cheese, + ] +} diff --git a/configs/test-fixtures/valid-files/provider-configs.tf b/configs/test-fixtures/valid-files/provider-configs.tf new file mode 100644 index 000000000..a07f08be8 --- /dev/null +++ b/configs/test-fixtures/valid-files/provider-configs.tf @@ -0,0 +1,15 @@ + +provider "foo" { +} + +provider "bar" { + version = ">= 1.0.2" + + other = 12 +} + +provider "bar" { + other = 13 + + alias = "bar" +} diff --git a/configs/test-fixtures/valid-files/required-providers.tf b/configs/test-fixtures/valid-files/required-providers.tf new file mode 100644 index 000000000..271df4a57 --- /dev/null +++ b/configs/test-fixtures/valid-files/required-providers.tf @@ -0,0 +1,7 @@ + +terraform { + required_providers { + aws = "~> 1.0.0" + consul = "~> 1.2.0" + } +} diff --git a/configs/test-fixtures/valid-files/required-version.tf b/configs/test-fixtures/valid-files/required-version.tf new file mode 100644 index 000000000..77c9a3570 --- /dev/null +++ b/configs/test-fixtures/valid-files/required-version.tf @@ -0,0 +1,4 @@ + +terraform { + required_version = "~> 0.12.0" +} diff --git a/configs/test-fixtures/valid-files/resources.tf b/configs/test-fixtures/valid-files/resources.tf new file mode 100644 index 000000000..53fb74533 --- /dev/null +++ b/configs/test-fixtures/valid-files/resources.tf @@ -0,0 +1,42 @@ +resource "aws_security_group" "firewall" { + lifecycle { + create_before_destroy = true + prevent_destroy = true + ignore_changes = [ + description, + ] + } + + connection { + host = "127.0.0.1" + } + + provisioner "local-exec" { + command = "echo hello" + + connection { + host = "10.1.2.1" + } + } + + provisioner "local-exec" { + command = "echo hello" + } +} + +resource "aws_instance" "web" { + ami = "ami-1234" + security_groups = [ + "foo", + "bar", + ] + + network_interface { + device_index = 0 + description = "Main network interface" + } + + depends_on = [ + aws_security_group.firewall, + ] +} diff --git a/configs/test-fixtures/valid-files/variables.tf b/configs/test-fixtures/valid-files/variables.tf new file mode 100644 index 000000000..185d9de55 --- /dev/null +++ b/configs/test-fixtures/valid-files/variables.tf @@ -0,0 +1,24 @@ + +variable "foo" { +} + +variable "bar" { + default = "hello" +} + +variable "baz" { + type = list +} + +variable "bar-baz" { + default = [] + type = list +} + +variable "cheeze_pizza" { + description = "Nothing special" +} + +variable "π" { + default = 3.14159265359 +} diff --git a/configs/test-fixtures/valid-files/variables.tf.json b/configs/test-fixtures/valid-files/variables.tf.json new file mode 100644 index 000000000..3c97d6178 --- /dev/null +++ b/configs/test-fixtures/valid-files/variables.tf.json @@ -0,0 +1,21 @@ +{ + "variable": { + "foo": {}, + "bar": { + "default": "hello" + }, + "baz": { + "type": "list" + }, + "bar-baz": { + "default": [], + "type": "list" + }, + "cheese_pizza": { + "description": "Nothing special" + }, + "π": { + "default": 3.14159265359 + } + } +} From 9be399d49c2521ccb3b7dafb8d5eab227b6910fa Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Fri, 2 Feb 2018 17:40:28 -0800 Subject: [PATCH 058/156] configs: Another simple test for _invalid_ config files Much like TestParserLoadConfigFileSuccess, this is intended to be an easy-to-maintain collection of bad examples to test different permutations of our error handling. As with TestParserLoadConfigFileSuccess, we should also have more specific tests alongside this that check that the error outcome is what was expected, since this test just accepts any error and may thus not be testing what we think it is. --- configs/parser_config_test.go | 101 ++++++++++++++++++ .../invalid-files/data-resource-lifecycle.tf | 5 + .../resource-lifecycle-badbool.tf | 5 + .../invalid-files/unexpected-attr.tf | 1 + .../invalid-files/unexpected-block.tf | 2 + .../invalid-files/variable-type-quoted.tf | 3 + .../invalid-files/variable-type-unknown.tf | 3 + .../invalid-files/zerolen.tf.json | 0 8 files changed, 120 insertions(+) create mode 100644 configs/test-fixtures/invalid-files/data-resource-lifecycle.tf create mode 100644 configs/test-fixtures/invalid-files/resource-lifecycle-badbool.tf create mode 100644 configs/test-fixtures/invalid-files/unexpected-attr.tf create mode 100644 configs/test-fixtures/invalid-files/unexpected-block.tf create mode 100644 configs/test-fixtures/invalid-files/variable-type-quoted.tf create mode 100644 configs/test-fixtures/invalid-files/variable-type-unknown.tf create mode 100644 configs/test-fixtures/invalid-files/zerolen.tf.json diff --git a/configs/parser_config_test.go b/configs/parser_config_test.go index affc94626..2f118933c 100644 --- a/configs/parser_config_test.go +++ b/configs/parser_config_test.go @@ -4,6 +4,8 @@ import ( "io/ioutil" "path/filepath" "testing" + + "github.com/hashicorp/hcl2/hcl" ) // TestParseLoadConfigFileSuccess is a simple test that just verifies that @@ -41,3 +43,102 @@ func TestParserLoadConfigFileSuccess(t *testing.T) { }) } } + +// TestParseLoadConfigFileFailure is a simple test that just verifies that +// a number of test configuration files (in test-fixtures/invalid-files) +// produce errors as expected. +// +// This test does not verify specific error messages, so more detailed +// assertions should be made on some subset of these configuration files in +// other tests. +func TestParserLoadConfigFileFailure(t *testing.T) { + files, err := ioutil.ReadDir("test-fixtures/invalid-files") + if err != nil { + t.Fatal(err) + } + + for _, info := range files { + name := info.Name() + t.Run(name, func(t *testing.T) { + src, err := ioutil.ReadFile(filepath.Join("test-fixtures/invalid-files", name)) + if err != nil { + t.Fatal(err) + } + + parser := testParser(map[string]string{ + name: string(src), + }) + + _, diags := parser.LoadConfigFile(name) + if !diags.HasErrors() { + t.Errorf("LoadConfigFile succeeded; want errors") + } + for _, diag := range diags { + t.Logf("- %s", diag) + } + }) + } +} + +// This test uses a subset of the same fixture files as +// TestParserLoadConfigFileFailure, but additionally verifies that each +// file produces the expected diagnostic summary. +func TestParserLoadConfigFileFailureMessages(t *testing.T) { + tests := []struct { + Filename string + WantError string + }{ + { + "data-resource-lifecycle.tf", + "Unsupported lifecycle block", + }, + { + "variable-type-unknown.tf", + "Invalid variable type hint", + }, + { + "variable-type-quoted.tf", + "Invalid variable type hint", + }, + { + "unexpected-attr.tf", + "Unsupported attribute", + }, + { + "unexpected-block.tf", + "Unsupported block type", + }, + { + "resource-lifecycle-badbool.tf", + "Unsuitable value type", + }, + } + + for _, test := range tests { + t.Run(test.Filename, func(t *testing.T) { + src, err := ioutil.ReadFile(filepath.Join("test-fixtures/invalid-files", test.Filename)) + if err != nil { + t.Fatal(err) + } + + parser := testParser(map[string]string{ + test.Filename: string(src), + }) + + _, diags := parser.LoadConfigFile(test.Filename) + if len(diags) != 1 { + t.Errorf("Wrong number of diagnostics %d; want 1", len(diags)) + for _, diag := range diags { + t.Logf("- %s", diag) + } + return + } + if diags[0].Severity != hcl.DiagError { + t.Errorf("Wrong diagnostic severity %s; want %s", diags[0].Severity, hcl.DiagError) + } + if diags[0].Summary != test.WantError { + t.Errorf("Wrong diagnostic summary\ngot: %s\nwant: %s", diags[0].Summary, test.WantError) + } + }) + } +} diff --git a/configs/test-fixtures/invalid-files/data-resource-lifecycle.tf b/configs/test-fixtures/invalid-files/data-resource-lifecycle.tf new file mode 100644 index 000000000..b0c34d463 --- /dev/null +++ b/configs/test-fixtures/invalid-files/data-resource-lifecycle.tf @@ -0,0 +1,5 @@ +data "example" "example" { + lifecycle { + # This block intentionally left blank + } +} diff --git a/configs/test-fixtures/invalid-files/resource-lifecycle-badbool.tf b/configs/test-fixtures/invalid-files/resource-lifecycle-badbool.tf new file mode 100644 index 000000000..fdddb6944 --- /dev/null +++ b/configs/test-fixtures/invalid-files/resource-lifecycle-badbool.tf @@ -0,0 +1,5 @@ +resource "example" "example" { + lifecycle { + create_before_destroy = "ABSOLUTELY NOT" + } +} diff --git a/configs/test-fixtures/invalid-files/unexpected-attr.tf b/configs/test-fixtures/invalid-files/unexpected-attr.tf new file mode 100644 index 000000000..5abc475eb --- /dev/null +++ b/configs/test-fixtures/invalid-files/unexpected-attr.tf @@ -0,0 +1 @@ +foo = "bar" diff --git a/configs/test-fixtures/invalid-files/unexpected-block.tf b/configs/test-fixtures/invalid-files/unexpected-block.tf new file mode 100644 index 000000000..491173c38 --- /dev/null +++ b/configs/test-fixtures/invalid-files/unexpected-block.tf @@ -0,0 +1,2 @@ +varyable "whoops" { +} diff --git a/configs/test-fixtures/invalid-files/variable-type-quoted.tf b/configs/test-fixtures/invalid-files/variable-type-quoted.tf new file mode 100644 index 000000000..15db803f2 --- /dev/null +++ b/configs/test-fixtures/invalid-files/variable-type-quoted.tf @@ -0,0 +1,3 @@ +variable "bad_type" { + type = "string" +} diff --git a/configs/test-fixtures/invalid-files/variable-type-unknown.tf b/configs/test-fixtures/invalid-files/variable-type-unknown.tf new file mode 100644 index 000000000..bcbb88d90 --- /dev/null +++ b/configs/test-fixtures/invalid-files/variable-type-unknown.tf @@ -0,0 +1,3 @@ +variable "bad_type" { + type = notatype +} diff --git a/configs/test-fixtures/invalid-files/zerolen.tf.json b/configs/test-fixtures/invalid-files/zerolen.tf.json new file mode 100644 index 000000000..e69de29bb From 4e5efa498a8648220e160c9c4559f0a2723188a4 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Tue, 6 Feb 2018 16:28:40 -0800 Subject: [PATCH 059/156] configs: Parser.LoadConfigDir This method wraps LoadConfigFile to load all of the .tf and .tf.json files in a given directory and then bundle them together into a Module object. This function also deals with the distinction between primary and override files, first appending together the primary files in lexicographic order by filename, and then merging in override files in the same order. The merging behavior is not fully implemented as of this commit, and so will be expanded in future commits. --- configs/module.go | 338 +++++++++++++++++- configs/module_merge.go | 212 +++++++++++ configs/module_merge_body.go | 47 +++ configs/parser_config_dir.go | 125 +++++++ configs/parser_config_dir_test.go | 136 +++++++ configs/provider.go | 7 + configs/resource.go | 8 + .../invalid-files/json-as-native-syntax.tf | 3 + .../native-syntax-as-json.tf.json | 2 + .../override-nonexist-variable/override.tf | 3 + .../test-fixtures/valid-modules/empty/README | 2 + .../override-variable/a_override.tf | 9 + .../override-variable/b_override.tf | 9 + .../override-variable/primary.tf | 11 + 14 files changed, 898 insertions(+), 14 deletions(-) create mode 100644 configs/module_merge.go create mode 100644 configs/module_merge_body.go create mode 100644 configs/parser_config_dir.go create mode 100644 configs/parser_config_dir_test.go create mode 100644 configs/test-fixtures/invalid-files/json-as-native-syntax.tf create mode 100644 configs/test-fixtures/invalid-files/native-syntax-as-json.tf.json create mode 100644 configs/test-fixtures/invalid-modules/override-nonexist-variable/override.tf create mode 100644 configs/test-fixtures/valid-modules/empty/README create mode 100644 configs/test-fixtures/valid-modules/override-variable/a_override.tf create mode 100644 configs/test-fixtures/valid-modules/override-variable/b_override.tf create mode 100644 configs/test-fixtures/valid-modules/override-variable/primary.tf diff --git a/configs/module.go b/configs/module.go index 0a4d5b916..dec21d045 100644 --- a/configs/module.go +++ b/configs/module.go @@ -1,6 +1,8 @@ package configs import ( + "fmt" + "github.com/hashicorp/hcl2/hcl" ) @@ -23,20 +25,6 @@ type Module struct { DataResources map[string]*DataResource } -// NewModule takes a list of primary files and a list of override files and -// produces a *Module by combining the files together. -// -// If there are any conflicting declarations in the given files -- for example, -// if the same variable name is defined twice -- then the resulting module -// will be incomplete and error diagnostics will be returned. Careful static -// analysis of the returned Module is still possible in this case, but the -// module will probably not be semantically valid. -func NewModule(primaryFiles, overrideFiles []*File) (*Module, hcl.Diagnostics) { - // TODO: process each file in turn, combining and merging as necessary - // to produce a single flat *Module. - panic("NewModule not yet implemented") -} - // File describes the contents of a single configuration file. // // Individual files are not usually used alone, but rather combined together @@ -64,3 +52,325 @@ type File struct { ManagedResources []*ManagedResource DataResources []*DataResource } + +// NewModule takes a list of primary files and a list of override files and +// produces a *Module by combining the files together. +// +// If there are any conflicting declarations in the given files -- for example, +// if the same variable name is defined twice -- then the resulting module +// will be incomplete and error diagnostics will be returned. Careful static +// analysis of the returned Module is still possible in this case, but the +// module will probably not be semantically valid. +func NewModule(primaryFiles, overrideFiles []*File) (*Module, hcl.Diagnostics) { + var diags hcl.Diagnostics + mod := &Module{ + ProviderConfigs: map[string]*Provider{}, + ProviderRequirements: map[string][]VersionConstraint{}, + Variables: map[string]*Variable{}, + Locals: map[string]*Local{}, + Outputs: map[string]*Output{}, + ModuleCalls: map[string]*ModuleCall{}, + ManagedResources: map[string]*ManagedResource{}, + DataResources: map[string]*DataResource{}, + } + + for _, file := range primaryFiles { + fileDiags := mod.appendFile(file) + diags = append(diags, fileDiags...) + } + + for _, file := range overrideFiles { + fileDiags := mod.mergeFile(file) + diags = append(diags, fileDiags...) + } + + return mod, diags +} + +func (m *Module) appendFile(file *File) hcl.Diagnostics { + var diags hcl.Diagnostics + + for _, constraint := range file.CoreVersionConstraints { + // If there are any conflicting requirements then we'll catch them + // when we actually check these constraints. + m.CoreVersionConstraints = append(m.CoreVersionConstraints, constraint) + } + + for _, b := range file.Backends { + if m.Backend != nil { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Duplicate backend configuration", + Detail: fmt.Sprintf("A module may have only one backend configuration. The backend was previously configured at %s.", m.Backend.DeclRange), + Subject: &b.DeclRange, + }) + continue + } + m.Backend = b + } + + for _, pc := range file.ProviderConfigs { + key := pc.moduleUniqueKey() + if existing, exists := m.ProviderConfigs[key]; exists { + if existing.Alias == "" { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Duplicate provider configuration", + Detail: fmt.Sprintf("A default (non-aliased) provider configuration for %q was already given at %s. If multiple configurations are required, set the \"alias\" argument for alternative configurations.", existing.Name, existing.DeclRange), + Subject: &pc.DeclRange, + }) + } else { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Duplicate provider configuration", + Detail: fmt.Sprintf("A provider configuration for %q with alias %q was already given at %s. Each configuration for the same provider must have a distinct alias.", existing.Name, existing.Alias, existing.DeclRange), + Subject: &pc.DeclRange, + }) + } + continue + } + m.ProviderConfigs[key] = pc + } + + for _, reqd := range file.ProviderRequirements { + m.ProviderRequirements[reqd.Name] = append(m.ProviderRequirements[reqd.Name], reqd.Requirement) + } + + for _, v := range file.Variables { + if existing, exists := m.Variables[v.Name]; exists { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Duplicate variable declaration", + Detail: fmt.Sprintf("A variable named %q was already declared at %s. Variable names must be unique within a module.", existing.Name, existing.DeclRange), + Subject: &v.DeclRange, + }) + } + m.Variables[v.Name] = v + } + + for _, l := range file.Locals { + if existing, exists := m.Locals[l.Name]; exists { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Duplicate local value definition", + Detail: fmt.Sprintf("A local value named %q was already defined at %s. Local value names must be unique within a module.", existing.Name, existing.DeclRange), + Subject: &l.DeclRange, + }) + } + m.Locals[l.Name] = l + } + + for _, o := range file.Outputs { + if existing, exists := m.Outputs[o.Name]; exists { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Duplicate output definition", + Detail: fmt.Sprintf("An output named %q was already defined at %s. Output names must be unique within a module.", existing.Name, existing.DeclRange), + Subject: &o.DeclRange, + }) + } + m.Outputs[o.Name] = o + } + + for _, mc := range file.ModuleCalls { + if existing, exists := m.ModuleCalls[mc.Name]; exists { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Duplicate module call", + Detail: fmt.Sprintf("An module call named %q was already defined at %s. Module calls must have unique names within a module.", existing.Name, existing.DeclRange), + Subject: &mc.DeclRange, + }) + } + m.ModuleCalls[mc.Name] = mc + } + + for _, r := range file.ManagedResources { + key := r.moduleUniqueKey() + if existing, exists := m.ManagedResources[key]; exists { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: fmt.Sprintf("Duplicate resource %q configuration", existing.Type), + Detail: fmt.Sprintf("A %s resource named %q was already declared at %s. Resource names must be unique per type in each module.", existing.Type, existing.Name, existing.DeclRange), + Subject: &r.DeclRange, + }) + continue + } + m.ManagedResources[key] = r + } + + for _, r := range file.DataResources { + key := r.moduleUniqueKey() + if existing, exists := m.DataResources[key]; exists { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: fmt.Sprintf("Duplicate data %q configuration", existing.Type), + Detail: fmt.Sprintf("A %s data resource named %q was already declared at %s. Resource names must be unique per type in each module.", existing.Type, existing.Name, existing.DeclRange), + Subject: &r.DeclRange, + }) + continue + } + m.DataResources[key] = r + } + + return diags +} + +func (m *Module) mergeFile(file *File) hcl.Diagnostics { + var diags hcl.Diagnostics + + if len(file.CoreVersionConstraints) != 0 { + // This is a bit of a strange case for overriding since we normally + // would union together across multiple files anyway, but we'll + // allow it and have each override file clobber any existing list. + m.CoreVersionConstraints = nil + for _, constraint := range file.CoreVersionConstraints { + m.CoreVersionConstraints = append(m.CoreVersionConstraints, constraint) + } + } + + if len(file.Backends) != 0 { + switch len(file.Backends) { + case 1: + m.Backend = file.Backends[0] + default: + // An override file with multiple backends is still invalid, even + // though it can override backends from _other_ files. + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Duplicate backend configuration", + Detail: fmt.Sprintf("Each override file may have only one backend configuration. A backend was previously configured at %s.", file.Backends[0].DeclRange), + Subject: &file.Backends[1].DeclRange, + }) + } + } + + for _, pc := range file.ProviderConfigs { + key := pc.moduleUniqueKey() + existing, exists := m.ProviderConfigs[key] + if pc.Alias == "" { + // We allow overriding a non-existing _default_ provider configuration + // because the user model is that an absent provider configuration + // implies an empty provider configuration, which is what the user + // is therefore overriding here. + if exists { + mergeDiags := existing.merge(pc) + diags = append(diags, mergeDiags...) + } else { + m.ProviderConfigs[key] = pc + } + } else { + // For aliased providers, there must be a base configuration to + // override. This allows us to detect and report alias typos + // that might otherwise cause the override to not apply. + if !exists { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Missing base provider configuration for override", + Detail: fmt.Sprintf("There is no %s provider configuration with the alias %q. An override file can only override an aliased provider configuration that was already defined in a primary configuration file.", pc.Name, pc.Alias), + Subject: &pc.DeclRange, + }) + continue + } + mergeDiags := existing.merge(pc) + diags = append(diags, mergeDiags...) + } + } + + if len(file.ProviderRequirements) != 0 { + mergeProviderVersionConstraints(m.ProviderRequirements, file.ProviderRequirements) + } + + for _, v := range file.Variables { + existing, exists := m.Variables[v.Name] + if !exists { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Missing base variable declaration to override", + Detail: fmt.Sprintf("There is no variable named %q. An override file can only override a variable that was already declared in a primary configuration file.", v.Name), + Subject: &v.DeclRange, + }) + continue + } + mergeDiags := existing.merge(v) + diags = append(diags, mergeDiags...) + } + + for _, l := range file.Locals { + existing, exists := m.Locals[l.Name] + if !exists { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Missing base local value definition to override", + Detail: fmt.Sprintf("There is no local value named %q. An override file can only override a local value that was already defined in a primary configuration file.", l.Name), + Subject: &l.DeclRange, + }) + continue + } + mergeDiags := existing.merge(l) + diags = append(diags, mergeDiags...) + } + + for _, o := range file.Outputs { + existing, exists := m.Outputs[o.Name] + if !exists { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Missing base output definition to override", + Detail: fmt.Sprintf("There is no output named %q. An override file can only override an output that was already defined in a primary configuration file.", o.Name), + Subject: &o.DeclRange, + }) + continue + } + mergeDiags := existing.merge(o) + diags = append(diags, mergeDiags...) + } + + for _, mc := range file.ModuleCalls { + existing, exists := m.ModuleCalls[mc.Name] + if !exists { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Missing module call to override", + Detail: fmt.Sprintf("There is no module call named %q. An override file can only override a module call that was defined in a primary configuration file.", mc.Name), + Subject: &mc.DeclRange, + }) + continue + } + mergeDiags := existing.merge(mc) + diags = append(diags, mergeDiags...) + } + + for _, r := range file.ManagedResources { + key := r.moduleUniqueKey() + existing, exists := m.ManagedResources[key] + if !exists { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Missing resource to override", + Detail: fmt.Sprintf("There is no %s resource named %q. An override file can only override a resource block defined in a primary configuration file.", r.Type, r.Name), + Subject: &r.DeclRange, + }) + continue + } + mergeDiags := existing.merge(r) + diags = append(diags, mergeDiags...) + } + + for _, r := range file.DataResources { + key := r.moduleUniqueKey() + existing, exists := m.DataResources[key] + if !exists { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Missing data resource to override", + Detail: fmt.Sprintf("There is no %s data resource named %q. An override file can only override a data block defined in a primary configuration file.", r.Type, r.Name), + Subject: &r.DeclRange, + }) + continue + } + mergeDiags := existing.merge(r) + diags = append(diags, mergeDiags...) + } + + return diags +} diff --git a/configs/module_merge.go b/configs/module_merge.go new file mode 100644 index 000000000..d6adc5442 --- /dev/null +++ b/configs/module_merge.go @@ -0,0 +1,212 @@ +package configs + +import ( + "github.com/hashicorp/hcl2/hcl" + "github.com/zclconf/go-cty/cty" +) + +// The methods in this file are used by Module.mergeFile to apply overrides +// to our different configuration elements. These methods all follow the +// pattern of mutating the receiver to incorporate settings from the parameter, +// returning error diagnostics if any aspect of the parameter cannot be merged +// into the receiver for some reason. +// +// User expectation is that anything _explicitly_ set in the given object +// should take precedence over the corresponding settings in the receiver, +// but that anything omitted in the given object should be left unchanged. +// In some cases it may be reasonable to do a "deep merge" of certain nested +// features, if it is possible to unambiguously correlate the nested elements +// and their behaviors are orthogonal to each other. + +func (p *Provider) merge(op *Provider) hcl.Diagnostics { + var diags hcl.Diagnostics + + if op.Version.Required != nil { + p.Version = op.Version + } + + p.Config = mergeBodies(p.Config, op.Config) + + return diags +} + +func mergeProviderVersionConstraints(recv map[string][]VersionConstraint, ovrd []*ProviderRequirement) { + // Any provider name that's mentioned in the override gets nilled out in + // our map so that we'll rebuild it below. Any provider not mentioned is + // left unchanged. + for _, reqd := range ovrd { + delete(recv, reqd.Name) + } + for _, reqd := range ovrd { + recv[reqd.Name] = append(recv[reqd.Name], reqd.Requirement) + } +} + +func (v *Variable) merge(ov *Variable) hcl.Diagnostics { + var diags hcl.Diagnostics + + if ov.Description != "" { + v.Description = ov.Description + } + if ov.Default != cty.NilVal { + v.Default = ov.Default + } + if ov.TypeHint != TypeHintNone { + v.TypeHint = ov.TypeHint + } + + return diags +} + +func (l *Local) merge(ol *Local) hcl.Diagnostics { + var diags hcl.Diagnostics + + // Since a local is just a single expression in configuration, the + // override definition entirely replaces the base definition, including + // the source range so that we'll send the user to the right place if + // there is an error. + l.Expr = ol.Expr + l.DeclRange = ol.DeclRange + + return diags +} + +func (o *Output) merge(oo *Output) hcl.Diagnostics { + var diags hcl.Diagnostics + + if oo.Description != "" { + o.Description = oo.Description + } + if oo.Expr != nil { + o.Expr = oo.Expr + } + if oo.Sensitive { + // Since this is just a bool, we can't distinguish false from unset + // and so the override can only make the output _more_ sensitive. + o.Sensitive = oo.Sensitive + } + + // We don't allow depends_on to be overridden because that is likely to + // cause confusing misbehavior. + if len(oo.DependsOn) != 0 { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Unsupported override", + Detail: "The depends_on argument may not be overridden.", + Subject: oo.DependsOn[0].SourceRange().Ptr(), // the first item is the closest range we have + }) + } + + return diags +} + +func (mc *ModuleCall) merge(omc *ModuleCall) hcl.Diagnostics { + var diags hcl.Diagnostics + + if omc.SourceAddr != "" { + mc.SourceAddr = omc.SourceAddr + mc.SourceAddrRange = omc.SourceAddrRange + } + + if omc.Count != nil { + mc.Count = omc.Count + } + + if omc.ForEach != nil { + mc.ForEach = omc.ForEach + } + + if len(omc.Version.Required) != 0 { + mc.Version = omc.Version + } + + mc.Config = mergeBodies(mc.Config, omc.Config) + + // We don't allow depends_on to be overridden because that is likely to + // cause confusing misbehavior. + if len(mc.DependsOn) != 0 { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Unsupported override", + Detail: "The depends_on argument may not be overridden.", + Subject: mc.DependsOn[0].SourceRange().Ptr(), // the first item is the closest range we have + }) + } + + return diags +} + +func (r *ManagedResource) merge(or *ManagedResource) hcl.Diagnostics { + var diags hcl.Diagnostics + + if or.Connection != nil { + r.Connection = or.Connection + } + if or.Count != nil { + r.Count = or.Count + } + if or.CreateBeforeDestroy { + // We can't distinguish false from unset here + r.CreateBeforeDestroy = or.CreateBeforeDestroy + } + if or.ForEach != nil { + r.ForEach = or.ForEach + } + if len(or.IgnoreChanges) != 0 { + r.IgnoreChanges = or.IgnoreChanges + } + if or.PreventDestroy { + // We can't distinguish false from unset here + r.PreventDestroy = or.PreventDestroy + } + if or.ProviderConfigRef != nil { + r.ProviderConfigRef = or.ProviderConfigRef + } + if len(or.Provisioners) != 0 { + r.Provisioners = or.Provisioners + } + + r.Config = mergeBodies(r.Config, or.Config) + + // We don't allow depends_on to be overridden because that is likely to + // cause confusing misbehavior. + if len(r.DependsOn) != 0 { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Unsupported override", + Detail: "The depends_on argument may not be overridden.", + Subject: r.DependsOn[0].SourceRange().Ptr(), // the first item is the closest range we have + }) + } + + return diags +} + +func (r *DataResource) merge(or *DataResource) hcl.Diagnostics { + var diags hcl.Diagnostics + + if or.Count != nil { + r.Count = or.Count + } + if or.ForEach != nil { + r.ForEach = or.ForEach + } + if or.ProviderConfigRef != nil { + r.ProviderConfigRef = or.ProviderConfigRef + } + + r.Config = mergeBodies(r.Config, or.Config) + + // We don't allow depends_on to be overridden because that is likely to + // cause confusing misbehavior. + if len(r.DependsOn) != 0 { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Unsupported override", + Detail: "The depends_on argument may not be overridden.", + Subject: r.DependsOn[0].SourceRange().Ptr(), // the first item is the closest range we have + }) + } + + return diags +} diff --git a/configs/module_merge_body.go b/configs/module_merge_body.go new file mode 100644 index 000000000..166d20430 --- /dev/null +++ b/configs/module_merge_body.go @@ -0,0 +1,47 @@ +package configs + +import ( + "github.com/hashicorp/hcl2/hcl" +) + +func mergeBodies(base, override hcl.Body) hcl.Body { + return mergeBody{ + Base: base, + Override: override, + } +} + +// mergeBody is a hcl.Body implementation that wraps a pair of other bodies +// and allows attributes and blocks within the override to take precedence +// over those defined in the base body. +// +// This is used to deal with dynamically-processed bodies in Module.mergeFile. +// It uses a shallow-only merging strategy where direct attributes defined +// in Override will override attributes of the same name in Base, while any +// blocks defined in Override will hide all blocks of the same type in Base. +// +// This cannot possibly "do the right thing" in all cases, because we don't +// have enough information about user intent. However, this behavior is intended +// to be reasonable for simple overriding use-cases. +type mergeBody struct { + Base hcl.Body + Override hcl.Body +} + +var _ hcl.Body = mergeBody{} + +func (b mergeBody) Content(schema *hcl.BodySchema) (*hcl.BodyContent, hcl.Diagnostics) { + panic("mergeBody.Content not yet implemented") +} + +func (b mergeBody) PartialContent(schema *hcl.BodySchema) (*hcl.BodyContent, hcl.Body, hcl.Diagnostics) { + panic("mergeBody.Content not yet implemented") +} + +func (b mergeBody) JustAttributes() (hcl.Attributes, hcl.Diagnostics) { + panic("mergeBody.JustAttributes not yet implemented") +} + +func (b mergeBody) MissingItemRange() hcl.Range { + return b.Base.MissingItemRange() +} diff --git a/configs/parser_config_dir.go b/configs/parser_config_dir.go new file mode 100644 index 000000000..57c72b604 --- /dev/null +++ b/configs/parser_config_dir.go @@ -0,0 +1,125 @@ +package configs + +import ( + "fmt" + "path/filepath" + "strings" + + "github.com/hashicorp/hcl2/hcl" +) + +// LoadConfigDir reads the .tf and .tf.json files in the given directory +// as config files (using LoadConfigFile) and then combines these files into +// a single Module. +// +// If this method returns nil, that indicates that the given directory does not +// exist at all or could not be opened for some reason. Callers may wish to +// detect this case and ignore the returned diagnostics so that they can +// produce a more context-aware error message in that case. +// +// If this method returns a non-nil module while error diagnostics are returned +// then the module may be incomplete but can be used carefully for static +// analysis. +// +// This file does not consider a directory with no files to be an error, and +// will simply return an empty module in that case. Callers should first call +// Parser.IsConfigDir if they wish to recognize that situation. +// +// .tf files are parsed using the HCL native syntax while .tf.json files are +// parsed using the HCL JSON syntax. +func (p *Parser) LoadConfigDir(path string) (*Module, hcl.Diagnostics) { + primaryPaths, overridePaths, diags := p.dirFiles(path) + if diags.HasErrors() { + return nil, diags + } + + primary, fDiags := p.loadFiles(primaryPaths) + diags = append(diags, fDiags...) + override, fDiags := p.loadFiles(overridePaths) + diags = append(diags, fDiags...) + + mod, modDiags := NewModule(primary, override) + diags = append(diags, modDiags...) + + return mod, diags +} + +// IsConfigDir determines whether the given path refers to a directory that +// exists and contains at least one Terraform config file (with a .tf or +// .tf.json extension.) +func (p *Parser) IsConfigDir(path string) bool { + primaryPaths, overridePaths, _ := p.dirFiles(path) + return (len(primaryPaths) + len(overridePaths)) > 0 +} + +func (p *Parser) loadFiles(paths []string) ([]*File, hcl.Diagnostics) { + var files []*File + var diags hcl.Diagnostics + + for _, path := range paths { + f, fDiags := p.LoadConfigFile(path) + diags = append(diags, fDiags...) + if f != nil { + files = append(files, f) + } + } + + return files, diags +} + +func (p *Parser) dirFiles(dir string) (primary, override []string, diags hcl.Diagnostics) { + infos, err := p.fs.ReadDir(dir) + if err != nil { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Failed to read module directory", + Detail: fmt.Sprintf("Module directory %s does not exist or cannot be read.", dir), + }) + return + } + + for _, info := range infos { + if info.IsDir() { + // We only care about files + continue + } + + name := info.Name() + ext := fileExt(name) + if ext == "" || IsIgnoredFile(name) { + continue + } + + baseName := name[:len(name)-len(ext)] // strip extension + isOverride := baseName == "override" || strings.HasSuffix(baseName, "_override") + + fullPath := filepath.Join(dir, name) + if isOverride { + override = append(override, fullPath) + } else { + primary = append(primary, fullPath) + } + } + + return +} + +// fileExt returns the Terraform configuration extension of the given +// path, or a blank string if it is not a recognized extension. +func fileExt(path string) string { + if strings.HasSuffix(path, ".tf") { + return ".tf" + } else if strings.HasSuffix(path, ".tf.json") { + return ".tf.json" + } else { + return "" + } +} + +// IsIgnoredFile returns true if the given filename (which must not have a +// directory path ahead of it) should be ignored as e.g. an editor swap file. +func IsIgnoredFile(name string) bool { + return strings.HasPrefix(name, ".") || // Unix-like hidden files + strings.HasSuffix(name, "~") || // vim + strings.HasPrefix(name, "#") && strings.HasSuffix(name, "#") // emacs +} diff --git a/configs/parser_config_dir_test.go b/configs/parser_config_dir_test.go new file mode 100644 index 000000000..703fc122d --- /dev/null +++ b/configs/parser_config_dir_test.go @@ -0,0 +1,136 @@ +package configs + +import ( + "fmt" + "io/ioutil" + "path/filepath" + "testing" +) + +// TestParseLoadConfigDirSuccess is a simple test that just verifies that +// a number of test configuration directories (in test-fixtures/valid-modules) +// can be parsed without raising any diagnostics. +// +// It also re-tests the individual files in test-fixtures/valid-files as if +// they were single-file modules, to ensure that they can be bundled into +// modules correctly. +// +// This test does not verify that reading these modules produces the correct +// module element contents. More detailed assertions may be made on some subset +// of these configuration files in other tests. +func TestParserLoadConfigDirSuccess(t *testing.T) { + dirs, err := ioutil.ReadDir("test-fixtures/valid-modules") + if err != nil { + t.Fatal(err) + } + + for _, info := range dirs { + name := info.Name() + t.Run(name, func(t *testing.T) { + parser := NewParser(nil) + path := filepath.Join("test-fixtures/valid-modules", name) + + _, diags := parser.LoadConfigDir(path) + if len(diags) != 0 { + t.Errorf("unexpected diagnostics") + for _, diag := range diags { + t.Logf("- %s", diag) + } + } + }) + } + + // The individual files in test-fixtures/valid-files should also work + // when loaded as modules. + files, err := ioutil.ReadDir("test-fixtures/valid-files") + if err != nil { + t.Fatal(err) + } + + for _, info := range files { + name := info.Name() + t.Run(fmt.Sprintf("%s as module", name), func(t *testing.T) { + src, err := ioutil.ReadFile(filepath.Join("test-fixtures/valid-files", name)) + if err != nil { + t.Fatal(err) + } + + parser := testParser(map[string]string{ + "mod/" + name: string(src), + }) + + _, diags := parser.LoadConfigDir("mod") + if len(diags) != 0 { + t.Errorf("unexpected diagnostics") + for _, diag := range diags { + t.Logf("- %s", diag) + } + } + }) + } + +} + +// TestParseLoadConfigDirFailure is a simple test that just verifies that +// a number of test configuration directories (in test-fixtures/invalid-modules) +// produce diagnostics when parsed. +// +// It also re-tests the individual files in test-fixtures/invalid-files as if +// they were single-file modules, to ensure that their errors are still +// detected when loading as part of a module. +// +// This test does not verify that reading these modules produces any +// diagnostics in particular. More detailed assertions may be made on some subset +// of these configuration files in other tests. +func TestParserLoadConfigDirFailure(t *testing.T) { + dirs, err := ioutil.ReadDir("test-fixtures/invalid-modules") + if err != nil { + t.Fatal(err) + } + + for _, info := range dirs { + name := info.Name() + t.Run(name, func(t *testing.T) { + parser := NewParser(nil) + path := filepath.Join("test-fixtures/invalid-modules", name) + + _, diags := parser.LoadConfigDir(path) + if !diags.HasErrors() { + t.Errorf("no errors; want at least one") + for _, diag := range diags { + t.Logf("- %s", diag) + } + } + }) + } + + // The individual files in test-fixtures/valid-files should also work + // when loaded as modules. + files, err := ioutil.ReadDir("test-fixtures/invalid-files") + if err != nil { + t.Fatal(err) + } + + for _, info := range files { + name := info.Name() + t.Run(fmt.Sprintf("%s as module", name), func(t *testing.T) { + src, err := ioutil.ReadFile(filepath.Join("test-fixtures/invalid-files", name)) + if err != nil { + t.Fatal(err) + } + + parser := testParser(map[string]string{ + "mod/" + name: string(src), + }) + + _, diags := parser.LoadConfigDir("mod") + if !diags.HasErrors() { + t.Errorf("no errors; want at least one") + for _, diag := range diags { + t.Logf("- %s", diag) + } + } + }) + } + +} diff --git a/configs/provider.go b/configs/provider.go index d55874ad3..927490963 100644 --- a/configs/provider.go +++ b/configs/provider.go @@ -57,6 +57,13 @@ func decodeProviderBlock(block *hcl.Block) (*Provider, hcl.Diagnostics) { return provider, diags } +func (p *Provider) moduleUniqueKey() string { + if p.Alias != "" { + return fmt.Sprintf("%s.%s", p.Name, p.Alias) + } + return p.Name +} + // ProviderRequirement represents a declaration of a dependency on a particular // provider version without actually configuring that provider. This is used in // child modules that expect a provider to be passed in from their parent. diff --git a/configs/resource.go b/configs/resource.go index 027d04b2b..b66d12e38 100644 --- a/configs/resource.go +++ b/configs/resource.go @@ -31,6 +31,10 @@ type ManagedResource struct { TypeRange hcl.Range } +func (r *ManagedResource) moduleUniqueKey() string { + return fmt.Sprintf("%s.%s", r.Name, r.Type) +} + func decodeResourceBlock(block *hcl.Block) (*ManagedResource, hcl.Diagnostics) { r := &ManagedResource{ Type: block.Labels[0], @@ -170,6 +174,10 @@ type DataResource struct { TypeRange hcl.Range } +func (r *DataResource) moduleUniqueKey() string { + return fmt.Sprintf("data.%s.%s", r.Name, r.Type) +} + func decodeDataBlock(block *hcl.Block) (*DataResource, hcl.Diagnostics) { r := &DataResource{ Type: block.Labels[0], diff --git a/configs/test-fixtures/invalid-files/json-as-native-syntax.tf b/configs/test-fixtures/invalid-files/json-as-native-syntax.tf new file mode 100644 index 000000000..2e2809093 --- /dev/null +++ b/configs/test-fixtures/invalid-files/json-as-native-syntax.tf @@ -0,0 +1,3 @@ +{ + "terraform": {} +} diff --git a/configs/test-fixtures/invalid-files/native-syntax-as-json.tf.json b/configs/test-fixtures/invalid-files/native-syntax-as-json.tf.json new file mode 100644 index 000000000..ca88e62b4 --- /dev/null +++ b/configs/test-fixtures/invalid-files/native-syntax-as-json.tf.json @@ -0,0 +1,2 @@ +terraform { +} diff --git a/configs/test-fixtures/invalid-modules/override-nonexist-variable/override.tf b/configs/test-fixtures/invalid-modules/override-nonexist-variable/override.tf new file mode 100644 index 000000000..720db27b8 --- /dev/null +++ b/configs/test-fixtures/invalid-modules/override-nonexist-variable/override.tf @@ -0,0 +1,3 @@ +variable "foo" { + description = "overridden" +} diff --git a/configs/test-fixtures/valid-modules/empty/README b/configs/test-fixtures/valid-modules/empty/README new file mode 100644 index 000000000..6d937077a --- /dev/null +++ b/configs/test-fixtures/valid-modules/empty/README @@ -0,0 +1,2 @@ +This directory is intentionally empty, to test what happens when we load +a module that contains no configuration files. diff --git a/configs/test-fixtures/valid-modules/override-variable/a_override.tf b/configs/test-fixtures/valid-modules/override-variable/a_override.tf new file mode 100644 index 000000000..6ec4d1ef3 --- /dev/null +++ b/configs/test-fixtures/valid-modules/override-variable/a_override.tf @@ -0,0 +1,9 @@ +variable "fully_overridden" { + default = "a_override" + description = "a_override description" + type = string +} + +variable "partially_overridden" { + default = "a_override partial" +} diff --git a/configs/test-fixtures/valid-modules/override-variable/b_override.tf b/configs/test-fixtures/valid-modules/override-variable/b_override.tf new file mode 100644 index 000000000..21dbe82e9 --- /dev/null +++ b/configs/test-fixtures/valid-modules/override-variable/b_override.tf @@ -0,0 +1,9 @@ +variable "fully_overridden" { + default = "b_override" + description = "b_override description" + type = string +} + +variable "partially_overridden" { + default = "b_override partial" +} diff --git a/configs/test-fixtures/valid-modules/override-variable/primary.tf b/configs/test-fixtures/valid-modules/override-variable/primary.tf new file mode 100644 index 000000000..981b86b8e --- /dev/null +++ b/configs/test-fixtures/valid-modules/override-variable/primary.tf @@ -0,0 +1,11 @@ +variable "fully_overridden" { + default = "base" + description = "base description" + type = string +} + +variable "partially_overridden" { + default = "base" + description = "base description" + type = string +} From 7c8efe103e9bd013c5d093f351e62e3b34799345 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Tue, 6 Feb 2018 18:05:14 -0800 Subject: [PATCH 060/156] configs: allow overrides files to omit args that primary files can't Some of the fields in our config structs are either mandatory in primary files or there is a default value that we apply if absent. Unfortunately override files impose the additional constraint that we be allowed to omit required fields (which have presumably already been set in the primary files) and that we are able to distinguish between a default value and omitting a value entirely. Since most of our fields were already acceptable for override files, here we just add some new fields to deal with the few cases where special handling is required and a helper function to disable the "Required" flag on attributes in a given schema. --- configs/module_call.go | 11 +++- configs/module_merge.go | 19 +++--- configs/module_merge_test.go | 61 ++++++++++++++++++ configs/named_values.go | 17 ++++- configs/parser_config.go | 16 ++++- configs/parser_config_dir.go | 14 ++-- configs/parser_test.go | 64 +++++++++++++++++++ configs/resource.go | 5 ++ .../override-module/a_override.tf | 5 ++ .../override-module/b_override.tf | 5 ++ .../valid-modules/override-module/primary.tf | 7 ++ .../override-output-sensitive/override.tf | 3 + .../override-output-sensitive/primary.tf | 3 + configs/util.go | 27 ++++++++ 14 files changed, 238 insertions(+), 19 deletions(-) create mode 100644 configs/module_merge_test.go create mode 100644 configs/test-fixtures/valid-modules/override-module/a_override.tf create mode 100644 configs/test-fixtures/valid-modules/override-module/b_override.tf create mode 100644 configs/test-fixtures/valid-modules/override-module/primary.tf create mode 100644 configs/test-fixtures/valid-modules/override-output-sensitive/override.tf create mode 100644 configs/test-fixtures/valid-modules/override-output-sensitive/primary.tf diff --git a/configs/module_call.go b/configs/module_call.go index befccb28a..86f840216 100644 --- a/configs/module_call.go +++ b/configs/module_call.go @@ -12,6 +12,7 @@ type ModuleCall struct { SourceAddr string SourceAddrRange hcl.Range + SourceSet bool Config hcl.Body @@ -25,13 +26,18 @@ type ModuleCall struct { DeclRange hcl.Range } -func decodeModuleBlock(block *hcl.Block) (*ModuleCall, hcl.Diagnostics) { +func decodeModuleBlock(block *hcl.Block, override bool) (*ModuleCall, hcl.Diagnostics) { mc := &ModuleCall{ Name: block.Labels[0], DeclRange: block.DefRange, } - content, remain, diags := block.Body.PartialContent(moduleBlockSchema) + schema := moduleBlockSchema + if override { + schema = schemaForOverrides(schema) + } + + content, remain, diags := block.Body.PartialContent(schema) mc.Config = remain if !hclsyntax.ValidIdentifier(mc.Name) { @@ -47,6 +53,7 @@ func decodeModuleBlock(block *hcl.Block) (*ModuleCall, hcl.Diagnostics) { valDiags := gohcl.DecodeExpression(attr.Expr, nil, &mc.SourceAddr) diags = append(diags, valDiags...) mc.SourceAddrRange = attr.Expr.Range() + mc.SourceSet = true } if attr, exists := content.Attributes["version"]; exists { diff --git a/configs/module_merge.go b/configs/module_merge.go index d6adc5442..2e5ed3249 100644 --- a/configs/module_merge.go +++ b/configs/module_merge.go @@ -45,8 +45,9 @@ func mergeProviderVersionConstraints(recv map[string][]VersionConstraint, ovrd [ func (v *Variable) merge(ov *Variable) hcl.Diagnostics { var diags hcl.Diagnostics - if ov.Description != "" { + if ov.DescriptionSet { v.Description = ov.Description + v.DescriptionSet = ov.DescriptionSet } if ov.Default != cty.NilVal { v.Default = ov.Default @@ -80,10 +81,9 @@ func (o *Output) merge(oo *Output) hcl.Diagnostics { if oo.Expr != nil { o.Expr = oo.Expr } - if oo.Sensitive { - // Since this is just a bool, we can't distinguish false from unset - // and so the override can only make the output _more_ sensitive. + if oo.SensitiveSet { o.Sensitive = oo.Sensitive + o.SensitiveSet = oo.SensitiveSet } // We don't allow depends_on to be overridden because that is likely to @@ -103,9 +103,10 @@ func (o *Output) merge(oo *Output) hcl.Diagnostics { func (mc *ModuleCall) merge(omc *ModuleCall) hcl.Diagnostics { var diags hcl.Diagnostics - if omc.SourceAddr != "" { + if omc.SourceSet { mc.SourceAddr = omc.SourceAddr mc.SourceAddrRange = omc.SourceAddrRange + mc.SourceSet = omc.SourceSet } if omc.Count != nil { @@ -145,9 +146,9 @@ func (r *ManagedResource) merge(or *ManagedResource) hcl.Diagnostics { if or.Count != nil { r.Count = or.Count } - if or.CreateBeforeDestroy { - // We can't distinguish false from unset here + if or.CreateBeforeDestroySet { r.CreateBeforeDestroy = or.CreateBeforeDestroy + r.CreateBeforeDestroySet = or.CreateBeforeDestroySet } if or.ForEach != nil { r.ForEach = or.ForEach @@ -155,9 +156,9 @@ func (r *ManagedResource) merge(or *ManagedResource) hcl.Diagnostics { if len(or.IgnoreChanges) != 0 { r.IgnoreChanges = or.IgnoreChanges } - if or.PreventDestroy { - // We can't distinguish false from unset here + if or.PreventDestroySet { r.PreventDestroy = or.PreventDestroy + r.PreventDestroySet = or.PreventDestroySet } if or.ProviderConfigRef != nil { r.ProviderConfigRef = or.ProviderConfigRef diff --git a/configs/module_merge_test.go b/configs/module_merge_test.go new file mode 100644 index 000000000..6e74fd402 --- /dev/null +++ b/configs/module_merge_test.go @@ -0,0 +1,61 @@ +package configs + +import ( + "testing" + + "github.com/hashicorp/hcl2/hcl" + "github.com/zclconf/go-cty/cty" +) + +func TestModuleOverrideVariable(t *testing.T) { + mod, diags := testModuleFromDir("test-fixtures/valid-modules/override-variable") + assertNoDiagnostics(t, diags) + if mod == nil { + t.Fatalf("module is nil") + } + + got := mod.Variables + want := map[string]*Variable{ + "fully_overridden": { + Name: "fully_overridden", + Description: "b_override description", + DescriptionSet: true, + Default: cty.StringVal("b_override"), + TypeHint: TypeHintString, + DeclRange: hcl.Range{ + Filename: "test-fixtures/valid-modules/override-variable/primary.tf", + Start: hcl.Pos{ + Line: 1, + Column: 1, + Byte: 0, + }, + End: hcl.Pos{ + Line: 1, + Column: 28, + Byte: 27, + }, + }, + }, + "partially_overridden": { + Name: "partially_overridden", + Description: "base description", + DescriptionSet: true, + Default: cty.StringVal("b_override partial"), + TypeHint: TypeHintString, + DeclRange: hcl.Range{ + Filename: "test-fixtures/valid-modules/override-variable/primary.tf", + Start: hcl.Pos{ + Line: 7, + Column: 1, + Byte: 103, + }, + End: hcl.Pos{ + Line: 7, + Column: 32, + Byte: 134, + }, + }, + }, + } + assertResultDeepEqual(t, got, want) +} diff --git a/configs/named_values.go b/configs/named_values.go index 052b04017..42ae4750d 100644 --- a/configs/named_values.go +++ b/configs/named_values.go @@ -19,6 +19,8 @@ type Variable struct { Default cty.Value TypeHint VariableTypeHint + DescriptionSet bool + DeclRange hcl.Range } @@ -56,6 +58,7 @@ func decodeVariableBlock(block *hcl.Block) (*Variable, hcl.Diagnostics) { if attr, exists := content.Attributes["description"]; exists { valDiags := gohcl.DecodeExpression(attr.Expr, nil, &v.Description) diags = append(diags, valDiags...) + v.DescriptionSet = true } if attr, exists := content.Attributes["default"]; exists { @@ -106,16 +109,24 @@ type Output struct { DependsOn []hcl.Traversal Sensitive bool + DescriptionSet bool + SensitiveSet bool + DeclRange hcl.Range } -func decodeOutputBlock(block *hcl.Block) (*Output, hcl.Diagnostics) { +func decodeOutputBlock(block *hcl.Block, override bool) (*Output, hcl.Diagnostics) { o := &Output{ Name: block.Labels[0], DeclRange: block.DefRange, } - content, diags := block.Body.Content(outputBlockSchema) + schema := outputBlockSchema + if override { + schema = schemaForOverrides(schema) + } + + content, diags := block.Body.Content(schema) if !hclsyntax.ValidIdentifier(o.Name) { diags = append(diags, &hcl.Diagnostic{ @@ -129,6 +140,7 @@ func decodeOutputBlock(block *hcl.Block) (*Output, hcl.Diagnostics) { if attr, exists := content.Attributes["description"]; exists { valDiags := gohcl.DecodeExpression(attr.Expr, nil, &o.Description) diags = append(diags, valDiags...) + o.DescriptionSet = true } if attr, exists := content.Attributes["value"]; exists { @@ -138,6 +150,7 @@ func decodeOutputBlock(block *hcl.Block) (*Output, hcl.Diagnostics) { if attr, exists := content.Attributes["sensitive"]; exists { valDiags := gohcl.DecodeExpression(attr.Expr, nil, &o.Sensitive) diags = append(diags, valDiags...) + o.SensitiveSet = true } if attr, exists := content.Attributes["depends_on"]; exists { diff --git a/configs/parser_config.go b/configs/parser_config.go index 16eb77c34..c7fc33fd9 100644 --- a/configs/parser_config.go +++ b/configs/parser_config.go @@ -19,6 +19,18 @@ import ( // This method wraps LoadHCLFile, and so it inherits the syntax selection // behaviors documented for that method. func (p *Parser) LoadConfigFile(path string) (*File, hcl.Diagnostics) { + return p.loadConfigFile(path, false) +} + +// LoadConfigFileOverride is the same as LoadConfigFile except that it relaxes +// certain required attribute constraints in order to interpret the given +// file as an overrides file. +func (p *Parser) LoadConfigFileOverride(path string) (*File, hcl.Diagnostics) { + return p.loadConfigFile(path, true) +} + +func (p *Parser) loadConfigFile(path string, override bool) (*File, hcl.Diagnostics) { + body, diags := p.LoadHCLFile(path) if body == nil { return nil, diags @@ -86,14 +98,14 @@ func (p *Parser) LoadConfigFile(path string) (*File, hcl.Diagnostics) { file.Locals = append(file.Locals, defs...) case "output": - cfg, cfgDiags := decodeOutputBlock(block) + cfg, cfgDiags := decodeOutputBlock(block, override) diags = append(diags, cfgDiags...) if cfg != nil { file.Outputs = append(file.Outputs, cfg) } case "module": - cfg, cfgDiags := decodeModuleBlock(block) + cfg, cfgDiags := decodeModuleBlock(block, override) diags = append(diags, cfgDiags...) if cfg != nil { file.ModuleCalls = append(file.ModuleCalls, cfg) diff --git a/configs/parser_config_dir.go b/configs/parser_config_dir.go index 57c72b604..fad3a9837 100644 --- a/configs/parser_config_dir.go +++ b/configs/parser_config_dir.go @@ -33,9 +33,9 @@ func (p *Parser) LoadConfigDir(path string) (*Module, hcl.Diagnostics) { return nil, diags } - primary, fDiags := p.loadFiles(primaryPaths) + primary, fDiags := p.loadFiles(primaryPaths, false) diags = append(diags, fDiags...) - override, fDiags := p.loadFiles(overridePaths) + override, fDiags := p.loadFiles(overridePaths, true) diags = append(diags, fDiags...) mod, modDiags := NewModule(primary, override) @@ -52,12 +52,18 @@ func (p *Parser) IsConfigDir(path string) bool { return (len(primaryPaths) + len(overridePaths)) > 0 } -func (p *Parser) loadFiles(paths []string) ([]*File, hcl.Diagnostics) { +func (p *Parser) loadFiles(paths []string, override bool) ([]*File, hcl.Diagnostics) { var files []*File var diags hcl.Diagnostics for _, path := range paths { - f, fDiags := p.LoadConfigFile(path) + var f *File + var fDiags hcl.Diagnostics + if override { + f, fDiags = p.LoadConfigFileOverride(path) + } else { + f, fDiags = p.LoadConfigFile(path) + } diags = append(diags, fDiags...) if f != nil { files = append(files, f) diff --git a/configs/parser_test.go b/configs/parser_test.go index 316a09e5d..f5f1edba2 100644 --- a/configs/parser_test.go +++ b/configs/parser_test.go @@ -3,7 +3,12 @@ package configs import ( "os" "path" + "reflect" + "testing" + "github.com/davecgh/go-spew/spew" + + "github.com/hashicorp/hcl2/hcl" "github.com/spf13/afero" ) @@ -29,3 +34,62 @@ func testParser(files map[string]string) *Parser { return NewParser(fs) } + +// testModuleFromFile reads a single file, wraps it in a module, and returns +// it. This is a helper for use in unit tests. +func testModuleFromFile(filename string) (*Module, hcl.Diagnostics) { + parser := NewParser(nil) + f, diags := parser.LoadConfigFile(filename) + mod, modDiags := NewModule([]*File{f}, nil) + diags = append(diags, modDiags...) + return mod, modDiags +} + +// testModuleFromDir reads configuration from the given directory path as +// a module and returns it. This is a helper for use in unit tests. +func testModuleFromDir(path string) (*Module, hcl.Diagnostics) { + parser := NewParser(nil) + return parser.LoadConfigDir(path) +} + +func assertNoDiagnostics(t *testing.T, diags hcl.Diagnostics) bool { + t.Helper() + return assertDiagnosticCount(t, diags, 0) +} + +func assertDiagnosticCount(t *testing.T, diags hcl.Diagnostics, want int) bool { + t.Helper() + if len(diags) != 0 { + t.Errorf("wrong number of diagnostics %d; want %d", len(diags), want) + for _, diag := range diags { + t.Logf("- %s", diag) + } + return true + } + return false +} + +func assertDiagnosticSummary(t *testing.T, diags hcl.Diagnostics, want string) bool { + t.Helper() + + for _, diag := range diags { + if diag.Summary == want { + return false + } + } + + t.Errorf("missing diagnostic summary %q", want) + for _, diag := range diags { + t.Logf("- %s", diag) + } + return true +} + +func assertResultDeepEqual(t *testing.T, got, want interface{}) bool { + t.Helper() + if !reflect.DeepEqual(got, want) { + t.Errorf("wrong result\ngot: %swant: %s", spew.Sdump(got), spew.Sdump(want)) + return true + } + return false +} diff --git a/configs/resource.go b/configs/resource.go index b66d12e38..3892c86b9 100644 --- a/configs/resource.go +++ b/configs/resource.go @@ -27,6 +27,9 @@ type ManagedResource struct { PreventDestroy bool IgnoreChanges []hcl.Traversal + CreateBeforeDestroySet bool + PreventDestroySet bool + DeclRange hcl.Range TypeRange hcl.Range } @@ -105,11 +108,13 @@ func decodeResourceBlock(block *hcl.Block) (*ManagedResource, hcl.Diagnostics) { if attr, exists := lcContent.Attributes["create_before_destroy"]; exists { valDiags := gohcl.DecodeExpression(attr.Expr, nil, &r.CreateBeforeDestroy) diags = append(diags, valDiags...) + r.CreateBeforeDestroySet = true } if attr, exists := lcContent.Attributes["prevent_destroy"]; exists { valDiags := gohcl.DecodeExpression(attr.Expr, nil, &r.PreventDestroy) diags = append(diags, valDiags...) + r.PreventDestroySet = true } if attr, exists := lcContent.Attributes["ignore_changes"]; exists { diff --git a/configs/test-fixtures/valid-modules/override-module/a_override.tf b/configs/test-fixtures/valid-modules/override-module/a_override.tf new file mode 100644 index 000000000..9e0403ff8 --- /dev/null +++ b/configs/test-fixtures/valid-modules/override-module/a_override.tf @@ -0,0 +1,5 @@ + +module "example" { + foo = "a_override foo" + new = "a_override new" +} diff --git a/configs/test-fixtures/valid-modules/override-module/b_override.tf b/configs/test-fixtures/valid-modules/override-module/b_override.tf new file mode 100644 index 000000000..98d5a3101 --- /dev/null +++ b/configs/test-fixtures/valid-modules/override-module/b_override.tf @@ -0,0 +1,5 @@ + +module "example" { + new = "b_override new" + newer = "b_override newer" +} diff --git a/configs/test-fixtures/valid-modules/override-module/primary.tf b/configs/test-fixtures/valid-modules/override-module/primary.tf new file mode 100644 index 000000000..0567e7867 --- /dev/null +++ b/configs/test-fixtures/valid-modules/override-module/primary.tf @@ -0,0 +1,7 @@ + +module "example" { + source = "./example2" + + kept = "primary kept" + foo = "primary foo" +} diff --git a/configs/test-fixtures/valid-modules/override-output-sensitive/override.tf b/configs/test-fixtures/valid-modules/override-output-sensitive/override.tf new file mode 100644 index 000000000..b965fc124 --- /dev/null +++ b/configs/test-fixtures/valid-modules/override-output-sensitive/override.tf @@ -0,0 +1,3 @@ +output "foo" { + sensitive = true +} diff --git a/configs/test-fixtures/valid-modules/override-output-sensitive/primary.tf b/configs/test-fixtures/valid-modules/override-output-sensitive/primary.tf new file mode 100644 index 000000000..13bd3a99b --- /dev/null +++ b/configs/test-fixtures/valid-modules/override-output-sensitive/primary.tf @@ -0,0 +1,3 @@ +output "foo" { + value = "Hello World" +} diff --git a/configs/util.go b/configs/util.go index 9594cbeee..002bb8cb8 100644 --- a/configs/util.go +++ b/configs/util.go @@ -16,3 +16,30 @@ func exprIsNativeQuotedString(expr hcl.Expression) bool { _, ok := expr.(*hclsyntax.TemplateExpr) return ok } + +// schemaForOverrides takes a *hcl.BodySchema and produces a new one that is +// equivalent except that any required attributes are forced to not be required. +// +// This is useful for dealing with "override" config files, which are allowed +// to omit things that they don't wish to override from the main configuration. +// +// The returned schema may have some pointers in common with the given schema, +// so neither the given schema nor the returned schema should be modified after +// using this function in order to avoid confusion. +// +// Overrides are rarely used, so it's recommended to just create the override +// schema on the fly only when it's needed, rather than storing it in a global +// variable as we tend to do for a primary schema. +func schemaForOverrides(schema *hcl.BodySchema) *hcl.BodySchema { + ret := &hcl.BodySchema{ + Attributes: make([]hcl.AttributeSchema, len(schema.Attributes)), + Blocks: schema.Blocks, + } + + for i, attrS := range schema.Attributes { + ret.Attributes[i] = attrS + ret.Attributes[i].Required = false + } + + return ret +} From cc38e91612b700dd3c44ef085d955267666f1833 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Tue, 6 Feb 2018 18:30:12 -0800 Subject: [PATCH 061/156] configs: Implementation of mergeBody mergeBody is a hcl.Body implementation that deals with our override file merging behavior for the portions of the configuration that are not processed until full eval time. Mimicking the behavior of our old config merge implementation from the "config" package, the rules here are: - Attributes in the override body hide attributes of the same name in the base body. - Any block in the override body hides all blocks with the same type name that appear in the base body. This is tested by a new test for the overriding of module arguments, which asserts the correct behavior of the merged body as part of its work. --- configs/module_merge_body.go | 80 ++++++++++++++++++- configs/module_merge_test.go | 75 +++++++++++++++++ configs/parser_test.go | 4 + .../override-module/a_override.tf | 2 + 4 files changed, 158 insertions(+), 3 deletions(-) diff --git a/configs/module_merge_body.go b/configs/module_merge_body.go index 166d20430..b1308e976 100644 --- a/configs/module_merge_body.go +++ b/configs/module_merge_body.go @@ -31,15 +31,89 @@ type mergeBody struct { var _ hcl.Body = mergeBody{} func (b mergeBody) Content(schema *hcl.BodySchema) (*hcl.BodyContent, hcl.Diagnostics) { - panic("mergeBody.Content not yet implemented") + var diags hcl.Diagnostics + oSchema := schemaForOverrides(schema) + + baseContent, cDiags := b.Base.Content(schema) + diags = append(diags, cDiags...) + overrideContent, cDiags := b.Override.Content(oSchema) + diags = append(diags, cDiags...) + + content := b.prepareContent(baseContent, overrideContent) + + return content, diags } func (b mergeBody) PartialContent(schema *hcl.BodySchema) (*hcl.BodyContent, hcl.Body, hcl.Diagnostics) { - panic("mergeBody.Content not yet implemented") + var diags hcl.Diagnostics + oSchema := schemaForOverrides(schema) + + baseContent, baseRemain, cDiags := b.Base.PartialContent(schema) + diags = append(diags, cDiags...) + overrideContent, overrideRemain, cDiags := b.Override.PartialContent(oSchema) + diags = append(diags, cDiags...) + + content := b.prepareContent(baseContent, overrideContent) + + remain := mergeBodies(baseRemain, overrideRemain) + + return content, remain, diags +} + +func (b mergeBody) prepareContent(base *hcl.BodyContent, override *hcl.BodyContent) *hcl.BodyContent { + content := &hcl.BodyContent{ + Attributes: make(hcl.Attributes), + } + + // For attributes we just assign from each map in turn and let the override + // map clobber any matching entries from base. + for k, a := range base.Attributes { + content.Attributes[k] = a + } + for k, a := range override.Attributes { + content.Attributes[k] = a + } + + // Things are a little more interesting for blocks because they arrive + // as a flat list. Our merging semantics call for us to suppress blocks + // from base if at least one block of the same type appears in override. + // We explicitly do not try to correlate and deeply merge nested blocks, + // since we don't have enough context here to infer user intent. + + overriddenBlockTypes := make(map[string]bool) + for _, block := range override.Blocks { + overriddenBlockTypes[block.Type] = true + } + for _, block := range base.Blocks { + if overriddenBlockTypes[block.Type] { + continue + } + content.Blocks = append(content.Blocks, block) + } + for _, block := range override.Blocks { + content.Blocks = append(content.Blocks, block) + } + + return content } func (b mergeBody) JustAttributes() (hcl.Attributes, hcl.Diagnostics) { - panic("mergeBody.JustAttributes not yet implemented") + var diags hcl.Diagnostics + ret := make(hcl.Attributes) + + baseAttrs, aDiags := b.Base.JustAttributes() + diags = append(diags, aDiags...) + overrideAttrs, aDiags := b.Override.JustAttributes() + diags = append(diags, aDiags...) + + for k, a := range baseAttrs { + ret[k] = a + } + for k, a := range overrideAttrs { + ret[k] = a + } + + return ret, diags } func (b mergeBody) MissingItemRange() hcl.Range { diff --git a/configs/module_merge_test.go b/configs/module_merge_test.go index 6e74fd402..14126afa4 100644 --- a/configs/module_merge_test.go +++ b/configs/module_merge_test.go @@ -3,6 +3,7 @@ package configs import ( "testing" + "github.com/hashicorp/hcl2/gohcl" "github.com/hashicorp/hcl2/hcl" "github.com/zclconf/go-cty/cty" ) @@ -59,3 +60,77 @@ func TestModuleOverrideVariable(t *testing.T) { } assertResultDeepEqual(t, got, want) } + +func TestModuleOverrideModule(t *testing.T) { + mod, diags := testModuleFromDir("test-fixtures/valid-modules/override-module") + assertNoDiagnostics(t, diags) + if mod == nil { + t.Fatalf("module is nil") + } + + if _, exists := mod.ModuleCalls["example"]; !exists { + t.Fatalf("no module 'example'") + } + if len(mod.ModuleCalls) != 1 { + t.Fatalf("wrong number of module calls in result %d; want 1", len(mod.ModuleCalls)) + } + + got := mod.ModuleCalls["example"] + want := &ModuleCall{ + Name: "example", + SourceAddr: "./example2-a_override", + SourceAddrRange: hcl.Range{ + Filename: "test-fixtures/valid-modules/override-module/a_override.tf", + Start: hcl.Pos{ + Line: 3, + Column: 12, + Byte: 31, + }, + End: hcl.Pos{ + Line: 3, + Column: 35, + Byte: 54, + }, + }, + SourceSet: true, + DeclRange: hcl.Range{ + Filename: "test-fixtures/valid-modules/override-module/primary.tf", + Start: hcl.Pos{ + Line: 2, + Column: 1, + Byte: 1, + }, + End: hcl.Pos{ + Line: 2, + Column: 17, + Byte: 17, + }, + }, + } + + // We're going to extract and nil out our hcl.Body here because DeepEqual + // is not a useful way to assert on that. + gotConfig := got.Config + got.Config = nil + + assertResultDeepEqual(t, got, want) + + type content struct { + Kept *string `hcl:"kept"` + Foo *string `hcl:"foo"` + New *string `hcl:"new"` + Newer *string `hcl:"newer"` + } + var gotArgs content + diags = gohcl.DecodeBody(gotConfig, nil, &gotArgs) + assertNoDiagnostics(t, diags) + + wantArgs := content{ + Kept: stringPtr("primary kept"), + Foo: stringPtr("a_override foo"), + New: stringPtr("b_override new"), + Newer: stringPtr("b_override newer"), + } + + assertResultDeepEqual(t, gotArgs, wantArgs) +} diff --git a/configs/parser_test.go b/configs/parser_test.go index f5f1edba2..93939fd88 100644 --- a/configs/parser_test.go +++ b/configs/parser_test.go @@ -93,3 +93,7 @@ func assertResultDeepEqual(t *testing.T, got, want interface{}) bool { } return false } + +func stringPtr(s string) *string { + return &s +} diff --git a/configs/test-fixtures/valid-modules/override-module/a_override.tf b/configs/test-fixtures/valid-modules/override-module/a_override.tf index 9e0403ff8..c1b8d7cba 100644 --- a/configs/test-fixtures/valid-modules/override-module/a_override.tf +++ b/configs/test-fixtures/valid-modules/override-module/a_override.tf @@ -1,5 +1,7 @@ module "example" { + source = "./example2-a_override" + foo = "a_override foo" new = "a_override new" } From 8929eca405d353da1347c3a7a5c1835871e32b71 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Wed, 7 Feb 2018 16:40:58 -0800 Subject: [PATCH 062/156] configs: BuildConfig function BuildConfig creates a module tree by recursively walking through module calls in the root module and any descendent modules. This is intended to be used both for the simple case of loading already-installed modules and the more complex case of installing modules inside "terraform init", both of which will be dealt with in a separate package. --- configs/config.go | 120 ++++++++++++++++- configs/config_build.go | 127 ++++++++++++++++++ configs/config_build_test.go | 71 ++++++++++ .../config-build/child_a/child_a.tf | 4 + .../config-build/child_b/child_b.tf | 7 + .../config-build/child_c/child_c.tf | 3 + configs/test-fixtures/config-build/root.tf | 9 ++ 7 files changed, 339 insertions(+), 2 deletions(-) create mode 100644 configs/config_build.go create mode 100644 configs/config_build_test.go create mode 100644 configs/test-fixtures/config-build/child_a/child_a.tf create mode 100644 configs/test-fixtures/config-build/child_b/child_b.tf create mode 100644 configs/test-fixtures/config-build/child_c/child_c.tf create mode 100644 configs/test-fixtures/config-build/root.tf diff --git a/configs/config.go b/configs/config.go index 07f6ed0a5..0c07ba143 100644 --- a/configs/config.go +++ b/configs/config.go @@ -1,5 +1,12 @@ package configs +import ( + "fmt" + + version "github.com/hashicorp/go-version" + "github.com/hashicorp/hcl2/hcl" +) + // A Config is a node in the tree of modules within a configuration. // // The module tree is constructed by following ModuleCall instances recursively @@ -24,7 +31,116 @@ type Config struct { // Module.ModuleCalls. Children map[string]*Config - // Elements points to the object describing the configuration for the + // Module points to the object describing the configuration for the // various elements (variables, resources, etc) defined by this module. - Elements *Module + Module *Module + + // SourceAddr is the source address that the referenced module was requested + // from, as specified in configuration. + // + // This field is meaningless for the root module, where its contents are undefined. + SourceAddr string + + // SourceAddrRange is the location in the configuration source where the + // SourceAddr value was set, for use in diagnostic messages. + // + // This field is meaningless for the root module, where its contents are undefined. + SourceAddrRange hcl.Range + + // Version is the specific version that was selected for this module, + // based on version constraints given in configuration. + // + // This field is meaningless for the root module, where its contents are undefined. + Version *version.Version +} + +// Path returns the path of logical names that lead to this Config from its +// root. +// +// This function should not be used to display a path to the end-user, since +// our UI conventions call for us to return a module address string in that +// case, and a module address string ought to be built from the dynamic +// module tree (resulting from evaluating "count" and "for_each" arguments +// on our calls to produce potentially multiple child instances per call) +// rather than from our static module tree. +// +// This function will panic if called on a config that is not part of a +// wholesome config tree, e.g. because it has incorrectly-built Children +// maps, missing node pointers, etc. However, it should work as expected +// for any tree constructed by BuildConfig and not subsequently modified. +func (c *Config) Path() []string { + // The implementation here is not especially efficient, but we don't + // care too much because module trees are shallow and narrow in all + // reasonable configurations. + + // We'll build our path in reverse here, since we're starting at the + // leafiest node, and then we'll flip it before we return. + path := make([]string, 0, c.Depth()) + + this := c + for this.Parent != nil { + parent := this.Parent + var name string + for candidate, ref := range parent.Children { + if ref == this { + name = candidate + } + } + if name == "" { + panic(fmt.Errorf( + "Config %p does not appear in the child table for its parent %p: %#v", + this, parent, parent.Children, + )) + } + path = append(path, name) + this = parent + } + + // reverse the items + for i := 0; i < len(path)/2; i++ { + j := len(path) - i - 1 + path[i], path[j] = path[j], path[i] + } + return path +} + +// Depth returns the number of "hops" the receiver is from the root of its +// module tree, with the root module having a depth of zero. +func (c *Config) Depth() int { + ret := 0 + this := c + for this.Parent != nil { + ret++ + this = this.Parent + } + return ret +} + +// DeepEach calls the given function once for each module in the tree, starting +// with the receiver. +// +// A parent is always called before its children and children of a particular +// node are visited in lexicographic order by their names. +func (c *Config) DeepEach(cb func(c *Config)) { + cb(c) + + names := make([]string, 0, len(c.Children)) + for name := range c.Children { + names = append(names, name) + } + + for _, name := range names { + c.Children[name].DeepEach(cb) + } +} + +// AllModules returns a slice of all the receiver and all of its descendent +// nodes in the module tree, in the same order they would be visited by +// DeepEach. +func (c *Config) AllModules() []*Config { + var ret []*Config + c.DeepEach(func(c *Config) { + ret = append(ret, c) + }) + return ret } diff --git a/configs/config_build.go b/configs/config_build.go new file mode 100644 index 000000000..ecbf8bc47 --- /dev/null +++ b/configs/config_build.go @@ -0,0 +1,127 @@ +package configs + +import ( + version "github.com/hashicorp/go-version" + "github.com/hashicorp/hcl2/hcl" +) + +// BuildConfig constructs a Config from a root module by loading all of its +// descendent modules via the given ModuleWalker. +// +// The result is a module tree that has so far only had basic module- and +// file-level invariants validated. If the returned diagnostics contains errors, +// the returned module tree may be incomplete but can still be used carefully +// for static analysis. +func BuildConfig(root *Module, walker ModuleWalker) (*Config, hcl.Diagnostics) { + var diags hcl.Diagnostics + cfg := &Config{ + Module: root, + } + cfg.Root = cfg // Root module is self-referential. + cfg.Children, diags = buildChildModules(cfg, walker) + return cfg, diags +} + +func buildChildModules(parent *Config, walker ModuleWalker) (map[string]*Config, hcl.Diagnostics) { + var diags hcl.Diagnostics + ret := map[string]*Config{} + + calls := parent.Module.ModuleCalls + + for _, call := range calls { + req := ModuleRequest{ + Name: call.Name, + SourceAddr: call.SourceAddr, + SourceAddrRange: call.SourceAddrRange, + VersionConstraints: []VersionConstraint{call.Version}, + Parent: parent, + } + + mod, ver, modDiags := walker.LoadModule(&req) + diags = append(diags, modDiags...) + if mod == nil { + // nil can be returned if the source address was invalid and so + // nothing could be loaded whatsoever. LoadModule should've + // returned at least one error diagnostic in that case. + continue + } + + child := &Config{ + Parent: parent, + Root: parent.Root, + Module: mod, + SourceAddr: call.SourceAddr, + SourceAddrRange: call.SourceAddrRange, + Version: ver, + } + + child.Children, modDiags = buildChildModules(child, walker) + + ret[call.Name] = child + } + + return ret, diags +} + +// A ModuleWalker knows how to find and load a child module given details about +// the module to be loaded and a reference to its partially-loaded parent +// Config. +type ModuleWalker interface { + // LoadModule finds and loads a requested child module. + // + // If errors are detected during loading, implementations should return them + // in the diagnostics object. If the diagnostics object contains any errors + // then the caller will tolerate the returned module being nil or incomplete. + // If no errors are returned, it should be non-nil and complete. + // + // Full validation need not have been performed but an implementation should + // ensure that the basic file- and module-validations performed by the + // LoadConfigDir function (valid syntax, no namespace collisions, etc) have + // been performed before returning a module. + LoadModule(req *ModuleRequest) (*Module, *version.Version, hcl.Diagnostics) +} + +// ModuleWalkerFunc is an implementation of ModuleWalker that directly wraps +// a callback function, for more convenient use of that interface. +type ModuleWalkerFunc func(req *ModuleRequest) (*Module, *version.Version, hcl.Diagnostics) + +// LoadModule implements ModuleWalker. +func (f ModuleWalkerFunc) LoadModule(req *ModuleRequest) (*Module, *version.Version, hcl.Diagnostics) { + return f(req) +} + +// ModuleRequest is used with the ModuleWalker interface to describe a child +// module that must be loaded. +type ModuleRequest struct { + // Name is the "logical name" of the module call within configuration. + // This is provided in case the name is used as part of a storage key + // for the module, but implementations must otherwise treat it as an + // opaque string. It is guaranteed to have already been validated as an + // HCL identifier and UTF-8 encoded. + Name string + + // SourceAddr is the source address string provided by the user in + // configuration. + SourceAddr string + + // SourceAddrRange is the source range for the SourceAddr value as it + // was provided in configuration. This can and should be used to generate + // diagnostics about the source address having invalid syntax, referring + // to a non-existent object, etc. + SourceAddrRange hcl.Range + + // VersionConstraints are the constraints applied to the module in + // configuration. This data structure includes the source range for + // each constraint, which can and should be used to generate diagnostics + // about constraint-related issues, such as constraints that eliminate all + // available versions of a module whose source is otherwise valid. + VersionConstraints []VersionConstraint + + // Parent is the partially-constructed module tree node that the loaded + // module will be added to. Callers may refer to any field of this + // structure except Children, which is still under construction when + // ModuleRequest objects are created and thus has undefined content. + // The main reason this is provided is so that full module paths can + // be constructed for uniqueness. + Parent *Config +} diff --git a/configs/config_build_test.go b/configs/config_build_test.go new file mode 100644 index 000000000..3ac46e35c --- /dev/null +++ b/configs/config_build_test.go @@ -0,0 +1,71 @@ +package configs + +import ( + "fmt" + "path/filepath" + "reflect" + "sort" + "strings" + "testing" + + "github.com/davecgh/go-spew/spew" + + version "github.com/hashicorp/go-version" + "github.com/hashicorp/hcl2/hcl" +) + +func TestBuildConfig(t *testing.T) { + parser := NewParser(nil) + mod, diags := parser.LoadConfigDir("test-fixtures/config-build") + assertNoDiagnostics(t, diags) + if mod == nil { + t.Fatal("got nil root module; want non-nil") + } + + versionI := 0 + cfg, diags := BuildConfig(mod, ModuleWalkerFunc( + func(req *ModuleRequest) (*Module, *version.Version, hcl.Diagnostics) { + // For the sake of this test we're going to just treat our + // SourceAddr as a path relative to our fixture directory. + // A "real" implementation of ModuleWalker should accept the + // various different source address syntaxes Terraform supports. + sourcePath := filepath.Join("test-fixtures/config-build", req.SourceAddr) + + mod, diags := parser.LoadConfigDir(sourcePath) + version, _ := version.NewVersion(fmt.Sprintf("1.0.%d", versionI)) + versionI++ + return mod, version, diags + }, + )) + assertNoDiagnostics(t, diags) + if cfg == nil { + t.Fatal("got nil config; want non-nil") + } + + var got []string + cfg.DeepEach(func(c *Config) { + got = append(got, fmt.Sprintf("%s %s", strings.Join(c.Path(), "."), c.Version)) + }) + sort.Strings(got) + want := []string{ + " ", + "child_a 1.0.0", + "child_a.child_c 1.0.1", + "child_b 1.0.2", + "child_b.child_c 1.0.3", + } + + if !reflect.DeepEqual(got, want) { + t.Fatalf("wrong result\ngot: %swant: %s", spew.Sdump(got), spew.Sdump(want)) + } + + if _, exists := cfg.Children["child_a"].Children["child_c"].Module.Outputs["hello"]; !exists { + t.Fatalf("missing output 'hello' in child_a.child_c") + } + if _, exists := cfg.Children["child_b"].Children["child_c"].Module.Outputs["hello"]; !exists { + t.Fatalf("missing output 'hello' in child_b.child_c") + } + if cfg.Children["child_a"].Children["child_c"].Module == cfg.Children["child_b"].Children["child_c"].Module { + t.Fatalf("child_a.child_c is same object as child_b.child_c; should not be") + } +} diff --git a/configs/test-fixtures/config-build/child_a/child_a.tf b/configs/test-fixtures/config-build/child_a/child_a.tf new file mode 100644 index 000000000..6c5759701 --- /dev/null +++ b/configs/test-fixtures/config-build/child_a/child_a.tf @@ -0,0 +1,4 @@ + +module "child_c" { + source = "child_c" +} diff --git a/configs/test-fixtures/config-build/child_b/child_b.tf b/configs/test-fixtures/config-build/child_b/child_b.tf new file mode 100644 index 000000000..1adcb0650 --- /dev/null +++ b/configs/test-fixtures/config-build/child_b/child_b.tf @@ -0,0 +1,7 @@ + +module "child_c" { + # In the unit test where this fixture is used, we treat the source strings + # as absolute paths rather than as source addresses as we would in a real + # module walker. + source = "child_c" +} diff --git a/configs/test-fixtures/config-build/child_c/child_c.tf b/configs/test-fixtures/config-build/child_c/child_c.tf new file mode 100644 index 000000000..16020207c --- /dev/null +++ b/configs/test-fixtures/config-build/child_c/child_c.tf @@ -0,0 +1,3 @@ +output "hello" { + value = "hello" +} diff --git a/configs/test-fixtures/config-build/root.tf b/configs/test-fixtures/config-build/root.tf new file mode 100644 index 000000000..7b3c4a75a --- /dev/null +++ b/configs/test-fixtures/config-build/root.tf @@ -0,0 +1,9 @@ + +module "child_a" { + source = "child_a" +} + +module "child_b" { + source = "child_b" +} + From 9153bb448edd83471bcc8666f1bd89235e5a3fb3 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Thu, 8 Feb 2018 18:56:48 -0800 Subject: [PATCH 063/156] configs: include the module call source range in our module tree --- configs/config.go | 12 +++++++++++- configs/config_build.go | 24 ++++++++++++++++-------- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/configs/config.go b/configs/config.go index 0c07ba143..07040fa8b 100644 --- a/configs/config.go +++ b/configs/config.go @@ -35,6 +35,12 @@ type Config struct { // various elements (variables, resources, etc) defined by this module. Module *Module + // CallRange is the source range for the header of the module block that + // requested this module. + // + // This field is meaningless for the root module, where its contents are undefined. + CallRange hcl.Range + // SourceAddr is the source address that the referenced module was requested // from, as specified in configuration. // @@ -50,7 +56,11 @@ type Config struct { // Version is the specific version that was selected for this module, // based on version constraints given in configuration. // - // This field is meaningless for the root module, where its contents are undefined. + // This field is nil if the module was loaded from a non-registry source, + // since versions are not supported for other sources. + // + // This field is meaningless for the root module, where it will always + // be nil. Version *version.Version } diff --git a/configs/config_build.go b/configs/config_build.go index ecbf8bc47..0182426c1 100644 --- a/configs/config_build.go +++ b/configs/config_build.go @@ -30,11 +30,12 @@ func buildChildModules(parent *Config, walker ModuleWalker) (map[string]*Config, for _, call := range calls { req := ModuleRequest{ - Name: call.Name, - SourceAddr: call.SourceAddr, - SourceAddrRange: call.SourceAddrRange, - VersionConstraints: []VersionConstraint{call.Version}, - Parent: parent, + Name: call.Name, + SourceAddr: call.SourceAddr, + SourceAddrRange: call.SourceAddrRange, + VersionConstraint: call.Version, + Parent: parent, + CallRange: call.DeclRange, } mod, ver, modDiags := walker.LoadModule(&req) @@ -50,6 +51,7 @@ func buildChildModules(parent *Config, walker ModuleWalker) (map[string]*Config, Parent: parent, Root: parent.Root, Module: mod, + CallRange: call.DeclRange, SourceAddr: call.SourceAddr, SourceAddrRange: call.SourceAddrRange, Version: ver, @@ -110,12 +112,12 @@ type ModuleRequest struct { // to a non-existent object, etc. SourceAddrRange hcl.Range - // VersionConstraints are the constraints applied to the module in + // VersionConstraint is the version constraint applied to the module in // configuration. This data structure includes the source range for - // each constraint, which can and should be used to generate diagnostics + // the constraint, which can and should be used to generate diagnostics // about constraint-related issues, such as constraints that eliminate all // available versions of a module whose source is otherwise valid. - VersionConstraints []VersionConstraint + VersionConstraint VersionConstraint // Parent is the partially-constructed module tree node that the loaded // module will be added to. Callers may refer to any field of this @@ -124,4 +126,10 @@ type ModuleRequest struct { // The main reason this is provided is so that full module paths can // be constructed for uniqueness. Parent *Config + + // CallRange is the source range for the header of the "module" block + // in configuration that prompted this request. This can be used as the + // subject of an error diagnostic that relates to the module call itself, + // rather than to either its source address or its version number. + CallRange hcl.Range } From 72ad927c4d499fb71807d38bff4772c9fd4bd91a Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Fri, 9 Feb 2018 15:32:49 -0800 Subject: [PATCH 064/156] configs/configload: package for loading configurations Previously the behavior for loading and installing modules was included in the same package as the representation of the module tree (in the config/module package). In our new world, the model of a module tree (now called a "Config") is included in "configs" along with the Module and File structs. This new package replaces the loading and installation functionality previously in config/module with new equivalents that work with the model objects in "configs". As of this commit, only the loading functionality is implemented. The installation functionality will follow in subsequent commits. --- configs/config.go | 63 ++------- configs/config_build.go | 12 ++ configs/config_build_test.go | 2 +- configs/configload/doc.go | 4 + configs/configload/loader.go | 91 +++++++++++++ configs/configload/loader_load.go | 97 +++++++++++++ configs/configload/loader_load_test.go | 60 ++++++++ configs/configload/loader_test.go | 61 +++++++++ configs/configload/module_manifest.go | 128 ++++++++++++++++++ configs/configload/module_mgr.go | 35 +++++ .../.terraform/modules/child_a/child_a.tf | 4 + .../modules/child_a/child_c/child_c.tf | 4 + .../modules/child_b.child_d/child_d.tf | 4 + .../.terraform/modules/child_b/child_b.tf | 5 + .../.terraform/modules/modules.json | 1 + .../test-fixtures/already-installed/root.tf | 10 ++ 16 files changed, 528 insertions(+), 53 deletions(-) create mode 100644 configs/configload/doc.go create mode 100644 configs/configload/loader.go create mode 100644 configs/configload/loader_load.go create mode 100644 configs/configload/loader_load_test.go create mode 100644 configs/configload/loader_test.go create mode 100644 configs/configload/module_manifest.go create mode 100644 configs/configload/module_mgr.go create mode 100644 configs/configload/test-fixtures/already-installed/.terraform/modules/child_a/child_a.tf create mode 100644 configs/configload/test-fixtures/already-installed/.terraform/modules/child_a/child_c/child_c.tf create mode 100644 configs/configload/test-fixtures/already-installed/.terraform/modules/child_b.child_d/child_d.tf create mode 100644 configs/configload/test-fixtures/already-installed/.terraform/modules/child_b/child_b.tf create mode 100644 configs/configload/test-fixtures/already-installed/.terraform/modules/modules.json create mode 100644 configs/configload/test-fixtures/already-installed/root.tf diff --git a/configs/config.go b/configs/config.go index 07040fa8b..e9b23b7a7 100644 --- a/configs/config.go +++ b/configs/config.go @@ -1,8 +1,6 @@ package configs import ( - "fmt" - version "github.com/hashicorp/go-version" "github.com/hashicorp/hcl2/hcl" ) @@ -26,6 +24,17 @@ type Config struct { // this module. If this is the root module then this field is nil. Parent *Config + // Path is a sequence of module logical names that traverse from the root + // module to this config. Path is empty for the root module. + // + // This should not be used to display a path to the end-user, since + // our UI conventions call for us to return a module address string in that + // case, and a module address string ought to be built from the dynamic + // module tree (resulting from evaluating "count" and "for_each" arguments + // on our calls to produce potentially multiple child instances per call) + // rather than from our static module tree. + Path []string + // ChildModules points to the Config for each of the direct child modules // called from this module. The keys in this map match the keys in // Module.ModuleCalls. @@ -64,56 +73,6 @@ type Config struct { Version *version.Version } -// Path returns the path of logical names that lead to this Config from its -// root. -// -// This function should not be used to display a path to the end-user, since -// our UI conventions call for us to return a module address string in that -// case, and a module address string ought to be built from the dynamic -// module tree (resulting from evaluating "count" and "for_each" arguments -// on our calls to produce potentially multiple child instances per call) -// rather than from our static module tree. -// -// This function will panic if called on a config that is not part of a -// wholesome config tree, e.g. because it has incorrectly-built Children -// maps, missing node pointers, etc. However, it should work as expected -// for any tree constructed by BuildConfig and not subsequently modified. -func (c *Config) Path() []string { - // The implementation here is not especially efficient, but we don't - // care too much because module trees are shallow and narrow in all - // reasonable configurations. - - // We'll build our path in reverse here, since we're starting at the - // leafiest node, and then we'll flip it before we return. - path := make([]string, 0, c.Depth()) - - this := c - for this.Parent != nil { - parent := this.Parent - var name string - for candidate, ref := range parent.Children { - if ref == this { - name = candidate - } - } - if name == "" { - panic(fmt.Errorf( - "Config %p does not appear in the child table for its parent %p: %#v", - this, parent, parent.Children, - )) - } - path = append(path, name) - this = parent - } - - // reverse the items - for i := 0; i < len(path)/2; i++ { - j := len(path) - i - 1 - path[i], path[j] = path[j], path[i] - } - return path -} - // Depth returns the number of "hops" the receiver is from the root of its // module tree, with the root module having a depth of zero. func (c *Config) Depth() int { diff --git a/configs/config_build.go b/configs/config_build.go index 0182426c1..7aca4f1c5 100644 --- a/configs/config_build.go +++ b/configs/config_build.go @@ -29,8 +29,13 @@ func buildChildModules(parent *Config, walker ModuleWalker) (map[string]*Config, calls := parent.Module.ModuleCalls for _, call := range calls { + path := make([]string, len(parent.Path)+1) + copy(path, parent.Path) + path[len(path)-1] = call.Name + req := ModuleRequest{ Name: call.Name, + Path: path, SourceAddr: call.SourceAddr, SourceAddrRange: call.SourceAddrRange, VersionConstraint: call.Version, @@ -50,6 +55,7 @@ func buildChildModules(parent *Config, walker ModuleWalker) (map[string]*Config, child := &Config{ Parent: parent, Root: parent.Root, + Path: path, Module: mod, CallRange: call.DeclRange, SourceAddr: call.SourceAddr, @@ -102,6 +108,12 @@ type ModuleRequest struct { // HCL identifier and UTF-8 encoded. Name string + // Path is a list of logical names that traverse from the root module to + // this module. This can be used, for example, to form a lookup key for + // each distinct module call in a configuration, allowing for multiple + // calls with the same name at different points in the tree. + Path []string + // SourceAddr is the source address string provided by the user in // configuration. SourceAddr string diff --git a/configs/config_build_test.go b/configs/config_build_test.go index 3ac46e35c..1e409d846 100644 --- a/configs/config_build_test.go +++ b/configs/config_build_test.go @@ -44,7 +44,7 @@ func TestBuildConfig(t *testing.T) { var got []string cfg.DeepEach(func(c *Config) { - got = append(got, fmt.Sprintf("%s %s", strings.Join(c.Path(), "."), c.Version)) + got = append(got, fmt.Sprintf("%s %s", strings.Join(c.Path, "."), c.Version)) }) sort.Strings(got) want := []string{ diff --git a/configs/configload/doc.go b/configs/configload/doc.go new file mode 100644 index 000000000..8b615f902 --- /dev/null +++ b/configs/configload/doc.go @@ -0,0 +1,4 @@ +// Package configload knows how to install modules into the .terraform/modules +// directory and to load modules from those installed locations. It is used +// in conjunction with the LoadConfig function in the parent package. +package configload diff --git a/configs/configload/loader.go b/configs/configload/loader.go new file mode 100644 index 000000000..fba244173 --- /dev/null +++ b/configs/configload/loader.go @@ -0,0 +1,91 @@ +package configload + +import ( + "fmt" + + "github.com/hashicorp/terraform/configs" + "github.com/hashicorp/terraform/registry" + "github.com/hashicorp/terraform/svchost/auth" + "github.com/hashicorp/terraform/svchost/disco" + "github.com/spf13/afero" +) + +// A Loader instance is the main entry-point for loading configurations via +// this package. +// +// It extends the general config-loading functionality in the parent package +// "configs" to support installation of modules from remote sources and +// loading full configurations using modules that were previously installed. +type Loader struct { + // parser is used to read configuration + parser *configs.Parser + + // modules is used to install and locate descendent modules that are + // referenced (directly or indirectly) from the root module. + modules moduleMgr +} + +// Config is used with NewLoader to specify configuration arguments for the +// loader. +type Config struct { + // ModulesDir is a path to a directory where descendent modules are + // (or should be) installed. (This is usually the + // .terraform/modules directory, in the common case where this package + // is being loaded from the main Terraform CLI package.) + ModulesDir string + + // Services is the service discovery client to use when locating remote + // module registry endpoints. If this is nil then registry sources are + // not supported, which should be true only in specialized circumstances + // such as in tests. + Services *disco.Disco + + // Creds is a credentials store for communicating with remote module + // registry endpoints. If this is nil then no credentials will be used. + Creds auth.CredentialsSource +} + +// NewLoader creates and returns a loader that reads configuration from the +// real OS filesystem. +// +// The loader has some internal state about the modules that are currently +// installed, which is read from disk as part of this function. If that +// manifest cannot be read then an error will be returned. +func NewLoader(config *Config) (*Loader, error) { + fs := afero.NewOsFs() + parser := configs.NewParser(fs) + reg := registry.NewClient(config.Services, config.Creds, nil) + + ret := &Loader{ + parser: parser, + modules: moduleMgr{ + FS: afero.Afero{fs}, + Dir: config.ModulesDir, + Services: config.Services, + Creds: config.Creds, + Registry: reg, + }, + } + + err := ret.modules.readModuleManifestSnapshot() + if err != nil { + return nil, fmt.Errorf("failed to read module manifest: %s", err) + } + + return ret, nil +} + +// Parser returns the underlying parser for this loader. +// +// This is useful for loading other sorts of files than the module directories +// that a loader deals with, since then they will share the source code cache +// for this loader and can thus be shown as snippets in diagnostic messages. +func (l *Loader) Parser() *configs.Parser { + return l.parser +} + +// Sources returns the source code cache for the underlying parser of this +// loader. This is a shorthand for l.Parser().Sources(). +func (l *Loader) Sources() map[string][]byte { + return l.parser.Sources() +} diff --git a/configs/configload/loader_load.go b/configs/configload/loader_load.go new file mode 100644 index 000000000..104a31d20 --- /dev/null +++ b/configs/configload/loader_load.go @@ -0,0 +1,97 @@ +package configload + +import ( + "fmt" + + version "github.com/hashicorp/go-version" + "github.com/hashicorp/hcl2/hcl" + "github.com/hashicorp/terraform/configs" +) + +// LoadConfig reads the Terraform module in the given directory and uses it as the +// root module to build the static module tree that represents a configuration, +// assuming that all required descendent modules have already been installed. +// +// If error diagnostics are returned, the returned configuration may be either +// nil or incomplete. In the latter case, cautious static analysis is possible +// in spite of the errors. +// +// LoadConfig performs the basic syntax and uniqueness validations that are +// required to process the individual modules, and also detects +func (l *Loader) LoadConfig(rootDir string) (*configs.Config, hcl.Diagnostics) { + rootMod, diags := l.parser.LoadConfigDir(rootDir) + if rootMod == nil { + return nil, diags + } + + cfg, cDiags := configs.BuildConfig(rootMod, configs.ModuleWalkerFunc(l.moduleWalkerLoad)) + diags = append(diags, cDiags...) + + return cfg, diags +} + +// moduleWalkerLoad is a configs.ModuleWalkerFunc for loading modules that +// are presumed to have already been installed. A different function +// (moduleWalkerInstall) is used for installation. +func (l *Loader) moduleWalkerLoad(req *configs.ModuleRequest) (*configs.Module, *version.Version, hcl.Diagnostics) { + // Since we're just loading here, we expect that all referenced modules + // will be already installed and described in our manifest. However, we + // do verify that the manifest and the configuration are in agreement + // so that we can prompt the user to run "terraform init" if not. + + key := manifestKey(req.Path) + record, exists := l.modules.manifest[key] + + if !exists { + return nil, nil, hcl.Diagnostics{ + { + Severity: hcl.DiagError, + Summary: "Module not installed", + Detail: "This module is not yet installed. Run \"terraform init\" to install all modules required by this configuration.", + Subject: &req.CallRange, + }, + } + } + + var diags hcl.Diagnostics + + // Check for inconsistencies between manifest and config + if req.SourceAddr != record.SourceAddr { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Module source has changed", + Detail: "The source address was changed since this module was installed. Run \"terraform init\" to install all modules required by this configuration.", + Subject: &req.SourceAddrRange, + }) + } + if !req.VersionConstraint.Required.Check(record.Version) { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Module version requirements have changed", + Detail: fmt.Sprintf( + "The version requirements have changed since this module was installed and the installed version (%s) is no longer acceptable. Run \"terraform init\" to install all modules required by this configuration.", + record.Version, + ), + Subject: &req.SourceAddrRange, + }) + } + + mod, mDiags := l.parser.LoadConfigDir(record.Dir) + diags = append(diags, mDiags...) + if mod == nil { + // nil specifically indicates that the directory does not exist or + // cannot be read, so in this case we'll discard any generic diagnostics + // returned from LoadConfigDir and produce our own context-sensitive + // error message. + return nil, nil, hcl.Diagnostics{ + { + Severity: hcl.DiagError, + Summary: "Module not installed", + Detail: fmt.Sprintf("This module's local cache directory %s could not be read. Run \"terraform init\" to install all modules required by this configuration.", record.Dir), + Subject: &req.CallRange, + }, + } + } + + return mod, record.Version, diags +} diff --git a/configs/configload/loader_load_test.go b/configs/configload/loader_load_test.go new file mode 100644 index 000000000..6c3a0a940 --- /dev/null +++ b/configs/configload/loader_load_test.go @@ -0,0 +1,60 @@ +package configload + +import ( + "path/filepath" + "reflect" + "sort" + "strings" + "testing" + + "github.com/davecgh/go-spew/spew" + "github.com/zclconf/go-cty/cty" + + "github.com/hashicorp/terraform/configs" +) + +func TestLoaderLoadConfig_okay(t *testing.T) { + fixtureDir := filepath.Clean("test-fixtures/already-installed") + loader, err := NewLoader(&Config{ + ModulesDir: filepath.Join(fixtureDir, ".terraform/modules"), + }) + if err != nil { + t.Fatalf("unexpected error from NewLoader: %s", err) + } + + cfg, diags := loader.LoadConfig(fixtureDir) + assertNoDiagnostics(t, diags) + if cfg == nil { + t.Fatalf("config is nil; want non-nil") + } + + var gotPaths []string + cfg.DeepEach(func(c *configs.Config) { + gotPaths = append(gotPaths, strings.Join(c.Path, ".")) + }) + sort.Strings(gotPaths) + wantPaths := []string{ + "", // root module + "child_a", + "child_a.child_c", + "child_b", + "child_b.child_d", + } + + if !reflect.DeepEqual(gotPaths, wantPaths) { + t.Fatalf("wrong module paths\ngot: %swant %s", spew.Sdump(gotPaths), spew.Sdump(wantPaths)) + } + + t.Run("child_a.child_c output", func(t *testing.T) { + output := cfg.Children["child_a"].Children["child_c"].Module.Outputs["hello"] + got, diags := output.Expr.Value(nil) + assertNoDiagnostics(t, diags) + assertResultCtyEqual(t, got, cty.StringVal("Hello from child_c")) + }) + t.Run("child_b.child_d output", func(t *testing.T) { + output := cfg.Children["child_b"].Children["child_d"].Module.Outputs["hello"] + got, diags := output.Expr.Value(nil) + assertNoDiagnostics(t, diags) + assertResultCtyEqual(t, got, cty.StringVal("Hello from child_d")) + }) +} diff --git a/configs/configload/loader_test.go b/configs/configload/loader_test.go new file mode 100644 index 000000000..512b99f3f --- /dev/null +++ b/configs/configload/loader_test.go @@ -0,0 +1,61 @@ +package configload + +import ( + "reflect" + "testing" + + "github.com/davecgh/go-spew/spew" + "github.com/hashicorp/hcl2/hcl" + "github.com/zclconf/go-cty/cty" +) + +func assertNoDiagnostics(t *testing.T, diags hcl.Diagnostics) bool { + t.Helper() + return assertDiagnosticCount(t, diags, 0) +} + +func assertDiagnosticCount(t *testing.T, diags hcl.Diagnostics, want int) bool { + t.Helper() + if len(diags) != 0 { + t.Errorf("wrong number of diagnostics %d; want %d", len(diags), want) + for _, diag := range diags { + t.Logf("- %s", diag) + } + return true + } + return false +} + +func assertDiagnosticSummary(t *testing.T, diags hcl.Diagnostics, want string) bool { + t.Helper() + + for _, diag := range diags { + if diag.Summary == want { + return false + } + } + + t.Errorf("missing diagnostic summary %q", want) + for _, diag := range diags { + t.Logf("- %s", diag) + } + return true +} + +func assertResultDeepEqual(t *testing.T, got, want interface{}) bool { + t.Helper() + if !reflect.DeepEqual(got, want) { + t.Errorf("wrong result\ngot: %swant: %s", spew.Sdump(got), spew.Sdump(want)) + return true + } + return false +} + +func assertResultCtyEqual(t *testing.T, got, want cty.Value) bool { + t.Helper() + if !got.RawEquals(want) { + t.Errorf("wrong result\ngot: %#v\nwant: %#v", got, want) + return true + } + return false +} diff --git a/configs/configload/module_manifest.go b/configs/configload/module_manifest.go new file mode 100644 index 000000000..8ecc720a7 --- /dev/null +++ b/configs/configload/module_manifest.go @@ -0,0 +1,128 @@ +package configload + +import ( + "encoding/json" + "fmt" + "os" + "path/filepath" + "strings" + + version "github.com/hashicorp/go-version" +) + +// moduleRecord represents some metadata about an installed module, as part +// of a moduleManifest. +type moduleRecord struct { + // Key is a unique identifier for this particular module, based on its + // position within the static module tree. + Key string `json:"Key"` + + // SourceAddr is the source address given for this module in configuration. + // This is used only to detect if the source was changed in configuration + // since the module was last installed, which means that the installer + // must re-install it. + SourceAddr string `json:"Source"` + + // Version is the exact version of the module, which results from parsing + // VersionStr. nil for un-versioned modules. + Version *version.Version `json:"-"` + + // VersionStr is the version specifier string. This is used only for + // serialization in snapshots and should not be accessed or updated + // by any other codepaths; use "Version" instead. + VersionStr string `json:"Version"` + + // Dir is the path to the local directory where the module is installed. + Dir string `json:"Dir"` +} + +// moduleManifest is a map used to keep track of the filesystem locations +// and other metadata about installed modules. +// +// The configuration loader refers to this, while the module installer updates +// it to reflect any changes to the installed modules. +type moduleManifest map[string]moduleRecord + +func manifestKey(path []string) string { + return strings.Join(path, ".") +} + +// manifestSnapshotFile is an internal struct used only to assist in our JSON +// serializtion of manifest snapshots. It should not be used for any other +// purposes. +type manifestSnapshotFile struct { + Records []moduleRecord `json:"Modules"` +} + +const manifestFilename = "modules.json" + +func (m *moduleMgr) manifestSnapshotPath() string { + return filepath.Join(m.Dir, manifestFilename) +} + +// readModuleManifestSnapshot loads a manifest snapshot from the filesystem. +func (m *moduleMgr) readModuleManifestSnapshot() error { + src, err := m.FS.ReadFile(m.manifestSnapshotPath()) + if err != nil { + if os.IsNotExist(err) { + // We'll treat a missing file as an empty manifest + m.manifest = make(moduleManifest) + return nil + } + return err + } + + if len(src) == 0 { + // This should never happen, but we'll tolerate it as if it were + // a valid empty JSON object. + m.manifest = make(moduleManifest) + return nil + } + + var read manifestSnapshotFile + err = json.Unmarshal(src, &read) + + new := make(moduleManifest) + for _, record := range read.Records { + if record.VersionStr != "" { + record.Version, err = version.NewVersion(record.VersionStr) + if err != nil { + return fmt.Errorf("invalid version %q for %s: %s", record.VersionStr, record.Key, err) + } + } + if _, exists := new[record.Key]; exists { + // This should never happen in any valid file, so we'll catch it + // and report it to avoid confusing/undefined behavior if the + // snapshot file was edited incorrectly outside of Terraform. + return fmt.Errorf("snapshot file contains two records for path %s", record.Key) + } + new[record.Key] = record + } + + m.manifest = new + + return nil +} + +// writeModuleManifestSnapshot writes a snapshot of the current manifest +// to the filesystem. +// +// The caller must guarantee no concurrent modifications of the manifest for +// the duration of a call to this function, or the behavior is undefined. +func (m *moduleMgr) writeModuleManifestSnapshot() error { + var write manifestSnapshotFile + + for _, record := range m.manifest { + // Make sure VersionStr is in sync with Version, since we encourage + // callers to manipulate Version and ignore VersionStr. + record.VersionStr = record.Version.String() + write.Records = append(write.Records, record) + } + + src, err := json.Marshal(write) + if err != nil { + return err + } + + return m.FS.WriteFile(m.manifestSnapshotPath(), src, os.ModePerm) +} diff --git a/configs/configload/module_mgr.go b/configs/configload/module_mgr.go new file mode 100644 index 000000000..5856c2ec0 --- /dev/null +++ b/configs/configload/module_mgr.go @@ -0,0 +1,35 @@ +package configload + +import ( + "github.com/hashicorp/terraform/registry" + "github.com/hashicorp/terraform/svchost/auth" + "github.com/hashicorp/terraform/svchost/disco" + "github.com/spf13/afero" +) + +type moduleMgr struct { + FS afero.Afero + + // Dir is the path where descendent modules are (or will be) installed. + Dir string + + // Services is a service discovery client that will be used to find + // remote module registry endpoints. This object may be pre-loaded with + // cached discovery information. + Services *disco.Disco + + // Creds provides optional credentials for communicating with service hosts. + Creds auth.CredentialsSource + + // Registry is a client for the module registry protocol, which is used + // when a module is requested from a registry source. + Registry *registry.Client + + // manifest tracks the currently-installed modules for this manager. + // + // The loader may read this. Only the installer may write to it, and + // after a set of updates are completed the installer must call + // writeModuleManifestSnapshot to persist a snapshot of the manifest + // to disk for use on subsequent runs. + manifest moduleManifest +} diff --git a/configs/configload/test-fixtures/already-installed/.terraform/modules/child_a/child_a.tf b/configs/configload/test-fixtures/already-installed/.terraform/modules/child_a/child_a.tf new file mode 100644 index 000000000..2f4d0f1a0 --- /dev/null +++ b/configs/configload/test-fixtures/already-installed/.terraform/modules/child_a/child_a.tf @@ -0,0 +1,4 @@ + +module "child_c" { + source = "./child_c" +} diff --git a/configs/configload/test-fixtures/already-installed/.terraform/modules/child_a/child_c/child_c.tf b/configs/configload/test-fixtures/already-installed/.terraform/modules/child_a/child_c/child_c.tf new file mode 100644 index 000000000..785d98d98 --- /dev/null +++ b/configs/configload/test-fixtures/already-installed/.terraform/modules/child_a/child_c/child_c.tf @@ -0,0 +1,4 @@ + +output "hello" { + value = "Hello from child_c" +} diff --git a/configs/configload/test-fixtures/already-installed/.terraform/modules/child_b.child_d/child_d.tf b/configs/configload/test-fixtures/already-installed/.terraform/modules/child_b.child_d/child_d.tf new file mode 100644 index 000000000..145576a36 --- /dev/null +++ b/configs/configload/test-fixtures/already-installed/.terraform/modules/child_b.child_d/child_d.tf @@ -0,0 +1,4 @@ + +output "hello" { + value = "Hello from child_d" +} diff --git a/configs/configload/test-fixtures/already-installed/.terraform/modules/child_b/child_b.tf b/configs/configload/test-fixtures/already-installed/.terraform/modules/child_b/child_b.tf new file mode 100644 index 000000000..4a1b247d3 --- /dev/null +++ b/configs/configload/test-fixtures/already-installed/.terraform/modules/child_b/child_b.tf @@ -0,0 +1,5 @@ + +module "child_d" { + source = "example.com/foo/bar_d/baz" + # Intentionally no version here +} diff --git a/configs/configload/test-fixtures/already-installed/.terraform/modules/modules.json b/configs/configload/test-fixtures/already-installed/.terraform/modules/modules.json new file mode 100644 index 000000000..454e719ab --- /dev/null +++ b/configs/configload/test-fixtures/already-installed/.terraform/modules/modules.json @@ -0,0 +1 @@ +{"Modules":[{"Key":"","Source":"","Dir":"test-fixtures/already-installed"},{"Key":"child_a","Source":"example.com/foo/bar_a/baz","Version":"1.0.1","Dir":"test-fixtures/already-installed/.terraform/modules/child_a"},{"Key":"child_b","Source":"example.com/foo/bar_b/baz","Version":"1.0.0","Dir":"test-fixtures/already-installed/.terraform/modules/child_b"},{"Key":"child_a.child_c","Source":"./child_c","Dir":"test-fixtures/already-installed/.terraform/modules/child_a/child_c"},{"Key":"child_b.child_d","Source":"example.com/foo/bar_d/baz","Version":"1.2.0","Dir":"test-fixtures/already-installed/.terraform/modules/child_b.child_d"}]} \ No newline at end of file diff --git a/configs/configload/test-fixtures/already-installed/root.tf b/configs/configload/test-fixtures/already-installed/root.tf new file mode 100644 index 000000000..8a4473942 --- /dev/null +++ b/configs/configload/test-fixtures/already-installed/root.tf @@ -0,0 +1,10 @@ + +module "child_a" { + source = "example.com/foo/bar_a/baz" + version = ">= 1.0.0" +} + +module "child_b" { + source = "example.com/foo/bar_b/baz" + version = ">= 1.0.0" +} From 7feef98517b80238e8fa7ba734d05e63ea63c901 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Tue, 13 Feb 2018 14:40:53 -0800 Subject: [PATCH 065/156] configs/configload: installation of local modules Enough of the InstallModules method to install local modules (those with relative paths). "Install" is actually a bit of an exaggeration for these since we actually just record them in our manifest after verifying that the source directory exists. This is a change of behavior relative to the old module installer since we no longer create a symlink to the module directory inside the .terraform/modules directory. Instead, we record the module's true location in our manifest so that the loader will find it later. The use of a symlink here predated the manifest file. Now that we have a manifest file the symlinks are redundant. Using the "natural" location of the module leads to more helpful error messages, since we'll refer to the module path as the user expects it, rather than to an internal alias. --- configs/configload/loader_install.go | 237 ++++++++++++++++++ configs/configload/loader_install_hooks.go | 34 +++ configs/configload/loader_install_test.go | 65 +++++ configs/configload/loader_test.go | 31 +++ configs/configload/module_manifest.go | 8 +- configs/configload/source_addr.go | 28 +++ .../local-modules/child_a/child_a.tf | 4 + .../local-modules/child_a/child_b/child_b.tf | 4 + .../test-fixtures/local-modules/root.tf | 4 + 9 files changed, 413 insertions(+), 2 deletions(-) create mode 100644 configs/configload/loader_install.go create mode 100644 configs/configload/loader_install_hooks.go create mode 100644 configs/configload/loader_install_test.go create mode 100644 configs/configload/source_addr.go create mode 100644 configs/configload/test-fixtures/local-modules/child_a/child_a.tf create mode 100644 configs/configload/test-fixtures/local-modules/child_a/child_b/child_b.tf create mode 100644 configs/configload/test-fixtures/local-modules/root.tf diff --git a/configs/configload/loader_install.go b/configs/configload/loader_install.go new file mode 100644 index 000000000..2ab6529d3 --- /dev/null +++ b/configs/configload/loader_install.go @@ -0,0 +1,237 @@ +package configload + +import ( + "fmt" + "log" + "os" + "path/filepath" + "strings" + + version "github.com/hashicorp/go-version" + "github.com/hashicorp/hcl2/hcl" + "github.com/hashicorp/terraform/configs" + "github.com/hashicorp/terraform/registry/regsrc" +) + +// InstallModules analyses the root module in the given directory and installs +// all of its direct and transitive dependencies into the loader's modules +// directory, which must already exist. +// +// Since InstallModules makes possibly-time-consuming calls to remote services, +// a hook interface is supported to allow the caller to be notified when +// each module is installed and, for remote modules, when downloading begins. +// LoadConfig guarantees that two hook calls will not happen concurrently but +// it does not guarantee any particular ordering of hook calls. This mechanism +// is for UI feedback only and does not give the caller any control over the +// process. +// +// If modules are already installed in the target directory, they will be +// skipped unless their source address or version have changed or unless +// the upgrade flag is set. +// +// InstallModules never deletes any directory, except in the case where it +// needs to replace a directory that is already present with a newly-extracted +// package. +// +// If the returned diagnostics contains errors then the module installation +// may have wholly or partially completed. Modules must be loaded in order +// to find their dependencies, so this function does many of the same checks +// as LoadConfig as a side-effect. +func (l *Loader) InstallModules(rootDir string, upgrade bool, hooks InstallHooks) hcl.Diagnostics { + rootMod, diags := l.parser.LoadConfigDir(rootDir) + if rootMod == nil { + return diags + } + + if hooks == nil { + // Use our no-op implementation as a placeholder + hooks = InstallHooksImpl{} + } + + // Create a manifest record for the root module. This will be used if + // there are any relative-pathed modules in the root. + l.modules.manifest[""] = moduleRecord{ + Key: "", + Dir: rootDir, + } + + _, cDiags := configs.BuildConfig(rootMod, configs.ModuleWalkerFunc( + func(req *configs.ModuleRequest) (*configs.Module, *version.Version, hcl.Diagnostics) { + + key := manifestKey(req.Path) + instPath := l.packageInstallPath(req.Path) + + log.Printf("[DEBUG] Module installer: begin %s", key) + + // First we'll check if we need to upgrade/replace an existing + // installed module, and delete it out of the way if so. + replace := upgrade + if !replace { + record, recorded := l.modules.manifest[key] + switch { + case !recorded: + log.Printf("[TRACE] %s is not yet installed", key) + replace = true + case record.SourceAddr != req.SourceAddr: + log.Printf("[TRACE] %s source address has changed from %q to %q", key, record.SourceAddr, req.SourceAddr) + replace = true + case record.Version != nil && !req.VersionConstraint.Required.Check(record.Version): + log.Printf("[TRACE] %s version %s no longer compatible with constraints %s", key, record.Version, req.VersionConstraint.Required) + replace = true + } + } + + // If we _are_ planning to replace this module, then we'll remove + // it now so our installation code below won't conflict with any + // existing remnants. + if replace { + if _, recorded := l.modules.manifest[key]; recorded { + log.Printf("[TRACE] discarding previous record of %s prior to reinstall", key) + } + delete(l.modules.manifest, key) + // Deleting a module invalidates all of its descendent modules too. + keyPrefix := key + "." + for subKey := range l.modules.manifest { + if strings.HasPrefix(subKey, keyPrefix) { + if _, recorded := l.modules.manifest[subKey]; recorded { + log.Printf("[TRACE] also discarding downstream %s", subKey) + } + delete(l.modules.manifest, subKey) + } + } + } + + record, recorded := l.modules.manifest[key] + if !recorded { + // Clean up any stale cache directory that might be present. + // If this is a local (relative) source then the dir will + // not exist, but we'll ignore that. + log.Printf("[TRACE] cleaning directory %s prior to install of %s", instPath, key) + err := l.modules.FS.RemoveAll(instPath) + if err != nil && !os.IsNotExist(err) { + log.Printf("[TRACE] failed to remove %s: %s", key, err) + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Failed to remove local module cache", + Detail: fmt.Sprintf( + "Terraform tried to remove %s in order to reinstall this module, but encountered an error: %s", + instPath, err, + ), + Subject: &req.CallRange, + }) + return nil, nil, diags + } + } else { + // If this module is already recorded and its root directory + // exists then we will just load what's already there and + // keep our existing record. + info, err := l.modules.FS.Stat(record.Dir) + if err == nil && info.IsDir() { + mod, mDiags := l.parser.LoadConfigDir(record.Dir) + diags = append(diags, mDiags...) + + log.Printf("[TRACE] Module installer: %s %s already installed in %s", key, record.Version, record.Dir) + return mod, record.Version, diags + } + } + + // If we get down here then it's finally time to actually install + // the module. There are some variants to this process depending + // on what type of module source address we have. + switch { + + case isLocalSourceAddr(req.SourceAddr): + log.Printf("[TRACE] %s has local path %q", key, req.SourceAddr) + mod, mDiags := l.installLocalModule(req, key, hooks) + diags = append(diags, mDiags...) + return mod, nil, diags + + case isRegistrySourceAddr(req.SourceAddr): + addr, err := regsrc.ParseModuleSource(req.SourceAddr) + if err != nil { + // Should never happen because isRegistrySourceAddr already validated + panic(err) + } + log.Printf("[TRACE] %s is a registry module at %s", key, addr) + + // TODO: Implement + panic("registry source installation not yet implemented") + + default: + log.Printf("[TRACE] %s address %q will be interpreted with go-getter", key, req.SourceAddr) + + // TODO: Implement + panic("fallback source installation not yet implemented") + + } + + }, + )) + diags = append(diags, cDiags...) + + err := l.modules.writeModuleManifestSnapshot() + if err != nil { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Failed to update module manifest", + Detail: fmt.Sprintf("Unable to write the module manifest file: %s", err), + }) + } + + return diags +} + +func (l *Loader) installLocalModule(req *configs.ModuleRequest, key string, hooks InstallHooks) (*configs.Module, hcl.Diagnostics) { + var diags hcl.Diagnostics + + parentKey := manifestKey(req.Parent.Path) + parentRecord, recorded := l.modules.manifest[parentKey] + if !recorded { + // This is indicative of a bug rather than a user-actionable error + panic(fmt.Errorf("missing manifest record for parent module %s", parentKey)) + } + + if len(req.VersionConstraint.Required) != 0 { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid version constraint", + Detail: "A version constraint cannot be applied to a module at a relative local path.", + Subject: &req.VersionConstraint.DeclRange, + }) + } + + // For local sources we don't actually need to modify the + // filesystem at all because the parent already wrote + // the files we need, and so we just load up what's already here. + newDir := filepath.Join(parentRecord.Dir, req.SourceAddr) + log.Printf("[TRACE] %s uses directory from parent: %s", key, newDir) + mod, mDiags := l.parser.LoadConfigDir(newDir) + if mod == nil { + // nil indicates missing or unreadable directory, so we'll + // discard the returned diags and return a more specific + // error message here. + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Unreadable module directory", + Detail: fmt.Sprintf("The directory %s could not be read.", newDir), + Subject: &req.SourceAddrRange, + }) + } else { + diags = append(diags, mDiags...) + } + + // Note the local location in our manifest. + l.modules.manifest[key] = moduleRecord{ + Key: key, + Dir: newDir, + SourceAddr: req.SourceAddr, + } + log.Printf("[TRACE] Module installer: %s installed at %s", key, newDir) + hooks.Install(key, nil, newDir) + + return mod, diags +} + +func (l *Loader) packageInstallPath(modulePath []string) string { + return filepath.Join(l.modules.Dir, strings.Join(modulePath, ".")) +} diff --git a/configs/configload/loader_install_hooks.go b/configs/configload/loader_install_hooks.go new file mode 100644 index 000000000..058369414 --- /dev/null +++ b/configs/configload/loader_install_hooks.go @@ -0,0 +1,34 @@ +package configload + +import version "github.com/hashicorp/go-version" + +// InstallHooks is an interface used to provide notifications about the +// installation process being orchestrated by InstallModules. +// +// This interface may have new methods added in future, so implementers should +// embed InstallHooksImpl to get no-op implementations of any unimplemented +// methods. +type InstallHooks interface { + // Download is called for modules that are retrieved from a remote source + // before that download begins, to allow a caller to give feedback + // on progress through a possibly-long sequence of downloads. + Download(moduleAddr, packageAddr string, version *version.Version) + + // Install is called for each module that is installed, even if it did + // not need to be downloaded from a remote source. + Install(moduleAddr string, version *version.Version, localPath string) +} + +// InstallHooksImpl is a do-nothing implementation of InstallHooks that +// can be embedded in another implementation struct to allow only partial +// implementation of the interface. +type InstallHooksImpl struct { +} + +func (h InstallHooksImpl) Download(moduleAddr, packageAddr string, version *version.Version) { +} + +func (h InstallHooksImpl) Install(moduleAddr string, version *version.Version, localPath string) { +} + +var _ InstallHooks = InstallHooksImpl{} diff --git a/configs/configload/loader_install_test.go b/configs/configload/loader_install_test.go new file mode 100644 index 000000000..608b08a00 --- /dev/null +++ b/configs/configload/loader_install_test.go @@ -0,0 +1,65 @@ +package configload + +import ( + "path/filepath" + "testing" + + version "github.com/hashicorp/go-version" +) + +func TestLoaderInstallModules_local(t *testing.T) { + fixtureDir := filepath.Clean("test-fixtures/local-modules") + loader := newTestLoader(filepath.Join(fixtureDir, ".terraform/modules")) + + hooks := &testInstallHooks{} + + diags := loader.InstallModules(fixtureDir, false, hooks) + assertNoDiagnostics(t, diags) + + wantCalls := []testInstallHookCall{ + { + Name: "Install", + ModuleAddr: "child_a", + PackageAddr: "", + LocalPath: "test-fixtures/local-modules/child_a", + }, + { + Name: "Install", + ModuleAddr: "child_a.child_b", + PackageAddr: "", + LocalPath: "test-fixtures/local-modules/child_a/child_b", + }, + } + + assertResultDeepEqual(t, hooks.Calls, wantCalls) +} + +type testInstallHooks struct { + Calls []testInstallHookCall +} + +type testInstallHookCall struct { + Name string + ModuleAddr string + PackageAddr string + Version *version.Version + LocalPath string +} + +func (h *testInstallHooks) Download(moduleAddr, packageAddr string, version *version.Version) { + h.Calls = append(h.Calls, testInstallHookCall{ + Name: "Download", + ModuleAddr: moduleAddr, + PackageAddr: packageAddr, + Version: version, + }) +} + +func (h *testInstallHooks) Install(moduleAddr string, version *version.Version, localPath string) { + h.Calls = append(h.Calls, testInstallHookCall{ + Name: "Install", + ModuleAddr: moduleAddr, + Version: version, + LocalPath: localPath, + }) +} diff --git a/configs/configload/loader_test.go b/configs/configload/loader_test.go index 512b99f3f..6ab1fc8c5 100644 --- a/configs/configload/loader_test.go +++ b/configs/configload/loader_test.go @@ -4,11 +4,42 @@ import ( "reflect" "testing" + "github.com/spf13/afero" + "github.com/davecgh/go-spew/spew" "github.com/hashicorp/hcl2/hcl" + "github.com/hashicorp/terraform/configs" + "github.com/hashicorp/terraform/registry" "github.com/zclconf/go-cty/cty" ) +// newTestLoader is like NewLoader but it uses a copy-on-write overlay filesystem +// over the real filesystem so that any files that are created cannot persist +// between test runs. +// +// It will also panic if there are any errors creating the loader, since +// these should never happen in a testing scenario. +func newTestLoader(dir string) *Loader { + realFS := afero.NewOsFs() + overlayFS := afero.NewMemMapFs() + fs := afero.NewCopyOnWriteFs(realFS, overlayFS) + parser := configs.NewParser(fs) + reg := registry.NewClient(nil, nil, nil) + ret := &Loader{ + parser: parser, + modules: moduleMgr{ + FS: afero.Afero{fs}, + Dir: dir, + Registry: reg, + }, + } + err := ret.modules.readModuleManifestSnapshot() + if err != nil { + panic(err) + } + return ret +} + func assertNoDiagnostics(t *testing.T, diags hcl.Diagnostics) bool { t.Helper() return assertDiagnosticCount(t, diags, 0) diff --git a/configs/configload/module_manifest.go b/configs/configload/module_manifest.go index 8ecc720a7..777f3a282 100644 --- a/configs/configload/module_manifest.go +++ b/configs/configload/module_manifest.go @@ -30,7 +30,7 @@ type moduleRecord struct { // VersionStr is the version specifier string. This is used only for // serialization in snapshots and should not be accessed or updated // by any other codepaths; use "Version" instead. - VersionStr string `json:"Version"` + VersionStr string `json:"Version,omitempty"` // Dir is the path to the local directory where the module is installed. Dir string `json:"Dir"` @@ -115,7 +115,11 @@ func (m *moduleMgr) writeModuleManifestSnapshot() error { for _, record := range m.manifest { // Make sure VersionStr is in sync with Version, since we encourage // callers to manipulate Version and ignore VersionStr. - record.VersionStr = record.Version.String() + if record.Version != nil { + record.VersionStr = record.Version.String() + } else { + record.VersionStr = "" + } write.Records = append(write.Records, record) } diff --git a/configs/configload/source_addr.go b/configs/configload/source_addr.go new file mode 100644 index 000000000..7767859c5 --- /dev/null +++ b/configs/configload/source_addr.go @@ -0,0 +1,28 @@ +package configload + +import ( + "strings" + + "github.com/hashicorp/terraform/registry/regsrc" +) + +var localSourcePrefixes = []string{ + "./", + "../", + ".\\", + "..\\", +} + +func isLocalSourceAddr(addr string) bool { + for _, prefix := range localSourcePrefixes { + if strings.HasPrefix(addr, prefix) { + return true + } + } + return false +} + +func isRegistrySourceAddr(addr string) bool { + _, err := regsrc.ParseModuleSource(addr) + return err == nil +} diff --git a/configs/configload/test-fixtures/local-modules/child_a/child_a.tf b/configs/configload/test-fixtures/local-modules/child_a/child_a.tf new file mode 100644 index 000000000..eb2c0044f --- /dev/null +++ b/configs/configload/test-fixtures/local-modules/child_a/child_a.tf @@ -0,0 +1,4 @@ + +module "child_b" { + source = "./child_b" +} diff --git a/configs/configload/test-fixtures/local-modules/child_a/child_b/child_b.tf b/configs/configload/test-fixtures/local-modules/child_a/child_b/child_b.tf new file mode 100644 index 000000000..4900e9796 --- /dev/null +++ b/configs/configload/test-fixtures/local-modules/child_a/child_b/child_b.tf @@ -0,0 +1,4 @@ + +output "hello" { + value = "Hello from child_b!" +} diff --git a/configs/configload/test-fixtures/local-modules/root.tf b/configs/configload/test-fixtures/local-modules/root.tf new file mode 100644 index 000000000..1a6721b5d --- /dev/null +++ b/configs/configload/test-fixtures/local-modules/root.tf @@ -0,0 +1,4 @@ + +module "child_a" { + source = "./child_a" +} From 51e5f7a56b098aaa8a53d61e2f12a1546bf22709 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Wed, 14 Feb 2018 12:37:30 -0800 Subject: [PATCH 066/156] govendor fetch github.com/go-test/deep This will be used to produce readable diffs for deep data structures in unit tests. --- vendor/github.com/go-test/deep/CHANGES.md | 9 + vendor/github.com/go-test/deep/LICENSE | 21 ++ vendor/github.com/go-test/deep/README.md | 51 ++++ vendor/github.com/go-test/deep/deep.go | 352 ++++++++++++++++++++++ vendor/vendor.json | 6 + 5 files changed, 439 insertions(+) create mode 100644 vendor/github.com/go-test/deep/CHANGES.md create mode 100644 vendor/github.com/go-test/deep/LICENSE create mode 100644 vendor/github.com/go-test/deep/README.md create mode 100644 vendor/github.com/go-test/deep/deep.go diff --git a/vendor/github.com/go-test/deep/CHANGES.md b/vendor/github.com/go-test/deep/CHANGES.md new file mode 100644 index 000000000..4351819d6 --- /dev/null +++ b/vendor/github.com/go-test/deep/CHANGES.md @@ -0,0 +1,9 @@ +# go-test/deep Changelog + +## v1.0.1 released 2018-01-28 + +* Fixed #12: Arrays are not properly compared (samlitowitz) + +## v1.0.0 releaesd 2017-10-27 + +* First release diff --git a/vendor/github.com/go-test/deep/LICENSE b/vendor/github.com/go-test/deep/LICENSE new file mode 100644 index 000000000..228ef16f7 --- /dev/null +++ b/vendor/github.com/go-test/deep/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright 2015-2017 Daniel Nichter + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/go-test/deep/README.md b/vendor/github.com/go-test/deep/README.md new file mode 100644 index 000000000..3b78eac7c --- /dev/null +++ b/vendor/github.com/go-test/deep/README.md @@ -0,0 +1,51 @@ +# Deep Variable Equality for Humans + +[![Go Report Card](https://goreportcard.com/badge/github.com/go-test/deep)](https://goreportcard.com/report/github.com/go-test/deep) [![Build Status](https://travis-ci.org/go-test/deep.svg?branch=master)](https://travis-ci.org/go-test/deep) [![Coverage Status](https://coveralls.io/repos/github/go-test/deep/badge.svg?branch=master)](https://coveralls.io/github/go-test/deep?branch=master) [![GoDoc](https://godoc.org/github.com/go-test/deep?status.svg)](https://godoc.org/github.com/go-test/deep) + +This package provides a single function: `deep.Equal`. It's like [reflect.DeepEqual](http://golang.org/pkg/reflect/#DeepEqual) but much friendlier to humans (or any sentient being) for two reason: + +* `deep.Equal` returns a list of differences +* `deep.Equal` does not compare unexported fields (by default) + +`reflect.DeepEqual` is good (like all things Golang!), but it's a game of [Hunt the Wumpus](https://en.wikipedia.org/wiki/Hunt_the_Wumpus). For large maps, slices, and structs, finding the difference is difficult. + +`deep.Equal` doesn't play games with you, it lists the differences: + +```go +package main_test + +import ( + "testing" + "github.com/go-test/deep" +) + +type T struct { + Name string + Numbers []float64 +} + +func TestDeepEqual(t *testing.T) { + // Can you spot the difference? + t1 := T{ + Name: "Isabella", + Numbers: []float64{1.13459, 2.29343, 3.010100010}, + } + t2 := T{ + Name: "Isabella", + Numbers: []float64{1.13459, 2.29843, 3.010100010}, + } + + if diff := deep.Equal(t1, t2); diff != nil { + t.Error(diff) + } +} +``` + + +``` +$ go test +--- FAIL: TestDeepEqual (0.00s) + main_test.go:25: [Numbers.slice[1]: 2.29343 != 2.29843] +``` + +The difference is in `Numbers.slice[1]`: the two values aren't equal using Go `==`. diff --git a/vendor/github.com/go-test/deep/deep.go b/vendor/github.com/go-test/deep/deep.go new file mode 100644 index 000000000..4ea14cb04 --- /dev/null +++ b/vendor/github.com/go-test/deep/deep.go @@ -0,0 +1,352 @@ +// Package deep provides function deep.Equal which is like reflect.DeepEqual but +// returns a list of differences. This is helpful when comparing complex types +// like structures and maps. +package deep + +import ( + "errors" + "fmt" + "log" + "reflect" + "strings" +) + +var ( + // FloatPrecision is the number of decimal places to round float values + // to when comparing. + FloatPrecision = 10 + + // MaxDiff specifies the maximum number of differences to return. + MaxDiff = 10 + + // MaxDepth specifies the maximum levels of a struct to recurse into. + MaxDepth = 10 + + // LogErrors causes errors to be logged to STDERR when true. + LogErrors = false + + // CompareUnexportedFields causes unexported struct fields, like s in + // T{s int}, to be comparsed when true. + CompareUnexportedFields = false +) + +var ( + // ErrMaxRecursion is logged when MaxDepth is reached. + ErrMaxRecursion = errors.New("recursed to MaxDepth") + + // ErrTypeMismatch is logged when Equal passed two different types of values. + ErrTypeMismatch = errors.New("variables are different reflect.Type") + + // ErrNotHandled is logged when a primitive Go kind is not handled. + ErrNotHandled = errors.New("cannot compare the reflect.Kind") +) + +type cmp struct { + diff []string + buff []string + floatFormat string +} + +var errorType = reflect.TypeOf((*error)(nil)).Elem() + +// Equal compares variables a and b, recursing into their structure up to +// MaxDepth levels deep, and returns a list of differences, or nil if there are +// none. Some differences may not be found if an error is also returned. +// +// If a type has an Equal method, like time.Equal, it is called to check for +// equality. +func Equal(a, b interface{}) []string { + aVal := reflect.ValueOf(a) + bVal := reflect.ValueOf(b) + c := &cmp{ + diff: []string{}, + buff: []string{}, + floatFormat: fmt.Sprintf("%%.%df", FloatPrecision), + } + if a == nil && b == nil { + return nil + } else if a == nil && b != nil { + c.saveDiff(b, "") + } else if a != nil && b == nil { + c.saveDiff(a, "") + } + if len(c.diff) > 0 { + return c.diff + } + + c.equals(aVal, bVal, 0) + if len(c.diff) > 0 { + return c.diff // diffs + } + return nil // no diffs +} + +func (c *cmp) equals(a, b reflect.Value, level int) { + if level > MaxDepth { + logError(ErrMaxRecursion) + return + } + + // Check if one value is nil, e.g. T{x: *X} and T.x is nil + if !a.IsValid() || !b.IsValid() { + if a.IsValid() && !b.IsValid() { + c.saveDiff(a.Type(), "") + } else if !a.IsValid() && b.IsValid() { + c.saveDiff("", b.Type()) + } + return + } + + // If differenet types, they can't be equal + aType := a.Type() + bType := b.Type() + if aType != bType { + c.saveDiff(aType, bType) + logError(ErrTypeMismatch) + return + } + + // Primitive https://golang.org/pkg/reflect/#Kind + aKind := a.Kind() + bKind := b.Kind() + + // If both types implement the error interface, compare the error strings. + // This must be done before dereferencing because the interface is on a + // pointer receiver. + if aType.Implements(errorType) && bType.Implements(errorType) { + if a.Elem().IsValid() && b.Elem().IsValid() { // both err != nil + aString := a.MethodByName("Error").Call(nil)[0].String() + bString := b.MethodByName("Error").Call(nil)[0].String() + if aString != bString { + c.saveDiff(aString, bString) + } + return + } + } + + // Dereference pointers and interface{} + if aElem, bElem := (aKind == reflect.Ptr || aKind == reflect.Interface), + (bKind == reflect.Ptr || bKind == reflect.Interface); aElem || bElem { + + if aElem { + a = a.Elem() + } + + if bElem { + b = b.Elem() + } + + c.equals(a, b, level+1) + return + } + + // Types with an Equal(), like time.Time. + eqFunc := a.MethodByName("Equal") + if eqFunc.IsValid() { + retVals := eqFunc.Call([]reflect.Value{b}) + if !retVals[0].Bool() { + c.saveDiff(a, b) + } + return + } + + switch aKind { + + ///////////////////////////////////////////////////////////////////// + // Iterable kinds + ///////////////////////////////////////////////////////////////////// + + case reflect.Struct: + /* + The variables are structs like: + type T struct { + FirstName string + LastName string + } + Type = .T, Kind = reflect.Struct + + Iterate through the fields (FirstName, LastName), recurse into their values. + */ + for i := 0; i < a.NumField(); i++ { + if aType.Field(i).PkgPath != "" && !CompareUnexportedFields { + continue // skip unexported field, e.g. s in type T struct {s string} + } + + c.push(aType.Field(i).Name) // push field name to buff + + // Get the Value for each field, e.g. FirstName has Type = string, + // Kind = reflect.String. + af := a.Field(i) + bf := b.Field(i) + + // Recurse to compare the field values + c.equals(af, bf, level+1) + + c.pop() // pop field name from buff + + if len(c.diff) >= MaxDiff { + break + } + } + case reflect.Map: + /* + The variables are maps like: + map[string]int{ + "foo": 1, + "bar": 2, + } + Type = map[string]int, Kind = reflect.Map + + Or: + type T map[string]int{} + Type = .T, Kind = reflect.Map + + Iterate through the map keys (foo, bar), recurse into their values. + */ + + if a.IsNil() || b.IsNil() { + if a.IsNil() && !b.IsNil() { + c.saveDiff("", b) + } else if !a.IsNil() && b.IsNil() { + c.saveDiff(a, "") + } + return + } + + if a.Pointer() == b.Pointer() { + return + } + + for _, key := range a.MapKeys() { + c.push(fmt.Sprintf("map[%s]", key)) + + aVal := a.MapIndex(key) + bVal := b.MapIndex(key) + if bVal.IsValid() { + c.equals(aVal, bVal, level+1) + } else { + c.saveDiff(aVal, "") + } + + c.pop() + + if len(c.diff) >= MaxDiff { + return + } + } + + for _, key := range b.MapKeys() { + if aVal := a.MapIndex(key); aVal.IsValid() { + continue + } + + c.push(fmt.Sprintf("map[%s]", key)) + c.saveDiff("", b.MapIndex(key)) + c.pop() + if len(c.diff) >= MaxDiff { + return + } + } + case reflect.Array: + n := a.Len() + for i := 0; i < n; i++ { + c.push(fmt.Sprintf("array[%d]", i)) + c.equals(a.Index(i), b.Index(i), level+1) + c.pop() + if len(c.diff) >= MaxDiff { + break + } + } + case reflect.Slice: + if a.IsNil() || b.IsNil() { + if a.IsNil() && !b.IsNil() { + c.saveDiff("", b) + } else if !a.IsNil() && b.IsNil() { + c.saveDiff(a, "") + } + return + } + + if a.Pointer() == b.Pointer() { + return + } + + aLen := a.Len() + bLen := b.Len() + n := aLen + if bLen > aLen { + n = bLen + } + for i := 0; i < n; i++ { + c.push(fmt.Sprintf("slice[%d]", i)) + if i < aLen && i < bLen { + c.equals(a.Index(i), b.Index(i), level+1) + } else if i < aLen { + c.saveDiff(a.Index(i), "") + } else { + c.saveDiff("", b.Index(i)) + } + c.pop() + if len(c.diff) >= MaxDiff { + break + } + } + + ///////////////////////////////////////////////////////////////////// + // Primitive kinds + ///////////////////////////////////////////////////////////////////// + + case reflect.Float32, reflect.Float64: + // Avoid 0.04147685731961082 != 0.041476857319611 + // 6 decimal places is close enough + aval := fmt.Sprintf(c.floatFormat, a.Float()) + bval := fmt.Sprintf(c.floatFormat, b.Float()) + if aval != bval { + c.saveDiff(a.Float(), b.Float()) + } + case reflect.Bool: + if a.Bool() != b.Bool() { + c.saveDiff(a.Bool(), b.Bool()) + } + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + if a.Int() != b.Int() { + c.saveDiff(a.Int(), b.Int()) + } + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: + if a.Uint() != b.Uint() { + c.saveDiff(a.Uint(), b.Uint()) + } + case reflect.String: + if a.String() != b.String() { + c.saveDiff(a.String(), b.String()) + } + + default: + logError(ErrNotHandled) + } +} + +func (c *cmp) push(name string) { + c.buff = append(c.buff, name) +} + +func (c *cmp) pop() { + if len(c.buff) > 0 { + c.buff = c.buff[0 : len(c.buff)-1] + } +} + +func (c *cmp) saveDiff(aval, bval interface{}) { + if len(c.buff) > 0 { + varName := strings.Join(c.buff, ".") + c.diff = append(c.diff, fmt.Sprintf("%s: %v != %v", varName, aval, bval)) + } else { + c.diff = append(c.diff, fmt.Sprintf("%v != %v", aval, bval)) + } +} + +func logError(err error) { + if LogErrors { + log.Println(err) + } +} diff --git a/vendor/vendor.json b/vendor/vendor.json index 3465886dd..a753fb261 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -1158,6 +1158,12 @@ "revision": "766e555c68dc8bda90d197ee8946c37519c19409", "revisionTime": "2017-01-17T13:00:17Z" }, + { + "checksumSHA1": "dni8Puy96l7QbQlJwLtrZvM5rxM=", + "path": "github.com/go-test/deep", + "revision": "6592d9cc0a499ad2d5f574fde80a2b5c5cc3b4f5", + "revisionTime": "2018-01-28T22:55:04Z" + }, { "checksumSHA1": "q3Bc7JpLWBqhZ4M7oreGo34RSkc=", "path": "github.com/golang/protobuf/proto", From 3d551e25e01bd95c190766869bf0260debe07ead Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Wed, 14 Feb 2018 12:46:13 -0800 Subject: [PATCH 067/156] configs: BuildConfig sorts child modules by name This is not strictly necessary, but since this is not a performance-critical codepath we'll do this because it makes life easier for callers that want to print out user-facing logs about build process, or who are logging actions taken as part of a unit test. --- configs/config_build.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/configs/config_build.go b/configs/config_build.go index 7aca4f1c5..b33d121e4 100644 --- a/configs/config_build.go +++ b/configs/config_build.go @@ -1,6 +1,8 @@ package configs import ( + "sort" + version "github.com/hashicorp/go-version" "github.com/hashicorp/hcl2/hcl" ) @@ -28,7 +30,16 @@ func buildChildModules(parent *Config, walker ModuleWalker) (map[string]*Config, calls := parent.Module.ModuleCalls - for _, call := range calls { + // We'll sort the calls by their local names so that they'll appear in a + // predictable order in any logging that's produced during the walk. + callNames := make([]string, 0, len(calls)) + for k := range calls { + callNames = append(callNames, k) + } + sort.Strings(callNames) + + for _, callName := range callNames { + call := calls[callName] path := make([]string, len(parent.Path)+1) copy(path, parent.Path) path[len(path)-1] = call.Name From 59939cf320aa19c50c05a1ed668f26088906fa95 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Tue, 13 Feb 2018 16:36:36 -0800 Subject: [PATCH 068/156] configs/configload: installation from registry and go-getter Unlike the old installer in config/module, this uses new-style installation directories that include the static module path so that paths we show in diagnostics will be more meaningful to the user. As before, we retrieve the entire "package" associated with the given source string, rather than any given subdirectory directly, because the retrieved module may contain ../ references into parent directories which must be resolvable after extraction. --- configs/configload/copy_dir.go | 114 ++++++++ configs/configload/getter.go | 122 ++++++++ configs/configload/inode.go | 21 ++ configs/configload/inode_freebsd.go | 21 ++ configs/configload/inode_windows.go | 8 + configs/configload/loader_install.go | 271 +++++++++++++++++- configs/configload/loader_install_test.go | 205 ++++++++++++- configs/configload/loader_test.go | 109 +++++-- configs/configload/source_addr.go | 17 ++ .../go-getter-modules/.gitignore | 1 + .../test-fixtures/go-getter-modules/root.tf | 16 ++ .../test-fixtures/registry-modules/.gitignore | 1 + .../test-fixtures/registry-modules/root.tf | 27 ++ registry/client.go | 2 +- registry/errors.go | 23 ++ 15 files changed, 915 insertions(+), 43 deletions(-) create mode 100644 configs/configload/copy_dir.go create mode 100644 configs/configload/getter.go create mode 100644 configs/configload/inode.go create mode 100644 configs/configload/inode_freebsd.go create mode 100644 configs/configload/inode_windows.go create mode 100644 configs/configload/test-fixtures/go-getter-modules/.gitignore create mode 100644 configs/configload/test-fixtures/go-getter-modules/root.tf create mode 100644 configs/configload/test-fixtures/registry-modules/.gitignore create mode 100644 configs/configload/test-fixtures/registry-modules/root.tf create mode 100644 registry/errors.go diff --git a/configs/configload/copy_dir.go b/configs/configload/copy_dir.go new file mode 100644 index 000000000..ad34a3204 --- /dev/null +++ b/configs/configload/copy_dir.go @@ -0,0 +1,114 @@ +package configload + +import ( + "io" + "os" + "path/filepath" + "strings" +) + +// copyDir copies the src directory contents into dst. Both directories +// should already exist. +func copyDir(dst, src string) error { + src, err := filepath.EvalSymlinks(src) + if err != nil { + return err + } + + walkFn := func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + + if path == src { + return nil + } + + if strings.HasPrefix(filepath.Base(path), ".") { + // Skip any dot files + if info.IsDir() { + return filepath.SkipDir + } else { + return nil + } + } + + // The "path" has the src prefixed to it. We need to join our + // destination with the path without the src on it. + dstPath := filepath.Join(dst, path[len(src):]) + + // we don't want to try and copy the same file over itself. + if eq, err := sameFile(path, dstPath); eq { + return nil + } else if err != nil { + return err + } + + // If we have a directory, make that subdirectory, then continue + // the walk. + if info.IsDir() { + if path == filepath.Join(src, dst) { + // dst is in src; don't walk it. + return nil + } + + if err := os.MkdirAll(dstPath, 0755); err != nil { + return err + } + + return nil + } + + // If we have a file, copy the contents. + srcF, err := os.Open(path) + if err != nil { + return err + } + defer srcF.Close() + + dstF, err := os.Create(dstPath) + if err != nil { + return err + } + defer dstF.Close() + + if _, err := io.Copy(dstF, srcF); err != nil { + return err + } + + // Chmod it + return os.Chmod(dstPath, info.Mode()) + } + + return filepath.Walk(src, walkFn) +} + +// sameFile tried to determine if to paths are the same file. +// If the paths don't match, we lookup the inode on supported systems. +func sameFile(a, b string) (bool, error) { + if a == b { + return true, nil + } + + aIno, err := inode(a) + if err != nil { + if os.IsNotExist(err) { + return false, nil + } + return false, err + } + + bIno, err := inode(b) + if err != nil { + if os.IsNotExist(err) { + return false, nil + } + return false, err + } + + if aIno > 0 && aIno == bIno { + return true, nil + } + + return false, nil +} diff --git a/configs/configload/getter.go b/configs/configload/getter.go new file mode 100644 index 000000000..fffc48c04 --- /dev/null +++ b/configs/configload/getter.go @@ -0,0 +1,122 @@ +package configload + +import ( + "log" + "path/filepath" + + cleanhttp "github.com/hashicorp/go-cleanhttp" + getter "github.com/hashicorp/go-getter" +) + +// We configure our own go-getter detector and getter sets here, because +// the set of sources we support is part of Terraform's documentation and +// so we don't want any new sources introduced in go-getter to sneak in here +// and work even though they aren't documented. This also insulates us from +// any meddling that might be done by other go-getter callers linked into our +// executable. + +var goGetterDetectors = []getter.Detector{ + new(getter.GitHubDetector), + new(getter.BitBucketDetector), + new(getter.S3Detector), + new(getter.FileDetector), +} + +var goGetterNoDetectors = []getter.Detector{} + +var goGetterDecompressors = map[string]getter.Decompressor{ + "bz2": new(getter.Bzip2Decompressor), + "gz": new(getter.GzipDecompressor), + "xz": new(getter.XzDecompressor), + "zip": new(getter.ZipDecompressor), + + "tar.bz2": new(getter.TarBzip2Decompressor), + "tar.tbz2": new(getter.TarBzip2Decompressor), + + "tar.gz": new(getter.TarGzipDecompressor), + "tgz": new(getter.TarGzipDecompressor), + + "tar.xz": new(getter.TarXzDecompressor), + "txz": new(getter.TarXzDecompressor), +} + +var goGetterGetters = map[string]getter.Getter{ + "file": new(getter.FileGetter), + "git": new(getter.GitGetter), + "hg": new(getter.HgGetter), + "s3": new(getter.S3Getter), + "http": getterHTTPGetter, + "https": getterHTTPGetter, +} + +var getterHTTPClient = cleanhttp.DefaultClient() + +var getterHTTPGetter = &getter.HttpGetter{ + Client: getterHTTPClient, + Netrc: true, +} + +// getWithGoGetter retrieves the package referenced in the given address +// into the installation path and then returns the full path to any subdir +// indicated in the address. +// +// The errors returned by this function are those surfaced by the underlying +// go-getter library, which have very inconsistent quality as +// end-user-actionable error messages. At this time we do not have any +// reasonable way to improve these error messages at this layer because +// the underlying errors are not separatelyr recognizable. +func getWithGoGetter(instPath, addr string) (string, error) { + packageAddr, subDir := splitAddrSubdir(addr) + + log.Printf("[DEBUG] will download %q to %s", packageAddr, instPath) + + realAddr, err := getter.Detect(packageAddr, instPath, getter.Detectors) + if err != nil { + return "", err + } + + var realSubDir string + realAddr, realSubDir = splitAddrSubdir(realAddr) + if realSubDir != "" { + subDir = filepath.Join(realSubDir, subDir) + } + + if realAddr != packageAddr { + log.Printf("[TRACE] go-getter detectors rewrote %q to %q", packageAddr, realAddr) + } + + client := getter.Client{ + Src: realAddr, + Dst: instPath, + Pwd: instPath, + + Mode: getter.ClientModeDir, + + Detectors: goGetterNoDetectors, // we already did detection above + Decompressors: goGetterDecompressors, + Getters: goGetterGetters, + } + err = client.Get() + if err != nil { + return "", err + } + + // Our subDir string can contain wildcards until this point, so that + // e.g. a subDir of * can expand to one top-level directory in a .tar.gz + // archive. Now that we've expanded the archive successfully we must + // resolve that into a concrete path. + var finalDir string + if subDir != "" { + finalDir, err = getter.SubdirGlob(instPath, subDir) + log.Printf("[TRACE] expanded %q to %q", subDir, finalDir) + if err != nil { + return "", err + } + } else { + finalDir = instPath + } + + // If we got this far then we have apparently succeeded in downloading + // the requested object! + return filepath.Clean(finalDir), nil +} diff --git a/configs/configload/inode.go b/configs/configload/inode.go new file mode 100644 index 000000000..57df04145 --- /dev/null +++ b/configs/configload/inode.go @@ -0,0 +1,21 @@ +// +build linux darwin openbsd netbsd solaris dragonfly + +package configload + +import ( + "fmt" + "os" + "syscall" +) + +// lookup the inode of a file on posix systems +func inode(path string) (uint64, error) { + stat, err := os.Stat(path) + if err != nil { + return 0, err + } + if st, ok := stat.Sys().(*syscall.Stat_t); ok { + return st.Ino, nil + } + return 0, fmt.Errorf("could not determine file inode") +} diff --git a/configs/configload/inode_freebsd.go b/configs/configload/inode_freebsd.go new file mode 100644 index 000000000..4dc28eaa8 --- /dev/null +++ b/configs/configload/inode_freebsd.go @@ -0,0 +1,21 @@ +// +build freebsd + +package configload + +import ( + "fmt" + "os" + "syscall" +) + +// lookup the inode of a file on posix systems +func inode(path string) (uint64, error) { + stat, err := os.Stat(path) + if err != nil { + return 0, err + } + if st, ok := stat.Sys().(*syscall.Stat_t); ok { + return uint64(st.Ino), nil + } + return 0, fmt.Errorf("could not determine file inode") +} diff --git a/configs/configload/inode_windows.go b/configs/configload/inode_windows.go new file mode 100644 index 000000000..0d22e6726 --- /dev/null +++ b/configs/configload/inode_windows.go @@ -0,0 +1,8 @@ +// +build windows + +package configload + +// no syscall.Stat_t on windows, return 0 for inodes +func inode(path string) (uint64, error) { + return 0, nil +} diff --git a/configs/configload/loader_install.go b/configs/configload/loader_install.go index 2ab6529d3..41ef4224d 100644 --- a/configs/configload/loader_install.go +++ b/configs/configload/loader_install.go @@ -10,6 +10,7 @@ import ( version "github.com/hashicorp/go-version" "github.com/hashicorp/hcl2/hcl" "github.com/hashicorp/terraform/configs" + "github.com/hashicorp/terraform/registry" "github.com/hashicorp/terraform/registry/regsrc" ) @@ -154,15 +155,16 @@ func (l *Loader) InstallModules(rootDir string, upgrade bool, hooks InstallHooks } log.Printf("[TRACE] %s is a registry module at %s", key, addr) - // TODO: Implement - panic("registry source installation not yet implemented") + mod, v, mDiags := l.installRegistryModule(req, key, instPath, addr, hooks) + diags = append(diags, mDiags...) + return mod, v, diags default: - log.Printf("[TRACE] %s address %q will be interpreted with go-getter", key, req.SourceAddr) - - // TODO: Implement - panic("fallback source installation not yet implemented") + log.Printf("[TRACE] %s address %q will be handled by go-getter", key, req.SourceAddr) + mod, mDiags := l.installGoGetterModule(req, key, instPath, hooks) + diags = append(diags, mDiags...) + return mod, nil, diags } }, @@ -226,12 +228,267 @@ func (l *Loader) installLocalModule(req *configs.ModuleRequest, key string, hook Dir: newDir, SourceAddr: req.SourceAddr, } - log.Printf("[TRACE] Module installer: %s installed at %s", key, newDir) + log.Printf("[DEBUG] Module installer: %s installed at %s", key, newDir) hooks.Install(key, nil, newDir) return mod, diags } +func (l *Loader) installRegistryModule(req *configs.ModuleRequest, key string, instPath string, addr *regsrc.Module, hooks InstallHooks) (*configs.Module, *version.Version, hcl.Diagnostics) { + var diags hcl.Diagnostics + + hostname, err := addr.SvcHost() + if err != nil { + // If it looks like the user was trying to use punycode then we'll generate + // a specialized error for that case. We require the unicode form of + // hostname so that hostnames are always human-readable in configuration + // and punycode can't be used to hide a malicious module hostname. + if strings.HasPrefix(addr.RawHost.Raw, "xn--") { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid module registry hostname", + Detail: "The hostname portion of this source address is not an acceptable hostname. Internationalized domain names must be given in unicode form rather than ASCII (\"punycode\") form.", + Subject: &req.SourceAddrRange, + }) + } else { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid module registry hostname", + Detail: "The hostname portion of this source address is not a valid hostname.", + Subject: &req.SourceAddrRange, + }) + } + return nil, nil, diags + } + + reg := l.modules.Registry + + log.Printf("[DEBUG] %s listing available versions of %s at %s", key, addr, hostname) + resp, err := reg.Versions(addr) + if err != nil { + if registry.IsModuleNotFound(err) { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Module not found", + Detail: fmt.Sprintf("The specified module could not be found in the module registry at %s.", hostname), + Subject: &req.SourceAddrRange, + }) + } else { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Error accessing remote module registry", + Detail: fmt.Sprintf("Failed to retrieve available versions for this module from %s: %s.", hostname, err), + Subject: &req.SourceAddrRange, + }) + } + return nil, nil, diags + } + + // The response might contain information about dependencies to allow us + // to potentially optimize future requests, but we don't currently do that + // and so for now we'll just take the first item which is guaranteed to + // be the address we requested. + if len(resp.Modules) < 1 { + // Should never happen, but since this is a remote service that may + // be implemented by third-parties we will handle it gracefully. + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid response from remote module registry", + Detail: fmt.Sprintf("The registry at %s returned an invalid response when Terraform requested available versions for this module.", hostname), + Subject: &req.SourceAddrRange, + }) + return nil, nil, diags + } + + modMeta := resp.Modules[0] + + var latestMatch *version.Version + var latestVersion *version.Version + for _, mv := range modMeta.Versions { + v, err := version.NewVersion(mv.Version) + if err != nil { + // Should never happen if the registry server is compliant with + // the protocol, but we'll warn if not to assist someone who + // might be developing a module registry server. + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagWarning, + Summary: "Invalid response from remote module registry", + Detail: fmt.Sprintf("The registry at %s returned an invalid version string %q for this module, which Terraform ignored.", hostname, mv.Version), + Subject: &req.SourceAddrRange, + }) + continue + } + + // If we've found a pre-release version then we'll ignore it unless + // it was exactly requested. + if v.Prerelease() != "" && req.VersionConstraint.Required.String() != v.String() { + log.Printf("[TRACE] %s ignoring %s because it is a pre-release and was not requested exactly", key, v) + continue + } + + if latestVersion == nil || v.GreaterThan(latestVersion) { + latestVersion = v + } + + if req.VersionConstraint.Required.Check(v) { + if latestMatch == nil || v.GreaterThan(latestMatch) { + latestMatch = v + } + } + } + + if latestVersion == nil { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Module has no versions", + Detail: fmt.Sprintf("The specified module does not have any available versions."), + Subject: &req.SourceAddrRange, + }) + return nil, nil, diags + } + + if latestMatch == nil { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Unresolvable module version constraint", + Detail: fmt.Sprintf("There is no available version of %q that matches the given version constraint. The newest available version is %s.", addr, latestVersion), + Subject: &req.VersionConstraint.DeclRange, + }) + return nil, nil, diags + } + + // Report up to the caller that we're about to start downloading. + packageAddr, _ := splitAddrSubdir(req.SourceAddr) + hooks.Download(key, packageAddr, latestMatch) + + // If we manage to get down here then we've found a suitable version to + // install, so we need to ask the registry where we should download it from. + // The response to this is a go-getter-style address string. + dlAddr, err := reg.Location(addr, latestMatch.String()) + if err != nil { + log.Printf("[ERROR] %s from %s %s: %s", key, addr, latestMatch, err) + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid response from remote module registry", + Detail: fmt.Sprintf("The remote registry at %s failed to return a download URL for %s %s.", hostname, addr, latestMatch), + Subject: &req.VersionConstraint.DeclRange, + }) + return nil, nil, diags + } + + log.Printf("[TRACE] %s %s %s is available at %q", key, addr, latestMatch, dlAddr) + + modDir, err := getWithGoGetter(instPath, dlAddr) + if err != nil { + // Errors returned by go-getter have very inconsistent quality as + // end-user error messages, but for now we're accepting that because + // we have no way to recognize any specific errors to improve them + // and masking the error entirely would hide valuable diagnostic + // information from the user. + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Failed to download module", + Detail: fmt.Sprintf("Error attempting to download module source code from %q: %s", dlAddr, err), + Subject: &req.CallRange, + }) + return nil, nil, diags + } + + log.Printf("[TRACE] %s %q was downloaded to %s", key, dlAddr, modDir) + + if addr.RawSubmodule != "" { + // Append the user's requested subdirectory to any subdirectory that + // was implied by any of the nested layers we expanded within go-getter. + modDir = filepath.Join(modDir, addr.RawSubmodule) + } + + log.Printf("[TRACE] %s should now be at %s", key, modDir) + + // Finally we are ready to try actually loading the module. + mod, mDiags := l.parser.LoadConfigDir(modDir) + if mod == nil { + // nil indicates missing or unreadable directory, so we'll + // discard the returned diags and return a more specific + // error message here. For registry modules this actually + // indicates a bug in the code above, since it's not the + // user's responsibility to create the directory in this case. + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Unreadable module directory", + Detail: fmt.Sprintf("The directory %s could not be read. This is a bug in Terraform and should be reported.", modDir), + Subject: &req.CallRange, + }) + } else { + diags = append(diags, mDiags...) + } + + // Note the local location in our manifest. + l.modules.manifest[key] = moduleRecord{ + Key: key, + Version: latestMatch, + Dir: modDir, + SourceAddr: req.SourceAddr, + } + log.Printf("[DEBUG] Module installer: %s installed at %s", key, modDir) + hooks.Install(key, latestMatch, modDir) + + return mod, latestMatch, diags +} + +func (l *Loader) installGoGetterModule(req *configs.ModuleRequest, key string, instPath string, hooks InstallHooks) (*configs.Module, hcl.Diagnostics) { + var diags hcl.Diagnostics + + // Report up to the caller that we're about to start downloading. + packageAddr, _ := splitAddrSubdir(req.SourceAddr) + hooks.Download(key, packageAddr, nil) + + modDir, err := getWithGoGetter(instPath, req.SourceAddr) + if err != nil { + // Errors returned by go-getter have very inconsistent quality as + // end-user error messages, but for now we're accepting that because + // we have no way to recognize any specific errors to improve them + // and masking the error entirely would hide valuable diagnostic + // information from the user. + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Failed to download module", + Detail: fmt.Sprintf("Error attempting to download module source code from %q: %s", packageAddr, err), + Subject: &req.SourceAddrRange, + }) + return nil, diags + } + + log.Printf("[TRACE] %s %q was downloaded to %s", key, req.SourceAddr, modDir) + + mod, mDiags := l.parser.LoadConfigDir(modDir) + if mod == nil { + // nil indicates missing or unreadable directory, so we'll + // discard the returned diags and return a more specific + // error message here. For registry modules this actually + // indicates a bug in the code above, since it's not the + // user's responsibility to create the directory in this case. + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Unreadable module directory", + Detail: fmt.Sprintf("The directory %s could not be read. This is a bug in Terraform and should be reported.", modDir), + Subject: &req.CallRange, + }) + } else { + diags = append(diags, mDiags...) + } + + // Note the local location in our manifest. + l.modules.manifest[key] = moduleRecord{ + Key: key, + Dir: modDir, + SourceAddr: req.SourceAddr, + } + log.Printf("[DEBUG] Module installer: %s installed at %s", key, modDir) + hooks.Install(key, nil, modDir) + + return mod, diags +} + func (l *Loader) packageInstallPath(modulePath []string) string { return filepath.Join(l.modules.Dir, strings.Join(modulePath, ".")) } diff --git a/configs/configload/loader_install_test.go b/configs/configload/loader_install_test.go index 608b08a00..2be85a6ba 100644 --- a/configs/configload/loader_install_test.go +++ b/configs/configload/loader_install_test.go @@ -1,6 +1,7 @@ package configload import ( + "os" "path/filepath" "testing" @@ -9,11 +10,12 @@ import ( func TestLoaderInstallModules_local(t *testing.T) { fixtureDir := filepath.Clean("test-fixtures/local-modules") - loader := newTestLoader(filepath.Join(fixtureDir, ".terraform/modules")) + loader, done := tempChdirLoader(t, fixtureDir) + defer done() hooks := &testInstallHooks{} - diags := loader.InstallModules(fixtureDir, false, hooks) + diags := loader.InstallModules(".", false, hooks) assertNoDiagnostics(t, diags) wantCalls := []testInstallHookCall{ @@ -21,17 +23,210 @@ func TestLoaderInstallModules_local(t *testing.T) { Name: "Install", ModuleAddr: "child_a", PackageAddr: "", - LocalPath: "test-fixtures/local-modules/child_a", + LocalPath: "child_a", }, { Name: "Install", ModuleAddr: "child_a.child_b", PackageAddr: "", - LocalPath: "test-fixtures/local-modules/child_a/child_b", + LocalPath: "child_a/child_b", }, } - assertResultDeepEqual(t, hooks.Calls, wantCalls) + if assertResultDeepEqual(t, hooks.Calls, wantCalls) { + return + } + + // Make sure the configuration is loadable now. + // (This ensures that correct information is recorded in the manifest.) + _, loadDiags := loader.LoadConfig(".") + assertNoDiagnostics(t, loadDiags) +} + +func TestLoaderInstallModules_registry(t *testing.T) { + if os.Getenv("TF_ACC") == "" { + t.Skip("this test accesses registry.terraform.io and github.com; set TF_ACC=1 to run it") + } + + fixtureDir := filepath.Clean("test-fixtures/registry-modules") + loader, done := tempChdirLoader(t, fixtureDir) + defer done() + + hooks := &testInstallHooks{} + + diags := loader.InstallModules(".", false, hooks) + assertNoDiagnostics(t, diags) + + v := version.Must(version.NewVersion("0.0.1")) + + wantCalls := []testInstallHookCall{ + // the configuration builder visits each level of calls in lexicographical + // order by name, so the following list is kept in the same order. + + // acctest_child_a accesses //modules/child_a directly + { + Name: "Download", + ModuleAddr: "acctest_child_a", + PackageAddr: "hashicorp/module-installer-acctest/aws", // intentionally excludes the subdir because we're downloading the whole package here + Version: v, + }, + { + Name: "Install", + ModuleAddr: "acctest_child_a", + Version: v, + LocalPath: ".terraform/modules/acctest_child_a/hashicorp-terraform-aws-module-installer-acctest-853d038/modules/child_a", + }, + + // acctest_child_a.child_b + // (no download because it's a relative path inside acctest_child_a) + { + Name: "Install", + ModuleAddr: "acctest_child_a.child_b", + LocalPath: ".terraform/modules/acctest_child_a/hashicorp-terraform-aws-module-installer-acctest-853d038/modules/child_b", + }, + + // acctest_child_b accesses //modules/child_b directly + { + Name: "Download", + ModuleAddr: "acctest_child_b", + PackageAddr: "hashicorp/module-installer-acctest/aws", // intentionally excludes the subdir because we're downloading the whole package here + Version: v, + }, + { + Name: "Install", + ModuleAddr: "acctest_child_b", + Version: v, + LocalPath: ".terraform/modules/acctest_child_b/hashicorp-terraform-aws-module-installer-acctest-853d038/modules/child_b", + }, + + // acctest_root + { + Name: "Download", + ModuleAddr: "acctest_root", + PackageAddr: "hashicorp/module-installer-acctest/aws", + Version: v, + }, + { + Name: "Install", + ModuleAddr: "acctest_root", + Version: v, + LocalPath: ".terraform/modules/acctest_root/hashicorp-terraform-aws-module-installer-acctest-853d038", + }, + + // acctest_root.child_a + // (no download because it's a relative path inside acctest_root) + { + Name: "Install", + ModuleAddr: "acctest_root.child_a", + LocalPath: ".terraform/modules/acctest_root/hashicorp-terraform-aws-module-installer-acctest-853d038/modules/child_a", + }, + + // acctest_root.child_a.child_b + // (no download because it's a relative path inside acctest_root, via acctest_root.child_a) + { + Name: "Install", + ModuleAddr: "acctest_root.child_a.child_b", + LocalPath: ".terraform/modules/acctest_root/hashicorp-terraform-aws-module-installer-acctest-853d038/modules/child_b", + }, + } + + if assertResultDeepEqual(t, hooks.Calls, wantCalls) { + return + } + + // Make sure the configuration is loadable now. + // (This ensures that correct information is recorded in the manifest.) + _, loadDiags := loader.LoadConfig(".") + assertNoDiagnostics(t, loadDiags) +} + +func TestLoaderInstallModules_goGetter(t *testing.T) { + if os.Getenv("TF_ACC") == "" { + t.Skip("this test accesses github.com; set TF_ACC=1 to run it") + } + + fixtureDir := filepath.Clean("test-fixtures/go-getter-modules") + loader, done := tempChdirLoader(t, fixtureDir) + defer done() + + hooks := &testInstallHooks{} + + diags := loader.InstallModules(".", false, hooks) + assertNoDiagnostics(t, diags) + + wantCalls := []testInstallHookCall{ + // the configuration builder visits each level of calls in lexicographical + // order by name, so the following list is kept in the same order. + + // acctest_child_a accesses //modules/child_a directly + { + Name: "Download", + ModuleAddr: "acctest_child_a", + PackageAddr: "github.com/hashicorp/terraform-aws-module-installer-acctest?ref=v0.0.1", // intentionally excludes the subdir because we're downloading the whole repo here + }, + { + Name: "Install", + ModuleAddr: "acctest_child_a", + LocalPath: ".terraform/modules/acctest_child_a/modules/child_a", + }, + + // acctest_child_a.child_b + // (no download because it's a relative path inside acctest_child_a) + { + Name: "Install", + ModuleAddr: "acctest_child_a.child_b", + LocalPath: ".terraform/modules/acctest_child_a/modules/child_b", + }, + + // acctest_child_b accesses //modules/child_b directly + { + Name: "Download", + ModuleAddr: "acctest_child_b", + PackageAddr: "github.com/hashicorp/terraform-aws-module-installer-acctest?ref=v0.0.1", // intentionally excludes the subdir because we're downloading the whole package here + }, + { + Name: "Install", + ModuleAddr: "acctest_child_b", + LocalPath: ".terraform/modules/acctest_child_b/modules/child_b", + }, + + // acctest_root + { + Name: "Download", + ModuleAddr: "acctest_root", + PackageAddr: "github.com/hashicorp/terraform-aws-module-installer-acctest?ref=v0.0.1", + }, + { + Name: "Install", + ModuleAddr: "acctest_root", + LocalPath: ".terraform/modules/acctest_root", + }, + + // acctest_root.child_a + // (no download because it's a relative path inside acctest_root) + { + Name: "Install", + ModuleAddr: "acctest_root.child_a", + LocalPath: ".terraform/modules/acctest_root/modules/child_a", + }, + + // acctest_root.child_a.child_b + // (no download because it's a relative path inside acctest_root, via acctest_root.child_a) + { + Name: "Install", + ModuleAddr: "acctest_root.child_a.child_b", + LocalPath: ".terraform/modules/acctest_root/modules/child_b", + }, + } + + if assertResultDeepEqual(t, hooks.Calls, wantCalls) { + return + } + + // Make sure the configuration is loadable now. + // (This ensures that correct information is recorded in the manifest.) + _, loadDiags := loader.LoadConfig(".") + assertNoDiagnostics(t, loadDiags) } type testInstallHooks struct { diff --git a/configs/configload/loader_test.go b/configs/configload/loader_test.go index 6ab1fc8c5..239599dc1 100644 --- a/configs/configload/loader_test.go +++ b/configs/configload/loader_test.go @@ -1,43 +1,90 @@ package configload import ( - "reflect" + "fmt" + "io/ioutil" + "os" + "path/filepath" "testing" - "github.com/spf13/afero" - - "github.com/davecgh/go-spew/spew" + "github.com/go-test/deep" "github.com/hashicorp/hcl2/hcl" - "github.com/hashicorp/terraform/configs" - "github.com/hashicorp/terraform/registry" "github.com/zclconf/go-cty/cty" ) -// newTestLoader is like NewLoader but it uses a copy-on-write overlay filesystem -// over the real filesystem so that any files that are created cannot persist -// between test runs. +// tempChdir copies the contents of the given directory to a temporary +// directory and changes the test process's current working directory to +// point to that directory. Also returned is a function that should be +// called at the end of the test (e.g. via "defer") to restore the previous +// working directory. // -// It will also panic if there are any errors creating the loader, since -// these should never happen in a testing scenario. -func newTestLoader(dir string) *Loader { - realFS := afero.NewOsFs() - overlayFS := afero.NewMemMapFs() - fs := afero.NewCopyOnWriteFs(realFS, overlayFS) - parser := configs.NewParser(fs) - reg := registry.NewClient(nil, nil, nil) - ret := &Loader{ - parser: parser, - modules: moduleMgr{ - FS: afero.Afero{fs}, - Dir: dir, - Registry: reg, - }, - } - err := ret.modules.readModuleManifestSnapshot() +// Tests using this helper cannot safely be run in parallel with other tests. +func tempChdir(t *testing.T, sourceDir string) (string, func()) { + t.Helper() + + tmpDir, err := ioutil.TempDir("", "terraform-configload") if err != nil { - panic(err) + t.Fatalf("failed to create temporary directory: %s", err) + return "", nil } - return ret + + if err := copyDir(tmpDir, sourceDir); err != nil { + t.Fatalf("failed to copy fixture to temporary directory: %s", err) + return "", nil + } + + oldDir, err := os.Getwd() + if err != nil { + t.Fatalf("failed to determine current working directory: %s", err) + return "", nil + } + + err = os.Chdir(tmpDir) + if err != nil { + t.Fatalf("failed to switch to temp dir %s: %s", tmpDir, err) + return "", nil + } + + t.Logf("tempChdir switched to %s after copying from %s", tmpDir, sourceDir) + + return tmpDir, func() { + err := os.Chdir(oldDir) + if err != nil { + panic(fmt.Errorf("failed to restore previous working directory %s: %s", oldDir, err)) + } + + if os.Getenv("TF_CONFIGLOAD_TEST_KEEP_TMP") == "" { + os.RemoveAll(tmpDir) + } + } +} + +// tempChdirLoader is a wrapper around tempChdir that also returns a Loader +// whose modules directory is at the conventional location within the +// created temporary directory. +func tempChdirLoader(t *testing.T, sourceDir string) (*Loader, func()) { + t.Helper() + + _, done := tempChdir(t, sourceDir) + modulesDir := filepath.Clean(".terraform/modules") + + err := os.MkdirAll(modulesDir, os.ModePerm) + if err != nil { + done() // undo the chdir in tempChdir so we can safely run other tests + t.Fatalf("failed to create modules directory: %s", err) + return nil, nil + } + + loader, err := NewLoader(&Config{ + ModulesDir: modulesDir, + }) + if err != nil { + done() // undo the chdir in tempChdir so we can safely run other tests + t.Fatalf("failed to create loader: %s", err) + return nil, nil + } + + return loader, done } func assertNoDiagnostics(t *testing.T, diags hcl.Diagnostics) bool { @@ -75,8 +122,10 @@ func assertDiagnosticSummary(t *testing.T, diags hcl.Diagnostics, want string) b func assertResultDeepEqual(t *testing.T, got, want interface{}) bool { t.Helper() - if !reflect.DeepEqual(got, want) { - t.Errorf("wrong result\ngot: %swant: %s", spew.Sdump(got), spew.Sdump(want)) + if diff := deep.Equal(got, want); diff != nil { + for _, problem := range diff { + t.Errorf("%s", problem) + } return true } return false diff --git a/configs/configload/source_addr.go b/configs/configload/source_addr.go index 7767859c5..594cf6406 100644 --- a/configs/configload/source_addr.go +++ b/configs/configload/source_addr.go @@ -3,6 +3,8 @@ package configload import ( "strings" + "github.com/hashicorp/go-getter" + "github.com/hashicorp/terraform/registry/regsrc" ) @@ -26,3 +28,18 @@ func isRegistrySourceAddr(addr string) bool { _, err := regsrc.ParseModuleSource(addr) return err == nil } + +// splitAddrSubdir splits the given address (which is assumed to be a +// registry address or go-getter-style address) into a package portion +// and a sub-directory portion. +// +// The package portion defines what should be downloaded and then the +// sub-directory portion, if present, specifies a sub-directory within +// the downloaded object (an archive, VCS repository, etc) that contains +// the module's configuration files. +// +// The subDir portion will be returned as empty if no subdir separator +// ("//") is present in the address. +func splitAddrSubdir(addr string) (packageAddr, subDir string) { + return getter.SourceDirSubdir(addr) +} diff --git a/configs/configload/test-fixtures/go-getter-modules/.gitignore b/configs/configload/test-fixtures/go-getter-modules/.gitignore new file mode 100644 index 000000000..6e0db03a8 --- /dev/null +++ b/configs/configload/test-fixtures/go-getter-modules/.gitignore @@ -0,0 +1 @@ +.terraform/* diff --git a/configs/configload/test-fixtures/go-getter-modules/root.tf b/configs/configload/test-fixtures/go-getter-modules/root.tf new file mode 100644 index 000000000..3c92ef1db --- /dev/null +++ b/configs/configload/test-fixtures/go-getter-modules/root.tf @@ -0,0 +1,16 @@ +# This fixture depends on a github repo at: +# https://github.com/hashicorp/terraform-aws-module-installer-acctest +# ...and expects its v0.0.1 tag to be pointing at the following commit: +# d676ab2559d4e0621d59e3c3c4cbb33958ac4608 + +module "acctest_root" { + source = "github.com/hashicorp/terraform-aws-module-installer-acctest?ref=v0.0.1" +} + +module "acctest_child_a" { + source = "github.com/hashicorp/terraform-aws-module-installer-acctest//modules/child_a?ref=v0.0.1" +} + +module "acctest_child_b" { + source = "github.com/hashicorp/terraform-aws-module-installer-acctest//modules/child_b?ref=v0.0.1" +} diff --git a/configs/configload/test-fixtures/registry-modules/.gitignore b/configs/configload/test-fixtures/registry-modules/.gitignore new file mode 100644 index 000000000..6e0db03a8 --- /dev/null +++ b/configs/configload/test-fixtures/registry-modules/.gitignore @@ -0,0 +1 @@ +.terraform/* diff --git a/configs/configload/test-fixtures/registry-modules/root.tf b/configs/configload/test-fixtures/registry-modules/root.tf new file mode 100644 index 000000000..786966494 --- /dev/null +++ b/configs/configload/test-fixtures/registry-modules/root.tf @@ -0,0 +1,27 @@ +# This fixture indirectly depends on a github repo at: +# https://github.com/hashicorp/terraform-aws-module-installer-acctest +# ...and expects its v0.0.1 tag to be pointing at the following commit: +# d676ab2559d4e0621d59e3c3c4cbb33958ac4608 +# +# This repository is accessed indirectly via: +# https://registry.terraform.io/modules/hashicorp/module-installer-acctest/aws/0.0.1 +# +# Since the tag's id is included in a downloaded archive, it is expected to +# have the following id: +# 853d03855b3290a3ca491d4c3a7684572dd42237 +# (this particular assumption is encoded in the tests that use this fixture) + +module "acctest_root" { + source = "hashicorp/module-installer-acctest/aws" + version = "0.0.1" +} + +module "acctest_child_a" { + source = "hashicorp/module-installer-acctest/aws//modules/child_a" + version = "0.0.1" +} + +module "acctest_child_b" { + source = "hashicorp/module-installer-acctest/aws//modules/child_b" + version = "0.0.1" +} diff --git a/registry/client.go b/registry/client.go index c69d31b15..6525c5410 100644 --- a/registry/client.go +++ b/registry/client.go @@ -115,7 +115,7 @@ func (c *Client) Versions(module *regsrc.Module) (*response.ModuleVersions, erro case http.StatusOK: // OK case http.StatusNotFound: - return nil, fmt.Errorf("module %q not found", module.String()) + return nil, &errModuleNotFound{addr: module} default: return nil, fmt.Errorf("error looking up module versions: %s", resp.Status) } diff --git a/registry/errors.go b/registry/errors.go new file mode 100644 index 000000000..b8dcd31e3 --- /dev/null +++ b/registry/errors.go @@ -0,0 +1,23 @@ +package registry + +import ( + "fmt" + + "github.com/hashicorp/terraform/registry/regsrc" +) + +type errModuleNotFound struct { + addr *regsrc.Module +} + +func (e *errModuleNotFound) Error() string { + return fmt.Sprintf("module %s not found", e.addr) +} + +// IsModuleNotFound returns true only if the given error is a "module not found" +// error. This allows callers to recognize this particular error condition +// as distinct from operational errors such as poor network connectivity. +func IsModuleNotFound(err error) bool { + _, ok := err.(*errModuleNotFound) + return ok +} From 74afcb4a7fc7876a0f430ba3f5d6aa1232036d2e Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Wed, 14 Feb 2018 14:35:03 -0800 Subject: [PATCH 069/156] configs/configload: some loaders can't install modules Originally the hope was to use the afero filesystem abstraction for all loader operations, but since we install modules using go-getter we cannot (without a lot of refactoring) support vfs for installation. The vfs use-case is for reading configuration from plan zip files anyway, and so we have no real reason to support installation into a vfs. For now at least we will just add the possibility that a loader might not be install-capable. At the moment we have no non-install-capable loaders, but we'll add one later once we get to loading configuration from plan files. --- configs/configload/loader.go | 11 ++++++----- configs/configload/loader_install.go | 19 +++++++++++++++++++ configs/configload/module_mgr.go | 7 +++++++ 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/configs/configload/loader.go b/configs/configload/loader.go index fba244173..06ff27400 100644 --- a/configs/configload/loader.go +++ b/configs/configload/loader.go @@ -59,11 +59,12 @@ func NewLoader(config *Config) (*Loader, error) { ret := &Loader{ parser: parser, modules: moduleMgr{ - FS: afero.Afero{fs}, - Dir: config.ModulesDir, - Services: config.Services, - Creds: config.Creds, - Registry: reg, + FS: afero.Afero{Fs: fs}, + CanInstall: true, + Dir: config.ModulesDir, + Services: config.Services, + Creds: config.Creds, + Registry: reg, }, } diff --git a/configs/configload/loader_install.go b/configs/configload/loader_install.go index 41ef4224d..b3e015239 100644 --- a/configs/configload/loader_install.go +++ b/configs/configload/loader_install.go @@ -38,7 +38,16 @@ import ( // may have wholly or partially completed. Modules must be loaded in order // to find their dependencies, so this function does many of the same checks // as LoadConfig as a side-effect. +// +// This function will panic if called on a loader that cannot install modules. +// Use CanInstallModules to determine if a loader can install modules, or +// refer to the documentation for that method for situations where module +// installation capability is guaranteed. func (l *Loader) InstallModules(rootDir string, upgrade bool, hooks InstallHooks) hcl.Diagnostics { + if !l.CanInstallModules() { + panic(fmt.Errorf("InstallModules called on loader that cannot install modules")) + } + rootMod, diags := l.parser.LoadConfigDir(rootDir) if rootMod == nil { return diags @@ -183,6 +192,16 @@ func (l *Loader) InstallModules(rootDir string, upgrade bool, hooks InstallHooks return diags } +// CanInstallModules returns true if InstallModules can be used with this +// loader. +// +// Loaders created with NewLoader can always install modules. Loaders created +// from plan files (where the configuration is embedded in the plan file itself) +// cannot install modules, because the plan file is read-only. +func (l *Loader) CanInstallModules() bool { + return l.modules.CanInstall +} + func (l *Loader) installLocalModule(req *configs.ModuleRequest, key string, hooks InstallHooks) (*configs.Module, hcl.Diagnostics) { var diags hcl.Diagnostics diff --git a/configs/configload/module_mgr.go b/configs/configload/module_mgr.go index 5856c2ec0..ef17fda7a 100644 --- a/configs/configload/module_mgr.go +++ b/configs/configload/module_mgr.go @@ -10,6 +10,13 @@ import ( type moduleMgr struct { FS afero.Afero + // CanInstall is true for a module manager that can support installation. + // + // This must be set only if FS is an afero.OsFs, because the installer + // (which uses go-getter) is not aware of the virtual filesystem + // abstraction and will always write into the "real" filesystem. + CanInstall bool + // Dir is the path where descendent modules are (or will be) installed. Dir string From d859bacbddee2689c0c2e0e46ae6aedb173a21a6 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Wed, 14 Feb 2018 20:13:35 -0800 Subject: [PATCH 070/156] configs/configload: InitDirFromModule This will provide the functionality of "terraform init -from-module=...", which uses the contents of a given module to populate the working directory. This mechanism is intended for installing e.g. examples from Terraform Registry or elsewhere. It's not fully-general since it can't reasonably install a module from a subdir that refers up to a parent directory, but that isn't an issue for all reasonable uses of this option. --- configs/configload/loader_init_from_module.go | 372 ++++++++++++++++++ .../loader_init_from_module_test.go | 92 +++++ configs/configload/loader_install.go | 9 + .../configload/test-fixtures/empty/.gitignore | 0 4 files changed, 473 insertions(+) create mode 100644 configs/configload/loader_init_from_module.go create mode 100644 configs/configload/loader_init_from_module_test.go create mode 100644 configs/configload/test-fixtures/empty/.gitignore diff --git a/configs/configload/loader_init_from_module.go b/configs/configload/loader_init_from_module.go new file mode 100644 index 000000000..473024487 --- /dev/null +++ b/configs/configload/loader_init_from_module.go @@ -0,0 +1,372 @@ +package configload + +import ( + "fmt" + "log" + "os" + "path/filepath" + "sort" + "strings" + + version "github.com/hashicorp/go-version" + "github.com/hashicorp/hcl2/hcl" + "github.com/hashicorp/terraform/configs" +) + +const initFromModuleRootCallName = "root" +const initFromModuleRootKeyPrefix = initFromModuleRootCallName + "." + +// InitDirFromModule populates the given directory (which must exist and be +// empty) with the contents of the module at the given source address. +// +// It does this by installing the given module and all of its descendent +// modules in a temporary root directory and then copying the installed +// files into suitable locations. As a consequence, any diagnostics it +// generates will reveal the location of this temporary directory to the +// user. +// +// This rather roundabout installation approach is taken to ensure that +// installation proceeds in a manner identical to normal module installation. +// +// If the given source address specifies a sub-directory of the given +// package then only the sub-directory and its descendents will be copied +// into the given root directory, which will cause any relative module +// references using ../ from that module to be unresolvable. Error diagnostics +// are produced in that case, to prompt the user to rewrite the source strings +// to be absolute references to the original remote module. +// +// This can be installed only on a loder that can install modules, and will +// panic otherwise. Use CanInstallModules to determine if this method can be +// used, or refer to the documentation of that method for situations where +// install ability is guaranteed. +func (l *Loader) InitDirFromModule(rootDir, sourceAddr string, hooks InstallHooks) hcl.Diagnostics { + var diags hcl.Diagnostics + + // The way this function works is pretty ugly, but we accept it because + // -from-module is a less important case than normal module installation + // and so it's better to keep this ugly complexity out here rather than + // adding even more complexity to the normal module installer. + + // The target directory must exist but be empty. + { + entries, err := l.modules.FS.ReadDir(rootDir) + if err != nil { + if os.IsNotExist(err) { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Target directory does not exist", + Detail: fmt.Sprintf("Cannot initialize non-existent directory %s.", rootDir), + }) + } else { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Failed to read target directory", + Detail: fmt.Sprintf("Error reading %s to ensure it is empty: %s.", rootDir, err), + }) + } + return diags + } + haveEntries := false + for _, entry := range entries { + if entry.Name() == "." || entry.Name() == ".." || entry.Name() == ".terraform" { + continue + } + haveEntries = true + } + if haveEntries { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Can't populate non-empty directory", + Detail: fmt.Sprintf("The target directory %s is not empty, so it cannot be initialized with the -from-module=... option.", rootDir), + }) + return diags + } + } + + // We use a hidden sub-loader to manage our inner installation directory, + // but it shares dependencies with the receiver to allow it to access the + // same remote resources and ensure it populates the same source code + // cache in case . + subLoader := &Loader{ + parser: l.parser, + modules: l.modules, // this is a shallow copy, so we can safely mutate below + } + + // Our sub-loader will have its own independent manifest and install + // directory, so we can install with it and know we won't interfere + // with the receiver. + subLoader.modules.manifest = make(moduleManifest) + subLoader.modules.Dir = filepath.Join(rootDir, ".terraform/init-from-module") + + log.Printf("[DEBUG] using a child module loader in %s to initialize working directory from %q", subLoader.modules.Dir, sourceAddr) + + subLoader.modules.FS.RemoveAll(subLoader.modules.Dir) // if this fails then we'll fail on MkdirAll below too + + err := subLoader.modules.FS.MkdirAll(subLoader.modules.Dir, os.ModePerm) + if err != nil { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Failed to create temporary directory", + Detail: fmt.Sprintf("Failed to create temporary directory %s: %s.", subLoader.modules.Dir, err), + }) + return diags + } + + fakeFilename := fmt.Sprintf("-from-module=%q", sourceAddr) + fakeRange := hcl.Range{ + Filename: fakeFilename, + Start: hcl.Pos{ + Line: 1, + Column: 1, + Byte: 0, + }, + End: hcl.Pos{ + Line: 1, + Column: len(fakeFilename) + 1, // not accurate if the address contains unicode, but irrelevant since we have no source cache for this anyway + Byte: len(fakeFilename), + }, + } + + // Now we need to create an artificial root module that will seed our + // installation process. + fakeRootModule := &configs.Module{ + ModuleCalls: map[string]*configs.ModuleCall{ + initFromModuleRootCallName: &configs.ModuleCall{ + Name: initFromModuleRootCallName, + + SourceAddr: sourceAddr, + SourceAddrRange: fakeRange, + SourceSet: true, + + DeclRange: fakeRange, + }, + }, + } + + // wrapHooks filters hook notifications to only include Download calls + // and to trim off the initFromModuleRootCallName prefix. We'll produce + // our own Install notifications directly below. + wrapHooks := installHooksInitDir{ + Wrapped: hooks, + } + instDiags := subLoader.installDescendentModules(fakeRootModule, rootDir, true, wrapHooks) + diags = append(diags, instDiags...) + if instDiags.HasErrors() { + return diags + } + + // If all of that succeeded then we'll now migrate what was installed + // into the final directory structure. + modulesDir := l.modules.Dir + err = subLoader.modules.FS.MkdirAll(modulesDir, os.ModePerm) + if err != nil { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Failed to create local modules directory", + Detail: fmt.Sprintf("Failed to create modules directory %s: %s.", modulesDir, err), + }) + return diags + } + + manifest := subLoader.modules.manifest + recordKeys := make([]string, 0, len(manifest)) + for k := range manifest { + recordKeys = append(recordKeys, k) + } + sort.Strings(recordKeys) + + for _, recordKey := range recordKeys { + record := manifest[recordKey] + + if record.Key == initFromModuleRootCallName { + // We've found the module the user requested, which we must + // now copy into rootDir so it can be used directly. + log.Printf("[TRACE] copying new root module from %s to %s", record.Dir, rootDir) + err := copyDir(rootDir, record.Dir) + if err != nil { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Failed to copy root module", + Detail: fmt.Sprintf("Error copying root module %q from %s to %s: %s.", sourceAddr, record.Dir, rootDir, err), + }) + continue + } + + // We'll try to load the newly-copied module here just so we can + // sniff for any module calls that ../ out of the root directory + // and must thus be rewritten to be absolute addresses again. + // For now we can't do this rewriting automatically, but we'll + // generate an error to help the user do it manually. + mod, _ := l.parser.LoadConfigDir(rootDir) // ignore diagnostics since we're just doing value-add here anyway + for _, mc := range mod.ModuleCalls { + if pathTraversesUp(sourceAddr) { + packageAddr, givenSubdir := splitAddrSubdir(sourceAddr) + newSubdir := filepath.Join(givenSubdir, mc.SourceAddr) + if pathTraversesUp(newSubdir) { + // This should never happen in any reasonable + // configuration since this suggests a path that + // traverses up out of the package root. We'll just + // ignore this, since we'll fail soon enough anyway + // trying to resolve this path when this module is + // loaded. + continue + } + + var newAddr = packageAddr + if newSubdir != "" { + newAddr = fmt.Sprintf("%s//%s", newAddr, filepath.ToSlash(newSubdir)) + } + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Root module references parent directory", + Detail: fmt.Sprintf("The requested module %q refers to a module via its parent directory. To use this as a new root module this source string must be rewritten as a remote source address, such as %q.", sourceAddr, newAddr), + Subject: &mc.SourceAddrRange, + }) + continue + } + } + + l.modules.manifest[""] = moduleRecord{ + Key: "", + Dir: rootDir, + } + continue + } + + if !strings.HasPrefix(record.Key, initFromModuleRootKeyPrefix) { + // Ignore the *real* root module, whose key is empty, since + // we're only interested in the module named "root" and its + // descendents. + continue + } + + newKey := record.Key[len(initFromModuleRootKeyPrefix):] + instPath := filepath.Join(l.modules.Dir, newKey) + tempPath := filepath.Join(subLoader.modules.Dir, record.Key) + + // tempPath won't be present for a module that was installed from + // a relative path, so in that case we just record the installation + // directory and assume it was already copied into place as part + // of its parent. + if _, err := os.Stat(tempPath); err != nil { + if !os.IsNotExist(err) { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Failed to stat temporary module install directory", + Detail: fmt.Sprintf("Error from stat %s for module %s: %s.", instPath, newKey, err), + }) + continue + } + + var parentKey string + if lastDot := strings.LastIndexByte(newKey, '.'); lastDot != -1 { + parentKey = newKey[:lastDot] + } else { + parentKey = "" // parent is the root module + } + + parentOld := manifest[initFromModuleRootKeyPrefix+parentKey] + parentNew := l.modules.manifest[parentKey] + + // We need to figure out which portion of our directory is the + // parent package path and which portion is the subdirectory + // under that. + baseDirRel, err := filepath.Rel(parentOld.Dir, record.Dir) + if err != nil { + // Should never happen, because we constructed both directories + // from the same base and so they must have a common prefix. + panic(err) + } + + newDir := filepath.Join(parentNew.Dir, baseDirRel) + log.Printf("[TRACE] relative reference for %s rewritten from %s to %s", newKey, record.Dir, newDir) + newRecord := record // shallow copy + newRecord.Dir = newDir + newRecord.Key = newKey + l.modules.manifest[newKey] = newRecord + hooks.Install(newRecord.Key, newRecord.Version, newRecord.Dir) + continue + } + + err = subLoader.modules.FS.MkdirAll(instPath, os.ModePerm) + if err != nil { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Failed to create module install directory", + Detail: fmt.Sprintf("Error creating directory %s for module %s: %s.", instPath, newKey, err), + }) + continue + } + + // We copy rather than "rename" here because renaming between directories + // can be tricky in edge-cases like network filesystems, etc. + log.Printf("[TRACE] copying new module %s from %s to %s", newKey, record.Dir, instPath) + err := copyDir(instPath, tempPath) + if err != nil { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Failed to copy descendent module", + Detail: fmt.Sprintf("Error copying module %q from %s to %s: %s.", newKey, tempPath, rootDir, err), + }) + continue + } + + subDir, err := filepath.Rel(tempPath, record.Dir) + if err != nil { + // Should never happen, because we constructed both directories + // from the same base and so they must have a common prefix. + panic(err) + } + + newRecord := record // shallow copy + newRecord.Dir = filepath.Join(instPath, subDir) + newRecord.Key = newKey + l.modules.manifest[newKey] = newRecord + hooks.Install(newRecord.Key, newRecord.Version, newRecord.Dir) + } + + err = l.modules.writeModuleManifestSnapshot() + if err != nil { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Failed to write module manifest", + Detail: fmt.Sprintf("Error writing module manifest: %s.", err), + }) + } + + if !diags.HasErrors() { + // Try to clean up our temporary directory, but don't worry if we don't + // succeed since it shouldn't hurt anything. + subLoader.modules.FS.RemoveAll(subLoader.modules.Dir) + } + + return diags +} + +func pathTraversesUp(path string) bool { + return strings.HasPrefix(filepath.ToSlash(path), "../") +} + +// installHooksInitDir is an adapter wrapper for an InstallHooks that +// does some fakery to make downloads look like they are happening in their +// final locations, rather than in the temporary loader we use. +// +// It also suppresses "Install" calls entirely, since InitDirFromModule +// does its own installation steps after the initial installation pass +// has completed. +type installHooksInitDir struct { + Wrapped InstallHooks + InstallHooksImpl +} + +func (h installHooksInitDir) Download(moduleAddr, packageAddr string, version *version.Version) { + if !strings.HasPrefix(moduleAddr, initFromModuleRootKeyPrefix) { + // We won't announce the root module, since hook implementations + // don't expect to see that and the caller will usually have produced + // its own user-facing notification about what it's doing anyway. + return + } + + trimAddr := moduleAddr[len(initFromModuleRootKeyPrefix):] + h.Wrapped.Download(trimAddr, packageAddr, version) +} diff --git a/configs/configload/loader_init_from_module_test.go b/configs/configload/loader_init_from_module_test.go new file mode 100644 index 000000000..f08540297 --- /dev/null +++ b/configs/configload/loader_init_from_module_test.go @@ -0,0 +1,92 @@ +package configload + +import ( + "os" + "path/filepath" + "strings" + "testing" + + version "github.com/hashicorp/go-version" + "github.com/hashicorp/terraform/configs" +) + +func TestLoaderInitDirFromModule_registry(t *testing.T) { + if os.Getenv("TF_ACC") == "" { + t.Skip("this test accesses registry.terraform.io and github.com; set TF_ACC=1 to run it") + } + + fixtureDir := filepath.Clean("test-fixtures/empty") + loader, done := tempChdirLoader(t, fixtureDir) + defer done() + + hooks := &testInstallHooks{} + + diags := loader.InitDirFromModule(".", "hashicorp/module-installer-acctest/aws//examples/main", hooks) + assertNoDiagnostics(t, diags) + + v := version.Must(version.NewVersion("0.0.1")) + + wantCalls := []testInstallHookCall{ + // The module specified to populate the root directory is not mentioned + // here, because the hook mechanism is defined to talk about descendent + // modules only and so a caller to InitDirFromModule is expected to + // produce its own user-facing announcement about the root module being + // installed. + + // Note that "root" in the following examples is, confusingly, the + // label on the module block in the example we've installed here: + // module "root" { + + { + Name: "Download", + ModuleAddr: "root", + PackageAddr: "hashicorp/module-installer-acctest/aws", + Version: v, + }, + { + Name: "Install", + ModuleAddr: "root", + Version: v, + LocalPath: ".terraform/modules/root/hashicorp-terraform-aws-module-installer-acctest-5e87aff", + }, + { + Name: "Install", + ModuleAddr: "root.child_a", + LocalPath: ".terraform/modules/root/hashicorp-terraform-aws-module-installer-acctest-5e87aff/modules/child_a", + }, + { + Name: "Install", + ModuleAddr: "root.child_a.child_b", + LocalPath: ".terraform/modules/root/hashicorp-terraform-aws-module-installer-acctest-5e87aff/modules/child_b", + }, + } + + if assertResultDeepEqual(t, hooks.Calls, wantCalls) { + return + } + + // Make sure the configuration is loadable now. + // (This ensures that correct information is recorded in the manifest.) + config, loadDiags := loader.LoadConfig(".") + if assertNoDiagnostics(t, loadDiags) { + return + } + + wantTraces := map[string]string{ + "": "in example", + "root": "in root module", + "root.child_a": "in child_a module", + "root.child_a.child_b": "in child_b module", + } + gotTraces := map[string]string{} + config.DeepEach(func(c *configs.Config) { + path := strings.Join(c.Path, ".") + if c.Module.Variables["v"] == nil { + gotTraces[path] = "" + return + } + varDesc := c.Module.Variables["v"].Description + gotTraces[path] = varDesc + }) + assertResultDeepEqual(t, gotTraces, wantTraces) +} diff --git a/configs/configload/loader_install.go b/configs/configload/loader_install.go index b3e015239..b9f6be8dd 100644 --- a/configs/configload/loader_install.go +++ b/configs/configload/loader_install.go @@ -53,6 +53,15 @@ func (l *Loader) InstallModules(rootDir string, upgrade bool, hooks InstallHooks return diags } + instDiags := l.installDescendentModules(rootMod, rootDir, upgrade, hooks) + diags = append(diags, instDiags...) + + return diags +} + +func (l *Loader) installDescendentModules(rootMod *configs.Module, rootDir string, upgrade bool, hooks InstallHooks) hcl.Diagnostics { + var diags hcl.Diagnostics + if hooks == nil { // Use our no-op implementation as a placeholder hooks = InstallHooksImpl{} diff --git a/configs/configload/test-fixtures/empty/.gitignore b/configs/configload/test-fixtures/empty/.gitignore new file mode 100644 index 000000000..e69de29bb From ea868026b85ddeae36b4254c2d1cbcba42fe77a0 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Thu, 15 Feb 2018 09:23:07 -0800 Subject: [PATCH 071/156] configs/configload: installer tests inspect their result Previously we were just loading the module and asserting no diagnostics, but that is not really good enough since if we install modules incorrectly it's possible that we are still able to load an empty configuration successfully. Now we'll do some basic inspecetion of the module tree that results from loading what we installed, to ensure that all of the expected modules are present at the right locations in the tree. --- configs/configload/loader_install_test.go | 69 ++++++++++++++++++- .../test-fixtures/go-getter-modules/root.tf | 5 ++ .../local-modules/child_a/child_a.tf | 5 ++ .../local-modules/child_a/child_b/child_b.tf | 5 ++ .../test-fixtures/local-modules/root.tf | 5 ++ .../test-fixtures/registry-modules/root.tf | 6 ++ 6 files changed, 92 insertions(+), 3 deletions(-) diff --git a/configs/configload/loader_install_test.go b/configs/configload/loader_install_test.go index 2be85a6ba..e0e6bdf98 100644 --- a/configs/configload/loader_install_test.go +++ b/configs/configload/loader_install_test.go @@ -3,9 +3,11 @@ package configload import ( "os" "path/filepath" + "strings" "testing" version "github.com/hashicorp/go-version" + "github.com/hashicorp/terraform/configs" ) func TestLoaderInstallModules_local(t *testing.T) { @@ -39,8 +41,25 @@ func TestLoaderInstallModules_local(t *testing.T) { // Make sure the configuration is loadable now. // (This ensures that correct information is recorded in the manifest.) - _, loadDiags := loader.LoadConfig(".") + config, loadDiags := loader.LoadConfig(".") assertNoDiagnostics(t, loadDiags) + + wantTraces := map[string]string{ + "": "in root module", + "child_a": "in child_a module", + "child_a.child_b": "in child_b module", + } + gotTraces := map[string]string{} + config.DeepEach(func(c *configs.Config) { + path := strings.Join(c.Path, ".") + if c.Module.Variables["v"] == nil { + gotTraces[path] = "" + return + } + varDesc := c.Module.Variables["v"].Description + gotTraces[path] = varDesc + }) + assertResultDeepEqual(t, gotTraces, wantTraces) } func TestLoaderInstallModules_registry(t *testing.T) { @@ -136,8 +155,30 @@ func TestLoaderInstallModules_registry(t *testing.T) { // Make sure the configuration is loadable now. // (This ensures that correct information is recorded in the manifest.) - _, loadDiags := loader.LoadConfig(".") + config, loadDiags := loader.LoadConfig(".") assertNoDiagnostics(t, loadDiags) + + wantTraces := map[string]string{ + "": "in local caller for registry-modules", + "acctest_root": "in root module", + "acctest_root.child_a": "in child_a module", + "acctest_root.child_a.child_b": "in child_b module", + "acctest_child_a": "in child_a module", + "acctest_child_a.child_b": "in child_b module", + "acctest_child_b": "in child_b module", + } + gotTraces := map[string]string{} + config.DeepEach(func(c *configs.Config) { + path := strings.Join(c.Path, ".") + if c.Module.Variables["v"] == nil { + gotTraces[path] = "" + return + } + varDesc := c.Module.Variables["v"].Description + gotTraces[path] = varDesc + }) + assertResultDeepEqual(t, gotTraces, wantTraces) + } func TestLoaderInstallModules_goGetter(t *testing.T) { @@ -225,8 +266,30 @@ func TestLoaderInstallModules_goGetter(t *testing.T) { // Make sure the configuration is loadable now. // (This ensures that correct information is recorded in the manifest.) - _, loadDiags := loader.LoadConfig(".") + config, loadDiags := loader.LoadConfig(".") assertNoDiagnostics(t, loadDiags) + + wantTraces := map[string]string{ + "": "in local caller for go-getter-modules", + "acctest_root": "in root module", + "acctest_root.child_a": "in child_a module", + "acctest_root.child_a.child_b": "in child_b module", + "acctest_child_a": "in child_a module", + "acctest_child_a.child_b": "in child_b module", + "acctest_child_b": "in child_b module", + } + gotTraces := map[string]string{} + config.DeepEach(func(c *configs.Config) { + path := strings.Join(c.Path, ".") + if c.Module.Variables["v"] == nil { + gotTraces[path] = "" + return + } + varDesc := c.Module.Variables["v"].Description + gotTraces[path] = varDesc + }) + assertResultDeepEqual(t, gotTraces, wantTraces) + } type testInstallHooks struct { diff --git a/configs/configload/test-fixtures/go-getter-modules/root.tf b/configs/configload/test-fixtures/go-getter-modules/root.tf index 3c92ef1db..9b174a7a5 100644 --- a/configs/configload/test-fixtures/go-getter-modules/root.tf +++ b/configs/configload/test-fixtures/go-getter-modules/root.tf @@ -3,6 +3,11 @@ # ...and expects its v0.0.1 tag to be pointing at the following commit: # d676ab2559d4e0621d59e3c3c4cbb33958ac4608 +variable "v" { + description = "in local caller for go-getter-modules" + default = "" +} + module "acctest_root" { source = "github.com/hashicorp/terraform-aws-module-installer-acctest?ref=v0.0.1" } diff --git a/configs/configload/test-fixtures/local-modules/child_a/child_a.tf b/configs/configload/test-fixtures/local-modules/child_a/child_a.tf index eb2c0044f..68ebb8e40 100644 --- a/configs/configload/test-fixtures/local-modules/child_a/child_a.tf +++ b/configs/configload/test-fixtures/local-modules/child_a/child_a.tf @@ -1,4 +1,9 @@ +variable "v" { + description = "in child_a module" + default = "" +} + module "child_b" { source = "./child_b" } diff --git a/configs/configload/test-fixtures/local-modules/child_a/child_b/child_b.tf b/configs/configload/test-fixtures/local-modules/child_a/child_b/child_b.tf index 4900e9796..e2e220916 100644 --- a/configs/configload/test-fixtures/local-modules/child_a/child_b/child_b.tf +++ b/configs/configload/test-fixtures/local-modules/child_a/child_b/child_b.tf @@ -1,4 +1,9 @@ +variable "v" { + description = "in child_b module" + default = "" +} + output "hello" { value = "Hello from child_b!" } diff --git a/configs/configload/test-fixtures/local-modules/root.tf b/configs/configload/test-fixtures/local-modules/root.tf index 1a6721b5d..3b4c6416d 100644 --- a/configs/configload/test-fixtures/local-modules/root.tf +++ b/configs/configload/test-fixtures/local-modules/root.tf @@ -1,4 +1,9 @@ +variable "v" { + description = "in root module" + default = "" +} + module "child_a" { source = "./child_a" } diff --git a/configs/configload/test-fixtures/registry-modules/root.tf b/configs/configload/test-fixtures/registry-modules/root.tf index 786966494..4b5ad1f1e 100644 --- a/configs/configload/test-fixtures/registry-modules/root.tf +++ b/configs/configload/test-fixtures/registry-modules/root.tf @@ -11,6 +11,12 @@ # 853d03855b3290a3ca491d4c3a7684572dd42237 # (this particular assumption is encoded in the tests that use this fixture) + +variable "v" { + description = "in local caller for registry-modules" + default = "" +} + module "acctest_root" { source = "hashicorp/module-installer-acctest/aws" version = "0.0.1" From 36fb5b52e79c66f6476c0e1ee93da9dea438f47a Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Thu, 15 Feb 2018 10:17:36 -0800 Subject: [PATCH 072/156] configs: quoted keywords/references are warnings, not errors In our new loader we are changing certain values in configuration to be naked keywords or references rather than quoted strings as before. Since many of these have been shown in books, tutorials, and our own documentation we will make the old forms generate deprecation warnings rather than errors so that newcomers starting from older documentation can be eased into the new syntax, rather than getting blocked. This will also avoid creating a hard compatibility wall for reusable modules that are already published, allowing them to still be used in spite of these warnings and then fixed when the maintainer is able. --- configs/compat_shim.go | 81 +++++++++++++++++++ configs/depends_on.go | 18 +---- configs/named_values.go | 30 +++---- configs/parser_config_dir_test.go | 4 +- configs/parser_config_test.go | 59 ++++++++++---- configs/provisioner.go | 52 +++++------- configs/resource.go | 13 ++- .../valid-files/resources-dependson-quoted.tf | 8 ++ .../resources-ignorechanges-quoted.tf | 7 ++ .../resources-provisioner-onfailure-quoted.tf | 6 ++ .../resources-provisioner-when-quoted.tf | 6 ++ .../variable-type-quoted.tf | 0 12 files changed, 195 insertions(+), 89 deletions(-) create mode 100644 configs/compat_shim.go create mode 100644 configs/test-fixtures/valid-files/resources-dependson-quoted.tf create mode 100644 configs/test-fixtures/valid-files/resources-ignorechanges-quoted.tf create mode 100644 configs/test-fixtures/valid-files/resources-provisioner-onfailure-quoted.tf create mode 100644 configs/test-fixtures/valid-files/resources-provisioner-when-quoted.tf rename configs/test-fixtures/{invalid-files => valid-files}/variable-type-quoted.tf (100%) diff --git a/configs/compat_shim.go b/configs/compat_shim.go new file mode 100644 index 000000000..69d8b0d0f --- /dev/null +++ b/configs/compat_shim.go @@ -0,0 +1,81 @@ +package configs + +import ( + "github.com/hashicorp/hcl2/hcl" + "github.com/hashicorp/hcl2/hcl/hclsyntax" +) + +// ------------------------------------------------------------------------- +// Functions in this file are compatibility shims intended to ease conversion +// from the old configuration loader. Any use of these functions that makes +// a change should generate a deprecation warning explaining to the user how +// to update their code for new patterns. +// +// Shims are particularly important for any patterns that have been widely +// documented in books, tutorials, etc. Users will still be starting from +// these examples and we want to help them adopt the latest patterns rather +// than leave them stranded. +// ------------------------------------------------------------------------- + +// shimTraversalInString takes any arbitrary expression and checks if it is +// a quoted string in the native syntax. If it _is_, then it is parsed as a +// traversal and re-wrapped into a synthetic traversal expression and a +// warning is generated. Otherwise, the given expression is just returned +// verbatim. +// +// This function has no effect on expressions from the JSON syntax, since +// traversals in strings are the required pattern in that syntax. +// +// If wantKeyword is set, the generated warning diagnostic will talk about +// keywords rather than references. The behavior is otherwise unchanged, and +// the caller remains responsible for checking that the result is indeed +// a keyword, e.g. using hcl.ExprAsKeyword. +func shimTraversalInString(expr hcl.Expression, wantKeyword bool) (hcl.Expression, hcl.Diagnostics) { + if !exprIsNativeQuotedString(expr) { + return expr, nil + } + + strVal, diags := expr.Value(nil) + if diags.HasErrors() || strVal.IsNull() || !strVal.IsKnown() { + // Since we're not even able to attempt a shim here, we'll discard + // the diagnostics we saw so far and let the caller's own error + // handling take care of reporting the invalid expression. + return expr, nil + } + + // The position handling here isn't _quite_ right because it won't + // take into account any escape sequences in the literal string, but + // it should be close enough for any error reporting to make sense. + srcRange := expr.Range() + startPos := srcRange.Start // copy + startPos.Column++ // skip initial quote + startPos.Byte++ // skip initial quote + + traversal, tDiags := hclsyntax.ParseTraversalAbs( + []byte(strVal.AsString()), + srcRange.Filename, + startPos, + ) + diags = append(diags, tDiags...) + + if wantKeyword { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagWarning, + Summary: "Quoted keywords are deprecated", + Detail: "In this context, keywords are expected literally rather than in quotes. Previous versions of Terraform required quotes, but that usage is now deprecated. Remove the quotes surrounding this keyword to silence this warning.", + Subject: &srcRange, + }) + } else { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagWarning, + Summary: "Quoted references are deprecated", + Detail: "In this context, references are expected literally rather than in quotes. Previous versions of Terraform required quotes, but that usage is now deprecated. Remove the quotes surrounding this reference to silence this warning.", + Subject: &srcRange, + }) + } + + return &hclsyntax.ScopeTraversalExpr{ + Traversal: traversal, + SrcRange: srcRange, + }, diags +} diff --git a/configs/depends_on.go b/configs/depends_on.go index f20c58167..b1984768f 100644 --- a/configs/depends_on.go +++ b/configs/depends_on.go @@ -1,8 +1,6 @@ package configs import ( - "fmt" - "github.com/hashicorp/hcl2/hcl" ) @@ -11,20 +9,8 @@ func decodeDependsOn(attr *hcl.Attribute) ([]hcl.Traversal, hcl.Diagnostics) { exprs, diags := hcl.ExprList(attr.Expr) for _, expr := range exprs { - // A dependency reference was given as a string literal in the legacy - // configuration language and there are lots of examples out there - // showing that usage, so we'll sniff for that situation here and - // produce a specialized error message for it to help users find - // the new correct form. - if exprIsNativeQuotedString(expr) { - diags = append(diags, &hcl.Diagnostic{ - Severity: hcl.DiagError, - Summary: "Invalid explicit dependency reference", - Detail: fmt.Sprintf("%s elements must not be given in quotes.", attr.Name), - Subject: attr.Expr.Range().Ptr(), - }) - continue - } + expr, shimDiags := shimTraversalInString(expr, false) + diags = append(diags, shimDiags...) traversal, travDiags := hcl.AbsTraversalForExpr(expr) diags = append(diags, travDiags...) diff --git a/configs/named_values.go b/configs/named_values.go index 42ae4750d..d1d93a57d 100644 --- a/configs/named_values.go +++ b/configs/named_values.go @@ -68,7 +68,10 @@ func decodeVariableBlock(block *hcl.Block) (*Variable, hcl.Diagnostics) { } if attr, exists := content.Attributes["type"]; exists { - switch hcl.ExprAsKeyword(attr.Expr) { + expr, shimDiags := shimTraversalInString(attr.Expr, true) + diags = append(diags, shimDiags...) + + switch hcl.ExprAsKeyword(expr) { case "string": v.TypeHint = TypeHintString case "list": @@ -76,25 +79,12 @@ func decodeVariableBlock(block *hcl.Block) (*Variable, hcl.Diagnostics) { case "map": v.TypeHint = TypeHintMap default: - // In our legacy configuration format these keywords would've been - // provided as quoted strings, so we'll generate a special error - // message for that to help those who find outdated examples and - // would otherwise be confused. - if exprIsNativeQuotedString(attr.Expr) { - diags = append(diags, &hcl.Diagnostic{ - Severity: hcl.DiagError, - Summary: "Invalid variable type hint", - Detail: "The type hint keyword must not be given in quotes.", - Subject: attr.Expr.Range().Ptr(), - }) - } else { - diags = append(diags, &hcl.Diagnostic{ - Severity: hcl.DiagError, - Summary: "Invalid variable type hint", - Detail: "The type argument requires one of the following keywords: string, list, or map.", - Subject: attr.Expr.Range().Ptr(), - }) - } + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid variable type hint", + Detail: "The type argument requires one of the following keywords: string, list, or map.", + Subject: expr.Range().Ptr(), + }) } } diff --git a/configs/parser_config_dir_test.go b/configs/parser_config_dir_test.go index 703fc122d..b35f30127 100644 --- a/configs/parser_config_dir_test.go +++ b/configs/parser_config_dir_test.go @@ -60,8 +60,8 @@ func TestParserLoadConfigDirSuccess(t *testing.T) { }) _, diags := parser.LoadConfigDir("mod") - if len(diags) != 0 { - t.Errorf("unexpected diagnostics") + if diags.HasErrors() { + t.Errorf("unexpected error diagnostics") for _, diag := range diags { t.Logf("- %s", diag) } diff --git a/configs/parser_config_test.go b/configs/parser_config_test.go index 2f118933c..ae7c8856d 100644 --- a/configs/parser_config_test.go +++ b/configs/parser_config_test.go @@ -34,8 +34,8 @@ func TestParserLoadConfigFileSuccess(t *testing.T) { }) _, diags := parser.LoadConfigFile(name) - if len(diags) != 0 { - t.Errorf("unexpected diagnostics") + if diags.HasErrors() { + t.Errorf("unexpected error diagnostics") for _, diag := range diags { t.Logf("- %s", diag) } @@ -85,38 +85,65 @@ func TestParserLoadConfigFileFailure(t *testing.T) { // file produces the expected diagnostic summary. func TestParserLoadConfigFileFailureMessages(t *testing.T) { tests := []struct { - Filename string - WantError string + Filename string + WantSeverity hcl.DiagnosticSeverity + WantDiag string }{ { - "data-resource-lifecycle.tf", + "invalid-files/data-resource-lifecycle.tf", + hcl.DiagError, "Unsupported lifecycle block", }, { - "variable-type-unknown.tf", + "invalid-files/variable-type-unknown.tf", + hcl.DiagError, "Invalid variable type hint", }, { - "variable-type-quoted.tf", - "Invalid variable type hint", + "valid-files/variable-type-quoted.tf", + hcl.DiagWarning, + "Quoted keywords are deprecated", }, { - "unexpected-attr.tf", + "invalid-files/unexpected-attr.tf", + hcl.DiagError, "Unsupported attribute", }, { - "unexpected-block.tf", + "invalid-files/unexpected-block.tf", + hcl.DiagError, "Unsupported block type", }, { - "resource-lifecycle-badbool.tf", + "invalid-files/resource-lifecycle-badbool.tf", + hcl.DiagError, "Unsuitable value type", }, + { + "valid-files/resources-dependson-quoted.tf", + hcl.DiagWarning, + "Quoted references are deprecated", + }, + { + "valid-files/resources-ignorechanges-quoted.tf", + hcl.DiagWarning, + "Quoted references are deprecated", + }, + { + "valid-files/resources-provisioner-when-quoted.tf", + hcl.DiagWarning, + "Quoted keywords are deprecated", + }, + { + "valid-files/resources-provisioner-onfailure-quoted.tf", + hcl.DiagWarning, + "Quoted keywords are deprecated", + }, } for _, test := range tests { t.Run(test.Filename, func(t *testing.T) { - src, err := ioutil.ReadFile(filepath.Join("test-fixtures/invalid-files", test.Filename)) + src, err := ioutil.ReadFile(filepath.Join("test-fixtures", test.Filename)) if err != nil { t.Fatal(err) } @@ -133,11 +160,11 @@ func TestParserLoadConfigFileFailureMessages(t *testing.T) { } return } - if diags[0].Severity != hcl.DiagError { - t.Errorf("Wrong diagnostic severity %s; want %s", diags[0].Severity, hcl.DiagError) + if diags[0].Severity != test.WantSeverity { + t.Errorf("Wrong diagnostic severity %#v; want %#v", diags[0].Severity, test.WantSeverity) } - if diags[0].Summary != test.WantError { - t.Errorf("Wrong diagnostic summary\ngot: %s\nwant: %s", diags[0].Summary, test.WantError) + if diags[0].Summary != test.WantDiag { + t.Errorf("Wrong diagnostic summary\ngot: %s\nwant: %s", diags[0].Summary, test.WantDiag) } }) } diff --git a/configs/provisioner.go b/configs/provisioner.go index 03c14e16c..843f4c0f9 100644 --- a/configs/provisioner.go +++ b/configs/provisioner.go @@ -33,52 +33,40 @@ func decodeProvisionerBlock(block *hcl.Block) (*Provisioner, hcl.Diagnostics) { pv.Config = config if attr, exists := content.Attributes["when"]; exists { - switch hcl.ExprAsKeyword(attr.Expr) { + expr, shimDiags := shimTraversalInString(attr.Expr, true) + diags = append(diags, shimDiags...) + + switch hcl.ExprAsKeyword(expr) { case "create": pv.When = ProvisionerWhenCreate case "destroy": pv.When = ProvisionerWhenDestroy default: - if exprIsNativeQuotedString(attr.Expr) { - diags = append(diags, &hcl.Diagnostic{ - Severity: hcl.DiagError, - Summary: "Invalid \"when\" keyword", - Detail: "The \"when\" argument keyword must not be given in quotes.", - Subject: attr.Expr.Range().Ptr(), - }) - } else { - diags = append(diags, &hcl.Diagnostic{ - Severity: hcl.DiagError, - Summary: "Invalid \"when\" keyword", - Detail: "The \"when\" argument requires one of the following keywords: create or destroy.", - Subject: attr.Expr.Range().Ptr(), - }) - } + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid \"when\" keyword", + Detail: "The \"when\" argument requires one of the following keywords: create or destroy.", + Subject: expr.Range().Ptr(), + }) } } if attr, exists := content.Attributes["on_failure"]; exists { - switch hcl.ExprAsKeyword(attr.Expr) { + expr, shimDiags := shimTraversalInString(attr.Expr, true) + diags = append(diags, shimDiags...) + + switch hcl.ExprAsKeyword(expr) { case "continue": pv.OnFailure = ProvisionerOnFailureContinue case "fail": pv.OnFailure = ProvisionerOnFailureFail default: - if exprIsNativeQuotedString(attr.Expr) { - diags = append(diags, &hcl.Diagnostic{ - Severity: hcl.DiagError, - Summary: "Invalid \"on_failure\" keyword", - Detail: "The \"on_failure\" argument keyword must not be given in quotes.", - Subject: attr.Expr.Range().Ptr(), - }) - } else { - diags = append(diags, &hcl.Diagnostic{ - Severity: hcl.DiagError, - Summary: "Invalid \"on_failure\" keyword", - Detail: "The \"on_failure\" argument requires one of the following keywords: continue or fail.", - Subject: attr.Expr.Range().Ptr(), - }) - } + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid \"on_failure\" keyword", + Detail: "The \"on_failure\" argument requires one of the following keywords: continue or fail.", + Subject: attr.Expr.Range().Ptr(), + }) } } diff --git a/configs/resource.go b/configs/resource.go index 3892c86b9..1fa16553f 100644 --- a/configs/resource.go +++ b/configs/resource.go @@ -122,6 +122,9 @@ func decodeResourceBlock(block *hcl.Block) (*ManagedResource, hcl.Diagnostics) { diags = append(diags, listDiags...) for _, expr := range exprs { + expr, shimDiags := shimTraversalInString(expr, false) + diags = append(diags, shimDiags...) + traversal, travDiags := hcl.RelTraversalForExpr(expr) diags = append(diags, travDiags...) if len(traversal) != 0 { @@ -257,7 +260,11 @@ type ProviderConfigRef struct { func decodeProviderConfigRef(attr *hcl.Attribute) (*ProviderConfigRef, hcl.Diagnostics) { var diags hcl.Diagnostics - traversal, travDiags := hcl.AbsTraversalForExpr(attr.Expr) + + expr, shimDiags := shimTraversalInString(attr.Expr, false) + diags = append(diags, shimDiags...) + + traversal, travDiags := hcl.AbsTraversalForExpr(expr) // AbsTraversalForExpr produces only generic errors, so we'll discard // the errors given and produce our own with extra context. If we didn't @@ -277,7 +284,7 @@ func decodeProviderConfigRef(attr *hcl.Attribute) (*ProviderConfigRef, hcl.Diagn Severity: hcl.DiagError, Summary: "Invalid provider configuration reference", Detail: "A provider configuration reference must not be given in quotes.", - Subject: attr.Expr.Range().Ptr(), + Subject: expr.Range().Ptr(), }) return nil, diags } @@ -286,7 +293,7 @@ func decodeProviderConfigRef(attr *hcl.Attribute) (*ProviderConfigRef, hcl.Diagn Severity: hcl.DiagError, Summary: "Invalid provider configuration reference", Detail: fmt.Sprintf("The %s argument requires a provider type name, optionally followed by a period and then a configuration alias.", attr.Name), - Subject: attr.Expr.Range().Ptr(), + Subject: expr.Range().Ptr(), }) return nil, diags } diff --git a/configs/test-fixtures/valid-files/resources-dependson-quoted.tf b/configs/test-fixtures/valid-files/resources-dependson-quoted.tf new file mode 100644 index 000000000..3bf188f19 --- /dev/null +++ b/configs/test-fixtures/valid-files/resources-dependson-quoted.tf @@ -0,0 +1,8 @@ +resource "aws_security_group" "firewall" { +} + +resource "aws_instance" "web" { + depends_on = [ + "aws_security_group.firewall", + ] +} diff --git a/configs/test-fixtures/valid-files/resources-ignorechanges-quoted.tf b/configs/test-fixtures/valid-files/resources-ignorechanges-quoted.tf new file mode 100644 index 000000000..cba5be59d --- /dev/null +++ b/configs/test-fixtures/valid-files/resources-ignorechanges-quoted.tf @@ -0,0 +1,7 @@ +resource "aws_instance" "web" { + lifecycle { + ignore_changes = [ + "ami", + ] + } +} diff --git a/configs/test-fixtures/valid-files/resources-provisioner-onfailure-quoted.tf b/configs/test-fixtures/valid-files/resources-provisioner-onfailure-quoted.tf new file mode 100644 index 000000000..dcec1eb08 --- /dev/null +++ b/configs/test-fixtures/valid-files/resources-provisioner-onfailure-quoted.tf @@ -0,0 +1,6 @@ +resource "aws_security_group" "firewall" { + provisioner "local-exec" { + command = "echo hello" + on_failure = "continue" + } +} diff --git a/configs/test-fixtures/valid-files/resources-provisioner-when-quoted.tf b/configs/test-fixtures/valid-files/resources-provisioner-when-quoted.tf new file mode 100644 index 000000000..6a66b085f --- /dev/null +++ b/configs/test-fixtures/valid-files/resources-provisioner-when-quoted.tf @@ -0,0 +1,6 @@ +resource "aws_security_group" "firewall" { + provisioner "local-exec" { + command = "echo hello" + when = "destroy" + } +} diff --git a/configs/test-fixtures/invalid-files/variable-type-quoted.tf b/configs/test-fixtures/valid-files/variable-type-quoted.tf similarity index 100% rename from configs/test-fixtures/invalid-files/variable-type-quoted.tf rename to configs/test-fixtures/valid-files/variable-type-quoted.tf From c5f5340b151a544bd9d335778b259e5e2f60c99f Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Thu, 15 Feb 2018 11:14:29 -0800 Subject: [PATCH 073/156] configs: Additional guidance in doc.go There's quite a lot in this package, so hopefully this additional paragraph will help readers get oriented. --- configs/doc.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/configs/doc.go b/configs/doc.go index 9688b36cd..f01eb79f4 100644 --- a/configs/doc.go +++ b/configs/doc.go @@ -11,4 +11,9 @@ // of types from the HCL API, including raw HCL diagnostic messages. Such // diagnostics can be converted into Terraform-flavored diagnostics, if needed, // using functions in the sibling package tfdiags. +// +// The Parser type is the main entry-point into this package. The LoadConfigDir +// method can be used to load a single module directory, and then a full +// configuration (including any descendent modules) can be produced using +// the top-level BuildConfig method. package configs From 4fa8c16ead14be4496e5550b31415dcb9d160316 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Thu, 15 Feb 2018 11:25:06 -0800 Subject: [PATCH 074/156] configs: support ignore_changes wildcards The initial pass of implementation here missed the special case where ignore_changes can, in the old parser, be set to ["*"] to ignore changes to all attributes. Since that syntax is awkward and non-obvious, our new decoder will instead expect ignore_changes = all, using HCL2's capability to interpret an expression as a literal keyword. For compatibility with old configurations we will still accept the ["*"] form but emit a deprecation warning to encourage moving to the new form. --- configs/compat_shim.go | 18 +++++ configs/parser_config_test.go | 10 +++ configs/resource.go | 66 ++++++++++++++++--- .../resources-ignorechanges-all-legacymix.tf | 5 ++ .../resources-ignorechanges-all-legacy.tf | 5 ++ ...resources-ignorechanges-all-legacy.tf.json | 11 ++++ .../resources-ignorechanges-all.tf | 5 ++ .../resources-ignorechanges-all.tf.json | 11 ++++ 8 files changed, 122 insertions(+), 9 deletions(-) create mode 100644 configs/test-fixtures/invalid-files/resources-ignorechanges-all-legacymix.tf create mode 100644 configs/test-fixtures/valid-files/resources-ignorechanges-all-legacy.tf create mode 100644 configs/test-fixtures/valid-files/resources-ignorechanges-all-legacy.tf.json create mode 100644 configs/test-fixtures/valid-files/resources-ignorechanges-all.tf create mode 100644 configs/test-fixtures/valid-files/resources-ignorechanges-all.tf.json diff --git a/configs/compat_shim.go b/configs/compat_shim.go index 69d8b0d0f..2f803b3fa 100644 --- a/configs/compat_shim.go +++ b/configs/compat_shim.go @@ -3,6 +3,7 @@ package configs import ( "github.com/hashicorp/hcl2/hcl" "github.com/hashicorp/hcl2/hcl/hclsyntax" + "github.com/zclconf/go-cty/cty" ) // ------------------------------------------------------------------------- @@ -79,3 +80,20 @@ func shimTraversalInString(expr hcl.Expression, wantKeyword bool) (hcl.Expressio SrcRange: srcRange, }, diags } + +// shimIsIgnoreChangesStar returns true if the given expression seems to be +// a string literal whose value is "*". This is used to support a legacy +// form of ignore_changes = all . +// +// This function does not itself emit any diagnostics, so it's the caller's +// responsibility to emit a warning diagnostic when this function returns true. +func shimIsIgnoreChangesStar(expr hcl.Expression) bool { + val, valDiags := expr.Value(nil) + if valDiags.HasErrors() { + return false + } + if val.Type() != cty.String || val.IsNull() || !val.IsKnown() { + return false + } + return val.AsString() == "*" +} diff --git a/configs/parser_config_test.go b/configs/parser_config_test.go index ae7c8856d..ff90d5eba 100644 --- a/configs/parser_config_test.go +++ b/configs/parser_config_test.go @@ -129,6 +129,16 @@ func TestParserLoadConfigFileFailureMessages(t *testing.T) { hcl.DiagWarning, "Quoted references are deprecated", }, + { + "valid-files/resources-ignorechanges-all-legacy.tf", + hcl.DiagWarning, + "Deprecated ignore_changes wildcard", + }, + { + "valid-files/resources-ignorechanges-all-legacy.tf.json", + hcl.DiagWarning, + "Deprecated ignore_changes wildcard", + }, { "valid-files/resources-provisioner-when-quoted.tf", hcl.DiagWarning, diff --git a/configs/resource.go b/configs/resource.go index 1fa16553f..e6c9ca2af 100644 --- a/configs/resource.go +++ b/configs/resource.go @@ -26,6 +26,7 @@ type ManagedResource struct { CreateBeforeDestroy bool PreventDestroy bool IgnoreChanges []hcl.Traversal + IgnoreAllChanges bool CreateBeforeDestroySet bool PreventDestroySet bool @@ -118,19 +119,66 @@ func decodeResourceBlock(block *hcl.Block) (*ManagedResource, hcl.Diagnostics) { } if attr, exists := lcContent.Attributes["ignore_changes"]; exists { - exprs, listDiags := hcl.ExprList(attr.Expr) - diags = append(diags, listDiags...) - for _, expr := range exprs { - expr, shimDiags := shimTraversalInString(expr, false) - diags = append(diags, shimDiags...) + // ignore_changes can either be a list of relative traversals + // or it can be just the keyword "all" to ignore changes to this + // resource entirely. + // ignore_changes = [ami, instance_type] + // ignore_changes = all + // We also allow two legacy forms for compatibility with earlier + // versions: + // ignore_changes = ["ami", "instance_type"] + // ignore_changes = ["*"] - traversal, travDiags := hcl.RelTraversalForExpr(expr) - diags = append(diags, travDiags...) - if len(traversal) != 0 { - r.IgnoreChanges = append(r.IgnoreChanges, traversal) + kw := hcl.ExprAsKeyword(attr.Expr) + + switch { + case kw == "all": + r.IgnoreAllChanges = true + default: + exprs, listDiags := hcl.ExprList(attr.Expr) + diags = append(diags, listDiags...) + + var ignoreAllRange hcl.Range + + for _, expr := range exprs { + + // our expr might be the literal string "*", which + // we accept as a deprecated way of saying "all". + if shimIsIgnoreChangesStar(expr) { + r.IgnoreAllChanges = true + ignoreAllRange = expr.Range() + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagWarning, + Summary: "Deprecated ignore_changes wildcard", + Detail: "The [\"*\"] form of ignore_changes wildcard is reprecated. Use \"ignore_changes = all\" to ignore changes to all attributes.", + Subject: attr.Expr.Range().Ptr(), + }) + continue + } + + expr, shimDiags := shimTraversalInString(expr, false) + diags = append(diags, shimDiags...) + + traversal, travDiags := hcl.RelTraversalForExpr(expr) + diags = append(diags, travDiags...) + if len(traversal) != 0 { + r.IgnoreChanges = append(r.IgnoreChanges, traversal) + } } + + if r.IgnoreAllChanges && len(r.IgnoreChanges) != 0 { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid ignore_changes ruleset", + Detail: "Cannot mix wildcard string \"*\" with non-wildcard references.", + Subject: &ignoreAllRange, + Context: attr.Expr.Range().Ptr(), + }) + } + } + } case "connection": diff --git a/configs/test-fixtures/invalid-files/resources-ignorechanges-all-legacymix.tf b/configs/test-fixtures/invalid-files/resources-ignorechanges-all-legacymix.tf new file mode 100644 index 000000000..9557379aa --- /dev/null +++ b/configs/test-fixtures/invalid-files/resources-ignorechanges-all-legacymix.tf @@ -0,0 +1,5 @@ +resource "aws_instance" "web" { + lifecycle { + ignore_changes = ["*", "foo"] + } +} diff --git a/configs/test-fixtures/valid-files/resources-ignorechanges-all-legacy.tf b/configs/test-fixtures/valid-files/resources-ignorechanges-all-legacy.tf new file mode 100644 index 000000000..6b5e61a9c --- /dev/null +++ b/configs/test-fixtures/valid-files/resources-ignorechanges-all-legacy.tf @@ -0,0 +1,5 @@ +resource "aws_instance" "web" { + lifecycle { + ignore_changes = ["*"] + } +} diff --git a/configs/test-fixtures/valid-files/resources-ignorechanges-all-legacy.tf.json b/configs/test-fixtures/valid-files/resources-ignorechanges-all-legacy.tf.json new file mode 100644 index 000000000..5502dcd50 --- /dev/null +++ b/configs/test-fixtures/valid-files/resources-ignorechanges-all-legacy.tf.json @@ -0,0 +1,11 @@ +{ + "resource": { + "aws_instance": { + "web": { + "lifecycle": { + "ignore_changes": ["*"] + } + } + } + } +} diff --git a/configs/test-fixtures/valid-files/resources-ignorechanges-all.tf b/configs/test-fixtures/valid-files/resources-ignorechanges-all.tf new file mode 100644 index 000000000..32cd23288 --- /dev/null +++ b/configs/test-fixtures/valid-files/resources-ignorechanges-all.tf @@ -0,0 +1,5 @@ +resource "aws_instance" "web" { + lifecycle { + ignore_changes = all + } +} diff --git a/configs/test-fixtures/valid-files/resources-ignorechanges-all.tf.json b/configs/test-fixtures/valid-files/resources-ignorechanges-all.tf.json new file mode 100644 index 000000000..c22020826 --- /dev/null +++ b/configs/test-fixtures/valid-files/resources-ignorechanges-all.tf.json @@ -0,0 +1,11 @@ +{ + "resource": { + "aws_instance": { + "web": { + "lifecycle": { + "ignore_changes": "all" + } + } + } + } +} From df9446f4907cfa74663c5d6fe6848c8f0bc25416 Mon Sep 17 00:00:00 2001 From: Stuart Auld Date: Sat, 17 Feb 2018 06:24:01 +1100 Subject: [PATCH 075/156] helper/resource: allow tests to opt out of temporary file cleanup This is rarely needed, but sometimes tests need to create temporary files as part of their operation. This should be used sparingly, since it prevents the pro-active cleanup of the temporary working directory. --- helper/resource/testing.go | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/helper/resource/testing.go b/helper/resource/testing.go index aaaddf5cd..1430bb8d2 100644 --- a/helper/resource/testing.go +++ b/helper/resource/testing.go @@ -310,6 +310,11 @@ type TestStep struct { // no-op plans PlanOnly bool + // PreventDiskCleanup can be set to true for testing terraform modules which + // require access to disk at runtime. Note that this will leave files in the + // temp folder + PreventDiskCleanup bool + // PreventPostDestroyRefresh can be set to true for cases where data sources // are tested alongside real resources PreventPostDestroyRefresh bool @@ -564,6 +569,7 @@ func Test(t TestT, c TestCase) { Config: lastStep.Config, Check: c.CheckDestroy, Destroy: true, + PreventDiskCleanup: lastStep.PreventDiskCleanup, PreventPostDestroyRefresh: c.PreventPostDestroyRefresh, } @@ -730,9 +736,7 @@ func testIDOnlyRefresh(c TestCase, opts terraform.ContextOpts, step TestStep, r return nil } -func testModule( - opts terraform.ContextOpts, - step TestStep) (*module.Tree, error) { +func testModule(opts terraform.ContextOpts, step TestStep) (*module.Tree, error) { if step.PreConfig != nil { step.PreConfig() } @@ -742,7 +746,12 @@ func testModule( return nil, fmt.Errorf( "Error creating temporary directory for config: %s", err) } - defer os.RemoveAll(cfgPath) + + if step.PreventDiskCleanup { + log.Printf("[INFO] Skipping defer os.RemoveAll call") + } else { + defer os.RemoveAll(cfgPath) + } // Write the configuration cfgF, err := os.Create(filepath.Join(cfgPath, "main.tf")) From 10bb21e9c41fa06f3ff2fa33e7e82ae0e9beafb0 Mon Sep 17 00:00:00 2001 From: chrisjob1021 Date: Fri, 16 Feb 2018 11:31:11 -0800 Subject: [PATCH 076/156] provisioner/local-exec: Optional "working_dir" argument This new argument allows overriding of the working directory of the child process, with the default still being the working directory of Terraform itself. --- .../local-exec/resource_provisioner.go | 11 +++++++ .../local-exec/resource_provisioner_test.go | 29 +++++++++++++++++++ .../provisioners/local-exec.html.markdown | 4 +++ 3 files changed, 44 insertions(+) diff --git a/builtin/provisioners/local-exec/resource_provisioner.go b/builtin/provisioners/local-exec/resource_provisioner.go index f537bb34a..3cb56f4a0 100644 --- a/builtin/provisioners/local-exec/resource_provisioner.go +++ b/builtin/provisioners/local-exec/resource_provisioner.go @@ -34,6 +34,11 @@ func Provisioner() terraform.ResourceProvisioner { Elem: &schema.Schema{Type: schema.TypeString}, Optional: true, }, + + "working_dir": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + }, }, ApplyFunc: applyFn, @@ -69,6 +74,8 @@ func applyFn(ctx context.Context) error { } cmdargs = append(cmdargs, command) + workingdir := data.Get("working_dir").(string) + // Setup the reader that will read the output from the command. // We use an os.Pipe so that the *os.File can be passed directly to the // process, and not rely on goroutines copying the data which may block. @@ -82,6 +89,10 @@ func applyFn(ctx context.Context) error { cmd := exec.CommandContext(ctx, cmdargs[0], cmdargs[1:]...) cmd.Stderr = pw cmd.Stdout = pw + // Dir specifies the working directory of the command. + // If Dir is the empty string (this is default), runs the command + // in the calling process's current directory. + cmd.Dir = workingdir output, _ := circbuf.NewBuffer(maxBufSize) diff --git a/builtin/provisioners/local-exec/resource_provisioner_test.go b/builtin/provisioners/local-exec/resource_provisioner_test.go index a32b15c59..7db982f05 100644 --- a/builtin/provisioners/local-exec/resource_provisioner_test.go +++ b/builtin/provisioners/local-exec/resource_provisioner_test.go @@ -145,3 +145,32 @@ func TestResourceProvider_ApplyCustomInterpreter(t *testing.T) { t.Errorf("wrong output\ngot: %s\nwant: %s", got, want) } } + +func TestResourceProvider_ApplyCustomWorkingDirectory(t *testing.T) { + testdir := "working_dir_test" + os.Mkdir(testdir, 0755) + defer os.Remove(testdir) + + c := testConfig(t, map[string]interface{}{ + "working_dir": testdir, + "command": "echo `pwd`", + }) + + output := new(terraform.MockUIOutput) + p := Provisioner() + + if err := p.Apply(output, nil, c); err != nil { + t.Fatalf("err: %v", err) + } + + dir, err := os.Getwd() + if err != nil { + t.Fatalf("err: %v", err) + } + + got := strings.TrimSpace(output.OutputMessage) + want := dir + "/" + testdir + if got != want { + t.Errorf("wrong output\ngot: %s\nwant: %s", got, want) + } +} diff --git a/website/docs/provisioners/local-exec.html.markdown b/website/docs/provisioners/local-exec.html.markdown index bf08bf346..6dd79e7ba 100644 --- a/website/docs/provisioners/local-exec.html.markdown +++ b/website/docs/provisioners/local-exec.html.markdown @@ -39,6 +39,10 @@ The following arguments are supported: It is evaluated in a shell, and can use environment variables or Terraform variables. +* `working_dir` - (Optional) If provided, specifies the working directory where + `command` will be executed. It can be provided as as a relative path to the + current working directory or as an absolute path. The directory must exist. + * `interpreter` - (Optional) If provided, this is a list of interpreter arguments used to execute the command. The first argument is the interpreter itself. It can be provided as a relative path to the current From 7d1f594f54ab741ff021b82b94d73d7dc2fb8651 Mon Sep 17 00:00:00 2001 From: Stuart Auld Date: Sat, 17 Feb 2018 06:32:49 +1100 Subject: [PATCH 077/156] helper/resource: don't panic if a requested module does not exist --- helper/resource/testing.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/helper/resource/testing.go b/helper/resource/testing.go index 1430bb8d2..27bfc9b5a 100644 --- a/helper/resource/testing.go +++ b/helper/resource/testing.go @@ -1144,6 +1144,10 @@ func modulePrimaryInstanceState(s *terraform.State, ms *terraform.ModuleState, n // given resource name in a given module path. func modulePathPrimaryInstanceState(s *terraform.State, mp []string, name string) (*terraform.InstanceState, error) { ms := s.ModuleByPath(mp) + if ms == nil { + return nil, fmt.Errorf("No module found at: %s", mp) + } + return modulePrimaryInstanceState(s, ms, name) } From 1d0f5fdac99ec9f1a8269aded78ce1da6f547fab Mon Sep 17 00:00:00 2001 From: James Bardin Date: Fri, 16 Feb 2018 14:43:16 -0500 Subject: [PATCH 078/156] update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c40bedef6..cfbb05bda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,12 +2,16 @@ IMPROVEMENTS: +* connection/ssh: Add support for host key verifiation [GH-17354} * backend/s3: add support for the cn-northwest-1 region [GH-17216] * provisioner/habitat: Detect if hab user exists and only create if necessary [GH-17195] * provisioner/habitat: Allow custom service name [GH-17196] BUG FIXES: +* core: Halt on fatal provisioner errors, rather than retrying until a timeout [GH-17359] +* core: When handling a forced exit due to multiple interrupts, prevent the process from exiting while the state is being written [GH-17323] +* core: Fix handling of locals and outputs at destroy time [GH-17241] * helper/schema: Prevent crash on removal of computed field in CustomizeDiff [GH-17261] ## 0.11.3 (January 31, 2018) From 85d6b1d9cce951ab58547ab1157b85f4de7a8505 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Tue, 20 Feb 2018 20:32:07 -0500 Subject: [PATCH 079/156] add test for lock error and force-unlock This adds a general test to verify that a remote state backend returns the expected error type when it cannot lock a state. It then extracts the ID reported in the error, and attempts to unlock the state using that ID, which simulated the force-unlock scenario. This is a separate test, since not all backends have persistent locks that can be unlocked later. We also split out the backend test to be called individually as needed. --- backend/testing.go | 78 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 61 insertions(+), 17 deletions(-) diff --git a/backend/testing.go b/backend/testing.go index a608b0c36..e509f82c2 100644 --- a/backend/testing.go +++ b/backend/testing.go @@ -5,6 +5,7 @@ import ( "sort" "testing" + uuid "github.com/hashicorp/go-uuid" "github.com/hashicorp/terraform/config" "github.com/hashicorp/terraform/state" "github.com/hashicorp/terraform/terraform" @@ -43,20 +44,7 @@ func TestBackendConfig(t *testing.T, b Backend, c map[string]interface{}) Backen // assumed to already be configured. This will test state functionality. // If the backend reports it doesn't support multi-state by returning the // error ErrNamedStatesNotSupported, then it will not test that. -// -// If you want to test locking, two backends must be given. If b2 is nil, -// then state locking won't be tested. -func TestBackend(t *testing.T, b1, b2 Backend) { - t.Helper() - - testBackendStates(t, b1) - - if b2 != nil { - testBackendStateLock(t, b1, b2) - } -} - -func testBackendStates(t *testing.T, b Backend) { +func TestBackendStates(t *testing.T, b Backend) { t.Helper() states, err := b.States() @@ -236,7 +224,23 @@ func testBackendStates(t *testing.T, b Backend) { } } -func testBackendStateLock(t *testing.T, b1, b2 Backend) { +// TestBackendStateLocks will test the locking functionality of the remote +// state backend. +func TestBackendStateLocks(t *testing.T, b1, b2 Backend) { + t.Helper() + testLocks(t, b1, b2, false) +} + +// TestBackendStateForceUnlock verifies that the lock error is the expected +// type, and the lock can be unlocked using the ID reported in the error. +// Remote state backends that support -force-unlock should call this in at +// least one of the acceptance tests. +func TestBackendStateForceUnlock(t *testing.T, b1, b2 Backend) { + t.Helper() + testLocks(t, b1, b2, true) +} + +func testLocks(t *testing.T, b1, b2 Backend, testForceUnlock bool) { t.Helper() // Get the default state for each @@ -286,7 +290,7 @@ func testBackendStateLock(t *testing.T, b1, b2 Backend) { // backend, and as a remote state. _, err = b2.State(DefaultStateName) if err != nil { - t.Fatalf("failed to read locked state from another backend instance: %s", err) + t.Errorf("failed to read locked state from another backend instance: %s", err) } // If the lock ID is blank, assume locking is disabled @@ -311,11 +315,51 @@ func testBackendStateLock(t *testing.T, b1, b2 Backend) { } if lockIDB == lockIDA { - t.Fatalf("duplicate lock IDs: %q", lockIDB) + t.Errorf("duplicate lock IDs: %q", lockIDB) } if err = lockerB.Unlock(lockIDB); err != nil { t.Fatal("error unlocking client B:", err) } + // test the equivalent of -force-unlock, by using the id from the error + // output. + if !testForceUnlock { + return + } + + // get a new ID + infoA.ID, err = uuid.GenerateUUID() + if err != nil { + panic(err) + } + + lockIDA, err = lockerA.Lock(infoA) + if err != nil { + t.Fatal("unable to get re lock A:", err) + } + unlock := func() { + err := lockerA.Unlock(lockIDA) + if err != nil { + t.Fatal(err) + } + } + + _, err = lockerB.Lock(infoB) + if err == nil { + unlock() + t.Fatal("client B obtained lock while held by client A") + } + + infoErr, ok := err.(*state.LockError) + if !ok { + unlock() + t.Fatalf("expected type *state.LockError, got : %#v", err) + } + + // try to unlock with the second unlocker, using the ID from the error + if err := lockerB.Unlock(infoErr.Info.ID); err != nil { + unlock() + t.Fatalf("could not unlock with the reported ID %q: %s", infoErr.Info.ID, err) + } } From 1fee5ae172ea4d006fb2a71115513aa83d31c793 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Tue, 20 Feb 2018 20:36:08 -0500 Subject: [PATCH 080/156] update gcs to use the new backend tests --- backend/remote-state/gcs/backend_test.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/backend/remote-state/gcs/backend_test.go b/backend/remote-state/gcs/backend_test.go index f9af09b4f..b561b1f23 100644 --- a/backend/remote-state/gcs/backend_test.go +++ b/backend/remote-state/gcs/backend_test.go @@ -136,8 +136,11 @@ func TestBackend(t *testing.T) { be1 := setupBackend(t, bucket, noPrefix, noEncryptionKey) - backend.TestBackend(t, be0, be1) + backend.TestBackendStates(t, be0) + backend.TestBackendStateLocks(t, be0, be1) + backend.TestBackendStateForceUnlock(t, be0, be1) } + func TestBackendWithPrefix(t *testing.T) { t.Parallel() @@ -149,7 +152,8 @@ func TestBackendWithPrefix(t *testing.T) { be1 := setupBackend(t, bucket, prefix+"/", noEncryptionKey) - backend.TestBackend(t, be0, be1) + backend.TestBackendStates(t, be0) + backend.TestBackendStateLocks(t, be0, be1) } func TestBackendWithEncryption(t *testing.T) { t.Parallel() @@ -161,7 +165,8 @@ func TestBackendWithEncryption(t *testing.T) { be1 := setupBackend(t, bucket, noPrefix, encryptionKey) - backend.TestBackend(t, be0, be1) + backend.TestBackendStates(t, be0) + backend.TestBackendStateLocks(t, be0, be1) } // setupBackend returns a new GCS backend. From 112c37458f66e827fa4d0b8c598c43685145a143 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Tue, 20 Feb 2018 20:54:01 -0500 Subject: [PATCH 081/156] report the proper lock id from a state lock error Fix the now failing state unlock test by reporting the correct ID. The ID used by GCS is the generation number of the info object, which isn't known until the info is already written out. While we can't get the correct ID from the info data for the error rmessage, we can update it with the generation number after it's read. --- backend/remote-state/gcs/client.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/backend/remote-state/gcs/client.go b/backend/remote-state/gcs/client.go index 2744fd1f5..930802b01 100644 --- a/backend/remote-state/gcs/client.go +++ b/backend/remote-state/gcs/client.go @@ -80,6 +80,10 @@ func (c *remoteClient) Delete() error { // Lock writes to a lock file, ensuring file creation. Returns the generation // number, which must be passed to Unlock(). func (c *remoteClient) Lock(info *state.LockInfo) (string, error) { + // update the path we're using + // we can't set the ID until the info is written + info.Path = c.lockFileURL() + infoJson, err := json.Marshal(info) if err != nil { return "", err @@ -93,12 +97,12 @@ func (c *remoteClient) Lock(info *state.LockInfo) (string, error) { } return w.Close() }() + if err != nil { return "", c.lockError(fmt.Errorf("writing %q failed: %v", c.lockFileURL(), err)) } info.ID = strconv.FormatInt(w.Attrs().Generation, 10) - info.Path = c.lockFileURL() return info.ID, nil } @@ -149,6 +153,15 @@ func (c *remoteClient) lockInfo() (*state.LockInfo, error) { return nil, err } + // We use the Generation as the ID, so overwrite the ID in the json. + // This can't be written into the Info, since the generation isn't known + // until it's written. + attrs, err := c.lockFile().Attrs(c.storageContext) + if err != nil { + return nil, err + } + info.ID = strconv.FormatInt(attrs.Generation, 10) + return info, nil } From 57cbcbe99d00470f307a26bd3ec913dc6c3b726e Mon Sep 17 00:00:00 2001 From: James Bardin Date: Tue, 20 Feb 2018 21:05:58 -0500 Subject: [PATCH 082/156] update remote state tests to use new test helpers --- backend/remote-state/azure/backend_test.go | 5 +++-- backend/remote-state/consul/backend_test.go | 8 +++++--- backend/remote-state/etcdv3/backend_test.go | 6 ++++-- backend/remote-state/inmem/backend_test.go | 4 ++-- backend/remote-state/manta/backend_test.go | 5 +++-- backend/remote-state/s3/backend_test.go | 11 ++++++----- backend/remote-state/swift/backend_test.go | 2 +- 7 files changed, 24 insertions(+), 17 deletions(-) diff --git a/backend/remote-state/azure/backend_test.go b/backend/remote-state/azure/backend_test.go index a08fb73f0..ae139db7b 100644 --- a/backend/remote-state/azure/backend_test.go +++ b/backend/remote-state/azure/backend_test.go @@ -64,7 +64,7 @@ func TestBackend(t *testing.T) { "access_key": res.accessKey, }).(*Backend) - backend.TestBackend(t, b, nil) + backend.TestBackendStates(t, b) } func TestBackendLocked(t *testing.T) { @@ -88,7 +88,8 @@ func TestBackendLocked(t *testing.T) { "access_key": res.accessKey, }).(*Backend) - backend.TestBackend(t, b1, b2) + backend.TestBackendStateLocks(t, b1, b2) + backend.TestBackendStateForceUnlock(t, b1, b2) } type testResources struct { diff --git a/backend/remote-state/consul/backend_test.go b/backend/remote-state/consul/backend_test.go index 649fd707e..b5870ad5d 100644 --- a/backend/remote-state/consul/backend_test.go +++ b/backend/remote-state/consul/backend_test.go @@ -63,7 +63,8 @@ func TestBackend(t *testing.T) { }) // Test - backend.TestBackend(t, b1, b2) + backend.TestBackendStates(t, b1) + backend.TestBackendStateLocks(t, b1, b2) } func TestBackend_lockDisabled(t *testing.T) { @@ -83,7 +84,8 @@ func TestBackend_lockDisabled(t *testing.T) { }) // Test - backend.TestBackend(t, b1, b2) + backend.TestBackendStates(t, b1) + backend.TestBackendStateLocks(t, b1, b2) } func TestBackend_gzip(t *testing.T) { @@ -95,5 +97,5 @@ func TestBackend_gzip(t *testing.T) { }) // Test - backend.TestBackend(t, b, nil) + backend.TestBackendStates(t, b) } diff --git a/backend/remote-state/etcdv3/backend_test.go b/backend/remote-state/etcdv3/backend_test.go index 4b9b88dbc..ae3e3e645 100644 --- a/backend/remote-state/etcdv3/backend_test.go +++ b/backend/remote-state/etcdv3/backend_test.go @@ -66,7 +66,9 @@ func TestBackend(t *testing.T) { }) // Test - backend.TestBackend(t, b1, b2) + backend.TestBackendStates(t, b1) + backend.TestBackendStateLocks(t, b1, b2) + backend.TestBackendStateForceUnlock(t, b1, b2) } func TestBackend_lockDisabled(t *testing.T) { @@ -89,5 +91,5 @@ func TestBackend_lockDisabled(t *testing.T) { }) // Test - backend.TestBackend(t, b1, b2) + backend.TestBackendStateLocks(t, b1, b2) } diff --git a/backend/remote-state/inmem/backend_test.go b/backend/remote-state/inmem/backend_test.go index 005e66a1e..fbbe1e277 100644 --- a/backend/remote-state/inmem/backend_test.go +++ b/backend/remote-state/inmem/backend_test.go @@ -40,7 +40,7 @@ func TestBackendConfig(t *testing.T) { func TestBackend(t *testing.T) { defer Reset() b := backend.TestBackendConfig(t, New(), nil).(*Backend) - backend.TestBackend(t, b, nil) + backend.TestBackendStates(t, b) } func TestBackendLocked(t *testing.T) { @@ -48,7 +48,7 @@ func TestBackendLocked(t *testing.T) { b1 := backend.TestBackendConfig(t, New(), nil).(*Backend) b2 := backend.TestBackendConfig(t, New(), nil).(*Backend) - backend.TestBackend(t, b1, b2) + backend.TestBackendStateLocks(t, b1, b2) } // use the this backen to test the remote.State implementation diff --git a/backend/remote-state/manta/backend_test.go b/backend/remote-state/manta/backend_test.go index a457f233e..9b243b7fc 100644 --- a/backend/remote-state/manta/backend_test.go +++ b/backend/remote-state/manta/backend_test.go @@ -38,7 +38,7 @@ func TestBackend(t *testing.T) { createMantaFolder(t, b.storageClient, directory) defer deleteMantaFolder(t, b.storageClient, directory) - backend.TestBackend(t, b, nil) + backend.TestBackendStates(t, b) } func TestBackendLocked(t *testing.T) { @@ -60,7 +60,8 @@ func TestBackendLocked(t *testing.T) { createMantaFolder(t, b1.storageClient, directory) defer deleteMantaFolder(t, b1.storageClient, directory) - backend.TestBackend(t, b1, b2) + backend.TestBackendStateLocks(t, b1, b2) + backend.TestBackendStateForceUnlock(t, b1, b2) } func createMantaFolder(t *testing.T, mantaClient *storage.StorageClient, directoryName string) { diff --git a/backend/remote-state/s3/backend_test.go b/backend/remote-state/s3/backend_test.go index f5e199263..e296cdc42 100644 --- a/backend/remote-state/s3/backend_test.go +++ b/backend/remote-state/s3/backend_test.go @@ -103,7 +103,7 @@ func TestBackend(t *testing.T) { createS3Bucket(t, b.s3Client, bucketName) defer deleteS3Bucket(t, b.s3Client, bucketName) - backend.TestBackend(t, b, nil) + backend.TestBackendStates(t, b) } func TestBackendLocked(t *testing.T) { @@ -131,7 +131,8 @@ func TestBackendLocked(t *testing.T) { createDynamoDBTable(t, b1.dynClient, bucketName) defer deleteDynamoDBTable(t, b1.dynClient, bucketName) - backend.TestBackend(t, b1, b2) + backend.TestBackendStateLocks(t, b1, b2) + backend.TestBackendStateForceUnlock(t, b1, b2) } // add some extra junk in S3 to try and confuse the env listing. @@ -334,9 +335,9 @@ func TestKeyEnv(t *testing.T) { t.Fatal(err) } - backend.TestBackend(t, b0, nil) - backend.TestBackend(t, b1, nil) - backend.TestBackend(t, b2, nil) + backend.TestBackendStates(t, b0) + backend.TestBackendStates(t, b1) + backend.TestBackendStates(t, b2) } func testGetWorkspaceForKey(b *Backend, key string, expected string) error { diff --git a/backend/remote-state/swift/backend_test.go b/backend/remote-state/swift/backend_test.go index e79342a76..85d505fc6 100644 --- a/backend/remote-state/swift/backend_test.go +++ b/backend/remote-state/swift/backend_test.go @@ -67,7 +67,7 @@ func TestBackend(t *testing.T) { defer deleteSwiftContainer(t, b.client, container) - backend.TestBackend(t, b, nil) + backend.TestBackendStates(t, b) } func TestBackendPath(t *testing.T) { From 8242c773b88f191e17c6826baa352223d19c7d00 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Tue, 20 Feb 2018 22:09:54 -0500 Subject: [PATCH 083/156] missed the local state backend --- backend/local/backend_test.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/local/backend_test.go b/backend/local/backend_test.go index df71469ae..3852aae2f 100644 --- a/backend/local/backend_test.go +++ b/backend/local/backend_test.go @@ -23,7 +23,8 @@ func TestLocal_impl(t *testing.T) { func TestLocal_backend(t *testing.T) { defer testTmpDir(t)() b := &Local{} - backend.TestBackend(t, b, b) + backend.TestBackendStates(t, b) + backend.TestBackendStateLocks(t, b, b) } func checkState(t *testing.T, path, expected string) { From a37acb1837e94652b26c6e8ab69d250be2ce2a50 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 21 Feb 2018 10:22:08 -0500 Subject: [PATCH 084/156] gofmt with go1.10 --- command/format/plan_test.go | 2 +- terraform/interpolate_test.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/command/format/plan_test.go b/command/format/plan_test.go index 0a2dc1e36..a87646cf0 100644 --- a/command/format/plan_test.go +++ b/command/format/plan_test.go @@ -408,7 +408,7 @@ func TestPlanStats(t *testing.T) { }, }, PlanStats{ - // data resource refreshes are not counted in our stats + // data resource refreshes are not counted in our stats }, }, "replace": { diff --git a/terraform/interpolate_test.go b/terraform/interpolate_test.go index 00aec367d..10f23a278 100644 --- a/terraform/interpolate_test.go +++ b/terraform/interpolate_test.go @@ -348,8 +348,8 @@ func TestInterpolater_resourceVariableMissingDuringInput(t *testing.T) { &ModuleState{ Path: rootModulePath, Resources: map[string]*ResourceState{ - // No resources at all yet, because we're still dealing - // with input and so the resources haven't been created. + // No resources at all yet, because we're still dealing + // with input and so the resources haven't been created. }, }, }, From 3bc1dcf21a1ce853c386e0d33361caa6fa06c8ed Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 21 Feb 2018 11:25:50 -0500 Subject: [PATCH 085/156] update travis to build with go1.10 Remove the vet target too, since vet is now always run with every test. --- .travis.yml | 3 +-- Makefile | 13 +------------ 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/.travis.yml b/.travis.yml index a7a2876cd..1beee560c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ dist: trusty sudo: false language: go go: -- 1.9.1 +- 1.10 # add TF_CONSUL_TEST=1 to run consul tests # they were causing timouts in travis @@ -34,7 +34,6 @@ script: - make vendor-status - make test - make e2etest -- make vet - GOOS=windows go build branches: only: diff --git a/Makefile b/Makefile index 07897daac..879a1e035 100644 --- a/Makefile +++ b/Makefile @@ -68,17 +68,6 @@ cover: go tool cover -html=coverage.out rm coverage.out -# vet runs the Go source code static analysis tool `vet` to find -# any common errors. -vet: - @echo 'go vet ./...' - @go vet ./... ; if [ $$? -eq 1 ]; then \ - echo ""; \ - echo "Vet found suspicious constructs. Please check the reported constructs"; \ - echo "and fix them if necessary before submitting the code for review."; \ - exit 1; \ - fi - # generate runs `go generate` to build the dynamically generated # source files. generate: @@ -102,4 +91,4 @@ vendor-status: # under parallel conditions. .NOTPARALLEL: -.PHONY: bin cover default dev e2etest fmt fmtcheck generate plugin-dev quickdev test-compile test testacc testrace tools vendor-status vet +.PHONY: bin cover default dev e2etest fmt fmtcheck generate plugin-dev quickdev test-compile test testacc testrace tools vendor-status From d4415bdd7d0c8194bb062ec0332627ecf456b62a Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 21 Feb 2018 11:37:06 -0500 Subject: [PATCH 086/156] try travis go version as string --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1beee560c..c11f41424 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ dist: trusty sudo: false language: go go: -- 1.10 +- "1.10" # add TF_CONSUL_TEST=1 to run consul tests # they were causing timouts in travis From abac457033a183dc9eeb9305fece5baa07251738 Mon Sep 17 00:00:00 2001 From: Michael Sambol Date: Wed, 21 Feb 2018 13:42:22 -0600 Subject: [PATCH 087/156] website: Fix typo in Getting Started guide --- website/intro/getting-started/variables.html.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/intro/getting-started/variables.html.md b/website/intro/getting-started/variables.html.md index 3c518f913..76302d937 100644 --- a/website/intro/getting-started/variables.html.md +++ b/website/intro/getting-started/variables.html.md @@ -93,7 +93,7 @@ specify a file. These files are the same syntax as Terraform configuration files. And like Terraform configuration files, these files can also be JSON. -We don't recommend saving usernames and password to version control, But you +We don't recommend saving usernames and password to version control, but you can create a local secret variables file and use `-var-file` to load it. You can use multiple `-var-file` arguments in a single command, with some From ec62819b3ab4171f33af6d5dd61e8de47a9c856e Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 21 Feb 2018 15:30:29 -0500 Subject: [PATCH 088/156] finish removing vet from the makefile The test target will already cover vet, since it's run as part of the test command now. Also remove the `go test -i` since it's no longer needed with the new build cache. --- Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 879a1e035..23a95aed2 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ TEST?=./... GOFMT_FILES?=$$(find . -name '*.go' | grep -v vendor) -default: test vet +default: test tools: go get -u github.com/kardianos/govendor @@ -30,7 +30,6 @@ plugin-dev: generate # we run this one package at a time here because running the entire suite in # one command creates memory usage issues when running in Travis-CI. test: fmtcheck generate - go test -i $(TEST) || exit 1 go list $(TEST) | xargs -t -n4 go test $(TESTARGS) -timeout=60s -parallel=4 # testacc runs acceptance tests From ec339a228e4c221204b59235716216f54af97773 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Wed, 21 Feb 2018 15:36:29 -0500 Subject: [PATCH 089/156] update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cfbb05bda..5660db0f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ IMPROVEMENTS: +* core: https URLs are now supported in the HTTP_PROXY environment variable [go1.10:net/http](https://golang.org/doc/go1.10#net/http) * connection/ssh: Add support for host key verifiation [GH-17354} * backend/s3: add support for the cn-northwest-1 region [GH-17216] * provisioner/habitat: Detect if hab user exists and only create if necessary [GH-17195] From e88bd74bb70801564ba1ffa6e52ecbab78ce8f15 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Thu, 22 Feb 2018 20:43:21 -0500 Subject: [PATCH 090/156] create clistate.Locker interface Simplify the use of clistate.Lock by creating a clistate.Locker instance, which stores the context of locking a state, to allow unlock to be called without knowledge of how the state was locked. This alows the backend code to bring the needed UI methods to the point where the state is locked, and still unlock the state from an outer scope. --- backend/local/backend_apply.go | 9 +- backend/local/backend_plan.go | 11 +-- backend/local/backend_refresh.go | 11 +-- backend/remote-state/consul/client.go | 5 ++ command/clistate/state.go | 114 +++++++++++++++++++++----- command/meta_backend.go | 32 ++------ command/meta_backend_migrate.go | 16 +--- command/taint.go | 7 +- command/untaint.go | 8 +- command/workspace_delete.go | 8 +- command/workspace_new.go | 8 +- 11 files changed, 125 insertions(+), 104 deletions(-) diff --git a/backend/local/backend_apply.go b/backend/local/backend_apply.go index da8c684bc..8a97fc829 100644 --- a/backend/local/backend_apply.go +++ b/backend/local/backend_apply.go @@ -59,18 +59,13 @@ func (b *Local) opApply( lockCtx, cancel := context.WithTimeout(stopCtx, op.StateLockTimeout) defer cancel() - lockInfo := state.NewLockInfo() - lockInfo.Operation = op.Type.String() - lockID, err := clistate.Lock(lockCtx, opState, lockInfo, b.CLI, b.Colorize()) + unlock, err := clistate.Lock(lockCtx, opState, op.Type.String(), "", b.CLI, b.Colorize()) if err != nil { runningOp.Err = errwrap.Wrapf("Error locking state: {{err}}", err) return } - defer func() { - if err := clistate.Unlock(opState, lockID, b.CLI, b.Colorize()); err != nil { - runningOp.Err = multierror.Append(runningOp.Err, err) - } + runningOp.Err = unlock(runningOp.Err) }() } diff --git a/backend/local/backend_plan.go b/backend/local/backend_plan.go index ebf053192..d2956e341 100644 --- a/backend/local/backend_plan.go +++ b/backend/local/backend_plan.go @@ -9,12 +9,10 @@ import ( "strings" "github.com/hashicorp/errwrap" - "github.com/hashicorp/go-multierror" "github.com/hashicorp/terraform/backend" "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/command/format" "github.com/hashicorp/terraform/config/module" - "github.com/hashicorp/terraform/state" "github.com/hashicorp/terraform/terraform" ) @@ -66,18 +64,13 @@ func (b *Local) opPlan( lockCtx, cancel := context.WithTimeout(stopCtx, op.StateLockTimeout) defer cancel() - lockInfo := state.NewLockInfo() - lockInfo.Operation = op.Type.String() - lockID, err := clistate.Lock(lockCtx, opState, lockInfo, b.CLI, b.Colorize()) + unlock, err := clistate.Lock(lockCtx, opState, op.Type.String(), "", b.CLI, b.Colorize()) if err != nil { runningOp.Err = errwrap.Wrapf("Error locking state: {{err}}", err) return } - defer func() { - if err := clistate.Unlock(opState, lockID, b.CLI, b.Colorize()); err != nil { - runningOp.Err = multierror.Append(runningOp.Err, err) - } + runningOp.Err = unlock(runningOp.Err) }() } diff --git a/backend/local/backend_refresh.go b/backend/local/backend_refresh.go index 959f969a3..a19aa9e5e 100644 --- a/backend/local/backend_refresh.go +++ b/backend/local/backend_refresh.go @@ -8,11 +8,9 @@ import ( "strings" "github.com/hashicorp/errwrap" - "github.com/hashicorp/go-multierror" "github.com/hashicorp/terraform/backend" "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/config/module" - "github.com/hashicorp/terraform/state" "github.com/hashicorp/terraform/terraform" ) @@ -57,18 +55,13 @@ func (b *Local) opRefresh( lockCtx, cancel := context.WithTimeout(stopCtx, op.StateLockTimeout) defer cancel() - lockInfo := state.NewLockInfo() - lockInfo.Operation = op.Type.String() - lockID, err := clistate.Lock(lockCtx, opState, lockInfo, b.CLI, b.Colorize()) + unlock, err := clistate.Lock(lockCtx, opState, op.Type.String(), "", b.CLI, b.Colorize()) if err != nil { runningOp.Err = errwrap.Wrapf("Error locking state: {{err}}", err) return } - defer func() { - if err := clistate.Unlock(opState, lockID, b.CLI, b.Colorize()); err != nil { - runningOp.Err = multierror.Append(runningOp.Err, err) - } + runningOp.Err = unlock(runningOp.Err) }() } diff --git a/backend/remote-state/consul/client.go b/backend/remote-state/consul/client.go index bd37712f3..8ccb1814e 100644 --- a/backend/remote-state/consul/client.go +++ b/backend/remote-state/consul/client.go @@ -9,6 +9,7 @@ import ( "errors" "fmt" "log" + "runtime/debug" "sync" "time" @@ -81,6 +82,9 @@ func (c *RemoteClient) Get() (*remote.Payload, error) { c.modifyIndex = pair.ModifyIndex + log.Println("[XXXX] GOT STATE WITH INDEX:", c.modifyIndex) + log.Println(string(debug.Stack())) + payload := pair.Value // If the payload starts with 0x1f, it's gzip, not json if len(pair.Value) >= 1 && pair.Value[0] == '\x1f' { @@ -280,6 +284,7 @@ func (c *RemoteClient) lock() (string, error) { return "", lockErr } + defer log.Println("[XXXX] OBTAINED CONSUL LOCK") c.lockCh = lockCh err = c.putLockInfo(c.info) diff --git a/command/clistate/state.go b/command/clistate/state.go index f02f053be..9bd9fe940 100644 --- a/command/clistate/state.go +++ b/command/clistate/state.go @@ -8,9 +8,11 @@ import ( "context" "fmt" "strings" + "sync" "time" "github.com/hashicorp/errwrap" + multierror "github.com/hashicorp/go-multierror" "github.com/hashicorp/terraform/helper/slowmessage" "github.com/hashicorp/terraform/state" "github.com/mitchellh/cli" @@ -48,47 +50,119 @@ that no one else is holding a lock. ` ) -// Lock locks the given state and outputs to the user if locking -// is taking longer than the threshold. The lock is retried until the context -// is cancelled. -func Lock(ctx context.Context, s state.State, info *state.LockInfo, ui cli.Ui, color *colorstring.Colorize) (string, error) { - var lockID string +// Locker allows for more convenient locking, by creating the timeout context +// and LockInfo for the caller, while storing any related data required for +// Unlock. +type Locker interface { + // Lock the provided state, storing the reason string in the LockInfo. + Lock(s state.State, reason string) error + // Unlock the previously locked state. + // An optional error can be passed in, and will be combined with any error + // from the Unlock operation. + Unlock(error) error +} + +type locker struct { + mu sync.Mutex + ctx context.Context + timeout time.Duration + state state.State + ui cli.Ui + color *colorstring.Colorize + lockID string +} + +// Create a new Locker. +// The provided context will be used for lock cancellation, and combined with +// the timeout duration. Lock progress will be be reported to the user through +// the provided UI. +func NewLocker( + ctx context.Context, + timeout time.Duration, + ui cli.Ui, + color *colorstring.Colorize) Locker { + + l := &locker{ + ctx: ctx, + timeout: timeout, + ui: ui, + color: color, + } + return l +} + +// Locker locks the given state and outputs to the user if locking is taking +// longer than the threshold. The lock is retried until the context is +// cancelled. +func (l *locker) Lock(s state.State, reason string) error { + l.mu.Lock() + defer l.mu.Unlock() + + l.state = s + + ctx, cancel := context.WithTimeout(l.ctx, l.timeout) + defer cancel() + + lockInfo := state.NewLockInfo() + lockInfo.Operation = reason err := slowmessage.Do(LockThreshold, func() error { - id, err := state.LockWithContext(ctx, s, info) - lockID = id + id, err := state.LockWithContext(ctx, s, lockInfo) + l.lockID = id return err }, func() { - if ui != nil { - ui.Output(color.Color(LockMessage)) + if l.ui != nil { + l.ui.Output(l.color.Color(LockMessage)) } }) if err != nil { - err = errwrap.Wrapf(strings.TrimSpace(LockErrorMessage), err) + return errwrap.Wrapf(strings.TrimSpace(LockErrorMessage), err) } - return lockID, err + return nil } -// Unlock unlocks the given state and outputs to the user if the -// unlock fails what can be done. -func Unlock(s state.State, id string, ui cli.Ui, color *colorstring.Colorize) error { +func (l *locker) Unlock(parentErr error) error { + l.mu.Lock() + defer l.mu.Unlock() + + if l.lockID == "" { + return parentErr + } + err := slowmessage.Do(LockThreshold, func() error { - return s.Unlock(id) + return l.state.Unlock(l.lockID) }, func() { - if ui != nil { - ui.Output(color.Color(UnlockMessage)) + if l.ui != nil { + l.ui.Output(l.color.Color(UnlockMessage)) } }) if err != nil { - ui.Output(color.Color(fmt.Sprintf( + l.ui.Output(l.color.Color(fmt.Sprintf( "\n"+strings.TrimSpace(UnlockErrorMessage)+"\n", err))) - err = fmt.Errorf( - "Error releasing the state lock. Please see the longer error message above.") + if parentErr != nil { + parentErr = multierror.Append(parentErr, err) + } } + return parentErr + +} + +type noopLocker struct{} + +// NewNoopLocker returns a valid Locker that does nothing. +func NewNoopLocker() Locker { + return noopLocker{} +} + +func (l noopLocker) Lock(state.State, string) error { + return nil +} + +func (l noopLocker) Unlock(err error) error { return err } diff --git a/command/meta_backend.go b/command/meta_backend.go index 2fa4ff542..726f3b70c 100644 --- a/command/meta_backend.go +++ b/command/meta_backend.go @@ -586,15 +586,11 @@ func (m *Meta) backendFromPlan(opts *BackendOpts) (backend.Backend, error) { lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) defer cancel() - // Lock the state if we can - lockInfo := state.NewLockInfo() - lockInfo.Operation = "backend from plan" - - lockID, err := clistate.Lock(lockCtx, realMgr, lockInfo, m.Ui, m.Colorize()) + unlock, err := clistate.Lock(lockCtx, realMgr, "backend from plan", "", m.Ui, m.Colorize()) if err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer clistate.Unlock(realMgr, lockID, m.Ui, m.Colorize()) + defer unlock(nil) } if err := realMgr.RefreshState(); err != nil { @@ -967,15 +963,11 @@ func (m *Meta) backend_C_r_s( lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) defer cancel() - // Lock the state if we can - lockInfo := state.NewLockInfo() - lockInfo.Operation = "backend from config" - - lockID, err := clistate.Lock(lockCtx, sMgr, lockInfo, m.Ui, m.Colorize()) + unlock, err := clistate.Lock(lockCtx, sMgr, "backend from config", "", m.Ui, m.Colorize()) if err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer clistate.Unlock(sMgr, lockID, m.Ui, m.Colorize()) + defer unlock(nil) } // Store the metadata in our saved state location @@ -1050,15 +1042,11 @@ func (m *Meta) backend_C_r_S_changed( lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) defer cancel() - // Lock the state if we can - lockInfo := state.NewLockInfo() - lockInfo.Operation = "backend from config" - - lockID, err := clistate.Lock(lockCtx, sMgr, lockInfo, m.Ui, m.Colorize()) + unlock, err := clistate.Lock(lockCtx, sMgr, "backend from config", "", m.Ui, m.Colorize()) if err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer clistate.Unlock(sMgr, lockID, m.Ui, m.Colorize()) + defer unlock(nil) } // Update the backend state @@ -1193,15 +1181,11 @@ func (m *Meta) backend_C_R_S_unchanged( lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) defer cancel() - // Lock the state if we can - lockInfo := state.NewLockInfo() - lockInfo.Operation = "backend from config" - - lockID, err := clistate.Lock(lockCtx, sMgr, lockInfo, m.Ui, m.Colorize()) + unlock, err := clistate.Lock(lockCtx, sMgr, "backend from config", "", m.Ui, m.Colorize()) if err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer clistate.Unlock(sMgr, lockID, m.Ui, m.Colorize()) + defer unlock(nil) } // Unset the remote state diff --git a/command/meta_backend_migrate.go b/command/meta_backend_migrate.go index 7f60a6605..be20a4476 100644 --- a/command/meta_backend_migrate.go +++ b/command/meta_backend_migrate.go @@ -236,25 +236,17 @@ func (m *Meta) backendMigrateState_s_s(opts *backendMigrateOpts) error { lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) defer cancel() - lockInfoOne := state.NewLockInfo() - lockInfoOne.Operation = "migration" - lockInfoOne.Info = "source state" - - lockIDOne, err := clistate.Lock(lockCtx, stateOne, lockInfoOne, m.Ui, m.Colorize()) + unlockOne, err := clistate.Lock(lockCtx, stateOne, "migration", "source state", m.Ui, m.Colorize()) if err != nil { return fmt.Errorf("Error locking source state: %s", err) } - defer clistate.Unlock(stateOne, lockIDOne, m.Ui, m.Colorize()) + defer unlockOne(nil) - lockInfoTwo := state.NewLockInfo() - lockInfoTwo.Operation = "migration" - lockInfoTwo.Info = "destination state" - - lockIDTwo, err := clistate.Lock(lockCtx, stateTwo, lockInfoTwo, m.Ui, m.Colorize()) + unlockTwo, err := clistate.Lock(lockCtx, stateTwo, "migration", "destination state", m.Ui, m.Colorize()) if err != nil { return fmt.Errorf("Error locking destination state: %s", err) } - defer clistate.Unlock(stateTwo, lockIDTwo, m.Ui, m.Colorize()) + defer unlockTwo(nil) // We now own a lock, so double check that we have the version // corresponding to the lock. diff --git a/command/taint.go b/command/taint.go index 626f88a46..c3d6c4cc9 100644 --- a/command/taint.go +++ b/command/taint.go @@ -7,7 +7,6 @@ import ( "strings" "github.com/hashicorp/terraform/command/clistate" - "github.com/hashicorp/terraform/state" "github.com/hashicorp/terraform/terraform" ) @@ -87,15 +86,13 @@ func (c *TaintCommand) Run(args []string) int { lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) defer cancel() - lockInfo := state.NewLockInfo() - lockInfo.Operation = "taint" - lockID, err := clistate.Lock(lockCtx, st, lockInfo, c.Ui, c.Colorize()) + unlock, err := clistate.Lock(lockCtx, st, "taint", "", c.Ui, c.Colorize()) if err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 } - defer clistate.Unlock(st, lockID, c.Ui, c.Colorize()) + defer unlock(nil) } // Get the actual state structure diff --git a/command/untaint.go b/command/untaint.go index 1eca20277..9a2e43b24 100644 --- a/command/untaint.go +++ b/command/untaint.go @@ -7,7 +7,6 @@ import ( "strings" "github.com/hashicorp/terraform/command/clistate" - "github.com/hashicorp/terraform/state" ) // UntaintCommand is a cli.Command implementation that manually untaints @@ -75,15 +74,12 @@ func (c *UntaintCommand) Run(args []string) int { lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) defer cancel() - lockInfo := state.NewLockInfo() - lockInfo.Operation = "untaint" - lockID, err := clistate.Lock(lockCtx, st, lockInfo, c.Ui, c.Colorize()) + unlock, err := clistate.Lock(lockCtx, st, "untaint", "", c.Ui, c.Colorize()) if err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 } - - defer clistate.Unlock(st, lockID, c.Ui, c.Colorize()) + defer unlock(nil) } // Get the actual state structure diff --git a/command/workspace_delete.go b/command/workspace_delete.go index 99dac86d3..8a9f792e1 100644 --- a/command/workspace_delete.go +++ b/command/workspace_delete.go @@ -6,7 +6,6 @@ import ( "strings" "github.com/hashicorp/terraform/command/clistate" - "github.com/hashicorp/terraform/state" "github.com/mitchellh/cli" "github.com/posener/complete" ) @@ -114,10 +113,7 @@ func (c *WorkspaceDeleteCommand) Run(args []string) int { lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) defer cancel() - // Lock the state if we can - lockInfo := state.NewLockInfo() - lockInfo.Operation = "workspace delete" - lockID, err := clistate.Lock(lockCtx, sMgr, lockInfo, c.Ui, c.Colorize()) + unlock, err := clistate.Lock(lockCtx, sMgr, "workspace delete", "", c.Ui, c.Colorize()) if err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 @@ -132,7 +128,7 @@ func (c *WorkspaceDeleteCommand) Run(args []string) int { // state deletion, i.e. in a CI environment. Adding Delete() as a // required method of States would allow the removal of the resource to // be delegated from the Backend to the State itself. - clistate.Unlock(sMgr, lockID, c.Ui, c.Colorize()) + unlock(nil) } err = b.DeleteState(delEnv) diff --git a/command/workspace_new.go b/command/workspace_new.go index 71c9fdc1f..430ecc58b 100644 --- a/command/workspace_new.go +++ b/command/workspace_new.go @@ -7,7 +7,6 @@ import ( "strings" "github.com/hashicorp/terraform/command/clistate" - "github.com/hashicorp/terraform/state" "github.com/hashicorp/terraform/terraform" "github.com/mitchellh/cli" "github.com/posener/complete" @@ -118,15 +117,12 @@ func (c *WorkspaceNewCommand) Run(args []string) int { lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) defer cancel() - // Lock the state if we can - lockInfo := state.NewLockInfo() - lockInfo.Operation = "workspace new" - lockID, err := clistate.Lock(lockCtx, sMgr, lockInfo, c.Ui, c.Colorize()) + unlock, err := clistate.Lock(lockCtx, sMgr, "workspace_new", "", c.Ui, c.Colorize()) if err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 } - defer clistate.Unlock(sMgr, lockID, c.Ui, c.Colorize()) + defer unlock(nil) } // read the existing state file From d3f7edeb272a9de29166384aea52e9bd12dbbaf4 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Fri, 23 Feb 2018 11:22:28 -0500 Subject: [PATCH 091/156] add backend.Operation.StateLocker Add the StateLocker field so that the state lock can be carried between the different function scopes of the backend code. This will allow the backend context to lock the state before it's read, while allowing the different operations to unlock the state when they complete. --- backend/backend.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/backend/backend.go b/backend/backend.go index f67d60ab6..dfeb80ef6 100644 --- a/backend/backend.go +++ b/backend/backend.go @@ -9,6 +9,7 @@ import ( "errors" "time" + "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/config/module" "github.com/hashicorp/terraform/state" "github.com/hashicorp/terraform/terraform" @@ -135,6 +136,10 @@ type Operation struct { // state.Lockers for its duration, and Unlock when complete. LockState bool + // StateLocker is used to lock the state while providing UI feedback to the + // user. This will be supplied by the Backend itself. + StateLocker clistate.Locker + // The duration to retry obtaining a State lock. StateLockTimeout time.Duration From 0b804a9686b1d56446bd1cab2f201022d0f4ad5d Mon Sep 17 00:00:00 2001 From: James Bardin Date: Fri, 23 Feb 2018 11:28:13 -0500 Subject: [PATCH 092/156] use the new clistate.Locker in the local backend Use the new StateLocker field to provide a wrapper for locking the state during terraform.Context creation. We can then remove all the state locking code from individual operations, and unlock them in one place inside the main Operation method. --- backend/local/backend.go | 10 ++++++++++ backend/local/backend_apply.go | 15 --------------- backend/local/backend_local.go | 12 ++++++++++++ backend/local/backend_plan.go | 15 --------------- backend/local/backend_refresh.go | 15 --------------- 5 files changed, 22 insertions(+), 45 deletions(-) diff --git a/backend/local/backend.go b/backend/local/backend.go index b42aedb17..b0aae720e 100644 --- a/backend/local/backend.go +++ b/backend/local/backend.go @@ -13,6 +13,7 @@ import ( "sync" "github.com/hashicorp/terraform/backend" + "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/helper/schema" "github.com/hashicorp/terraform/state" "github.com/hashicorp/terraform/terraform" @@ -260,12 +261,21 @@ func (b *Local) Operation(ctx context.Context, op *backend.Operation) (*backend. cancelCtx, cancel := context.WithCancel(context.Background()) runningOp.Cancel = cancel + if op.LockState { + op.StateLocker = clistate.NewLocker(stopCtx, op.StateLockTimeout, b.CLI, b.Colorize()) + } else { + op.StateLocker = clistate.NewNoopLocker() + } + // Do it go func() { defer done() defer stop() defer cancel() + // the state was locked during context creation, unlock the state when + // the operation completes + defer op.StateLocker.Unlock(runningOp.Err) defer b.opLock.Unlock() f(stopCtx, cancelCtx, op, runningOp) }() diff --git a/backend/local/backend_apply.go b/backend/local/backend_apply.go index 8a97fc829..102d40c39 100644 --- a/backend/local/backend_apply.go +++ b/backend/local/backend_apply.go @@ -11,7 +11,6 @@ import ( "github.com/hashicorp/errwrap" "github.com/hashicorp/go-multierror" "github.com/hashicorp/terraform/backend" - "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/command/format" "github.com/hashicorp/terraform/config/module" "github.com/hashicorp/terraform/state" @@ -55,20 +54,6 @@ func (b *Local) opApply( return } - if op.LockState { - lockCtx, cancel := context.WithTimeout(stopCtx, op.StateLockTimeout) - defer cancel() - - unlock, err := clistate.Lock(lockCtx, opState, op.Type.String(), "", b.CLI, b.Colorize()) - if err != nil { - runningOp.Err = errwrap.Wrapf("Error locking state: {{err}}", err) - return - } - defer func() { - runningOp.Err = unlock(runningOp.Err) - }() - } - // Setup the state runningOp.State = tfCtx.State() diff --git a/backend/local/backend_local.go b/backend/local/backend_local.go index aa056a1a1..d26fefa57 100644 --- a/backend/local/backend_local.go +++ b/backend/local/backend_local.go @@ -1,9 +1,11 @@ package local import ( + "context" "errors" "log" + "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/command/format" "github.com/hashicorp/terraform/tfdiags" @@ -20,6 +22,12 @@ func (b *Local) Context(op *backend.Operation) (*terraform.Context, state.State, // to ask for input/validate. op.Type = backend.OperationTypeInvalid + if op.LockState { + op.StateLocker = clistate.NewLocker(context.Background(), op.StateLockTimeout, b.CLI, b.Colorize()) + } else { + op.StateLocker = clistate.NewNoopLocker() + } + return b.context(op) } @@ -30,6 +38,10 @@ func (b *Local) context(op *backend.Operation) (*terraform.Context, state.State, return nil, nil, errwrap.Wrapf("Error loading state: {{err}}", err) } + if err := op.StateLocker.Lock(s, op.Type.String()); err != nil { + return nil, nil, errwrap.Wrapf("Error locking state: {{err}}", err) + } + if err := s.RefreshState(); err != nil { return nil, nil, errwrap.Wrapf("Error loading state: {{err}}", err) } diff --git a/backend/local/backend_plan.go b/backend/local/backend_plan.go index d2956e341..00c0a859d 100644 --- a/backend/local/backend_plan.go +++ b/backend/local/backend_plan.go @@ -10,7 +10,6 @@ import ( "github.com/hashicorp/errwrap" "github.com/hashicorp/terraform/backend" - "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/command/format" "github.com/hashicorp/terraform/config/module" "github.com/hashicorp/terraform/terraform" @@ -60,20 +59,6 @@ func (b *Local) opPlan( return } - if op.LockState { - lockCtx, cancel := context.WithTimeout(stopCtx, op.StateLockTimeout) - defer cancel() - - unlock, err := clistate.Lock(lockCtx, opState, op.Type.String(), "", b.CLI, b.Colorize()) - if err != nil { - runningOp.Err = errwrap.Wrapf("Error locking state: {{err}}", err) - return - } - defer func() { - runningOp.Err = unlock(runningOp.Err) - }() - } - // Setup the state runningOp.State = tfCtx.State() diff --git a/backend/local/backend_refresh.go b/backend/local/backend_refresh.go index a19aa9e5e..b5ec9aa6d 100644 --- a/backend/local/backend_refresh.go +++ b/backend/local/backend_refresh.go @@ -9,7 +9,6 @@ import ( "github.com/hashicorp/errwrap" "github.com/hashicorp/terraform/backend" - "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/config/module" "github.com/hashicorp/terraform/terraform" ) @@ -51,20 +50,6 @@ func (b *Local) opRefresh( return } - if op.LockState { - lockCtx, cancel := context.WithTimeout(stopCtx, op.StateLockTimeout) - defer cancel() - - unlock, err := clistate.Lock(lockCtx, opState, op.Type.String(), "", b.CLI, b.Colorize()) - if err != nil { - runningOp.Err = errwrap.Wrapf("Error locking state: {{err}}", err) - return - } - defer func() { - runningOp.Err = unlock(runningOp.Err) - }() - } - // Set our state runningOp.State = opState.State() if runningOp.State.Empty() || !runningOp.State.HasResources() { From 400f6ca4c540aee8cc4ffc17e2d6c2ce5d4959d5 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Fri, 23 Feb 2018 11:28:47 -0500 Subject: [PATCH 093/156] use the new clistate.Locker in commands Use the new StateLocker field to provide a wrapper for locking the state during terraform.Context creation in the commands that directly manipulate the state. --- command/meta_backend.go | 36 +++++++++------------------ command/meta_backend_migrate.go | 15 ++++++------ command/taint.go | 10 +++----- command/untaint.go | 9 +++---- command/workspace_delete.go | 43 ++++++++++++++++----------------- command/workspace_new.go | 9 +++---- 6 files changed, 49 insertions(+), 73 deletions(-) diff --git a/command/meta_backend.go b/command/meta_backend.go index 726f3b70c..1bee95339 100644 --- a/command/meta_backend.go +++ b/command/meta_backend.go @@ -583,14 +583,11 @@ func (m *Meta) backendFromPlan(opts *BackendOpts) (backend.Backend, error) { } if m.stateLock { - lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) - defer cancel() - - unlock, err := clistate.Lock(lockCtx, realMgr, "backend from plan", "", m.Ui, m.Colorize()) - if err != nil { + stateLocker := clistate.NewLocker(context.Background(), m.stateLockTimeout, m.Ui, m.Colorize()) + if err := stateLocker.Lock(realMgr, "backend from plan"); err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer unlock(nil) + defer stateLocker.Unlock(nil) } if err := realMgr.RefreshState(); err != nil { @@ -960,14 +957,11 @@ func (m *Meta) backend_C_r_s( } if m.stateLock { - lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) - defer cancel() - - unlock, err := clistate.Lock(lockCtx, sMgr, "backend from config", "", m.Ui, m.Colorize()) - if err != nil { + stateLocker := clistate.NewLocker(context.Background(), m.stateLockTimeout, m.Ui, m.Colorize()) + if err := stateLocker.Lock(sMgr, "backend from plan"); err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer unlock(nil) + defer stateLocker.Unlock(nil) } // Store the metadata in our saved state location @@ -1039,14 +1033,11 @@ func (m *Meta) backend_C_r_S_changed( } if m.stateLock { - lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) - defer cancel() - - unlock, err := clistate.Lock(lockCtx, sMgr, "backend from config", "", m.Ui, m.Colorize()) - if err != nil { + stateLocker := clistate.NewLocker(context.Background(), m.stateLockTimeout, m.Ui, m.Colorize()) + if err := stateLocker.Lock(sMgr, "backend from plan"); err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer unlock(nil) + defer stateLocker.Unlock(nil) } // Update the backend state @@ -1178,14 +1169,11 @@ func (m *Meta) backend_C_R_S_unchanged( } if m.stateLock { - lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) - defer cancel() - - unlock, err := clistate.Lock(lockCtx, sMgr, "backend from config", "", m.Ui, m.Colorize()) - if err != nil { + stateLocker := clistate.NewLocker(context.Background(), m.stateLockTimeout, m.Ui, m.Colorize()) + if err := stateLocker.Lock(sMgr, "backend from plan"); err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer unlock(nil) + defer stateLocker.Unlock(nil) } // Unset the remote state diff --git a/command/meta_backend_migrate.go b/command/meta_backend_migrate.go index be20a4476..0c3610a8a 100644 --- a/command/meta_backend_migrate.go +++ b/command/meta_backend_migrate.go @@ -233,20 +233,19 @@ func (m *Meta) backendMigrateState_s_s(opts *backendMigrateOpts) error { } if m.stateLock { - lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) - defer cancel() + lockCtx := context.Background() - unlockOne, err := clistate.Lock(lockCtx, stateOne, "migration", "source state", m.Ui, m.Colorize()) - if err != nil { + lockerOne := clistate.NewLocker(lockCtx, m.stateLockTimeout, m.Ui, m.Colorize()) + if err := lockerOne.Lock(stateOne, "migration source state"); err != nil { return fmt.Errorf("Error locking source state: %s", err) } - defer unlockOne(nil) + defer lockerOne.Unlock(nil) - unlockTwo, err := clistate.Lock(lockCtx, stateTwo, "migration", "destination state", m.Ui, m.Colorize()) - if err != nil { + lockerTwo := clistate.NewLocker(lockCtx, m.stateLockTimeout, m.Ui, m.Colorize()) + if err := lockerTwo.Lock(stateTwo, "migration destination state"); err != nil { return fmt.Errorf("Error locking destination state: %s", err) } - defer unlockTwo(nil) + defer lockerTwo.Unlock(nil) // We now own a lock, so double check that we have the version // corresponding to the lock. diff --git a/command/taint.go b/command/taint.go index c3d6c4cc9..4dc16e60c 100644 --- a/command/taint.go +++ b/command/taint.go @@ -83,16 +83,12 @@ func (c *TaintCommand) Run(args []string) int { } if c.stateLock { - lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) - defer cancel() - - unlock, err := clistate.Lock(lockCtx, st, "taint", "", c.Ui, c.Colorize()) - if err != nil { + stateLocker := clistate.NewLocker(context.Background(), c.stateLockTimeout, c.Ui, c.Colorize()) + if err := stateLocker.Lock(st, "taint"); err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 } - - defer unlock(nil) + defer stateLocker.Unlock(nil) } // Get the actual state structure diff --git a/command/untaint.go b/command/untaint.go index 9a2e43b24..39d047fd6 100644 --- a/command/untaint.go +++ b/command/untaint.go @@ -71,15 +71,12 @@ func (c *UntaintCommand) Run(args []string) int { } if c.stateLock { - lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) - defer cancel() - - unlock, err := clistate.Lock(lockCtx, st, "untaint", "", c.Ui, c.Colorize()) - if err != nil { + stateLocker := clistate.NewLocker(context.Background(), c.stateLockTimeout, c.Ui, c.Colorize()) + if err := stateLocker.Lock(st, "untaint"); err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 } - defer unlock(nil) + defer stateLocker.Unlock(nil) } // Get the actual state structure diff --git a/command/workspace_delete.go b/command/workspace_delete.go index 8a9f792e1..1e1eb1182 100644 --- a/command/workspace_delete.go +++ b/command/workspace_delete.go @@ -96,6 +96,17 @@ func (c *WorkspaceDeleteCommand) Run(args []string) int { return 1 } + var stateLocker clistate.Locker + if c.stateLock { + stateLocker = clistate.NewLocker(context.Background(), c.stateLockTimeout, c.Ui, c.Colorize()) + if err := stateLocker.Lock(sMgr, "workspace_delete"); err != nil { + c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) + return 1 + } + } else { + stateLocker = clistate.NewNoopLocker() + } + if err := sMgr.RefreshState(); err != nil { c.Ui.Error(err.Error()) return 1 @@ -108,28 +119,16 @@ func (c *WorkspaceDeleteCommand) Run(args []string) int { return 1 } - // Honor the lock request, for consistency and one final safety check. - if c.stateLock { - lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) - defer cancel() - - unlock, err := clistate.Lock(lockCtx, sMgr, "workspace delete", "", c.Ui, c.Colorize()) - if err != nil { - c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) - return 1 - } - - // We need to release the lock just before deleting the state, in case - // the backend can't remove the resource while holding the lock. This - // is currently true for Windows local files. - // - // TODO: While there is little safety in locking while deleting the - // state, it might be nice to be able to coordinate processes around - // state deletion, i.e. in a CI environment. Adding Delete() as a - // required method of States would allow the removal of the resource to - // be delegated from the Backend to the State itself. - unlock(nil) - } + // We need to release the lock just before deleting the state, in case + // the backend can't remove the resource while holding the lock. This + // is currently true for Windows local files. + // + // TODO: While there is little safety in locking while deleting the + // state, it might be nice to be able to coordinate processes around + // state deletion, i.e. in a CI environment. Adding Delete() as a + // required method of States would allow the removal of the resource to + // be delegated from the Backend to the State itself. + stateLocker.Unlock(nil) err = b.DeleteState(delEnv) if err != nil { diff --git a/command/workspace_new.go b/command/workspace_new.go index 430ecc58b..810a776fc 100644 --- a/command/workspace_new.go +++ b/command/workspace_new.go @@ -114,15 +114,12 @@ func (c *WorkspaceNewCommand) Run(args []string) int { } if c.stateLock { - lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) - defer cancel() - - unlock, err := clistate.Lock(lockCtx, sMgr, "workspace_new", "", c.Ui, c.Colorize()) - if err != nil { + stateLocker := clistate.NewLocker(context.Background(), c.stateLockTimeout, c.Ui, c.Colorize()) + if err := stateLocker.Lock(sMgr, "workspace_delete"); err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 } - defer unlock(nil) + defer stateLocker.Unlock(nil) } // read the existing state file From 3de0d24554fc79d688b5f0dfa9f8ec86b87d2902 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Fri, 23 Feb 2018 11:31:06 -0500 Subject: [PATCH 094/156] Revert "use the new clistate.Locker in commands" This reverts commit 400f6ca4c540aee8cc4ffc17e2d6c2ce5d4959d5. --- command/meta_backend.go | 36 ++++++++++++++++++--------- command/meta_backend_migrate.go | 15 ++++++------ command/taint.go | 10 +++++--- command/untaint.go | 9 ++++--- command/workspace_delete.go | 43 +++++++++++++++++---------------- command/workspace_new.go | 9 ++++--- 6 files changed, 73 insertions(+), 49 deletions(-) diff --git a/command/meta_backend.go b/command/meta_backend.go index 1bee95339..726f3b70c 100644 --- a/command/meta_backend.go +++ b/command/meta_backend.go @@ -583,11 +583,14 @@ func (m *Meta) backendFromPlan(opts *BackendOpts) (backend.Backend, error) { } if m.stateLock { - stateLocker := clistate.NewLocker(context.Background(), m.stateLockTimeout, m.Ui, m.Colorize()) - if err := stateLocker.Lock(realMgr, "backend from plan"); err != nil { + lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) + defer cancel() + + unlock, err := clistate.Lock(lockCtx, realMgr, "backend from plan", "", m.Ui, m.Colorize()) + if err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer stateLocker.Unlock(nil) + defer unlock(nil) } if err := realMgr.RefreshState(); err != nil { @@ -957,11 +960,14 @@ func (m *Meta) backend_C_r_s( } if m.stateLock { - stateLocker := clistate.NewLocker(context.Background(), m.stateLockTimeout, m.Ui, m.Colorize()) - if err := stateLocker.Lock(sMgr, "backend from plan"); err != nil { + lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) + defer cancel() + + unlock, err := clistate.Lock(lockCtx, sMgr, "backend from config", "", m.Ui, m.Colorize()) + if err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer stateLocker.Unlock(nil) + defer unlock(nil) } // Store the metadata in our saved state location @@ -1033,11 +1039,14 @@ func (m *Meta) backend_C_r_S_changed( } if m.stateLock { - stateLocker := clistate.NewLocker(context.Background(), m.stateLockTimeout, m.Ui, m.Colorize()) - if err := stateLocker.Lock(sMgr, "backend from plan"); err != nil { + lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) + defer cancel() + + unlock, err := clistate.Lock(lockCtx, sMgr, "backend from config", "", m.Ui, m.Colorize()) + if err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer stateLocker.Unlock(nil) + defer unlock(nil) } // Update the backend state @@ -1169,11 +1178,14 @@ func (m *Meta) backend_C_R_S_unchanged( } if m.stateLock { - stateLocker := clistate.NewLocker(context.Background(), m.stateLockTimeout, m.Ui, m.Colorize()) - if err := stateLocker.Lock(sMgr, "backend from plan"); err != nil { + lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) + defer cancel() + + unlock, err := clistate.Lock(lockCtx, sMgr, "backend from config", "", m.Ui, m.Colorize()) + if err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer stateLocker.Unlock(nil) + defer unlock(nil) } // Unset the remote state diff --git a/command/meta_backend_migrate.go b/command/meta_backend_migrate.go index 0c3610a8a..be20a4476 100644 --- a/command/meta_backend_migrate.go +++ b/command/meta_backend_migrate.go @@ -233,19 +233,20 @@ func (m *Meta) backendMigrateState_s_s(opts *backendMigrateOpts) error { } if m.stateLock { - lockCtx := context.Background() + lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) + defer cancel() - lockerOne := clistate.NewLocker(lockCtx, m.stateLockTimeout, m.Ui, m.Colorize()) - if err := lockerOne.Lock(stateOne, "migration source state"); err != nil { + unlockOne, err := clistate.Lock(lockCtx, stateOne, "migration", "source state", m.Ui, m.Colorize()) + if err != nil { return fmt.Errorf("Error locking source state: %s", err) } - defer lockerOne.Unlock(nil) + defer unlockOne(nil) - lockerTwo := clistate.NewLocker(lockCtx, m.stateLockTimeout, m.Ui, m.Colorize()) - if err := lockerTwo.Lock(stateTwo, "migration destination state"); err != nil { + unlockTwo, err := clistate.Lock(lockCtx, stateTwo, "migration", "destination state", m.Ui, m.Colorize()) + if err != nil { return fmt.Errorf("Error locking destination state: %s", err) } - defer lockerTwo.Unlock(nil) + defer unlockTwo(nil) // We now own a lock, so double check that we have the version // corresponding to the lock. diff --git a/command/taint.go b/command/taint.go index 4dc16e60c..c3d6c4cc9 100644 --- a/command/taint.go +++ b/command/taint.go @@ -83,12 +83,16 @@ func (c *TaintCommand) Run(args []string) int { } if c.stateLock { - stateLocker := clistate.NewLocker(context.Background(), c.stateLockTimeout, c.Ui, c.Colorize()) - if err := stateLocker.Lock(st, "taint"); err != nil { + lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) + defer cancel() + + unlock, err := clistate.Lock(lockCtx, st, "taint", "", c.Ui, c.Colorize()) + if err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 } - defer stateLocker.Unlock(nil) + + defer unlock(nil) } // Get the actual state structure diff --git a/command/untaint.go b/command/untaint.go index 39d047fd6..9a2e43b24 100644 --- a/command/untaint.go +++ b/command/untaint.go @@ -71,12 +71,15 @@ func (c *UntaintCommand) Run(args []string) int { } if c.stateLock { - stateLocker := clistate.NewLocker(context.Background(), c.stateLockTimeout, c.Ui, c.Colorize()) - if err := stateLocker.Lock(st, "untaint"); err != nil { + lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) + defer cancel() + + unlock, err := clistate.Lock(lockCtx, st, "untaint", "", c.Ui, c.Colorize()) + if err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 } - defer stateLocker.Unlock(nil) + defer unlock(nil) } // Get the actual state structure diff --git a/command/workspace_delete.go b/command/workspace_delete.go index 1e1eb1182..8a9f792e1 100644 --- a/command/workspace_delete.go +++ b/command/workspace_delete.go @@ -96,17 +96,6 @@ func (c *WorkspaceDeleteCommand) Run(args []string) int { return 1 } - var stateLocker clistate.Locker - if c.stateLock { - stateLocker = clistate.NewLocker(context.Background(), c.stateLockTimeout, c.Ui, c.Colorize()) - if err := stateLocker.Lock(sMgr, "workspace_delete"); err != nil { - c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) - return 1 - } - } else { - stateLocker = clistate.NewNoopLocker() - } - if err := sMgr.RefreshState(); err != nil { c.Ui.Error(err.Error()) return 1 @@ -119,16 +108,28 @@ func (c *WorkspaceDeleteCommand) Run(args []string) int { return 1 } - // We need to release the lock just before deleting the state, in case - // the backend can't remove the resource while holding the lock. This - // is currently true for Windows local files. - // - // TODO: While there is little safety in locking while deleting the - // state, it might be nice to be able to coordinate processes around - // state deletion, i.e. in a CI environment. Adding Delete() as a - // required method of States would allow the removal of the resource to - // be delegated from the Backend to the State itself. - stateLocker.Unlock(nil) + // Honor the lock request, for consistency and one final safety check. + if c.stateLock { + lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) + defer cancel() + + unlock, err := clistate.Lock(lockCtx, sMgr, "workspace delete", "", c.Ui, c.Colorize()) + if err != nil { + c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) + return 1 + } + + // We need to release the lock just before deleting the state, in case + // the backend can't remove the resource while holding the lock. This + // is currently true for Windows local files. + // + // TODO: While there is little safety in locking while deleting the + // state, it might be nice to be able to coordinate processes around + // state deletion, i.e. in a CI environment. Adding Delete() as a + // required method of States would allow the removal of the resource to + // be delegated from the Backend to the State itself. + unlock(nil) + } err = b.DeleteState(delEnv) if err != nil { diff --git a/command/workspace_new.go b/command/workspace_new.go index 810a776fc..430ecc58b 100644 --- a/command/workspace_new.go +++ b/command/workspace_new.go @@ -114,12 +114,15 @@ func (c *WorkspaceNewCommand) Run(args []string) int { } if c.stateLock { - stateLocker := clistate.NewLocker(context.Background(), c.stateLockTimeout, c.Ui, c.Colorize()) - if err := stateLocker.Lock(sMgr, "workspace_delete"); err != nil { + lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) + defer cancel() + + unlock, err := clistate.Lock(lockCtx, sMgr, "workspace_new", "", c.Ui, c.Colorize()) + if err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 } - defer stateLocker.Unlock(nil) + defer unlock(nil) } // read the existing state file From 1d9adc3b7216cdaa23455100c859fbcb084b8c02 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Fri, 23 Feb 2018 11:31:10 -0500 Subject: [PATCH 095/156] Revert "use the new clistate.Locker in the local backend" This reverts commit 0b804a9686b1d56446bd1cab2f201022d0f4ad5d. --- backend/local/backend.go | 10 ---------- backend/local/backend_apply.go | 15 +++++++++++++++ backend/local/backend_local.go | 12 ------------ backend/local/backend_plan.go | 15 +++++++++++++++ backend/local/backend_refresh.go | 15 +++++++++++++++ 5 files changed, 45 insertions(+), 22 deletions(-) diff --git a/backend/local/backend.go b/backend/local/backend.go index b0aae720e..b42aedb17 100644 --- a/backend/local/backend.go +++ b/backend/local/backend.go @@ -13,7 +13,6 @@ import ( "sync" "github.com/hashicorp/terraform/backend" - "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/helper/schema" "github.com/hashicorp/terraform/state" "github.com/hashicorp/terraform/terraform" @@ -261,21 +260,12 @@ func (b *Local) Operation(ctx context.Context, op *backend.Operation) (*backend. cancelCtx, cancel := context.WithCancel(context.Background()) runningOp.Cancel = cancel - if op.LockState { - op.StateLocker = clistate.NewLocker(stopCtx, op.StateLockTimeout, b.CLI, b.Colorize()) - } else { - op.StateLocker = clistate.NewNoopLocker() - } - // Do it go func() { defer done() defer stop() defer cancel() - // the state was locked during context creation, unlock the state when - // the operation completes - defer op.StateLocker.Unlock(runningOp.Err) defer b.opLock.Unlock() f(stopCtx, cancelCtx, op, runningOp) }() diff --git a/backend/local/backend_apply.go b/backend/local/backend_apply.go index 102d40c39..8a97fc829 100644 --- a/backend/local/backend_apply.go +++ b/backend/local/backend_apply.go @@ -11,6 +11,7 @@ import ( "github.com/hashicorp/errwrap" "github.com/hashicorp/go-multierror" "github.com/hashicorp/terraform/backend" + "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/command/format" "github.com/hashicorp/terraform/config/module" "github.com/hashicorp/terraform/state" @@ -54,6 +55,20 @@ func (b *Local) opApply( return } + if op.LockState { + lockCtx, cancel := context.WithTimeout(stopCtx, op.StateLockTimeout) + defer cancel() + + unlock, err := clistate.Lock(lockCtx, opState, op.Type.String(), "", b.CLI, b.Colorize()) + if err != nil { + runningOp.Err = errwrap.Wrapf("Error locking state: {{err}}", err) + return + } + defer func() { + runningOp.Err = unlock(runningOp.Err) + }() + } + // Setup the state runningOp.State = tfCtx.State() diff --git a/backend/local/backend_local.go b/backend/local/backend_local.go index d26fefa57..aa056a1a1 100644 --- a/backend/local/backend_local.go +++ b/backend/local/backend_local.go @@ -1,11 +1,9 @@ package local import ( - "context" "errors" "log" - "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/command/format" "github.com/hashicorp/terraform/tfdiags" @@ -22,12 +20,6 @@ func (b *Local) Context(op *backend.Operation) (*terraform.Context, state.State, // to ask for input/validate. op.Type = backend.OperationTypeInvalid - if op.LockState { - op.StateLocker = clistate.NewLocker(context.Background(), op.StateLockTimeout, b.CLI, b.Colorize()) - } else { - op.StateLocker = clistate.NewNoopLocker() - } - return b.context(op) } @@ -38,10 +30,6 @@ func (b *Local) context(op *backend.Operation) (*terraform.Context, state.State, return nil, nil, errwrap.Wrapf("Error loading state: {{err}}", err) } - if err := op.StateLocker.Lock(s, op.Type.String()); err != nil { - return nil, nil, errwrap.Wrapf("Error locking state: {{err}}", err) - } - if err := s.RefreshState(); err != nil { return nil, nil, errwrap.Wrapf("Error loading state: {{err}}", err) } diff --git a/backend/local/backend_plan.go b/backend/local/backend_plan.go index 00c0a859d..d2956e341 100644 --- a/backend/local/backend_plan.go +++ b/backend/local/backend_plan.go @@ -10,6 +10,7 @@ import ( "github.com/hashicorp/errwrap" "github.com/hashicorp/terraform/backend" + "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/command/format" "github.com/hashicorp/terraform/config/module" "github.com/hashicorp/terraform/terraform" @@ -59,6 +60,20 @@ func (b *Local) opPlan( return } + if op.LockState { + lockCtx, cancel := context.WithTimeout(stopCtx, op.StateLockTimeout) + defer cancel() + + unlock, err := clistate.Lock(lockCtx, opState, op.Type.String(), "", b.CLI, b.Colorize()) + if err != nil { + runningOp.Err = errwrap.Wrapf("Error locking state: {{err}}", err) + return + } + defer func() { + runningOp.Err = unlock(runningOp.Err) + }() + } + // Setup the state runningOp.State = tfCtx.State() diff --git a/backend/local/backend_refresh.go b/backend/local/backend_refresh.go index b5ec9aa6d..a19aa9e5e 100644 --- a/backend/local/backend_refresh.go +++ b/backend/local/backend_refresh.go @@ -9,6 +9,7 @@ import ( "github.com/hashicorp/errwrap" "github.com/hashicorp/terraform/backend" + "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/config/module" "github.com/hashicorp/terraform/terraform" ) @@ -50,6 +51,20 @@ func (b *Local) opRefresh( return } + if op.LockState { + lockCtx, cancel := context.WithTimeout(stopCtx, op.StateLockTimeout) + defer cancel() + + unlock, err := clistate.Lock(lockCtx, opState, op.Type.String(), "", b.CLI, b.Colorize()) + if err != nil { + runningOp.Err = errwrap.Wrapf("Error locking state: {{err}}", err) + return + } + defer func() { + runningOp.Err = unlock(runningOp.Err) + }() + } + // Set our state runningOp.State = opState.State() if runningOp.State.Empty() || !runningOp.State.HasResources() { From 626c5ed6721f358bc7f340d4f86bcb3f58555e49 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Fri, 23 Feb 2018 11:31:12 -0500 Subject: [PATCH 096/156] Revert "add backend.Operation.StateLocker" This reverts commit d3f7edeb272a9de29166384aea52e9bd12dbbaf4. --- backend/backend.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/backend/backend.go b/backend/backend.go index dfeb80ef6..f67d60ab6 100644 --- a/backend/backend.go +++ b/backend/backend.go @@ -9,7 +9,6 @@ import ( "errors" "time" - "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/config/module" "github.com/hashicorp/terraform/state" "github.com/hashicorp/terraform/terraform" @@ -136,10 +135,6 @@ type Operation struct { // state.Lockers for its duration, and Unlock when complete. LockState bool - // StateLocker is used to lock the state while providing UI feedback to the - // user. This will be supplied by the Backend itself. - StateLocker clistate.Locker - // The duration to retry obtaining a State lock. StateLockTimeout time.Duration From 12bda53558ed47c43671a8719a5d0ce796fa07ac Mon Sep 17 00:00:00 2001 From: James Bardin Date: Fri, 23 Feb 2018 11:31:13 -0500 Subject: [PATCH 097/156] Revert "create clistate.Locker interface" This reverts commit e88bd74bb70801564ba1ffa6e52ecbab78ce8f15. --- backend/local/backend_apply.go | 9 +- backend/local/backend_plan.go | 11 ++- backend/local/backend_refresh.go | 11 ++- backend/remote-state/consul/client.go | 5 -- command/clistate/state.go | 114 +++++--------------------- command/meta_backend.go | 32 ++++++-- command/meta_backend_migrate.go | 16 +++- command/taint.go | 7 +- command/untaint.go | 8 +- command/workspace_delete.go | 8 +- command/workspace_new.go | 8 +- 11 files changed, 104 insertions(+), 125 deletions(-) diff --git a/backend/local/backend_apply.go b/backend/local/backend_apply.go index 8a97fc829..da8c684bc 100644 --- a/backend/local/backend_apply.go +++ b/backend/local/backend_apply.go @@ -59,13 +59,18 @@ func (b *Local) opApply( lockCtx, cancel := context.WithTimeout(stopCtx, op.StateLockTimeout) defer cancel() - unlock, err := clistate.Lock(lockCtx, opState, op.Type.String(), "", b.CLI, b.Colorize()) + lockInfo := state.NewLockInfo() + lockInfo.Operation = op.Type.String() + lockID, err := clistate.Lock(lockCtx, opState, lockInfo, b.CLI, b.Colorize()) if err != nil { runningOp.Err = errwrap.Wrapf("Error locking state: {{err}}", err) return } + defer func() { - runningOp.Err = unlock(runningOp.Err) + if err := clistate.Unlock(opState, lockID, b.CLI, b.Colorize()); err != nil { + runningOp.Err = multierror.Append(runningOp.Err, err) + } }() } diff --git a/backend/local/backend_plan.go b/backend/local/backend_plan.go index d2956e341..ebf053192 100644 --- a/backend/local/backend_plan.go +++ b/backend/local/backend_plan.go @@ -9,10 +9,12 @@ import ( "strings" "github.com/hashicorp/errwrap" + "github.com/hashicorp/go-multierror" "github.com/hashicorp/terraform/backend" "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/command/format" "github.com/hashicorp/terraform/config/module" + "github.com/hashicorp/terraform/state" "github.com/hashicorp/terraform/terraform" ) @@ -64,13 +66,18 @@ func (b *Local) opPlan( lockCtx, cancel := context.WithTimeout(stopCtx, op.StateLockTimeout) defer cancel() - unlock, err := clistate.Lock(lockCtx, opState, op.Type.String(), "", b.CLI, b.Colorize()) + lockInfo := state.NewLockInfo() + lockInfo.Operation = op.Type.String() + lockID, err := clistate.Lock(lockCtx, opState, lockInfo, b.CLI, b.Colorize()) if err != nil { runningOp.Err = errwrap.Wrapf("Error locking state: {{err}}", err) return } + defer func() { - runningOp.Err = unlock(runningOp.Err) + if err := clistate.Unlock(opState, lockID, b.CLI, b.Colorize()); err != nil { + runningOp.Err = multierror.Append(runningOp.Err, err) + } }() } diff --git a/backend/local/backend_refresh.go b/backend/local/backend_refresh.go index a19aa9e5e..959f969a3 100644 --- a/backend/local/backend_refresh.go +++ b/backend/local/backend_refresh.go @@ -8,9 +8,11 @@ import ( "strings" "github.com/hashicorp/errwrap" + "github.com/hashicorp/go-multierror" "github.com/hashicorp/terraform/backend" "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/config/module" + "github.com/hashicorp/terraform/state" "github.com/hashicorp/terraform/terraform" ) @@ -55,13 +57,18 @@ func (b *Local) opRefresh( lockCtx, cancel := context.WithTimeout(stopCtx, op.StateLockTimeout) defer cancel() - unlock, err := clistate.Lock(lockCtx, opState, op.Type.String(), "", b.CLI, b.Colorize()) + lockInfo := state.NewLockInfo() + lockInfo.Operation = op.Type.String() + lockID, err := clistate.Lock(lockCtx, opState, lockInfo, b.CLI, b.Colorize()) if err != nil { runningOp.Err = errwrap.Wrapf("Error locking state: {{err}}", err) return } + defer func() { - runningOp.Err = unlock(runningOp.Err) + if err := clistate.Unlock(opState, lockID, b.CLI, b.Colorize()); err != nil { + runningOp.Err = multierror.Append(runningOp.Err, err) + } }() } diff --git a/backend/remote-state/consul/client.go b/backend/remote-state/consul/client.go index 8ccb1814e..bd37712f3 100644 --- a/backend/remote-state/consul/client.go +++ b/backend/remote-state/consul/client.go @@ -9,7 +9,6 @@ import ( "errors" "fmt" "log" - "runtime/debug" "sync" "time" @@ -82,9 +81,6 @@ func (c *RemoteClient) Get() (*remote.Payload, error) { c.modifyIndex = pair.ModifyIndex - log.Println("[XXXX] GOT STATE WITH INDEX:", c.modifyIndex) - log.Println(string(debug.Stack())) - payload := pair.Value // If the payload starts with 0x1f, it's gzip, not json if len(pair.Value) >= 1 && pair.Value[0] == '\x1f' { @@ -284,7 +280,6 @@ func (c *RemoteClient) lock() (string, error) { return "", lockErr } - defer log.Println("[XXXX] OBTAINED CONSUL LOCK") c.lockCh = lockCh err = c.putLockInfo(c.info) diff --git a/command/clistate/state.go b/command/clistate/state.go index 9bd9fe940..f02f053be 100644 --- a/command/clistate/state.go +++ b/command/clistate/state.go @@ -8,11 +8,9 @@ import ( "context" "fmt" "strings" - "sync" "time" "github.com/hashicorp/errwrap" - multierror "github.com/hashicorp/go-multierror" "github.com/hashicorp/terraform/helper/slowmessage" "github.com/hashicorp/terraform/state" "github.com/mitchellh/cli" @@ -50,119 +48,47 @@ that no one else is holding a lock. ` ) -// Locker allows for more convenient locking, by creating the timeout context -// and LockInfo for the caller, while storing any related data required for -// Unlock. -type Locker interface { - // Lock the provided state, storing the reason string in the LockInfo. - Lock(s state.State, reason string) error - // Unlock the previously locked state. - // An optional error can be passed in, and will be combined with any error - // from the Unlock operation. - Unlock(error) error -} - -type locker struct { - mu sync.Mutex - ctx context.Context - timeout time.Duration - state state.State - ui cli.Ui - color *colorstring.Colorize - lockID string -} - -// Create a new Locker. -// The provided context will be used for lock cancellation, and combined with -// the timeout duration. Lock progress will be be reported to the user through -// the provided UI. -func NewLocker( - ctx context.Context, - timeout time.Duration, - ui cli.Ui, - color *colorstring.Colorize) Locker { - - l := &locker{ - ctx: ctx, - timeout: timeout, - ui: ui, - color: color, - } - return l -} - -// Locker locks the given state and outputs to the user if locking is taking -// longer than the threshold. The lock is retried until the context is -// cancelled. -func (l *locker) Lock(s state.State, reason string) error { - l.mu.Lock() - defer l.mu.Unlock() - - l.state = s - - ctx, cancel := context.WithTimeout(l.ctx, l.timeout) - defer cancel() - - lockInfo := state.NewLockInfo() - lockInfo.Operation = reason +// Lock locks the given state and outputs to the user if locking +// is taking longer than the threshold. The lock is retried until the context +// is cancelled. +func Lock(ctx context.Context, s state.State, info *state.LockInfo, ui cli.Ui, color *colorstring.Colorize) (string, error) { + var lockID string err := slowmessage.Do(LockThreshold, func() error { - id, err := state.LockWithContext(ctx, s, lockInfo) - l.lockID = id + id, err := state.LockWithContext(ctx, s, info) + lockID = id return err }, func() { - if l.ui != nil { - l.ui.Output(l.color.Color(LockMessage)) + if ui != nil { + ui.Output(color.Color(LockMessage)) } }) if err != nil { - return errwrap.Wrapf(strings.TrimSpace(LockErrorMessage), err) + err = errwrap.Wrapf(strings.TrimSpace(LockErrorMessage), err) } - return nil + return lockID, err } -func (l *locker) Unlock(parentErr error) error { - l.mu.Lock() - defer l.mu.Unlock() - - if l.lockID == "" { - return parentErr - } - +// Unlock unlocks the given state and outputs to the user if the +// unlock fails what can be done. +func Unlock(s state.State, id string, ui cli.Ui, color *colorstring.Colorize) error { err := slowmessage.Do(LockThreshold, func() error { - return l.state.Unlock(l.lockID) + return s.Unlock(id) }, func() { - if l.ui != nil { - l.ui.Output(l.color.Color(UnlockMessage)) + if ui != nil { + ui.Output(color.Color(UnlockMessage)) } }) if err != nil { - l.ui.Output(l.color.Color(fmt.Sprintf( + ui.Output(color.Color(fmt.Sprintf( "\n"+strings.TrimSpace(UnlockErrorMessage)+"\n", err))) - if parentErr != nil { - parentErr = multierror.Append(parentErr, err) - } + err = fmt.Errorf( + "Error releasing the state lock. Please see the longer error message above.") } - return parentErr - -} - -type noopLocker struct{} - -// NewNoopLocker returns a valid Locker that does nothing. -func NewNoopLocker() Locker { - return noopLocker{} -} - -func (l noopLocker) Lock(state.State, string) error { - return nil -} - -func (l noopLocker) Unlock(err error) error { return err } diff --git a/command/meta_backend.go b/command/meta_backend.go index 726f3b70c..2fa4ff542 100644 --- a/command/meta_backend.go +++ b/command/meta_backend.go @@ -586,11 +586,15 @@ func (m *Meta) backendFromPlan(opts *BackendOpts) (backend.Backend, error) { lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) defer cancel() - unlock, err := clistate.Lock(lockCtx, realMgr, "backend from plan", "", m.Ui, m.Colorize()) + // Lock the state if we can + lockInfo := state.NewLockInfo() + lockInfo.Operation = "backend from plan" + + lockID, err := clistate.Lock(lockCtx, realMgr, lockInfo, m.Ui, m.Colorize()) if err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer unlock(nil) + defer clistate.Unlock(realMgr, lockID, m.Ui, m.Colorize()) } if err := realMgr.RefreshState(); err != nil { @@ -963,11 +967,15 @@ func (m *Meta) backend_C_r_s( lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) defer cancel() - unlock, err := clistate.Lock(lockCtx, sMgr, "backend from config", "", m.Ui, m.Colorize()) + // Lock the state if we can + lockInfo := state.NewLockInfo() + lockInfo.Operation = "backend from config" + + lockID, err := clistate.Lock(lockCtx, sMgr, lockInfo, m.Ui, m.Colorize()) if err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer unlock(nil) + defer clistate.Unlock(sMgr, lockID, m.Ui, m.Colorize()) } // Store the metadata in our saved state location @@ -1042,11 +1050,15 @@ func (m *Meta) backend_C_r_S_changed( lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) defer cancel() - unlock, err := clistate.Lock(lockCtx, sMgr, "backend from config", "", m.Ui, m.Colorize()) + // Lock the state if we can + lockInfo := state.NewLockInfo() + lockInfo.Operation = "backend from config" + + lockID, err := clistate.Lock(lockCtx, sMgr, lockInfo, m.Ui, m.Colorize()) if err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer unlock(nil) + defer clistate.Unlock(sMgr, lockID, m.Ui, m.Colorize()) } // Update the backend state @@ -1181,11 +1193,15 @@ func (m *Meta) backend_C_R_S_unchanged( lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) defer cancel() - unlock, err := clistate.Lock(lockCtx, sMgr, "backend from config", "", m.Ui, m.Colorize()) + // Lock the state if we can + lockInfo := state.NewLockInfo() + lockInfo.Operation = "backend from config" + + lockID, err := clistate.Lock(lockCtx, sMgr, lockInfo, m.Ui, m.Colorize()) if err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer unlock(nil) + defer clistate.Unlock(sMgr, lockID, m.Ui, m.Colorize()) } // Unset the remote state diff --git a/command/meta_backend_migrate.go b/command/meta_backend_migrate.go index be20a4476..7f60a6605 100644 --- a/command/meta_backend_migrate.go +++ b/command/meta_backend_migrate.go @@ -236,17 +236,25 @@ func (m *Meta) backendMigrateState_s_s(opts *backendMigrateOpts) error { lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) defer cancel() - unlockOne, err := clistate.Lock(lockCtx, stateOne, "migration", "source state", m.Ui, m.Colorize()) + lockInfoOne := state.NewLockInfo() + lockInfoOne.Operation = "migration" + lockInfoOne.Info = "source state" + + lockIDOne, err := clistate.Lock(lockCtx, stateOne, lockInfoOne, m.Ui, m.Colorize()) if err != nil { return fmt.Errorf("Error locking source state: %s", err) } - defer unlockOne(nil) + defer clistate.Unlock(stateOne, lockIDOne, m.Ui, m.Colorize()) - unlockTwo, err := clistate.Lock(lockCtx, stateTwo, "migration", "destination state", m.Ui, m.Colorize()) + lockInfoTwo := state.NewLockInfo() + lockInfoTwo.Operation = "migration" + lockInfoTwo.Info = "destination state" + + lockIDTwo, err := clistate.Lock(lockCtx, stateTwo, lockInfoTwo, m.Ui, m.Colorize()) if err != nil { return fmt.Errorf("Error locking destination state: %s", err) } - defer unlockTwo(nil) + defer clistate.Unlock(stateTwo, lockIDTwo, m.Ui, m.Colorize()) // We now own a lock, so double check that we have the version // corresponding to the lock. diff --git a/command/taint.go b/command/taint.go index c3d6c4cc9..626f88a46 100644 --- a/command/taint.go +++ b/command/taint.go @@ -7,6 +7,7 @@ import ( "strings" "github.com/hashicorp/terraform/command/clistate" + "github.com/hashicorp/terraform/state" "github.com/hashicorp/terraform/terraform" ) @@ -86,13 +87,15 @@ func (c *TaintCommand) Run(args []string) int { lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) defer cancel() - unlock, err := clistate.Lock(lockCtx, st, "taint", "", c.Ui, c.Colorize()) + lockInfo := state.NewLockInfo() + lockInfo.Operation = "taint" + lockID, err := clistate.Lock(lockCtx, st, lockInfo, c.Ui, c.Colorize()) if err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 } - defer unlock(nil) + defer clistate.Unlock(st, lockID, c.Ui, c.Colorize()) } // Get the actual state structure diff --git a/command/untaint.go b/command/untaint.go index 9a2e43b24..1eca20277 100644 --- a/command/untaint.go +++ b/command/untaint.go @@ -7,6 +7,7 @@ import ( "strings" "github.com/hashicorp/terraform/command/clistate" + "github.com/hashicorp/terraform/state" ) // UntaintCommand is a cli.Command implementation that manually untaints @@ -74,12 +75,15 @@ func (c *UntaintCommand) Run(args []string) int { lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) defer cancel() - unlock, err := clistate.Lock(lockCtx, st, "untaint", "", c.Ui, c.Colorize()) + lockInfo := state.NewLockInfo() + lockInfo.Operation = "untaint" + lockID, err := clistate.Lock(lockCtx, st, lockInfo, c.Ui, c.Colorize()) if err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 } - defer unlock(nil) + + defer clistate.Unlock(st, lockID, c.Ui, c.Colorize()) } // Get the actual state structure diff --git a/command/workspace_delete.go b/command/workspace_delete.go index 8a9f792e1..99dac86d3 100644 --- a/command/workspace_delete.go +++ b/command/workspace_delete.go @@ -6,6 +6,7 @@ import ( "strings" "github.com/hashicorp/terraform/command/clistate" + "github.com/hashicorp/terraform/state" "github.com/mitchellh/cli" "github.com/posener/complete" ) @@ -113,7 +114,10 @@ func (c *WorkspaceDeleteCommand) Run(args []string) int { lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) defer cancel() - unlock, err := clistate.Lock(lockCtx, sMgr, "workspace delete", "", c.Ui, c.Colorize()) + // Lock the state if we can + lockInfo := state.NewLockInfo() + lockInfo.Operation = "workspace delete" + lockID, err := clistate.Lock(lockCtx, sMgr, lockInfo, c.Ui, c.Colorize()) if err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 @@ -128,7 +132,7 @@ func (c *WorkspaceDeleteCommand) Run(args []string) int { // state deletion, i.e. in a CI environment. Adding Delete() as a // required method of States would allow the removal of the resource to // be delegated from the Backend to the State itself. - unlock(nil) + clistate.Unlock(sMgr, lockID, c.Ui, c.Colorize()) } err = b.DeleteState(delEnv) diff --git a/command/workspace_new.go b/command/workspace_new.go index 430ecc58b..71c9fdc1f 100644 --- a/command/workspace_new.go +++ b/command/workspace_new.go @@ -7,6 +7,7 @@ import ( "strings" "github.com/hashicorp/terraform/command/clistate" + "github.com/hashicorp/terraform/state" "github.com/hashicorp/terraform/terraform" "github.com/mitchellh/cli" "github.com/posener/complete" @@ -117,12 +118,15 @@ func (c *WorkspaceNewCommand) Run(args []string) int { lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) defer cancel() - unlock, err := clistate.Lock(lockCtx, sMgr, "workspace_new", "", c.Ui, c.Colorize()) + // Lock the state if we can + lockInfo := state.NewLockInfo() + lockInfo.Operation = "workspace new" + lockID, err := clistate.Lock(lockCtx, sMgr, lockInfo, c.Ui, c.Colorize()) if err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 } - defer unlock(nil) + defer clistate.Unlock(sMgr, lockID, c.Ui, c.Colorize()) } // read the existing state file From 9cf5350590ab25e8f2b51a69f9136f11d97369a0 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Fri, 23 Feb 2018 10:50:18 -0800 Subject: [PATCH 098/156] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5660db0f4..e37175910 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ IMPROVEMENTS: * core: https URLs are now supported in the HTTP_PROXY environment variable [go1.10:net/http](https://golang.org/doc/go1.10#net/http) -* connection/ssh: Add support for host key verifiation [GH-17354} +* connection/ssh: Add support for host key verifiation [GH-17354] * backend/s3: add support for the cn-northwest-1 region [GH-17216] * provisioner/habitat: Detect if hab user exists and only create if necessary [GH-17195] * provisioner/habitat: Allow custom service name [GH-17196] From e9a76808df4cc3eaa629969b1a2eb3d7448698dc Mon Sep 17 00:00:00 2001 From: James Bardin Date: Thu, 22 Feb 2018 20:43:21 -0500 Subject: [PATCH 099/156] create clistate.Locker interface Simplify the use of clistate.Lock by creating a clistate.Locker instance, which stores the context of locking a state, to allow unlock to be called without knowledge of how the state was locked. This alows the backend code to bring the needed UI methods to the point where the state is locked, and still unlock the state from an outer scope. Provide a NoopLocker as well, so that callers can always call Unlock without verifying the status of the lock. Add the StateLocker field to the backend.Operation, so that the state lock can be carried between the different function scopes of the backend code. This will allow the backend context to lock the state before it's read, while allowing the different operations to unlock the state when they complete. --- backend/backend.go | 5 ++ backend/local/backend.go | 13 ++++ backend/local/backend_apply.go | 20 ------ backend/local/backend_local.go | 12 ++++ backend/local/backend_plan.go | 22 ------ backend/local/backend_refresh.go | 22 ------ command/clistate/state.go | 114 +++++++++++++++++++++++++------ command/meta_backend.go | 32 +++------ command/meta_backend_migrate.go | 16 ++--- command/taint.go | 7 +- command/untaint.go | 8 +-- command/workspace_delete.go | 8 +-- command/workspace_new.go | 8 +-- 13 files changed, 144 insertions(+), 143 deletions(-) diff --git a/backend/backend.go b/backend/backend.go index f67d60ab6..dfeb80ef6 100644 --- a/backend/backend.go +++ b/backend/backend.go @@ -9,6 +9,7 @@ import ( "errors" "time" + "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/config/module" "github.com/hashicorp/terraform/state" "github.com/hashicorp/terraform/terraform" @@ -135,6 +136,10 @@ type Operation struct { // state.Lockers for its duration, and Unlock when complete. LockState bool + // StateLocker is used to lock the state while providing UI feedback to the + // user. This will be supplied by the Backend itself. + StateLocker clistate.Locker + // The duration to retry obtaining a State lock. StateLockTimeout time.Duration diff --git a/backend/local/backend.go b/backend/local/backend.go index b42aedb17..eb4eff4b0 100644 --- a/backend/local/backend.go +++ b/backend/local/backend.go @@ -13,6 +13,7 @@ import ( "sync" "github.com/hashicorp/terraform/backend" + "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/helper/schema" "github.com/hashicorp/terraform/state" "github.com/hashicorp/terraform/terraform" @@ -260,12 +261,24 @@ func (b *Local) Operation(ctx context.Context, op *backend.Operation) (*backend. cancelCtx, cancel := context.WithCancel(context.Background()) runningOp.Cancel = cancel + if op.LockState { + op.StateLocker = clistate.NewLocker(stopCtx, op.StateLockTimeout, b.CLI, b.Colorize()) + } else { + op.StateLocker = clistate.NewNoopLocker() + } + // Do it go func() { defer done() defer stop() defer cancel() + // the state was locked during context creation, unlock the state when + // the operation completes + defer func() { + runningOp.Err = op.StateLocker.Unlock(runningOp.Err) + }() + defer b.opLock.Unlock() f(stopCtx, cancelCtx, op, runningOp) }() diff --git a/backend/local/backend_apply.go b/backend/local/backend_apply.go index da8c684bc..102d40c39 100644 --- a/backend/local/backend_apply.go +++ b/backend/local/backend_apply.go @@ -11,7 +11,6 @@ import ( "github.com/hashicorp/errwrap" "github.com/hashicorp/go-multierror" "github.com/hashicorp/terraform/backend" - "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/command/format" "github.com/hashicorp/terraform/config/module" "github.com/hashicorp/terraform/state" @@ -55,25 +54,6 @@ func (b *Local) opApply( return } - if op.LockState { - lockCtx, cancel := context.WithTimeout(stopCtx, op.StateLockTimeout) - defer cancel() - - lockInfo := state.NewLockInfo() - lockInfo.Operation = op.Type.String() - lockID, err := clistate.Lock(lockCtx, opState, lockInfo, b.CLI, b.Colorize()) - if err != nil { - runningOp.Err = errwrap.Wrapf("Error locking state: {{err}}", err) - return - } - - defer func() { - if err := clistate.Unlock(opState, lockID, b.CLI, b.Colorize()); err != nil { - runningOp.Err = multierror.Append(runningOp.Err, err) - } - }() - } - // Setup the state runningOp.State = tfCtx.State() diff --git a/backend/local/backend_local.go b/backend/local/backend_local.go index aa056a1a1..d26fefa57 100644 --- a/backend/local/backend_local.go +++ b/backend/local/backend_local.go @@ -1,9 +1,11 @@ package local import ( + "context" "errors" "log" + "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/command/format" "github.com/hashicorp/terraform/tfdiags" @@ -20,6 +22,12 @@ func (b *Local) Context(op *backend.Operation) (*terraform.Context, state.State, // to ask for input/validate. op.Type = backend.OperationTypeInvalid + if op.LockState { + op.StateLocker = clistate.NewLocker(context.Background(), op.StateLockTimeout, b.CLI, b.Colorize()) + } else { + op.StateLocker = clistate.NewNoopLocker() + } + return b.context(op) } @@ -30,6 +38,10 @@ func (b *Local) context(op *backend.Operation) (*terraform.Context, state.State, return nil, nil, errwrap.Wrapf("Error loading state: {{err}}", err) } + if err := op.StateLocker.Lock(s, op.Type.String()); err != nil { + return nil, nil, errwrap.Wrapf("Error locking state: {{err}}", err) + } + if err := s.RefreshState(); err != nil { return nil, nil, errwrap.Wrapf("Error loading state: {{err}}", err) } diff --git a/backend/local/backend_plan.go b/backend/local/backend_plan.go index ebf053192..00c0a859d 100644 --- a/backend/local/backend_plan.go +++ b/backend/local/backend_plan.go @@ -9,12 +9,9 @@ import ( "strings" "github.com/hashicorp/errwrap" - "github.com/hashicorp/go-multierror" "github.com/hashicorp/terraform/backend" - "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/command/format" "github.com/hashicorp/terraform/config/module" - "github.com/hashicorp/terraform/state" "github.com/hashicorp/terraform/terraform" ) @@ -62,25 +59,6 @@ func (b *Local) opPlan( return } - if op.LockState { - lockCtx, cancel := context.WithTimeout(stopCtx, op.StateLockTimeout) - defer cancel() - - lockInfo := state.NewLockInfo() - lockInfo.Operation = op.Type.String() - lockID, err := clistate.Lock(lockCtx, opState, lockInfo, b.CLI, b.Colorize()) - if err != nil { - runningOp.Err = errwrap.Wrapf("Error locking state: {{err}}", err) - return - } - - defer func() { - if err := clistate.Unlock(opState, lockID, b.CLI, b.Colorize()); err != nil { - runningOp.Err = multierror.Append(runningOp.Err, err) - } - }() - } - // Setup the state runningOp.State = tfCtx.State() diff --git a/backend/local/backend_refresh.go b/backend/local/backend_refresh.go index 959f969a3..b5ec9aa6d 100644 --- a/backend/local/backend_refresh.go +++ b/backend/local/backend_refresh.go @@ -8,11 +8,8 @@ import ( "strings" "github.com/hashicorp/errwrap" - "github.com/hashicorp/go-multierror" "github.com/hashicorp/terraform/backend" - "github.com/hashicorp/terraform/command/clistate" "github.com/hashicorp/terraform/config/module" - "github.com/hashicorp/terraform/state" "github.com/hashicorp/terraform/terraform" ) @@ -53,25 +50,6 @@ func (b *Local) opRefresh( return } - if op.LockState { - lockCtx, cancel := context.WithTimeout(stopCtx, op.StateLockTimeout) - defer cancel() - - lockInfo := state.NewLockInfo() - lockInfo.Operation = op.Type.String() - lockID, err := clistate.Lock(lockCtx, opState, lockInfo, b.CLI, b.Colorize()) - if err != nil { - runningOp.Err = errwrap.Wrapf("Error locking state: {{err}}", err) - return - } - - defer func() { - if err := clistate.Unlock(opState, lockID, b.CLI, b.Colorize()); err != nil { - runningOp.Err = multierror.Append(runningOp.Err, err) - } - }() - } - // Set our state runningOp.State = opState.State() if runningOp.State.Empty() || !runningOp.State.HasResources() { diff --git a/command/clistate/state.go b/command/clistate/state.go index f02f053be..9bd9fe940 100644 --- a/command/clistate/state.go +++ b/command/clistate/state.go @@ -8,9 +8,11 @@ import ( "context" "fmt" "strings" + "sync" "time" "github.com/hashicorp/errwrap" + multierror "github.com/hashicorp/go-multierror" "github.com/hashicorp/terraform/helper/slowmessage" "github.com/hashicorp/terraform/state" "github.com/mitchellh/cli" @@ -48,47 +50,119 @@ that no one else is holding a lock. ` ) -// Lock locks the given state and outputs to the user if locking -// is taking longer than the threshold. The lock is retried until the context -// is cancelled. -func Lock(ctx context.Context, s state.State, info *state.LockInfo, ui cli.Ui, color *colorstring.Colorize) (string, error) { - var lockID string +// Locker allows for more convenient locking, by creating the timeout context +// and LockInfo for the caller, while storing any related data required for +// Unlock. +type Locker interface { + // Lock the provided state, storing the reason string in the LockInfo. + Lock(s state.State, reason string) error + // Unlock the previously locked state. + // An optional error can be passed in, and will be combined with any error + // from the Unlock operation. + Unlock(error) error +} + +type locker struct { + mu sync.Mutex + ctx context.Context + timeout time.Duration + state state.State + ui cli.Ui + color *colorstring.Colorize + lockID string +} + +// Create a new Locker. +// The provided context will be used for lock cancellation, and combined with +// the timeout duration. Lock progress will be be reported to the user through +// the provided UI. +func NewLocker( + ctx context.Context, + timeout time.Duration, + ui cli.Ui, + color *colorstring.Colorize) Locker { + + l := &locker{ + ctx: ctx, + timeout: timeout, + ui: ui, + color: color, + } + return l +} + +// Locker locks the given state and outputs to the user if locking is taking +// longer than the threshold. The lock is retried until the context is +// cancelled. +func (l *locker) Lock(s state.State, reason string) error { + l.mu.Lock() + defer l.mu.Unlock() + + l.state = s + + ctx, cancel := context.WithTimeout(l.ctx, l.timeout) + defer cancel() + + lockInfo := state.NewLockInfo() + lockInfo.Operation = reason err := slowmessage.Do(LockThreshold, func() error { - id, err := state.LockWithContext(ctx, s, info) - lockID = id + id, err := state.LockWithContext(ctx, s, lockInfo) + l.lockID = id return err }, func() { - if ui != nil { - ui.Output(color.Color(LockMessage)) + if l.ui != nil { + l.ui.Output(l.color.Color(LockMessage)) } }) if err != nil { - err = errwrap.Wrapf(strings.TrimSpace(LockErrorMessage), err) + return errwrap.Wrapf(strings.TrimSpace(LockErrorMessage), err) } - return lockID, err + return nil } -// Unlock unlocks the given state and outputs to the user if the -// unlock fails what can be done. -func Unlock(s state.State, id string, ui cli.Ui, color *colorstring.Colorize) error { +func (l *locker) Unlock(parentErr error) error { + l.mu.Lock() + defer l.mu.Unlock() + + if l.lockID == "" { + return parentErr + } + err := slowmessage.Do(LockThreshold, func() error { - return s.Unlock(id) + return l.state.Unlock(l.lockID) }, func() { - if ui != nil { - ui.Output(color.Color(UnlockMessage)) + if l.ui != nil { + l.ui.Output(l.color.Color(UnlockMessage)) } }) if err != nil { - ui.Output(color.Color(fmt.Sprintf( + l.ui.Output(l.color.Color(fmt.Sprintf( "\n"+strings.TrimSpace(UnlockErrorMessage)+"\n", err))) - err = fmt.Errorf( - "Error releasing the state lock. Please see the longer error message above.") + if parentErr != nil { + parentErr = multierror.Append(parentErr, err) + } } + return parentErr + +} + +type noopLocker struct{} + +// NewNoopLocker returns a valid Locker that does nothing. +func NewNoopLocker() Locker { + return noopLocker{} +} + +func (l noopLocker) Lock(state.State, string) error { + return nil +} + +func (l noopLocker) Unlock(err error) error { return err } diff --git a/command/meta_backend.go b/command/meta_backend.go index 2fa4ff542..726f3b70c 100644 --- a/command/meta_backend.go +++ b/command/meta_backend.go @@ -586,15 +586,11 @@ func (m *Meta) backendFromPlan(opts *BackendOpts) (backend.Backend, error) { lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) defer cancel() - // Lock the state if we can - lockInfo := state.NewLockInfo() - lockInfo.Operation = "backend from plan" - - lockID, err := clistate.Lock(lockCtx, realMgr, lockInfo, m.Ui, m.Colorize()) + unlock, err := clistate.Lock(lockCtx, realMgr, "backend from plan", "", m.Ui, m.Colorize()) if err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer clistate.Unlock(realMgr, lockID, m.Ui, m.Colorize()) + defer unlock(nil) } if err := realMgr.RefreshState(); err != nil { @@ -967,15 +963,11 @@ func (m *Meta) backend_C_r_s( lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) defer cancel() - // Lock the state if we can - lockInfo := state.NewLockInfo() - lockInfo.Operation = "backend from config" - - lockID, err := clistate.Lock(lockCtx, sMgr, lockInfo, m.Ui, m.Colorize()) + unlock, err := clistate.Lock(lockCtx, sMgr, "backend from config", "", m.Ui, m.Colorize()) if err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer clistate.Unlock(sMgr, lockID, m.Ui, m.Colorize()) + defer unlock(nil) } // Store the metadata in our saved state location @@ -1050,15 +1042,11 @@ func (m *Meta) backend_C_r_S_changed( lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) defer cancel() - // Lock the state if we can - lockInfo := state.NewLockInfo() - lockInfo.Operation = "backend from config" - - lockID, err := clistate.Lock(lockCtx, sMgr, lockInfo, m.Ui, m.Colorize()) + unlock, err := clistate.Lock(lockCtx, sMgr, "backend from config", "", m.Ui, m.Colorize()) if err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer clistate.Unlock(sMgr, lockID, m.Ui, m.Colorize()) + defer unlock(nil) } // Update the backend state @@ -1193,15 +1181,11 @@ func (m *Meta) backend_C_R_S_unchanged( lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) defer cancel() - // Lock the state if we can - lockInfo := state.NewLockInfo() - lockInfo.Operation = "backend from config" - - lockID, err := clistate.Lock(lockCtx, sMgr, lockInfo, m.Ui, m.Colorize()) + unlock, err := clistate.Lock(lockCtx, sMgr, "backend from config", "", m.Ui, m.Colorize()) if err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer clistate.Unlock(sMgr, lockID, m.Ui, m.Colorize()) + defer unlock(nil) } // Unset the remote state diff --git a/command/meta_backend_migrate.go b/command/meta_backend_migrate.go index 7f60a6605..be20a4476 100644 --- a/command/meta_backend_migrate.go +++ b/command/meta_backend_migrate.go @@ -236,25 +236,17 @@ func (m *Meta) backendMigrateState_s_s(opts *backendMigrateOpts) error { lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) defer cancel() - lockInfoOne := state.NewLockInfo() - lockInfoOne.Operation = "migration" - lockInfoOne.Info = "source state" - - lockIDOne, err := clistate.Lock(lockCtx, stateOne, lockInfoOne, m.Ui, m.Colorize()) + unlockOne, err := clistate.Lock(lockCtx, stateOne, "migration", "source state", m.Ui, m.Colorize()) if err != nil { return fmt.Errorf("Error locking source state: %s", err) } - defer clistate.Unlock(stateOne, lockIDOne, m.Ui, m.Colorize()) + defer unlockOne(nil) - lockInfoTwo := state.NewLockInfo() - lockInfoTwo.Operation = "migration" - lockInfoTwo.Info = "destination state" - - lockIDTwo, err := clistate.Lock(lockCtx, stateTwo, lockInfoTwo, m.Ui, m.Colorize()) + unlockTwo, err := clistate.Lock(lockCtx, stateTwo, "migration", "destination state", m.Ui, m.Colorize()) if err != nil { return fmt.Errorf("Error locking destination state: %s", err) } - defer clistate.Unlock(stateTwo, lockIDTwo, m.Ui, m.Colorize()) + defer unlockTwo(nil) // We now own a lock, so double check that we have the version // corresponding to the lock. diff --git a/command/taint.go b/command/taint.go index 626f88a46..c3d6c4cc9 100644 --- a/command/taint.go +++ b/command/taint.go @@ -7,7 +7,6 @@ import ( "strings" "github.com/hashicorp/terraform/command/clistate" - "github.com/hashicorp/terraform/state" "github.com/hashicorp/terraform/terraform" ) @@ -87,15 +86,13 @@ func (c *TaintCommand) Run(args []string) int { lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) defer cancel() - lockInfo := state.NewLockInfo() - lockInfo.Operation = "taint" - lockID, err := clistate.Lock(lockCtx, st, lockInfo, c.Ui, c.Colorize()) + unlock, err := clistate.Lock(lockCtx, st, "taint", "", c.Ui, c.Colorize()) if err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 } - defer clistate.Unlock(st, lockID, c.Ui, c.Colorize()) + defer unlock(nil) } // Get the actual state structure diff --git a/command/untaint.go b/command/untaint.go index 1eca20277..9a2e43b24 100644 --- a/command/untaint.go +++ b/command/untaint.go @@ -7,7 +7,6 @@ import ( "strings" "github.com/hashicorp/terraform/command/clistate" - "github.com/hashicorp/terraform/state" ) // UntaintCommand is a cli.Command implementation that manually untaints @@ -75,15 +74,12 @@ func (c *UntaintCommand) Run(args []string) int { lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) defer cancel() - lockInfo := state.NewLockInfo() - lockInfo.Operation = "untaint" - lockID, err := clistate.Lock(lockCtx, st, lockInfo, c.Ui, c.Colorize()) + unlock, err := clistate.Lock(lockCtx, st, "untaint", "", c.Ui, c.Colorize()) if err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 } - - defer clistate.Unlock(st, lockID, c.Ui, c.Colorize()) + defer unlock(nil) } // Get the actual state structure diff --git a/command/workspace_delete.go b/command/workspace_delete.go index 99dac86d3..8a9f792e1 100644 --- a/command/workspace_delete.go +++ b/command/workspace_delete.go @@ -6,7 +6,6 @@ import ( "strings" "github.com/hashicorp/terraform/command/clistate" - "github.com/hashicorp/terraform/state" "github.com/mitchellh/cli" "github.com/posener/complete" ) @@ -114,10 +113,7 @@ func (c *WorkspaceDeleteCommand) Run(args []string) int { lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) defer cancel() - // Lock the state if we can - lockInfo := state.NewLockInfo() - lockInfo.Operation = "workspace delete" - lockID, err := clistate.Lock(lockCtx, sMgr, lockInfo, c.Ui, c.Colorize()) + unlock, err := clistate.Lock(lockCtx, sMgr, "workspace delete", "", c.Ui, c.Colorize()) if err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 @@ -132,7 +128,7 @@ func (c *WorkspaceDeleteCommand) Run(args []string) int { // state deletion, i.e. in a CI environment. Adding Delete() as a // required method of States would allow the removal of the resource to // be delegated from the Backend to the State itself. - clistate.Unlock(sMgr, lockID, c.Ui, c.Colorize()) + unlock(nil) } err = b.DeleteState(delEnv) diff --git a/command/workspace_new.go b/command/workspace_new.go index 71c9fdc1f..430ecc58b 100644 --- a/command/workspace_new.go +++ b/command/workspace_new.go @@ -7,7 +7,6 @@ import ( "strings" "github.com/hashicorp/terraform/command/clistate" - "github.com/hashicorp/terraform/state" "github.com/hashicorp/terraform/terraform" "github.com/mitchellh/cli" "github.com/posener/complete" @@ -118,15 +117,12 @@ func (c *WorkspaceNewCommand) Run(args []string) int { lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) defer cancel() - // Lock the state if we can - lockInfo := state.NewLockInfo() - lockInfo.Operation = "workspace new" - lockID, err := clistate.Lock(lockCtx, sMgr, lockInfo, c.Ui, c.Colorize()) + unlock, err := clistate.Lock(lockCtx, sMgr, "workspace_new", "", c.Ui, c.Colorize()) if err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 } - defer clistate.Unlock(sMgr, lockID, c.Ui, c.Colorize()) + defer unlock(nil) } // read the existing state file From bdd475e14919f0c56f95c1a155464e25733c35e7 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Fri, 23 Feb 2018 11:28:47 -0500 Subject: [PATCH 100/156] use the new clistate.Locker in commands Use the new StateLocker field to provide a wrapper for locking the state during terraform.Context creation in the commands that directly manipulate the state. --- command/meta_backend.go | 36 +++++++++------------------ command/meta_backend_migrate.go | 15 ++++++------ command/taint.go | 10 +++----- command/untaint.go | 9 +++---- command/workspace_delete.go | 43 ++++++++++++++++----------------- command/workspace_new.go | 9 +++---- 6 files changed, 49 insertions(+), 73 deletions(-) diff --git a/command/meta_backend.go b/command/meta_backend.go index 726f3b70c..1bee95339 100644 --- a/command/meta_backend.go +++ b/command/meta_backend.go @@ -583,14 +583,11 @@ func (m *Meta) backendFromPlan(opts *BackendOpts) (backend.Backend, error) { } if m.stateLock { - lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) - defer cancel() - - unlock, err := clistate.Lock(lockCtx, realMgr, "backend from plan", "", m.Ui, m.Colorize()) - if err != nil { + stateLocker := clistate.NewLocker(context.Background(), m.stateLockTimeout, m.Ui, m.Colorize()) + if err := stateLocker.Lock(realMgr, "backend from plan"); err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer unlock(nil) + defer stateLocker.Unlock(nil) } if err := realMgr.RefreshState(); err != nil { @@ -960,14 +957,11 @@ func (m *Meta) backend_C_r_s( } if m.stateLock { - lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) - defer cancel() - - unlock, err := clistate.Lock(lockCtx, sMgr, "backend from config", "", m.Ui, m.Colorize()) - if err != nil { + stateLocker := clistate.NewLocker(context.Background(), m.stateLockTimeout, m.Ui, m.Colorize()) + if err := stateLocker.Lock(sMgr, "backend from plan"); err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer unlock(nil) + defer stateLocker.Unlock(nil) } // Store the metadata in our saved state location @@ -1039,14 +1033,11 @@ func (m *Meta) backend_C_r_S_changed( } if m.stateLock { - lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) - defer cancel() - - unlock, err := clistate.Lock(lockCtx, sMgr, "backend from config", "", m.Ui, m.Colorize()) - if err != nil { + stateLocker := clistate.NewLocker(context.Background(), m.stateLockTimeout, m.Ui, m.Colorize()) + if err := stateLocker.Lock(sMgr, "backend from plan"); err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer unlock(nil) + defer stateLocker.Unlock(nil) } // Update the backend state @@ -1178,14 +1169,11 @@ func (m *Meta) backend_C_R_S_unchanged( } if m.stateLock { - lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) - defer cancel() - - unlock, err := clistate.Lock(lockCtx, sMgr, "backend from config", "", m.Ui, m.Colorize()) - if err != nil { + stateLocker := clistate.NewLocker(context.Background(), m.stateLockTimeout, m.Ui, m.Colorize()) + if err := stateLocker.Lock(sMgr, "backend from plan"); err != nil { return nil, fmt.Errorf("Error locking state: %s", err) } - defer unlock(nil) + defer stateLocker.Unlock(nil) } // Unset the remote state diff --git a/command/meta_backend_migrate.go b/command/meta_backend_migrate.go index be20a4476..0c3610a8a 100644 --- a/command/meta_backend_migrate.go +++ b/command/meta_backend_migrate.go @@ -233,20 +233,19 @@ func (m *Meta) backendMigrateState_s_s(opts *backendMigrateOpts) error { } if m.stateLock { - lockCtx, cancel := context.WithTimeout(context.Background(), m.stateLockTimeout) - defer cancel() + lockCtx := context.Background() - unlockOne, err := clistate.Lock(lockCtx, stateOne, "migration", "source state", m.Ui, m.Colorize()) - if err != nil { + lockerOne := clistate.NewLocker(lockCtx, m.stateLockTimeout, m.Ui, m.Colorize()) + if err := lockerOne.Lock(stateOne, "migration source state"); err != nil { return fmt.Errorf("Error locking source state: %s", err) } - defer unlockOne(nil) + defer lockerOne.Unlock(nil) - unlockTwo, err := clistate.Lock(lockCtx, stateTwo, "migration", "destination state", m.Ui, m.Colorize()) - if err != nil { + lockerTwo := clistate.NewLocker(lockCtx, m.stateLockTimeout, m.Ui, m.Colorize()) + if err := lockerTwo.Lock(stateTwo, "migration destination state"); err != nil { return fmt.Errorf("Error locking destination state: %s", err) } - defer unlockTwo(nil) + defer lockerTwo.Unlock(nil) // We now own a lock, so double check that we have the version // corresponding to the lock. diff --git a/command/taint.go b/command/taint.go index c3d6c4cc9..4dc16e60c 100644 --- a/command/taint.go +++ b/command/taint.go @@ -83,16 +83,12 @@ func (c *TaintCommand) Run(args []string) int { } if c.stateLock { - lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) - defer cancel() - - unlock, err := clistate.Lock(lockCtx, st, "taint", "", c.Ui, c.Colorize()) - if err != nil { + stateLocker := clistate.NewLocker(context.Background(), c.stateLockTimeout, c.Ui, c.Colorize()) + if err := stateLocker.Lock(st, "taint"); err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 } - - defer unlock(nil) + defer stateLocker.Unlock(nil) } // Get the actual state structure diff --git a/command/untaint.go b/command/untaint.go index 9a2e43b24..39d047fd6 100644 --- a/command/untaint.go +++ b/command/untaint.go @@ -71,15 +71,12 @@ func (c *UntaintCommand) Run(args []string) int { } if c.stateLock { - lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) - defer cancel() - - unlock, err := clistate.Lock(lockCtx, st, "untaint", "", c.Ui, c.Colorize()) - if err != nil { + stateLocker := clistate.NewLocker(context.Background(), c.stateLockTimeout, c.Ui, c.Colorize()) + if err := stateLocker.Lock(st, "untaint"); err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 } - defer unlock(nil) + defer stateLocker.Unlock(nil) } // Get the actual state structure diff --git a/command/workspace_delete.go b/command/workspace_delete.go index 8a9f792e1..1e1eb1182 100644 --- a/command/workspace_delete.go +++ b/command/workspace_delete.go @@ -96,6 +96,17 @@ func (c *WorkspaceDeleteCommand) Run(args []string) int { return 1 } + var stateLocker clistate.Locker + if c.stateLock { + stateLocker = clistate.NewLocker(context.Background(), c.stateLockTimeout, c.Ui, c.Colorize()) + if err := stateLocker.Lock(sMgr, "workspace_delete"); err != nil { + c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) + return 1 + } + } else { + stateLocker = clistate.NewNoopLocker() + } + if err := sMgr.RefreshState(); err != nil { c.Ui.Error(err.Error()) return 1 @@ -108,28 +119,16 @@ func (c *WorkspaceDeleteCommand) Run(args []string) int { return 1 } - // Honor the lock request, for consistency and one final safety check. - if c.stateLock { - lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) - defer cancel() - - unlock, err := clistate.Lock(lockCtx, sMgr, "workspace delete", "", c.Ui, c.Colorize()) - if err != nil { - c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) - return 1 - } - - // We need to release the lock just before deleting the state, in case - // the backend can't remove the resource while holding the lock. This - // is currently true for Windows local files. - // - // TODO: While there is little safety in locking while deleting the - // state, it might be nice to be able to coordinate processes around - // state deletion, i.e. in a CI environment. Adding Delete() as a - // required method of States would allow the removal of the resource to - // be delegated from the Backend to the State itself. - unlock(nil) - } + // We need to release the lock just before deleting the state, in case + // the backend can't remove the resource while holding the lock. This + // is currently true for Windows local files. + // + // TODO: While there is little safety in locking while deleting the + // state, it might be nice to be able to coordinate processes around + // state deletion, i.e. in a CI environment. Adding Delete() as a + // required method of States would allow the removal of the resource to + // be delegated from the Backend to the State itself. + stateLocker.Unlock(nil) err = b.DeleteState(delEnv) if err != nil { diff --git a/command/workspace_new.go b/command/workspace_new.go index 430ecc58b..810a776fc 100644 --- a/command/workspace_new.go +++ b/command/workspace_new.go @@ -114,15 +114,12 @@ func (c *WorkspaceNewCommand) Run(args []string) int { } if c.stateLock { - lockCtx, cancel := context.WithTimeout(context.Background(), c.stateLockTimeout) - defer cancel() - - unlock, err := clistate.Lock(lockCtx, sMgr, "workspace_new", "", c.Ui, c.Colorize()) - if err != nil { + stateLocker := clistate.NewLocker(context.Background(), c.stateLockTimeout, c.Ui, c.Colorize()) + if err := stateLocker.Lock(sMgr, "workspace_delete"); err != nil { c.Ui.Error(fmt.Sprintf("Error locking state: %s", err)) return 1 } - defer unlock(nil) + defer stateLocker.Unlock(nil) } // read the existing state file From 8ee936a068eb71c0375859192ed3d5c1ca4965e7 Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Sat, 24 Feb 2018 19:52:10 -0800 Subject: [PATCH 101/156] Deps: Bump terraform-provider-aws@v1.10.0 and aws-sdk-go@v1.12.75 --- .../aws/aws-sdk-go/aws/endpoints/defaults.go | 17 + .../github.com/aws/aws-sdk-go/aws/version.go | 2 +- .../aws/aws-sdk-go/service/appsync/api.go | 5574 +++++++++++++++++ .../aws/aws-sdk-go/service/appsync/doc.go | 29 + .../aws/aws-sdk-go/service/appsync/errors.go | 69 + .../aws/aws-sdk-go/service/appsync/service.go | 97 + .../service/cognitoidentityprovider/api.go | 208 +- .../aws/aws-sdk-go/service/dax/api.go | 4621 ++++++++++++++ .../aws/aws-sdk-go/service/dax/doc.go | 33 + .../aws/aws-sdk-go/service/dax/errors.go | 160 + .../aws/aws-sdk-go/service/dax/service.go | 95 + .../aws/aws-sdk-go/service/ec2/api.go | 587 +- .../aws/aws-sdk-go/service/ec2/doc.go | 2 +- .../aws/aws-sdk-go/service/guardduty/api.go | 75 + .../aws/aws-sdk-go/service/kms/api.go | 3 + .../aws/aws-sdk-go/service/rds/api.go | 103 +- .../terraform-provider-aws/CHANGELOG.md | 80 + .../terraform-provider-aws/aws/config.go | 8 +- .../data_source_aws_elb_service_account.go | 2 +- ...ata_source_aws_inspector_rules_packages.go | 56 + .../aws/data_source_aws_kms_alias.go | 36 +- .../terraform-provider-aws/aws/provider.go | 11 + ...resource_aws_acm_certificate_validation.go | 63 +- .../aws/resource_aws_api_gateway_vpc_link.go | 205 + .../aws/resource_aws_appsync_graphql_api.go | 195 + .../aws/resource_aws_autoscaling_policy.go | 218 +- .../aws/resource_aws_cloudtrail.go | 169 +- .../aws/resource_aws_codebuild_project.go | 83 +- ...esource_aws_codedeploy_deployment_group.go | 2 + .../resource_aws_cognito_user_pool_client.go | 1 + .../aws/resource_aws_dax_cluster.go | 588 ++ ...esource_aws_directory_service_directory.go | 200 +- .../aws/resource_aws_dx_connection.go | 110 +- .../aws/resource_aws_dx_lag.go | 169 +- .../aws/resource_aws_dynamodb_table.go | 33 +- .../aws/resource_aws_ecs_service.go | 16 +- .../aws/resource_aws_elasticsearch_domain.go | 3 + .../aws/resource_aws_emr_cluster.go | 130 +- .../aws/resource_aws_gamelift_alias.go | 181 + .../aws/resource_aws_gamelift_fleet.go | 604 ++ .../aws/resource_aws_iam_user_ssh_key.go | 8 +- .../aws/resource_aws_instance.go | 23 +- .../aws/resource_aws_iot_thing_type.go | 202 + ...ce_aws_kinesis_firehose_delivery_stream.go | 41 +- .../aws/resource_aws_lambda_function.go | 24 +- .../resource_aws_lb_listener_certificate.go | 157 + .../aws/resource_aws_lb_listener_rule.go | 83 +- .../aws/resource_aws_lb_target_group.go | 68 +- .../aws/resource_aws_rds_cluster.go | 16 + .../aws/resource_aws_rds_cluster_instance.go | 6 + .../aws/resource_aws_redshift_cluster.go | 91 +- .../aws/resource_aws_route53_record.go | 19 +- .../aws/resource_aws_s3_bucket.go | 128 +- .../aws/resource_aws_s3_bucket_metric.go | 218 + .../resource_aws_service_discovery_service.go | 39 +- ...e_aws_service_discovery_service_migrate.go | 36 + .../aws/resource_aws_ses_domain_mail_from.go | 110 + .../aws/resource_aws_sns_topic.go | 134 +- .../aws/resource_aws_spot_fleet_request.go | 7 +- .../aws/resource_aws_spot_instance_request.go | 2 +- .../aws/resource_aws_sqs_queue.go | 19 +- .../aws/resource_aws_ssm_association.go | 5 +- .../aws/resource_aws_volume_attachment.go | 2 +- .../aws/resource_aws_vpc_endpoint.go | 2 +- .../resource_aws_vpc_peering_connection.go | 34 +- .../terraform-provider-aws/aws/structure.go | 38 + .../terraform-provider-aws/aws/tagsDAX.go | 115 + .../terraform-provider-aws/aws/tagsDX.go | 137 + .../terraform-provider-aws/aws/validators.go | 95 +- vendor/vendor.json | 804 +-- 70 files changed, 16469 insertions(+), 1032 deletions(-) create mode 100644 vendor/github.com/aws/aws-sdk-go/service/appsync/api.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/appsync/doc.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/appsync/errors.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/appsync/service.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/dax/api.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/dax/doc.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/dax/errors.go create mode 100644 vendor/github.com/aws/aws-sdk-go/service/dax/service.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_inspector_rules_packages.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_api_gateway_vpc_link.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_appsync_graphql_api.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dax_cluster.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_gamelift_alias.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_gamelift_fleet.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_iot_thing_type.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_lb_listener_certificate.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_s3_bucket_metric.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_service_discovery_service_migrate.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ses_domain_mail_from.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/tagsDAX.go create mode 100644 vendor/github.com/terraform-providers/terraform-provider-aws/aws/tagsDX.go diff --git a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go index 9e728feee..3cdfabe65 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/endpoints/defaults.go @@ -106,6 +106,7 @@ const ( IotServiceID = "iot" // Iot. KinesisServiceID = "kinesis" // Kinesis. KinesisanalyticsServiceID = "kinesisanalytics" // Kinesisanalytics. + KinesisvideoServiceID = "kinesisvideo" // Kinesisvideo. KmsServiceID = "kms" // Kms. LambdaServiceID = "lambda" // Lambda. LightsailServiceID = "lightsail" // Lightsail. @@ -1234,6 +1235,16 @@ var awsPartition = partition{ "us-west-2": endpoint{}, }, }, + "kinesisvideo": service{ + + Endpoints: endpoints{ + "ap-northeast-1": endpoint{}, + "eu-central-1": endpoint{}, + "eu-west-1": endpoint{}, + "us-east-1": endpoint{}, + "us-west-2": endpoint{}, + }, + }, "kms": service{ Endpoints: endpoints{ @@ -2462,6 +2473,12 @@ var awsusgovPartition = partition{ }, }, }, + "ecr": service{ + + Endpoints: endpoints{ + "us-gov-west-1": endpoint{}, + }, + }, "ecs": service{ Endpoints: endpoints{ diff --git a/vendor/github.com/aws/aws-sdk-go/aws/version.go b/vendor/github.com/aws/aws-sdk-go/aws/version.go index 12e3c7788..dd036c971 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/version.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.12.73" +const SDKVersion = "1.12.75" diff --git a/vendor/github.com/aws/aws-sdk-go/service/appsync/api.go b/vendor/github.com/aws/aws-sdk-go/service/appsync/api.go new file mode 100644 index 000000000..ce553365c --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/appsync/api.go @@ -0,0 +1,5574 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appsync + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awsutil" + "github.com/aws/aws-sdk-go/aws/request" +) + +const opCreateApiKey = "CreateApiKey" + +// CreateApiKeyRequest generates a "aws/request.Request" representing the +// client's request for the CreateApiKey operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreateApiKey for more information on using the CreateApiKey +// 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 CreateApiKeyRequest method. +// req, resp := client.CreateApiKeyRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/CreateApiKey +func (c *AppSync) CreateApiKeyRequest(input *CreateApiKeyInput) (req *request.Request, output *CreateApiKeyOutput) { + op := &request.Operation{ + Name: opCreateApiKey, + HTTPMethod: "POST", + HTTPPath: "/v1/apis/{apiId}/apikeys", + } + + if input == nil { + input = &CreateApiKeyInput{} + } + + output = &CreateApiKeyOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateApiKey API operation for AWS AppSync. +// +// Creates a unique key that you can distribute to clients who are executing +// your API. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS AppSync's +// API operation CreateApiKey for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// The request exceeded a limit. Try your request again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// The request exceeded a limit. Try your request again. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// * ErrCodeApiKeyLimitExceededException "ApiKeyLimitExceededException" +// The API key exceeded a limit. Try your request again. +// +// * ErrCodeApiKeyValidityOutOfBoundsException "ApiKeyValidityOutOfBoundsException" +// The API key expiration must be set to a value between 1 and 365 days. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/CreateApiKey +func (c *AppSync) CreateApiKey(input *CreateApiKeyInput) (*CreateApiKeyOutput, error) { + req, out := c.CreateApiKeyRequest(input) + return out, req.Send() +} + +// CreateApiKeyWithContext is the same as CreateApiKey with the addition of +// the ability to pass a context and additional request options. +// +// See CreateApiKey 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 *AppSync) CreateApiKeyWithContext(ctx aws.Context, input *CreateApiKeyInput, opts ...request.Option) (*CreateApiKeyOutput, error) { + req, out := c.CreateApiKeyRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateDataSource = "CreateDataSource" + +// CreateDataSourceRequest generates a "aws/request.Request" representing the +// client's request for the CreateDataSource operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See CreateDataSource for more information on using the CreateDataSource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the CreateDataSourceRequest method. +// req, resp := client.CreateDataSourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/CreateDataSource +func (c *AppSync) CreateDataSourceRequest(input *CreateDataSourceInput) (req *request.Request, output *CreateDataSourceOutput) { + op := &request.Operation{ + Name: opCreateDataSource, + HTTPMethod: "POST", + HTTPPath: "/v1/apis/{apiId}/datasources", + } + + if input == nil { + input = &CreateDataSourceInput{} + } + + output = &CreateDataSourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateDataSource API operation for AWS AppSync. +// +// Creates a DataSource object. +// +// 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 AppSync's +// API operation CreateDataSource for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Another modification is being made. That modification must complete before +// you can make your change. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/CreateDataSource +func (c *AppSync) CreateDataSource(input *CreateDataSourceInput) (*CreateDataSourceOutput, error) { + req, out := c.CreateDataSourceRequest(input) + return out, req.Send() +} + +// CreateDataSourceWithContext is the same as CreateDataSource with the addition of +// the ability to pass a context and additional request options. +// +// See CreateDataSource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AppSync) CreateDataSourceWithContext(ctx aws.Context, input *CreateDataSourceInput, opts ...request.Option) (*CreateDataSourceOutput, error) { + req, out := c.CreateDataSourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateGraphqlApi = "CreateGraphqlApi" + +// CreateGraphqlApiRequest generates a "aws/request.Request" representing the +// client's request for the CreateGraphqlApi operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreateGraphqlApi for more information on using the CreateGraphqlApi +// 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 CreateGraphqlApiRequest method. +// req, resp := client.CreateGraphqlApiRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/CreateGraphqlApi +func (c *AppSync) CreateGraphqlApiRequest(input *CreateGraphqlApiInput) (req *request.Request, output *CreateGraphqlApiOutput) { + op := &request.Operation{ + Name: opCreateGraphqlApi, + HTTPMethod: "POST", + HTTPPath: "/v1/apis", + } + + if input == nil { + input = &CreateGraphqlApiInput{} + } + + output = &CreateGraphqlApiOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateGraphqlApi API operation for AWS AppSync. +// +// Creates a GraphqlApi object. +// +// 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 AppSync's +// API operation CreateGraphqlApi for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// The request exceeded a limit. Try your request again. +// +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Another modification is being made. That modification must complete before +// you can make your change. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// The request exceeded a limit. Try your request again. +// +// * ErrCodeApiLimitExceededException "ApiLimitExceededException" +// The GraphQL API exceeded a limit. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/CreateGraphqlApi +func (c *AppSync) CreateGraphqlApi(input *CreateGraphqlApiInput) (*CreateGraphqlApiOutput, error) { + req, out := c.CreateGraphqlApiRequest(input) + return out, req.Send() +} + +// CreateGraphqlApiWithContext is the same as CreateGraphqlApi with the addition of +// the ability to pass a context and additional request options. +// +// See CreateGraphqlApi 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 *AppSync) CreateGraphqlApiWithContext(ctx aws.Context, input *CreateGraphqlApiInput, opts ...request.Option) (*CreateGraphqlApiOutput, error) { + req, out := c.CreateGraphqlApiRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateResolver = "CreateResolver" + +// CreateResolverRequest generates a "aws/request.Request" representing the +// client's request for the CreateResolver operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreateResolver for more information on using the CreateResolver +// 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 CreateResolverRequest method. +// req, resp := client.CreateResolverRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/CreateResolver +func (c *AppSync) CreateResolverRequest(input *CreateResolverInput) (req *request.Request, output *CreateResolverOutput) { + op := &request.Operation{ + Name: opCreateResolver, + HTTPMethod: "POST", + HTTPPath: "/v1/apis/{apiId}/types/{typeName}/resolvers", + } + + if input == nil { + input = &CreateResolverInput{} + } + + output = &CreateResolverOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateResolver API operation for AWS AppSync. +// +// Creates a Resolver object. +// +// A resolver converts incoming requests into a format that a data source can +// understand and converts the data source's responses into GraphQL. +// +// 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 AppSync's +// API operation CreateResolver for usage and error information. +// +// Returned Error Codes: +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Another modification is being made. That modification must complete before +// you can make your change. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/CreateResolver +func (c *AppSync) CreateResolver(input *CreateResolverInput) (*CreateResolverOutput, error) { + req, out := c.CreateResolverRequest(input) + return out, req.Send() +} + +// CreateResolverWithContext is the same as CreateResolver with the addition of +// the ability to pass a context and additional request options. +// +// See CreateResolver 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 *AppSync) CreateResolverWithContext(ctx aws.Context, input *CreateResolverInput, opts ...request.Option) (*CreateResolverOutput, error) { + req, out := c.CreateResolverRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateType = "CreateType" + +// CreateTypeRequest generates a "aws/request.Request" representing the +// client's request for the CreateType operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreateType for more information on using the CreateType +// 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 CreateTypeRequest method. +// req, resp := client.CreateTypeRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/CreateType +func (c *AppSync) CreateTypeRequest(input *CreateTypeInput) (req *request.Request, output *CreateTypeOutput) { + op := &request.Operation{ + Name: opCreateType, + HTTPMethod: "POST", + HTTPPath: "/v1/apis/{apiId}/types", + } + + if input == nil { + input = &CreateTypeInput{} + } + + output = &CreateTypeOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateType API operation for AWS AppSync. +// +// Creates a Type object. +// +// 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 AppSync's +// API operation CreateType for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Another modification is being made. That modification must complete before +// you can make your change. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/CreateType +func (c *AppSync) CreateType(input *CreateTypeInput) (*CreateTypeOutput, error) { + req, out := c.CreateTypeRequest(input) + return out, req.Send() +} + +// CreateTypeWithContext is the same as CreateType with the addition of +// the ability to pass a context and additional request options. +// +// See CreateType 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 *AppSync) CreateTypeWithContext(ctx aws.Context, input *CreateTypeInput, opts ...request.Option) (*CreateTypeOutput, error) { + req, out := c.CreateTypeRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteApiKey = "DeleteApiKey" + +// DeleteApiKeyRequest generates a "aws/request.Request" representing the +// client's request for the DeleteApiKey operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DeleteApiKey for more information on using the DeleteApiKey +// 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 DeleteApiKeyRequest method. +// req, resp := client.DeleteApiKeyRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/DeleteApiKey +func (c *AppSync) DeleteApiKeyRequest(input *DeleteApiKeyInput) (req *request.Request, output *DeleteApiKeyOutput) { + op := &request.Operation{ + Name: opDeleteApiKey, + HTTPMethod: "DELETE", + HTTPPath: "/v1/apis/{apiId}/apikeys/{id}", + } + + if input == nil { + input = &DeleteApiKeyInput{} + } + + output = &DeleteApiKeyOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteApiKey API operation for AWS AppSync. +// +// Deletes an API key. +// +// 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 AppSync's +// API operation DeleteApiKey for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/DeleteApiKey +func (c *AppSync) DeleteApiKey(input *DeleteApiKeyInput) (*DeleteApiKeyOutput, error) { + req, out := c.DeleteApiKeyRequest(input) + return out, req.Send() +} + +// DeleteApiKeyWithContext is the same as DeleteApiKey with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteApiKey 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 *AppSync) DeleteApiKeyWithContext(ctx aws.Context, input *DeleteApiKeyInput, opts ...request.Option) (*DeleteApiKeyOutput, error) { + req, out := c.DeleteApiKeyRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteDataSource = "DeleteDataSource" + +// DeleteDataSourceRequest generates a "aws/request.Request" representing the +// client's request for the DeleteDataSource operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See DeleteDataSource for more information on using the DeleteDataSource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the DeleteDataSourceRequest method. +// req, resp := client.DeleteDataSourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/DeleteDataSource +func (c *AppSync) DeleteDataSourceRequest(input *DeleteDataSourceInput) (req *request.Request, output *DeleteDataSourceOutput) { + op := &request.Operation{ + Name: opDeleteDataSource, + HTTPMethod: "DELETE", + HTTPPath: "/v1/apis/{apiId}/datasources/{name}", + } + + if input == nil { + input = &DeleteDataSourceInput{} + } + + output = &DeleteDataSourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteDataSource API operation for AWS AppSync. +// +// Deletes a DataSource object. +// +// 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 AppSync's +// API operation DeleteDataSource for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Another modification is being made. That modification must complete before +// you can make your change. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/DeleteDataSource +func (c *AppSync) DeleteDataSource(input *DeleteDataSourceInput) (*DeleteDataSourceOutput, error) { + req, out := c.DeleteDataSourceRequest(input) + return out, req.Send() +} + +// DeleteDataSourceWithContext is the same as DeleteDataSource with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteDataSource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AppSync) DeleteDataSourceWithContext(ctx aws.Context, input *DeleteDataSourceInput, opts ...request.Option) (*DeleteDataSourceOutput, error) { + req, out := c.DeleteDataSourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteGraphqlApi = "DeleteGraphqlApi" + +// DeleteGraphqlApiRequest generates a "aws/request.Request" representing the +// client's request for the DeleteGraphqlApi operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DeleteGraphqlApi for more information on using the DeleteGraphqlApi +// 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 DeleteGraphqlApiRequest method. +// req, resp := client.DeleteGraphqlApiRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/DeleteGraphqlApi +func (c *AppSync) DeleteGraphqlApiRequest(input *DeleteGraphqlApiInput) (req *request.Request, output *DeleteGraphqlApiOutput) { + op := &request.Operation{ + Name: opDeleteGraphqlApi, + HTTPMethod: "DELETE", + HTTPPath: "/v1/apis/{apiId}", + } + + if input == nil { + input = &DeleteGraphqlApiInput{} + } + + output = &DeleteGraphqlApiOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteGraphqlApi API operation for AWS AppSync. +// +// Deletes a GraphqlApi object. +// +// 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 AppSync's +// API operation DeleteGraphqlApi for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Another modification is being made. That modification must complete before +// you can make your change. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/DeleteGraphqlApi +func (c *AppSync) DeleteGraphqlApi(input *DeleteGraphqlApiInput) (*DeleteGraphqlApiOutput, error) { + req, out := c.DeleteGraphqlApiRequest(input) + return out, req.Send() +} + +// DeleteGraphqlApiWithContext is the same as DeleteGraphqlApi with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteGraphqlApi 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 *AppSync) DeleteGraphqlApiWithContext(ctx aws.Context, input *DeleteGraphqlApiInput, opts ...request.Option) (*DeleteGraphqlApiOutput, error) { + req, out := c.DeleteGraphqlApiRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteResolver = "DeleteResolver" + +// DeleteResolverRequest generates a "aws/request.Request" representing the +// client's request for the DeleteResolver operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DeleteResolver for more information on using the DeleteResolver +// 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 DeleteResolverRequest method. +// req, resp := client.DeleteResolverRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/DeleteResolver +func (c *AppSync) DeleteResolverRequest(input *DeleteResolverInput) (req *request.Request, output *DeleteResolverOutput) { + op := &request.Operation{ + Name: opDeleteResolver, + HTTPMethod: "DELETE", + HTTPPath: "/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}", + } + + if input == nil { + input = &DeleteResolverInput{} + } + + output = &DeleteResolverOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteResolver API operation for AWS AppSync. +// +// Deletes a Resolver object. +// +// 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 AppSync's +// API operation DeleteResolver for usage and error information. +// +// Returned Error Codes: +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Another modification is being made. That modification must complete before +// you can make your change. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/DeleteResolver +func (c *AppSync) DeleteResolver(input *DeleteResolverInput) (*DeleteResolverOutput, error) { + req, out := c.DeleteResolverRequest(input) + return out, req.Send() +} + +// DeleteResolverWithContext is the same as DeleteResolver with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteResolver 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 *AppSync) DeleteResolverWithContext(ctx aws.Context, input *DeleteResolverInput, opts ...request.Option) (*DeleteResolverOutput, error) { + req, out := c.DeleteResolverRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteType = "DeleteType" + +// DeleteTypeRequest generates a "aws/request.Request" representing the +// client's request for the DeleteType operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DeleteType for more information on using the DeleteType +// 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 DeleteTypeRequest method. +// req, resp := client.DeleteTypeRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/DeleteType +func (c *AppSync) DeleteTypeRequest(input *DeleteTypeInput) (req *request.Request, output *DeleteTypeOutput) { + op := &request.Operation{ + Name: opDeleteType, + HTTPMethod: "DELETE", + HTTPPath: "/v1/apis/{apiId}/types/{typeName}", + } + + if input == nil { + input = &DeleteTypeInput{} + } + + output = &DeleteTypeOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteType API operation for AWS AppSync. +// +// Deletes a Type object. +// +// 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 AppSync's +// API operation DeleteType for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Another modification is being made. That modification must complete before +// you can make your change. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/DeleteType +func (c *AppSync) DeleteType(input *DeleteTypeInput) (*DeleteTypeOutput, error) { + req, out := c.DeleteTypeRequest(input) + return out, req.Send() +} + +// DeleteTypeWithContext is the same as DeleteType with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteType 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 *AppSync) DeleteTypeWithContext(ctx aws.Context, input *DeleteTypeInput, opts ...request.Option) (*DeleteTypeOutput, error) { + req, out := c.DeleteTypeRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetDataSource = "GetDataSource" + +// GetDataSourceRequest generates a "aws/request.Request" representing the +// client's request for the GetDataSource operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See GetDataSource for more information on using the GetDataSource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the GetDataSourceRequest method. +// req, resp := client.GetDataSourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/GetDataSource +func (c *AppSync) GetDataSourceRequest(input *GetDataSourceInput) (req *request.Request, output *GetDataSourceOutput) { + op := &request.Operation{ + Name: opGetDataSource, + HTTPMethod: "GET", + HTTPPath: "/v1/apis/{apiId}/datasources/{name}", + } + + if input == nil { + input = &GetDataSourceInput{} + } + + output = &GetDataSourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetDataSource API operation for AWS AppSync. +// +// Retrieves a DataSource object. +// +// 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 AppSync's +// API operation GetDataSource for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Another modification is being made. That modification must complete before +// you can make your change. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/GetDataSource +func (c *AppSync) GetDataSource(input *GetDataSourceInput) (*GetDataSourceOutput, error) { + req, out := c.GetDataSourceRequest(input) + return out, req.Send() +} + +// GetDataSourceWithContext is the same as GetDataSource with the addition of +// the ability to pass a context and additional request options. +// +// See GetDataSource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AppSync) GetDataSourceWithContext(ctx aws.Context, input *GetDataSourceInput, opts ...request.Option) (*GetDataSourceOutput, error) { + req, out := c.GetDataSourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetGraphqlApi = "GetGraphqlApi" + +// GetGraphqlApiRequest generates a "aws/request.Request" representing the +// client's request for the GetGraphqlApi operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 GetGraphqlApi for more information on using the GetGraphqlApi +// 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 GetGraphqlApiRequest method. +// req, resp := client.GetGraphqlApiRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/GetGraphqlApi +func (c *AppSync) GetGraphqlApiRequest(input *GetGraphqlApiInput) (req *request.Request, output *GetGraphqlApiOutput) { + op := &request.Operation{ + Name: opGetGraphqlApi, + HTTPMethod: "GET", + HTTPPath: "/v1/apis/{apiId}", + } + + if input == nil { + input = &GetGraphqlApiInput{} + } + + output = &GetGraphqlApiOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetGraphqlApi API operation for AWS AppSync. +// +// Retrieves a GraphqlApi object. +// +// 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 AppSync's +// API operation GetGraphqlApi for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/GetGraphqlApi +func (c *AppSync) GetGraphqlApi(input *GetGraphqlApiInput) (*GetGraphqlApiOutput, error) { + req, out := c.GetGraphqlApiRequest(input) + return out, req.Send() +} + +// GetGraphqlApiWithContext is the same as GetGraphqlApi with the addition of +// the ability to pass a context and additional request options. +// +// See GetGraphqlApi 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 *AppSync) GetGraphqlApiWithContext(ctx aws.Context, input *GetGraphqlApiInput, opts ...request.Option) (*GetGraphqlApiOutput, error) { + req, out := c.GetGraphqlApiRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetIntrospectionSchema = "GetIntrospectionSchema" + +// GetIntrospectionSchemaRequest generates a "aws/request.Request" representing the +// client's request for the GetIntrospectionSchema operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 GetIntrospectionSchema for more information on using the GetIntrospectionSchema +// 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 GetIntrospectionSchemaRequest method. +// req, resp := client.GetIntrospectionSchemaRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/GetIntrospectionSchema +func (c *AppSync) GetIntrospectionSchemaRequest(input *GetIntrospectionSchemaInput) (req *request.Request, output *GetIntrospectionSchemaOutput) { + op := &request.Operation{ + Name: opGetIntrospectionSchema, + HTTPMethod: "GET", + HTTPPath: "/v1/apis/{apiId}/schema", + } + + if input == nil { + input = &GetIntrospectionSchemaInput{} + } + + output = &GetIntrospectionSchemaOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetIntrospectionSchema API operation for AWS AppSync. +// +// Retrieves the introspection schema for a GraphQL API. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS AppSync's +// API operation GetIntrospectionSchema for usage and error information. +// +// Returned Error Codes: +// * ErrCodeGraphQLSchemaException "GraphQLSchemaException" +// The GraphQL schema is not valid. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/GetIntrospectionSchema +func (c *AppSync) GetIntrospectionSchema(input *GetIntrospectionSchemaInput) (*GetIntrospectionSchemaOutput, error) { + req, out := c.GetIntrospectionSchemaRequest(input) + return out, req.Send() +} + +// GetIntrospectionSchemaWithContext is the same as GetIntrospectionSchema with the addition of +// the ability to pass a context and additional request options. +// +// See GetIntrospectionSchema 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 *AppSync) GetIntrospectionSchemaWithContext(ctx aws.Context, input *GetIntrospectionSchemaInput, opts ...request.Option) (*GetIntrospectionSchemaOutput, error) { + req, out := c.GetIntrospectionSchemaRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetResolver = "GetResolver" + +// GetResolverRequest generates a "aws/request.Request" representing the +// client's request for the GetResolver operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 GetResolver for more information on using the GetResolver +// 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 GetResolverRequest method. +// req, resp := client.GetResolverRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/GetResolver +func (c *AppSync) GetResolverRequest(input *GetResolverInput) (req *request.Request, output *GetResolverOutput) { + op := &request.Operation{ + Name: opGetResolver, + HTTPMethod: "GET", + HTTPPath: "/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}", + } + + if input == nil { + input = &GetResolverInput{} + } + + output = &GetResolverOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetResolver API operation for AWS AppSync. +// +// Retrieves a Resolver object. +// +// 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 AppSync's +// API operation GetResolver for usage and error information. +// +// Returned Error Codes: +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Another modification is being made. That modification must complete before +// you can make your change. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/GetResolver +func (c *AppSync) GetResolver(input *GetResolverInput) (*GetResolverOutput, error) { + req, out := c.GetResolverRequest(input) + return out, req.Send() +} + +// GetResolverWithContext is the same as GetResolver with the addition of +// the ability to pass a context and additional request options. +// +// See GetResolver 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 *AppSync) GetResolverWithContext(ctx aws.Context, input *GetResolverInput, opts ...request.Option) (*GetResolverOutput, error) { + req, out := c.GetResolverRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetSchemaCreationStatus = "GetSchemaCreationStatus" + +// GetSchemaCreationStatusRequest generates a "aws/request.Request" representing the +// client's request for the GetSchemaCreationStatus operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 GetSchemaCreationStatus for more information on using the GetSchemaCreationStatus +// 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 GetSchemaCreationStatusRequest method. +// req, resp := client.GetSchemaCreationStatusRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/GetSchemaCreationStatus +func (c *AppSync) GetSchemaCreationStatusRequest(input *GetSchemaCreationStatusInput) (req *request.Request, output *GetSchemaCreationStatusOutput) { + op := &request.Operation{ + Name: opGetSchemaCreationStatus, + HTTPMethod: "GET", + HTTPPath: "/v1/apis/{apiId}/schemacreation", + } + + if input == nil { + input = &GetSchemaCreationStatusInput{} + } + + output = &GetSchemaCreationStatusOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetSchemaCreationStatus API operation for AWS AppSync. +// +// Retrieves the current status of a schema creation operation. +// +// 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 AppSync's +// API operation GetSchemaCreationStatus for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/GetSchemaCreationStatus +func (c *AppSync) GetSchemaCreationStatus(input *GetSchemaCreationStatusInput) (*GetSchemaCreationStatusOutput, error) { + req, out := c.GetSchemaCreationStatusRequest(input) + return out, req.Send() +} + +// GetSchemaCreationStatusWithContext is the same as GetSchemaCreationStatus with the addition of +// the ability to pass a context and additional request options. +// +// See GetSchemaCreationStatus 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 *AppSync) GetSchemaCreationStatusWithContext(ctx aws.Context, input *GetSchemaCreationStatusInput, opts ...request.Option) (*GetSchemaCreationStatusOutput, error) { + req, out := c.GetSchemaCreationStatusRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opGetType = "GetType" + +// GetTypeRequest generates a "aws/request.Request" representing the +// client's request for the GetType operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 GetType for more information on using the GetType +// 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 GetTypeRequest method. +// req, resp := client.GetTypeRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/GetType +func (c *AppSync) GetTypeRequest(input *GetTypeInput) (req *request.Request, output *GetTypeOutput) { + op := &request.Operation{ + Name: opGetType, + HTTPMethod: "GET", + HTTPPath: "/v1/apis/{apiId}/types/{typeName}", + } + + if input == nil { + input = &GetTypeInput{} + } + + output = &GetTypeOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetType API operation for AWS AppSync. +// +// Retrieves a Type object. +// +// 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 AppSync's +// API operation GetType for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Another modification is being made. That modification must complete before +// you can make your change. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/GetType +func (c *AppSync) GetType(input *GetTypeInput) (*GetTypeOutput, error) { + req, out := c.GetTypeRequest(input) + return out, req.Send() +} + +// GetTypeWithContext is the same as GetType with the addition of +// the ability to pass a context and additional request options. +// +// See GetType 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 *AppSync) GetTypeWithContext(ctx aws.Context, input *GetTypeInput, opts ...request.Option) (*GetTypeOutput, error) { + req, out := c.GetTypeRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListApiKeys = "ListApiKeys" + +// ListApiKeysRequest generates a "aws/request.Request" representing the +// client's request for the ListApiKeys operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 ListApiKeys for more information on using the ListApiKeys +// 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 ListApiKeysRequest method. +// req, resp := client.ListApiKeysRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/ListApiKeys +func (c *AppSync) ListApiKeysRequest(input *ListApiKeysInput) (req *request.Request, output *ListApiKeysOutput) { + op := &request.Operation{ + Name: opListApiKeys, + HTTPMethod: "GET", + HTTPPath: "/v1/apis/{apiId}/apikeys", + } + + if input == nil { + input = &ListApiKeysInput{} + } + + output = &ListApiKeysOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListApiKeys API operation for AWS AppSync. +// +// Lists the API keys for a given API. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS AppSync's +// API operation ListApiKeys for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/ListApiKeys +func (c *AppSync) ListApiKeys(input *ListApiKeysInput) (*ListApiKeysOutput, error) { + req, out := c.ListApiKeysRequest(input) + return out, req.Send() +} + +// ListApiKeysWithContext is the same as ListApiKeys with the addition of +// the ability to pass a context and additional request options. +// +// See ListApiKeys 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 *AppSync) ListApiKeysWithContext(ctx aws.Context, input *ListApiKeysInput, opts ...request.Option) (*ListApiKeysOutput, error) { + req, out := c.ListApiKeysRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListDataSources = "ListDataSources" + +// ListDataSourcesRequest generates a "aws/request.Request" representing the +// client's request for the ListDataSources operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See ListDataSources for more information on using the ListDataSources +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the ListDataSourcesRequest method. +// req, resp := client.ListDataSourcesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/ListDataSources +func (c *AppSync) ListDataSourcesRequest(input *ListDataSourcesInput) (req *request.Request, output *ListDataSourcesOutput) { + op := &request.Operation{ + Name: opListDataSources, + HTTPMethod: "GET", + HTTPPath: "/v1/apis/{apiId}/datasources", + } + + if input == nil { + input = &ListDataSourcesInput{} + } + + output = &ListDataSourcesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListDataSources API operation for AWS AppSync. +// +// Lists the data sources for a given API. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS AppSync's +// API operation ListDataSources for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/ListDataSources +func (c *AppSync) ListDataSources(input *ListDataSourcesInput) (*ListDataSourcesOutput, error) { + req, out := c.ListDataSourcesRequest(input) + return out, req.Send() +} + +// ListDataSourcesWithContext is the same as ListDataSources with the addition of +// the ability to pass a context and additional request options. +// +// See ListDataSources for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AppSync) ListDataSourcesWithContext(ctx aws.Context, input *ListDataSourcesInput, opts ...request.Option) (*ListDataSourcesOutput, error) { + req, out := c.ListDataSourcesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListGraphqlApis = "ListGraphqlApis" + +// ListGraphqlApisRequest generates a "aws/request.Request" representing the +// client's request for the ListGraphqlApis operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 ListGraphqlApis for more information on using the ListGraphqlApis +// 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 ListGraphqlApisRequest method. +// req, resp := client.ListGraphqlApisRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/ListGraphqlApis +func (c *AppSync) ListGraphqlApisRequest(input *ListGraphqlApisInput) (req *request.Request, output *ListGraphqlApisOutput) { + op := &request.Operation{ + Name: opListGraphqlApis, + HTTPMethod: "GET", + HTTPPath: "/v1/apis", + } + + if input == nil { + input = &ListGraphqlApisInput{} + } + + output = &ListGraphqlApisOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListGraphqlApis API operation for AWS AppSync. +// +// Lists your GraphQL APIs. +// +// 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 AppSync's +// API operation ListGraphqlApis for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/ListGraphqlApis +func (c *AppSync) ListGraphqlApis(input *ListGraphqlApisInput) (*ListGraphqlApisOutput, error) { + req, out := c.ListGraphqlApisRequest(input) + return out, req.Send() +} + +// ListGraphqlApisWithContext is the same as ListGraphqlApis with the addition of +// the ability to pass a context and additional request options. +// +// See ListGraphqlApis 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 *AppSync) ListGraphqlApisWithContext(ctx aws.Context, input *ListGraphqlApisInput, opts ...request.Option) (*ListGraphqlApisOutput, error) { + req, out := c.ListGraphqlApisRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListResolvers = "ListResolvers" + +// ListResolversRequest generates a "aws/request.Request" representing the +// client's request for the ListResolvers operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 ListResolvers for more information on using the ListResolvers +// 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 ListResolversRequest method. +// req, resp := client.ListResolversRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/ListResolvers +func (c *AppSync) ListResolversRequest(input *ListResolversInput) (req *request.Request, output *ListResolversOutput) { + op := &request.Operation{ + Name: opListResolvers, + HTTPMethod: "GET", + HTTPPath: "/v1/apis/{apiId}/types/{typeName}/resolvers", + } + + if input == nil { + input = &ListResolversInput{} + } + + output = &ListResolversOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListResolvers API operation for AWS AppSync. +// +// Lists the resolvers for a given API and type. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS AppSync's +// API operation ListResolvers for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/ListResolvers +func (c *AppSync) ListResolvers(input *ListResolversInput) (*ListResolversOutput, error) { + req, out := c.ListResolversRequest(input) + return out, req.Send() +} + +// ListResolversWithContext is the same as ListResolvers with the addition of +// the ability to pass a context and additional request options. +// +// See ListResolvers 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 *AppSync) ListResolversWithContext(ctx aws.Context, input *ListResolversInput, opts ...request.Option) (*ListResolversOutput, error) { + req, out := c.ListResolversRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListTypes = "ListTypes" + +// ListTypesRequest generates a "aws/request.Request" representing the +// client's request for the ListTypes operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 ListTypes for more information on using the ListTypes +// 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 ListTypesRequest method. +// req, resp := client.ListTypesRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/ListTypes +func (c *AppSync) ListTypesRequest(input *ListTypesInput) (req *request.Request, output *ListTypesOutput) { + op := &request.Operation{ + Name: opListTypes, + HTTPMethod: "GET", + HTTPPath: "/v1/apis/{apiId}/types", + } + + if input == nil { + input = &ListTypesInput{} + } + + output = &ListTypesOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListTypes API operation for AWS AppSync. +// +// Lists the types for a given API. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for AWS AppSync's +// API operation ListTypes for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Another modification is being made. That modification must complete before +// you can make your change. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/ListTypes +func (c *AppSync) ListTypes(input *ListTypesInput) (*ListTypesOutput, error) { + req, out := c.ListTypesRequest(input) + return out, req.Send() +} + +// ListTypesWithContext is the same as ListTypes with the addition of +// the ability to pass a context and additional request options. +// +// See ListTypes 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 *AppSync) ListTypesWithContext(ctx aws.Context, input *ListTypesInput, opts ...request.Option) (*ListTypesOutput, error) { + req, out := c.ListTypesRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opStartSchemaCreation = "StartSchemaCreation" + +// StartSchemaCreationRequest generates a "aws/request.Request" representing the +// client's request for the StartSchemaCreation operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 StartSchemaCreation for more information on using the StartSchemaCreation +// 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 StartSchemaCreationRequest method. +// req, resp := client.StartSchemaCreationRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/StartSchemaCreation +func (c *AppSync) StartSchemaCreationRequest(input *StartSchemaCreationInput) (req *request.Request, output *StartSchemaCreationOutput) { + op := &request.Operation{ + Name: opStartSchemaCreation, + HTTPMethod: "POST", + HTTPPath: "/v1/apis/{apiId}/schemacreation", + } + + if input == nil { + input = &StartSchemaCreationInput{} + } + + output = &StartSchemaCreationOutput{} + req = c.newRequest(op, input, output) + return +} + +// StartSchemaCreation API operation for AWS AppSync. +// +// Adds a new schema to your GraphQL API. +// +// This operation is asynchronous. Use to determine when it has completed. +// +// 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 AppSync's +// API operation StartSchemaCreation for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Another modification is being made. That modification must complete before +// you can make your change. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/StartSchemaCreation +func (c *AppSync) StartSchemaCreation(input *StartSchemaCreationInput) (*StartSchemaCreationOutput, error) { + req, out := c.StartSchemaCreationRequest(input) + return out, req.Send() +} + +// StartSchemaCreationWithContext is the same as StartSchemaCreation with the addition of +// the ability to pass a context and additional request options. +// +// See StartSchemaCreation 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 *AppSync) StartSchemaCreationWithContext(ctx aws.Context, input *StartSchemaCreationInput, opts ...request.Option) (*StartSchemaCreationOutput, error) { + req, out := c.StartSchemaCreationRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateApiKey = "UpdateApiKey" + +// UpdateApiKeyRequest generates a "aws/request.Request" representing the +// client's request for the UpdateApiKey operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 UpdateApiKey for more information on using the UpdateApiKey +// 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 UpdateApiKeyRequest method. +// req, resp := client.UpdateApiKeyRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/UpdateApiKey +func (c *AppSync) UpdateApiKeyRequest(input *UpdateApiKeyInput) (req *request.Request, output *UpdateApiKeyOutput) { + op := &request.Operation{ + Name: opUpdateApiKey, + HTTPMethod: "POST", + HTTPPath: "/v1/apis/{apiId}/apikeys/{id}", + } + + if input == nil { + input = &UpdateApiKeyInput{} + } + + output = &UpdateApiKeyOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateApiKey API operation for AWS AppSync. +// +// Updates an API key. +// +// 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 AppSync's +// API operation UpdateApiKey for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeLimitExceededException "LimitExceededException" +// The request exceeded a limit. Try your request again. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// * ErrCodeApiKeyValidityOutOfBoundsException "ApiKeyValidityOutOfBoundsException" +// The API key expiration must be set to a value between 1 and 365 days. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/UpdateApiKey +func (c *AppSync) UpdateApiKey(input *UpdateApiKeyInput) (*UpdateApiKeyOutput, error) { + req, out := c.UpdateApiKeyRequest(input) + return out, req.Send() +} + +// UpdateApiKeyWithContext is the same as UpdateApiKey with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateApiKey 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 *AppSync) UpdateApiKeyWithContext(ctx aws.Context, input *UpdateApiKeyInput, opts ...request.Option) (*UpdateApiKeyOutput, error) { + req, out := c.UpdateApiKeyRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateDataSource = "UpdateDataSource" + +// UpdateDataSourceRequest generates a "aws/request.Request" representing the +// client's request for the UpdateDataSource operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// Use "Send" method on the returned Request to send the API call to the service. +// the "output" return value is not valid until after Send returns without error. +// +// See UpdateDataSource for more information on using the UpdateDataSource +// API call, and error handling. +// +// This method is useful when you want to inject custom logic or configuration +// into the SDK's request lifecycle. Such as custom headers, or retry logic. +// +// +// // Example sending a request using the UpdateDataSourceRequest method. +// req, resp := client.UpdateDataSourceRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/UpdateDataSource +func (c *AppSync) UpdateDataSourceRequest(input *UpdateDataSourceInput) (req *request.Request, output *UpdateDataSourceOutput) { + op := &request.Operation{ + Name: opUpdateDataSource, + HTTPMethod: "POST", + HTTPPath: "/v1/apis/{apiId}/datasources/{name}", + } + + if input == nil { + input = &UpdateDataSourceInput{} + } + + output = &UpdateDataSourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateDataSource API operation for AWS AppSync. +// +// Updates a DataSource object. +// +// 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 AppSync's +// API operation UpdateDataSource for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Another modification is being made. That modification must complete before +// you can make your change. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/UpdateDataSource +func (c *AppSync) UpdateDataSource(input *UpdateDataSourceInput) (*UpdateDataSourceOutput, error) { + req, out := c.UpdateDataSourceRequest(input) + return out, req.Send() +} + +// UpdateDataSourceWithContext is the same as UpdateDataSource with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateDataSource for details on how to use this API operation. +// +// The context must be non-nil and will be used for request cancellation. If +// the context is nil a panic will occur. In the future the SDK may create +// sub-contexts for http.Requests. See https://golang.org/pkg/context/ +// for more information on using Contexts. +func (c *AppSync) UpdateDataSourceWithContext(ctx aws.Context, input *UpdateDataSourceInput, opts ...request.Option) (*UpdateDataSourceOutput, error) { + req, out := c.UpdateDataSourceRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateGraphqlApi = "UpdateGraphqlApi" + +// UpdateGraphqlApiRequest generates a "aws/request.Request" representing the +// client's request for the UpdateGraphqlApi operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 UpdateGraphqlApi for more information on using the UpdateGraphqlApi +// 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 UpdateGraphqlApiRequest method. +// req, resp := client.UpdateGraphqlApiRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/UpdateGraphqlApi +func (c *AppSync) UpdateGraphqlApiRequest(input *UpdateGraphqlApiInput) (req *request.Request, output *UpdateGraphqlApiOutput) { + op := &request.Operation{ + Name: opUpdateGraphqlApi, + HTTPMethod: "POST", + HTTPPath: "/v1/apis/{apiId}", + } + + if input == nil { + input = &UpdateGraphqlApiInput{} + } + + output = &UpdateGraphqlApiOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateGraphqlApi API operation for AWS AppSync. +// +// Updates a GraphqlApi object. +// +// 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 AppSync's +// API operation UpdateGraphqlApi for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Another modification is being made. That modification must complete before +// you can make your change. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/UpdateGraphqlApi +func (c *AppSync) UpdateGraphqlApi(input *UpdateGraphqlApiInput) (*UpdateGraphqlApiOutput, error) { + req, out := c.UpdateGraphqlApiRequest(input) + return out, req.Send() +} + +// UpdateGraphqlApiWithContext is the same as UpdateGraphqlApi with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateGraphqlApi 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 *AppSync) UpdateGraphqlApiWithContext(ctx aws.Context, input *UpdateGraphqlApiInput, opts ...request.Option) (*UpdateGraphqlApiOutput, error) { + req, out := c.UpdateGraphqlApiRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateResolver = "UpdateResolver" + +// UpdateResolverRequest generates a "aws/request.Request" representing the +// client's request for the UpdateResolver operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 UpdateResolver for more information on using the UpdateResolver +// 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 UpdateResolverRequest method. +// req, resp := client.UpdateResolverRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/UpdateResolver +func (c *AppSync) UpdateResolverRequest(input *UpdateResolverInput) (req *request.Request, output *UpdateResolverOutput) { + op := &request.Operation{ + Name: opUpdateResolver, + HTTPMethod: "POST", + HTTPPath: "/v1/apis/{apiId}/types/{typeName}/resolvers/{fieldName}", + } + + if input == nil { + input = &UpdateResolverInput{} + } + + output = &UpdateResolverOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateResolver API operation for AWS AppSync. +// +// Updates a Resolver object. +// +// 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 AppSync's +// API operation UpdateResolver for usage and error information. +// +// Returned Error Codes: +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Another modification is being made. That modification must complete before +// you can make your change. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/UpdateResolver +func (c *AppSync) UpdateResolver(input *UpdateResolverInput) (*UpdateResolverOutput, error) { + req, out := c.UpdateResolverRequest(input) + return out, req.Send() +} + +// UpdateResolverWithContext is the same as UpdateResolver with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateResolver 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 *AppSync) UpdateResolverWithContext(ctx aws.Context, input *UpdateResolverInput, opts ...request.Option) (*UpdateResolverOutput, error) { + req, out := c.UpdateResolverRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateType = "UpdateType" + +// UpdateTypeRequest generates a "aws/request.Request" representing the +// client's request for the UpdateType operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 UpdateType for more information on using the UpdateType +// 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 UpdateTypeRequest method. +// req, resp := client.UpdateTypeRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/UpdateType +func (c *AppSync) UpdateTypeRequest(input *UpdateTypeInput) (req *request.Request, output *UpdateTypeOutput) { + op := &request.Operation{ + Name: opUpdateType, + HTTPMethod: "POST", + HTTPPath: "/v1/apis/{apiId}/types/{typeName}", + } + + if input == nil { + input = &UpdateTypeInput{} + } + + output = &UpdateTypeOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateType API operation for AWS AppSync. +// +// Updates a Type object. +// +// 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 AppSync's +// API operation UpdateType for usage and error information. +// +// Returned Error Codes: +// * ErrCodeBadRequestException "BadRequestException" +// The request is not well formed. For example, a value is invalid or a required +// field is missing. Check the field values, and try again. +// +// * ErrCodeConcurrentModificationException "ConcurrentModificationException" +// Another modification is being made. That modification must complete before +// you can make your change. +// +// * ErrCodeNotFoundException "NotFoundException" +// The resource specified in the request was not found. Check the resource and +// try again. +// +// * ErrCodeUnauthorizedException "UnauthorizedException" +// You are not authorized to perform this operation. +// +// * ErrCodeInternalFailureException "InternalFailureException" +// An internal AWS AppSync error occurred. Try your request again. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25/UpdateType +func (c *AppSync) UpdateType(input *UpdateTypeInput) (*UpdateTypeOutput, error) { + req, out := c.UpdateTypeRequest(input) + return out, req.Send() +} + +// UpdateTypeWithContext is the same as UpdateType with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateType 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 *AppSync) UpdateTypeWithContext(ctx aws.Context, input *UpdateTypeInput, opts ...request.Option) (*UpdateTypeOutput, error) { + req, out := c.UpdateTypeRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// Describes an API key. +type ApiKey struct { + _ struct{} `type:"structure"` + + // A description of the purpose of the API key. + Description *string `locationName:"description" type:"string"` + + // The time after which the API key expires. The date is represented as seconds + // since the epoch, rounded down to the nearest hour. + Expires *int64 `locationName:"expires" type:"long"` + + // The API key ID. + Id *string `locationName:"id" type:"string"` +} + +// String returns the string representation +func (s ApiKey) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ApiKey) GoString() string { + return s.String() +} + +// SetDescription sets the Description field's value. +func (s *ApiKey) SetDescription(v string) *ApiKey { + s.Description = &v + return s +} + +// SetExpires sets the Expires field's value. +func (s *ApiKey) SetExpires(v int64) *ApiKey { + s.Expires = &v + return s +} + +// SetId sets the Id field's value. +func (s *ApiKey) SetId(v string) *ApiKey { + s.Id = &v + return s +} + +type CreateApiKeyInput struct { + _ struct{} `type:"structure"` + + // The ID for your GraphQL API. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // A description of the purpose of the API key. + Description *string `locationName:"description" type:"string"` + + // The time after which the API key expires. The date is represented as seconds + // since the epoch, rounded down to the nearest hour. The default value for + // this parameter is 7 days from creation time. + Expires *int64 `locationName:"expires" type:"long"` +} + +// String returns the string representation +func (s CreateApiKeyInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateApiKeyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateApiKeyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateApiKeyInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *CreateApiKeyInput) SetApiId(v string) *CreateApiKeyInput { + s.ApiId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CreateApiKeyInput) SetDescription(v string) *CreateApiKeyInput { + s.Description = &v + return s +} + +// SetExpires sets the Expires field's value. +func (s *CreateApiKeyInput) SetExpires(v int64) *CreateApiKeyInput { + s.Expires = &v + return s +} + +type CreateApiKeyOutput struct { + _ struct{} `type:"structure"` + + // The API key. + ApiKey *ApiKey `locationName:"apiKey" type:"structure"` +} + +// String returns the string representation +func (s CreateApiKeyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateApiKeyOutput) GoString() string { + return s.String() +} + +// SetApiKey sets the ApiKey field's value. +func (s *CreateApiKeyOutput) SetApiKey(v *ApiKey) *CreateApiKeyOutput { + s.ApiKey = v + return s +} + +type CreateDataSourceInput struct { + _ struct{} `type:"structure"` + + // The API ID for the GraphQL API for the DataSource. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // A description of the DataSource. + Description *string `locationName:"description" type:"string"` + + // DynamoDB settings. + DynamodbConfig *DynamodbDataSourceConfig `locationName:"dynamodbConfig" type:"structure"` + + // Amazon Elasticsearch settings. + ElasticsearchConfig *ElasticsearchDataSourceConfig `locationName:"elasticsearchConfig" type:"structure"` + + // AWS Lambda settings. + LambdaConfig *LambdaDataSourceConfig `locationName:"lambdaConfig" type:"structure"` + + // A user-supplied name for the DataSource. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // The IAM service role ARN for the data source. The system assumes this role + // when accessing the data source. + ServiceRoleArn *string `locationName:"serviceRoleArn" type:"string"` + + // The type of the DataSource. + // + // Type is a required field + Type *string `locationName:"type" type:"string" required:"true" enum:"DataSourceType"` +} + +// String returns the string representation +func (s CreateDataSourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateDataSourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateDataSourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateDataSourceInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Type == nil { + invalidParams.Add(request.NewErrParamRequired("Type")) + } + if s.DynamodbConfig != nil { + if err := s.DynamodbConfig.Validate(); err != nil { + invalidParams.AddNested("DynamodbConfig", err.(request.ErrInvalidParams)) + } + } + if s.ElasticsearchConfig != nil { + if err := s.ElasticsearchConfig.Validate(); err != nil { + invalidParams.AddNested("ElasticsearchConfig", err.(request.ErrInvalidParams)) + } + } + if s.LambdaConfig != nil { + if err := s.LambdaConfig.Validate(); err != nil { + invalidParams.AddNested("LambdaConfig", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *CreateDataSourceInput) SetApiId(v string) *CreateDataSourceInput { + s.ApiId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CreateDataSourceInput) SetDescription(v string) *CreateDataSourceInput { + s.Description = &v + return s +} + +// SetDynamodbConfig sets the DynamodbConfig field's value. +func (s *CreateDataSourceInput) SetDynamodbConfig(v *DynamodbDataSourceConfig) *CreateDataSourceInput { + s.DynamodbConfig = v + return s +} + +// SetElasticsearchConfig sets the ElasticsearchConfig field's value. +func (s *CreateDataSourceInput) SetElasticsearchConfig(v *ElasticsearchDataSourceConfig) *CreateDataSourceInput { + s.ElasticsearchConfig = v + return s +} + +// SetLambdaConfig sets the LambdaConfig field's value. +func (s *CreateDataSourceInput) SetLambdaConfig(v *LambdaDataSourceConfig) *CreateDataSourceInput { + s.LambdaConfig = v + return s +} + +// SetName sets the Name field's value. +func (s *CreateDataSourceInput) SetName(v string) *CreateDataSourceInput { + s.Name = &v + return s +} + +// SetServiceRoleArn sets the ServiceRoleArn field's value. +func (s *CreateDataSourceInput) SetServiceRoleArn(v string) *CreateDataSourceInput { + s.ServiceRoleArn = &v + return s +} + +// SetType sets the Type field's value. +func (s *CreateDataSourceInput) SetType(v string) *CreateDataSourceInput { + s.Type = &v + return s +} + +type CreateDataSourceOutput struct { + _ struct{} `type:"structure"` + + // The DataSource object. + DataSource *DataSource `locationName:"dataSource" type:"structure"` +} + +// String returns the string representation +func (s CreateDataSourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateDataSourceOutput) GoString() string { + return s.String() +} + +// SetDataSource sets the DataSource field's value. +func (s *CreateDataSourceOutput) SetDataSource(v *DataSource) *CreateDataSourceOutput { + s.DataSource = v + return s +} + +type CreateGraphqlApiInput struct { + _ struct{} `type:"structure"` + + // The authentication type: API key, IAM, or Amazon Cognito User Pools. + // + // AuthenticationType is a required field + AuthenticationType *string `locationName:"authenticationType" type:"string" required:"true" enum:"AuthenticationType"` + + // A user-supplied name for the GraphqlApi. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // The Amazon Cognito User Pool configuration. + UserPoolConfig *UserPoolConfig `locationName:"userPoolConfig" type:"structure"` +} + +// String returns the string representation +func (s CreateGraphqlApiInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateGraphqlApiInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateGraphqlApiInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateGraphqlApiInput"} + if s.AuthenticationType == nil { + invalidParams.Add(request.NewErrParamRequired("AuthenticationType")) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.UserPoolConfig != nil { + if err := s.UserPoolConfig.Validate(); err != nil { + invalidParams.AddNested("UserPoolConfig", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAuthenticationType sets the AuthenticationType field's value. +func (s *CreateGraphqlApiInput) SetAuthenticationType(v string) *CreateGraphqlApiInput { + s.AuthenticationType = &v + return s +} + +// SetName sets the Name field's value. +func (s *CreateGraphqlApiInput) SetName(v string) *CreateGraphqlApiInput { + s.Name = &v + return s +} + +// SetUserPoolConfig sets the UserPoolConfig field's value. +func (s *CreateGraphqlApiInput) SetUserPoolConfig(v *UserPoolConfig) *CreateGraphqlApiInput { + s.UserPoolConfig = v + return s +} + +type CreateGraphqlApiOutput struct { + _ struct{} `type:"structure"` + + // The GraphqlApi. + GraphqlApi *GraphqlApi `locationName:"graphqlApi" type:"structure"` +} + +// String returns the string representation +func (s CreateGraphqlApiOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateGraphqlApiOutput) GoString() string { + return s.String() +} + +// SetGraphqlApi sets the GraphqlApi field's value. +func (s *CreateGraphqlApiOutput) SetGraphqlApi(v *GraphqlApi) *CreateGraphqlApiOutput { + s.GraphqlApi = v + return s +} + +type CreateResolverInput struct { + _ struct{} `type:"structure"` + + // The ID for the GraphQL API for which the resolver is being created. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // The name of the data source for which the resolver is being created. + // + // DataSourceName is a required field + DataSourceName *string `locationName:"dataSourceName" type:"string" required:"true"` + + // The name of the field to attach the resolver to. + // + // FieldName is a required field + FieldName *string `locationName:"fieldName" type:"string" required:"true"` + + // The mapping template to be used for requests. + // + // A resolver uses a request mapping template to convert a GraphQL expression + // into a format that a data source can understand. Mapping templates are written + // in Apache Velocity Template Language (VTL). + // + // RequestMappingTemplate is a required field + RequestMappingTemplate *string `locationName:"requestMappingTemplate" type:"string" required:"true"` + + // The mapping template to be used for responses from the data source. + ResponseMappingTemplate *string `locationName:"responseMappingTemplate" type:"string"` + + // The name of the Type. + // + // TypeName is a required field + TypeName *string `location:"uri" locationName:"typeName" type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateResolverInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateResolverInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateResolverInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateResolverInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + if s.DataSourceName == nil { + invalidParams.Add(request.NewErrParamRequired("DataSourceName")) + } + if s.FieldName == nil { + invalidParams.Add(request.NewErrParamRequired("FieldName")) + } + if s.RequestMappingTemplate == nil { + invalidParams.Add(request.NewErrParamRequired("RequestMappingTemplate")) + } + if s.TypeName == nil { + invalidParams.Add(request.NewErrParamRequired("TypeName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *CreateResolverInput) SetApiId(v string) *CreateResolverInput { + s.ApiId = &v + return s +} + +// SetDataSourceName sets the DataSourceName field's value. +func (s *CreateResolverInput) SetDataSourceName(v string) *CreateResolverInput { + s.DataSourceName = &v + return s +} + +// SetFieldName sets the FieldName field's value. +func (s *CreateResolverInput) SetFieldName(v string) *CreateResolverInput { + s.FieldName = &v + return s +} + +// SetRequestMappingTemplate sets the RequestMappingTemplate field's value. +func (s *CreateResolverInput) SetRequestMappingTemplate(v string) *CreateResolverInput { + s.RequestMappingTemplate = &v + return s +} + +// SetResponseMappingTemplate sets the ResponseMappingTemplate field's value. +func (s *CreateResolverInput) SetResponseMappingTemplate(v string) *CreateResolverInput { + s.ResponseMappingTemplate = &v + return s +} + +// SetTypeName sets the TypeName field's value. +func (s *CreateResolverInput) SetTypeName(v string) *CreateResolverInput { + s.TypeName = &v + return s +} + +type CreateResolverOutput struct { + _ struct{} `type:"structure"` + + // The Resolver object. + Resolver *Resolver `locationName:"resolver" type:"structure"` +} + +// String returns the string representation +func (s CreateResolverOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateResolverOutput) GoString() string { + return s.String() +} + +// SetResolver sets the Resolver field's value. +func (s *CreateResolverOutput) SetResolver(v *Resolver) *CreateResolverOutput { + s.Resolver = v + return s +} + +type CreateTypeInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // The type definition, in GraphQL Schema Definition Language (SDL) format. + // + // For more information, see the GraphQL SDL documentation (http://graphql.org/learn/schema/). + // + // Definition is a required field + Definition *string `locationName:"definition" type:"string" required:"true"` + + // The type format: SDL or JSON. + // + // Format is a required field + Format *string `locationName:"format" type:"string" required:"true" enum:"TypeDefinitionFormat"` +} + +// String returns the string representation +func (s CreateTypeInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateTypeInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateTypeInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateTypeInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + if s.Definition == nil { + invalidParams.Add(request.NewErrParamRequired("Definition")) + } + if s.Format == nil { + invalidParams.Add(request.NewErrParamRequired("Format")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *CreateTypeInput) SetApiId(v string) *CreateTypeInput { + s.ApiId = &v + return s +} + +// SetDefinition sets the Definition field's value. +func (s *CreateTypeInput) SetDefinition(v string) *CreateTypeInput { + s.Definition = &v + return s +} + +// SetFormat sets the Format field's value. +func (s *CreateTypeInput) SetFormat(v string) *CreateTypeInput { + s.Format = &v + return s +} + +type CreateTypeOutput struct { + _ struct{} `type:"structure"` + + // The Type object. + Type *Type `locationName:"type" type:"structure"` +} + +// String returns the string representation +func (s CreateTypeOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateTypeOutput) GoString() string { + return s.String() +} + +// SetType sets the Type field's value. +func (s *CreateTypeOutput) SetType(v *Type) *CreateTypeOutput { + s.Type = v + return s +} + +// Describes a data source. +type DataSource struct { + _ struct{} `type:"structure"` + + // The data source ARN. + DataSourceArn *string `locationName:"dataSourceArn" type:"string"` + + // The description of the data source. + Description *string `locationName:"description" type:"string"` + + // DynamoDB settings. + DynamodbConfig *DynamodbDataSourceConfig `locationName:"dynamodbConfig" type:"structure"` + + // Amazon Elasticsearch settings. + ElasticsearchConfig *ElasticsearchDataSourceConfig `locationName:"elasticsearchConfig" type:"structure"` + + // Lambda settings. + LambdaConfig *LambdaDataSourceConfig `locationName:"lambdaConfig" type:"structure"` + + // The name of the data source. + Name *string `locationName:"name" type:"string"` + + // The IAM service role ARN for the data source. The system assumes this role + // when accessing the data source. + ServiceRoleArn *string `locationName:"serviceRoleArn" type:"string"` + + // The type of the data source. + // + // * AMAZON_DYNAMODB: The data source is an Amazon DynamoDB table. + // + // * AMAZON_ELASTICSEARCH: The data source is an Amazon Elasticsearch Service + // domain. + // + // * AWS_LAMBDA: The data source is an AWS Lambda function. + // + // * NONE: There is no data source. This type is used when the required information + // can be computed on the fly without connecting to a back-end data source. + Type *string `locationName:"type" type:"string" enum:"DataSourceType"` +} + +// String returns the string representation +func (s DataSource) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DataSource) GoString() string { + return s.String() +} + +// SetDataSourceArn sets the DataSourceArn field's value. +func (s *DataSource) SetDataSourceArn(v string) *DataSource { + s.DataSourceArn = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *DataSource) SetDescription(v string) *DataSource { + s.Description = &v + return s +} + +// SetDynamodbConfig sets the DynamodbConfig field's value. +func (s *DataSource) SetDynamodbConfig(v *DynamodbDataSourceConfig) *DataSource { + s.DynamodbConfig = v + return s +} + +// SetElasticsearchConfig sets the ElasticsearchConfig field's value. +func (s *DataSource) SetElasticsearchConfig(v *ElasticsearchDataSourceConfig) *DataSource { + s.ElasticsearchConfig = v + return s +} + +// SetLambdaConfig sets the LambdaConfig field's value. +func (s *DataSource) SetLambdaConfig(v *LambdaDataSourceConfig) *DataSource { + s.LambdaConfig = v + return s +} + +// SetName sets the Name field's value. +func (s *DataSource) SetName(v string) *DataSource { + s.Name = &v + return s +} + +// SetServiceRoleArn sets the ServiceRoleArn field's value. +func (s *DataSource) SetServiceRoleArn(v string) *DataSource { + s.ServiceRoleArn = &v + return s +} + +// SetType sets the Type field's value. +func (s *DataSource) SetType(v string) *DataSource { + s.Type = &v + return s +} + +type DeleteApiKeyInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // The ID for the API key. + // + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteApiKeyInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteApiKeyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteApiKeyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteApiKeyInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *DeleteApiKeyInput) SetApiId(v string) *DeleteApiKeyInput { + s.ApiId = &v + return s +} + +// SetId sets the Id field's value. +func (s *DeleteApiKeyInput) SetId(v string) *DeleteApiKeyInput { + s.Id = &v + return s +} + +type DeleteApiKeyOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteApiKeyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteApiKeyOutput) GoString() string { + return s.String() +} + +type DeleteDataSourceInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // The name of the data source. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteDataSourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteDataSourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteDataSourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteDataSourceInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *DeleteDataSourceInput) SetApiId(v string) *DeleteDataSourceInput { + s.ApiId = &v + return s +} + +// SetName sets the Name field's value. +func (s *DeleteDataSourceInput) SetName(v string) *DeleteDataSourceInput { + s.Name = &v + return s +} + +type DeleteDataSourceOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteDataSourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteDataSourceOutput) GoString() string { + return s.String() +} + +type DeleteGraphqlApiInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteGraphqlApiInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteGraphqlApiInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteGraphqlApiInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteGraphqlApiInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *DeleteGraphqlApiInput) SetApiId(v string) *DeleteGraphqlApiInput { + s.ApiId = &v + return s +} + +type DeleteGraphqlApiOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteGraphqlApiOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteGraphqlApiOutput) GoString() string { + return s.String() +} + +type DeleteResolverInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // The resolver field name. + // + // FieldName is a required field + FieldName *string `location:"uri" locationName:"fieldName" type:"string" required:"true"` + + // The name of the resolver type. + // + // TypeName is a required field + TypeName *string `location:"uri" locationName:"typeName" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteResolverInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteResolverInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteResolverInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteResolverInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + if s.FieldName == nil { + invalidParams.Add(request.NewErrParamRequired("FieldName")) + } + if s.TypeName == nil { + invalidParams.Add(request.NewErrParamRequired("TypeName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *DeleteResolverInput) SetApiId(v string) *DeleteResolverInput { + s.ApiId = &v + return s +} + +// SetFieldName sets the FieldName field's value. +func (s *DeleteResolverInput) SetFieldName(v string) *DeleteResolverInput { + s.FieldName = &v + return s +} + +// SetTypeName sets the TypeName field's value. +func (s *DeleteResolverInput) SetTypeName(v string) *DeleteResolverInput { + s.TypeName = &v + return s +} + +type DeleteResolverOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteResolverOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteResolverOutput) GoString() string { + return s.String() +} + +type DeleteTypeInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // The type name. + // + // TypeName is a required field + TypeName *string `location:"uri" locationName:"typeName" type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteTypeInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteTypeInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteTypeInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteTypeInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + if s.TypeName == nil { + invalidParams.Add(request.NewErrParamRequired("TypeName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *DeleteTypeInput) SetApiId(v string) *DeleteTypeInput { + s.ApiId = &v + return s +} + +// SetTypeName sets the TypeName field's value. +func (s *DeleteTypeInput) SetTypeName(v string) *DeleteTypeInput { + s.TypeName = &v + return s +} + +type DeleteTypeOutput struct { + _ struct{} `type:"structure"` +} + +// String returns the string representation +func (s DeleteTypeOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteTypeOutput) GoString() string { + return s.String() +} + +// Describes a DynamoDB data source configuration. +type DynamodbDataSourceConfig struct { + _ struct{} `type:"structure"` + + // The AWS region. + // + // AwsRegion is a required field + AwsRegion *string `locationName:"awsRegion" type:"string" required:"true"` + + // The table name. + // + // TableName is a required field + TableName *string `locationName:"tableName" type:"string" required:"true"` + + // Set to TRUE to use Amazon Cognito credentials with this data source. + UseCallerCredentials *bool `locationName:"useCallerCredentials" type:"boolean"` +} + +// String returns the string representation +func (s DynamodbDataSourceConfig) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DynamodbDataSourceConfig) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DynamodbDataSourceConfig) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DynamodbDataSourceConfig"} + if s.AwsRegion == nil { + invalidParams.Add(request.NewErrParamRequired("AwsRegion")) + } + if s.TableName == nil { + invalidParams.Add(request.NewErrParamRequired("TableName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAwsRegion sets the AwsRegion field's value. +func (s *DynamodbDataSourceConfig) SetAwsRegion(v string) *DynamodbDataSourceConfig { + s.AwsRegion = &v + return s +} + +// SetTableName sets the TableName field's value. +func (s *DynamodbDataSourceConfig) SetTableName(v string) *DynamodbDataSourceConfig { + s.TableName = &v + return s +} + +// SetUseCallerCredentials sets the UseCallerCredentials field's value. +func (s *DynamodbDataSourceConfig) SetUseCallerCredentials(v bool) *DynamodbDataSourceConfig { + s.UseCallerCredentials = &v + return s +} + +// Describes an Elasticsearch data source configuration. +type ElasticsearchDataSourceConfig struct { + _ struct{} `type:"structure"` + + // The AWS region. + // + // AwsRegion is a required field + AwsRegion *string `locationName:"awsRegion" type:"string" required:"true"` + + // The endpoint. + // + // Endpoint is a required field + Endpoint *string `locationName:"endpoint" type:"string" required:"true"` +} + +// String returns the string representation +func (s ElasticsearchDataSourceConfig) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ElasticsearchDataSourceConfig) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ElasticsearchDataSourceConfig) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ElasticsearchDataSourceConfig"} + if s.AwsRegion == nil { + invalidParams.Add(request.NewErrParamRequired("AwsRegion")) + } + if s.Endpoint == nil { + invalidParams.Add(request.NewErrParamRequired("Endpoint")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAwsRegion sets the AwsRegion field's value. +func (s *ElasticsearchDataSourceConfig) SetAwsRegion(v string) *ElasticsearchDataSourceConfig { + s.AwsRegion = &v + return s +} + +// SetEndpoint sets the Endpoint field's value. +func (s *ElasticsearchDataSourceConfig) SetEndpoint(v string) *ElasticsearchDataSourceConfig { + s.Endpoint = &v + return s +} + +type GetDataSourceInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // The name of the data source. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetDataSourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetDataSourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetDataSourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetDataSourceInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *GetDataSourceInput) SetApiId(v string) *GetDataSourceInput { + s.ApiId = &v + return s +} + +// SetName sets the Name field's value. +func (s *GetDataSourceInput) SetName(v string) *GetDataSourceInput { + s.Name = &v + return s +} + +type GetDataSourceOutput struct { + _ struct{} `type:"structure"` + + // The DataSource object. + DataSource *DataSource `locationName:"dataSource" type:"structure"` +} + +// String returns the string representation +func (s GetDataSourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetDataSourceOutput) GoString() string { + return s.String() +} + +// SetDataSource sets the DataSource field's value. +func (s *GetDataSourceOutput) SetDataSource(v *DataSource) *GetDataSourceOutput { + s.DataSource = v + return s +} + +type GetGraphqlApiInput struct { + _ struct{} `type:"structure"` + + // The API ID for the GraphQL API. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetGraphqlApiInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetGraphqlApiInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetGraphqlApiInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetGraphqlApiInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *GetGraphqlApiInput) SetApiId(v string) *GetGraphqlApiInput { + s.ApiId = &v + return s +} + +type GetGraphqlApiOutput struct { + _ struct{} `type:"structure"` + + // The GraphqlApi object. + GraphqlApi *GraphqlApi `locationName:"graphqlApi" type:"structure"` +} + +// String returns the string representation +func (s GetGraphqlApiOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetGraphqlApiOutput) GoString() string { + return s.String() +} + +// SetGraphqlApi sets the GraphqlApi field's value. +func (s *GetGraphqlApiOutput) SetGraphqlApi(v *GraphqlApi) *GetGraphqlApiOutput { + s.GraphqlApi = v + return s +} + +type GetIntrospectionSchemaInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // The schema format: SDL or JSON. + // + // Format is a required field + Format *string `location:"querystring" locationName:"format" type:"string" required:"true" enum:"OutputType"` +} + +// String returns the string representation +func (s GetIntrospectionSchemaInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetIntrospectionSchemaInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetIntrospectionSchemaInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetIntrospectionSchemaInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + if s.Format == nil { + invalidParams.Add(request.NewErrParamRequired("Format")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *GetIntrospectionSchemaInput) SetApiId(v string) *GetIntrospectionSchemaInput { + s.ApiId = &v + return s +} + +// SetFormat sets the Format field's value. +func (s *GetIntrospectionSchemaInput) SetFormat(v string) *GetIntrospectionSchemaInput { + s.Format = &v + return s +} + +type GetIntrospectionSchemaOutput struct { + _ struct{} `type:"structure" payload:"Schema"` + + // The schema, in GraphQL Schema Definition Language (SDL) format. + // + // For more information, see the GraphQL SDL documentation (http://graphql.org/learn/schema/). + Schema []byte `locationName:"schema" type:"blob"` +} + +// String returns the string representation +func (s GetIntrospectionSchemaOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetIntrospectionSchemaOutput) GoString() string { + return s.String() +} + +// SetSchema sets the Schema field's value. +func (s *GetIntrospectionSchemaOutput) SetSchema(v []byte) *GetIntrospectionSchemaOutput { + s.Schema = v + return s +} + +type GetResolverInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // The resolver field name. + // + // FieldName is a required field + FieldName *string `location:"uri" locationName:"fieldName" type:"string" required:"true"` + + // The resolver type name. + // + // TypeName is a required field + TypeName *string `location:"uri" locationName:"typeName" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetResolverInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetResolverInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetResolverInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetResolverInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + if s.FieldName == nil { + invalidParams.Add(request.NewErrParamRequired("FieldName")) + } + if s.TypeName == nil { + invalidParams.Add(request.NewErrParamRequired("TypeName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *GetResolverInput) SetApiId(v string) *GetResolverInput { + s.ApiId = &v + return s +} + +// SetFieldName sets the FieldName field's value. +func (s *GetResolverInput) SetFieldName(v string) *GetResolverInput { + s.FieldName = &v + return s +} + +// SetTypeName sets the TypeName field's value. +func (s *GetResolverInput) SetTypeName(v string) *GetResolverInput { + s.TypeName = &v + return s +} + +type GetResolverOutput struct { + _ struct{} `type:"structure"` + + // The Resolver object. + Resolver *Resolver `locationName:"resolver" type:"structure"` +} + +// String returns the string representation +func (s GetResolverOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetResolverOutput) GoString() string { + return s.String() +} + +// SetResolver sets the Resolver field's value. +func (s *GetResolverOutput) SetResolver(v *Resolver) *GetResolverOutput { + s.Resolver = v + return s +} + +type GetSchemaCreationStatusInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetSchemaCreationStatusInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetSchemaCreationStatusInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetSchemaCreationStatusInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetSchemaCreationStatusInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *GetSchemaCreationStatusInput) SetApiId(v string) *GetSchemaCreationStatusInput { + s.ApiId = &v + return s +} + +type GetSchemaCreationStatusOutput struct { + _ struct{} `type:"structure"` + + // Detailed information about the status of the schema creation operation. + Details *string `locationName:"details" type:"string"` + + // The current state of the schema (PROCESSING, ACTIVE, or DELETING). Once the + // schema is in the ACTIVE state, you can add data. + Status *string `locationName:"status" type:"string" enum:"SchemaStatus"` +} + +// String returns the string representation +func (s GetSchemaCreationStatusOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetSchemaCreationStatusOutput) GoString() string { + return s.String() +} + +// SetDetails sets the Details field's value. +func (s *GetSchemaCreationStatusOutput) SetDetails(v string) *GetSchemaCreationStatusOutput { + s.Details = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *GetSchemaCreationStatusOutput) SetStatus(v string) *GetSchemaCreationStatusOutput { + s.Status = &v + return s +} + +type GetTypeInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // The type format: SDL or JSON. + // + // Format is a required field + Format *string `location:"querystring" locationName:"format" type:"string" required:"true" enum:"TypeDefinitionFormat"` + + // The type name. + // + // TypeName is a required field + TypeName *string `location:"uri" locationName:"typeName" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetTypeInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetTypeInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetTypeInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetTypeInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + if s.Format == nil { + invalidParams.Add(request.NewErrParamRequired("Format")) + } + if s.TypeName == nil { + invalidParams.Add(request.NewErrParamRequired("TypeName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *GetTypeInput) SetApiId(v string) *GetTypeInput { + s.ApiId = &v + return s +} + +// SetFormat sets the Format field's value. +func (s *GetTypeInput) SetFormat(v string) *GetTypeInput { + s.Format = &v + return s +} + +// SetTypeName sets the TypeName field's value. +func (s *GetTypeInput) SetTypeName(v string) *GetTypeInput { + s.TypeName = &v + return s +} + +type GetTypeOutput struct { + _ struct{} `type:"structure"` + + // The Type object. + Type *Type `locationName:"type" type:"structure"` +} + +// String returns the string representation +func (s GetTypeOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetTypeOutput) GoString() string { + return s.String() +} + +// SetType sets the Type field's value. +func (s *GetTypeOutput) SetType(v *Type) *GetTypeOutput { + s.Type = v + return s +} + +// Describes a GraphQL API. +type GraphqlApi struct { + _ struct{} `type:"structure"` + + // The API ID. + ApiId *string `locationName:"apiId" type:"string"` + + // The ARN. + Arn *string `locationName:"arn" type:"string"` + + // The authentication type. + AuthenticationType *string `locationName:"authenticationType" type:"string" enum:"AuthenticationType"` + + // The API name. + Name *string `locationName:"name" type:"string"` + + // The URIs. + Uris map[string]*string `locationName:"uris" type:"map"` + + // The Amazon Cognito User Pool configuration. + UserPoolConfig *UserPoolConfig `locationName:"userPoolConfig" type:"structure"` +} + +// String returns the string representation +func (s GraphqlApi) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GraphqlApi) GoString() string { + return s.String() +} + +// SetApiId sets the ApiId field's value. +func (s *GraphqlApi) SetApiId(v string) *GraphqlApi { + s.ApiId = &v + return s +} + +// SetArn sets the Arn field's value. +func (s *GraphqlApi) SetArn(v string) *GraphqlApi { + s.Arn = &v + return s +} + +// SetAuthenticationType sets the AuthenticationType field's value. +func (s *GraphqlApi) SetAuthenticationType(v string) *GraphqlApi { + s.AuthenticationType = &v + return s +} + +// SetName sets the Name field's value. +func (s *GraphqlApi) SetName(v string) *GraphqlApi { + s.Name = &v + return s +} + +// SetUris sets the Uris field's value. +func (s *GraphqlApi) SetUris(v map[string]*string) *GraphqlApi { + s.Uris = v + return s +} + +// SetUserPoolConfig sets the UserPoolConfig field's value. +func (s *GraphqlApi) SetUserPoolConfig(v *UserPoolConfig) *GraphqlApi { + s.UserPoolConfig = v + return s +} + +// Describes a Lambda data source configuration. +type LambdaDataSourceConfig struct { + _ struct{} `type:"structure"` + + // The ARN for the Lambda function. + // + // LambdaFunctionArn is a required field + LambdaFunctionArn *string `locationName:"lambdaFunctionArn" type:"string" required:"true"` +} + +// String returns the string representation +func (s LambdaDataSourceConfig) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s LambdaDataSourceConfig) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *LambdaDataSourceConfig) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "LambdaDataSourceConfig"} + if s.LambdaFunctionArn == nil { + invalidParams.Add(request.NewErrParamRequired("LambdaFunctionArn")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetLambdaFunctionArn sets the LambdaFunctionArn field's value. +func (s *LambdaDataSourceConfig) SetLambdaFunctionArn(v string) *LambdaDataSourceConfig { + s.LambdaFunctionArn = &v + return s +} + +type ListApiKeysInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // The maximum number of results you want the request to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` + + // An identifier that was returned from the previous call to this operation, + // which can be used to return the next set of items in the list. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListApiKeysInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListApiKeysInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListApiKeysInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListApiKeysInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *ListApiKeysInput) SetApiId(v string) *ListApiKeysInput { + s.ApiId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListApiKeysInput) SetMaxResults(v int64) *ListApiKeysInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListApiKeysInput) SetNextToken(v string) *ListApiKeysInput { + s.NextToken = &v + return s +} + +type ListApiKeysOutput struct { + _ struct{} `type:"structure"` + + // The ApiKey objects. + ApiKeys []*ApiKey `locationName:"apiKeys" type:"list"` + + // An identifier to be passed in the next request to this operation to return + // the next set of items in the list. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListApiKeysOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListApiKeysOutput) GoString() string { + return s.String() +} + +// SetApiKeys sets the ApiKeys field's value. +func (s *ListApiKeysOutput) SetApiKeys(v []*ApiKey) *ListApiKeysOutput { + s.ApiKeys = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListApiKeysOutput) SetNextToken(v string) *ListApiKeysOutput { + s.NextToken = &v + return s +} + +type ListDataSourcesInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // The maximum number of results you want the request to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` + + // An identifier that was returned from the previous call to this operation, + // which can be used to return the next set of items in the list. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListDataSourcesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListDataSourcesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListDataSourcesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListDataSourcesInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *ListDataSourcesInput) SetApiId(v string) *ListDataSourcesInput { + s.ApiId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListDataSourcesInput) SetMaxResults(v int64) *ListDataSourcesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListDataSourcesInput) SetNextToken(v string) *ListDataSourcesInput { + s.NextToken = &v + return s +} + +type ListDataSourcesOutput struct { + _ struct{} `type:"structure"` + + // The DataSource objects. + DataSources []*DataSource `locationName:"dataSources" type:"list"` + + // An identifier to be passed in the next request to this operation to return + // the next set of items in the list. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListDataSourcesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListDataSourcesOutput) GoString() string { + return s.String() +} + +// SetDataSources sets the DataSources field's value. +func (s *ListDataSourcesOutput) SetDataSources(v []*DataSource) *ListDataSourcesOutput { + s.DataSources = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListDataSourcesOutput) SetNextToken(v string) *ListDataSourcesOutput { + s.NextToken = &v + return s +} + +type ListGraphqlApisInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results you want the request to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` + + // An identifier that was returned from the previous call to this operation, + // which can be used to return the next set of items in the list. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListGraphqlApisInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListGraphqlApisInput) GoString() string { + return s.String() +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListGraphqlApisInput) SetMaxResults(v int64) *ListGraphqlApisInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListGraphqlApisInput) SetNextToken(v string) *ListGraphqlApisInput { + s.NextToken = &v + return s +} + +type ListGraphqlApisOutput struct { + _ struct{} `type:"structure"` + + // The GraphqlApi objects. + GraphqlApis []*GraphqlApi `locationName:"graphqlApis" type:"list"` + + // An identifier to be passed in the next request to this operation to return + // the next set of items in the list. + NextToken *string `locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListGraphqlApisOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListGraphqlApisOutput) GoString() string { + return s.String() +} + +// SetGraphqlApis sets the GraphqlApis field's value. +func (s *ListGraphqlApisOutput) SetGraphqlApis(v []*GraphqlApi) *ListGraphqlApisOutput { + s.GraphqlApis = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListGraphqlApisOutput) SetNextToken(v string) *ListGraphqlApisOutput { + s.NextToken = &v + return s +} + +type ListResolversInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // The maximum number of results you want the request to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` + + // An identifier that was returned from the previous call to this operation, + // which can be used to return the next set of items in the list. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` + + // The type name. + // + // TypeName is a required field + TypeName *string `location:"uri" locationName:"typeName" type:"string" required:"true"` +} + +// String returns the string representation +func (s ListResolversInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListResolversInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListResolversInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListResolversInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + if s.TypeName == nil { + invalidParams.Add(request.NewErrParamRequired("TypeName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *ListResolversInput) SetApiId(v string) *ListResolversInput { + s.ApiId = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListResolversInput) SetMaxResults(v int64) *ListResolversInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListResolversInput) SetNextToken(v string) *ListResolversInput { + s.NextToken = &v + return s +} + +// SetTypeName sets the TypeName field's value. +func (s *ListResolversInput) SetTypeName(v string) *ListResolversInput { + s.TypeName = &v + return s +} + +type ListResolversOutput struct { + _ struct{} `type:"structure"` + + // An identifier to be passed in the next request to this operation to return + // the next set of items in the list. + NextToken *string `locationName:"nextToken" type:"string"` + + // The Resolver objects. + Resolvers []*Resolver `locationName:"resolvers" type:"list"` +} + +// String returns the string representation +func (s ListResolversOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListResolversOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListResolversOutput) SetNextToken(v string) *ListResolversOutput { + s.NextToken = &v + return s +} + +// SetResolvers sets the Resolvers field's value. +func (s *ListResolversOutput) SetResolvers(v []*Resolver) *ListResolversOutput { + s.Resolvers = v + return s +} + +type ListTypesInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // The type format: SDL or JSON. + // + // Format is a required field + Format *string `location:"querystring" locationName:"format" type:"string" required:"true" enum:"TypeDefinitionFormat"` + + // The maximum number of results you want the request to return. + MaxResults *int64 `location:"querystring" locationName:"maxResults" type:"integer"` + + // An identifier that was returned from the previous call to this operation, + // which can be used to return the next set of items in the list. + NextToken *string `location:"querystring" locationName:"nextToken" type:"string"` +} + +// String returns the string representation +func (s ListTypesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListTypesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTypesInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListTypesInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + if s.Format == nil { + invalidParams.Add(request.NewErrParamRequired("Format")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *ListTypesInput) SetApiId(v string) *ListTypesInput { + s.ApiId = &v + return s +} + +// SetFormat sets the Format field's value. +func (s *ListTypesInput) SetFormat(v string) *ListTypesInput { + s.Format = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *ListTypesInput) SetMaxResults(v int64) *ListTypesInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *ListTypesInput) SetNextToken(v string) *ListTypesInput { + s.NextToken = &v + return s +} + +type ListTypesOutput struct { + _ struct{} `type:"structure"` + + // An identifier to be passed in the next request to this operation to return + // the next set of items in the list. + NextToken *string `locationName:"nextToken" type:"string"` + + // The Type objects. + Types []*Type `locationName:"types" type:"list"` +} + +// String returns the string representation +func (s ListTypesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListTypesOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListTypesOutput) SetNextToken(v string) *ListTypesOutput { + s.NextToken = &v + return s +} + +// SetTypes sets the Types field's value. +func (s *ListTypesOutput) SetTypes(v []*Type) *ListTypesOutput { + s.Types = v + return s +} + +// Describes a resolver. +type Resolver struct { + _ struct{} `type:"structure"` + + // The resolver data source name. + DataSourceName *string `locationName:"dataSourceName" type:"string"` + + // The resolver field name. + FieldName *string `locationName:"fieldName" type:"string"` + + // The request mapping template. + RequestMappingTemplate *string `locationName:"requestMappingTemplate" type:"string"` + + // The resolver ARN. + ResolverArn *string `locationName:"resolverArn" type:"string"` + + // The response mapping template. + ResponseMappingTemplate *string `locationName:"responseMappingTemplate" type:"string"` + + // The resolver type name. + TypeName *string `locationName:"typeName" type:"string"` +} + +// String returns the string representation +func (s Resolver) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Resolver) GoString() string { + return s.String() +} + +// SetDataSourceName sets the DataSourceName field's value. +func (s *Resolver) SetDataSourceName(v string) *Resolver { + s.DataSourceName = &v + return s +} + +// SetFieldName sets the FieldName field's value. +func (s *Resolver) SetFieldName(v string) *Resolver { + s.FieldName = &v + return s +} + +// SetRequestMappingTemplate sets the RequestMappingTemplate field's value. +func (s *Resolver) SetRequestMappingTemplate(v string) *Resolver { + s.RequestMappingTemplate = &v + return s +} + +// SetResolverArn sets the ResolverArn field's value. +func (s *Resolver) SetResolverArn(v string) *Resolver { + s.ResolverArn = &v + return s +} + +// SetResponseMappingTemplate sets the ResponseMappingTemplate field's value. +func (s *Resolver) SetResponseMappingTemplate(v string) *Resolver { + s.ResponseMappingTemplate = &v + return s +} + +// SetTypeName sets the TypeName field's value. +func (s *Resolver) SetTypeName(v string) *Resolver { + s.TypeName = &v + return s +} + +type StartSchemaCreationInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // The schema definition, in GraphQL schema language format. + // + // Definition is automatically base64 encoded/decoded by the SDK. + // + // Definition is a required field + Definition []byte `locationName:"definition" type:"blob" required:"true"` +} + +// String returns the string representation +func (s StartSchemaCreationInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StartSchemaCreationInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *StartSchemaCreationInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "StartSchemaCreationInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + if s.Definition == nil { + invalidParams.Add(request.NewErrParamRequired("Definition")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *StartSchemaCreationInput) SetApiId(v string) *StartSchemaCreationInput { + s.ApiId = &v + return s +} + +// SetDefinition sets the Definition field's value. +func (s *StartSchemaCreationInput) SetDefinition(v []byte) *StartSchemaCreationInput { + s.Definition = v + return s +} + +type StartSchemaCreationOutput struct { + _ struct{} `type:"structure"` + + // The current state of the schema (PROCESSING, ACTIVE, or DELETING). Once the + // schema is in the ACTIVE state, you can add data. + Status *string `locationName:"status" type:"string" enum:"SchemaStatus"` +} + +// String returns the string representation +func (s StartSchemaCreationOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s StartSchemaCreationOutput) GoString() string { + return s.String() +} + +// SetStatus sets the Status field's value. +func (s *StartSchemaCreationOutput) SetStatus(v string) *StartSchemaCreationOutput { + s.Status = &v + return s +} + +// Describes a type. +type Type struct { + _ struct{} `type:"structure"` + + // The type ARN. + Arn *string `locationName:"arn" type:"string"` + + // The type definition. + Definition *string `locationName:"definition" type:"string"` + + // The type description. + Description *string `locationName:"description" type:"string"` + + // The type format: SDL or JSON. + Format *string `locationName:"format" type:"string" enum:"TypeDefinitionFormat"` + + // The type name. + Name *string `locationName:"name" type:"string"` +} + +// String returns the string representation +func (s Type) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Type) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *Type) SetArn(v string) *Type { + s.Arn = &v + return s +} + +// SetDefinition sets the Definition field's value. +func (s *Type) SetDefinition(v string) *Type { + s.Definition = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *Type) SetDescription(v string) *Type { + s.Description = &v + return s +} + +// SetFormat sets the Format field's value. +func (s *Type) SetFormat(v string) *Type { + s.Format = &v + return s +} + +// SetName sets the Name field's value. +func (s *Type) SetName(v string) *Type { + s.Name = &v + return s +} + +type UpdateApiKeyInput struct { + _ struct{} `type:"structure"` + + // The ID for the GraphQL API + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // A description of the purpose of the API key. + Description *string `locationName:"description" type:"string"` + + // The time after which the API key expires. The date is represented as seconds + // since the epoch. + Expires *int64 `locationName:"expires" type:"long"` + + // The API key ID. + // + // Id is a required field + Id *string `location:"uri" locationName:"id" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateApiKeyInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateApiKeyInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateApiKeyInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateApiKeyInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + if s.Id == nil { + invalidParams.Add(request.NewErrParamRequired("Id")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *UpdateApiKeyInput) SetApiId(v string) *UpdateApiKeyInput { + s.ApiId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *UpdateApiKeyInput) SetDescription(v string) *UpdateApiKeyInput { + s.Description = &v + return s +} + +// SetExpires sets the Expires field's value. +func (s *UpdateApiKeyInput) SetExpires(v int64) *UpdateApiKeyInput { + s.Expires = &v + return s +} + +// SetId sets the Id field's value. +func (s *UpdateApiKeyInput) SetId(v string) *UpdateApiKeyInput { + s.Id = &v + return s +} + +type UpdateApiKeyOutput struct { + _ struct{} `type:"structure"` + + // The API key. + ApiKey *ApiKey `locationName:"apiKey" type:"structure"` +} + +// String returns the string representation +func (s UpdateApiKeyOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateApiKeyOutput) GoString() string { + return s.String() +} + +// SetApiKey sets the ApiKey field's value. +func (s *UpdateApiKeyOutput) SetApiKey(v *ApiKey) *UpdateApiKeyOutput { + s.ApiKey = v + return s +} + +type UpdateDataSourceInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // The new description for the data source. + Description *string `locationName:"description" type:"string"` + + // The new DynamoDB configuration. + DynamodbConfig *DynamodbDataSourceConfig `locationName:"dynamodbConfig" type:"structure"` + + // The new Elasticsearch configuration. + ElasticsearchConfig *ElasticsearchDataSourceConfig `locationName:"elasticsearchConfig" type:"structure"` + + // The new Lambda configuration. + LambdaConfig *LambdaDataSourceConfig `locationName:"lambdaConfig" type:"structure"` + + // The new name for the data source. + // + // Name is a required field + Name *string `location:"uri" locationName:"name" type:"string" required:"true"` + + // The new service role ARN for the data source. + ServiceRoleArn *string `locationName:"serviceRoleArn" type:"string"` + + // The new data source type. + // + // Type is a required field + Type *string `locationName:"type" type:"string" required:"true" enum:"DataSourceType"` +} + +// String returns the string representation +func (s UpdateDataSourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateDataSourceInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateDataSourceInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateDataSourceInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.Type == nil { + invalidParams.Add(request.NewErrParamRequired("Type")) + } + if s.DynamodbConfig != nil { + if err := s.DynamodbConfig.Validate(); err != nil { + invalidParams.AddNested("DynamodbConfig", err.(request.ErrInvalidParams)) + } + } + if s.ElasticsearchConfig != nil { + if err := s.ElasticsearchConfig.Validate(); err != nil { + invalidParams.AddNested("ElasticsearchConfig", err.(request.ErrInvalidParams)) + } + } + if s.LambdaConfig != nil { + if err := s.LambdaConfig.Validate(); err != nil { + invalidParams.AddNested("LambdaConfig", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *UpdateDataSourceInput) SetApiId(v string) *UpdateDataSourceInput { + s.ApiId = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *UpdateDataSourceInput) SetDescription(v string) *UpdateDataSourceInput { + s.Description = &v + return s +} + +// SetDynamodbConfig sets the DynamodbConfig field's value. +func (s *UpdateDataSourceInput) SetDynamodbConfig(v *DynamodbDataSourceConfig) *UpdateDataSourceInput { + s.DynamodbConfig = v + return s +} + +// SetElasticsearchConfig sets the ElasticsearchConfig field's value. +func (s *UpdateDataSourceInput) SetElasticsearchConfig(v *ElasticsearchDataSourceConfig) *UpdateDataSourceInput { + s.ElasticsearchConfig = v + return s +} + +// SetLambdaConfig sets the LambdaConfig field's value. +func (s *UpdateDataSourceInput) SetLambdaConfig(v *LambdaDataSourceConfig) *UpdateDataSourceInput { + s.LambdaConfig = v + return s +} + +// SetName sets the Name field's value. +func (s *UpdateDataSourceInput) SetName(v string) *UpdateDataSourceInput { + s.Name = &v + return s +} + +// SetServiceRoleArn sets the ServiceRoleArn field's value. +func (s *UpdateDataSourceInput) SetServiceRoleArn(v string) *UpdateDataSourceInput { + s.ServiceRoleArn = &v + return s +} + +// SetType sets the Type field's value. +func (s *UpdateDataSourceInput) SetType(v string) *UpdateDataSourceInput { + s.Type = &v + return s +} + +type UpdateDataSourceOutput struct { + _ struct{} `type:"structure"` + + // The updated DataSource object. + DataSource *DataSource `locationName:"dataSource" type:"structure"` +} + +// String returns the string representation +func (s UpdateDataSourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateDataSourceOutput) GoString() string { + return s.String() +} + +// SetDataSource sets the DataSource field's value. +func (s *UpdateDataSourceOutput) SetDataSource(v *DataSource) *UpdateDataSourceOutput { + s.DataSource = v + return s +} + +type UpdateGraphqlApiInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // The new authentication type for the GraphqlApi object. + AuthenticationType *string `locationName:"authenticationType" type:"string" enum:"AuthenticationType"` + + // The new name for the GraphqlApi object. + // + // Name is a required field + Name *string `locationName:"name" type:"string" required:"true"` + + // The new Amazon Cognito User Pool configuration for the GraphqlApi object. + UserPoolConfig *UserPoolConfig `locationName:"userPoolConfig" type:"structure"` +} + +// String returns the string representation +func (s UpdateGraphqlApiInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateGraphqlApiInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateGraphqlApiInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateGraphqlApiInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + if s.Name == nil { + invalidParams.Add(request.NewErrParamRequired("Name")) + } + if s.UserPoolConfig != nil { + if err := s.UserPoolConfig.Validate(); err != nil { + invalidParams.AddNested("UserPoolConfig", err.(request.ErrInvalidParams)) + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *UpdateGraphqlApiInput) SetApiId(v string) *UpdateGraphqlApiInput { + s.ApiId = &v + return s +} + +// SetAuthenticationType sets the AuthenticationType field's value. +func (s *UpdateGraphqlApiInput) SetAuthenticationType(v string) *UpdateGraphqlApiInput { + s.AuthenticationType = &v + return s +} + +// SetName sets the Name field's value. +func (s *UpdateGraphqlApiInput) SetName(v string) *UpdateGraphqlApiInput { + s.Name = &v + return s +} + +// SetUserPoolConfig sets the UserPoolConfig field's value. +func (s *UpdateGraphqlApiInput) SetUserPoolConfig(v *UserPoolConfig) *UpdateGraphqlApiInput { + s.UserPoolConfig = v + return s +} + +type UpdateGraphqlApiOutput struct { + _ struct{} `type:"structure"` + + // The updated GraphqlApi object. + GraphqlApi *GraphqlApi `locationName:"graphqlApi" type:"structure"` +} + +// String returns the string representation +func (s UpdateGraphqlApiOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateGraphqlApiOutput) GoString() string { + return s.String() +} + +// SetGraphqlApi sets the GraphqlApi field's value. +func (s *UpdateGraphqlApiOutput) SetGraphqlApi(v *GraphqlApi) *UpdateGraphqlApiOutput { + s.GraphqlApi = v + return s +} + +type UpdateResolverInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // The new data source name. + // + // DataSourceName is a required field + DataSourceName *string `locationName:"dataSourceName" type:"string" required:"true"` + + // The new field name. + // + // FieldName is a required field + FieldName *string `location:"uri" locationName:"fieldName" type:"string" required:"true"` + + // The new request mapping template. + // + // RequestMappingTemplate is a required field + RequestMappingTemplate *string `locationName:"requestMappingTemplate" type:"string" required:"true"` + + // The new response mapping template. + ResponseMappingTemplate *string `locationName:"responseMappingTemplate" type:"string"` + + // The new type name. + // + // TypeName is a required field + TypeName *string `location:"uri" locationName:"typeName" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateResolverInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateResolverInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateResolverInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateResolverInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + if s.DataSourceName == nil { + invalidParams.Add(request.NewErrParamRequired("DataSourceName")) + } + if s.FieldName == nil { + invalidParams.Add(request.NewErrParamRequired("FieldName")) + } + if s.RequestMappingTemplate == nil { + invalidParams.Add(request.NewErrParamRequired("RequestMappingTemplate")) + } + if s.TypeName == nil { + invalidParams.Add(request.NewErrParamRequired("TypeName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *UpdateResolverInput) SetApiId(v string) *UpdateResolverInput { + s.ApiId = &v + return s +} + +// SetDataSourceName sets the DataSourceName field's value. +func (s *UpdateResolverInput) SetDataSourceName(v string) *UpdateResolverInput { + s.DataSourceName = &v + return s +} + +// SetFieldName sets the FieldName field's value. +func (s *UpdateResolverInput) SetFieldName(v string) *UpdateResolverInput { + s.FieldName = &v + return s +} + +// SetRequestMappingTemplate sets the RequestMappingTemplate field's value. +func (s *UpdateResolverInput) SetRequestMappingTemplate(v string) *UpdateResolverInput { + s.RequestMappingTemplate = &v + return s +} + +// SetResponseMappingTemplate sets the ResponseMappingTemplate field's value. +func (s *UpdateResolverInput) SetResponseMappingTemplate(v string) *UpdateResolverInput { + s.ResponseMappingTemplate = &v + return s +} + +// SetTypeName sets the TypeName field's value. +func (s *UpdateResolverInput) SetTypeName(v string) *UpdateResolverInput { + s.TypeName = &v + return s +} + +type UpdateResolverOutput struct { + _ struct{} `type:"structure"` + + // The updated Resolver object. + Resolver *Resolver `locationName:"resolver" type:"structure"` +} + +// String returns the string representation +func (s UpdateResolverOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateResolverOutput) GoString() string { + return s.String() +} + +// SetResolver sets the Resolver field's value. +func (s *UpdateResolverOutput) SetResolver(v *Resolver) *UpdateResolverOutput { + s.Resolver = v + return s +} + +type UpdateTypeInput struct { + _ struct{} `type:"structure"` + + // The API ID. + // + // ApiId is a required field + ApiId *string `location:"uri" locationName:"apiId" type:"string" required:"true"` + + // The new definition. + Definition *string `locationName:"definition" type:"string"` + + // The new type format: SDL or JSON. + // + // Format is a required field + Format *string `locationName:"format" type:"string" required:"true" enum:"TypeDefinitionFormat"` + + // The new type name. + // + // TypeName is a required field + TypeName *string `location:"uri" locationName:"typeName" type:"string" required:"true"` +} + +// String returns the string representation +func (s UpdateTypeInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateTypeInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateTypeInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateTypeInput"} + if s.ApiId == nil { + invalidParams.Add(request.NewErrParamRequired("ApiId")) + } + if s.Format == nil { + invalidParams.Add(request.NewErrParamRequired("Format")) + } + if s.TypeName == nil { + invalidParams.Add(request.NewErrParamRequired("TypeName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetApiId sets the ApiId field's value. +func (s *UpdateTypeInput) SetApiId(v string) *UpdateTypeInput { + s.ApiId = &v + return s +} + +// SetDefinition sets the Definition field's value. +func (s *UpdateTypeInput) SetDefinition(v string) *UpdateTypeInput { + s.Definition = &v + return s +} + +// SetFormat sets the Format field's value. +func (s *UpdateTypeInput) SetFormat(v string) *UpdateTypeInput { + s.Format = &v + return s +} + +// SetTypeName sets the TypeName field's value. +func (s *UpdateTypeInput) SetTypeName(v string) *UpdateTypeInput { + s.TypeName = &v + return s +} + +type UpdateTypeOutput struct { + _ struct{} `type:"structure"` + + // The updated Type object. + Type *Type `locationName:"type" type:"structure"` +} + +// String returns the string representation +func (s UpdateTypeOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateTypeOutput) GoString() string { + return s.String() +} + +// SetType sets the Type field's value. +func (s *UpdateTypeOutput) SetType(v *Type) *UpdateTypeOutput { + s.Type = v + return s +} + +// Describes an Amazon Cognito User Pool configuration. +type UserPoolConfig struct { + _ struct{} `type:"structure"` + + // A regular expression for validating the incoming Amazon Cognito User Pool + // app client ID. + AppIdClientRegex *string `locationName:"appIdClientRegex" type:"string"` + + // The AWS region in which the user pool was created. + // + // AwsRegion is a required field + AwsRegion *string `locationName:"awsRegion" type:"string" required:"true"` + + // The action that you want your GraphQL API to take when a request that uses + // Amazon Cognito User Pool authentication doesn't match the Amazon Cognito + // User Pool configuration. + // + // DefaultAction is a required field + DefaultAction *string `locationName:"defaultAction" type:"string" required:"true" enum:"DefaultAction"` + + // The user pool ID. + // + // UserPoolId is a required field + UserPoolId *string `locationName:"userPoolId" type:"string" required:"true"` +} + +// String returns the string representation +func (s UserPoolConfig) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UserPoolConfig) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UserPoolConfig) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UserPoolConfig"} + if s.AwsRegion == nil { + invalidParams.Add(request.NewErrParamRequired("AwsRegion")) + } + if s.DefaultAction == nil { + invalidParams.Add(request.NewErrParamRequired("DefaultAction")) + } + if s.UserPoolId == nil { + invalidParams.Add(request.NewErrParamRequired("UserPoolId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAppIdClientRegex sets the AppIdClientRegex field's value. +func (s *UserPoolConfig) SetAppIdClientRegex(v string) *UserPoolConfig { + s.AppIdClientRegex = &v + return s +} + +// SetAwsRegion sets the AwsRegion field's value. +func (s *UserPoolConfig) SetAwsRegion(v string) *UserPoolConfig { + s.AwsRegion = &v + return s +} + +// SetDefaultAction sets the DefaultAction field's value. +func (s *UserPoolConfig) SetDefaultAction(v string) *UserPoolConfig { + s.DefaultAction = &v + return s +} + +// SetUserPoolId sets the UserPoolId field's value. +func (s *UserPoolConfig) SetUserPoolId(v string) *UserPoolConfig { + s.UserPoolId = &v + return s +} + +const ( + // AuthenticationTypeApiKey is a AuthenticationType enum value + AuthenticationTypeApiKey = "API_KEY" + + // AuthenticationTypeAwsIam is a AuthenticationType enum value + AuthenticationTypeAwsIam = "AWS_IAM" + + // AuthenticationTypeAmazonCognitoUserPools is a AuthenticationType enum value + AuthenticationTypeAmazonCognitoUserPools = "AMAZON_COGNITO_USER_POOLS" +) + +const ( + // DataSourceTypeAwsLambda is a DataSourceType enum value + DataSourceTypeAwsLambda = "AWS_LAMBDA" + + // DataSourceTypeAmazonDynamodb is a DataSourceType enum value + DataSourceTypeAmazonDynamodb = "AMAZON_DYNAMODB" + + // DataSourceTypeAmazonElasticsearch is a DataSourceType enum value + DataSourceTypeAmazonElasticsearch = "AMAZON_ELASTICSEARCH" + + // DataSourceTypeNone is a DataSourceType enum value + DataSourceTypeNone = "NONE" +) + +const ( + // DefaultActionAllow is a DefaultAction enum value + DefaultActionAllow = "ALLOW" + + // DefaultActionDeny is a DefaultAction enum value + DefaultActionDeny = "DENY" +) + +const ( + // OutputTypeSdl is a OutputType enum value + OutputTypeSdl = "SDL" + + // OutputTypeJson is a OutputType enum value + OutputTypeJson = "JSON" +) + +const ( + // SchemaStatusProcessing is a SchemaStatus enum value + SchemaStatusProcessing = "PROCESSING" + + // SchemaStatusActive is a SchemaStatus enum value + SchemaStatusActive = "ACTIVE" + + // SchemaStatusDeleting is a SchemaStatus enum value + SchemaStatusDeleting = "DELETING" +) + +const ( + // TypeDefinitionFormatSdl is a TypeDefinitionFormat enum value + TypeDefinitionFormatSdl = "SDL" + + // TypeDefinitionFormatJson is a TypeDefinitionFormat enum value + TypeDefinitionFormatJson = "JSON" +) diff --git a/vendor/github.com/aws/aws-sdk-go/service/appsync/doc.go b/vendor/github.com/aws/aws-sdk-go/service/appsync/doc.go new file mode 100644 index 000000000..2b6bd3907 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/appsync/doc.go @@ -0,0 +1,29 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package appsync provides the client and types for making API +// requests to AWS AppSync. +// +// AWS AppSync provides API actions for creating and interacting with data sources +// using GraphQL from your application. +// +// See https://docs.aws.amazon.com/goto/WebAPI/appsync-2017-07-25 for more information on this service. +// +// See appsync package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/appsync/ +// +// Using the Client +// +// To contact AWS AppSync with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the AWS AppSync client AppSync for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/appsync/#New +package appsync diff --git a/vendor/github.com/aws/aws-sdk-go/service/appsync/errors.go b/vendor/github.com/aws/aws-sdk-go/service/appsync/errors.go new file mode 100644 index 000000000..a2a7a0a0c --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/appsync/errors.go @@ -0,0 +1,69 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appsync + +const ( + + // ErrCodeApiKeyLimitExceededException for service response error code + // "ApiKeyLimitExceededException". + // + // The API key exceeded a limit. Try your request again. + ErrCodeApiKeyLimitExceededException = "ApiKeyLimitExceededException" + + // ErrCodeApiKeyValidityOutOfBoundsException for service response error code + // "ApiKeyValidityOutOfBoundsException". + // + // The API key expiration must be set to a value between 1 and 365 days. + ErrCodeApiKeyValidityOutOfBoundsException = "ApiKeyValidityOutOfBoundsException" + + // ErrCodeApiLimitExceededException for service response error code + // "ApiLimitExceededException". + // + // The GraphQL API exceeded a limit. Try your request again. + ErrCodeApiLimitExceededException = "ApiLimitExceededException" + + // ErrCodeBadRequestException for service response error code + // "BadRequestException". + // + // The request is not well formed. For example, a value is invalid or a required + // field is missing. Check the field values, and try again. + ErrCodeBadRequestException = "BadRequestException" + + // ErrCodeConcurrentModificationException for service response error code + // "ConcurrentModificationException". + // + // Another modification is being made. That modification must complete before + // you can make your change. + ErrCodeConcurrentModificationException = "ConcurrentModificationException" + + // ErrCodeGraphQLSchemaException for service response error code + // "GraphQLSchemaException". + // + // The GraphQL schema is not valid. + ErrCodeGraphQLSchemaException = "GraphQLSchemaException" + + // ErrCodeInternalFailureException for service response error code + // "InternalFailureException". + // + // An internal AWS AppSync error occurred. Try your request again. + ErrCodeInternalFailureException = "InternalFailureException" + + // ErrCodeLimitExceededException for service response error code + // "LimitExceededException". + // + // The request exceeded a limit. Try your request again. + ErrCodeLimitExceededException = "LimitExceededException" + + // ErrCodeNotFoundException for service response error code + // "NotFoundException". + // + // The resource specified in the request was not found. Check the resource and + // try again. + ErrCodeNotFoundException = "NotFoundException" + + // ErrCodeUnauthorizedException for service response error code + // "UnauthorizedException". + // + // You are not authorized to perform this operation. + ErrCodeUnauthorizedException = "UnauthorizedException" +) diff --git a/vendor/github.com/aws/aws-sdk-go/service/appsync/service.go b/vendor/github.com/aws/aws-sdk-go/service/appsync/service.go new file mode 100644 index 000000000..cdc4698e8 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/appsync/service.go @@ -0,0 +1,97 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package appsync + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol/restjson" +) + +// AppSync provides the API operation methods for making requests to +// AWS AppSync. See this package's package overview docs +// for details on the service. +// +// AppSync methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type AppSync struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "appsync" // Service endpoint prefix API calls made to. + EndpointsID = ServiceName // Service ID for Regions and Endpoints metadata. +) + +// New creates a new instance of the AppSync client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// // Create a AppSync client from just a session. +// svc := appsync.New(mySession) +// +// // Create a AppSync client with additional configuration +// svc := appsync.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *AppSync { + c := p.ClientConfig(EndpointsID, cfgs...) + return newClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion, c.SigningName) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion, signingName string) *AppSync { + if len(signingName) == 0 { + signingName = "appsync" + } + svc := &AppSync{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + SigningName: signingName, + SigningRegion: signingRegion, + Endpoint: endpoint, + APIVersion: "2017-07-25", + JSONVersion: "1.1", + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(restjson.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(restjson.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(restjson.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(restjson.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a AppSync operation and runs any +// custom request initialization. +func (c *AppSync) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/cognitoidentityprovider/api.go b/vendor/github.com/aws/aws-sdk-go/service/cognitoidentityprovider/api.go index 2e5b4389c..168fe2192 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/cognitoidentityprovider/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/cognitoidentityprovider/api.go @@ -6280,6 +6280,89 @@ func (c *CognitoIdentityProvider) GetIdentityProviderByIdentifierWithContext(ctx return out, req.Send() } +const opGetSigningCertificate = "GetSigningCertificate" + +// GetSigningCertificateRequest generates a "aws/request.Request" representing the +// client's request for the GetSigningCertificate operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 GetSigningCertificate for more information on using the GetSigningCertificate +// 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 GetSigningCertificateRequest method. +// req, resp := client.GetSigningCertificateRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GetSigningCertificate +func (c *CognitoIdentityProvider) GetSigningCertificateRequest(input *GetSigningCertificateInput) (req *request.Request, output *GetSigningCertificateOutput) { + op := &request.Operation{ + Name: opGetSigningCertificate, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetSigningCertificateInput{} + } + + output = &GetSigningCertificateOutput{} + req = c.newRequest(op, input, output) + return +} + +// GetSigningCertificate API operation for Amazon Cognito Identity Provider. +// +// This method takes a user pool ID, and returns the signing certificate. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Cognito Identity Provider's +// API operation GetSigningCertificate for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInternalErrorException "InternalErrorException" +// This exception is thrown when Amazon Cognito encounters an internal error. +// +// * ErrCodeResourceNotFoundException "ResourceNotFoundException" +// This exception is thrown when the Amazon Cognito service cannot find the +// requested resource. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/cognito-idp-2016-04-18/GetSigningCertificate +func (c *CognitoIdentityProvider) GetSigningCertificate(input *GetSigningCertificateInput) (*GetSigningCertificateOutput, error) { + req, out := c.GetSigningCertificateRequest(input) + return out, req.Send() +} + +// GetSigningCertificateWithContext is the same as GetSigningCertificate with the addition of +// the ability to pass a context and additional request options. +// +// See GetSigningCertificate 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 *CognitoIdentityProvider) GetSigningCertificateWithContext(ctx aws.Context, input *GetSigningCertificateInput, opts ...request.Option) (*GetSigningCertificateOutput, error) { + req, out := c.GetSigningCertificateRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opGetUICustomization = "GetUICustomization" // GetUICustomizationRequest generates a "aws/request.Request" representing the @@ -11510,6 +11593,9 @@ type AdminInitiateAuthInput struct { // * USER_SRP_AUTH will take in USERNAME and SRP_A and return the SRP variables // to be used for next challenge execution. // + // * USER_PASSWORD_AUTH will take in USERNAME and PASSWORD and return the + // next challenge or tokens. + // // Valid values include: // // * USER_SRP_AUTH: Authentication flow for the Secure Remote Password (SRP) @@ -11524,6 +11610,11 @@ type AdminInitiateAuthInput struct { // USERNAME and PASSWORD directly if the flow is enabled for calling the // app client. // + // * USER_PASSWORD_AUTH: Non-SRP authentication flow; USERNAME and PASSWORD + // are passed directly. If a user migration Lambda trigger is set, this flow + // will invoke the user migration Lambda if the USERNAME is not found in + // the user pool. + // // AuthFlow is a required field AuthFlow *string `type:"string" required:"true" enum:"AuthFlowType"` @@ -11533,9 +11624,8 @@ type AdminInitiateAuthInput struct { // * For USER_SRP_AUTH: USERNAME (required), SRP_A (required), SECRET_HASH // (required if the app client is configured with a client secret), DEVICE_KEY // - // * For REFRESH_TOKEN_AUTH/REFRESH_TOKEN: USERNAME (required), SECRET_HASH - // (required if the app client is configured with a client secret), REFRESH_TOKEN - // (required), DEVICE_KEY + // * For REFRESH_TOKEN_AUTH/REFRESH_TOKEN: REFRESH_TOKEN (required), SECRET_HASH + // (required if the app client is configured with a client secret), DEVICE_KEY // // * For ADMIN_NO_SRP_AUTH: USERNAME (required), SECRET_HASH (if app client // is configured with client secret), PASSWORD (required), DEVICE_KEY @@ -11693,7 +11783,7 @@ type AdminInitiateAuthOutput struct { // // All challenges require USERNAME and SECRET_HASH (if applicable). // - // The value of the USER_IF_FOR_SRP attribute will be the user's actual username, + // The value of the USER_ID_FOR_SRP attribute will be the user's actual username, // not an alias (such as email address or phone number), even if you specified // an alias in your call to AdminInitiateAuth. This is because, in the AdminRespondToAuthChallenge // API ChallengeResponses, the USERNAME attribute cannot be an alias. @@ -12099,7 +12189,7 @@ type AdminListUserAuthEventsInput struct { // UserPoolId is a required field UserPoolId *string `min:"1" type:"string" required:"true"` - // The user pool username. + // The user pool username or an alias. // // Username is a required field Username *string `min:"1" type:"string" required:"true"` @@ -12573,7 +12663,7 @@ type AdminSetUserMFAPreferenceInput struct { // UserPoolId is a required field UserPoolId *string `min:"1" type:"string" required:"true"` - // The user pool username. + // The user pool username or alias. // // Username is a required field Username *string `min:"1" type:"string" required:"true"` @@ -15055,6 +15145,15 @@ type CreateUserPoolInput struct { EmailVerificationSubject *string `min:"1" type:"string"` // The Lambda trigger configuration information for the new user pool. + // + // In a push model, event sources (such as Amazon S3 and custom applications) + // need permission to invoke a function. So you will need to make an extra call + // to add permission for these event sources to invoke your Lambda function. + // + // For more information on using the Lambda API to add permission, see AddPermission + // (https://docs.aws.amazon.com/lambda/latest/dg/API_AddPermission.html). + // + // For adding permission using the AWS CLI, see add-permission (https://docs.aws.amazon.com/cli/latest/reference/lambda/add-permission.html). LambdaConfig *LambdaConfigType `type:"structure"` // Specifies MFA configuration details. @@ -17299,6 +17398,72 @@ func (s *GetIdentityProviderByIdentifierOutput) SetIdentityProvider(v *IdentityP return s } +// Request to get a signing certificate from Cognito. +type GetSigningCertificateInput struct { + _ struct{} `type:"structure"` + + // The user pool ID. + // + // UserPoolId is a required field + UserPoolId *string `min:"1" type:"string" required:"true"` +} + +// String returns the string representation +func (s GetSigningCertificateInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetSigningCertificateInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetSigningCertificateInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "GetSigningCertificateInput"} + if s.UserPoolId == nil { + invalidParams.Add(request.NewErrParamRequired("UserPoolId")) + } + if s.UserPoolId != nil && len(*s.UserPoolId) < 1 { + invalidParams.Add(request.NewErrParamMinLen("UserPoolId", 1)) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetUserPoolId sets the UserPoolId field's value. +func (s *GetSigningCertificateInput) SetUserPoolId(v string) *GetSigningCertificateInput { + s.UserPoolId = &v + return s +} + +// Response from Cognito for a signing certificate request. +type GetSigningCertificateOutput struct { + _ struct{} `type:"structure"` + + // The signing certificate. + Certificate *string `type:"string"` +} + +// String returns the string representation +func (s GetSigningCertificateOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetSigningCertificateOutput) GoString() string { + return s.String() +} + +// SetCertificate sets the Certificate field's value. +func (s *GetSigningCertificateOutput) SetCertificate(v string) *GetSigningCertificateOutput { + s.Certificate = &v + return s +} + type GetUICustomizationInput struct { _ struct{} `type:"structure"` @@ -17934,6 +18099,9 @@ type InitiateAuthInput struct { // * USER_SRP_AUTH will take in USERNAME and SRP_A and return the SRP variables // to be used for next challenge execution. // + // * USER_PASSWORD_AUTH will take in USERNAME and PASSWORD and return the + // next challenge or tokens. + // // Valid values include: // // * USER_SRP_AUTH: Authentication flow for the Secure Remote Password (SRP) @@ -17944,6 +18112,11 @@ type InitiateAuthInput struct { // // * CUSTOM_AUTH: Custom authentication flow. // + // * USER_PASSWORD_AUTH: Non-SRP authentication flow; USERNAME and PASSWORD + // are passed directly. If a user migration Lambda trigger is set, this flow + // will invoke the user migration Lambda if the USERNAME is not found in + // the user pool. + // // ADMIN_NO_SRP_AUTH is not a valid value. // // AuthFlow is a required field @@ -17955,9 +18128,8 @@ type InitiateAuthInput struct { // * For USER_SRP_AUTH: USERNAME (required), SRP_A (required), SECRET_HASH // (required if the app client is configured with a client secret), DEVICE_KEY // - // * For REFRESH_TOKEN_AUTH/REFRESH_TOKEN: USERNAME (required), SECRET_HASH - // (required if the app client is configured with a client secret), REFRESH_TOKEN - // (required), DEVICE_KEY + // * For REFRESH_TOKEN_AUTH/REFRESH_TOKEN: REFRESH_TOKEN (required), SECRET_HASH + // (required if the app client is configured with a client secret), DEVICE_KEY // // * For CUSTOM_AUTH: USERNAME (required), SECRET_HASH (if app client is // configured with client secret), DEVICE_KEY @@ -18160,6 +18332,9 @@ type LambdaConfigType struct { // A Lambda trigger that is invoked before token generation. PreTokenGeneration *string `min:"20" type:"string"` + // The user migration Lambda config type. + UserMigration *string `min:"20" type:"string"` + // Verifies the authentication challenge response. VerifyAuthChallengeResponse *string `min:"20" type:"string"` } @@ -18201,6 +18376,9 @@ func (s *LambdaConfigType) Validate() error { if s.PreTokenGeneration != nil && len(*s.PreTokenGeneration) < 20 { invalidParams.Add(request.NewErrParamMinLen("PreTokenGeneration", 20)) } + if s.UserMigration != nil && len(*s.UserMigration) < 20 { + invalidParams.Add(request.NewErrParamMinLen("UserMigration", 20)) + } if s.VerifyAuthChallengeResponse != nil && len(*s.VerifyAuthChallengeResponse) < 20 { invalidParams.Add(request.NewErrParamMinLen("VerifyAuthChallengeResponse", 20)) } @@ -18259,6 +18437,12 @@ func (s *LambdaConfigType) SetPreTokenGeneration(v string) *LambdaConfigType { return s } +// SetUserMigration sets the UserMigration field's value. +func (s *LambdaConfigType) SetUserMigration(v string) *LambdaConfigType { + s.UserMigration = &v + return s +} + // SetVerifyAuthChallengeResponse sets the VerifyAuthChallengeResponse field's value. func (s *LambdaConfigType) SetVerifyAuthChallengeResponse(v string) *LambdaConfigType { s.VerifyAuthChallengeResponse = &v @@ -23881,6 +24065,9 @@ const ( // AuthFlowTypeAdminNoSrpAuth is a AuthFlowType enum value AuthFlowTypeAdminNoSrpAuth = "ADMIN_NO_SRP_AUTH" + + // AuthFlowTypeUserPasswordAuth is a AuthFlowType enum value + AuthFlowTypeUserPasswordAuth = "USER_PASSWORD_AUTH" ) const ( @@ -24016,6 +24203,9 @@ const ( // ExplicitAuthFlowsTypeCustomAuthFlowOnly is a ExplicitAuthFlowsType enum value ExplicitAuthFlowsTypeCustomAuthFlowOnly = "CUSTOM_AUTH_FLOW_ONLY" + + // ExplicitAuthFlowsTypeUserPasswordAuth is a ExplicitAuthFlowsType enum value + ExplicitAuthFlowsTypeUserPasswordAuth = "USER_PASSWORD_AUTH" ) const ( diff --git a/vendor/github.com/aws/aws-sdk-go/service/dax/api.go b/vendor/github.com/aws/aws-sdk-go/service/dax/api.go new file mode 100644 index 000000000..99c044f7a --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/dax/api.go @@ -0,0 +1,4621 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package dax + +import ( + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/awsutil" + "github.com/aws/aws-sdk-go/aws/request" +) + +const opCreateCluster = "CreateCluster" + +// CreateClusterRequest generates a "aws/request.Request" representing the +// client's request for the CreateCluster operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreateCluster for more information on using the CreateCluster +// 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 CreateClusterRequest method. +// req, resp := client.CreateClusterRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/CreateCluster +func (c *DAX) CreateClusterRequest(input *CreateClusterInput) (req *request.Request, output *CreateClusterOutput) { + op := &request.Operation{ + Name: opCreateCluster, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateClusterInput{} + } + + output = &CreateClusterOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateCluster API operation for Amazon DynamoDB Accelerator (DAX). +// +// Creates a DAX cluster. All nodes in the cluster run the same DAX caching +// software. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation CreateCluster for usage and error information. +// +// Returned Error Codes: +// * ErrCodeClusterAlreadyExistsFault "ClusterAlreadyExistsFault" +// You already have a DAX cluster with the given identifier. +// +// * ErrCodeInvalidClusterStateFault "InvalidClusterStateFault" +// The requested DAX cluster is not in the available state. +// +// * ErrCodeInsufficientClusterCapacityFault "InsufficientClusterCapacityFault" +// There are not enough system resources to create the cluster you requested +// (or to resize an already-existing cluster). +// +// * ErrCodeSubnetGroupNotFoundFault "SubnetGroupNotFoundFault" +// The requested subnet group name does not refer to an existing subnet group. +// +// * ErrCodeInvalidParameterGroupStateFault "InvalidParameterGroupStateFault" +// One or more parameters in a parameter group are in an invalid state. +// +// * ErrCodeParameterGroupNotFoundFault "ParameterGroupNotFoundFault" +// The specified parameter group does not exist. +// +// * ErrCodeClusterQuotaForCustomerExceededFault "ClusterQuotaForCustomerExceededFault" +// You have attempted to exceed the maximum number of DAX clusters for your +// AWS account. +// +// * ErrCodeNodeQuotaForClusterExceededFault "NodeQuotaForClusterExceededFault" +// You have attempted to exceed the maximum number of nodes for a DAX cluster. +// +// * ErrCodeNodeQuotaForCustomerExceededFault "NodeQuotaForCustomerExceededFault" +// You have attempted to exceed the maximum number of nodes for your AWS account. +// +// * ErrCodeInvalidVPCNetworkStateFault "InvalidVPCNetworkStateFault" +// The VPC network is in an invalid state. +// +// * ErrCodeTagQuotaPerResourceExceeded "TagQuotaPerResourceExceeded" +// You have exceeded the maximum number of tags for this DAX cluster. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValueException" +// The value for a parameter is invalid. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/CreateCluster +func (c *DAX) CreateCluster(input *CreateClusterInput) (*CreateClusterOutput, error) { + req, out := c.CreateClusterRequest(input) + return out, req.Send() +} + +// CreateClusterWithContext is the same as CreateCluster with the addition of +// the ability to pass a context and additional request options. +// +// See CreateCluster 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 *DAX) CreateClusterWithContext(ctx aws.Context, input *CreateClusterInput, opts ...request.Option) (*CreateClusterOutput, error) { + req, out := c.CreateClusterRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateParameterGroup = "CreateParameterGroup" + +// CreateParameterGroupRequest generates a "aws/request.Request" representing the +// client's request for the CreateParameterGroup operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreateParameterGroup for more information on using the CreateParameterGroup +// 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 CreateParameterGroupRequest method. +// req, resp := client.CreateParameterGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/CreateParameterGroup +func (c *DAX) CreateParameterGroupRequest(input *CreateParameterGroupInput) (req *request.Request, output *CreateParameterGroupOutput) { + op := &request.Operation{ + Name: opCreateParameterGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateParameterGroupInput{} + } + + output = &CreateParameterGroupOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateParameterGroup API operation for Amazon DynamoDB Accelerator (DAX). +// +// Creates a new parameter group. A parameter group is a collection of parameters +// that you apply to all of the nodes in a DAX cluster. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation CreateParameterGroup for usage and error information. +// +// Returned Error Codes: +// * ErrCodeParameterGroupQuotaExceededFault "ParameterGroupQuotaExceededFault" +// You have attempted to exceed the maximum number of parameter groups. +// +// * ErrCodeParameterGroupAlreadyExistsFault "ParameterGroupAlreadyExistsFault" +// The specified parameter group already exists. +// +// * ErrCodeInvalidParameterGroupStateFault "InvalidParameterGroupStateFault" +// One or more parameters in a parameter group are in an invalid state. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValueException" +// The value for a parameter is invalid. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/CreateParameterGroup +func (c *DAX) CreateParameterGroup(input *CreateParameterGroupInput) (*CreateParameterGroupOutput, error) { + req, out := c.CreateParameterGroupRequest(input) + return out, req.Send() +} + +// CreateParameterGroupWithContext is the same as CreateParameterGroup with the addition of +// the ability to pass a context and additional request options. +// +// See CreateParameterGroup 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 *DAX) CreateParameterGroupWithContext(ctx aws.Context, input *CreateParameterGroupInput, opts ...request.Option) (*CreateParameterGroupOutput, error) { + req, out := c.CreateParameterGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opCreateSubnetGroup = "CreateSubnetGroup" + +// CreateSubnetGroupRequest generates a "aws/request.Request" representing the +// client's request for the CreateSubnetGroup operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 CreateSubnetGroup for more information on using the CreateSubnetGroup +// 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 CreateSubnetGroupRequest method. +// req, resp := client.CreateSubnetGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/CreateSubnetGroup +func (c *DAX) CreateSubnetGroupRequest(input *CreateSubnetGroupInput) (req *request.Request, output *CreateSubnetGroupOutput) { + op := &request.Operation{ + Name: opCreateSubnetGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateSubnetGroupInput{} + } + + output = &CreateSubnetGroupOutput{} + req = c.newRequest(op, input, output) + return +} + +// CreateSubnetGroup API operation for Amazon DynamoDB Accelerator (DAX). +// +// Creates a new subnet group. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation CreateSubnetGroup for usage and error information. +// +// Returned Error Codes: +// * ErrCodeSubnetGroupAlreadyExistsFault "SubnetGroupAlreadyExistsFault" +// The specified subnet group already exists. +// +// * ErrCodeSubnetGroupQuotaExceededFault "SubnetGroupQuotaExceededFault" +// The request cannot be processed because it would exceed the allowed number +// of subnets in a subnet group. +// +// * ErrCodeSubnetQuotaExceededFault "SubnetQuotaExceededFault" +// The request cannot be processed because it would exceed the allowed number +// of subnets in a subnet group. +// +// * ErrCodeInvalidSubnet "InvalidSubnet" +// An invalid subnet identifier was specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/CreateSubnetGroup +func (c *DAX) CreateSubnetGroup(input *CreateSubnetGroupInput) (*CreateSubnetGroupOutput, error) { + req, out := c.CreateSubnetGroupRequest(input) + return out, req.Send() +} + +// CreateSubnetGroupWithContext is the same as CreateSubnetGroup with the addition of +// the ability to pass a context and additional request options. +// +// See CreateSubnetGroup 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 *DAX) CreateSubnetGroupWithContext(ctx aws.Context, input *CreateSubnetGroupInput, opts ...request.Option) (*CreateSubnetGroupOutput, error) { + req, out := c.CreateSubnetGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDecreaseReplicationFactor = "DecreaseReplicationFactor" + +// DecreaseReplicationFactorRequest generates a "aws/request.Request" representing the +// client's request for the DecreaseReplicationFactor operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DecreaseReplicationFactor for more information on using the DecreaseReplicationFactor +// 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 DecreaseReplicationFactorRequest method. +// req, resp := client.DecreaseReplicationFactorRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DecreaseReplicationFactor +func (c *DAX) DecreaseReplicationFactorRequest(input *DecreaseReplicationFactorInput) (req *request.Request, output *DecreaseReplicationFactorOutput) { + op := &request.Operation{ + Name: opDecreaseReplicationFactor, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DecreaseReplicationFactorInput{} + } + + output = &DecreaseReplicationFactorOutput{} + req = c.newRequest(op, input, output) + return +} + +// DecreaseReplicationFactor API operation for Amazon DynamoDB Accelerator (DAX). +// +// Removes one or more nodes from a DAX cluster. +// +// You cannot use DecreaseReplicationFactor to remove the last node in a DAX +// cluster. If you need to do this, use DeleteCluster instead. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation DecreaseReplicationFactor for usage and error information. +// +// Returned Error Codes: +// * ErrCodeClusterNotFoundFault "ClusterNotFoundFault" +// The requested cluster ID does not refer to an existing DAX cluster. +// +// * ErrCodeNodeNotFoundFault "NodeNotFoundFault" +// None of the nodes in the cluster have the given node ID. +// +// * ErrCodeInvalidClusterStateFault "InvalidClusterStateFault" +// The requested DAX cluster is not in the available state. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValueException" +// The value for a parameter is invalid. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DecreaseReplicationFactor +func (c *DAX) DecreaseReplicationFactor(input *DecreaseReplicationFactorInput) (*DecreaseReplicationFactorOutput, error) { + req, out := c.DecreaseReplicationFactorRequest(input) + return out, req.Send() +} + +// DecreaseReplicationFactorWithContext is the same as DecreaseReplicationFactor with the addition of +// the ability to pass a context and additional request options. +// +// See DecreaseReplicationFactor 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 *DAX) DecreaseReplicationFactorWithContext(ctx aws.Context, input *DecreaseReplicationFactorInput, opts ...request.Option) (*DecreaseReplicationFactorOutput, error) { + req, out := c.DecreaseReplicationFactorRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteCluster = "DeleteCluster" + +// DeleteClusterRequest generates a "aws/request.Request" representing the +// client's request for the DeleteCluster operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DeleteCluster for more information on using the DeleteCluster +// 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 DeleteClusterRequest method. +// req, resp := client.DeleteClusterRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DeleteCluster +func (c *DAX) DeleteClusterRequest(input *DeleteClusterInput) (req *request.Request, output *DeleteClusterOutput) { + op := &request.Operation{ + Name: opDeleteCluster, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteClusterInput{} + } + + output = &DeleteClusterOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteCluster API operation for Amazon DynamoDB Accelerator (DAX). +// +// Deletes a previously provisioned DAX cluster. DeleteCluster deletes all associated +// nodes, node endpoints and the DAX cluster itself. When you receive a successful +// response from this action, DAX immediately begins deleting the cluster; you +// cannot cancel or revert this action. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation DeleteCluster for usage and error information. +// +// Returned Error Codes: +// * ErrCodeClusterNotFoundFault "ClusterNotFoundFault" +// The requested cluster ID does not refer to an existing DAX cluster. +// +// * ErrCodeInvalidClusterStateFault "InvalidClusterStateFault" +// The requested DAX cluster is not in the available state. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValueException" +// The value for a parameter is invalid. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DeleteCluster +func (c *DAX) DeleteCluster(input *DeleteClusterInput) (*DeleteClusterOutput, error) { + req, out := c.DeleteClusterRequest(input) + return out, req.Send() +} + +// DeleteClusterWithContext is the same as DeleteCluster with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteCluster 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 *DAX) DeleteClusterWithContext(ctx aws.Context, input *DeleteClusterInput, opts ...request.Option) (*DeleteClusterOutput, error) { + req, out := c.DeleteClusterRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteParameterGroup = "DeleteParameterGroup" + +// DeleteParameterGroupRequest generates a "aws/request.Request" representing the +// client's request for the DeleteParameterGroup operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DeleteParameterGroup for more information on using the DeleteParameterGroup +// 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 DeleteParameterGroupRequest method. +// req, resp := client.DeleteParameterGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DeleteParameterGroup +func (c *DAX) DeleteParameterGroupRequest(input *DeleteParameterGroupInput) (req *request.Request, output *DeleteParameterGroupOutput) { + op := &request.Operation{ + Name: opDeleteParameterGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteParameterGroupInput{} + } + + output = &DeleteParameterGroupOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteParameterGroup API operation for Amazon DynamoDB Accelerator (DAX). +// +// Deletes the specified parameter group. You cannot delete a parameter group +// if it is associated with any DAX clusters. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation DeleteParameterGroup for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidParameterGroupStateFault "InvalidParameterGroupStateFault" +// One or more parameters in a parameter group are in an invalid state. +// +// * ErrCodeParameterGroupNotFoundFault "ParameterGroupNotFoundFault" +// The specified parameter group does not exist. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValueException" +// The value for a parameter is invalid. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DeleteParameterGroup +func (c *DAX) DeleteParameterGroup(input *DeleteParameterGroupInput) (*DeleteParameterGroupOutput, error) { + req, out := c.DeleteParameterGroupRequest(input) + return out, req.Send() +} + +// DeleteParameterGroupWithContext is the same as DeleteParameterGroup with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteParameterGroup 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 *DAX) DeleteParameterGroupWithContext(ctx aws.Context, input *DeleteParameterGroupInput, opts ...request.Option) (*DeleteParameterGroupOutput, error) { + req, out := c.DeleteParameterGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDeleteSubnetGroup = "DeleteSubnetGroup" + +// DeleteSubnetGroupRequest generates a "aws/request.Request" representing the +// client's request for the DeleteSubnetGroup operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DeleteSubnetGroup for more information on using the DeleteSubnetGroup +// 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 DeleteSubnetGroupRequest method. +// req, resp := client.DeleteSubnetGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DeleteSubnetGroup +func (c *DAX) DeleteSubnetGroupRequest(input *DeleteSubnetGroupInput) (req *request.Request, output *DeleteSubnetGroupOutput) { + op := &request.Operation{ + Name: opDeleteSubnetGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteSubnetGroupInput{} + } + + output = &DeleteSubnetGroupOutput{} + req = c.newRequest(op, input, output) + return +} + +// DeleteSubnetGroup API operation for Amazon DynamoDB Accelerator (DAX). +// +// Deletes a subnet group. +// +// You cannot delete a subnet group if it is associated with any DAX clusters. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation DeleteSubnetGroup for usage and error information. +// +// Returned Error Codes: +// * ErrCodeSubnetGroupInUseFault "SubnetGroupInUseFault" +// The specified subnet group is currently in use. +// +// * ErrCodeSubnetGroupNotFoundFault "SubnetGroupNotFoundFault" +// The requested subnet group name does not refer to an existing subnet group. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DeleteSubnetGroup +func (c *DAX) DeleteSubnetGroup(input *DeleteSubnetGroupInput) (*DeleteSubnetGroupOutput, error) { + req, out := c.DeleteSubnetGroupRequest(input) + return out, req.Send() +} + +// DeleteSubnetGroupWithContext is the same as DeleteSubnetGroup with the addition of +// the ability to pass a context and additional request options. +// +// See DeleteSubnetGroup 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 *DAX) DeleteSubnetGroupWithContext(ctx aws.Context, input *DeleteSubnetGroupInput, opts ...request.Option) (*DeleteSubnetGroupOutput, error) { + req, out := c.DeleteSubnetGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeClusters = "DescribeClusters" + +// DescribeClustersRequest generates a "aws/request.Request" representing the +// client's request for the DescribeClusters operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeClusters for more information on using the DescribeClusters +// 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 DescribeClustersRequest method. +// req, resp := client.DescribeClustersRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeClusters +func (c *DAX) DescribeClustersRequest(input *DescribeClustersInput) (req *request.Request, output *DescribeClustersOutput) { + op := &request.Operation{ + Name: opDescribeClusters, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeClustersInput{} + } + + output = &DescribeClustersOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeClusters API operation for Amazon DynamoDB Accelerator (DAX). +// +// Returns information about all provisioned DAX clusters if no cluster identifier +// is specified, or about a specific DAX cluster if a cluster identifier is +// supplied. +// +// If the cluster is in the CREATING state, only cluster level information will +// be displayed until all of the nodes are successfully provisioned. +// +// If the cluster is in the DELETING state, only cluster level information will +// be displayed. +// +// If nodes are currently being added to the DAX cluster, node endpoint information +// and creation time for the additional nodes will not be displayed until they +// are completely provisioned. When the DAX cluster state is available, the +// cluster is ready for use. +// +// If nodes are currently being removed from the DAX cluster, no endpoint information +// for the removed nodes is displayed. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation DescribeClusters for usage and error information. +// +// Returned Error Codes: +// * ErrCodeClusterNotFoundFault "ClusterNotFoundFault" +// The requested cluster ID does not refer to an existing DAX cluster. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValueException" +// The value for a parameter is invalid. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeClusters +func (c *DAX) DescribeClusters(input *DescribeClustersInput) (*DescribeClustersOutput, error) { + req, out := c.DescribeClustersRequest(input) + return out, req.Send() +} + +// DescribeClustersWithContext is the same as DescribeClusters with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeClusters 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 *DAX) DescribeClustersWithContext(ctx aws.Context, input *DescribeClustersInput, opts ...request.Option) (*DescribeClustersOutput, error) { + req, out := c.DescribeClustersRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeDefaultParameters = "DescribeDefaultParameters" + +// DescribeDefaultParametersRequest generates a "aws/request.Request" representing the +// client's request for the DescribeDefaultParameters operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeDefaultParameters for more information on using the DescribeDefaultParameters +// 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 DescribeDefaultParametersRequest method. +// req, resp := client.DescribeDefaultParametersRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeDefaultParameters +func (c *DAX) DescribeDefaultParametersRequest(input *DescribeDefaultParametersInput) (req *request.Request, output *DescribeDefaultParametersOutput) { + op := &request.Operation{ + Name: opDescribeDefaultParameters, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeDefaultParametersInput{} + } + + output = &DescribeDefaultParametersOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeDefaultParameters API operation for Amazon DynamoDB Accelerator (DAX). +// +// Returns the default system parameter information for the DAX caching software. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation DescribeDefaultParameters for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidParameterValueException "InvalidParameterValueException" +// The value for a parameter is invalid. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeDefaultParameters +func (c *DAX) DescribeDefaultParameters(input *DescribeDefaultParametersInput) (*DescribeDefaultParametersOutput, error) { + req, out := c.DescribeDefaultParametersRequest(input) + return out, req.Send() +} + +// DescribeDefaultParametersWithContext is the same as DescribeDefaultParameters with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeDefaultParameters 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 *DAX) DescribeDefaultParametersWithContext(ctx aws.Context, input *DescribeDefaultParametersInput, opts ...request.Option) (*DescribeDefaultParametersOutput, error) { + req, out := c.DescribeDefaultParametersRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeEvents = "DescribeEvents" + +// DescribeEventsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeEvents operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeEvents for more information on using the DescribeEvents +// 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 DescribeEventsRequest method. +// req, resp := client.DescribeEventsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeEvents +func (c *DAX) DescribeEventsRequest(input *DescribeEventsInput) (req *request.Request, output *DescribeEventsOutput) { + op := &request.Operation{ + Name: opDescribeEvents, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeEventsInput{} + } + + output = &DescribeEventsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeEvents API operation for Amazon DynamoDB Accelerator (DAX). +// +// Returns events related to DAX clusters and parameter groups. You can obtain +// events specific to a particular DAX cluster or parameter group by providing +// the name as a parameter. +// +// By default, only the events occurring within the last hour are returned; +// however, you can retrieve up to 14 days' worth of events if necessary. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation DescribeEvents for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidParameterValueException "InvalidParameterValueException" +// The value for a parameter is invalid. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeEvents +func (c *DAX) DescribeEvents(input *DescribeEventsInput) (*DescribeEventsOutput, error) { + req, out := c.DescribeEventsRequest(input) + return out, req.Send() +} + +// DescribeEventsWithContext is the same as DescribeEvents with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeEvents 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 *DAX) DescribeEventsWithContext(ctx aws.Context, input *DescribeEventsInput, opts ...request.Option) (*DescribeEventsOutput, error) { + req, out := c.DescribeEventsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeParameterGroups = "DescribeParameterGroups" + +// DescribeParameterGroupsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeParameterGroups operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeParameterGroups for more information on using the DescribeParameterGroups +// 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 DescribeParameterGroupsRequest method. +// req, resp := client.DescribeParameterGroupsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeParameterGroups +func (c *DAX) DescribeParameterGroupsRequest(input *DescribeParameterGroupsInput) (req *request.Request, output *DescribeParameterGroupsOutput) { + op := &request.Operation{ + Name: opDescribeParameterGroups, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeParameterGroupsInput{} + } + + output = &DescribeParameterGroupsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeParameterGroups API operation for Amazon DynamoDB Accelerator (DAX). +// +// Returns a list of parameter group descriptions. If a parameter group name +// is specified, the list will contain only the descriptions for that group. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation DescribeParameterGroups for usage and error information. +// +// Returned Error Codes: +// * ErrCodeParameterGroupNotFoundFault "ParameterGroupNotFoundFault" +// The specified parameter group does not exist. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValueException" +// The value for a parameter is invalid. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeParameterGroups +func (c *DAX) DescribeParameterGroups(input *DescribeParameterGroupsInput) (*DescribeParameterGroupsOutput, error) { + req, out := c.DescribeParameterGroupsRequest(input) + return out, req.Send() +} + +// DescribeParameterGroupsWithContext is the same as DescribeParameterGroups with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeParameterGroups 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 *DAX) DescribeParameterGroupsWithContext(ctx aws.Context, input *DescribeParameterGroupsInput, opts ...request.Option) (*DescribeParameterGroupsOutput, error) { + req, out := c.DescribeParameterGroupsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeParameters = "DescribeParameters" + +// DescribeParametersRequest generates a "aws/request.Request" representing the +// client's request for the DescribeParameters operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeParameters for more information on using the DescribeParameters +// 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 DescribeParametersRequest method. +// req, resp := client.DescribeParametersRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeParameters +func (c *DAX) DescribeParametersRequest(input *DescribeParametersInput) (req *request.Request, output *DescribeParametersOutput) { + op := &request.Operation{ + Name: opDescribeParameters, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeParametersInput{} + } + + output = &DescribeParametersOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeParameters API operation for Amazon DynamoDB Accelerator (DAX). +// +// Returns the detailed parameter list for a particular parameter group. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation DescribeParameters for usage and error information. +// +// Returned Error Codes: +// * ErrCodeParameterGroupNotFoundFault "ParameterGroupNotFoundFault" +// The specified parameter group does not exist. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValueException" +// The value for a parameter is invalid. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeParameters +func (c *DAX) DescribeParameters(input *DescribeParametersInput) (*DescribeParametersOutput, error) { + req, out := c.DescribeParametersRequest(input) + return out, req.Send() +} + +// DescribeParametersWithContext is the same as DescribeParameters with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeParameters 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 *DAX) DescribeParametersWithContext(ctx aws.Context, input *DescribeParametersInput, opts ...request.Option) (*DescribeParametersOutput, error) { + req, out := c.DescribeParametersRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opDescribeSubnetGroups = "DescribeSubnetGroups" + +// DescribeSubnetGroupsRequest generates a "aws/request.Request" representing the +// client's request for the DescribeSubnetGroups operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeSubnetGroups for more information on using the DescribeSubnetGroups +// 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 DescribeSubnetGroupsRequest method. +// req, resp := client.DescribeSubnetGroupsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeSubnetGroups +func (c *DAX) DescribeSubnetGroupsRequest(input *DescribeSubnetGroupsInput) (req *request.Request, output *DescribeSubnetGroupsOutput) { + op := &request.Operation{ + Name: opDescribeSubnetGroups, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeSubnetGroupsInput{} + } + + output = &DescribeSubnetGroupsOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeSubnetGroups API operation for Amazon DynamoDB Accelerator (DAX). +// +// Returns a list of subnet group descriptions. If a subnet group name is specified, +// the list will contain only the description of that group. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation DescribeSubnetGroups for usage and error information. +// +// Returned Error Codes: +// * ErrCodeSubnetGroupNotFoundFault "SubnetGroupNotFoundFault" +// The requested subnet group name does not refer to an existing subnet group. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/DescribeSubnetGroups +func (c *DAX) DescribeSubnetGroups(input *DescribeSubnetGroupsInput) (*DescribeSubnetGroupsOutput, error) { + req, out := c.DescribeSubnetGroupsRequest(input) + return out, req.Send() +} + +// DescribeSubnetGroupsWithContext is the same as DescribeSubnetGroups with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeSubnetGroups 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 *DAX) DescribeSubnetGroupsWithContext(ctx aws.Context, input *DescribeSubnetGroupsInput, opts ...request.Option) (*DescribeSubnetGroupsOutput, error) { + req, out := c.DescribeSubnetGroupsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opIncreaseReplicationFactor = "IncreaseReplicationFactor" + +// IncreaseReplicationFactorRequest generates a "aws/request.Request" representing the +// client's request for the IncreaseReplicationFactor operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 IncreaseReplicationFactor for more information on using the IncreaseReplicationFactor +// 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 IncreaseReplicationFactorRequest method. +// req, resp := client.IncreaseReplicationFactorRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/IncreaseReplicationFactor +func (c *DAX) IncreaseReplicationFactorRequest(input *IncreaseReplicationFactorInput) (req *request.Request, output *IncreaseReplicationFactorOutput) { + op := &request.Operation{ + Name: opIncreaseReplicationFactor, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &IncreaseReplicationFactorInput{} + } + + output = &IncreaseReplicationFactorOutput{} + req = c.newRequest(op, input, output) + return +} + +// IncreaseReplicationFactor API operation for Amazon DynamoDB Accelerator (DAX). +// +// Adds one or more nodes to a DAX cluster. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation IncreaseReplicationFactor for usage and error information. +// +// Returned Error Codes: +// * ErrCodeClusterNotFoundFault "ClusterNotFoundFault" +// The requested cluster ID does not refer to an existing DAX cluster. +// +// * ErrCodeInvalidClusterStateFault "InvalidClusterStateFault" +// The requested DAX cluster is not in the available state. +// +// * ErrCodeInsufficientClusterCapacityFault "InsufficientClusterCapacityFault" +// There are not enough system resources to create the cluster you requested +// (or to resize an already-existing cluster). +// +// * ErrCodeInvalidVPCNetworkStateFault "InvalidVPCNetworkStateFault" +// The VPC network is in an invalid state. +// +// * ErrCodeNodeQuotaForClusterExceededFault "NodeQuotaForClusterExceededFault" +// You have attempted to exceed the maximum number of nodes for a DAX cluster. +// +// * ErrCodeNodeQuotaForCustomerExceededFault "NodeQuotaForCustomerExceededFault" +// You have attempted to exceed the maximum number of nodes for your AWS account. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValueException" +// The value for a parameter is invalid. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/IncreaseReplicationFactor +func (c *DAX) IncreaseReplicationFactor(input *IncreaseReplicationFactorInput) (*IncreaseReplicationFactorOutput, error) { + req, out := c.IncreaseReplicationFactorRequest(input) + return out, req.Send() +} + +// IncreaseReplicationFactorWithContext is the same as IncreaseReplicationFactor with the addition of +// the ability to pass a context and additional request options. +// +// See IncreaseReplicationFactor 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 *DAX) IncreaseReplicationFactorWithContext(ctx aws.Context, input *IncreaseReplicationFactorInput, opts ...request.Option) (*IncreaseReplicationFactorOutput, error) { + req, out := c.IncreaseReplicationFactorRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opListTags = "ListTags" + +// ListTagsRequest generates a "aws/request.Request" representing the +// client's request for the ListTags operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 ListTags for more information on using the ListTags +// 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 ListTagsRequest method. +// req, resp := client.ListTagsRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/ListTags +func (c *DAX) ListTagsRequest(input *ListTagsInput) (req *request.Request, output *ListTagsOutput) { + op := &request.Operation{ + Name: opListTags, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListTagsInput{} + } + + output = &ListTagsOutput{} + req = c.newRequest(op, input, output) + return +} + +// ListTags API operation for Amazon DynamoDB Accelerator (DAX). +// +// List all of the tags for a DAX cluster. You can call ListTags up to 10 times +// per second, per account. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation ListTags for usage and error information. +// +// Returned Error Codes: +// * ErrCodeClusterNotFoundFault "ClusterNotFoundFault" +// The requested cluster ID does not refer to an existing DAX cluster. +// +// * ErrCodeInvalidARNFault "InvalidARNFault" +// The Amazon Resource Name (ARN) supplied in the request is not valid. +// +// * ErrCodeInvalidClusterStateFault "InvalidClusterStateFault" +// The requested DAX cluster is not in the available state. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValueException" +// The value for a parameter is invalid. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/ListTags +func (c *DAX) ListTags(input *ListTagsInput) (*ListTagsOutput, error) { + req, out := c.ListTagsRequest(input) + return out, req.Send() +} + +// ListTagsWithContext is the same as ListTags with the addition of +// the ability to pass a context and additional request options. +// +// See ListTags 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 *DAX) ListTagsWithContext(ctx aws.Context, input *ListTagsInput, opts ...request.Option) (*ListTagsOutput, error) { + req, out := c.ListTagsRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opRebootNode = "RebootNode" + +// RebootNodeRequest generates a "aws/request.Request" representing the +// client's request for the RebootNode operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 RebootNode for more information on using the RebootNode +// 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 RebootNodeRequest method. +// req, resp := client.RebootNodeRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/RebootNode +func (c *DAX) RebootNodeRequest(input *RebootNodeInput) (req *request.Request, output *RebootNodeOutput) { + op := &request.Operation{ + Name: opRebootNode, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &RebootNodeInput{} + } + + output = &RebootNodeOutput{} + req = c.newRequest(op, input, output) + return +} + +// RebootNode API operation for Amazon DynamoDB Accelerator (DAX). +// +// Reboots a single node of a DAX cluster. The reboot action takes place as +// soon as possible. During the reboot, the node status is set to REBOOTING. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation RebootNode for usage and error information. +// +// Returned Error Codes: +// * ErrCodeClusterNotFoundFault "ClusterNotFoundFault" +// The requested cluster ID does not refer to an existing DAX cluster. +// +// * ErrCodeNodeNotFoundFault "NodeNotFoundFault" +// None of the nodes in the cluster have the given node ID. +// +// * ErrCodeInvalidClusterStateFault "InvalidClusterStateFault" +// The requested DAX cluster is not in the available state. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValueException" +// The value for a parameter is invalid. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/RebootNode +func (c *DAX) RebootNode(input *RebootNodeInput) (*RebootNodeOutput, error) { + req, out := c.RebootNodeRequest(input) + return out, req.Send() +} + +// RebootNodeWithContext is the same as RebootNode with the addition of +// the ability to pass a context and additional request options. +// +// See RebootNode 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 *DAX) RebootNodeWithContext(ctx aws.Context, input *RebootNodeInput, opts ...request.Option) (*RebootNodeOutput, error) { + req, out := c.RebootNodeRequest(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 complets +// successfuly. +// +// 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/dax-2017-04-19/TagResource +func (c *DAX) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { + op := &request.Operation{ + Name: opTagResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &TagResourceInput{} + } + + output = &TagResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// TagResource API operation for Amazon DynamoDB Accelerator (DAX). +// +// Associates a set of tags with a DAX resource. You can call TagResource up +// to 5 times per second, per account. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation TagResource for usage and error information. +// +// Returned Error Codes: +// * ErrCodeClusterNotFoundFault "ClusterNotFoundFault" +// The requested cluster ID does not refer to an existing DAX cluster. +// +// * ErrCodeTagQuotaPerResourceExceeded "TagQuotaPerResourceExceeded" +// You have exceeded the maximum number of tags for this DAX cluster. +// +// * ErrCodeInvalidARNFault "InvalidARNFault" +// The Amazon Resource Name (ARN) supplied in the request is not valid. +// +// * ErrCodeInvalidClusterStateFault "InvalidClusterStateFault" +// The requested DAX cluster is not in the available state. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValueException" +// The value for a parameter is invalid. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/TagResource +func (c *DAX) 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 *DAX) 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 complets +// successfuly. +// +// 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/dax-2017-04-19/UntagResource +func (c *DAX) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { + op := &request.Operation{ + Name: opUntagResource, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UntagResourceInput{} + } + + output = &UntagResourceOutput{} + req = c.newRequest(op, input, output) + return +} + +// UntagResource API operation for Amazon DynamoDB Accelerator (DAX). +// +// Removes the association of tags from a DAX resource. You can call UntagResource +// up to 5 times per second, per account. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation UntagResource for usage and error information. +// +// Returned Error Codes: +// * ErrCodeClusterNotFoundFault "ClusterNotFoundFault" +// The requested cluster ID does not refer to an existing DAX cluster. +// +// * ErrCodeInvalidARNFault "InvalidARNFault" +// The Amazon Resource Name (ARN) supplied in the request is not valid. +// +// * ErrCodeTagNotFoundFault "TagNotFoundFault" +// The tag does not exist. +// +// * ErrCodeInvalidClusterStateFault "InvalidClusterStateFault" +// The requested DAX cluster is not in the available state. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValueException" +// The value for a parameter is invalid. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UntagResource +func (c *DAX) 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 *DAX) 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 opUpdateCluster = "UpdateCluster" + +// UpdateClusterRequest generates a "aws/request.Request" representing the +// client's request for the UpdateCluster operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 UpdateCluster for more information on using the UpdateCluster +// 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 UpdateClusterRequest method. +// req, resp := client.UpdateClusterRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UpdateCluster +func (c *DAX) UpdateClusterRequest(input *UpdateClusterInput) (req *request.Request, output *UpdateClusterOutput) { + op := &request.Operation{ + Name: opUpdateCluster, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateClusterInput{} + } + + output = &UpdateClusterOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateCluster API operation for Amazon DynamoDB Accelerator (DAX). +// +// Modifies the settings for a DAX cluster. You can use this action to change +// one or more cluster configuration parameters by specifying the parameters +// and the new values. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation UpdateCluster for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidClusterStateFault "InvalidClusterStateFault" +// The requested DAX cluster is not in the available state. +// +// * ErrCodeClusterNotFoundFault "ClusterNotFoundFault" +// The requested cluster ID does not refer to an existing DAX cluster. +// +// * ErrCodeInvalidParameterGroupStateFault "InvalidParameterGroupStateFault" +// One or more parameters in a parameter group are in an invalid state. +// +// * ErrCodeParameterGroupNotFoundFault "ParameterGroupNotFoundFault" +// The specified parameter group does not exist. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValueException" +// The value for a parameter is invalid. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UpdateCluster +func (c *DAX) UpdateCluster(input *UpdateClusterInput) (*UpdateClusterOutput, error) { + req, out := c.UpdateClusterRequest(input) + return out, req.Send() +} + +// UpdateClusterWithContext is the same as UpdateCluster with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateCluster 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 *DAX) UpdateClusterWithContext(ctx aws.Context, input *UpdateClusterInput, opts ...request.Option) (*UpdateClusterOutput, error) { + req, out := c.UpdateClusterRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateParameterGroup = "UpdateParameterGroup" + +// UpdateParameterGroupRequest generates a "aws/request.Request" representing the +// client's request for the UpdateParameterGroup operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 UpdateParameterGroup for more information on using the UpdateParameterGroup +// 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 UpdateParameterGroupRequest method. +// req, resp := client.UpdateParameterGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UpdateParameterGroup +func (c *DAX) UpdateParameterGroupRequest(input *UpdateParameterGroupInput) (req *request.Request, output *UpdateParameterGroupOutput) { + op := &request.Operation{ + Name: opUpdateParameterGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateParameterGroupInput{} + } + + output = &UpdateParameterGroupOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateParameterGroup API operation for Amazon DynamoDB Accelerator (DAX). +// +// Modifies the parameters of a parameter group. You can modify up to 20 parameters +// in a single request by submitting a list parameter name and value pairs. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation UpdateParameterGroup for usage and error information. +// +// Returned Error Codes: +// * ErrCodeInvalidParameterGroupStateFault "InvalidParameterGroupStateFault" +// One or more parameters in a parameter group are in an invalid state. +// +// * ErrCodeParameterGroupNotFoundFault "ParameterGroupNotFoundFault" +// The specified parameter group does not exist. +// +// * ErrCodeInvalidParameterValueException "InvalidParameterValueException" +// The value for a parameter is invalid. +// +// * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException" +// Two or more incompatible parameters were specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UpdateParameterGroup +func (c *DAX) UpdateParameterGroup(input *UpdateParameterGroupInput) (*UpdateParameterGroupOutput, error) { + req, out := c.UpdateParameterGroupRequest(input) + return out, req.Send() +} + +// UpdateParameterGroupWithContext is the same as UpdateParameterGroup with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateParameterGroup 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 *DAX) UpdateParameterGroupWithContext(ctx aws.Context, input *UpdateParameterGroupInput, opts ...request.Option) (*UpdateParameterGroupOutput, error) { + req, out := c.UpdateParameterGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +const opUpdateSubnetGroup = "UpdateSubnetGroup" + +// UpdateSubnetGroupRequest generates a "aws/request.Request" representing the +// client's request for the UpdateSubnetGroup operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 UpdateSubnetGroup for more information on using the UpdateSubnetGroup +// 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 UpdateSubnetGroupRequest method. +// req, resp := client.UpdateSubnetGroupRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UpdateSubnetGroup +func (c *DAX) UpdateSubnetGroupRequest(input *UpdateSubnetGroupInput) (req *request.Request, output *UpdateSubnetGroupOutput) { + op := &request.Operation{ + Name: opUpdateSubnetGroup, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UpdateSubnetGroupInput{} + } + + output = &UpdateSubnetGroupOutput{} + req = c.newRequest(op, input, output) + return +} + +// UpdateSubnetGroup API operation for Amazon DynamoDB Accelerator (DAX). +// +// Modifies an existing subnet group. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon DynamoDB Accelerator (DAX)'s +// API operation UpdateSubnetGroup for usage and error information. +// +// Returned Error Codes: +// * ErrCodeSubnetGroupNotFoundFault "SubnetGroupNotFoundFault" +// The requested subnet group name does not refer to an existing subnet group. +// +// * ErrCodeSubnetQuotaExceededFault "SubnetQuotaExceededFault" +// The request cannot be processed because it would exceed the allowed number +// of subnets in a subnet group. +// +// * ErrCodeSubnetInUse "SubnetInUse" +// The requested subnet is being used by another subnet group. +// +// * ErrCodeInvalidSubnet "InvalidSubnet" +// An invalid subnet identifier was specified. +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19/UpdateSubnetGroup +func (c *DAX) UpdateSubnetGroup(input *UpdateSubnetGroupInput) (*UpdateSubnetGroupOutput, error) { + req, out := c.UpdateSubnetGroupRequest(input) + return out, req.Send() +} + +// UpdateSubnetGroupWithContext is the same as UpdateSubnetGroup with the addition of +// the ability to pass a context and additional request options. +// +// See UpdateSubnetGroup 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 *DAX) UpdateSubnetGroupWithContext(ctx aws.Context, input *UpdateSubnetGroupInput, opts ...request.Option) (*UpdateSubnetGroupOutput, error) { + req, out := c.UpdateSubnetGroupRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + +// Contains all of the attributes of a specific DAX cluster. +type Cluster struct { + _ struct{} `type:"structure"` + + // The number of nodes in the cluster that are active (i.e., capable of serving + // requests). + ActiveNodes *int64 `type:"integer"` + + // The Amazon Resource Name (ARN) that uniquely identifies the cluster. + ClusterArn *string `type:"string"` + + // The configuration endpoint for this DAX cluster, consisting of a DNS name + // and a port number. Client applications can specify this endpoint, rather + // than an individual node endpoint, and allow the DAX client software to intelligently + // route requests and responses to nodes in the DAX cluster. + ClusterDiscoveryEndpoint *Endpoint `type:"structure"` + + // The name of the DAX cluster. + ClusterName *string `type:"string"` + + // The description of the cluster. + Description *string `type:"string"` + + // A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, + // DAX will assume this role and use the role's permissions to access DynamoDB + // on your behalf. + IamRoleArn *string `type:"string"` + + // A list of nodes to be removed from the cluster. + NodeIdsToRemove []*string `type:"list"` + + // The node type for the nodes in the cluster. (All nodes in a DAX cluster are + // of the same type.) + NodeType *string `type:"string"` + + // A list of nodes that are currently in the cluster. + Nodes []*Node `type:"list"` + + // Describes a notification topic and its status. Notification topics are used + // for publishing DAX events to subscribers using Amazon Simple Notification + // Service (SNS). + NotificationConfiguration *NotificationConfiguration `type:"structure"` + + // The parameter group being used by nodes in the cluster. + ParameterGroup *ParameterGroupStatus `type:"structure"` + + // A range of time when maintenance of DAX cluster software will be performed. + // For example: sun:01:00-sun:09:00. Cluster maintenance normally takes less + // than 30 minutes, and is performed automatically within the maintenance window. + PreferredMaintenanceWindow *string `type:"string"` + + // A list of security groups, and the status of each, for the nodes in the cluster. + SecurityGroups []*SecurityGroupMembership `type:"list"` + + // The current status of the cluster. + Status *string `type:"string"` + + // The subnet group where the DAX cluster is running. + SubnetGroup *string `type:"string"` + + // The total number of nodes in the cluster. + TotalNodes *int64 `type:"integer"` +} + +// String returns the string representation +func (s Cluster) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Cluster) GoString() string { + return s.String() +} + +// SetActiveNodes sets the ActiveNodes field's value. +func (s *Cluster) SetActiveNodes(v int64) *Cluster { + s.ActiveNodes = &v + return s +} + +// SetClusterArn sets the ClusterArn field's value. +func (s *Cluster) SetClusterArn(v string) *Cluster { + s.ClusterArn = &v + return s +} + +// SetClusterDiscoveryEndpoint sets the ClusterDiscoveryEndpoint field's value. +func (s *Cluster) SetClusterDiscoveryEndpoint(v *Endpoint) *Cluster { + s.ClusterDiscoveryEndpoint = v + return s +} + +// SetClusterName sets the ClusterName field's value. +func (s *Cluster) SetClusterName(v string) *Cluster { + s.ClusterName = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *Cluster) SetDescription(v string) *Cluster { + s.Description = &v + return s +} + +// SetIamRoleArn sets the IamRoleArn field's value. +func (s *Cluster) SetIamRoleArn(v string) *Cluster { + s.IamRoleArn = &v + return s +} + +// SetNodeIdsToRemove sets the NodeIdsToRemove field's value. +func (s *Cluster) SetNodeIdsToRemove(v []*string) *Cluster { + s.NodeIdsToRemove = v + return s +} + +// SetNodeType sets the NodeType field's value. +func (s *Cluster) SetNodeType(v string) *Cluster { + s.NodeType = &v + return s +} + +// SetNodes sets the Nodes field's value. +func (s *Cluster) SetNodes(v []*Node) *Cluster { + s.Nodes = v + return s +} + +// SetNotificationConfiguration sets the NotificationConfiguration field's value. +func (s *Cluster) SetNotificationConfiguration(v *NotificationConfiguration) *Cluster { + s.NotificationConfiguration = v + return s +} + +// SetParameterGroup sets the ParameterGroup field's value. +func (s *Cluster) SetParameterGroup(v *ParameterGroupStatus) *Cluster { + s.ParameterGroup = v + return s +} + +// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value. +func (s *Cluster) SetPreferredMaintenanceWindow(v string) *Cluster { + s.PreferredMaintenanceWindow = &v + return s +} + +// SetSecurityGroups sets the SecurityGroups field's value. +func (s *Cluster) SetSecurityGroups(v []*SecurityGroupMembership) *Cluster { + s.SecurityGroups = v + return s +} + +// SetStatus sets the Status field's value. +func (s *Cluster) SetStatus(v string) *Cluster { + s.Status = &v + return s +} + +// SetSubnetGroup sets the SubnetGroup field's value. +func (s *Cluster) SetSubnetGroup(v string) *Cluster { + s.SubnetGroup = &v + return s +} + +// SetTotalNodes sets the TotalNodes field's value. +func (s *Cluster) SetTotalNodes(v int64) *Cluster { + s.TotalNodes = &v + return s +} + +type CreateClusterInput struct { + _ struct{} `type:"structure"` + + // The Availability Zones (AZs) in which the cluster nodes will be created. + // All nodes belonging to the cluster are placed in these Availability Zones. + // Use this parameter if you want to distribute the nodes across multiple AZs. + AvailabilityZones []*string `type:"list"` + + // The cluster identifier. This parameter is stored as a lowercase string. + // + // Constraints: + // + // * A name must contain from 1 to 20 alphanumeric characters or hyphens. + // + // * The first character must be a letter. + // + // * A name cannot end with a hyphen or contain two consecutive hyphens. + // + // ClusterName is a required field + ClusterName *string `type:"string" required:"true"` + + // A description of the cluster. + Description *string `type:"string"` + + // A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, + // DAX will assume this role and use the role's permissions to access DynamoDB + // on your behalf. + // + // IamRoleArn is a required field + IamRoleArn *string `type:"string" required:"true"` + + // The compute and memory capacity of the nodes in the cluster. + // + // NodeType is a required field + NodeType *string `type:"string" required:"true"` + + // The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications + // will be sent. + // + // The Amazon SNS topic owner must be same as the DAX cluster owner. + NotificationTopicArn *string `type:"string"` + + // The parameter group to be associated with the DAX cluster. + ParameterGroupName *string `type:"string"` + + // Specifies the weekly time range during which maintenance on the DAX cluster + // is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi + // (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid + // values for ddd are: + // + // * sun + // + // * mon + // + // * tue + // + // * wed + // + // * thu + // + // * fri + // + // * sat + // + // Example: sun:05:00-sun:09:00 + // + // If you don't specify a preferred maintenance window when you create or modify + // a cache cluster, DAX assigns a 60-minute maintenance window on a randomly + // selected day of the week. + PreferredMaintenanceWindow *string `type:"string"` + + // The number of nodes in the DAX cluster. A replication factor of 1 will create + // a single-node cluster, without any read replicas. For additional fault tolerance, + // you can create a multiple node cluster with one or more read replicas. To + // do this, set ReplicationFactor to 2 or more. + // + // AWS recommends that you have at least two read replicas per cluster. + // + // ReplicationFactor is a required field + ReplicationFactor *int64 `type:"integer" required:"true"` + + // A list of security group IDs to be assigned to each node in the DAX cluster. + // (Each of the security group ID is system-generated.) + // + // If this parameter is not specified, DAX assigns the default VPC security + // group to each node. + SecurityGroupIds []*string `type:"list"` + + // The name of the subnet group to be used for the replication group. + // + // DAX clusters can only run in an Amazon VPC environment. All of the subnets + // that you specify in a subnet group must exist in the same VPC. + SubnetGroupName *string `type:"string"` + + // A set of tags to associate with the DAX cluster. + Tags []*Tag `type:"list"` +} + +// String returns the string representation +func (s CreateClusterInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateClusterInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateClusterInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateClusterInput"} + if s.ClusterName == nil { + invalidParams.Add(request.NewErrParamRequired("ClusterName")) + } + if s.IamRoleArn == nil { + invalidParams.Add(request.NewErrParamRequired("IamRoleArn")) + } + if s.NodeType == nil { + invalidParams.Add(request.NewErrParamRequired("NodeType")) + } + if s.ReplicationFactor == nil { + invalidParams.Add(request.NewErrParamRequired("ReplicationFactor")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAvailabilityZones sets the AvailabilityZones field's value. +func (s *CreateClusterInput) SetAvailabilityZones(v []*string) *CreateClusterInput { + s.AvailabilityZones = v + return s +} + +// SetClusterName sets the ClusterName field's value. +func (s *CreateClusterInput) SetClusterName(v string) *CreateClusterInput { + s.ClusterName = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *CreateClusterInput) SetDescription(v string) *CreateClusterInput { + s.Description = &v + return s +} + +// SetIamRoleArn sets the IamRoleArn field's value. +func (s *CreateClusterInput) SetIamRoleArn(v string) *CreateClusterInput { + s.IamRoleArn = &v + return s +} + +// SetNodeType sets the NodeType field's value. +func (s *CreateClusterInput) SetNodeType(v string) *CreateClusterInput { + s.NodeType = &v + return s +} + +// SetNotificationTopicArn sets the NotificationTopicArn field's value. +func (s *CreateClusterInput) SetNotificationTopicArn(v string) *CreateClusterInput { + s.NotificationTopicArn = &v + return s +} + +// SetParameterGroupName sets the ParameterGroupName field's value. +func (s *CreateClusterInput) SetParameterGroupName(v string) *CreateClusterInput { + s.ParameterGroupName = &v + return s +} + +// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value. +func (s *CreateClusterInput) SetPreferredMaintenanceWindow(v string) *CreateClusterInput { + s.PreferredMaintenanceWindow = &v + return s +} + +// SetReplicationFactor sets the ReplicationFactor field's value. +func (s *CreateClusterInput) SetReplicationFactor(v int64) *CreateClusterInput { + s.ReplicationFactor = &v + return s +} + +// SetSecurityGroupIds sets the SecurityGroupIds field's value. +func (s *CreateClusterInput) SetSecurityGroupIds(v []*string) *CreateClusterInput { + s.SecurityGroupIds = v + return s +} + +// SetSubnetGroupName sets the SubnetGroupName field's value. +func (s *CreateClusterInput) SetSubnetGroupName(v string) *CreateClusterInput { + s.SubnetGroupName = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *CreateClusterInput) SetTags(v []*Tag) *CreateClusterInput { + s.Tags = v + return s +} + +type CreateClusterOutput struct { + _ struct{} `type:"structure"` + + // A description of the DAX cluster that you have created. + Cluster *Cluster `type:"structure"` +} + +// String returns the string representation +func (s CreateClusterOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateClusterOutput) GoString() string { + return s.String() +} + +// SetCluster sets the Cluster field's value. +func (s *CreateClusterOutput) SetCluster(v *Cluster) *CreateClusterOutput { + s.Cluster = v + return s +} + +type CreateParameterGroupInput struct { + _ struct{} `type:"structure"` + + // A description of the parameter group. + Description *string `type:"string"` + + // The name of the parameter group to apply to all of the clusters in this replication + // group. + // + // ParameterGroupName is a required field + ParameterGroupName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateParameterGroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateParameterGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateParameterGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateParameterGroupInput"} + if s.ParameterGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("ParameterGroupName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDescription sets the Description field's value. +func (s *CreateParameterGroupInput) SetDescription(v string) *CreateParameterGroupInput { + s.Description = &v + return s +} + +// SetParameterGroupName sets the ParameterGroupName field's value. +func (s *CreateParameterGroupInput) SetParameterGroupName(v string) *CreateParameterGroupInput { + s.ParameterGroupName = &v + return s +} + +type CreateParameterGroupOutput struct { + _ struct{} `type:"structure"` + + // Represents the output of a CreateParameterGroup action. + ParameterGroup *ParameterGroup `type:"structure"` +} + +// String returns the string representation +func (s CreateParameterGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateParameterGroupOutput) GoString() string { + return s.String() +} + +// SetParameterGroup sets the ParameterGroup field's value. +func (s *CreateParameterGroupOutput) SetParameterGroup(v *ParameterGroup) *CreateParameterGroupOutput { + s.ParameterGroup = v + return s +} + +type CreateSubnetGroupInput struct { + _ struct{} `type:"structure"` + + // A description for the subnet group + Description *string `type:"string"` + + // A name for the subnet group. This value is stored as a lowercase string. + // + // SubnetGroupName is a required field + SubnetGroupName *string `type:"string" required:"true"` + + // A list of VPC subnet IDs for the subnet group. + // + // SubnetIds is a required field + SubnetIds []*string `type:"list" required:"true"` +} + +// String returns the string representation +func (s CreateSubnetGroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateSubnetGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateSubnetGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "CreateSubnetGroupInput"} + if s.SubnetGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("SubnetGroupName")) + } + if s.SubnetIds == nil { + invalidParams.Add(request.NewErrParamRequired("SubnetIds")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDescription sets the Description field's value. +func (s *CreateSubnetGroupInput) SetDescription(v string) *CreateSubnetGroupInput { + s.Description = &v + return s +} + +// SetSubnetGroupName sets the SubnetGroupName field's value. +func (s *CreateSubnetGroupInput) SetSubnetGroupName(v string) *CreateSubnetGroupInput { + s.SubnetGroupName = &v + return s +} + +// SetSubnetIds sets the SubnetIds field's value. +func (s *CreateSubnetGroupInput) SetSubnetIds(v []*string) *CreateSubnetGroupInput { + s.SubnetIds = v + return s +} + +type CreateSubnetGroupOutput struct { + _ struct{} `type:"structure"` + + // Represents the output of a CreateSubnetGroup operation. + SubnetGroup *SubnetGroup `type:"structure"` +} + +// String returns the string representation +func (s CreateSubnetGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateSubnetGroupOutput) GoString() string { + return s.String() +} + +// SetSubnetGroup sets the SubnetGroup field's value. +func (s *CreateSubnetGroupOutput) SetSubnetGroup(v *SubnetGroup) *CreateSubnetGroupOutput { + s.SubnetGroup = v + return s +} + +type DecreaseReplicationFactorInput struct { + _ struct{} `type:"structure"` + + // The Availability Zone(s) from which to remove nodes. + AvailabilityZones []*string `type:"list"` + + // The name of the DAX cluster from which you want to remove nodes. + // + // ClusterName is a required field + ClusterName *string `type:"string" required:"true"` + + // The new number of nodes for the DAX cluster. + // + // NewReplicationFactor is a required field + NewReplicationFactor *int64 `type:"integer" required:"true"` + + // The unique identifiers of the nodes to be removed from the cluster. + NodeIdsToRemove []*string `type:"list"` +} + +// String returns the string representation +func (s DecreaseReplicationFactorInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DecreaseReplicationFactorInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DecreaseReplicationFactorInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DecreaseReplicationFactorInput"} + if s.ClusterName == nil { + invalidParams.Add(request.NewErrParamRequired("ClusterName")) + } + if s.NewReplicationFactor == nil { + invalidParams.Add(request.NewErrParamRequired("NewReplicationFactor")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAvailabilityZones sets the AvailabilityZones field's value. +func (s *DecreaseReplicationFactorInput) SetAvailabilityZones(v []*string) *DecreaseReplicationFactorInput { + s.AvailabilityZones = v + return s +} + +// SetClusterName sets the ClusterName field's value. +func (s *DecreaseReplicationFactorInput) SetClusterName(v string) *DecreaseReplicationFactorInput { + s.ClusterName = &v + return s +} + +// SetNewReplicationFactor sets the NewReplicationFactor field's value. +func (s *DecreaseReplicationFactorInput) SetNewReplicationFactor(v int64) *DecreaseReplicationFactorInput { + s.NewReplicationFactor = &v + return s +} + +// SetNodeIdsToRemove sets the NodeIdsToRemove field's value. +func (s *DecreaseReplicationFactorInput) SetNodeIdsToRemove(v []*string) *DecreaseReplicationFactorInput { + s.NodeIdsToRemove = v + return s +} + +type DecreaseReplicationFactorOutput struct { + _ struct{} `type:"structure"` + + // A description of the DAX cluster, after you have decreased its replication + // factor. + Cluster *Cluster `type:"structure"` +} + +// String returns the string representation +func (s DecreaseReplicationFactorOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DecreaseReplicationFactorOutput) GoString() string { + return s.String() +} + +// SetCluster sets the Cluster field's value. +func (s *DecreaseReplicationFactorOutput) SetCluster(v *Cluster) *DecreaseReplicationFactorOutput { + s.Cluster = v + return s +} + +type DeleteClusterInput struct { + _ struct{} `type:"structure"` + + // The name of the cluster to be deleted. + // + // ClusterName is a required field + ClusterName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteClusterInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteClusterInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteClusterInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteClusterInput"} + if s.ClusterName == nil { + invalidParams.Add(request.NewErrParamRequired("ClusterName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClusterName sets the ClusterName field's value. +func (s *DeleteClusterInput) SetClusterName(v string) *DeleteClusterInput { + s.ClusterName = &v + return s +} + +type DeleteClusterOutput struct { + _ struct{} `type:"structure"` + + // A description of the DAX cluster that is being deleted. + Cluster *Cluster `type:"structure"` +} + +// String returns the string representation +func (s DeleteClusterOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteClusterOutput) GoString() string { + return s.String() +} + +// SetCluster sets the Cluster field's value. +func (s *DeleteClusterOutput) SetCluster(v *Cluster) *DeleteClusterOutput { + s.Cluster = v + return s +} + +type DeleteParameterGroupInput struct { + _ struct{} `type:"structure"` + + // The name of the parameter group to delete. + // + // ParameterGroupName is a required field + ParameterGroupName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteParameterGroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteParameterGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteParameterGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteParameterGroupInput"} + if s.ParameterGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("ParameterGroupName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetParameterGroupName sets the ParameterGroupName field's value. +func (s *DeleteParameterGroupInput) SetParameterGroupName(v string) *DeleteParameterGroupInput { + s.ParameterGroupName = &v + return s +} + +type DeleteParameterGroupOutput struct { + _ struct{} `type:"structure"` + + // A user-specified message for this action (i.e., a reason for deleting the + // parameter group). + DeletionMessage *string `type:"string"` +} + +// String returns the string representation +func (s DeleteParameterGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteParameterGroupOutput) GoString() string { + return s.String() +} + +// SetDeletionMessage sets the DeletionMessage field's value. +func (s *DeleteParameterGroupOutput) SetDeletionMessage(v string) *DeleteParameterGroupOutput { + s.DeletionMessage = &v + return s +} + +type DeleteSubnetGroupInput struct { + _ struct{} `type:"structure"` + + // The name of the subnet group to delete. + // + // SubnetGroupName is a required field + SubnetGroupName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteSubnetGroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteSubnetGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteSubnetGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DeleteSubnetGroupInput"} + if s.SubnetGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("SubnetGroupName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetSubnetGroupName sets the SubnetGroupName field's value. +func (s *DeleteSubnetGroupInput) SetSubnetGroupName(v string) *DeleteSubnetGroupInput { + s.SubnetGroupName = &v + return s +} + +type DeleteSubnetGroupOutput struct { + _ struct{} `type:"structure"` + + // A user-specified message for this action (i.e., a reason for deleting the + // subnet group). + DeletionMessage *string `type:"string"` +} + +// String returns the string representation +func (s DeleteSubnetGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteSubnetGroupOutput) GoString() string { + return s.String() +} + +// SetDeletionMessage sets the DeletionMessage field's value. +func (s *DeleteSubnetGroupOutput) SetDeletionMessage(v string) *DeleteSubnetGroupOutput { + s.DeletionMessage = &v + return s +} + +type DescribeClustersInput struct { + _ struct{} `type:"structure"` + + // The names of the DAX clusters being described. + ClusterNames []*string `type:"list"` + + // The maximum number of results to include in the response. If more results + // exist than the specified MaxResults value, a token is included in the response + // so that the remaining results can be retrieved. + // + // The value for MaxResults must be between 20 and 100. + MaxResults *int64 `type:"integer"` + + // An optional token returned from a prior request. Use this token for pagination + // of results from this action. If this parameter is specified, the response + // includes only results beyond the token, up to the value specified by MaxResults. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s DescribeClustersInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeClustersInput) GoString() string { + return s.String() +} + +// SetClusterNames sets the ClusterNames field's value. +func (s *DescribeClustersInput) SetClusterNames(v []*string) *DescribeClustersInput { + s.ClusterNames = v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *DescribeClustersInput) SetMaxResults(v int64) *DescribeClustersInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeClustersInput) SetNextToken(v string) *DescribeClustersInput { + s.NextToken = &v + return s +} + +type DescribeClustersOutput struct { + _ struct{} `type:"structure"` + + // The descriptions of your DAX clusters, in response to a DescribeClusters + // request. + Clusters []*Cluster `type:"list"` + + // Provides an identifier to allow retrieval of paginated results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s DescribeClustersOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeClustersOutput) GoString() string { + return s.String() +} + +// SetClusters sets the Clusters field's value. +func (s *DescribeClustersOutput) SetClusters(v []*Cluster) *DescribeClustersOutput { + s.Clusters = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeClustersOutput) SetNextToken(v string) *DescribeClustersOutput { + s.NextToken = &v + return s +} + +type DescribeDefaultParametersInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to include in the response. If more results + // exist than the specified MaxResults value, a token is included in the response + // so that the remaining results can be retrieved. + // + // The value for MaxResults must be between 20 and 100. + MaxResults *int64 `type:"integer"` + + // An optional token returned from a prior request. Use this token for pagination + // of results from this action. If this parameter is specified, the response + // includes only results beyond the token, up to the value specified by MaxResults. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s DescribeDefaultParametersInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeDefaultParametersInput) GoString() string { + return s.String() +} + +// SetMaxResults sets the MaxResults field's value. +func (s *DescribeDefaultParametersInput) SetMaxResults(v int64) *DescribeDefaultParametersInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeDefaultParametersInput) SetNextToken(v string) *DescribeDefaultParametersInput { + s.NextToken = &v + return s +} + +type DescribeDefaultParametersOutput struct { + _ struct{} `type:"structure"` + + // Provides an identifier to allow retrieval of paginated results. + NextToken *string `type:"string"` + + // A list of parameters. Each element in the list represents one parameter. + Parameters []*Parameter `type:"list"` +} + +// String returns the string representation +func (s DescribeDefaultParametersOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeDefaultParametersOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeDefaultParametersOutput) SetNextToken(v string) *DescribeDefaultParametersOutput { + s.NextToken = &v + return s +} + +// SetParameters sets the Parameters field's value. +func (s *DescribeDefaultParametersOutput) SetParameters(v []*Parameter) *DescribeDefaultParametersOutput { + s.Parameters = v + return s +} + +type DescribeEventsInput struct { + _ struct{} `type:"structure"` + + // The number of minutes' worth of events to retrieve. + Duration *int64 `type:"integer"` + + // The end of the time interval for which to retrieve events, specified in ISO + // 8601 format. + EndTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // The maximum number of results to include in the response. If more results + // exist than the specified MaxResults value, a token is included in the response + // so that the remaining results can be retrieved. + // + // The value for MaxResults must be between 20 and 100. + MaxResults *int64 `type:"integer"` + + // An optional token returned from a prior request. Use this token for pagination + // of results from this action. If this parameter is specified, the response + // includes only results beyond the token, up to the value specified by MaxResults. + NextToken *string `type:"string"` + + // The identifier of the event source for which events will be returned. If + // not specified, then all sources are included in the response. + SourceName *string `type:"string"` + + // The event source to retrieve events for. If no value is specified, all events + // are returned. + SourceType *string `type:"string" enum:"SourceType"` + + // The beginning of the time interval to retrieve events for, specified in ISO + // 8601 format. + StartTime *time.Time `type:"timestamp" timestampFormat:"unix"` +} + +// String returns the string representation +func (s DescribeEventsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeEventsInput) GoString() string { + return s.String() +} + +// SetDuration sets the Duration field's value. +func (s *DescribeEventsInput) SetDuration(v int64) *DescribeEventsInput { + s.Duration = &v + return s +} + +// SetEndTime sets the EndTime field's value. +func (s *DescribeEventsInput) SetEndTime(v time.Time) *DescribeEventsInput { + s.EndTime = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *DescribeEventsInput) SetMaxResults(v int64) *DescribeEventsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeEventsInput) SetNextToken(v string) *DescribeEventsInput { + s.NextToken = &v + return s +} + +// SetSourceName sets the SourceName field's value. +func (s *DescribeEventsInput) SetSourceName(v string) *DescribeEventsInput { + s.SourceName = &v + return s +} + +// SetSourceType sets the SourceType field's value. +func (s *DescribeEventsInput) SetSourceType(v string) *DescribeEventsInput { + s.SourceType = &v + return s +} + +// SetStartTime sets the StartTime field's value. +func (s *DescribeEventsInput) SetStartTime(v time.Time) *DescribeEventsInput { + s.StartTime = &v + return s +} + +type DescribeEventsOutput struct { + _ struct{} `type:"structure"` + + // An array of events. Each element in the array represents one event. + Events []*Event `type:"list"` + + // Provides an identifier to allow retrieval of paginated results. + NextToken *string `type:"string"` +} + +// String returns the string representation +func (s DescribeEventsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeEventsOutput) GoString() string { + return s.String() +} + +// SetEvents sets the Events field's value. +func (s *DescribeEventsOutput) SetEvents(v []*Event) *DescribeEventsOutput { + s.Events = v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeEventsOutput) SetNextToken(v string) *DescribeEventsOutput { + s.NextToken = &v + return s +} + +type DescribeParameterGroupsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to include in the response. If more results + // exist than the specified MaxResults value, a token is included in the response + // so that the remaining results can be retrieved. + // + // The value for MaxResults must be between 20 and 100. + MaxResults *int64 `type:"integer"` + + // An optional token returned from a prior request. Use this token for pagination + // of results from this action. If this parameter is specified, the response + // includes only results beyond the token, up to the value specified by MaxResults. + NextToken *string `type:"string"` + + // The names of the parameter groups. + ParameterGroupNames []*string `type:"list"` +} + +// String returns the string representation +func (s DescribeParameterGroupsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeParameterGroupsInput) GoString() string { + return s.String() +} + +// SetMaxResults sets the MaxResults field's value. +func (s *DescribeParameterGroupsInput) SetMaxResults(v int64) *DescribeParameterGroupsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeParameterGroupsInput) SetNextToken(v string) *DescribeParameterGroupsInput { + s.NextToken = &v + return s +} + +// SetParameterGroupNames sets the ParameterGroupNames field's value. +func (s *DescribeParameterGroupsInput) SetParameterGroupNames(v []*string) *DescribeParameterGroupsInput { + s.ParameterGroupNames = v + return s +} + +type DescribeParameterGroupsOutput struct { + _ struct{} `type:"structure"` + + // Provides an identifier to allow retrieval of paginated results. + NextToken *string `type:"string"` + + // An array of parameter groups. Each element in the array represents one parameter + // group. + ParameterGroups []*ParameterGroup `type:"list"` +} + +// String returns the string representation +func (s DescribeParameterGroupsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeParameterGroupsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeParameterGroupsOutput) SetNextToken(v string) *DescribeParameterGroupsOutput { + s.NextToken = &v + return s +} + +// SetParameterGroups sets the ParameterGroups field's value. +func (s *DescribeParameterGroupsOutput) SetParameterGroups(v []*ParameterGroup) *DescribeParameterGroupsOutput { + s.ParameterGroups = v + return s +} + +type DescribeParametersInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to include in the response. If more results + // exist than the specified MaxResults value, a token is included in the response + // so that the remaining results can be retrieved. + // + // The value for MaxResults must be between 20 and 100. + MaxResults *int64 `type:"integer"` + + // An optional token returned from a prior request. Use this token for pagination + // of results from this action. If this parameter is specified, the response + // includes only results beyond the token, up to the value specified by MaxResults. + NextToken *string `type:"string"` + + // The name of the parameter group. + // + // ParameterGroupName is a required field + ParameterGroupName *string `type:"string" required:"true"` + + // How the parameter is defined. For example, system denotes a system-defined + // parameter. + Source *string `type:"string"` +} + +// String returns the string representation +func (s DescribeParametersInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeParametersInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DescribeParametersInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "DescribeParametersInput"} + if s.ParameterGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("ParameterGroupName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetMaxResults sets the MaxResults field's value. +func (s *DescribeParametersInput) SetMaxResults(v int64) *DescribeParametersInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeParametersInput) SetNextToken(v string) *DescribeParametersInput { + s.NextToken = &v + return s +} + +// SetParameterGroupName sets the ParameterGroupName field's value. +func (s *DescribeParametersInput) SetParameterGroupName(v string) *DescribeParametersInput { + s.ParameterGroupName = &v + return s +} + +// SetSource sets the Source field's value. +func (s *DescribeParametersInput) SetSource(v string) *DescribeParametersInput { + s.Source = &v + return s +} + +type DescribeParametersOutput struct { + _ struct{} `type:"structure"` + + // Provides an identifier to allow retrieval of paginated results. + NextToken *string `type:"string"` + + // A list of parameters within a parameter group. Each element in the list represents + // one parameter. + Parameters []*Parameter `type:"list"` +} + +// String returns the string representation +func (s DescribeParametersOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeParametersOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeParametersOutput) SetNextToken(v string) *DescribeParametersOutput { + s.NextToken = &v + return s +} + +// SetParameters sets the Parameters field's value. +func (s *DescribeParametersOutput) SetParameters(v []*Parameter) *DescribeParametersOutput { + s.Parameters = v + return s +} + +type DescribeSubnetGroupsInput struct { + _ struct{} `type:"structure"` + + // The maximum number of results to include in the response. If more results + // exist than the specified MaxResults value, a token is included in the response + // so that the remaining results can be retrieved. + // + // The value for MaxResults must be between 20 and 100. + MaxResults *int64 `type:"integer"` + + // An optional token returned from a prior request. Use this token for pagination + // of results from this action. If this parameter is specified, the response + // includes only results beyond the token, up to the value specified by MaxResults. + NextToken *string `type:"string"` + + // The name of the subnet group. + SubnetGroupNames []*string `type:"list"` +} + +// String returns the string representation +func (s DescribeSubnetGroupsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeSubnetGroupsInput) GoString() string { + return s.String() +} + +// SetMaxResults sets the MaxResults field's value. +func (s *DescribeSubnetGroupsInput) SetMaxResults(v int64) *DescribeSubnetGroupsInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeSubnetGroupsInput) SetNextToken(v string) *DescribeSubnetGroupsInput { + s.NextToken = &v + return s +} + +// SetSubnetGroupNames sets the SubnetGroupNames field's value. +func (s *DescribeSubnetGroupsInput) SetSubnetGroupNames(v []*string) *DescribeSubnetGroupsInput { + s.SubnetGroupNames = v + return s +} + +type DescribeSubnetGroupsOutput struct { + _ struct{} `type:"structure"` + + // Provides an identifier to allow retrieval of paginated results. + NextToken *string `type:"string"` + + // An array of subnet groups. Each element in the array represents a single + // subnet group. + SubnetGroups []*SubnetGroup `type:"list"` +} + +// String returns the string representation +func (s DescribeSubnetGroupsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeSubnetGroupsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribeSubnetGroupsOutput) SetNextToken(v string) *DescribeSubnetGroupsOutput { + s.NextToken = &v + return s +} + +// SetSubnetGroups sets the SubnetGroups field's value. +func (s *DescribeSubnetGroupsOutput) SetSubnetGroups(v []*SubnetGroup) *DescribeSubnetGroupsOutput { + s.SubnetGroups = v + return s +} + +// Represents the information required for client programs to connect to the +// configuration endpoint for a DAX cluster, or to an individual node within +// the cluster. +type Endpoint struct { + _ struct{} `type:"structure"` + + // The DNS hostname of the endpoint. + Address *string `type:"string"` + + // The port number that applications should use to connect to the endpoint. + Port *int64 `type:"integer"` +} + +// String returns the string representation +func (s Endpoint) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Endpoint) GoString() string { + return s.String() +} + +// SetAddress sets the Address field's value. +func (s *Endpoint) SetAddress(v string) *Endpoint { + s.Address = &v + return s +} + +// SetPort sets the Port field's value. +func (s *Endpoint) SetPort(v int64) *Endpoint { + s.Port = &v + return s +} + +// Represents a single occurrence of something interesting within the system. +// Some examples of events are creating a DAX cluster, adding or removing a +// node, or rebooting a node. +type Event struct { + _ struct{} `type:"structure"` + + // The date and time when the event occurred. + Date *time.Time `type:"timestamp" timestampFormat:"unix"` + + // A user-defined message associated with the event. + Message *string `type:"string"` + + // The source of the event. For example, if the event occurred at the node level, + // the source would be the node ID. + SourceName *string `type:"string"` + + // Specifies the origin of this event - a cluster, a parameter group, a node + // ID, etc. + SourceType *string `type:"string" enum:"SourceType"` +} + +// String returns the string representation +func (s Event) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Event) GoString() string { + return s.String() +} + +// SetDate sets the Date field's value. +func (s *Event) SetDate(v time.Time) *Event { + s.Date = &v + return s +} + +// SetMessage sets the Message field's value. +func (s *Event) SetMessage(v string) *Event { + s.Message = &v + return s +} + +// SetSourceName sets the SourceName field's value. +func (s *Event) SetSourceName(v string) *Event { + s.SourceName = &v + return s +} + +// SetSourceType sets the SourceType field's value. +func (s *Event) SetSourceType(v string) *Event { + s.SourceType = &v + return s +} + +type IncreaseReplicationFactorInput struct { + _ struct{} `type:"structure"` + + // The Availability Zones (AZs) in which the cluster nodes will be created. + // All nodes belonging to the cluster are placed in these Availability Zones. + // Use this parameter if you want to distribute the nodes across multiple AZs. + AvailabilityZones []*string `type:"list"` + + // The name of the DAX cluster that will receive additional nodes. + // + // ClusterName is a required field + ClusterName *string `type:"string" required:"true"` + + // The new number of nodes for the DAX cluster. + // + // NewReplicationFactor is a required field + NewReplicationFactor *int64 `type:"integer" required:"true"` +} + +// String returns the string representation +func (s IncreaseReplicationFactorInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s IncreaseReplicationFactorInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *IncreaseReplicationFactorInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "IncreaseReplicationFactorInput"} + if s.ClusterName == nil { + invalidParams.Add(request.NewErrParamRequired("ClusterName")) + } + if s.NewReplicationFactor == nil { + invalidParams.Add(request.NewErrParamRequired("NewReplicationFactor")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetAvailabilityZones sets the AvailabilityZones field's value. +func (s *IncreaseReplicationFactorInput) SetAvailabilityZones(v []*string) *IncreaseReplicationFactorInput { + s.AvailabilityZones = v + return s +} + +// SetClusterName sets the ClusterName field's value. +func (s *IncreaseReplicationFactorInput) SetClusterName(v string) *IncreaseReplicationFactorInput { + s.ClusterName = &v + return s +} + +// SetNewReplicationFactor sets the NewReplicationFactor field's value. +func (s *IncreaseReplicationFactorInput) SetNewReplicationFactor(v int64) *IncreaseReplicationFactorInput { + s.NewReplicationFactor = &v + return s +} + +type IncreaseReplicationFactorOutput struct { + _ struct{} `type:"structure"` + + // A description of the DAX cluster. with its new replication factor. + Cluster *Cluster `type:"structure"` +} + +// String returns the string representation +func (s IncreaseReplicationFactorOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s IncreaseReplicationFactorOutput) GoString() string { + return s.String() +} + +// SetCluster sets the Cluster field's value. +func (s *IncreaseReplicationFactorOutput) SetCluster(v *Cluster) *IncreaseReplicationFactorOutput { + s.Cluster = v + return s +} + +type ListTagsInput struct { + _ struct{} `type:"structure"` + + // An optional token returned from a prior request. Use this token for pagination + // of results from this action. If this parameter is specified, the response + // includes only results beyond the token. + NextToken *string `type:"string"` + + // The name of the DAX resource to which the tags belong. + // + // ResourceName is a required field + ResourceName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s ListTagsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListTagsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListTagsInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "ListTagsInput"} + if s.ResourceName == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetNextToken sets the NextToken field's value. +func (s *ListTagsInput) SetNextToken(v string) *ListTagsInput { + s.NextToken = &v + return s +} + +// SetResourceName sets the ResourceName field's value. +func (s *ListTagsInput) SetResourceName(v string) *ListTagsInput { + s.ResourceName = &v + return s +} + +type ListTagsOutput struct { + _ struct{} `type:"structure"` + + // If this value is present, there are additional results to be displayed. To + // retrieve them, call ListTags again, with NextToken set to this value. + NextToken *string `type:"string"` + + // A list of tags currently associated with the DAX cluster. + Tags []*Tag `type:"list"` +} + +// String returns the string representation +func (s ListTagsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListTagsOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *ListTagsOutput) SetNextToken(v string) *ListTagsOutput { + s.NextToken = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *ListTagsOutput) SetTags(v []*Tag) *ListTagsOutput { + s.Tags = v + return s +} + +// Represents an individual node within a DAX cluster. +type Node struct { + _ struct{} `type:"structure"` + + // The Availability Zone (AZ) in which the node has been deployed. + AvailabilityZone *string `type:"string"` + + // The endpoint for the node, consisting of a DNS name and a port number. Client + // applications can connect directly to a node endpoint, if desired (as an alternative + // to allowing DAX client software to intelligently route requests and responses + // to nodes in the DAX cluster. + Endpoint *Endpoint `type:"structure"` + + // The date and time (in UNIX epoch format) when the node was launched. + NodeCreateTime *time.Time `type:"timestamp" timestampFormat:"unix"` + + // A system-generated identifier for the node. + NodeId *string `type:"string"` + + // The current status of the node. For example: available. + NodeStatus *string `type:"string"` + + // The status of the parameter group associated with this node. For example, + // in-sync. + ParameterGroupStatus *string `type:"string"` +} + +// String returns the string representation +func (s Node) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Node) GoString() string { + return s.String() +} + +// SetAvailabilityZone sets the AvailabilityZone field's value. +func (s *Node) SetAvailabilityZone(v string) *Node { + s.AvailabilityZone = &v + return s +} + +// SetEndpoint sets the Endpoint field's value. +func (s *Node) SetEndpoint(v *Endpoint) *Node { + s.Endpoint = v + return s +} + +// SetNodeCreateTime sets the NodeCreateTime field's value. +func (s *Node) SetNodeCreateTime(v time.Time) *Node { + s.NodeCreateTime = &v + return s +} + +// SetNodeId sets the NodeId field's value. +func (s *Node) SetNodeId(v string) *Node { + s.NodeId = &v + return s +} + +// SetNodeStatus sets the NodeStatus field's value. +func (s *Node) SetNodeStatus(v string) *Node { + s.NodeStatus = &v + return s +} + +// SetParameterGroupStatus sets the ParameterGroupStatus field's value. +func (s *Node) SetParameterGroupStatus(v string) *Node { + s.ParameterGroupStatus = &v + return s +} + +// Represents a parameter value that is applicable to a particular node type. +type NodeTypeSpecificValue struct { + _ struct{} `type:"structure"` + + // A node type to which the parameter value applies. + NodeType *string `type:"string"` + + // The parameter value for this node type. + Value *string `type:"string"` +} + +// String returns the string representation +func (s NodeTypeSpecificValue) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s NodeTypeSpecificValue) GoString() string { + return s.String() +} + +// SetNodeType sets the NodeType field's value. +func (s *NodeTypeSpecificValue) SetNodeType(v string) *NodeTypeSpecificValue { + s.NodeType = &v + return s +} + +// SetValue sets the Value field's value. +func (s *NodeTypeSpecificValue) SetValue(v string) *NodeTypeSpecificValue { + s.Value = &v + return s +} + +// Describes a notification topic and its status. Notification topics are used +// for publishing DAX events to subscribers using Amazon Simple Notification +// Service (SNS). +type NotificationConfiguration struct { + _ struct{} `type:"structure"` + + // The Amazon Resource Name (ARN) that identifies the topic. + TopicArn *string `type:"string"` + + // The current state of the topic. + TopicStatus *string `type:"string"` +} + +// String returns the string representation +func (s NotificationConfiguration) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s NotificationConfiguration) GoString() string { + return s.String() +} + +// SetTopicArn sets the TopicArn field's value. +func (s *NotificationConfiguration) SetTopicArn(v string) *NotificationConfiguration { + s.TopicArn = &v + return s +} + +// SetTopicStatus sets the TopicStatus field's value. +func (s *NotificationConfiguration) SetTopicStatus(v string) *NotificationConfiguration { + s.TopicStatus = &v + return s +} + +// Describes an individual setting that controls some aspect of DAX behavior. +type Parameter struct { + _ struct{} `type:"structure"` + + // A range of values within which the parameter can be set. + AllowedValues *string `type:"string"` + + // The conditions under which changes to this parameter can be applied. For + // example, requires-reboot indicates that a new value for this parameter will + // only take effect if a node is rebooted. + ChangeType *string `type:"string" enum:"ChangeType"` + + // The data type of the parameter. For example, integer: + DataType *string `type:"string"` + + // A description of the parameter + Description *string `type:"string"` + + // Whether the customer is allowed to modify the parameter. + IsModifiable *string `type:"string" enum:"IsModifiable"` + + // A list of node types, and specific parameter values for each node. + NodeTypeSpecificValues []*NodeTypeSpecificValue `type:"list"` + + // The name of the parameter. + ParameterName *string `type:"string"` + + // Determines whether the parameter can be applied to any nodes, or only nodes + // of a particular type. + ParameterType *string `type:"string" enum:"ParameterType"` + + // The value for the parameter. + ParameterValue *string `type:"string"` + + // How the parameter is defined. For example, system denotes a system-defined + // parameter. + Source *string `type:"string"` +} + +// String returns the string representation +func (s Parameter) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Parameter) GoString() string { + return s.String() +} + +// SetAllowedValues sets the AllowedValues field's value. +func (s *Parameter) SetAllowedValues(v string) *Parameter { + s.AllowedValues = &v + return s +} + +// SetChangeType sets the ChangeType field's value. +func (s *Parameter) SetChangeType(v string) *Parameter { + s.ChangeType = &v + return s +} + +// SetDataType sets the DataType field's value. +func (s *Parameter) SetDataType(v string) *Parameter { + s.DataType = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *Parameter) SetDescription(v string) *Parameter { + s.Description = &v + return s +} + +// SetIsModifiable sets the IsModifiable field's value. +func (s *Parameter) SetIsModifiable(v string) *Parameter { + s.IsModifiable = &v + return s +} + +// SetNodeTypeSpecificValues sets the NodeTypeSpecificValues field's value. +func (s *Parameter) SetNodeTypeSpecificValues(v []*NodeTypeSpecificValue) *Parameter { + s.NodeTypeSpecificValues = v + return s +} + +// SetParameterName sets the ParameterName field's value. +func (s *Parameter) SetParameterName(v string) *Parameter { + s.ParameterName = &v + return s +} + +// SetParameterType sets the ParameterType field's value. +func (s *Parameter) SetParameterType(v string) *Parameter { + s.ParameterType = &v + return s +} + +// SetParameterValue sets the ParameterValue field's value. +func (s *Parameter) SetParameterValue(v string) *Parameter { + s.ParameterValue = &v + return s +} + +// SetSource sets the Source field's value. +func (s *Parameter) SetSource(v string) *Parameter { + s.Source = &v + return s +} + +// A named set of parameters that are applied to all of the nodes in a DAX cluster. +type ParameterGroup struct { + _ struct{} `type:"structure"` + + // A description of the parameter group. + Description *string `type:"string"` + + // The name of the parameter group. + ParameterGroupName *string `type:"string"` +} + +// String returns the string representation +func (s ParameterGroup) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ParameterGroup) GoString() string { + return s.String() +} + +// SetDescription sets the Description field's value. +func (s *ParameterGroup) SetDescription(v string) *ParameterGroup { + s.Description = &v + return s +} + +// SetParameterGroupName sets the ParameterGroupName field's value. +func (s *ParameterGroup) SetParameterGroupName(v string) *ParameterGroup { + s.ParameterGroupName = &v + return s +} + +// The status of a parameter group. +type ParameterGroupStatus struct { + _ struct{} `type:"structure"` + + // The node IDs of one or more nodes to be rebooted. + NodeIdsToReboot []*string `type:"list"` + + // The status of parameter updates. + ParameterApplyStatus *string `type:"string"` + + // The name of the parameter group. + ParameterGroupName *string `type:"string"` +} + +// String returns the string representation +func (s ParameterGroupStatus) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ParameterGroupStatus) GoString() string { + return s.String() +} + +// SetNodeIdsToReboot sets the NodeIdsToReboot field's value. +func (s *ParameterGroupStatus) SetNodeIdsToReboot(v []*string) *ParameterGroupStatus { + s.NodeIdsToReboot = v + return s +} + +// SetParameterApplyStatus sets the ParameterApplyStatus field's value. +func (s *ParameterGroupStatus) SetParameterApplyStatus(v string) *ParameterGroupStatus { + s.ParameterApplyStatus = &v + return s +} + +// SetParameterGroupName sets the ParameterGroupName field's value. +func (s *ParameterGroupStatus) SetParameterGroupName(v string) *ParameterGroupStatus { + s.ParameterGroupName = &v + return s +} + +// An individual DAX parameter. +type ParameterNameValue struct { + _ struct{} `type:"structure"` + + // The name of the parameter. + ParameterName *string `type:"string"` + + // The value of the parameter. + ParameterValue *string `type:"string"` +} + +// String returns the string representation +func (s ParameterNameValue) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ParameterNameValue) GoString() string { + return s.String() +} + +// SetParameterName sets the ParameterName field's value. +func (s *ParameterNameValue) SetParameterName(v string) *ParameterNameValue { + s.ParameterName = &v + return s +} + +// SetParameterValue sets the ParameterValue field's value. +func (s *ParameterNameValue) SetParameterValue(v string) *ParameterNameValue { + s.ParameterValue = &v + return s +} + +type RebootNodeInput struct { + _ struct{} `type:"structure"` + + // The name of the DAX cluster containing the node to be rebooted. + // + // ClusterName is a required field + ClusterName *string `type:"string" required:"true"` + + // The system-assigned ID of the node to be rebooted. + // + // NodeId is a required field + NodeId *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s RebootNodeInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RebootNodeInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RebootNodeInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "RebootNodeInput"} + if s.ClusterName == nil { + invalidParams.Add(request.NewErrParamRequired("ClusterName")) + } + if s.NodeId == nil { + invalidParams.Add(request.NewErrParamRequired("NodeId")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClusterName sets the ClusterName field's value. +func (s *RebootNodeInput) SetClusterName(v string) *RebootNodeInput { + s.ClusterName = &v + return s +} + +// SetNodeId sets the NodeId field's value. +func (s *RebootNodeInput) SetNodeId(v string) *RebootNodeInput { + s.NodeId = &v + return s +} + +type RebootNodeOutput struct { + _ struct{} `type:"structure"` + + // A description of the DAX cluster after a node has been rebooted. + Cluster *Cluster `type:"structure"` +} + +// String returns the string representation +func (s RebootNodeOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RebootNodeOutput) GoString() string { + return s.String() +} + +// SetCluster sets the Cluster field's value. +func (s *RebootNodeOutput) SetCluster(v *Cluster) *RebootNodeOutput { + s.Cluster = v + return s +} + +// An individual VPC security group and its status. +type SecurityGroupMembership struct { + _ struct{} `type:"structure"` + + // The unique ID for this security group. + SecurityGroupIdentifier *string `type:"string"` + + // The status of this security group. + Status *string `type:"string"` +} + +// String returns the string representation +func (s SecurityGroupMembership) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SecurityGroupMembership) GoString() string { + return s.String() +} + +// SetSecurityGroupIdentifier sets the SecurityGroupIdentifier field's value. +func (s *SecurityGroupMembership) SetSecurityGroupIdentifier(v string) *SecurityGroupMembership { + s.SecurityGroupIdentifier = &v + return s +} + +// SetStatus sets the Status field's value. +func (s *SecurityGroupMembership) SetStatus(v string) *SecurityGroupMembership { + s.Status = &v + return s +} + +// Represents the subnet associated with a DAX cluster. This parameter refers +// to subnets defined in Amazon Virtual Private Cloud (Amazon VPC) and used +// with DAX. +type Subnet struct { + _ struct{} `type:"structure"` + + // The Availability Zone (AZ) for subnet subnet. + SubnetAvailabilityZone *string `type:"string"` + + // The system-assigned identifier for the subnet. + SubnetIdentifier *string `type:"string"` +} + +// String returns the string representation +func (s Subnet) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Subnet) GoString() string { + return s.String() +} + +// SetSubnetAvailabilityZone sets the SubnetAvailabilityZone field's value. +func (s *Subnet) SetSubnetAvailabilityZone(v string) *Subnet { + s.SubnetAvailabilityZone = &v + return s +} + +// SetSubnetIdentifier sets the SubnetIdentifier field's value. +func (s *Subnet) SetSubnetIdentifier(v string) *Subnet { + s.SubnetIdentifier = &v + return s +} + +// Represents the output of one of the following actions: +// +// * CreateSubnetGroup +// +// * ModifySubnetGroup +type SubnetGroup struct { + _ struct{} `type:"structure"` + + // The description of the subnet group. + Description *string `type:"string"` + + // The name of the subnet group. + SubnetGroupName *string `type:"string"` + + // A list of subnets associated with the subnet group. + Subnets []*Subnet `type:"list"` + + // The Amazon Virtual Private Cloud identifier (VPC ID) of the subnet group. + VpcId *string `type:"string"` +} + +// String returns the string representation +func (s SubnetGroup) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SubnetGroup) GoString() string { + return s.String() +} + +// SetDescription sets the Description field's value. +func (s *SubnetGroup) SetDescription(v string) *SubnetGroup { + s.Description = &v + return s +} + +// SetSubnetGroupName sets the SubnetGroupName field's value. +func (s *SubnetGroup) SetSubnetGroupName(v string) *SubnetGroup { + s.SubnetGroupName = &v + return s +} + +// SetSubnets sets the Subnets field's value. +func (s *SubnetGroup) SetSubnets(v []*Subnet) *SubnetGroup { + s.Subnets = v + return s +} + +// SetVpcId sets the VpcId field's value. +func (s *SubnetGroup) SetVpcId(v string) *SubnetGroup { + s.VpcId = &v + return s +} + +// A description of a tag. Every tag is a key-value pair. You can add up to +// 50 tags to a single DAX cluster. +// +// AWS-assigned tag names and values are automatically assigned the aws: prefix, +// which the user cannot assign. AWS-assigned tag names do not count towards +// the tag limit of 50. User-assigned tag names have the prefix user:. +// +// You cannot backdate the application of a tag. +type Tag struct { + _ struct{} `type:"structure"` + + // The key for the tag. Tag keys are case sensitive. Every DAX cluster can only + // have one tag with the same key. If you try to add an existing tag (same key), + // the existing tag value will be updated to the new value. + Key *string `type:"string"` + + // The value of the tag. Tag values are case-sensitive and can be null. + Value *string `type:"string"` +} + +// String returns the string representation +func (s Tag) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Tag) GoString() string { + return s.String() +} + +// SetKey sets the Key field's value. +func (s *Tag) SetKey(v string) *Tag { + s.Key = &v + return s +} + +// SetValue sets the Value field's value. +func (s *Tag) SetValue(v string) *Tag { + s.Value = &v + return s +} + +type TagResourceInput struct { + _ struct{} `type:"structure"` + + // The name of the DAX resource to which tags should be added. + // + // ResourceName is a required field + ResourceName *string `type:"string" required:"true"` + + // The tags to be assigned to the DAX resource. + // + // Tags is a required field + Tags []*Tag `type:"list" required:"true"` +} + +// String returns the string representation +func (s TagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +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.ResourceName == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceName")) + } + if s.Tags == nil { + invalidParams.Add(request.NewErrParamRequired("Tags")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceName sets the ResourceName field's value. +func (s *TagResourceInput) SetResourceName(v string) *TagResourceInput { + s.ResourceName = &v + return s +} + +// SetTags sets the Tags field's value. +func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput { + s.Tags = v + return s +} + +type TagResourceOutput struct { + _ struct{} `type:"structure"` + + // The list of tags that are associated with the DAX resource. + Tags []*Tag `type:"list"` +} + +// String returns the string representation +func (s TagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s TagResourceOutput) GoString() string { + return s.String() +} + +// SetTags sets the Tags field's value. +func (s *TagResourceOutput) SetTags(v []*Tag) *TagResourceOutput { + s.Tags = v + return s +} + +type UntagResourceInput struct { + _ struct{} `type:"structure"` + + // The name of the DAX resource from which the tags should be removed. + // + // ResourceName is a required field + ResourceName *string `type:"string" required:"true"` + + // A list of tag keys. If the DAX cluster has any tags with these keys, then + // the tags are removed from the cluster. + // + // TagKeys is a required field + TagKeys []*string `type:"list" required:"true"` +} + +// String returns the string representation +func (s UntagResourceInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +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.ResourceName == nil { + invalidParams.Add(request.NewErrParamRequired("ResourceName")) + } + if s.TagKeys == nil { + invalidParams.Add(request.NewErrParamRequired("TagKeys")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetResourceName sets the ResourceName field's value. +func (s *UntagResourceInput) SetResourceName(v string) *UntagResourceInput { + s.ResourceName = &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"` + + // The tag keys that have been removed from the cluster. + Tags []*Tag `type:"list"` +} + +// String returns the string representation +func (s UntagResourceOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UntagResourceOutput) GoString() string { + return s.String() +} + +// SetTags sets the Tags field's value. +func (s *UntagResourceOutput) SetTags(v []*Tag) *UntagResourceOutput { + s.Tags = v + return s +} + +type UpdateClusterInput struct { + _ struct{} `type:"structure"` + + // The name of the DAX cluster to be modified. + // + // ClusterName is a required field + ClusterName *string `type:"string" required:"true"` + + // A description of the changes being made to the cluster. + Description *string `type:"string"` + + // The Amazon Resource Name (ARN) that identifies the topic. + NotificationTopicArn *string `type:"string"` + + // The current state of the topic. + NotificationTopicStatus *string `type:"string"` + + // The name of a parameter group for this cluster. + ParameterGroupName *string `type:"string"` + + // A range of time when maintenance of DAX cluster software will be performed. + // For example: sun:01:00-sun:09:00. Cluster maintenance normally takes less + // than 30 minutes, and is performed automatically within the maintenance window. + PreferredMaintenanceWindow *string `type:"string"` + + // A list of user-specified security group IDs to be assigned to each node in + // the DAX cluster. If this parameter is not specified, DAX assigns the default + // VPC security group to each node. + SecurityGroupIds []*string `type:"list"` +} + +// String returns the string representation +func (s UpdateClusterInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateClusterInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateClusterInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateClusterInput"} + if s.ClusterName == nil { + invalidParams.Add(request.NewErrParamRequired("ClusterName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetClusterName sets the ClusterName field's value. +func (s *UpdateClusterInput) SetClusterName(v string) *UpdateClusterInput { + s.ClusterName = &v + return s +} + +// SetDescription sets the Description field's value. +func (s *UpdateClusterInput) SetDescription(v string) *UpdateClusterInput { + s.Description = &v + return s +} + +// SetNotificationTopicArn sets the NotificationTopicArn field's value. +func (s *UpdateClusterInput) SetNotificationTopicArn(v string) *UpdateClusterInput { + s.NotificationTopicArn = &v + return s +} + +// SetNotificationTopicStatus sets the NotificationTopicStatus field's value. +func (s *UpdateClusterInput) SetNotificationTopicStatus(v string) *UpdateClusterInput { + s.NotificationTopicStatus = &v + return s +} + +// SetParameterGroupName sets the ParameterGroupName field's value. +func (s *UpdateClusterInput) SetParameterGroupName(v string) *UpdateClusterInput { + s.ParameterGroupName = &v + return s +} + +// SetPreferredMaintenanceWindow sets the PreferredMaintenanceWindow field's value. +func (s *UpdateClusterInput) SetPreferredMaintenanceWindow(v string) *UpdateClusterInput { + s.PreferredMaintenanceWindow = &v + return s +} + +// SetSecurityGroupIds sets the SecurityGroupIds field's value. +func (s *UpdateClusterInput) SetSecurityGroupIds(v []*string) *UpdateClusterInput { + s.SecurityGroupIds = v + return s +} + +type UpdateClusterOutput struct { + _ struct{} `type:"structure"` + + // A description of the DAX cluster, after it has been modified. + Cluster *Cluster `type:"structure"` +} + +// String returns the string representation +func (s UpdateClusterOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateClusterOutput) GoString() string { + return s.String() +} + +// SetCluster sets the Cluster field's value. +func (s *UpdateClusterOutput) SetCluster(v *Cluster) *UpdateClusterOutput { + s.Cluster = v + return s +} + +type UpdateParameterGroupInput struct { + _ struct{} `type:"structure"` + + // The name of the parameter group. + // + // ParameterGroupName is a required field + ParameterGroupName *string `type:"string" required:"true"` + + // An array of name-value pairs for the parameters in the group. Each element + // in the array represents a single parameter. + // + // ParameterNameValues is a required field + ParameterNameValues []*ParameterNameValue `type:"list" required:"true"` +} + +// String returns the string representation +func (s UpdateParameterGroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateParameterGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateParameterGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateParameterGroupInput"} + if s.ParameterGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("ParameterGroupName")) + } + if s.ParameterNameValues == nil { + invalidParams.Add(request.NewErrParamRequired("ParameterNameValues")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetParameterGroupName sets the ParameterGroupName field's value. +func (s *UpdateParameterGroupInput) SetParameterGroupName(v string) *UpdateParameterGroupInput { + s.ParameterGroupName = &v + return s +} + +// SetParameterNameValues sets the ParameterNameValues field's value. +func (s *UpdateParameterGroupInput) SetParameterNameValues(v []*ParameterNameValue) *UpdateParameterGroupInput { + s.ParameterNameValues = v + return s +} + +type UpdateParameterGroupOutput struct { + _ struct{} `type:"structure"` + + // The parameter group that has been modified. + ParameterGroup *ParameterGroup `type:"structure"` +} + +// String returns the string representation +func (s UpdateParameterGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateParameterGroupOutput) GoString() string { + return s.String() +} + +// SetParameterGroup sets the ParameterGroup field's value. +func (s *UpdateParameterGroupOutput) SetParameterGroup(v *ParameterGroup) *UpdateParameterGroupOutput { + s.ParameterGroup = v + return s +} + +type UpdateSubnetGroupInput struct { + _ struct{} `type:"structure"` + + // A description of the subnet group. + Description *string `type:"string"` + + // The name of the subnet group. + // + // SubnetGroupName is a required field + SubnetGroupName *string `type:"string" required:"true"` + + // A list of subnet IDs in the subnet group. + SubnetIds []*string `type:"list"` +} + +// String returns the string representation +func (s UpdateSubnetGroupInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateSubnetGroupInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UpdateSubnetGroupInput) Validate() error { + invalidParams := request.ErrInvalidParams{Context: "UpdateSubnetGroupInput"} + if s.SubnetGroupName == nil { + invalidParams.Add(request.NewErrParamRequired("SubnetGroupName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// SetDescription sets the Description field's value. +func (s *UpdateSubnetGroupInput) SetDescription(v string) *UpdateSubnetGroupInput { + s.Description = &v + return s +} + +// SetSubnetGroupName sets the SubnetGroupName field's value. +func (s *UpdateSubnetGroupInput) SetSubnetGroupName(v string) *UpdateSubnetGroupInput { + s.SubnetGroupName = &v + return s +} + +// SetSubnetIds sets the SubnetIds field's value. +func (s *UpdateSubnetGroupInput) SetSubnetIds(v []*string) *UpdateSubnetGroupInput { + s.SubnetIds = v + return s +} + +type UpdateSubnetGroupOutput struct { + _ struct{} `type:"structure"` + + // The subnet group that has been modified. + SubnetGroup *SubnetGroup `type:"structure"` +} + +// String returns the string representation +func (s UpdateSubnetGroupOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UpdateSubnetGroupOutput) GoString() string { + return s.String() +} + +// SetSubnetGroup sets the SubnetGroup field's value. +func (s *UpdateSubnetGroupOutput) SetSubnetGroup(v *SubnetGroup) *UpdateSubnetGroupOutput { + s.SubnetGroup = v + return s +} + +const ( + // ChangeTypeImmediate is a ChangeType enum value + ChangeTypeImmediate = "IMMEDIATE" + + // ChangeTypeRequiresReboot is a ChangeType enum value + ChangeTypeRequiresReboot = "REQUIRES_REBOOT" +) + +const ( + // IsModifiableTrue is a IsModifiable enum value + IsModifiableTrue = "TRUE" + + // IsModifiableFalse is a IsModifiable enum value + IsModifiableFalse = "FALSE" + + // IsModifiableConditional is a IsModifiable enum value + IsModifiableConditional = "CONDITIONAL" +) + +const ( + // ParameterTypeDefault is a ParameterType enum value + ParameterTypeDefault = "DEFAULT" + + // ParameterTypeNodeTypeSpecific is a ParameterType enum value + ParameterTypeNodeTypeSpecific = "NODE_TYPE_SPECIFIC" +) + +const ( + // SourceTypeCluster is a SourceType enum value + SourceTypeCluster = "CLUSTER" + + // SourceTypeParameterGroup is a SourceType enum value + SourceTypeParameterGroup = "PARAMETER_GROUP" + + // SourceTypeSubnetGroup is a SourceType enum value + SourceTypeSubnetGroup = "SUBNET_GROUP" +) diff --git a/vendor/github.com/aws/aws-sdk-go/service/dax/doc.go b/vendor/github.com/aws/aws-sdk-go/service/dax/doc.go new file mode 100644 index 000000000..a3b25ccbd --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/dax/doc.go @@ -0,0 +1,33 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package dax provides the client and types for making API +// requests to Amazon DynamoDB Accelerator (DAX). +// +// DAX is a managed caching service engineered for Amazon DynamoDB. DAX dramatically +// speeds up database reads by caching frequently-accessed data from DynamoDB, +// so applications can access that data with sub-millisecond latency. You can +// create a DAX cluster easily, using the AWS Management Console. With a few +// simple modifications to your code, your application can begin taking advantage +// of the DAX cluster and realize significant improvements in read performance. +// +// See https://docs.aws.amazon.com/goto/WebAPI/dax-2017-04-19 for more information on this service. +// +// See dax package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/dax/ +// +// Using the Client +// +// To contact Amazon DynamoDB Accelerator (DAX) with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Amazon DynamoDB Accelerator (DAX) client DAX for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/dax/#New +package dax diff --git a/vendor/github.com/aws/aws-sdk-go/service/dax/errors.go b/vendor/github.com/aws/aws-sdk-go/service/dax/errors.go new file mode 100644 index 000000000..24aaf1a23 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/dax/errors.go @@ -0,0 +1,160 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package dax + +const ( + + // ErrCodeClusterAlreadyExistsFault for service response error code + // "ClusterAlreadyExistsFault". + // + // You already have a DAX cluster with the given identifier. + ErrCodeClusterAlreadyExistsFault = "ClusterAlreadyExistsFault" + + // ErrCodeClusterNotFoundFault for service response error code + // "ClusterNotFoundFault". + // + // The requested cluster ID does not refer to an existing DAX cluster. + ErrCodeClusterNotFoundFault = "ClusterNotFoundFault" + + // ErrCodeClusterQuotaForCustomerExceededFault for service response error code + // "ClusterQuotaForCustomerExceededFault". + // + // You have attempted to exceed the maximum number of DAX clusters for your + // AWS account. + ErrCodeClusterQuotaForCustomerExceededFault = "ClusterQuotaForCustomerExceededFault" + + // ErrCodeInsufficientClusterCapacityFault for service response error code + // "InsufficientClusterCapacityFault". + // + // There are not enough system resources to create the cluster you requested + // (or to resize an already-existing cluster). + ErrCodeInsufficientClusterCapacityFault = "InsufficientClusterCapacityFault" + + // ErrCodeInvalidARNFault for service response error code + // "InvalidARNFault". + // + // The Amazon Resource Name (ARN) supplied in the request is not valid. + ErrCodeInvalidARNFault = "InvalidARNFault" + + // ErrCodeInvalidClusterStateFault for service response error code + // "InvalidClusterStateFault". + // + // The requested DAX cluster is not in the available state. + ErrCodeInvalidClusterStateFault = "InvalidClusterStateFault" + + // ErrCodeInvalidParameterCombinationException for service response error code + // "InvalidParameterCombinationException". + // + // Two or more incompatible parameters were specified. + ErrCodeInvalidParameterCombinationException = "InvalidParameterCombinationException" + + // ErrCodeInvalidParameterGroupStateFault for service response error code + // "InvalidParameterGroupStateFault". + // + // One or more parameters in a parameter group are in an invalid state. + ErrCodeInvalidParameterGroupStateFault = "InvalidParameterGroupStateFault" + + // ErrCodeInvalidParameterValueException for service response error code + // "InvalidParameterValueException". + // + // The value for a parameter is invalid. + ErrCodeInvalidParameterValueException = "InvalidParameterValueException" + + // ErrCodeInvalidSubnet for service response error code + // "InvalidSubnet". + // + // An invalid subnet identifier was specified. + ErrCodeInvalidSubnet = "InvalidSubnet" + + // ErrCodeInvalidVPCNetworkStateFault for service response error code + // "InvalidVPCNetworkStateFault". + // + // The VPC network is in an invalid state. + ErrCodeInvalidVPCNetworkStateFault = "InvalidVPCNetworkStateFault" + + // ErrCodeNodeNotFoundFault for service response error code + // "NodeNotFoundFault". + // + // None of the nodes in the cluster have the given node ID. + ErrCodeNodeNotFoundFault = "NodeNotFoundFault" + + // ErrCodeNodeQuotaForClusterExceededFault for service response error code + // "NodeQuotaForClusterExceededFault". + // + // You have attempted to exceed the maximum number of nodes for a DAX cluster. + ErrCodeNodeQuotaForClusterExceededFault = "NodeQuotaForClusterExceededFault" + + // ErrCodeNodeQuotaForCustomerExceededFault for service response error code + // "NodeQuotaForCustomerExceededFault". + // + // You have attempted to exceed the maximum number of nodes for your AWS account. + ErrCodeNodeQuotaForCustomerExceededFault = "NodeQuotaForCustomerExceededFault" + + // ErrCodeParameterGroupAlreadyExistsFault for service response error code + // "ParameterGroupAlreadyExistsFault". + // + // The specified parameter group already exists. + ErrCodeParameterGroupAlreadyExistsFault = "ParameterGroupAlreadyExistsFault" + + // ErrCodeParameterGroupNotFoundFault for service response error code + // "ParameterGroupNotFoundFault". + // + // The specified parameter group does not exist. + ErrCodeParameterGroupNotFoundFault = "ParameterGroupNotFoundFault" + + // ErrCodeParameterGroupQuotaExceededFault for service response error code + // "ParameterGroupQuotaExceededFault". + // + // You have attempted to exceed the maximum number of parameter groups. + ErrCodeParameterGroupQuotaExceededFault = "ParameterGroupQuotaExceededFault" + + // ErrCodeSubnetGroupAlreadyExistsFault for service response error code + // "SubnetGroupAlreadyExistsFault". + // + // The specified subnet group already exists. + ErrCodeSubnetGroupAlreadyExistsFault = "SubnetGroupAlreadyExistsFault" + + // ErrCodeSubnetGroupInUseFault for service response error code + // "SubnetGroupInUseFault". + // + // The specified subnet group is currently in use. + ErrCodeSubnetGroupInUseFault = "SubnetGroupInUseFault" + + // ErrCodeSubnetGroupNotFoundFault for service response error code + // "SubnetGroupNotFoundFault". + // + // The requested subnet group name does not refer to an existing subnet group. + ErrCodeSubnetGroupNotFoundFault = "SubnetGroupNotFoundFault" + + // ErrCodeSubnetGroupQuotaExceededFault for service response error code + // "SubnetGroupQuotaExceededFault". + // + // The request cannot be processed because it would exceed the allowed number + // of subnets in a subnet group. + ErrCodeSubnetGroupQuotaExceededFault = "SubnetGroupQuotaExceededFault" + + // ErrCodeSubnetInUse for service response error code + // "SubnetInUse". + // + // The requested subnet is being used by another subnet group. + ErrCodeSubnetInUse = "SubnetInUse" + + // ErrCodeSubnetQuotaExceededFault for service response error code + // "SubnetQuotaExceededFault". + // + // The request cannot be processed because it would exceed the allowed number + // of subnets in a subnet group. + ErrCodeSubnetQuotaExceededFault = "SubnetQuotaExceededFault" + + // ErrCodeTagNotFoundFault for service response error code + // "TagNotFoundFault". + // + // The tag does not exist. + ErrCodeTagNotFoundFault = "TagNotFoundFault" + + // ErrCodeTagQuotaPerResourceExceeded for service response error code + // "TagQuotaPerResourceExceeded". + // + // You have exceeded the maximum number of tags for this DAX cluster. + ErrCodeTagQuotaPerResourceExceeded = "TagQuotaPerResourceExceeded" +) diff --git a/vendor/github.com/aws/aws-sdk-go/service/dax/service.go b/vendor/github.com/aws/aws-sdk-go/service/dax/service.go new file mode 100644 index 000000000..a80ed1441 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go/service/dax/service.go @@ -0,0 +1,95 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package dax + +import ( + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/client" + "github.com/aws/aws-sdk-go/aws/client/metadata" + "github.com/aws/aws-sdk-go/aws/request" + "github.com/aws/aws-sdk-go/aws/signer/v4" + "github.com/aws/aws-sdk-go/private/protocol/jsonrpc" +) + +// DAX provides the API operation methods for making requests to +// Amazon DynamoDB Accelerator (DAX). See this package's package overview docs +// for details on the service. +// +// DAX methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type DAX struct { + *client.Client +} + +// Used for custom client initialization logic +var initClient func(*client.Client) + +// Used for custom request initialization logic +var initRequest func(*request.Request) + +// Service information constants +const ( + ServiceName = "dax" // Service endpoint prefix API calls made to. + EndpointsID = ServiceName // Service ID for Regions and Endpoints metadata. +) + +// New creates a new instance of the DAX client with a session. +// If additional configuration is needed for the client instance use the optional +// aws.Config parameter to add your extra config. +// +// Example: +// // Create a DAX client from just a session. +// svc := dax.New(mySession) +// +// // Create a DAX client with additional configuration +// svc := dax.New(mySession, aws.NewConfig().WithRegion("us-west-2")) +func New(p client.ConfigProvider, cfgs ...*aws.Config) *DAX { + c := p.ClientConfig(EndpointsID, cfgs...) + return newClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion, c.SigningName) +} + +// newClient creates, initializes and returns a new service client instance. +func newClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion, signingName string) *DAX { + svc := &DAX{ + Client: client.New( + cfg, + metadata.ClientInfo{ + ServiceName: ServiceName, + SigningName: signingName, + SigningRegion: signingRegion, + Endpoint: endpoint, + APIVersion: "2017-04-19", + JSONVersion: "1.1", + TargetPrefix: "AmazonDAXV3", + }, + handlers, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc.Client) + } + + return svc +} + +// newRequest creates a new request for a DAX operation and runs any +// custom request initialization. +func (c *DAX) newRequest(op *request.Operation, params, data interface{}) *request.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(req) + } + + return req +} diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go b/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go index 3461bb96a..5c4982a7f 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/api.go @@ -8272,7 +8272,7 @@ func (c *EC2) DescribeAccountAttributesRequest(input *DescribeAccountAttributesI // // * default-vpc: The ID of the default VPC for your account, or none. // -// * max-instances: The maximum number of On-Demand instances that you can +// * max-instances: The maximum number of On-Demand Instances that you can // run. // // * vpc-max-security-groups-per-interface: The maximum number of security @@ -8390,6 +8390,94 @@ func (c *EC2) DescribeAddressesWithContext(ctx aws.Context, input *DescribeAddre return out, req.Send() } +const opDescribeAggregateIdFormat = "DescribeAggregateIdFormat" + +// DescribeAggregateIdFormatRequest generates a "aws/request.Request" representing the +// client's request for the DescribeAggregateIdFormat operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribeAggregateIdFormat for more information on using the DescribeAggregateIdFormat +// 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 DescribeAggregateIdFormatRequest method. +// req, resp := client.DescribeAggregateIdFormatRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAggregateIdFormat +func (c *EC2) DescribeAggregateIdFormatRequest(input *DescribeAggregateIdFormatInput) (req *request.Request, output *DescribeAggregateIdFormatOutput) { + op := &request.Operation{ + Name: opDescribeAggregateIdFormat, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribeAggregateIdFormatInput{} + } + + output = &DescribeAggregateIdFormatOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribeAggregateIdFormat API operation for Amazon Elastic Compute Cloud. +// +// Describes the longer ID format settings for all resource types in a specific +// region. This request is useful for performing a quick audit to determine +// whether a specific region is fully opted in for longer IDs (17-character +// IDs). +// +// This request only returns information about resource types that support longer +// IDs. +// +// The following resource types support longer IDs: bundle | conversion-task +// | dhcp-options | elastic-ip-allocation | elastic-ip-association | export-task +// | flow-log | image | import-task | instance | internet-gateway | network-acl +// | network-acl-association | network-interface | network-interface-attachment +// | prefix-list | reservation | route-table | route-table-association | security-group +// | snapshot | subnet | subnet-cidr-block-association | volume | vpc | vpc-cidr-block-association +// | vpc-peering-connection. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation DescribeAggregateIdFormat for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribeAggregateIdFormat +func (c *EC2) DescribeAggregateIdFormat(input *DescribeAggregateIdFormatInput) (*DescribeAggregateIdFormatOutput, error) { + req, out := c.DescribeAggregateIdFormatRequest(input) + return out, req.Send() +} + +// DescribeAggregateIdFormatWithContext is the same as DescribeAggregateIdFormat with the addition of +// the ability to pass a context and additional request options. +// +// See DescribeAggregateIdFormat 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 *EC2) DescribeAggregateIdFormatWithContext(ctx aws.Context, input *DescribeAggregateIdFormatInput, opts ...request.Option) (*DescribeAggregateIdFormatOutput, error) { + req, out := c.DescribeAggregateIdFormatRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeAvailabilityZones = "DescribeAvailabilityZones" // DescribeAvailabilityZonesRequest generates a "aws/request.Request" representing the @@ -9666,8 +9754,13 @@ func (c *EC2) DescribeIdFormatRequest(input *DescribeIdFormatInput) (req *reques // request only returns information about resource types whose ID formats can // be modified; it does not return information about other resource types. // -// The following resource types support longer IDs: instance | reservation | -// snapshot | volume. +// The following resource types support longer IDs: bundle | conversion-task +// | dhcp-options | elastic-ip-allocation | elastic-ip-association | export-task +// | flow-log | image | import-task | instance | internet-gateway | network-acl +// | network-acl-association | network-interface | network-interface-attachment +// | prefix-list | reservation | route-table | route-table-association | security-group +// | snapshot | subnet | subnet-cidr-block-association | volume | vpc | vpc-cidr-block-association +// | vpc-peering-connection. // // These settings apply to the IAM user who makes the request; they do not apply // to the entire AWS account. By default, an IAM user defaults to the same settings @@ -9755,8 +9848,13 @@ func (c *EC2) DescribeIdentityIdFormatRequest(input *DescribeIdentityIdFormatInp // other resource types. For more information, see Resource IDs (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html) // in the Amazon Elastic Compute Cloud User Guide. // -// The following resource types support longer IDs: instance | reservation | -// snapshot | volume. +// The following resource types support longer IDs: bundle | conversion-task +// | dhcp-options | elastic-ip-allocation | elastic-ip-association | export-task +// | flow-log | image | import-task | instance | internet-gateway | network-acl +// | network-acl-association | network-interface | network-interface-attachment +// | prefix-list | reservation | route-table | route-table-association | security-group +// | snapshot | subnet | subnet-cidr-block-association | volume | vpc | vpc-cidr-block-association +// | vpc-peering-connection. // // These settings apply to the principal specified in the request. They do not // apply to the principal that makes the request. @@ -11519,6 +11617,94 @@ func (c *EC2) DescribePrefixListsWithContext(ctx aws.Context, input *DescribePre return out, req.Send() } +const opDescribePrincipalIdFormat = "DescribePrincipalIdFormat" + +// DescribePrincipalIdFormatRequest generates a "aws/request.Request" representing the +// client's request for the DescribePrincipalIdFormat operation. The "output" return +// value will be populated with the request's response once the request complets +// successfuly. +// +// 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 DescribePrincipalIdFormat for more information on using the DescribePrincipalIdFormat +// 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 DescribePrincipalIdFormatRequest method. +// req, resp := client.DescribePrincipalIdFormatRequest(params) +// +// err := req.Send() +// if err == nil { // resp is now filled +// fmt.Println(resp) +// } +// +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePrincipalIdFormat +func (c *EC2) DescribePrincipalIdFormatRequest(input *DescribePrincipalIdFormatInput) (req *request.Request, output *DescribePrincipalIdFormatOutput) { + op := &request.Operation{ + Name: opDescribePrincipalIdFormat, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DescribePrincipalIdFormatInput{} + } + + output = &DescribePrincipalIdFormatOutput{} + req = c.newRequest(op, input, output) + return +} + +// DescribePrincipalIdFormat API operation for Amazon Elastic Compute Cloud. +// +// Describes the ID format settings for the root user and all IAM roles and +// IAM users that have explicitly specified a longer ID (17-character ID) preference. +// +// By default, all IAM roles and IAM users default to the same ID settings as +// the root user, unless they explicitly override the settings. This request +// is useful for identifying those IAM users and IAM roles that have overridden +// the default ID settings. +// +// The following resource types support longer IDs: bundle | conversion-task +// | dhcp-options | elastic-ip-allocation | elastic-ip-association | export-task +// | flow-log | image | import-task | instance | internet-gateway | network-acl +// | network-acl-association | network-interface | network-interface-attachment +// | prefix-list | reservation | route-table | route-table-association | security-group +// | snapshot | subnet | subnet-cidr-block-association | volume | vpc | vpc-cidr-block-association +// | vpc-peering-connection. +// +// Returns awserr.Error for service API and SDK errors. Use runtime type assertions +// with awserr.Error's Code and Message methods to get detailed information about +// the error. +// +// See the AWS API reference guide for Amazon Elastic Compute Cloud's +// API operation DescribePrincipalIdFormat for usage and error information. +// See also, https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15/DescribePrincipalIdFormat +func (c *EC2) DescribePrincipalIdFormat(input *DescribePrincipalIdFormatInput) (*DescribePrincipalIdFormatOutput, error) { + req, out := c.DescribePrincipalIdFormatRequest(input) + return out, req.Send() +} + +// DescribePrincipalIdFormatWithContext is the same as DescribePrincipalIdFormat with the addition of +// the ability to pass a context and additional request options. +// +// See DescribePrincipalIdFormat 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 *EC2) DescribePrincipalIdFormatWithContext(ctx aws.Context, input *DescribePrincipalIdFormatInput, opts ...request.Option) (*DescribePrincipalIdFormatOutput, error) { + req, out := c.DescribePrincipalIdFormatRequest(input) + req.SetContext(ctx) + req.ApplyOptions(opts...) + return out, req.Send() +} + const opDescribeRegions = "DescribeRegions" // DescribeRegionsRequest generates a "aws/request.Request" representing the @@ -17435,8 +17621,16 @@ func (c *EC2) ModifyIdFormatRequest(input *ModifyIdFormatInput) (req *request.Re // // Modifies the ID format for the specified resource on a per-region basis. // You can specify that resources should receive longer IDs (17-character IDs) -// when they are created. The following resource types support longer IDs: instance -// | reservation | snapshot | volume. +// when they are created. +// +// This request can only be used to modify longer ID settings for resource types +// that are within the opt-in period. Resources currently in their opt-in period +// include: bundle | conversion-task | dhcp-options | elastic-ip-allocation +// | elastic-ip-association | export-task | flow-log | image | import-task | +// internet-gateway | network-acl | network-acl-association | network-interface +// | network-interface-attachment | prefix-list | route-table | route-table-association +// | security-group | subnet | subnet-cidr-block-association | vpc | vpc-cidr-block-association +// | vpc-peering-connection. // // This setting applies to the IAM user who makes the request; it does not apply // to the entire AWS account. By default, an IAM user defaults to the same settings @@ -17528,8 +17722,16 @@ func (c *EC2) ModifyIdentityIdFormatRequest(input *ModifyIdentityIdFormatInput) // user for an account. You can specify that resources should receive longer // IDs (17-character IDs) when they are created. // -// The following resource types support longer IDs: instance | reservation | -// snapshot | volume. For more information, see Resource IDs (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html) +// This request can only be used to modify longer ID settings for resource types +// that are within the opt-in period. Resources currently in their opt-in period +// include: bundle | conversion-task | dhcp-options | elastic-ip-allocation +// | elastic-ip-association | export-task | flow-log | image | import-task | +// internet-gateway | network-acl | network-acl-association | network-interface +// | network-interface-attachment | prefix-list | route-table | route-table-association +// | security-group | subnet | subnet-cidr-block-association | vpc | vpc-cidr-block-association +// | vpc-peering-connection.. +// +// For more information, see Resource IDs (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/resource-ids.html) // in the Amazon Elastic Compute Cloud User Guide. // // This setting applies to the principal specified in the request; it does not @@ -24165,7 +24367,7 @@ func (s *AttributeBooleanValue) SetValue(v bool) *AttributeBooleanValue { type AttributeValue struct { _ struct{} `type:"structure"` - // The attribute value. Note that the value is case-sensitive. + // The attribute value. The value is case-sensitive. Value *string `locationName:"value" type:"string"` } @@ -26210,14 +26412,34 @@ type CopyImageInput struct { // in the Amazon Elastic Compute Cloud User Guide. Encrypted *bool `locationName:"encrypted" type:"boolean"` - // The full ARN of the AWS Key Management Service (AWS KMS) CMK to use when - // encrypting the snapshots of an image during a copy operation. This parameter - // is only required if you want to use a non-default CMK; if this parameter - // is not specified, the default CMK for EBS is used. The ARN contains the arn:aws:kms - // namespace, followed by the region of the CMK, the AWS account ID of the CMK - // owner, the key namespace, and then the CMK ID. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. + // An identifier for the AWS Key Management Service (AWS KMS) customer master + // key (CMK) to use when creating the encrypted volume. This parameter is only + // required if you want to use a non-default CMK; if this parameter is not specified, + // the default CMK for EBS is used. If a KmsKeyId is specified, the Encrypted + // flag must also be set. + // + // The CMK identifier may be provided in any of the following formats: + // + // * Key ID + // + // * Key alias + // + // * ARN using key ID. The ID ARN contains the arn:aws:kms namespace, followed + // by the region of the CMK, the AWS account ID of the CMK owner, the key + // namespace, and then the CMK ID. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. + // + // + // * ARN using key alias. The alias ARN contains the arn:aws:kms namespace, + // followed by the region of the CMK, the AWS account ID of the CMK owner, + // the alias namespace, and then the CMK alias. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias. + // + // + // AWS parses KmsKeyId asynchronously, meaning that the action you call may + // appear to complete even though you provided an invalid identifier. This action + // will eventually report failure. + // // The specified CMK must exist in the region that the snapshot is being copied - // to. If a KmsKeyId is specified, the Encrypted flag must also be set. + // to. KmsKeyId *string `locationName:"kmsKeyId" type:"string"` // The name of the new AMI in the destination region. @@ -26369,14 +26591,31 @@ type CopySnapshotInput struct { // the Amazon Elastic Compute Cloud User Guide. Encrypted *bool `locationName:"encrypted" type:"boolean"` - // The full ARN of the AWS Key Management Service (AWS KMS) CMK to use when - // creating the snapshot copy. This parameter is only required if you want to - // use a non-default CMK; if this parameter is not specified, the default CMK - // for EBS is used. The ARN contains the arn:aws:kms namespace, followed by - // the region of the CMK, the AWS account ID of the CMK owner, the key namespace, - // and then the CMK ID. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. - // The specified CMK must exist in the region that the snapshot is being copied - // to. If a KmsKeyId is specified, the Encrypted flag must also be set. + // An identifier for the AWS Key Management Service (AWS KMS) customer master + // key (CMK) to use when creating the encrypted volume. This parameter is only + // required if you want to use a non-default CMK; if this parameter is not specified, + // the default CMK for EBS is used. If a KmsKeyId is specified, the Encrypted + // flag must also be set. + // + // The CMK identifier may be provided in any of the following formats: + // + // * Key ID + // + // * Key alias + // + // * ARN using key ID. The ID ARN contains the arn:aws:kms namespace, followed + // by the region of the CMK, the AWS account ID of the CMK owner, the key + // namespace, and then the CMK ID. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. + // + // + // * ARN using key alias. The alias ARN contains the arn:aws:kms namespace, + // followed by the region of the CMK, the AWS account ID of the CMK owner, + // the alias namespace, and then the CMK alias. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias. + // + // + // AWS parses KmsKeyId asynchronously, meaning that the action you call may + // appear to complete even though you provided an invalid identifier. The action + // will eventually fail. KmsKeyId *string `locationName:"kmsKeyId" type:"string"` // The pre-signed URL that facilitates copying an encrypted snapshot. This parameter @@ -28835,7 +29074,7 @@ type CreateSecurityGroupInput struct { // The name of the security group. // - // Constraints: Up to 255 characters in length + // Constraints: Up to 255 characters in length. Cannot start with sg-. // // Constraints for EC2-Classic: ASCII characters // @@ -29290,13 +29529,31 @@ type CreateVolumeInput struct { // Constraint: Range is 100 to 20000 for Provisioned IOPS SSD volumes Iops *int64 `type:"integer"` - // The full ARN of the AWS Key Management Service (AWS KMS) customer master + // An identifier for the AWS Key Management Service (AWS KMS) customer master // key (CMK) to use when creating the encrypted volume. This parameter is only // required if you want to use a non-default CMK; if this parameter is not specified, - // the default CMK for EBS is used. The ARN contains the arn:aws:kms namespace, - // followed by the region of the CMK, the AWS account ID of the CMK owner, the - // key namespace, and then the CMK ID. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. - // If a KmsKeyId is specified, the Encrypted flag must also be set. + // the default CMK for EBS is used. If a KmsKeyId is specified, the Encrypted + // flag must also be set. + // + // The CMK identifier may be provided in any of the following formats: + // + // * Key ID + // + // * Key alias + // + // * ARN using key ID. The ID ARN contains the arn:aws:kms namespace, followed + // by the region of the CMK, the AWS account ID of the CMK owner, the key + // namespace, and then the CMK ID. For example, arn:aws:kms:us-east-1:012345678910:key/abcd1234-a123-456a-a12b-a123b4cd56ef. + // + // + // * ARN using key alias. The alias ARN contains the arn:aws:kms namespace, + // followed by the region of the CMK, the AWS account ID of the CMK owner, + // the alias namespace, and then the CMK alias. For example, arn:aws:kms:us-east-1:012345678910:alias/ExampleAlias. + // + // + // AWS parses KmsKeyId asynchronously, meaning that the action you call may + // appear to complete even though you provided an invalid identifier. The action + // will eventually fail. KmsKeyId *string `type:"string"` // The size of the volume, in GiBs. @@ -32999,6 +33256,66 @@ func (s *DescribeAddressesOutput) SetAddresses(v []*Address) *DescribeAddressesO return s } +type DescribeAggregateIdFormatInput struct { + _ struct{} `type:"structure"` + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have + // the required permissions, the error response is DryRunOperation. Otherwise, + // it is UnauthorizedOperation. + DryRun *bool `type:"boolean"` +} + +// String returns the string representation +func (s DescribeAggregateIdFormatInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeAggregateIdFormatInput) GoString() string { + return s.String() +} + +// SetDryRun sets the DryRun field's value. +func (s *DescribeAggregateIdFormatInput) SetDryRun(v bool) *DescribeAggregateIdFormatInput { + s.DryRun = &v + return s +} + +type DescribeAggregateIdFormatOutput struct { + _ struct{} `type:"structure"` + + // Information about each resource's ID format. + Statuses []*IdFormat `locationName:"statusSet" locationNameList:"item" type:"list"` + + // Indicates whether all resource types in the region are configured to use + // longer IDs. This value is only true if all users are configured to use longer + // IDs for all resources types in the region. + UseLongIdsAggregated *bool `locationName:"useLongIdsAggregated" type:"boolean"` +} + +// String returns the string representation +func (s DescribeAggregateIdFormatOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribeAggregateIdFormatOutput) GoString() string { + return s.String() +} + +// SetStatuses sets the Statuses field's value. +func (s *DescribeAggregateIdFormatOutput) SetStatuses(v []*IdFormat) *DescribeAggregateIdFormatOutput { + s.Statuses = v + return s +} + +// SetUseLongIdsAggregated sets the UseLongIdsAggregated field's value. +func (s *DescribeAggregateIdFormatOutput) SetUseLongIdsAggregated(v bool) *DescribeAggregateIdFormatOutput { + s.UseLongIdsAggregated = &v + return s +} + // Contains the parameters for DescribeAvailabilityZones. type DescribeAvailabilityZonesInput struct { _ struct{} `type:"structure"` @@ -34568,7 +34885,12 @@ func (s *DescribeIamInstanceProfileAssociationsOutput) SetNextToken(v string) *D type DescribeIdFormatInput struct { _ struct{} `type:"structure"` - // The type of resource: instance | reservation | snapshot | volume + // The type of resource: bundle | conversion-task | dhcp-options | elastic-ip-allocation + // | elastic-ip-association | export-task | flow-log | image | import-task | + // instance | internet-gateway | network-acl | network-acl-association | network-interface + // | network-interface-attachment | prefix-list | reservation | route-table + // | route-table-association | security-group | snapshot | subnet | subnet-cidr-block-association + // | volume | vpc | vpc-cidr-block-association | vpc-peering-connection Resource *string `type:"string"` } @@ -34622,7 +34944,12 @@ type DescribeIdentityIdFormatInput struct { // PrincipalArn is a required field PrincipalArn *string `locationName:"principalArn" type:"string" required:"true"` - // The type of resource: instance | reservation | snapshot | volume + // The type of resource: bundle | conversion-task | dhcp-options | elastic-ip-allocation + // | elastic-ip-association | export-task | flow-log | image | import-task | + // instance | internet-gateway | network-acl | network-acl-association | network-interface + // | network-interface-attachment | prefix-list | reservation | route-table + // | route-table-association | security-group | snapshot | subnet | subnet-cidr-block-association + // | volume | vpc | vpc-cidr-block-association | vpc-peering-connection Resource *string `locationName:"resource" type:"string"` } @@ -37418,6 +37745,98 @@ func (s *DescribePrefixListsOutput) SetPrefixLists(v []*PrefixList) *DescribePre return s } +type DescribePrincipalIdFormatInput struct { + _ struct{} `type:"structure"` + + // Checks whether you have the required permissions for the action, without + // actually making the request, and provides an error response. If you have + // the required permissions, the error response is DryRunOperation. Otherwise, + // it is UnauthorizedOperation. + DryRun *bool `type:"boolean"` + + // The maximum number of results to return in a single call. To retrieve the + // remaining results, make another call with the returned NextToken value. + MaxResults *int64 `type:"integer"` + + // The token to request the next page of results. + NextToken *string `type:"string"` + + // The type of resource: bundle | conversion-task | dhcp-options | elastic-ip-allocation + // | elastic-ip-association | export-task | flow-log | image | import-task | + // instance | internet-gateway | network-acl | network-acl-association | network-interface + // | network-interface-attachment | prefix-list | reservation | route-table + // | route-table-association | security-group | snapshot | subnet | subnet-cidr-block-association + // | volume | vpc | vpc-cidr-block-association | vpc-peering-connection + Resources []*string `locationName:"Resource" locationNameList:"item" type:"list"` +} + +// String returns the string representation +func (s DescribePrincipalIdFormatInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribePrincipalIdFormatInput) GoString() string { + return s.String() +} + +// SetDryRun sets the DryRun field's value. +func (s *DescribePrincipalIdFormatInput) SetDryRun(v bool) *DescribePrincipalIdFormatInput { + s.DryRun = &v + return s +} + +// SetMaxResults sets the MaxResults field's value. +func (s *DescribePrincipalIdFormatInput) SetMaxResults(v int64) *DescribePrincipalIdFormatInput { + s.MaxResults = &v + return s +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribePrincipalIdFormatInput) SetNextToken(v string) *DescribePrincipalIdFormatInput { + s.NextToken = &v + return s +} + +// SetResources sets the Resources field's value. +func (s *DescribePrincipalIdFormatInput) SetResources(v []*string) *DescribePrincipalIdFormatInput { + s.Resources = v + return s +} + +type DescribePrincipalIdFormatOutput struct { + _ struct{} `type:"structure"` + + // The token to use to retrieve the next page of results. This value is null + // when there are no more results to return. + NextToken *string `locationName:"nextToken" type:"string"` + + // Information about the ID format settings for the ARN. + Principals []*PrincipalIdFormat `locationName:"principalSet" locationNameList:"item" type:"list"` +} + +// String returns the string representation +func (s DescribePrincipalIdFormatOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DescribePrincipalIdFormatOutput) GoString() string { + return s.String() +} + +// SetNextToken sets the NextToken field's value. +func (s *DescribePrincipalIdFormatOutput) SetNextToken(v string) *DescribePrincipalIdFormatOutput { + s.NextToken = &v + return s +} + +// SetPrincipals sets the Principals field's value. +func (s *DescribePrincipalIdFormatOutput) SetPrincipals(v []*PrincipalIdFormat) *DescribePrincipalIdFormatOutput { + s.Principals = v + return s +} + // Contains the parameters for DescribeRegions. type DescribeRegionsInput struct { _ struct{} `type:"structure"` @@ -38648,7 +39067,8 @@ type DescribeSecurityGroupsInput struct { // The maximum number of results to return in a single call. To retrieve the // remaining results, make another request with the returned NextToken value. - // This value can be between 5 and 1000. + // This value can be between 5 and 1000. If this parameter is not specified, + // then all results are returned. MaxResults *int64 `type:"integer"` // The token to request the next page of results. @@ -39740,8 +40160,8 @@ func (s *DescribeSpotPriceHistoryInput) SetStartTime(v time.Time) *DescribeSpotP type DescribeSpotPriceHistoryOutput struct { _ struct{} `type:"structure"` - // The token required to retrieve the next set of results. This value is null - // when there are no more results to return. + // The token required to retrieve the next set of results. This value is an + // empty string when there are no more results to return. NextToken *string `locationName:"nextToken" type:"string"` // The historical Spot prices. @@ -43295,7 +43715,8 @@ type EbsBlockDevice struct { // it is not used in requests to create gp2, st1, sc1, or standard volumes. Iops *int64 `locationName:"iops" type:"integer"` - // ID for a user-managed CMK under which the EBS volume is encrypted. + // Identifier (key ID, key alias, ID ARN, or alias ARN) for a user-managed CMK + // under which the EBS volume is encrypted. // // Note: This parameter is only supported on BlockDeviceMapping objects called // by RunInstances (http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html), @@ -46241,7 +46662,7 @@ type ImageDiskContainer struct { // The format of the disk image being imported. // - // Valid values: RAW | VHD | VMDK | OVA + // Valid values: VHD | VMDK | OVA Format *string `type:"string"` // The ID of the EBS snapshot to be used for importing the snapshot. @@ -46763,7 +47184,7 @@ type ImportInstanceLaunchSpecification struct { InstanceInitiatedShutdownBehavior *string `locationName:"instanceInitiatedShutdownBehavior" type:"string" enum:"ShutdownBehavior"` // The instance type. For more information about the instance types that you - // can import, see Instance Types (http://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html#vmimport-instance-types) + // can import, see Instance Types (http://docs.aws.amazon.com/vm-import/latest/userguide/vmie_prereqs.html#vmimport-instance-types) // in the VM Import/Export User Guide. InstanceType *string `locationName:"instanceType" type:"string" enum:"InstanceType"` @@ -46779,9 +47200,7 @@ type ImportInstanceLaunchSpecification struct { // [EC2-VPC] The ID of the subnet in which to launch the instance. SubnetId *string `locationName:"subnetId" type:"string"` - // The user data to make available to the instance. If you are using an AWS - // SDK or command line tool, Base64-encoding is performed for you, and you can - // load the text from a file. Otherwise, you must provide Base64-encoded text. + // The Base64-encoded user data to make available to the instance. UserData *UserData `locationName:"userData" type:"structure"` } @@ -49431,9 +49850,7 @@ type LaunchSpecification struct { // The ID of the subnet in which to launch the instance. SubnetId *string `locationName:"subnetId" type:"string"` - // The user data to make available to the instances. If you are using an AWS - // SDK or command line tool, Base64-encoding is performed for you, and you can - // load the text from a file. Otherwise, you must provide Base64-encoded text. + // The Base64-encoded user data for the instance. UserData *string `locationName:"userData" type:"string"` } @@ -51318,7 +51735,15 @@ func (s *ModifyHostsOutput) SetUnsuccessful(v []*UnsuccessfulItem) *ModifyHostsO type ModifyIdFormatInput struct { _ struct{} `type:"structure"` - // The type of resource: instance | reservation | snapshot | volume + // The type of resource: bundle | conversion-task | dhcp-options | elastic-ip-allocation + // | elastic-ip-association | export-task | flow-log | image | import-task | + // internet-gateway | network-acl | network-acl-association | network-interface + // | network-interface-attachment | prefix-list | route-table | route-table-association + // | security-group | subnet | subnet-cidr-block-association | vpc | vpc-cidr-block-association + // | vpc-peering-connection. + // + // Alternatively, use the all-current option to include all resource types that + // are currently within their opt-in period for longer IDs. // // Resource is a required field Resource *string `type:"string" required:"true"` @@ -51392,7 +51817,15 @@ type ModifyIdentityIdFormatInput struct { // PrincipalArn is a required field PrincipalArn *string `locationName:"principalArn" type:"string" required:"true"` - // The type of resource: instance | reservation | snapshot | volume + // The type of resource: bundle | conversion-task | dhcp-options | elastic-ip-allocation + // | elastic-ip-association | export-task | flow-log | image | import-task | + // internet-gateway | network-acl | network-acl-association | network-interface + // | network-interface-attachment | prefix-list | route-table | route-table-association + // | security-group | subnet | subnet-cidr-block-association | vpc | vpc-cidr-block-association + // | vpc-peering-connection. + // + // Alternatively, use the all-current option to include all resource types that + // are currently within their opt-in period for longer IDs. // // Resource is a required field Resource *string `locationName:"resource" type:"string" required:"true"` @@ -53126,7 +53559,7 @@ type ModifyVpcEndpointServiceConfigurationInput struct { // The Amazon Resource Names (ARNs) of Network Load Balancers to add to your // service configuration. - AddNetworkLoadBalancerArns []*string `locationName:"addNetworkLoadBalancerArn" locationNameList:"item" type:"list"` + AddNetworkLoadBalancerArns []*string `locationName:"AddNetworkLoadBalancerArn" locationNameList:"item" type:"list"` // Checks whether you have the required permissions for the action, without // actually making the request, and provides an error response. If you have @@ -53136,7 +53569,7 @@ type ModifyVpcEndpointServiceConfigurationInput struct { // The Amazon Resource Names (ARNs) of Network Load Balancers to remove from // your service configuration. - RemoveNetworkLoadBalancerArns []*string `locationName:"removeNetworkLoadBalancerArn" locationNameList:"item" type:"list"` + RemoveNetworkLoadBalancerArns []*string `locationName:"RemoveNetworkLoadBalancerArn" locationNameList:"item" type:"list"` // The ID of the service. // @@ -55211,6 +55644,39 @@ func (s *PricingDetail) SetPrice(v float64) *PricingDetail { return s } +// PrincipalIdFormat description +type PrincipalIdFormat struct { + _ struct{} `type:"structure"` + + // PrincipalIdFormatARN description + Arn *string `locationName:"arn" type:"string"` + + // PrincipalIdFormatStatuses description + Statuses []*IdFormat `locationName:"statusSet" locationNameList:"item" type:"list"` +} + +// String returns the string representation +func (s PrincipalIdFormat) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PrincipalIdFormat) GoString() string { + return s.String() +} + +// SetArn sets the Arn field's value. +func (s *PrincipalIdFormat) SetArn(v string) *PrincipalIdFormat { + s.Arn = &v + return s +} + +// SetStatuses sets the Statuses field's value. +func (s *PrincipalIdFormat) SetStatuses(v []*IdFormat) *PrincipalIdFormat { + s.Statuses = v + return s +} + // Describes a secondary private IPv4 address for a network interface. type PrivateIpAddressSpecification struct { _ struct{} `type:"structure"` @@ -57297,12 +57763,10 @@ type RequestLaunchTemplateData struct { // are created during launch. TagSpecifications []*LaunchTemplateTagSpecificationRequest `locationName:"TagSpecification" locationNameList:"LaunchTemplateTagSpecificationRequest" type:"list"` - // The user data to make available to the instance. For more information, see - // Running Commands on Your Linux Instance at Launch (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) + // The Base64-encoded user data to make available to the instance. For more + // information, see Running Commands on Your Linux Instance at Launch (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html) // (Linux) and Adding User Data (http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-instance-metadata.html#instancedata-add-user-data) - // (Windows). If you are using a command line tool, base64-encoding is performed - // for you and you can load the text from a file. Otherwise, you must provide - // base64-encoded text. + // (Windows). UserData *string `type:"string"` } @@ -57827,9 +58291,7 @@ type RequestSpotLaunchSpecification struct { // The ID of the subnet in which to launch the instance. SubnetId *string `locationName:"subnetId" type:"string"` - // The user data to make available to the instances. If you are using an AWS - // SDK or command line tool, Base64-encoding is performed for you, and you can - // load the text from a file. Otherwise, you must provide Base64-encoded text. + // The Base64-encoded user data for the instance. UserData *string `locationName:"userData" type:"string"` } @@ -62422,7 +62884,7 @@ type SnapshotDiskContainer struct { // The format of the disk image being imported. // - // Valid values: RAW | VHD | VMDK | OVA + // Valid values: VHD | VMDK | OVA Format *string `type:"string"` // The URL to the Amazon S3-based disk image being imported. It can either be @@ -62691,9 +63153,7 @@ type SpotFleetLaunchSpecification struct { // The tags to apply during creation. TagSpecifications []*SpotFleetTagSpecification `locationName:"tagSpecificationSet" locationNameList:"item" type:"list"` - // The user data to make available to the instances. If you are using an AWS - // SDK or command line tool, Base64-encoding is performed for you, and you can - // load the text from a file. Otherwise, you must provide Base64-encoded text. + // The Base64-encoded user data to make available to the instances. UserData *string `locationName:"userData" type:"string"` // The number of units provided by the specified instance type. These are the @@ -67007,7 +67467,7 @@ type VpnConnectionOptionsSpecification struct { // Indicate whether the VPN connection uses static routes only. If you are creating // a VPN connection for a device that does not support BGP, you must specify - // true. + // true. Use CreateVpnConnectionRoute to create a static route. // // Default: false StaticRoutesOnly *bool `locationName:"staticRoutesOnly" type:"boolean"` @@ -68216,6 +68676,9 @@ const ( // NetworkInterfaceStatusAvailable is a NetworkInterfaceStatus enum value NetworkInterfaceStatusAvailable = "available" + // NetworkInterfaceStatusAssociated is a NetworkInterfaceStatus enum value + NetworkInterfaceStatusAssociated = "associated" + // NetworkInterfaceStatusAttaching is a NetworkInterfaceStatus enum value NetworkInterfaceStatusAttaching = "attaching" diff --git a/vendor/github.com/aws/aws-sdk-go/service/ec2/doc.go b/vendor/github.com/aws/aws-sdk-go/service/ec2/doc.go index 432a54df4..909e05a14 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/ec2/doc.go +++ b/vendor/github.com/aws/aws-sdk-go/service/ec2/doc.go @@ -4,7 +4,7 @@ // requests to Amazon Elastic Compute Cloud. // // Amazon Elastic Compute Cloud (Amazon EC2) provides resizable computing capacity -// in the AWS Cloud. Using Amazon EC2 eliminates your need to invest in hardware +// in the AWS Cloud. Using Amazon EC2 eliminates the need to invest in hardware // up front, so you can develop and deploy applications faster. // // See https://docs.aws.amazon.com/goto/WebAPI/ec2-2016-11-15 for more information on this service. diff --git a/vendor/github.com/aws/aws-sdk-go/service/guardduty/api.go b/vendor/github.com/aws/aws-sdk-go/service/guardduty/api.go index ac7f4ae93..5a2e9cfe6 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/guardduty/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/guardduty/api.go @@ -3573,6 +3573,9 @@ type Action struct { // Information about the NETWORK_CONNECTION action described in this finding. NetworkConnectionAction *NetworkConnectionAction `locationName:"networkConnectionAction" type:"structure"` + + // Information about the PORT_PROBE action described in this finding. + PortProbeAction *PortProbeAction `locationName:"portProbeAction" type:"structure"` } // String returns the string representation @@ -3609,6 +3612,12 @@ func (s *Action) SetNetworkConnectionAction(v *NetworkConnectionAction) *Action return s } +// SetPortProbeAction sets the PortProbeAction field's value. +func (s *Action) SetPortProbeAction(v *PortProbeAction) *Action { + s.PortProbeAction = v + return s +} + // Archive Findings Request type ArchiveFindingsInput struct { _ struct{} `type:"structure"` @@ -6830,6 +6839,72 @@ func (s *Organization) SetOrg(v string) *Organization { return s } +// Information about the PORT_PROBE action described in this finding. +type PortProbeAction struct { + _ struct{} `type:"structure"` + + // Port probe blocked information. + Blocked *bool `locationName:"blocked" type:"boolean"` + + // A list of port probe details objects. + PortProbeDetails []*PortProbeDetail `locationName:"portProbeDetails" type:"list"` +} + +// String returns the string representation +func (s PortProbeAction) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PortProbeAction) GoString() string { + return s.String() +} + +// SetBlocked sets the Blocked field's value. +func (s *PortProbeAction) SetBlocked(v bool) *PortProbeAction { + s.Blocked = &v + return s +} + +// SetPortProbeDetails sets the PortProbeDetails field's value. +func (s *PortProbeAction) SetPortProbeDetails(v []*PortProbeDetail) *PortProbeAction { + s.PortProbeDetails = v + return s +} + +// Details about the port probe finding. +type PortProbeDetail struct { + _ struct{} `type:"structure"` + + // Local port information of the connection. + LocalPortDetails *LocalPortDetails `locationName:"localPortDetails" type:"structure"` + + // Remote IP information of the connection. + RemoteIpDetails *RemoteIpDetails `locationName:"remoteIpDetails" type:"structure"` +} + +// String returns the string representation +func (s PortProbeDetail) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PortProbeDetail) GoString() string { + return s.String() +} + +// SetLocalPortDetails sets the LocalPortDetails field's value. +func (s *PortProbeDetail) SetLocalPortDetails(v *LocalPortDetails) *PortProbeDetail { + s.LocalPortDetails = v + return s +} + +// SetRemoteIpDetails sets the RemoteIpDetails field's value. +func (s *PortProbeDetail) SetRemoteIpDetails(v *RemoteIpDetails) *PortProbeDetail { + s.RemoteIpDetails = v + return s +} + // Other private IP address information of the EC2 instance. type PrivateIpAddressDetails struct { _ struct{} `type:"structure"` diff --git a/vendor/github.com/aws/aws-sdk-go/service/kms/api.go b/vendor/github.com/aws/aws-sdk-go/service/kms/api.go index 3e66c27c0..e67cf240d 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/kms/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/kms/api.go @@ -3468,6 +3468,9 @@ func (c *KMS) RetireGrantRequest(input *RetireGrantInput) (req *request.Request, // API operation RetireGrant for usage and error information. // // Returned Error Codes: +// * ErrCodeInvalidArnException "InvalidArnException" +// The request was rejected because a specified ARN was not valid. +// // * ErrCodeInvalidGrantTokenException "InvalidGrantTokenException" // The request was rejected because the specified grant token is not valid. // diff --git a/vendor/github.com/aws/aws-sdk-go/service/rds/api.go b/vendor/github.com/aws/aws-sdk-go/service/rds/api.go index 2bfd463ad..a378d97c1 100644 --- a/vendor/github.com/aws/aws-sdk-go/service/rds/api.go +++ b/vendor/github.com/aws/aws-sdk-go/service/rds/api.go @@ -1504,12 +1504,12 @@ func (c *RDS) CreateDBInstanceReadReplicaRequest(input *CreateDBInstanceReadRepl // MariaDB, or PostgreSQL. For more information, see Working with PostgreSQL, // MySQL, and MariaDB Read Replicas (http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html). // -// Amazon Aurora does not support this action. You must call the CreateDBInstance +// Amazon Aurora doesn't support this action. You must call the CreateDBInstance // action to create a DB instance for an Aurora DB cluster. // // All Read Replica DB instances are created with backups disabled. All other // DB instance attributes (including DB security groups and DB parameter groups) -// are inherited from the source DB instance, except as specified below. +// are inherited from the source DB instance, except as specified following. // // Your source DB instance must have backup retention enabled. // @@ -3126,7 +3126,7 @@ func (c *RDS) DescribeAccountAttributesRequest(input *DescribeAccountAttributesI // The description for a quota includes the quota name, current usage toward // that quota, and the quota's maximum value. // -// This command does not take any parameters. +// This command doesn't take any parameters. // // 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 @@ -7691,6 +7691,8 @@ func (c *RDS) PromoteReadReplicaRequest(input *PromoteReadReplicaInput) (req *re // promotion process. Once the instance is promoted to a primary instance, backups // are taken based on your backup settings. // +// This command doesn't apply to Aurora MySQL and Aurora PostgreSQL. +// // 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. @@ -8903,16 +8905,19 @@ func (c *RDS) RestoreDBInstanceFromDBSnapshotRequest(input *RestoreDBInstanceFro // // If your intent is to replace your original DB instance with the new, restored // DB instance, then rename your original DB instance before you call the RestoreDBInstanceFromDBSnapshot -// action. RDS does not allow two DB instances with the same name. Once you -// have renamed your original DB instance with a different identifier, then -// you can pass the original name of the DB instance as the DBInstanceIdentifier -// in the call to the RestoreDBInstanceFromDBSnapshot action. The result is -// that you will replace the original DB instance with the DB instance created -// from the snapshot. +// action. RDS doesn't allow two DB instances with the same name. Once you have +// renamed your original DB instance with a different identifier, then you can +// pass the original name of the DB instance as the DBInstanceIdentifier in +// the call to the RestoreDBInstanceFromDBSnapshot action. The result is that +// you will replace the original DB instance with the DB instance created from +// the snapshot. // // If you are restoring from a shared manual DB snapshot, the DBSnapshotIdentifier // must be the ARN of the shared DB snapshot. // +// This command doesn't apply to Aurora MySQL and Aurora PostgreSQL. For Aurora, +// use RestoreDBClusterFromSnapshot. +// // 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. @@ -9203,6 +9208,9 @@ func (c *RDS) RestoreDBInstanceToPointInTimeRequest(input *RestoreDBInstanceToPo // with mirroring; in this case, the instance becomes a mirrored deployment // and not a single-AZ deployment. // +// This command doesn't apply to Aurora MySQL and Aurora PostgreSQL. For Aurora, +// use RestoreDBClusterToPointInTime. +// // 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. @@ -9440,7 +9448,7 @@ func (c *RDS) StartDBInstanceRequest(input *StartDBInstanceInput) (req *request. // AWS CLI command, or the StopDBInstance action. For more information, see // Stopping and Starting a DB instance in the AWS RDS user guide. // -// This command does not apply to Aurora MySQL and Aurora PostgreSQL. +// This command doesn't apply to Aurora MySQL and Aurora PostgreSQL. // // 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 @@ -9563,7 +9571,7 @@ func (c *RDS) StopDBInstanceRequest(input *StopDBInstanceInput) (req *request.Re // do a point-in-time restore if necessary. For more information, see Stopping // and Starting a DB instance in the AWS RDS user guide. // -// This command does not apply to Aurora MySQL and Aurora PostgreSQL. +// This command doesn't apply to Aurora MySQL and Aurora PostgreSQL. // // 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 @@ -11143,16 +11151,21 @@ type CreateDBClusterInput struct { // The name of the database engine to be used for this DB cluster. // - // Valid Values: aurora, aurora-postgresql + // Valid Values: aurora (for MySQL 5.6-compatible Aurora), aurora-mysql (for + // MySQL 5.7-compatible Aurora), and aurora-postgresql // // Engine is a required field Engine *string `type:"string" required:"true"` // The version number of the database engine to use. // - // Aurora + // Aurora MySQL // - // Example: 5.6.10a + // Example: 5.6.10a, 5.7.12 + // + // Aurora PostgreSQL + // + // Example: 9.6.3 EngineVersion *string `type:"string"` // The AWS KMS key identifier for an encrypted DB cluster. @@ -11507,6 +11520,14 @@ type CreateDBClusterParameterGroupInput struct { // and can be applied only to a DB cluster running a database engine and engine // version compatible with that DB cluster parameter group family. // + // Aurora MySQL + // + // Example: aurora5.6, aurora-mysql5.7 + // + // Aurora PostgreSQL + // + // Example: aurora-postgresql9.6 + // // DBParameterGroupFamily is a required field DBParameterGroupFamily *string `type:"string" required:"true"` @@ -11994,7 +12015,9 @@ type CreateDBInstanceInput struct { // // Valid Values: // - // * aurora + // * aurora (for MySQL 5.6-compatible Aurora) + // + // * aurora-mysql (for MySQL 5.7-compatible Aurora) // // * aurora-postgresql // @@ -12874,14 +12897,14 @@ type CreateDBInstanceReadReplicaInput struct { // a MonitoringRoleArn value. MonitoringRoleArn *string `type:"string"` - // Specifies whether the read replica is in a Multi-AZ deployment. + // Specifies whether the Read Replica is in a Multi-AZ deployment. // // You can create a Read Replica as a Multi-AZ DB instance. RDS creates a standby // of your replica in another Availability Zone for failover support for the // replica. Creating your Read Replica as a Multi-AZ DB instance is independent // of whether the source database is a Multi-AZ DB instance. // - // Currently PostgreSQL Read Replicas can only be created as single-AZ DB instances. + // Currently, you can't create PostgreSQL Read Replicas as Multi-AZ DB instances. MultiAZ *bool `type:"boolean"` // The option group the DB instance is associated with. If omitted, the default @@ -21492,7 +21515,7 @@ type ModifyDBClusterInput struct { NewDBClusterIdentifier *string `type:"string"` // A value that indicates that the DB cluster should be associated with the - // specified option group. Changing this parameter does not result in an outage + // specified option group. Changing this parameter doesn't result in an outage // except in the following case, and the change is applied during the next maintenance // window unless the ApplyImmediately parameter is set to true for this request. // If the parameter change results in an option group that enables OEM, this @@ -21851,8 +21874,8 @@ type ModifyDBInstanceInput struct { AllocatedStorage *int64 `type:"integer"` // Indicates that major version upgrades are allowed. Changing this parameter - // does not result in an outage and the change is asynchronously applied as - // soon as possible. + // doesn't result in an outage and the change is asynchronously applied as soon + // as possible. // // Constraints: This parameter must be set to true when specifying a value for // the EngineVersion parameter that is a different major version than the DB @@ -21875,8 +21898,8 @@ type ModifyDBInstanceInput struct { ApplyImmediately *bool `type:"boolean"` // Indicates that minor version upgrades are applied automatically to the DB - // instance during the maintenance window. Changing this parameter does not - // result in an outage except in the following case and the change is asynchronously + // instance during the maintenance window. Changing this parameter doesn't result + // in an outage except in the following case and the change is asynchronously // applied as soon as possible. An outage will result if this parameter is set // to true during the maintenance window, and a newer minor version is available, // and RDS has enabled auto patching for that engine version. @@ -21947,7 +21970,7 @@ type ModifyDBInstanceInput struct { DBInstanceIdentifier *string `type:"string" required:"true"` // The name of the DB parameter group to apply to the DB instance. Changing - // this setting does not result in an outage. The parameter group name itself + // this setting doesn't result in an outage. The parameter group name itself // is changed immediately, but the actual parameter changes are not applied // until you reboot the instance without failover. The db instance will NOT // be rebooted automatically and the parameter changes will NOT be applied during @@ -22008,7 +22031,7 @@ type ModifyDBInstanceInput struct { DBPortNumber *int64 `type:"integer"` // A list of DB security groups to authorize on this DB instance. Changing this - // setting does not result in an outage and the change is asynchronously applied + // setting doesn't result in an outage and the change is asynchronously applied // as soon as possible. // // Constraints: @@ -22075,7 +22098,7 @@ type ModifyDBInstanceInput struct { // The new Provisioned IOPS (I/O operations per second) value for the RDS instance. // - // Changing this setting does not result in an outage and the change is applied + // Changing this setting doesn't result in an outage and the change is applied // during the next maintenance window unless the ApplyImmediately parameter // is set to true for this request. If you are migrating from Provisioned IOPS // to standard storage, set this value to 0. The DB instance will require a @@ -22110,7 +22133,7 @@ type ModifyDBInstanceInput struct { // The new password for the master user. The password can include any printable // ASCII character except "/", """, or "@". // - // Changing this parameter does not result in an outage and the change is asynchronously + // Changing this parameter doesn't result in an outage and the change is asynchronously // applied as soon as possible. Between the time of the request and the completion // of the request, the MasterUserPassword element exists in the PendingModifiedValues // element of the operation response. @@ -22167,7 +22190,7 @@ type ModifyDBInstanceInput struct { MonitoringRoleArn *string `type:"string"` // Specifies if the DB instance is a Multi-AZ deployment. Changing this parameter - // does not result in an outage and the change is applied during the next maintenance + // doesn't result in an outage and the change is applied during the next maintenance // window unless the ApplyImmediately parameter is set to true for this request. MultiAZ *bool `type:"boolean"` @@ -22189,7 +22212,7 @@ type ModifyDBInstanceInput struct { NewDBInstanceIdentifier *string `type:"string"` // Indicates that the DB instance should be associated with the specified option - // group. Changing this parameter does not result in an outage except in the + // group. Changing this parameter doesn't result in an outage except in the // following case and the change is applied during the next maintenance window // unless the ApplyImmediately parameter is set to true for this request. If // the parameter change results in an option group that enables OEM, this change @@ -22208,7 +22231,7 @@ type ModifyDBInstanceInput struct { // The daily time range during which automated backups are created if automated // backups are enabled, as determined by the BackupRetentionPeriod parameter. - // Changing this parameter does not result in an outage and the change is asynchronously + // Changing this parameter doesn't result in an outage and the change is asynchronously // applied as soon as possible. // // Amazon Aurora @@ -22228,8 +22251,8 @@ type ModifyDBInstanceInput struct { PreferredBackupWindow *string `type:"string"` // The weekly time range (in UTC) during which system maintenance can occur, - // which might result in an outage. Changing this parameter does not result - // in an outage, except in the following situation, and the change is asynchronously + // which might result in an outage. Changing this parameter doesn't result in + // an outage, except in the following situation, and the change is asynchronously // applied as soon as possible. If there are pending actions that cause a reboot, // and the maintenance window is changed to include the current time, then changing // this parameter will cause a reboot of the DB instance. If moving this window @@ -25573,9 +25596,13 @@ type RestoreDBClusterFromS3Input struct { // The version number of the database engine to use. // - // Aurora + // Aurora MySQL // // Example: 5.6.10a + // + // Aurora PostgreSQL + // + // Example: 9.6.3 EngineVersion *string `type:"string"` // The AWS KMS key identifier for an encrypted DB cluster. @@ -26492,8 +26519,6 @@ type RestoreDBInstanceFromDBSnapshotInput struct { // // * For MySQL 5.7, minor version 5.7.16 or higher // - // * Aurora 5.6 or higher. - // // Default: false EnableIAMDatabaseAuthentication *bool `type:"boolean"` @@ -26506,10 +26531,6 @@ type RestoreDBInstanceFromDBSnapshotInput struct { // // Valid Values: // - // * aurora - // - // * aurora-postgresql - // // * mariadb // // * mysql @@ -27438,8 +27459,6 @@ type RestoreDBInstanceToPointInTimeInput struct { // // * For MySQL 5.7, minor version 5.7.16 or higher // - // * Aurora 5.6 or higher. - // // Default: false EnableIAMDatabaseAuthentication *bool `type:"boolean"` @@ -27451,10 +27470,6 @@ type RestoreDBInstanceToPointInTimeInput struct { // // Valid Values: // - // * aurora - // - // * aurora-postgresql - // // * mariadb // // * mysql diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/CHANGELOG.md b/vendor/github.com/terraform-providers/terraform-provider-aws/CHANGELOG.md index 2e0c0cd36..2e140809f 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/CHANGELOG.md +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/CHANGELOG.md @@ -1,8 +1,88 @@ +## 1.10.0 (February 24, 2018) + +NOTES: + +* resource/aws_dx_lag: `number_of_connections` was deprecated and will be removed in future major version. Use `aws_dx_connection` and `aws_dx_connection_association` resources instead. Default connections will be removed as part of LAG creation automatically in future major version. ([#3367](https://github.com/terraform-providers/terraform-provider-aws/issues/3367)) + +FEATURES: + +* **New Data Source:** `aws_inspector_rules_packages` ([#3175](https://github.com/terraform-providers/terraform-provider-aws/issues/3175)) +* **New Resource:** `aws_api_gateway_vpc_link` ([#2512](https://github.com/terraform-providers/terraform-provider-aws/issues/2512)) +* **New Resource:** `aws_appsync_graphql_api` ([#2494](https://github.com/terraform-providers/terraform-provider-aws/issues/2494)) +* **New Resource:** `aws_dax_cluster` ([#2884](https://github.com/terraform-providers/terraform-provider-aws/issues/2884)) +* **New Resource:** `aws_gamelift_alias` ([#3353](https://github.com/terraform-providers/terraform-provider-aws/issues/3353)) +* **New Resource:** `aws_gamelift_fleet` ([#3327](https://github.com/terraform-providers/terraform-provider-aws/issues/3327)) +* **New Resource:** `aws_lb_listener_certificate` ([#2686](https://github.com/terraform-providers/terraform-provider-aws/issues/2686)) +* **New Resource:** `aws_s3_bucket_metric` ([#916](https://github.com/terraform-providers/terraform-provider-aws/issues/916)) +* **New Resource:** `aws_ses_domain_mail_from` ([#2029](https://github.com/terraform-providers/terraform-provider-aws/issues/2029)) +* **New Resource:** `aws_iot_thing_type` ([#3302](https://github.com/terraform-providers/terraform-provider-aws/issues/3302)) + +ENHANCEMENTS: + +* data-source/aws_kms_alias: Always return `target_key_arn` ([#3304](https://github.com/terraform-providers/terraform-provider-aws/issues/3304)) +* resource/aws_autoscaling_policy: Add support for `target_tracking_configuration` ([#2611](https://github.com/terraform-providers/terraform-provider-aws/issues/2611)) +* resource/aws_codebuild_project: Support VPC configuration ([#2547](https://github.com/terraform-providers/terraform-provider-aws/issues/2547)] [[#3324](https://github.com/terraform-providers/terraform-provider-aws/issues/3324)) +* resource/aws_cloudtrail: Add `event_selector` argument ([#2258](https://github.com/terraform-providers/terraform-provider-aws/issues/2258)) +* resource/aws_codedeploy_deployment_group: Validate DeploymentReady and InstanceReady `trigger_events` ([#3412](https://github.com/terraform-providers/terraform-provider-aws/issues/3412)) +* resource/aws_db_parameter_group: Validate underscore `name` during plan ([#3396](https://github.com/terraform-providers/terraform-provider-aws/issues/3396)) +* resource/aws_directory_service_directory Add `edition` argument ([#3421](https://github.com/terraform-providers/terraform-provider-aws/issues/3421)) +* resource/aws_directory_service_directory Validate `size` argument ([#3453](https://github.com/terraform-providers/terraform-provider-aws/issues/3453)) +* resource/aws_dx_connection: Add support for tagging ([#2990](https://github.com/terraform-providers/terraform-provider-aws/issues/2990)) +* resource/aws_dx_connection: Add support for import ([#2992](https://github.com/terraform-providers/terraform-provider-aws/issues/2992)) +* resource/aws_dx_lag: Add support for tagging ([#2990](https://github.com/terraform-providers/terraform-provider-aws/issues/2990)) +* resource/aws_dx_lag: Add support for import ([#2992](https://github.com/terraform-providers/terraform-provider-aws/issues/2992)) +* resource/aws_emr_cluster: Add `autoscaling_policy` argument ([#2877](https://github.com/terraform-providers/terraform-provider-aws/issues/2877)) +* resource/aws_emr_cluster: Add `scale_down_behavior` argument ([#3063](https://github.com/terraform-providers/terraform-provider-aws/issues/3063)) +* resource/aws_instance: Expose reason of `shutting-down` state during creation ([#3371](https://github.com/terraform-providers/terraform-provider-aws/issues/3371)) +* resource/aws_instance: Include size of user_data in validation error message ([#2971](https://github.com/terraform-providers/terraform-provider-aws/issues/2971)) +* resource/aws_instance: Remove extra API call on creation for SGs ([#3426](https://github.com/terraform-providers/terraform-provider-aws/issues/3426)) +* resource/aws_lambda_function: Recompute `version` and `qualified_arn` attributes on publish ([#3032](https://github.com/terraform-providers/terraform-provider-aws/issues/3032)) +* resource/aws_lb_target_group: Allow stickiness block set to false with TCP ([#2954](https://github.com/terraform-providers/terraform-provider-aws/issues/2954)) +* resource/aws_lb_listener_rule: Validate `priority` over 50000 ([#3379](https://github.com/terraform-providers/terraform-provider-aws/issues/3379)) +* resource/aws_lb_listener_rule: Make `priority` argument optional ([#3219](https://github.com/terraform-providers/terraform-provider-aws/issues/3219)) +* resource/aws_rds_cluster: Add `hosted_zone_id` attribute ([#3267](https://github.com/terraform-providers/terraform-provider-aws/issues/3267)) +* resource/aws_rds_cluster: Add support for `source_region` (encrypted cross-region replicas) ([#3415](https://github.com/terraform-providers/terraform-provider-aws/issues/3415)) +* resource/aws_rds_cluster_instance: Support `availability_zone` ([#2812](https://github.com/terraform-providers/terraform-provider-aws/issues/2812)) +* resource/aws_rds_cluster_parameter_group: Validate underscore `name` during plan ([#3396](https://github.com/terraform-providers/terraform-provider-aws/issues/3396)) +* resource/aws_route53_record Add `allow_overwrite` argument ([#2926](https://github.com/terraform-providers/terraform-provider-aws/issues/2926)) +* resource/aws_s3_bucket Ssupport for SSE-KMS replication configuration ([#2625](https://github.com/terraform-providers/terraform-provider-aws/issues/2625)) +* resource/aws_spot_fleet_request: Validate `iam_fleet_role` as ARN during plan ([#3431](https://github.com/terraform-providers/terraform-provider-aws/issues/3431)) +* resource/aws_sqs_queue: Validate `name` during plan ([#2837](https://github.com/terraform-providers/terraform-provider-aws/issues/2837)) +* resource/aws_ssm_association: Allow updating `targets` ([#2807](https://github.com/terraform-providers/terraform-provider-aws/issues/2807)) +* resource/aws_service_discovery_service: Support routing policy and update the type of DNS record ([#3273](https://github.com/terraform-providers/terraform-provider-aws/issues/3273)) + +BUG FIXES: + +* data-source/aws_elb_service_account: Correct GovCloud region ([#3315](https://github.com/terraform-providers/terraform-provider-aws/issues/3315)) +* resource/aws_acm_certificate_validation: Prevent crash on `validation_record_fqdns` ([#3336](https://github.com/terraform-providers/terraform-provider-aws/issues/3336)) +* resource/aws_acm_certificate_validation: Fix `validation_record_fqdns` handling with combined root and wildcard requests ([#3366](https://github.com/terraform-providers/terraform-provider-aws/issues/3366)) +* resource/aws_autoscaling_policy: `cooldown` with zero value not set correctly ([#2809](https://github.com/terraform-providers/terraform-provider-aws/issues/2809)) +* resource/aws_cloudtrail: Now respects initial `include_global_service_events = false` ([#2817](https://github.com/terraform-providers/terraform-provider-aws/issues/2817)) +* resource/aws_dynamodb_table: Retry deletion on ResourceInUseException ([#3355](https://github.com/terraform-providers/terraform-provider-aws/issues/3355)) +* resource/aws_dx_lag: `number_of_connections` deprecated (made Optional). Omitting field may now prevent spurious diffs. ([#3367](https://github.com/terraform-providers/terraform-provider-aws/issues/3367)) +* resource/aws_ecs_service: Retry DescribeServices after creation ([#3387](https://github.com/terraform-providers/terraform-provider-aws/issues/3387)) +* resource/aws_ecs_service: Fix reading `load_balancer` into state ([#3502](https://github.com/terraform-providers/terraform-provider-aws/issues/3502)) +* resource/aws_elasticsearch_domain: Retry creation on `ValidationException` ([#3375](https://github.com/terraform-providers/terraform-provider-aws/issues/3375)) +* resource/aws_iam_user_ssh_key: Correctly set status after creation ([#3390](https://github.com/terraform-providers/terraform-provider-aws/issues/3390)) +* resource/aws_instance: Bump deletion timeout to 20mins ([#3452](https://github.com/terraform-providers/terraform-provider-aws/issues/3452)) +* resource/aws_kinesis_firehose_delivery_stream: Retry on additional IAM eventual consistency errors ([#3381](https://github.com/terraform-providers/terraform-provider-aws/issues/3381)) +* resource/aws_route53_record: Trim trailing dot during import ([#3321](https://github.com/terraform-providers/terraform-provider-aws/issues/3321)) +* resource/aws_s3_bucket: Prevent crashes on location and replication read retry timeouts ([#3338](https://github.com/terraform-providers/terraform-provider-aws/issues/3338)) +* resource/aws_s3_bucket: Always set replication_configuration in state ([#3349](https://github.com/terraform-providers/terraform-provider-aws/issues/3349)) +* resource/aws_security_group: Allow empty rule description ([#2846](https://github.com/terraform-providers/terraform-provider-aws/issues/2846)) +* resource/aws_sns_topic: Fix exit after updating first attribute ([#3360](https://github.com/terraform-providers/terraform-provider-aws/issues/3360)) +* resource/aws_spot_instance_request: Bump delete timeout to 20mins ([#3435](https://github.com/terraform-providers/terraform-provider-aws/issues/3435)) +* resource/aws_sqs_queue: Skip SQS ListQueueTags in aws-us-gov partition ([#3376](https://github.com/terraform-providers/terraform-provider-aws/issues/3376)) +* resource/aws_vpc_endpoint: Treat pending as expected state during deletion ([#3370](https://github.com/terraform-providers/terraform-provider-aws/issues/3370)) +* resource/aws_vpc_peering_connection: Treat `pending-acceptance` as expected during deletion ([#3393](https://github.com/terraform-providers/terraform-provider-aws/issues/3393)) +* resource/aws_cognito_user_pool_client: support `USER_PASSWORD_AUTH` for explicit_auth_flows ([#3417](https://github.com/terraform-providers/terraform-provider-aws/issues/3417)) + ## 1.9.0 (February 09, 2018) NOTES: * data-source/aws_region: `current` field is deprecated and the data source defaults to the provider region if no endpoint or name is specified ([#3157](https://github.com/terraform-providers/terraform-provider-aws/issues/3157)) +* data-source/aws_iam_policy_document: Statements are now de-duplicated per `Sid`s ([#2890](https://github.com/terraform-providers/terraform-provider-aws/issues/2890)) FEATURES: diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/config.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/config.go index efd4b2300..fa00b95a3 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/config.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/config.go @@ -18,6 +18,7 @@ import ( "github.com/aws/aws-sdk-go/service/acm" "github.com/aws/aws-sdk-go/service/apigateway" "github.com/aws/aws-sdk-go/service/applicationautoscaling" + "github.com/aws/aws-sdk-go/service/appsync" "github.com/aws/aws-sdk-go/service/athena" "github.com/aws/aws-sdk-go/service/autoscaling" "github.com/aws/aws-sdk-go/service/batch" @@ -36,6 +37,7 @@ import ( "github.com/aws/aws-sdk-go/service/cognitoidentityprovider" "github.com/aws/aws-sdk-go/service/configservice" "github.com/aws/aws-sdk-go/service/databasemigrationservice" + "github.com/aws/aws-sdk-go/service/dax" "github.com/aws/aws-sdk-go/service/devicefarm" "github.com/aws/aws-sdk-go/service/directconnect" "github.com/aws/aws-sdk-go/service/directoryservice" @@ -148,6 +150,7 @@ type AWSClient struct { cognitoconn *cognitoidentity.CognitoIdentity cognitoidpconn *cognitoidentityprovider.CognitoIdentityProvider configconn *configservice.ConfigService + daxconn *dax.DAX devicefarmconn *devicefarm.DeviceFarm dmsconn *databasemigrationservice.DatabaseMigrationService dsconn *directoryservice.DirectoryService @@ -208,6 +211,7 @@ type AWSClient struct { athenaconn *athena.Athena dxconn *directconnect.DirectConnect mediastoreconn *mediastore.MediaStore + appsyncconn *appsync.AppSync } func (c *AWSClient) S3() *s3.S3 { @@ -413,8 +417,9 @@ func (c *Config) Client() (interface{}, error) { client.configconn = configservice.New(sess) client.cognitoconn = cognitoidentity.New(sess) client.cognitoidpconn = cognitoidentityprovider.New(sess) - client.dmsconn = databasemigrationservice.New(sess) client.codepipelineconn = codepipeline.New(sess) + client.daxconn = dax.New(awsDynamoSess) + client.dmsconn = databasemigrationservice.New(sess) client.dsconn = directoryservice.New(sess) client.dynamodbconn = dynamodb.New(awsDynamoSess) client.ecrconn = ecr.New(awsEcrSess) @@ -458,6 +463,7 @@ func (c *Config) Client() (interface{}, error) { client.athenaconn = athena.New(sess) client.dxconn = directconnect.New(sess) client.mediastoreconn = mediastore.New(sess) + client.appsyncconn = appsync.New(sess) // Workaround for https://github.com/aws/aws-sdk-go/issues/1376 client.kinesisconn.Handlers.Retry.PushBack(func(r *request.Request) { diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_elb_service_account.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_elb_service_account.go index 5d2da6747..795b41bd6 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_elb_service_account.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_elb_service_account.go @@ -23,7 +23,7 @@ var elbAccountIdPerRegionMap = map[string]string{ "sa-east-1": "507241528517", "us-east-1": "127311923021", "us-east-2": "033677994240", - "us-gov-west": "048591011584", + "us-gov-west-1": "048591011584", "us-west-1": "027434742980", "us-west-2": "797873946194", } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_inspector_rules_packages.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_inspector_rules_packages.go new file mode 100644 index 000000000..fb479bd5f --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_inspector_rules_packages.go @@ -0,0 +1,56 @@ +package aws + +import ( + "errors" + "fmt" + "log" + "sort" + "time" + + "github.com/aws/aws-sdk-go/service/inspector" + "github.com/hashicorp/terraform/helper/schema" +) + +func dataSourceAwsInspectorRulesPackages() *schema.Resource { + return &schema.Resource{ + Read: dataSourceAwsInspectorRulesPackagesRead, + + Schema: map[string]*schema.Schema{ + "arns": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{Type: schema.TypeString}, + }, + }, + } +} + +func dataSourceAwsInspectorRulesPackagesRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).inspectorconn + + log.Printf("[DEBUG] Reading Rules Packages.") + d.SetId(time.Now().UTC().String()) + + var arns []string + + input := &inspector.ListRulesPackagesInput{} + + err := conn.ListRulesPackagesPages(input, func(page *inspector.ListRulesPackagesOutput, lastPage bool) bool { + for _, arn := range page.RulesPackageArns { + arns = append(arns, *arn) + } + return !lastPage + }) + if err != nil { + return fmt.Errorf("Error fetching Rules Packages: %s", err) + } + + if len(arns) == 0 { + return errors.New("No rules packages found.") + } + + sort.Strings(arns) + d.Set("arns", arns) + + return nil +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_kms_alias.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_kms_alias.go index c3a437904..91dfacb7e 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_kms_alias.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/data_source_aws_kms_alias.go @@ -5,7 +5,7 @@ import ( "log" "time" - "github.com/aws/aws-sdk-go/aws/arn" + "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/kms" "github.com/hashicorp/errwrap" "github.com/hashicorp/terraform/helper/schema" @@ -64,25 +64,27 @@ func dataSourceAwsKmsAliasRead(d *schema.ResourceData, meta interface{}) error { d.SetId(time.Now().UTC().String()) d.Set("arn", alias.AliasArn) - // Some aliases do not return TargetKeyId (e.g. aliases for AWS services or - // aliases not associated with a Customer Managed Key (CMK)) + // ListAliases can return an alias for an AWS service key (e.g. + // alias/aws/rds) without a TargetKeyId if the alias has not yet been + // used for the first time. In that situation, calling DescribeKey will + // associate an actual key with the alias, and the next call to + // ListAliases will have a TargetKeyId for the alias. + // + // For a simpler codepath, we always call DescribeKey with the alias + // name to get the target key's ARN and Id direct from AWS. + // // https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html - if alias.TargetKeyId != nil { - aliasARN, err := arn.Parse(*alias.AliasArn) - if err != nil { - return err - } - targetKeyARN := arn.ARN{ - Partition: aliasARN.Partition, - Service: aliasARN.Service, - Region: aliasARN.Region, - AccountID: aliasARN.AccountID, - Resource: fmt.Sprintf("key/%s", *alias.TargetKeyId), - } - d.Set("target_key_arn", targetKeyARN.String()) - d.Set("target_key_id", alias.TargetKeyId) + req := &kms.DescribeKeyInput{ + KeyId: aws.String(target.(string)), } + resp, err := conn.DescribeKey(req) + if err != nil { + return errwrap.Wrapf("Error calling KMS DescribeKey: {{err}}", err) + } + + d.Set("target_key_arn", resp.KeyMetadata.Arn) + d.Set("target_key_id", resp.KeyMetadata.KeyId) return nil } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/provider.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/provider.go index fb31a0b0a..81bd9ffc8 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/provider.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/provider.go @@ -200,6 +200,7 @@ func Provider() terraform.ResourceProvider { "aws_iam_server_certificate": dataSourceAwsIAMServerCertificate(), "aws_iam_user": dataSourceAwsIAMUser(), "aws_internet_gateway": dataSourceAwsInternetGateway(), + "aws_inspector_rules_packages": dataSourceAwsInspectorRulesPackages(), "aws_instance": dataSourceAwsInstance(), "aws_instances": dataSourceAwsInstances(), "aws_ip_ranges": dataSourceAwsIPRanges(), @@ -267,10 +268,12 @@ func Provider() terraform.ResourceProvider { "aws_api_gateway_stage": resourceAwsApiGatewayStage(), "aws_api_gateway_usage_plan": resourceAwsApiGatewayUsagePlan(), "aws_api_gateway_usage_plan_key": resourceAwsApiGatewayUsagePlanKey(), + "aws_api_gateway_vpc_link": resourceAwsApiGatewayVpcLink(), "aws_app_cookie_stickiness_policy": resourceAwsAppCookieStickinessPolicy(), "aws_appautoscaling_target": resourceAwsAppautoscalingTarget(), "aws_appautoscaling_policy": resourceAwsAppautoscalingPolicy(), "aws_appautoscaling_scheduled_action": resourceAwsAppautoscalingScheduledAction(), + "aws_appsync_graphql_api": resourceAwsAppsyncGraphqlApi(), "aws_athena_database": resourceAwsAthenaDatabase(), "aws_athena_named_query": resourceAwsAthenaNamedQuery(), "aws_autoscaling_attachment": resourceAwsAutoscalingAttachment(), @@ -314,6 +317,7 @@ func Provider() terraform.ResourceProvider { "aws_codebuild_project": resourceAwsCodeBuildProject(), "aws_codepipeline": resourceAwsCodePipeline(), "aws_customer_gateway": resourceAwsCustomerGateway(), + "aws_dax_cluster": resourceAwsDaxCluster(), "aws_db_event_subscription": resourceAwsDbEventSubscription(), "aws_db_instance": resourceAwsDbInstance(), "aws_db_option_group": resourceAwsDbOptionGroup(), @@ -366,7 +370,9 @@ func Provider() terraform.ResourceProvider { "aws_emr_instance_group": resourceAwsEMRInstanceGroup(), "aws_emr_security_configuration": resourceAwsEMRSecurityConfiguration(), "aws_flow_log": resourceAwsFlowLog(), + "aws_gamelift_alias": resourceAwsGameliftAlias(), "aws_gamelift_build": resourceAwsGameliftBuild(), + "aws_gamelift_fleet": resourceAwsGameliftFleet(), "aws_glacier_vault": resourceAwsGlacierVault(), "aws_glue_catalog_database": resourceAwsGlueCatalogDatabase(), "aws_guardduty_detector": resourceAwsGuardDutyDetector(), @@ -401,6 +407,7 @@ func Provider() terraform.ResourceProvider { "aws_internet_gateway": resourceAwsInternetGateway(), "aws_iot_certificate": resourceAwsIotCertificate(), "aws_iot_policy": resourceAwsIotPolicy(), + "aws_iot_thing_type": resourceAwsIotThingType(), "aws_iot_topic_rule": resourceAwsIotTopicRule(), "aws_key_pair": resourceAwsKeyPair(), "aws_kinesis_firehose_delivery_stream": resourceAwsKinesisFirehoseDeliveryStream(), @@ -470,6 +477,7 @@ func Provider() terraform.ResourceProvider { "aws_ses_active_receipt_rule_set": resourceAwsSesActiveReceiptRuleSet(), "aws_ses_domain_identity": resourceAwsSesDomainIdentity(), "aws_ses_domain_dkim": resourceAwsSesDomainDkim(), + "aws_ses_domain_mail_from": resourceAwsSesDomainMailFrom(), "aws_ses_receipt_filter": resourceAwsSesReceiptFilter(), "aws_ses_receipt_rule": resourceAwsSesReceiptRule(), "aws_ses_receipt_rule_set": resourceAwsSesReceiptRuleSet(), @@ -480,6 +488,7 @@ func Provider() terraform.ResourceProvider { "aws_s3_bucket_policy": resourceAwsS3BucketPolicy(), "aws_s3_bucket_object": resourceAwsS3BucketObject(), "aws_s3_bucket_notification": resourceAwsS3BucketNotification(), + "aws_s3_bucket_metric": resourceAwsS3BucketMetric(), "aws_security_group": resourceAwsSecurityGroup(), "aws_network_interface_sg_attachment": resourceAwsNetworkInterfaceSGAttachment(), "aws_default_security_group": resourceAwsDefaultSecurityGroup(), @@ -554,6 +563,8 @@ func Provider() terraform.ResourceProvider { "aws_lb": resourceAwsLb(), "aws_alb_listener": resourceAwsLbListener(), "aws_lb_listener": resourceAwsLbListener(), + "aws_alb_listener_certificate": resourceAwsLbListenerCertificate(), + "aws_lb_listener_certificate": resourceAwsLbListenerCertificate(), "aws_alb_listener_rule": resourceAwsLbbListenerRule(), "aws_lb_listener_rule": resourceAwsLbbListenerRule(), "aws_alb_target_group": resourceAwsLbTargetGroup(), diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_acm_certificate_validation.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_acm_certificate_validation.go index f71367d61..024b26897 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_acm_certificate_validation.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_acm_certificate_validation.go @@ -3,13 +3,12 @@ package aws import ( "fmt" "log" - "reflect" - "sort" "strings" "time" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/acm" + multierror "github.com/hashicorp/go-multierror" "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/helper/schema" ) @@ -59,7 +58,7 @@ func resourceAwsAcmCertificateValidationCreate(d *schema.ResourceData, meta inte } if validation_record_fqdns, ok := d.GetOk("validation_record_fqdns"); ok { - err := resourceAwsAcmCertificateCheckValidationRecords(validation_record_fqdns.(*schema.Set).List(), resp.Certificate) + err := resourceAwsAcmCertificateCheckValidationRecords(validation_record_fqdns.(*schema.Set).List(), resp.Certificate, acmconn) if err != nil { return err } @@ -83,28 +82,52 @@ func resourceAwsAcmCertificateValidationCreate(d *schema.ResourceData, meta inte }) } -func resourceAwsAcmCertificateCheckValidationRecords(validation_record_fqdns []interface{}, cert *acm.CertificateDetail) error { - expected_fqdns := make([]string, len(cert.DomainValidationOptions)) - for i, v := range cert.DomainValidationOptions { - if *v.ValidationMethod == acm.ValidationMethodDns { - expected_fqdns[i] = strings.TrimSuffix(*v.ResourceRecord.Name, ".") +func resourceAwsAcmCertificateCheckValidationRecords(validationRecordFqdns []interface{}, cert *acm.CertificateDetail, conn *acm.ACM) error { + expectedFqdns := make(map[string]*acm.DomainValidation) + + if len(cert.DomainValidationOptions) == 0 { + input := &acm.DescribeCertificateInput{ + CertificateArn: cert.CertificateArn, + } + err := resource.Retry(1*time.Minute, func() *resource.RetryError { + log.Printf("[DEBUG] Certificate domain validation options empty for %q, retrying", cert.CertificateArn) + output, err := conn.DescribeCertificate(input) + if err != nil { + return resource.NonRetryableError(err) + } + if len(output.Certificate.DomainValidationOptions) == 0 { + return resource.RetryableError(fmt.Errorf("Certificate domain validation options empty for %s", *cert.CertificateArn)) + } + cert = output.Certificate + return nil + }) + if err != nil { + return err + } + } + for _, v := range cert.DomainValidationOptions { + if v.ValidationMethod != nil { + if *v.ValidationMethod != acm.ValidationMethodDns { + return fmt.Errorf("validation_record_fqdns is only valid for DNS validation") + } + newExpectedFqdn := strings.TrimSuffix(*v.ResourceRecord.Name, ".") + expectedFqdns[newExpectedFqdn] = v + } else if len(v.ValidationEmails) > 0 { + // ACM API sometimes is not sending ValidationMethod for EMAIL validation + return fmt.Errorf("validation_record_fqdns is only valid for DNS validation") } } - actual_validation_record_fqdns := make([]string, 0, len(validation_record_fqdns)) - - for _, v := range validation_record_fqdns { - val := v.(string) - actual_validation_record_fqdns = append(actual_validation_record_fqdns, strings.TrimSuffix(val, ".")) + for _, v := range validationRecordFqdns { + delete(expectedFqdns, strings.TrimSuffix(v.(string), ".")) } - sort.Strings(expected_fqdns) - sort.Strings(actual_validation_record_fqdns) - - log.Printf("[DEBUG] Checking validation_record_fqdns. Expected: %v, Actual: %v", expected_fqdns, actual_validation_record_fqdns) - - if !reflect.DeepEqual(expected_fqdns, actual_validation_record_fqdns) { - return fmt.Errorf("Certificate needs %v to be set but only %v was passed to validation_record_fqdns", expected_fqdns, actual_validation_record_fqdns) + if len(expectedFqdns) > 0 { + var errors error + for expectedFqdn, domainValidation := range expectedFqdns { + errors = multierror.Append(errors, fmt.Errorf("missing %s DNS validation record: %s", *domainValidation.DomainName, expectedFqdn)) + } + return errors } return nil diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_api_gateway_vpc_link.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_api_gateway_vpc_link.go new file mode 100644 index 000000000..8911e5dcb --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_api_gateway_vpc_link.go @@ -0,0 +1,205 @@ +package aws + +import ( + "fmt" + "log" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/apigateway" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAwsApiGatewayVpcLink() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsApiGatewayVpcLinkCreate, + Read: resourceAwsApiGatewayVpcLinkRead, + Update: resourceAwsApiGatewayVpcLinkUpdate, + Delete: resourceAwsApiGatewayVpcLinkDelete, + + Schema: map[string]*schema.Schema{ + "name": { + Type: schema.TypeString, + Required: true, + }, + "description": { + Type: schema.TypeString, + Optional: true, + }, + "target_arns": { + Type: schema.TypeSet, + MaxItems: 1, + Required: true, + ForceNew: true, + Elem: &schema.Schema{Type: schema.TypeString}, + }, + }, + } +} + +func resourceAwsApiGatewayVpcLinkCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).apigateway + + input := &apigateway.CreateVpcLinkInput{ + Name: aws.String(d.Get("name").(string)), + TargetArns: expandStringList(d.Get("target_arns").(*schema.Set).List()), + } + if v, ok := d.GetOk("description"); ok { + input.Description = aws.String(v.(string)) + } + + resp, err := conn.CreateVpcLink(input) + if err != nil { + return err + } + + d.SetId(*resp.Id) + + stateConf := &resource.StateChangeConf{ + Pending: []string{apigateway.VpcLinkStatusPending}, + Target: []string{apigateway.VpcLinkStatusAvailable}, + Refresh: apigatewayVpcLinkRefreshStatusFunc(conn, *resp.Id), + Timeout: 8 * time.Minute, + MinTimeout: 3 * time.Second, + } + + _, err = stateConf.WaitForState() + if err != nil { + d.SetId("") + return fmt.Errorf("[WARN] Error waiting for APIGateway Vpc Link status to be \"%s\": %s", apigateway.VpcLinkStatusAvailable, err) + } + + return nil +} + +func resourceAwsApiGatewayVpcLinkRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).apigateway + + input := &apigateway.GetVpcLinkInput{ + VpcLinkId: aws.String(d.Id()), + } + + resp, err := conn.GetVpcLink(input) + if err != nil { + if isAWSErr(err, apigateway.ErrCodeNotFoundException, "") { + log.Printf("[WARN] VPC Link %s not found, removing from state", d.Id()) + d.SetId("") + return nil + } + return err + } + + d.Set("name", resp.Name) + d.Set("description", resp.Description) + d.Set("target_arn", flattenStringList(resp.TargetArns)) + return nil +} + +func resourceAwsApiGatewayVpcLinkUpdate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).apigateway + + operations := make([]*apigateway.PatchOperation, 0) + + if d.HasChange("name") { + operations = append(operations, &apigateway.PatchOperation{ + Op: aws.String("replace"), + Path: aws.String("/name"), + Value: aws.String(d.Get("name").(string)), + }) + } + + if d.HasChange("description") { + operations = append(operations, &apigateway.PatchOperation{ + Op: aws.String("replace"), + Path: aws.String("/description"), + Value: aws.String(d.Get("description").(string)), + }) + } + + input := &apigateway.UpdateVpcLinkInput{ + VpcLinkId: aws.String(d.Id()), + PatchOperations: operations, + } + + _, err := conn.UpdateVpcLink(input) + if err != nil { + if isAWSErr(err, apigateway.ErrCodeNotFoundException, "") { + log.Printf("[WARN] VPC Link %s not found, removing from state", d.Id()) + d.SetId("") + return nil + } + return err + } + + stateConf := &resource.StateChangeConf{ + Pending: []string{apigateway.VpcLinkStatusPending}, + Target: []string{apigateway.VpcLinkStatusAvailable}, + Refresh: apigatewayVpcLinkRefreshStatusFunc(conn, d.Id()), + Timeout: 8 * time.Minute, + MinTimeout: 3 * time.Second, + } + + _, err = stateConf.WaitForState() + if err != nil { + return fmt.Errorf("[WARN] Error waiting for APIGateway Vpc Link status to be \"%s\": %s", apigateway.VpcLinkStatusAvailable, err) + } + + return nil +} + +func resourceAwsApiGatewayVpcLinkDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).apigateway + + input := &apigateway.DeleteVpcLinkInput{ + VpcLinkId: aws.String(d.Id()), + } + + _, err := conn.DeleteVpcLink(input) + if err != nil { + if isAWSErr(err, apigateway.ErrCodeNotFoundException, "") { + return nil + } + return err + } + + stateConf := resource.StateChangeConf{ + Pending: []string{apigateway.VpcLinkStatusPending, + apigateway.VpcLinkStatusAvailable, + apigateway.VpcLinkStatusDeleting}, + Target: []string{""}, + Timeout: 5 * time.Minute, + MinTimeout: 1 * time.Second, + Refresh: func() (interface{}, string, error) { + resp, err := conn.GetVpcLink(&apigateway.GetVpcLinkInput{ + VpcLinkId: aws.String(d.Id()), + }) + if err != nil { + if isAWSErr(err, apigateway.ErrCodeNotFoundException, "") { + return 1, "", nil + } + return nil, "failed", err + } + return resp, *resp.Status, nil + }, + } + + if _, err := stateConf.WaitForState(); err != nil { + return err + } + + return nil +} + +func apigatewayVpcLinkRefreshStatusFunc(conn *apigateway.APIGateway, vl string) resource.StateRefreshFunc { + return func() (interface{}, string, error) { + input := &apigateway.GetVpcLinkInput{ + VpcLinkId: aws.String(vl), + } + resp, err := conn.GetVpcLink(input) + if err != nil { + return nil, "failed", err + } + return resp, *resp.Status, nil + } +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_appsync_graphql_api.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_appsync_graphql_api.go new file mode 100644 index 000000000..0031c65b6 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_appsync_graphql_api.go @@ -0,0 +1,195 @@ +package aws + +import ( + "fmt" + "log" + "regexp" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/appsync" + "github.com/hashicorp/terraform/helper/schema" + "github.com/hashicorp/terraform/helper/validation" +) + +func resourceAwsAppsyncGraphqlApi() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsAppsyncGraphqlApiCreate, + Read: resourceAwsAppsyncGraphqlApiRead, + Update: resourceAwsAppsyncGraphqlApiUpdate, + Delete: resourceAwsAppsyncGraphqlApiDelete, + + Schema: map[string]*schema.Schema{ + "authentication_type": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validation.StringInSlice([]string{ + appsync.AuthenticationTypeApiKey, + appsync.AuthenticationTypeAwsIam, + appsync.AuthenticationTypeAmazonCognitoUserPools, + }, false), + }, + "name": { + Type: schema.TypeString, + Required: true, + ValidateFunc: func(v interface{}, k string) (ws []string, errors []error) { + value := v.(string) + if !regexp.MustCompile(`[_A-Za-z][_0-9A-Za-z]*`).MatchString(value) { + errors = append(errors, fmt.Errorf("%q must match [_A-Za-z][_0-9A-Za-z]*", k)) + } + return + }, + }, + "user_pool_config": { + Type: schema.TypeList, + Optional: true, + MaxItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "app_id_client_regex": { + Type: schema.TypeString, + Optional: true, + }, + "aws_region": { + Type: schema.TypeString, + Required: true, + }, + "default_action": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validation.StringInSlice([]string{ + appsync.DefaultActionAllow, + appsync.DefaultActionDeny, + }, false), + }, + "user_pool_id": { + Type: schema.TypeString, + Required: true, + }, + }, + }, + }, + "arn": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func resourceAwsAppsyncGraphqlApiCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).appsyncconn + + input := &appsync.CreateGraphqlApiInput{ + AuthenticationType: aws.String(d.Get("authentication_type").(string)), + Name: aws.String(d.Get("name").(string)), + } + + if v, ok := d.GetOk("user_pool_config"); ok { + input.UserPoolConfig = expandAppsyncGraphqlApiUserPoolConfig(v.([]interface{})) + } + + resp, err := conn.CreateGraphqlApi(input) + if err != nil { + return err + } + + d.SetId(*resp.GraphqlApi.ApiId) + d.Set("arn", resp.GraphqlApi.Arn) + return nil +} + +func resourceAwsAppsyncGraphqlApiRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).appsyncconn + + input := &appsync.GetGraphqlApiInput{ + ApiId: aws.String(d.Id()), + } + + resp, err := conn.GetGraphqlApi(input) + if err != nil { + if isAWSErr(err, appsync.ErrCodeNotFoundException, "") { + log.Printf("[WARN] No such entity found for Appsync Graphql API (%s)", d.Id()) + d.SetId("") + return nil + } + return err + } + + d.Set("authentication_type", resp.GraphqlApi.AuthenticationType) + d.Set("name", resp.GraphqlApi.Name) + d.Set("user_pool_config", flattenAppsyncGraphqlApiUserPoolConfig(resp.GraphqlApi.UserPoolConfig)) + d.Set("arn", resp.GraphqlApi.Arn) + return nil +} + +func resourceAwsAppsyncGraphqlApiUpdate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).appsyncconn + + input := &appsync.UpdateGraphqlApiInput{ + ApiId: aws.String(d.Id()), + Name: aws.String(d.Get("name").(string)), + } + + if d.HasChange("authentication_type") { + input.AuthenticationType = aws.String(d.Get("authentication_type").(string)) + } + if d.HasChange("user_pool_config") { + input.UserPoolConfig = expandAppsyncGraphqlApiUserPoolConfig(d.Get("user_pool_config").([]interface{})) + } + + _, err := conn.UpdateGraphqlApi(input) + if err != nil { + return err + } + + return resourceAwsAppsyncGraphqlApiRead(d, meta) +} + +func resourceAwsAppsyncGraphqlApiDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).appsyncconn + + input := &appsync.DeleteGraphqlApiInput{ + ApiId: aws.String(d.Id()), + } + _, err := conn.DeleteGraphqlApi(input) + if err != nil { + if isAWSErr(err, appsync.ErrCodeNotFoundException, "") { + return nil + } + return err + } + + return nil +} + +func expandAppsyncGraphqlApiUserPoolConfig(config []interface{}) *appsync.UserPoolConfig { + if len(config) < 1 { + return nil + } + cg := config[0].(map[string]interface{}) + upc := &appsync.UserPoolConfig{ + AwsRegion: aws.String(cg["aws_region"].(string)), + DefaultAction: aws.String(cg["default_action"].(string)), + UserPoolId: aws.String(cg["user_pool_id"].(string)), + } + if v, ok := cg["app_id_client_regex"].(string); ok && v != "" { + upc.AppIdClientRegex = aws.String(v) + } + return upc +} + +func flattenAppsyncGraphqlApiUserPoolConfig(upc *appsync.UserPoolConfig) []interface{} { + if upc == nil { + return []interface{}{} + } + m := make(map[string]interface{}, 1) + + m["aws_region"] = *upc.AwsRegion + m["default_action"] = *upc.DefaultAction + m["user_pool_id"] = *upc.UserPoolId + if upc.AppIdClientRegex != nil { + m["app_id_client_regex"] = *upc.AppIdClientRegex + } + + return []interface{}{m} +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_autoscaling_policy.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_autoscaling_policy.go index 9ebf33b69..303c863b1 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_autoscaling_policy.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_autoscaling_policy.go @@ -10,6 +10,7 @@ import ( "github.com/aws/aws-sdk-go/service/autoscaling" "github.com/hashicorp/terraform/helper/hashcode" "github.com/hashicorp/terraform/helper/schema" + "github.com/hashicorp/terraform/helper/validation" ) func resourceAwsAutoscalingPolicy() *schema.Resource { @@ -31,7 +32,7 @@ func resourceAwsAutoscalingPolicy() *schema.Resource { }, "adjustment_type": &schema.Schema{ Type: schema.TypeString, - Required: true, + Optional: true, }, "autoscaling_group_name": &schema.Schema{ Type: schema.TypeString, @@ -57,8 +58,9 @@ func resourceAwsAutoscalingPolicy() *schema.Resource { Computed: true, }, "min_adjustment_magnitude": &schema.Schema{ - Type: schema.TypeInt, - Optional: true, + Type: schema.TypeInt, + Optional: true, + ValidateFunc: validation.IntAtLeast(1), }, "min_adjustment_step": &schema.Schema{ Type: schema.TypeInt, @@ -93,6 +95,84 @@ func resourceAwsAutoscalingPolicy() *schema.Resource { }, Set: resourceAwsAutoscalingScalingAdjustmentHash, }, + "target_tracking_configuration": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + MaxItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "predefined_metric_specification": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + MaxItems: 1, + ConflictsWith: []string{"target_tracking_configuration.0.customized_metric_specification"}, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "predefined_metric_type": &schema.Schema{ + Type: schema.TypeString, + Required: true, + }, + "resource_label": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + }, + }, + }, + }, + "customized_metric_specification": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + MaxItems: 1, + ConflictsWith: []string{"target_tracking_configuration.0.predefined_metric_specification"}, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "metric_dimension": &schema.Schema{ + Type: schema.TypeList, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "name": &schema.Schema{ + Type: schema.TypeString, + Required: true, + }, + "value": &schema.Schema{ + Type: schema.TypeString, + Required: true, + }, + }, + }, + }, + "metric_name": &schema.Schema{ + Type: schema.TypeString, + Required: true, + }, + "namespace": &schema.Schema{ + Type: schema.TypeString, + Required: true, + }, + "statistic": &schema.Schema{ + Type: schema.TypeString, + Required: true, + }, + "unit": &schema.Schema{ + Type: schema.TypeString, + Optional: true, + }, + }, + }, + }, + "target_value": &schema.Schema{ + Type: schema.TypeFloat, + Required: true, + }, + "disable_scale_in": &schema.Schema{ + Type: schema.TypeBool, + Optional: true, + Default: false, + }, + }, + }, + }, }, } } @@ -147,6 +227,7 @@ func resourceAwsAutoscalingPolicyRead(d *schema.ResourceData, meta interface{}) d.Set("name", p.PolicyName) d.Set("scaling_adjustment", p.ScalingAdjustment) d.Set("step_adjustment", flattenStepAdjustments(p.StepAdjustments)) + d.Set("target_tracking_configuration", flattenTargetTrackingConfiguration(p.TargetTrackingConfiguration)) return nil } @@ -204,11 +285,11 @@ func getAwsAutoscalingPutScalingPolicyInput(d *schema.ResourceData) (autoscaling params.AdjustmentType = aws.String(v.(string)) } - if v, ok := d.GetOk("cooldown"); ok { + if v, ok := d.GetOkExists("cooldown"); ok { params.Cooldown = aws.Int64(int64(v.(int))) } - if v, ok := d.GetOk("estimated_instance_warmup"); ok { + if v, ok := d.GetOkExists("estimated_instance_warmup"); ok { params.EstimatedInstanceWarmup = aws.Int64(int64(v.(int))) } @@ -221,7 +302,7 @@ func getAwsAutoscalingPutScalingPolicyInput(d *schema.ResourceData) (autoscaling } //if policy_type=="SimpleScaling" then scaling_adjustment is required and 0 is allowed - if v, ok := d.GetOk("scaling_adjustment"); ok || *params.PolicyType == "SimpleScaling" { + if v, ok := d.GetOkExists("scaling_adjustment"); ok || *params.PolicyType == "SimpleScaling" { params.ScalingAdjustment = aws.Int64(int64(v.(int))) } @@ -233,14 +314,18 @@ func getAwsAutoscalingPutScalingPolicyInput(d *schema.ResourceData) (autoscaling params.StepAdjustments = steps } - if v, ok := d.GetOk("min_adjustment_magnitude"); ok { + if v, ok := d.GetOkExists("min_adjustment_magnitude"); ok { // params.MinAdjustmentMagnitude = aws.Int64(int64(d.Get("min_adjustment_magnitude").(int))) params.MinAdjustmentMagnitude = aws.Int64(int64(v.(int))) - } else if v, ok := d.GetOk("min_adjustment_step"); ok { + } else if v, ok := d.GetOkExists("min_adjustment_step"); ok { // params.MinAdjustmentStep = aws.Int64(int64(d.Get("min_adjustment_step").(int))) params.MinAdjustmentStep = aws.Int64(int64(v.(int))) } + if v, ok := d.GetOk("target_tracking_configuration"); ok { + params.TargetTrackingConfiguration = expandTargetTrackingConfiguration(v.([]interface{})) + } + // Validate our final input to confirm it won't error when sent to AWS. // First, SimpleScaling policy types... if *params.PolicyType == "SimpleScaling" && params.StepAdjustments != nil { @@ -252,6 +337,9 @@ func getAwsAutoscalingPutScalingPolicyInput(d *schema.ResourceData) (autoscaling if *params.PolicyType == "SimpleScaling" && params.EstimatedInstanceWarmup != nil { return params, fmt.Errorf("SimpleScaling policy types cannot use estimated_instance_warmup!") } + if *params.PolicyType == "SimpleScaling" && params.TargetTrackingConfiguration != nil { + return params, fmt.Errorf("SimpleScaling policy types cannot use target_tracking_configuration!") + } // Second, StepScaling policy types... if *params.PolicyType == "StepScaling" && params.ScalingAdjustment != nil { @@ -260,6 +348,29 @@ func getAwsAutoscalingPutScalingPolicyInput(d *schema.ResourceData) (autoscaling if *params.PolicyType == "StepScaling" && params.Cooldown != nil { return params, fmt.Errorf("StepScaling policy types cannot use cooldown!") } + if *params.PolicyType == "StepScaling" && params.TargetTrackingConfiguration != nil { + return params, fmt.Errorf("StepScaling policy types cannot use target_tracking_configuration!") + } + + // Third, TargetTrackingScaling policy types... + if *params.PolicyType == "TargetTrackingScaling" && params.AdjustmentType != nil { + return params, fmt.Errorf("TargetTrackingScaling policy types cannot use adjustment_type!") + } + if *params.PolicyType == "TargetTrackingScaling" && params.Cooldown != nil { + return params, fmt.Errorf("TargetTrackingScaling policy types cannot use cooldown!") + } + if *params.PolicyType == "TargetTrackingScaling" && params.MetricAggregationType != nil { + return params, fmt.Errorf("TargetTrackingScaling policy types cannot use metric_aggregation_type!") + } + if *params.PolicyType == "TargetTrackingScaling" && params.MinAdjustmentMagnitude != nil { + return params, fmt.Errorf("TargetTrackingScaling policy types cannot use min_adjustment_magnitude!") + } + if *params.PolicyType == "TargetTrackingScaling" && params.ScalingAdjustment != nil { + return params, fmt.Errorf("TargetTrackingScaling policy types cannot use scaling_adjustment!") + } + if *params.PolicyType == "TargetTrackingScaling" && params.StepAdjustments != nil { + return params, fmt.Errorf("TargetTrackingScaling policy types cannot use step_adjustments!") + } return params, nil } @@ -310,3 +421,94 @@ func resourceAwsAutoscalingScalingAdjustmentHash(v interface{}) int { return hashcode.String(buf.String()) } + +func expandTargetTrackingConfiguration(configs []interface{}) *autoscaling.TargetTrackingConfiguration { + if len(configs) < 1 { + return nil + } + + config := configs[0].(map[string]interface{}) + + result := &autoscaling.TargetTrackingConfiguration{} + + result.TargetValue = aws.Float64(config["target_value"].(float64)) + if v, ok := config["disable_scale_in"]; ok { + result.DisableScaleIn = aws.Bool(v.(bool)) + } + if v, ok := config["predefined_metric_specification"]; ok && len(v.([]interface{})) > 0 { + spec := v.([]interface{})[0].(map[string]interface{}) + predSpec := &autoscaling.PredefinedMetricSpecification{ + PredefinedMetricType: aws.String(spec["predefined_metric_type"].(string)), + } + if val, ok := spec["resource_label"]; ok && val.(string) != "" { + predSpec.ResourceLabel = aws.String(val.(string)) + } + result.PredefinedMetricSpecification = predSpec + } + if v, ok := config["customized_metric_specification"]; ok && len(v.([]interface{})) > 0 { + spec := v.([]interface{})[0].(map[string]interface{}) + customSpec := &autoscaling.CustomizedMetricSpecification{ + Namespace: aws.String(spec["namespace"].(string)), + MetricName: aws.String(spec["metric_name"].(string)), + Statistic: aws.String(spec["statistic"].(string)), + } + if val, ok := spec["unit"]; ok { + customSpec.Unit = aws.String(val.(string)) + } + if val, ok := spec["metric_dimension"]; ok { + dims := val.([]interface{}) + metDimList := make([]*autoscaling.MetricDimension, len(dims)) + for i := range metDimList { + dim := dims[i].(map[string]interface{}) + md := &autoscaling.MetricDimension{ + Name: aws.String(dim["name"].(string)), + Value: aws.String(dim["value"].(string)), + } + metDimList[i] = md + } + customSpec.Dimensions = metDimList + } + result.CustomizedMetricSpecification = customSpec + } + return result +} + +func flattenTargetTrackingConfiguration(config *autoscaling.TargetTrackingConfiguration) []interface{} { + if config == nil { + return []interface{}{} + } + + result := map[string]interface{}{} + result["disable_scale_in"] = *config.DisableScaleIn + result["target_value"] = *config.TargetValue + if config.PredefinedMetricSpecification != nil { + spec := map[string]interface{}{} + spec["predefined_metric_type"] = *config.PredefinedMetricSpecification.PredefinedMetricType + if config.PredefinedMetricSpecification.ResourceLabel != nil { + spec["resource_label"] = *config.PredefinedMetricSpecification.ResourceLabel + } + result["predefined_metric_specification"] = []map[string]interface{}{spec} + } + if config.CustomizedMetricSpecification != nil { + spec := map[string]interface{}{} + spec["metric_name"] = *config.CustomizedMetricSpecification.MetricName + spec["namespace"] = *config.CustomizedMetricSpecification.Namespace + spec["statistic"] = *config.CustomizedMetricSpecification.Statistic + if config.CustomizedMetricSpecification.Unit != nil { + spec["unit"] = *config.CustomizedMetricSpecification.Unit + } + if config.CustomizedMetricSpecification.Dimensions != nil { + dimSpec := make([]interface{}, len(config.CustomizedMetricSpecification.Dimensions)) + for i := range dimSpec { + dim := map[string]interface{}{} + rawDim := config.CustomizedMetricSpecification.Dimensions[i] + dim["name"] = *rawDim.Name + dim["value"] = *rawDim.Value + dimSpec[i] = dim + } + spec["metric_dimension"] = dimSpec + } + result["customized_metric_specification"] = []map[string]interface{}{spec} + } + return []interface{}{result} +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_cloudtrail.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_cloudtrail.go index 5e347b8d1..ded9e0be9 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_cloudtrail.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_cloudtrail.go @@ -9,6 +9,7 @@ import ( "github.com/aws/aws-sdk-go/service/cloudtrail" "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/helper/schema" + "github.com/hashicorp/terraform/helper/validation" ) func resourceAwsCloudTrail() *schema.Resource { @@ -72,6 +73,51 @@ func resourceAwsCloudTrail() *schema.Resource { Optional: true, ValidateFunc: validateArn, }, + "event_selector": { + Type: schema.TypeList, + Optional: true, + MaxItems: 5, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "read_write_type": { + Type: schema.TypeString, + Optional: true, + Default: cloudtrail.ReadWriteTypeAll, + ValidateFunc: validation.StringInSlice([]string{ + cloudtrail.ReadWriteTypeAll, + cloudtrail.ReadWriteTypeReadOnly, + cloudtrail.ReadWriteTypeWriteOnly, + }, false), + }, + + "include_management_events": { + Type: schema.TypeBool, + Optional: true, + Default: true, + }, + + "data_resource": { + Type: schema.TypeList, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "type": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validation.StringInSlice([]string{"AWS::S3::Object", "AWS::Lambda::Function"}, false), + }, + "values": { + Type: schema.TypeList, + Required: true, + MaxItems: 250, + Elem: &schema.Schema{Type: schema.TypeString}, + }, + }, + }, + }, + }, + }, + }, "home_region": { Type: schema.TypeString, Computed: true, @@ -99,7 +145,7 @@ func resourceAwsCloudTrailCreate(d *schema.ResourceData, meta interface{}) error if v, ok := d.GetOk("cloud_watch_logs_role_arn"); ok { input.CloudWatchLogsRoleArn = aws.String(v.(string)) } - if v, ok := d.GetOk("include_global_service_events"); ok { + if v, ok := d.GetOkExists("include_global_service_events"); ok { input.IncludeGlobalServiceEvents = aws.Bool(v.(bool)) } if v, ok := d.GetOk("is_multi_region_trail"); ok { @@ -150,6 +196,13 @@ func resourceAwsCloudTrailCreate(d *schema.ResourceData, meta interface{}) error } } + // Event Selectors + if _, ok := d.GetOk("event_selector"); ok { + if err := cloudTrailSetEventSelectors(conn, d); err != nil { + return err + } + } + return resourceAwsCloudTrailUpdate(d, meta) } @@ -227,6 +280,18 @@ func resourceAwsCloudTrailRead(d *schema.ResourceData, meta interface{}) error { } d.Set("enable_logging", logstatus) + // Get EventSelectors + eventSelectorsOut, err := conn.GetEventSelectors(&cloudtrail.GetEventSelectorsInput{ + TrailName: aws.String(d.Id()), + }) + if err != nil { + return err + } + + if err := d.Set("event_selector", flattenAwsCloudTrailEventSelector(eventSelectorsOut.EventSelectors)); err != nil { + return err + } + return nil } @@ -300,6 +365,13 @@ func resourceAwsCloudTrailUpdate(d *schema.ResourceData, meta interface{}) error } } + if !d.IsNewResource() && d.HasChange("event_selector") { + log.Printf("[DEBUG] Updating event selector on CloudTrail: %s", input) + if err := cloudTrailSetEventSelectors(conn, d); err != nil { + return err + } + } + log.Printf("[DEBUG] CloudTrail updated: %s", t) return resourceAwsCloudTrailRead(d, meta) @@ -357,3 +429,98 @@ func cloudTrailSetLogging(conn *cloudtrail.CloudTrail, enabled bool, id string) return nil } + +func cloudTrailSetEventSelectors(conn *cloudtrail.CloudTrail, d *schema.ResourceData) error { + input := &cloudtrail.PutEventSelectorsInput{ + TrailName: aws.String(d.Id()), + } + + eventSelectors := expandAwsCloudTrailEventSelector(d.Get("event_selector").([]interface{})) + input.EventSelectors = eventSelectors + + if err := input.Validate(); err != nil { + return fmt.Errorf("Error validate CloudTrail (%s): %s", d.Id(), err) + } + + _, err := conn.PutEventSelectors(input) + if err != nil { + return fmt.Errorf("Error set event selector on CloudTrail (%s): %s", d.Id(), err) + } + + return nil +} + +func expandAwsCloudTrailEventSelector(configured []interface{}) []*cloudtrail.EventSelector { + eventSelectors := make([]*cloudtrail.EventSelector, 0, len(configured)) + + for _, raw := range configured { + data := raw.(map[string]interface{}) + dataResources := expandAwsCloudTrailEventSelectorDataResource(data["data_resource"].([]interface{})) + + es := &cloudtrail.EventSelector{ + IncludeManagementEvents: aws.Bool(data["include_management_events"].(bool)), + ReadWriteType: aws.String(data["read_write_type"].(string)), + DataResources: dataResources, + } + eventSelectors = append(eventSelectors, es) + } + + return eventSelectors +} + +func expandAwsCloudTrailEventSelectorDataResource(configured []interface{}) []*cloudtrail.DataResource { + dataResources := make([]*cloudtrail.DataResource, 0, len(configured)) + + for _, raw := range configured { + data := raw.(map[string]interface{}) + + values := make([]*string, len(data["values"].([]interface{}))) + for i, vv := range data["values"].([]interface{}) { + str := vv.(string) + values[i] = aws.String(str) + } + + dataResource := &cloudtrail.DataResource{ + Type: aws.String(data["type"].(string)), + Values: values, + } + + dataResources = append(dataResources, dataResource) + } + + return dataResources +} + +func flattenAwsCloudTrailEventSelector(configured []*cloudtrail.EventSelector) []map[string]interface{} { + eventSelectors := make([]map[string]interface{}, 0, len(configured)) + + // Prevent default configurations shows differences + if len(configured) == 1 && len(configured[0].DataResources) == 0 { + return eventSelectors + } + + for _, raw := range configured { + item := make(map[string]interface{}) + item["read_write_type"] = *raw.ReadWriteType + item["include_management_events"] = *raw.IncludeManagementEvents + item["data_resource"] = flattenAwsCloudTrailEventSelectorDataResource(raw.DataResources) + + eventSelectors = append(eventSelectors, item) + } + + return eventSelectors +} + +func flattenAwsCloudTrailEventSelectorDataResource(configured []*cloudtrail.DataResource) []map[string]interface{} { + dataResources := make([]map[string]interface{}, 0, len(configured)) + + for _, raw := range configured { + item := make(map[string]interface{}) + item["type"] = *raw.Type + item["values"] = flattenStringList(raw.Values) + + dataResources = append(dataResources, item) + } + + return dataResources +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_codebuild_project.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_codebuild_project.go index 853902283..eb6afb70b 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_codebuild_project.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_codebuild_project.go @@ -181,6 +181,33 @@ func resourceAwsCodeBuildProject() *schema.Resource { ValidateFunc: validateAwsCodeBuildTimeout, }, "tags": tagsSchema(), + "vpc_config": { + Type: schema.TypeList, + Optional: true, + MaxItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "vpc_id": { + Type: schema.TypeString, + Required: true, + }, + "subnets": { + Type: schema.TypeSet, + Required: true, + Elem: &schema.Schema{Type: schema.TypeString}, + // Set: schema.HashString, + MaxItems: 16, + }, + "security_group_ids": { + Type: schema.TypeSet, + Required: true, + Elem: &schema.Schema{Type: schema.TypeString}, + // Set: schema.HashString, + MaxItems: 5, + }, + }, + }, + }, }, } } @@ -215,6 +242,10 @@ func resourceAwsCodeBuildProjectCreate(d *schema.ResourceData, meta interface{}) params.TimeoutInMinutes = aws.Int64(int64(v.(int))) } + if v, ok := d.GetOk("vpc_config"); ok { + params.VpcConfig = expandCodeBuildVpcConfig(v.([]interface{})) + } + if v, ok := d.GetOk("tags"); ok { params.Tags = tagsFromMapCodeBuild(v.(map[string]interface{})) } @@ -230,6 +261,10 @@ func resourceAwsCodeBuildProjectCreate(d *schema.ResourceData, meta interface{}) return resource.RetryableError(err) } + if isAWSErr(err, "InvalidInputException", "Not authorized to perform DescribeSecurityGroups") { + return resource.RetryableError(err) + } + return resource.NonRetryableError(err) } @@ -326,6 +361,21 @@ func expandProjectEnvironment(d *schema.ResourceData) *codebuild.ProjectEnvironm return projectEnv } +func expandCodeBuildVpcConfig(rawVpcConfig []interface{}) *codebuild.VpcConfig { + vpcConfig := codebuild.VpcConfig{} + if len(rawVpcConfig) == 0 { + return &vpcConfig + } else { + + data := rawVpcConfig[0].(map[string]interface{}) + vpcConfig.VpcId = aws.String(data["vpc_id"].(string)) + vpcConfig.Subnets = expandStringList(data["subnets"].(*schema.Set).List()) + vpcConfig.SecurityGroupIds = expandStringList(data["security_group_ids"].(*schema.Set).List()) + + return &vpcConfig + } +} + func expandProjectSource(d *schema.ResourceData) codebuild.ProjectSource { configs := d.Get("source").(*schema.Set).List() projectSource := codebuild.ProjectSource{} @@ -380,15 +430,19 @@ func resourceAwsCodeBuildProjectRead(d *schema.ResourceData, meta interface{}) e project := resp.Projects[0] - if err := d.Set("artifacts", flattenAwsCodebuildProjectArtifacts(project.Artifacts)); err != nil { + if err := d.Set("artifacts", flattenAwsCodeBuildProjectArtifacts(project.Artifacts)); err != nil { return err } - if err := d.Set("environment", schema.NewSet(resourceAwsCodeBuildProjectEnvironmentHash, flattenAwsCodebuildProjectEnvironment(project.Environment))); err != nil { + if err := d.Set("environment", schema.NewSet(resourceAwsCodeBuildProjectEnvironmentHash, flattenAwsCodeBuildProjectEnvironment(project.Environment))); err != nil { return err } - if err := d.Set("source", flattenAwsCodebuildProjectSource(project.Source)); err != nil { + if err := d.Set("source", flattenAwsCodeBuildProjectSource(project.Source)); err != nil { + return err + } + + if err := d.Set("vpc_config", flattenAwsCodeBuildVpcConfig(project.VpcConfig)); err != nil { return err } @@ -427,6 +481,10 @@ func resourceAwsCodeBuildProjectUpdate(d *schema.ResourceData, meta interface{}) params.Artifacts = &projectArtifacts } + if d.HasChange("vpc_config") { + params.VpcConfig = expandCodeBuildVpcConfig(d.Get("vpc_config").([]interface{})) + } + if d.HasChange("description") { params.Description = aws.String(d.Get("description").(string)) } @@ -474,7 +532,7 @@ func resourceAwsCodeBuildProjectDelete(d *schema.ResourceData, meta interface{}) return nil } -func flattenAwsCodebuildProjectArtifacts(artifacts *codebuild.ProjectArtifacts) *schema.Set { +func flattenAwsCodeBuildProjectArtifacts(artifacts *codebuild.ProjectArtifacts) *schema.Set { artifactSet := schema.Set{ F: resourceAwsCodeBuildProjectArtifactsHash, @@ -509,7 +567,7 @@ func flattenAwsCodebuildProjectArtifacts(artifacts *codebuild.ProjectArtifacts) return &artifactSet } -func flattenAwsCodebuildProjectEnvironment(environment *codebuild.ProjectEnvironment) []interface{} { +func flattenAwsCodeBuildProjectEnvironment(environment *codebuild.ProjectEnvironment) []interface{} { envConfig := map[string]interface{}{} envConfig["type"] = *environment.Type @@ -525,7 +583,7 @@ func flattenAwsCodebuildProjectEnvironment(environment *codebuild.ProjectEnviron } -func flattenAwsCodebuildProjectSource(source *codebuild.ProjectSource) []interface{} { +func flattenAwsCodeBuildProjectSource(source *codebuild.ProjectSource) []interface{} { l := make([]interface{}, 1) m := map[string]interface{}{} @@ -548,6 +606,19 @@ func flattenAwsCodebuildProjectSource(source *codebuild.ProjectSource) []interfa return l } +func flattenAwsCodeBuildVpcConfig(vpcConfig *codebuild.VpcConfig) []interface{} { + if vpcConfig != nil { + values := map[string]interface{}{} + + values["vpc_id"] = *vpcConfig.VpcId + values["subnets"] = schema.NewSet(schema.HashString, flattenStringList(vpcConfig.Subnets)) + values["security_group_ids"] = schema.NewSet(schema.HashString, flattenStringList(vpcConfig.SecurityGroupIds)) + + return []interface{}{values} + } + return nil +} + func resourceAwsCodeBuildProjectArtifactsHash(v interface{}) int { var buf bytes.Buffer m := v.(map[string]interface{}) diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_codedeploy_deployment_group.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_codedeploy_deployment_group.go index a45ae2094..30af3ecc1 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_codedeploy_deployment_group.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_codedeploy_deployment_group.go @@ -1106,9 +1106,11 @@ func validateTriggerEvent(v interface{}, k string) (ws []string, errors []error) "DeploymentSuccess": true, "DeploymentFailure": true, "DeploymentRollback": true, + "DeploymentReady": true, "InstanceStart": true, "InstanceSuccess": true, "InstanceFailure": true, + "InstanceReady": true, } if !triggerEvents[value] { diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_cognito_user_pool_client.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_cognito_user_pool_client.go index dad4a1312..e848774c8 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_cognito_user_pool_client.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_cognito_user_pool_client.go @@ -53,6 +53,7 @@ func resourceAwsCognitoUserPoolClient() *schema.Resource { ValidateFunc: validation.StringInSlice([]string{ cognitoidentityprovider.ExplicitAuthFlowsTypeAdminNoSrpAuth, cognitoidentityprovider.ExplicitAuthFlowsTypeCustomAuthFlowOnly, + cognitoidentityprovider.ExplicitAuthFlowsTypeUserPasswordAuth, }, false), }, }, diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dax_cluster.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dax_cluster.go new file mode 100644 index 000000000..0acf9a86e --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dax_cluster.go @@ -0,0 +1,588 @@ +package aws + +import ( + "fmt" + "log" + "sort" + "strings" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/arn" + "github.com/aws/aws-sdk-go/service/dax" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAwsDaxCluster() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsDaxClusterCreate, + Read: resourceAwsDaxClusterRead, + Update: resourceAwsDaxClusterUpdate, + Delete: resourceAwsDaxClusterDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + + Timeouts: &schema.ResourceTimeout{ + Create: schema.DefaultTimeout(45 * time.Minute), + Delete: schema.DefaultTimeout(45 * time.Minute), + Update: schema.DefaultTimeout(90 * time.Minute), + }, + + Schema: map[string]*schema.Schema{ + "arn": { + Type: schema.TypeString, + Computed: true, + }, + "cluster_name": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + StateFunc: func(val interface{}) string { + return strings.ToLower(val.(string)) + }, + // DAX follows the same naming convention as ElastiCache clusters + ValidateFunc: validateElastiCacheClusterId, + }, + "iam_role_arn": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validateArn, + }, + "node_type": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "replication_factor": { + Type: schema.TypeInt, + Required: true, + }, + "availability_zones": { + Type: schema.TypeSet, + Optional: true, + ForceNew: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Set: schema.HashString, + }, + "description": { + Type: schema.TypeString, + Optional: true, + }, + "notification_topic_arn": { + Type: schema.TypeString, + Optional: true, + }, + "parameter_group_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + }, + "maintenance_window": { + Type: schema.TypeString, + Optional: true, + Computed: true, + StateFunc: func(val interface{}) string { + return strings.ToLower(val.(string)) + }, + ValidateFunc: validateOnceAWeekWindowFormat, + }, + "security_group_ids": { + Type: schema.TypeSet, + Optional: true, + Computed: true, + Elem: &schema.Schema{Type: schema.TypeString}, + Set: schema.HashString, + }, + "subnet_group_name": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + }, + "tags": tagsSchema(), + "port": { + Type: schema.TypeInt, + Computed: true, + }, + "configuration_endpoint": { + Type: schema.TypeString, + Computed: true, + }, + "cluster_address": { + Type: schema.TypeString, + Computed: true, + }, + "nodes": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "id": { + Type: schema.TypeString, + Computed: true, + }, + "address": { + Type: schema.TypeString, + Computed: true, + }, + "port": { + Type: schema.TypeInt, + Computed: true, + }, + "availability_zone": { + Type: schema.TypeString, + Computed: true, + }, + }, + }, + }, + }, + } +} + +func resourceAwsDaxClusterCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).daxconn + + clusterName := d.Get("cluster_name").(string) + iamRoleArn := d.Get("iam_role_arn").(string) + nodeType := d.Get("node_type").(string) + numNodes := int64(d.Get("replication_factor").(int)) + subnetGroupName := d.Get("subnet_group_name").(string) + securityIdSet := d.Get("security_group_ids").(*schema.Set) + + securityIds := expandStringList(securityIdSet.List()) + tags := tagsFromMapDax(d.Get("tags").(map[string]interface{})) + + req := &dax.CreateClusterInput{ + ClusterName: aws.String(clusterName), + IamRoleArn: aws.String(iamRoleArn), + NodeType: aws.String(nodeType), + ReplicationFactor: aws.Int64(numNodes), + SecurityGroupIds: securityIds, + SubnetGroupName: aws.String(subnetGroupName), + Tags: tags, + } + + // optionals can be defaulted by AWS + if v, ok := d.GetOk("description"); ok { + req.Description = aws.String(v.(string)) + } + + if v, ok := d.GetOk("parameter_group_name"); ok { + req.ParameterGroupName = aws.String(v.(string)) + } + + if v, ok := d.GetOk("maintenance_window"); ok { + req.PreferredMaintenanceWindow = aws.String(v.(string)) + } + + if v, ok := d.GetOk("notification_topic_arn"); ok { + req.NotificationTopicArn = aws.String(v.(string)) + } + + preferred_azs := d.Get("availability_zones").(*schema.Set).List() + if len(preferred_azs) > 0 { + azs := expandStringList(preferred_azs) + req.AvailabilityZones = azs + } + + // IAM roles take some time to propagate + var resp *dax.CreateClusterOutput + err := resource.Retry(30*time.Second, func() *resource.RetryError { + var err error + resp, err = conn.CreateCluster(req) + if err != nil { + if isAWSErr(err, dax.ErrCodeInvalidParameterValueException, "No permission to assume role") { + log.Print("[DEBUG] Retrying create of DAX cluster") + return resource.RetryableError(err) + } + return resource.NonRetryableError(err) + } + return nil + }) + if err != nil { + return fmt.Errorf("Error creating DAX cluster: %s", err) + } + + // Assign the cluster id as the resource ID + // DAX always retains the id in lower case, so we have to + // mimic that or else we won't be able to refresh a resource whose + // name contained uppercase characters. + d.SetId(strings.ToLower(*resp.Cluster.ClusterName)) + + pending := []string{"creating", "modifying"} + stateConf := &resource.StateChangeConf{ + Pending: pending, + Target: []string{"available"}, + Refresh: daxClusterStateRefreshFunc(conn, d.Id(), "available", pending), + Timeout: d.Timeout(schema.TimeoutCreate), + MinTimeout: 10 * time.Second, + Delay: 30 * time.Second, + } + + log.Printf("[DEBUG] Waiting for state to become available: %v", d.Id()) + _, sterr := stateConf.WaitForState() + if sterr != nil { + return fmt.Errorf("Error waiting for DAX cluster (%s) to be created: %s", d.Id(), sterr) + } + + return resourceAwsDaxClusterRead(d, meta) +} + +func resourceAwsDaxClusterRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).daxconn + req := &dax.DescribeClustersInput{ + ClusterNames: []*string{aws.String(d.Id())}, + } + + res, err := conn.DescribeClusters(req) + if err != nil { + if isAWSErr(err, dax.ErrCodeClusterNotFoundFault, "") { + log.Printf("[WARN] DAX cluster (%s) not found", d.Id()) + d.SetId("") + return nil + } + + return err + } + + if len(res.Clusters) == 0 { + log.Printf("[WARN] DAX cluster (%s) not found, removing from state", d.Id()) + d.SetId("") + return nil + } + + c := res.Clusters[0] + d.Set("arn", c.ClusterArn) + d.Set("cluster_name", c.ClusterName) + d.Set("description", c.Description) + d.Set("iam_role_arn", c.IamRoleArn) + d.Set("node_type", c.NodeType) + d.Set("replication_factor", c.TotalNodes) + + if c.ClusterDiscoveryEndpoint != nil { + d.Set("port", c.ClusterDiscoveryEndpoint.Port) + d.Set("configuration_endpoint", aws.String(fmt.Sprintf("%s:%d", *c.ClusterDiscoveryEndpoint.Address, *c.ClusterDiscoveryEndpoint.Port))) + d.Set("cluster_address", aws.String(fmt.Sprintf("%s", *c.ClusterDiscoveryEndpoint.Address))) + } + + d.Set("subnet_group_name", c.SubnetGroup) + d.Set("security_group_ids", flattenDaxSecurityGroupIds(c.SecurityGroups)) + + if c.ParameterGroup != nil { + d.Set("parameter_group_name", c.ParameterGroup.ParameterGroupName) + } + + d.Set("maintenance_window", c.PreferredMaintenanceWindow) + + if c.NotificationConfiguration != nil { + if *c.NotificationConfiguration.TopicStatus == "active" { + d.Set("notification_topic_arn", c.NotificationConfiguration.TopicArn) + } + } + + if err := setDaxClusterNodeData(d, c); err != nil { + return err + } + + // list tags for resource + // set tags + arn, err := buildDaxArn(d.Id(), meta.(*AWSClient).partition, meta.(*AWSClient).accountid, meta.(*AWSClient).region) + if err != nil { + log.Printf("[DEBUG] Error building ARN for DAX Cluster, not setting Tags for cluster %s", *c.ClusterName) + } else { + resp, err := conn.ListTags(&dax.ListTagsInput{ + ResourceName: aws.String(arn), + }) + + if err != nil { + log.Printf("[DEBUG] Error retrieving tags for ARN: %s", arn) + } + + var dt []*dax.Tag + if len(resp.Tags) > 0 { + dt = resp.Tags + } + d.Set("tags", tagsToMapDax(dt)) + } + + return nil +} + +func resourceAwsDaxClusterUpdate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).daxconn + arn, err := buildDaxArn(d.Id(), meta.(*AWSClient).partition, meta.(*AWSClient).accountid, meta.(*AWSClient).region) + if err != nil { + log.Printf("[DEBUG] Error building ARN for DAX Cluster, not updating Tags for cluster %s", d.Id()) + } else { + if err := setTagsDax(conn, d, arn); err != nil { + return err + } + } + + req := &dax.UpdateClusterInput{ + ClusterName: aws.String(d.Id()), + } + + requestUpdate := false + awaitUpdate := false + if d.HasChange("description") { + req.Description = aws.String(d.Get("description").(string)) + requestUpdate = true + } + + if d.HasChange("security_group_ids") { + if attr := d.Get("security_group_ids").(*schema.Set); attr.Len() > 0 { + req.SecurityGroupIds = expandStringList(attr.List()) + requestUpdate = true + } + } + + if d.HasChange("parameter_group_name") { + req.ParameterGroupName = aws.String(d.Get("parameter_group_name").(string)) + requestUpdate = true + } + + if d.HasChange("maintenance_window") { + req.PreferredMaintenanceWindow = aws.String(d.Get("maintenance_window").(string)) + requestUpdate = true + } + + if d.HasChange("notification_topic_arn") { + v := d.Get("notification_topic_arn").(string) + req.NotificationTopicArn = aws.String(v) + if v == "" { + inactive := "inactive" + req.NotificationTopicStatus = &inactive + } + requestUpdate = true + } + + if requestUpdate { + log.Printf("[DEBUG] Modifying DAX Cluster (%s), opts:\n%s", d.Id(), req) + _, err := conn.UpdateCluster(req) + if err != nil { + return fmt.Errorf("[WARN] Error updating DAX cluster (%s), error: %s", d.Id(), err) + } + awaitUpdate = true + } + + if d.HasChange("replication_factor") { + oraw, nraw := d.GetChange("replication_factor") + o := oraw.(int) + n := nraw.(int) + if n < o { + log.Printf("[INFO] Decreasing nodes in DAX cluster %s from %d to %d", d.Id(), o, n) + _, err := conn.DecreaseReplicationFactor(&dax.DecreaseReplicationFactorInput{ + ClusterName: aws.String(d.Id()), + NewReplicationFactor: aws.Int64(int64(nraw.(int))), + }) + if err != nil { + return fmt.Errorf("[WARN] Error increasing nodes in DAX cluster %s, error: %s", d.Id(), err) + } + awaitUpdate = true + } + if n > o { + log.Printf("[INFO] Increasing nodes in DAX cluster %s from %d to %d", d.Id(), o, n) + _, err := conn.IncreaseReplicationFactor(&dax.IncreaseReplicationFactorInput{ + ClusterName: aws.String(d.Id()), + NewReplicationFactor: aws.Int64(int64(nraw.(int))), + }) + if err != nil { + return fmt.Errorf("[WARN] Error increasing nodes in DAX cluster %s, error: %s", d.Id(), err) + } + awaitUpdate = true + } + } + + if awaitUpdate { + log.Printf("[DEBUG] Waiting for update: %s", d.Id()) + pending := []string{"modifying"} + stateConf := &resource.StateChangeConf{ + Pending: pending, + Target: []string{"available"}, + Refresh: daxClusterStateRefreshFunc(conn, d.Id(), "available", pending), + Timeout: d.Timeout(schema.TimeoutUpdate), + MinTimeout: 10 * time.Second, + Delay: 30 * time.Second, + } + + _, sterr := stateConf.WaitForState() + if sterr != nil { + return fmt.Errorf("Error waiting for DAX (%s) to update: %s", d.Id(), sterr) + } + } + + return resourceAwsDaxClusterRead(d, meta) +} + +func setDaxClusterNodeData(d *schema.ResourceData, c *dax.Cluster) error { + sortedNodes := make([]*dax.Node, len(c.Nodes)) + copy(sortedNodes, c.Nodes) + sort.Sort(byNodeId(sortedNodes)) + + nodeDate := make([]map[string]interface{}, 0, len(sortedNodes)) + + for _, node := range sortedNodes { + if node.NodeId == nil || node.Endpoint == nil || node.Endpoint.Address == nil || node.Endpoint.Port == nil || node.AvailabilityZone == nil { + return fmt.Errorf("Unexpected nil pointer in: %s", node) + } + nodeDate = append(nodeDate, map[string]interface{}{ + "id": *node.NodeId, + "address": *node.Endpoint.Address, + "port": int(*node.Endpoint.Port), + "availability_zone": *node.AvailabilityZone, + }) + } + + return d.Set("nodes", nodeDate) +} + +type byNodeId []*dax.Node + +func (b byNodeId) Len() int { return len(b) } +func (b byNodeId) Swap(i, j int) { b[i], b[j] = b[j], b[i] } +func (b byNodeId) Less(i, j int) bool { + return b[i].NodeId != nil && b[j].NodeId != nil && + *b[i].NodeId < *b[j].NodeId +} + +func resourceAwsDaxClusterDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).daxconn + + req := &dax.DeleteClusterInput{ + ClusterName: aws.String(d.Id()), + } + err := resource.Retry(5*time.Minute, func() *resource.RetryError { + _, err := conn.DeleteCluster(req) + if err != nil { + if isAWSErr(err, dax.ErrCodeInvalidClusterStateFault, "") { + return resource.RetryableError(err) + } + return resource.NonRetryableError(err) + } + return nil + }) + if err != nil { + return err + } + + log.Printf("[DEBUG] Waiting for deletion: %v", d.Id()) + stateConf := &resource.StateChangeConf{ + Pending: []string{"creating", "available", "deleting", "incompatible-parameters", "incompatible-network"}, + Target: []string{}, + Refresh: daxClusterStateRefreshFunc(conn, d.Id(), "", []string{}), + Timeout: d.Timeout(schema.TimeoutDelete), + MinTimeout: 10 * time.Second, + Delay: 30 * time.Second, + } + + _, sterr := stateConf.WaitForState() + if sterr != nil { + return fmt.Errorf("Error waiting for DAX (%s) to delete: %s", d.Id(), sterr) + } + + d.SetId("") + + return nil +} + +func daxClusterStateRefreshFunc(conn *dax.DAX, clusterID, givenState string, pending []string) resource.StateRefreshFunc { + return func() (interface{}, string, error) { + resp, err := conn.DescribeClusters(&dax.DescribeClustersInput{ + ClusterNames: []*string{aws.String(clusterID)}, + }) + if err != nil { + if isAWSErr(err, dax.ErrCodeClusterNotFoundFault, "") { + log.Printf("[DEBUG] Detect deletion") + return nil, "", nil + } + + log.Printf("[ERROR] daxClusterStateRefreshFunc: %s", err) + return nil, "", err + } + + if len(resp.Clusters) == 0 { + return nil, "", fmt.Errorf("[WARN] Error: no DAX clusters found for id (%s)", clusterID) + } + + var c *dax.Cluster + for _, cluster := range resp.Clusters { + if *cluster.ClusterName == clusterID { + log.Printf("[DEBUG] Found matching DAX cluster: %s", *cluster.ClusterName) + c = cluster + } + } + + if c == nil { + return nil, "", fmt.Errorf("[WARN] Error: no matching DAX cluster for id (%s)", clusterID) + } + + // DescribeCluster returns a response without status late on in the + // deletion process - assume cluster is still deleting until we + // get ClusterNotFoundFault + if c.Status == nil { + log.Printf("[DEBUG] DAX Cluster %s has no status attribute set - assume status is deleting", clusterID) + return c, "deleting", nil + } + + log.Printf("[DEBUG] DAX Cluster (%s) status: %v", clusterID, *c.Status) + + // return the current state if it's in the pending array + for _, p := range pending { + log.Printf("[DEBUG] DAX: checking pending state (%s) for cluster (%s), cluster status: %s", pending, clusterID, *c.Status) + s := *c.Status + if p == s { + log.Printf("[DEBUG] Return with status: %v", *c.Status) + return c, p, nil + } + } + + // return given state if it's not in pending + if givenState != "" { + log.Printf("[DEBUG] DAX: checking given state (%s) of cluster (%s) against cluster status (%s)", givenState, clusterID, *c.Status) + // check to make sure we have the node count we're expecting + if int64(len(c.Nodes)) != *c.TotalNodes { + log.Printf("[DEBUG] Node count is not what is expected: %d found, %d expected", len(c.Nodes), *c.TotalNodes) + return nil, "creating", nil + } + + log.Printf("[DEBUG] Node count matched (%d)", len(c.Nodes)) + // loop the nodes and check their status as well + for _, n := range c.Nodes { + log.Printf("[DEBUG] Checking cache node for status: %s", n) + if n.NodeStatus != nil && *n.NodeStatus != "available" { + log.Printf("[DEBUG] Node (%s) is not yet available, status: %s", *n.NodeId, *n.NodeStatus) + return nil, "creating", nil + } + log.Printf("[DEBUG] Cache node not in expected state") + } + log.Printf("[DEBUG] DAX returning given state (%s), cluster: %s", givenState, c) + return c, givenState, nil + } + log.Printf("[DEBUG] current status: %v", *c.Status) + return c, *c.Status, nil + } +} + +func buildDaxArn(identifier, partition, accountid, region string) (string, error) { + if partition == "" { + return "", fmt.Errorf("Unable to construct DAX ARN because of missing AWS partition") + } + if accountid == "" { + return "", fmt.Errorf("Unable to construct DAX ARN because of missing AWS Account ID") + } + + arn := arn.ARN{ + Partition: partition, + Service: "dax", + Region: region, + AccountID: accountid, + Resource: fmt.Sprintf("cache/%s", identifier), + } + + return arn.String(), nil +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_directory_service_directory.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_directory_service_directory.go index 9de42ed3b..8d4b8eae0 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_directory_service_directory.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_directory_service_directory.go @@ -8,17 +8,11 @@ import ( "github.com/hashicorp/terraform/helper/schema" "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/service/directoryservice" "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/helper/validation" ) -var directoryCreationFuncs = map[string]func(*directoryservice.DirectoryService, *schema.ResourceData) (string, error){ - "SimpleAD": createSimpleDirectoryService, - "MicrosoftAD": createActiveDirectoryService, - "ADConnector": createDirectoryConnector, -} - func resourceAwsDirectoryServiceDirectory() *schema.Resource { return &schema.Resource{ Create: resourceAwsDirectoryServiceDirectoryCreate, @@ -44,8 +38,12 @@ func resourceAwsDirectoryServiceDirectory() *schema.Resource { "size": { Type: schema.TypeString, Optional: true, - Default: "Large", + Computed: true, ForceNew: true, + ValidateFunc: validation.StringInSlice([]string{ + directoryservice.DirectorySizeLarge, + directoryservice.DirectorySizeSmall, + }, false), }, "alias": { Type: schema.TypeString, @@ -67,6 +65,7 @@ func resourceAwsDirectoryServiceDirectory() *schema.Resource { "tags": tagsSchema(), "vpc_settings": { Type: schema.TypeList, + MaxItems: 1, Optional: true, ForceNew: true, Elem: &schema.Resource{ @@ -88,6 +87,7 @@ func resourceAwsDirectoryServiceDirectory() *schema.Resource { }, "connect_settings": { Type: schema.TypeList, + MaxItems: 1, Optional: true, ForceNew: true, Elem: &schema.Resource{ @@ -141,96 +141,91 @@ func resourceAwsDirectoryServiceDirectory() *schema.Resource { "type": { Type: schema.TypeString, Optional: true, - Default: "SimpleAD", + Default: directoryservice.DirectoryTypeSimpleAd, ForceNew: true, - ValidateFunc: func(v interface{}, k string) (ws []string, es []error) { - validTypes := []string{"SimpleAD", "MicrosoftAD"} - value := v.(string) - for validType, _ := range directoryCreationFuncs { - if validType == value { - return - } - } - es = append(es, fmt.Errorf("%q must be one of %q", k, validTypes)) - return - }, + ValidateFunc: validation.StringInSlice([]string{ + directoryservice.DirectoryTypeAdconnector, + directoryservice.DirectoryTypeMicrosoftAd, + directoryservice.DirectoryTypeSimpleAd, + }, false), + }, + "edition": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ForceNew: true, + ValidateFunc: validation.StringInSlice([]string{ + directoryservice.DirectoryEditionEnterprise, + directoryservice.DirectoryEditionStandard, + }, false), }, }, } } func buildVpcSettings(d *schema.ResourceData) (vpcSettings *directoryservice.DirectoryVpcSettings, err error) { - if v, ok := d.GetOk("vpc_settings"); !ok { + v, ok := d.GetOk("vpc_settings") + if !ok { return nil, fmt.Errorf("vpc_settings is required for type = SimpleAD or MicrosoftAD") - } else { - settings := v.([]interface{}) + } + settings := v.([]interface{}) + s := settings[0].(map[string]interface{}) + var subnetIds []*string + for _, id := range s["subnet_ids"].(*schema.Set).List() { + subnetIds = append(subnetIds, aws.String(id.(string))) + } - if len(settings) > 1 { - return nil, fmt.Errorf("Only a single vpc_settings block is expected") - } else if len(settings) == 1 { - s := settings[0].(map[string]interface{}) - var subnetIds []*string - for _, id := range s["subnet_ids"].(*schema.Set).List() { - subnetIds = append(subnetIds, aws.String(id.(string))) - } - - vpcSettings = &directoryservice.DirectoryVpcSettings{ - SubnetIds: subnetIds, - VpcId: aws.String(s["vpc_id"].(string)), - } - } + vpcSettings = &directoryservice.DirectoryVpcSettings{ + SubnetIds: subnetIds, + VpcId: aws.String(s["vpc_id"].(string)), } return vpcSettings, nil } func buildConnectSettings(d *schema.ResourceData) (connectSettings *directoryservice.DirectoryConnectSettings, err error) { - if v, ok := d.GetOk("connect_settings"); !ok { + v, ok := d.GetOk("connect_settings") + if !ok { return nil, fmt.Errorf("connect_settings is required for type = ADConnector") - } else { - settings := v.([]interface{}) + } + settings := v.([]interface{}) + s := settings[0].(map[string]interface{}) - if len(settings) > 1 { - return nil, fmt.Errorf("Only a single connect_settings block is expected") - } else if len(settings) == 1 { - s := settings[0].(map[string]interface{}) + var subnetIds []*string + for _, id := range s["subnet_ids"].(*schema.Set).List() { + subnetIds = append(subnetIds, aws.String(id.(string))) + } - var subnetIds []*string - for _, id := range s["subnet_ids"].(*schema.Set).List() { - subnetIds = append(subnetIds, aws.String(id.(string))) - } + var customerDnsIps []*string + for _, id := range s["customer_dns_ips"].(*schema.Set).List() { + customerDnsIps = append(customerDnsIps, aws.String(id.(string))) + } - var customerDnsIps []*string - for _, id := range s["customer_dns_ips"].(*schema.Set).List() { - customerDnsIps = append(customerDnsIps, aws.String(id.(string))) - } - - connectSettings = &directoryservice.DirectoryConnectSettings{ - CustomerDnsIps: customerDnsIps, - CustomerUserName: aws.String(s["customer_username"].(string)), - SubnetIds: subnetIds, - VpcId: aws.String(s["vpc_id"].(string)), - } - } + connectSettings = &directoryservice.DirectoryConnectSettings{ + CustomerDnsIps: customerDnsIps, + CustomerUserName: aws.String(s["customer_username"].(string)), + SubnetIds: subnetIds, + VpcId: aws.String(s["vpc_id"].(string)), } return connectSettings, nil } func createDirectoryConnector(dsconn *directoryservice.DirectoryService, d *schema.ResourceData) (directoryId string, err error) { - if _, ok := d.GetOk("size"); !ok { - return "", fmt.Errorf("size is required for type = ADConnector") - } - input := directoryservice.ConnectDirectoryInput{ Name: aws.String(d.Get("name").(string)), Password: aws.String(d.Get("password").(string)), - Size: aws.String(d.Get("size").(string)), } if v, ok := d.GetOk("description"); ok { input.Description = aws.String(v.(string)) } + if v, ok := d.GetOk("size"); ok { + input.Size = aws.String(v.(string)) + } else { + // Matching previous behavior of Default: "Large" for Size attribute + input.Size = aws.String(directoryservice.DirectorySizeLarge) + } if v, ok := d.GetOk("short_name"); ok { input.ShortName = aws.String(v.(string)) } @@ -251,19 +246,20 @@ func createDirectoryConnector(dsconn *directoryservice.DirectoryService, d *sche } func createSimpleDirectoryService(dsconn *directoryservice.DirectoryService, d *schema.ResourceData) (directoryId string, err error) { - if _, ok := d.GetOk("size"); !ok { - return "", fmt.Errorf("size is required for type = SimpleAD") - } - input := directoryservice.CreateDirectoryInput{ Name: aws.String(d.Get("name").(string)), Password: aws.String(d.Get("password").(string)), - Size: aws.String(d.Get("size").(string)), } if v, ok := d.GetOk("description"); ok { input.Description = aws.String(v.(string)) } + if v, ok := d.GetOk("size"); ok { + input.Size = aws.String(v.(string)) + } else { + // Matching previous behavior of Default: "Large" for Size attribute + input.Size = aws.String(directoryservice.DirectorySizeLarge) + } if v, ok := d.GetOk("short_name"); ok { input.ShortName = aws.String(v.(string)) } @@ -295,6 +291,9 @@ func createActiveDirectoryService(dsconn *directoryservice.DirectoryService, d * if v, ok := d.GetOk("short_name"); ok { input.ShortName = aws.String(v.(string)) } + if v, ok := d.GetOk("edition"); ok { + input.Edition = aws.String(v.(string)) + } input.VpcSettings, err = buildVpcSettings(d) if err != nil { @@ -314,13 +313,18 @@ func createActiveDirectoryService(dsconn *directoryservice.DirectoryService, d * func resourceAwsDirectoryServiceDirectoryCreate(d *schema.ResourceData, meta interface{}) error { dsconn := meta.(*AWSClient).dsconn - creationFunc, ok := directoryCreationFuncs[d.Get("type").(string)] - if !ok { - // Shouldn't happen as this is validated above - return fmt.Errorf("Unsupported directory type: %s", d.Get("type")) + var directoryId string + var err error + directoryType := d.Get("type").(string) + + if directoryType == directoryservice.DirectoryTypeAdconnector { + directoryId, err = createDirectoryConnector(dsconn, d) + } else if directoryType == directoryservice.DirectoryTypeMicrosoftAd { + directoryId, err = createActiveDirectoryService(dsconn, d) + } else if directoryType == directoryservice.DirectoryTypeSimpleAd { + directoryId, err = createSimpleDirectoryService(dsconn, d) } - directoryId, err := creationFunc(dsconn, d) if err != nil { return err } @@ -330,8 +334,12 @@ func resourceAwsDirectoryServiceDirectoryCreate(d *schema.ResourceData, meta int // Wait for creation log.Printf("[DEBUG] Waiting for DS (%q) to become available", d.Id()) stateConf := &resource.StateChangeConf{ - Pending: []string{"Requested", "Creating", "Created"}, - Target: []string{"Active"}, + Pending: []string{ + directoryservice.DirectoryStageRequested, + directoryservice.DirectoryStageCreating, + directoryservice.DirectoryStageCreated, + }, + Target: []string{directoryservice.DirectoryStageActive}, Refresh: func() (interface{}, string, error) { resp, err := dsconn.DescribeDirectories(&directoryservice.DescribeDirectoriesInput{ DirectoryIds: []*string{aws.String(d.Id())}, @@ -427,28 +435,23 @@ func resourceAwsDirectoryServiceDirectoryRead(d *schema.ResourceData, meta inter dir := out.DirectoryDescriptions[0] log.Printf("[DEBUG] Received DS directory: %s", dir) - d.Set("access_url", *dir.AccessUrl) - d.Set("alias", *dir.Alias) - if dir.Description != nil { - d.Set("description", *dir.Description) - } + d.Set("access_url", dir.AccessUrl) + d.Set("alias", dir.Alias) + d.Set("description", dir.Description) - if *dir.Type == "ADConnector" { + if *dir.Type == directoryservice.DirectoryTypeAdconnector { d.Set("dns_ip_addresses", schema.NewSet(schema.HashString, flattenStringList(dir.ConnectSettings.ConnectIps))) } else { d.Set("dns_ip_addresses", schema.NewSet(schema.HashString, flattenStringList(dir.DnsIpAddrs))) } - d.Set("name", *dir.Name) - if dir.ShortName != nil { - d.Set("short_name", *dir.ShortName) - } - if dir.Size != nil { - d.Set("size", *dir.Size) - } - d.Set("type", *dir.Type) + d.Set("name", dir.Name) + d.Set("short_name", dir.ShortName) + d.Set("size", dir.Size) + d.Set("edition", dir.Edition) + d.Set("type", dir.Type) d.Set("vpc_settings", flattenDSVpcSettings(dir.VpcSettings)) d.Set("connect_settings", flattenDSConnectSettings(dir.DnsIpAddrs, dir.ConnectSettings)) - d.Set("enable_sso", *dir.SsoEnabled) + d.Set("enable_sso", dir.SsoEnabled) if dir.VpcSettings != nil { d.Set("security_group_id", *dir.VpcSettings.SecurityGroupId) @@ -481,21 +484,24 @@ func resourceAwsDirectoryServiceDirectoryDelete(d *schema.ResourceData, meta int // Wait for deletion log.Printf("[DEBUG] Waiting for DS (%q) to be deleted", d.Id()) stateConf := &resource.StateChangeConf{ - Pending: []string{"Deleting"}, - Target: []string{"Deleted"}, + Pending: []string{ + directoryservice.DirectoryStageActive, + directoryservice.DirectoryStageDeleting, + }, + Target: []string{directoryservice.DirectoryStageDeleted}, Refresh: func() (interface{}, string, error) { resp, err := dsconn.DescribeDirectories(&directoryservice.DescribeDirectoriesInput{ DirectoryIds: []*string{aws.String(d.Id())}, }) if err != nil { - if dserr, ok := err.(awserr.Error); ok && dserr.Code() == "EntityDoesNotExistException" { - return 42, "Deleted", nil + if isAWSErr(err, directoryservice.ErrCodeEntityDoesNotExistException, "") { + return 42, directoryservice.DirectoryStageDeleted, nil } return nil, "error", err } if len(resp.DirectoryDescriptions) == 0 { - return 42, "Deleted", nil + return 42, directoryservice.DirectoryStageDeleted, nil } ds := resp.DirectoryDescriptions[0] diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dx_connection.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dx_connection.go index 6074c395b..0dc106625 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dx_connection.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dx_connection.go @@ -2,9 +2,11 @@ package aws import ( "fmt" + "log" "time" "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/arn" "github.com/aws/aws-sdk-go/service/directconnect" "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/helper/schema" @@ -14,25 +16,34 @@ func resourceAwsDxConnection() *schema.Resource { return &schema.Resource{ Create: resourceAwsDxConnectionCreate, Read: resourceAwsDxConnectionRead, + Update: resourceAwsDxConnectionUpdate, Delete: resourceAwsDxConnectionDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, Schema: map[string]*schema.Schema{ - "name": &schema.Schema{ + "arn": { + Type: schema.TypeString, + Computed: true, + }, + "name": { Type: schema.TypeString, Required: true, ForceNew: true, }, - "bandwidth": &schema.Schema{ + "bandwidth": { Type: schema.TypeString, Required: true, ForceNew: true, ValidateFunc: validateDxConnectionBandWidth, }, - "location": &schema.Schema{ + "location": { Type: schema.TypeString, Required: true, ForceNew: true, }, + "tags": tagsSchema(), }, } } @@ -40,53 +51,105 @@ func resourceAwsDxConnection() *schema.Resource { func resourceAwsDxConnectionCreate(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).dxconn - input := &directconnect.CreateConnectionInput{ + req := &directconnect.CreateConnectionInput{ Bandwidth: aws.String(d.Get("bandwidth").(string)), ConnectionName: aws.String(d.Get("name").(string)), Location: aws.String(d.Get("location").(string)), } - resp, err := conn.CreateConnection(input) + + log.Printf("[DEBUG] Creating Direct Connect connection: %#v", req) + resp, err := conn.CreateConnection(req) if err != nil { return err } - d.SetId(*resp.ConnectionId) - return resourceAwsDxConnectionRead(d, meta) + + d.SetId(aws.StringValue(resp.ConnectionId)) + return resourceAwsDxConnectionUpdate(d, meta) } func resourceAwsDxConnectionRead(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).dxconn - connectionId := d.Id() - input := &directconnect.DescribeConnectionsInput{ - ConnectionId: aws.String(connectionId), - } - resp, err := conn.DescribeConnections(input) + resp, err := conn.DescribeConnections(&directconnect.DescribeConnectionsInput{ + ConnectionId: aws.String(d.Id()), + }) if err != nil { + if isNoSuchDxConnectionErr(err) { + log.Printf("[WARN] Direct Connect connection (%s) not found, removing from state", d.Id()) + d.SetId("") + return nil + } return err } + if len(resp.Connections) < 1 { + log.Printf("[WARN] Direct Connect connection (%s) not found, removing from state", d.Id()) d.SetId("") return nil } if len(resp.Connections) != 1 { - return fmt.Errorf("[ERROR] Number of DX Connection (%s) isn't one, got %d", connectionId, len(resp.Connections)) + return fmt.Errorf("[ERROR] Number of Direct Connect connections (%s) isn't one, got %d", d.Id(), len(resp.Connections)) } - if d.Id() != *resp.Connections[0].ConnectionId { - return fmt.Errorf("[ERROR] DX Connection (%s) not found", connectionId) + connection := resp.Connections[0] + if d.Id() != aws.StringValue(connection.ConnectionId) { + return fmt.Errorf("[ERROR] Direct Connect connection (%s) not found", d.Id()) } + if aws.StringValue(connection.ConnectionState) == directconnect.ConnectionStateDeleted { + log.Printf("[WARN] Direct Connect connection (%s) not found, removing from state", d.Id()) + d.SetId("") + return nil + } + + arn := arn.ARN{ + Partition: meta.(*AWSClient).partition, + Region: meta.(*AWSClient).region, + Service: "directconnect", + AccountID: meta.(*AWSClient).accountid, + Resource: fmt.Sprintf("dxcon/%s", d.Id()), + }.String() + d.Set("arn", arn) + d.Set("name", connection.ConnectionName) + d.Set("bandwidth", connection.Bandwidth) + d.Set("location", connection.Location) + + if err := getTagsDX(conn, d, arn); err != nil { + return err + } + return nil } +func resourceAwsDxConnectionUpdate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).dxconn + + arn := arn.ARN{ + Partition: meta.(*AWSClient).partition, + Region: meta.(*AWSClient).region, + Service: "directconnect", + AccountID: meta.(*AWSClient).accountid, + Resource: fmt.Sprintf("dxcon/%s", d.Id()), + }.String() + if err := setTagsDX(conn, d, arn); err != nil { + return err + } + + return resourceAwsDxConnectionRead(d, meta) +} + func resourceAwsDxConnectionDelete(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).dxconn - input := &directconnect.DeleteConnectionInput{ + log.Printf("[DEBUG] Deleting Direct Connect connection: %s", d.Id()) + _, err := conn.DeleteConnection(&directconnect.DeleteConnectionInput{ ConnectionId: aws.String(d.Id()), - } - _, err := conn.DeleteConnection(input) + }) if err != nil { + if isNoSuchDxConnectionErr(err) { + return nil + } return err } + deleteStateConf := &resource.StateChangeConf{ Pending: []string{directconnect.ConnectionStatePending, directconnect.ConnectionStateOrdering, directconnect.ConnectionStateAvailable, directconnect.ConnectionStateRequested, directconnect.ConnectionStateDeleting}, Target: []string{directconnect.ConnectionStateDeleted}, @@ -97,9 +160,9 @@ func resourceAwsDxConnectionDelete(d *schema.ResourceData, meta interface{}) err } _, err = deleteStateConf.WaitForState() if err != nil { - return fmt.Errorf("Error waiting for Dx Connection (%s) to be deleted: %s", d.Id(), err) + return fmt.Errorf("Error waiting for Direct Connect connection (%s) to be deleted: %s", d.Id(), err) } - d.SetId("") + return nil } @@ -112,6 +175,13 @@ func dxConnectionRefreshStateFunc(conn *directconnect.DirectConnect, connId stri if err != nil { return nil, "failed", err } + if len(resp.Connections) < 1 { + return resp, directconnect.ConnectionStateDeleted, nil + } return resp, *resp.Connections[0].ConnectionState, nil } } + +func isNoSuchDxConnectionErr(err error) bool { + return isAWSErr(err, "DirectConnectClientException", "Could not find Connection with ID") +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dx_lag.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dx_lag.go index 89dd99111..88fcef06d 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dx_lag.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dx_lag.go @@ -2,9 +2,11 @@ package aws import ( "fmt" + "log" "time" "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/aws/arn" "github.com/aws/aws-sdk-go/service/directconnect" "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/helper/schema" @@ -16,33 +18,44 @@ func resourceAwsDxLag() *schema.Resource { Read: resourceAwsDxLagRead, Update: resourceAwsDxLagUpdate, Delete: resourceAwsDxLagDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, Schema: map[string]*schema.Schema{ - "name": &schema.Schema{ + "arn": { + Type: schema.TypeString, + Computed: true, + }, + "name": { Type: schema.TypeString, Required: true, }, - "connections_bandwidth": &schema.Schema{ + "connections_bandwidth": { Type: schema.TypeString, Required: true, ForceNew: true, ValidateFunc: validateDxConnectionBandWidth, }, - "location": &schema.Schema{ + "location": { Type: schema.TypeString, Required: true, ForceNew: true, }, - "number_of_connections": &schema.Schema{ + "number_of_connections": { Type: schema.TypeInt, - Required: true, + Optional: true, + Computed: true, ForceNew: true, + Deprecated: "Use aws_dx_connection and aws_dx_connection_association resources instead. " + + "Default connections will be removed as part of LAG creation automatically in future versions.", }, - "force_destroy": &schema.Schema{ + "force_destroy": { Type: schema.TypeBool, Optional: true, Default: false, }, + "tags": tagsSchema(), }, } } @@ -50,89 +63,164 @@ func resourceAwsDxLag() *schema.Resource { func resourceAwsDxLagCreate(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).dxconn - input := &directconnect.CreateLagInput{ + var noOfConnections int + if v, ok := d.GetOk("number_of_connections"); ok { + noOfConnections = v.(int) + } else { + noOfConnections = 1 + } + + req := &directconnect.CreateLagInput{ ConnectionsBandwidth: aws.String(d.Get("connections_bandwidth").(string)), LagName: aws.String(d.Get("name").(string)), Location: aws.String(d.Get("location").(string)), - NumberOfConnections: aws.Int64(int64(d.Get("number_of_connections").(int))), + NumberOfConnections: aws.Int64(int64(noOfConnections)), } - resp, err := conn.CreateLag(input) + + log.Printf("[DEBUG] Creating Direct Connect LAG: %#v", req) + resp, err := conn.CreateLag(req) if err != nil { return err } - d.SetId(*resp.LagId) - return resourceAwsDxLagRead(d, meta) + + // TODO: Remove default connection(s) automatically provisioned by AWS + // per NumberOfConnections + + d.SetId(aws.StringValue(resp.LagId)) + return resourceAwsDxLagUpdate(d, meta) } func resourceAwsDxLagRead(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).dxconn - lagId := d.Id() - input := &directconnect.DescribeLagsInput{ - LagId: aws.String(lagId), - } - resp, err := conn.DescribeLags(input) + resp, err := conn.DescribeLags(&directconnect.DescribeLagsInput{ + LagId: aws.String(d.Id()), + }) if err != nil { + if isNoSuchDxLagErr(err) { + log.Printf("[WARN] Direct Connect LAG (%s) not found, removing from state", d.Id()) + d.SetId("") + return nil + } return err } + if len(resp.Lags) < 1 { + log.Printf("[WARN] Direct Connect LAG (%s) not found, removing from state", d.Id()) d.SetId("") return nil } if len(resp.Lags) != 1 { - return fmt.Errorf("[ERROR] Number of DX Lag (%s) isn't one, got %d", lagId, len(resp.Lags)) + return fmt.Errorf("[ERROR] Number of Direct Connect LAGs (%s) isn't one, got %d", d.Id(), len(resp.Lags)) } - if d.Id() != *resp.Lags[0].LagId { - return fmt.Errorf("[ERROR] DX Lag (%s) not found", lagId) + lag := resp.Lags[0] + if d.Id() != aws.StringValue(lag.LagId) { + return fmt.Errorf("[ERROR] Direct Connect LAG (%s) not found", d.Id()) } + + if aws.StringValue(lag.LagState) == directconnect.LagStateDeleted { + log.Printf("[WARN] Direct Connect LAG (%s) not found, removing from state", d.Id()) + d.SetId("") + return nil + } + + arn := arn.ARN{ + Partition: meta.(*AWSClient).partition, + Region: meta.(*AWSClient).region, + Service: "directconnect", + AccountID: meta.(*AWSClient).accountid, + Resource: fmt.Sprintf("dxlag/%s", d.Id()), + }.String() + d.Set("arn", arn) + d.Set("name", lag.LagName) + d.Set("connections_bandwidth", lag.ConnectionsBandwidth) + d.Set("location", lag.Location) + + if err := getTagsDX(conn, d, arn); err != nil { + return err + } + return nil } func resourceAwsDxLagUpdate(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).dxconn - input := &directconnect.UpdateLagInput{ - LagId: aws.String(d.Id()), - } + d.Partial(true) + if d.HasChange("name") { - input.LagName = aws.String(d.Get("name").(string)) + req := &directconnect.UpdateLagInput{ + LagId: aws.String(d.Id()), + LagName: aws.String(d.Get("name").(string)), + } + + log.Printf("[DEBUG] Updating Direct Connect LAG: %#v", req) + _, err := conn.UpdateLag(req) + if err != nil { + return err + } else { + d.SetPartial("name") + } } - _, err := conn.UpdateLag(input) - if err != nil { + + arn := arn.ARN{ + Partition: meta.(*AWSClient).partition, + Region: meta.(*AWSClient).region, + Service: "directconnect", + AccountID: meta.(*AWSClient).accountid, + Resource: fmt.Sprintf("dxlag/%s", d.Id()), + }.String() + if err := setTagsDX(conn, d, arn); err != nil { return err + } else { + d.SetPartial("tags") } - return nil + + d.Partial(false) + + return resourceAwsDxLagRead(d, meta) } func resourceAwsDxLagDelete(d *schema.ResourceData, meta interface{}) error { conn := meta.(*AWSClient).dxconn if d.Get("force_destroy").(bool) { - input := &directconnect.DescribeLagsInput{ + resp, err := conn.DescribeLags(&directconnect.DescribeLagsInput{ LagId: aws.String(d.Id()), - } - resp, err := conn.DescribeLags(input) + }) if err != nil { + if isNoSuchDxLagErr(err) { + return nil + } return err } + + if len(resp.Lags) < 1 { + return nil + } lag := resp.Lags[0] for _, v := range lag.Connections { - dcinput := &directconnect.DeleteConnectionInput{ + log.Printf("[DEBUG] Deleting Direct Connect connection: %s", aws.StringValue(v.ConnectionId)) + _, err := conn.DeleteConnection(&directconnect.DeleteConnectionInput{ ConnectionId: v.ConnectionId, - } - if _, err := conn.DeleteConnection(dcinput); err != nil { + }) + if err != nil && !isNoSuchDxConnectionErr(err) { return err } } } - input := &directconnect.DeleteLagInput{ + log.Printf("[DEBUG] Deleting Direct Connect LAG: %s", d.Id()) + _, err := conn.DeleteLag(&directconnect.DeleteLagInput{ LagId: aws.String(d.Id()), - } - _, err := conn.DeleteLag(input) + }) if err != nil { + if isNoSuchDxLagErr(err) { + return nil + } return err } + deleteStateConf := &resource.StateChangeConf{ Pending: []string{directconnect.LagStateAvailable, directconnect.LagStateRequested, directconnect.LagStatePending, directconnect.LagStateDeleting}, Target: []string{directconnect.LagStateDeleted}, @@ -143,9 +231,9 @@ func resourceAwsDxLagDelete(d *schema.ResourceData, meta interface{}) error { } _, err = deleteStateConf.WaitForState() if err != nil { - return fmt.Errorf("Error waiting for Dx Lag (%s) to be deleted: %s", d.Id(), err) + return fmt.Errorf("Error waiting for Direct Connect LAG (%s) to be deleted: %s", d.Id(), err) } - d.SetId("") + return nil } @@ -158,6 +246,13 @@ func dxLagRefreshStateFunc(conn *directconnect.DirectConnect, lagId string) reso if err != nil { return nil, "failed", err } + if len(resp.Lags) < 1 { + return resp, directconnect.LagStateDeleted, nil + } return resp, *resp.Lags[0].LagState, nil } } + +func isNoSuchDxLagErr(err error) bool { + return isAWSErr(err, "DirectConnectClientException", "Could not find Lag with ID") +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_table.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_table.go index 50cf27a08..1aa608abd 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_table.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_dynamodb_table.go @@ -440,9 +440,7 @@ func resourceAwsDynamoDbTableDelete(d *schema.ResourceData, meta interface{}) er log.Printf("[DEBUG] DynamoDB delete table: %s", d.Id()) - _, err := conn.DeleteTable(&dynamodb.DeleteTableInput{ - TableName: aws.String(d.Id()), - }) + err := deleteAwsDynamoDbTable(d.Id(), conn) if err != nil { if isAWSErr(err, dynamodb.ErrCodeResourceNotFoundException, "Requested resource not found: Table: ") { return nil @@ -477,6 +475,35 @@ func resourceAwsDynamoDbTableDelete(d *schema.ResourceData, meta interface{}) er return err } +func deleteAwsDynamoDbTable(tableName string, conn *dynamodb.DynamoDB) error { + input := &dynamodb.DeleteTableInput{ + TableName: aws.String(tableName), + } + + return resource.Retry(1*time.Minute, func() *resource.RetryError { + _, err := conn.DeleteTable(input) + if err != nil { + // Subscriber limit exceeded: Only 10 tables can be created, updated, or deleted simultaneously + if isAWSErr(err, dynamodb.ErrCodeLimitExceededException, "simultaneously") { + return resource.RetryableError(err) + } + // This handles multiple scenarios in the DynamoDB API: + // 1. Updating a table immediately before deletion may return: + // ResourceInUseException: Attempt to change a resource which is still in use: Table is being updated: + // 2. Removing a table from a DynamoDB global table may return: + // ResourceInUseException: Attempt to change a resource which is still in use: Table is being deleted: + if isAWSErr(err, dynamodb.ErrCodeResourceInUseException, "") { + return resource.RetryableError(err) + } + if isAWSErr(err, dynamodb.ErrCodeResourceNotFoundException, "Requested resource not found: Table: ") { + return resource.NonRetryableError(err) + } + return resource.NonRetryableError(err) + } + return nil + }) +} + func updateDynamoDbTimeToLive(d *schema.ResourceData, conn *dynamodb.DynamoDB) error { toBeEnabled := false attributeName := "" diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ecs_service.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ecs_service.go index 44f7ee092..fa72419e4 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ecs_service.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ecs_service.go @@ -356,6 +356,16 @@ func resourceAwsEcsServiceRead(d *schema.ResourceData, meta interface{}) error { } return resource.NonRetryableError(err) } + + if d.IsNewResource() && len(out.Services) < 1 { + return resource.RetryableError(fmt.Errorf("No ECS service found: %q", d.Id())) + } + + service := out.Services[0] + if d.IsNewResource() && *service.Status == "INACTIVE" { + return resource.RetryableError(fmt.Errorf("ECS service currently INACTIVE: %q", d.Id())) + } + return nil }) if err != nil { @@ -363,7 +373,7 @@ func resourceAwsEcsServiceRead(d *schema.ResourceData, meta interface{}) error { } if len(out.Services) < 1 { - log.Printf("[DEBUG] Removing ECS service %s (%s) because it's gone", d.Get("name").(string), d.Id()) + log.Printf("[WARN] Removing ECS service %s (%s) because it's gone", d.Get("name").(string), d.Id()) d.SetId("") return nil } @@ -372,7 +382,7 @@ func resourceAwsEcsServiceRead(d *schema.ResourceData, meta interface{}) error { // Status==INACTIVE means deleted service if *service.Status == "INACTIVE" { - log.Printf("[DEBUG] Removing ECS service %q because it's INACTIVE", *service.ServiceArn) + log.Printf("[WARN] Removing ECS service %q because it's INACTIVE", *service.ServiceArn) d.SetId("") return nil } @@ -418,7 +428,7 @@ func resourceAwsEcsServiceRead(d *schema.ResourceData, meta interface{}) error { } if service.LoadBalancers != nil { - d.Set("load_balancers", flattenEcsLoadBalancers(service.LoadBalancers)) + d.Set("load_balancer", flattenEcsLoadBalancers(service.LoadBalancers)) } if err := d.Set("placement_strategy", flattenPlacementStrategy(service.PlacementStrategy)); err != nil { diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_elasticsearch_domain.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_elasticsearch_domain.go index b67b1b593..7b04cea2c 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_elasticsearch_domain.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_elasticsearch_domain.go @@ -405,6 +405,9 @@ func resourceAwsElasticSearchDomainCreate(d *schema.ResourceData, meta interface if isAWSErr(err, "ValidationException", "enable a service-linked role to give Amazon ES permissions") { return resource.RetryableError(err) } + if isAWSErr(err, "ValidationException", "Domain is still being deleted") { + return resource.RetryableError(err) + } return resource.NonRetryableError(err) } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_emr_cluster.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_emr_cluster.go index 66086e592..f5048e71e 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_emr_cluster.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_emr_cluster.go @@ -15,6 +15,8 @@ import ( "github.com/aws/aws-sdk-go/service/emr" "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/helper/schema" + "github.com/hashicorp/terraform/helper/structure" + "github.com/hashicorp/terraform/helper/validation" ) func resourceAwsEMRCluster() *schema.Resource { @@ -173,6 +175,16 @@ func resourceAwsEMRCluster() *schema.Resource { Optional: true, Default: 0, }, + "autoscaling_policy": { + Type: schema.TypeString, + Optional: true, + DiffSuppressFunc: suppressEquivalentJsonDiffs, + ValidateFunc: validateJsonString, + StateFunc: func(v interface{}) string { + jsonString, _ := structure.NormalizeJsonString(v) + return jsonString + }, + }, "instance_role": { Type: schema.TypeString, Required: true, @@ -225,6 +237,16 @@ func resourceAwsEMRCluster() *schema.Resource { ForceNew: true, Required: true, }, + "scale_down_behavior": { + Type: schema.TypeString, + ForceNew: true, + Optional: true, + Computed: true, + ValidateFunc: validation.StringInSlice([]string{ + emr.ScaleDownBehaviorTerminateAtInstanceHour, + emr.ScaleDownBehaviorTerminateAtTaskCompletion, + }, false), + }, "security_configuration": { Type: schema.TypeString, ForceNew: true, @@ -352,10 +374,15 @@ func resourceAwsEMRClusterCreate(d *schema.ResourceData, meta interface{}) error if v, ok := d.GetOk("log_uri"); ok { params.LogUri = aws.String(v.(string)) } + if v, ok := d.GetOk("autoscaling_role"); ok { params.AutoScalingRole = aws.String(v.(string)) } + if v, ok := d.GetOk("scale_down_behavior"); ok { + params.ScaleDownBehavior = aws.String(v.(string)) + } + if v, ok := d.GetOk("security_configuration"); ok { params.SecurityConfiguration = aws.String(v.(string)) } @@ -475,6 +502,7 @@ func resourceAwsEMRClusterRead(d *schema.ResourceData, meta interface{}) error { } d.Set("name", cluster.Name) + d.Set("service_role", cluster.ServiceRole) d.Set("security_configuration", cluster.SecurityConfiguration) d.Set("autoscaling_role", cluster.AutoScalingRole) @@ -484,6 +512,7 @@ func resourceAwsEMRClusterRead(d *schema.ResourceData, meta interface{}) error { d.Set("visible_to_all_users", cluster.VisibleToAllUsers) d.Set("tags", tagsToMapEMR(cluster.Tags)) d.Set("ebs_root_volume_size", cluster.EbsRootVolumeSize) + d.Set("scale_down_behavior", cluster.ScaleDownBehavior) if cluster.CustomAmiId != nil { d.Set("custom_ami_id", cluster.CustomAmiId) @@ -750,6 +779,13 @@ func flattenInstanceGroups(igs []*emr.InstanceGroup) []map[string]interface{} { attrs["instance_count"] = *ig.RequestedInstanceCount attrs["instance_role"] = *ig.InstanceGroupType attrs["instance_type"] = *ig.InstanceType + + if ig.AutoScalingPolicy != nil { + attrs["autoscaling_policy"] = *ig.AutoScalingPolicy + } else { + attrs["autoscaling_policy"] = "" + } + attrs["name"] = *ig.Name result = append(result, attrs) } @@ -897,7 +933,7 @@ func expandBootstrapActions(bootstrapActions []interface{}) []*emr.BootstrapActi } func expandInstanceGroupConfigs(instanceGroupConfigs []interface{}) []*emr.InstanceGroupConfig { - configsOut := []*emr.InstanceGroupConfig{} + instanceGroupConfig := []*emr.InstanceGroupConfig{} for _, raw := range instanceGroupConfigs { configAttributes := raw.(map[string]interface{}) @@ -912,42 +948,68 @@ func expandInstanceGroupConfigs(instanceGroupConfigs []interface{}) []*emr.Insta InstanceCount: aws.Int64(int64(configInstanceCount)), } - if bidPrice, ok := configAttributes["bid_price"]; ok { - if bidPrice != "" { - config.BidPrice = aws.String(bidPrice.(string)) - config.Market = aws.String("SPOT") - } else { - config.Market = aws.String("ON_DEMAND") - } - } + applyBidPrice(config, configAttributes) + applyEbsConfig(configAttributes, config) + applyAutoScalingPolicy(configAttributes, config) - if rawEbsConfigs, ok := configAttributes["ebs_config"]; ok { - ebsConfig := &emr.EbsConfiguration{} - - ebsBlockDeviceConfigs := make([]*emr.EbsBlockDeviceConfig, 0) - for _, rawEbsConfig := range rawEbsConfigs.(*schema.Set).List() { - rawEbsConfig := rawEbsConfig.(map[string]interface{}) - ebsBlockDeviceConfig := &emr.EbsBlockDeviceConfig{ - VolumesPerInstance: aws.Int64(int64(rawEbsConfig["volumes_per_instance"].(int))), - VolumeSpecification: &emr.VolumeSpecification{ - SizeInGB: aws.Int64(int64(rawEbsConfig["size"].(int))), - VolumeType: aws.String(rawEbsConfig["type"].(string)), - }, - } - if v, ok := rawEbsConfig["iops"].(int); ok && v != 0 { - ebsBlockDeviceConfig.VolumeSpecification.Iops = aws.Int64(int64(v)) - } - ebsBlockDeviceConfigs = append(ebsBlockDeviceConfigs, ebsBlockDeviceConfig) - } - ebsConfig.EbsBlockDeviceConfigs = ebsBlockDeviceConfigs - - config.EbsConfiguration = ebsConfig - } - - configsOut = append(configsOut, config) + instanceGroupConfig = append(instanceGroupConfig, config) } - return configsOut + return instanceGroupConfig +} + +func applyBidPrice(config *emr.InstanceGroupConfig, configAttributes map[string]interface{}) { + if bidPrice, ok := configAttributes["bid_price"]; ok { + if bidPrice != "" { + config.BidPrice = aws.String(bidPrice.(string)) + config.Market = aws.String("SPOT") + } else { + config.Market = aws.String("ON_DEMAND") + } + } +} + +func applyEbsConfig(configAttributes map[string]interface{}, config *emr.InstanceGroupConfig) { + if rawEbsConfigs, ok := configAttributes["ebs_config"]; ok { + ebsConfig := &emr.EbsConfiguration{} + + ebsBlockDeviceConfigs := make([]*emr.EbsBlockDeviceConfig, 0) + for _, rawEbsConfig := range rawEbsConfigs.(*schema.Set).List() { + rawEbsConfig := rawEbsConfig.(map[string]interface{}) + ebsBlockDeviceConfig := &emr.EbsBlockDeviceConfig{ + VolumesPerInstance: aws.Int64(int64(rawEbsConfig["volumes_per_instance"].(int))), + VolumeSpecification: &emr.VolumeSpecification{ + SizeInGB: aws.Int64(int64(rawEbsConfig["size"].(int))), + VolumeType: aws.String(rawEbsConfig["type"].(string)), + }, + } + if v, ok := rawEbsConfig["iops"].(int); ok && v != 0 { + ebsBlockDeviceConfig.VolumeSpecification.Iops = aws.Int64(int64(v)) + } + ebsBlockDeviceConfigs = append(ebsBlockDeviceConfigs, ebsBlockDeviceConfig) + } + ebsConfig.EbsBlockDeviceConfigs = ebsBlockDeviceConfigs + + config.EbsConfiguration = ebsConfig + } +} + +func applyAutoScalingPolicy(configAttributes map[string]interface{}, config *emr.InstanceGroupConfig) { + if rawAutoScalingPolicy, ok := configAttributes["autoscaling_policy"]; ok { + autoScalingConfig, _ := expandAutoScalingPolicy(rawAutoScalingPolicy.(string)) + config.AutoScalingPolicy = autoScalingConfig + } +} + +func expandAutoScalingPolicy(rawDefinitions string) (*emr.AutoScalingPolicy, error) { + var policy *emr.AutoScalingPolicy + + err := json.Unmarshal([]byte(rawDefinitions), &policy) + if err != nil { + return nil, fmt.Errorf("Error decoding JSON: %s", err) + } + + return policy, nil } func expandConfigures(input string) []*emr.Configuration { diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_gamelift_alias.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_gamelift_alias.go new file mode 100644 index 000000000..f2ef67f20 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_gamelift_alias.go @@ -0,0 +1,181 @@ +package aws + +import ( + "log" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/gamelift" + "github.com/hashicorp/terraform/helper/schema" + "github.com/hashicorp/terraform/helper/validation" +) + +func resourceAwsGameliftAlias() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsGameliftAliasCreate, + Read: resourceAwsGameliftAliasRead, + Update: resourceAwsGameliftAliasUpdate, + Delete: resourceAwsGameliftAliasDelete, + + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + + Schema: map[string]*schema.Schema{ + "name": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validation.StringLenBetween(1, 1024), + }, + "description": { + Type: schema.TypeString, + Optional: true, + ValidateFunc: validation.StringLenBetween(1, 1024), + }, + "routing_strategy": { + Type: schema.TypeList, + Required: true, + MaxItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "fleet_id": { + Type: schema.TypeString, + Optional: true, + }, + "message": { + Type: schema.TypeString, + Optional: true, + }, + "type": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validation.StringInSlice([]string{ + gamelift.RoutingStrategyTypeSimple, + gamelift.RoutingStrategyTypeTerminal, + }, false), + }, + }, + }, + }, + "arn": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func resourceAwsGameliftAliasCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).gameliftconn + + rs := expandGameliftRoutingStrategy(d.Get("routing_strategy").([]interface{})) + input := gamelift.CreateAliasInput{ + Name: aws.String(d.Get("name").(string)), + RoutingStrategy: rs, + } + if v, ok := d.GetOk("description"); ok { + input.Description = aws.String(v.(string)) + } + log.Printf("[INFO] Creating Gamelift Alias: %s", input) + out, err := conn.CreateAlias(&input) + if err != nil { + return err + } + + d.SetId(*out.Alias.AliasId) + + return resourceAwsGameliftAliasRead(d, meta) +} + +func resourceAwsGameliftAliasRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).gameliftconn + + log.Printf("[INFO] Describing Gamelift Alias: %s", d.Id()) + out, err := conn.DescribeAlias(&gamelift.DescribeAliasInput{ + AliasId: aws.String(d.Id()), + }) + if err != nil { + if isAWSErr(err, gamelift.ErrCodeNotFoundException, "") { + d.SetId("") + log.Printf("[WARN] Gamelift Alias (%s) not found, removing from state", d.Id()) + return nil + } + return err + } + a := out.Alias + + d.Set("arn", a.AliasArn) + d.Set("description", a.Description) + d.Set("name", a.Name) + d.Set("routing_strategy", flattenGameliftRoutingStrategy(a.RoutingStrategy)) + + return nil +} + +func resourceAwsGameliftAliasUpdate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).gameliftconn + + log.Printf("[INFO] Updating Gamelift Alias: %s", d.Id()) + _, err := conn.UpdateAlias(&gamelift.UpdateAliasInput{ + AliasId: aws.String(d.Id()), + Name: aws.String(d.Get("name").(string)), + Description: aws.String(d.Get("description").(string)), + RoutingStrategy: expandGameliftRoutingStrategy(d.Get("routing_strategy").([]interface{})), + }) + if err != nil { + return err + } + + return resourceAwsGameliftAliasRead(d, meta) +} + +func resourceAwsGameliftAliasDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).gameliftconn + + log.Printf("[INFO] Deleting Gamelift Alias: %s", d.Id()) + _, err := conn.DeleteAlias(&gamelift.DeleteAliasInput{ + AliasId: aws.String(d.Id()), + }) + if err != nil { + return err + } + + return nil +} + +func expandGameliftRoutingStrategy(cfg []interface{}) *gamelift.RoutingStrategy { + if len(cfg) < 1 { + return nil + } + + strategy := cfg[0].(map[string]interface{}) + + out := gamelift.RoutingStrategy{ + Type: aws.String(strategy["type"].(string)), + } + + if v, ok := strategy["fleet_id"].(string); ok && len(v) > 0 { + out.FleetId = aws.String(v) + } + if v, ok := strategy["message"].(string); ok && len(v) > 0 { + out.Message = aws.String(v) + } + + return &out +} + +func flattenGameliftRoutingStrategy(rs *gamelift.RoutingStrategy) []interface{} { + if rs == nil { + return []interface{}{} + } + + m := make(map[string]interface{}, 0) + if rs.FleetId != nil { + m["fleet_id"] = *rs.FleetId + } + if rs.Message != nil { + m["message"] = *rs.Message + } + m["type"] = *rs.Type + + return []interface{}{m} +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_gamelift_fleet.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_gamelift_fleet.go new file mode 100644 index 000000000..be1a328da --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_gamelift_fleet.go @@ -0,0 +1,604 @@ +package aws + +import ( + "fmt" + "log" + "reflect" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/gamelift" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/helper/schema" + "github.com/hashicorp/terraform/helper/validation" +) + +func resourceAwsGameliftFleet() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsGameliftFleetCreate, + Read: resourceAwsGameliftFleetRead, + Update: resourceAwsGameliftFleetUpdate, + Delete: resourceAwsGameliftFleetDelete, + + Timeouts: &schema.ResourceTimeout{ + Create: schema.DefaultTimeout(70 * time.Minute), + Delete: schema.DefaultTimeout(5 * time.Minute), + }, + + Schema: map[string]*schema.Schema{ + "arn": { + Type: schema.TypeString, + Computed: true, + }, + "build_id": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "ec2_instance_type": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "name": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validation.StringLenBetween(1, 1024), + }, + "description": { + Type: schema.TypeString, + Optional: true, + ValidateFunc: validation.StringLenBetween(1, 1024), + }, + "ec2_inbound_permission": { + Type: schema.TypeList, + Optional: true, + MaxItems: 50, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "from_port": { + Type: schema.TypeInt, + Required: true, + ValidateFunc: validation.IntBetween(1, 60000), + }, + "ip_range": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validateCIDRNetworkAddress, + }, + "protocol": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validation.StringInSlice([]string{ + gamelift.IpProtocolTcp, + gamelift.IpProtocolUdp, + }, false), + }, + "to_port": { + Type: schema.TypeInt, + Required: true, + ValidateFunc: validation.IntBetween(1, 60000), + }, + }, + }, + }, + "log_paths": { + Type: schema.TypeList, + Computed: true, + Elem: &schema.Schema{Type: schema.TypeString}, + }, + "metric_groups": { + Type: schema.TypeList, + Optional: true, + Computed: true, + Elem: &schema.Schema{ + Type: schema.TypeString, + ValidateFunc: validation.StringLenBetween(1, 255), + }, + }, + "new_game_session_protection_policy": { + Type: schema.TypeString, + Optional: true, + Default: gamelift.ProtectionPolicyNoProtection, + ValidateFunc: validation.StringInSlice([]string{ + gamelift.ProtectionPolicyNoProtection, + gamelift.ProtectionPolicyFullProtection, + }, false), + }, + "operating_system": { + Type: schema.TypeString, + Computed: true, + }, + "resource_creation_limit_policy": { + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "new_game_sessions_per_creator": { + Type: schema.TypeInt, + Optional: true, + ValidateFunc: validation.IntAtLeast(0), + }, + "policy_period_in_minutes": { + Type: schema.TypeInt, + Optional: true, + ValidateFunc: validation.IntAtLeast(0), + }, + }, + }, + }, + "runtime_configuration": { + Type: schema.TypeList, + MaxItems: 1, + Optional: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "game_session_activation_timeout_seconds": { + Type: schema.TypeInt, + Optional: true, + ValidateFunc: validation.IntBetween(1, 600), + }, + "max_concurrent_game_session_activations": { + Type: schema.TypeInt, + Optional: true, + ValidateFunc: validation.IntBetween(1, 2147483647), + }, + "server_process": { + Type: schema.TypeList, + Optional: true, + MaxItems: 50, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "concurrent_executions": { + Type: schema.TypeInt, + Required: true, + ValidateFunc: validation.IntAtLeast(1), + }, + "launch_path": { + Type: schema.TypeString, + Required: true, + ValidateFunc: validation.StringLenBetween(1, 1024), + }, + "parameters": { + Type: schema.TypeString, + Optional: true, + ValidateFunc: validation.StringLenBetween(1, 1024), + }, + }, + }, + }, + }, + }, + }, + }, + } +} + +func resourceAwsGameliftFleetCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).gameliftconn + + input := gamelift.CreateFleetInput{ + BuildId: aws.String(d.Get("build_id").(string)), + EC2InstanceType: aws.String(d.Get("ec2_instance_type").(string)), + Name: aws.String(d.Get("name").(string)), + } + + if v, ok := d.GetOk("description"); ok { + input.Description = aws.String(v.(string)) + } + if v, ok := d.GetOk("ec2_inbound_permission"); ok { + input.EC2InboundPermissions = expandGameliftIpPermissions(v.([]interface{})) + } + if v, ok := d.GetOk("metric_groups"); ok { + input.MetricGroups = expandStringList(v.([]interface{})) + } + if v, ok := d.GetOk("new_game_session_protection_policy"); ok { + input.NewGameSessionProtectionPolicy = aws.String(v.(string)) + } + if v, ok := d.GetOk("resource_creation_limit_policy"); ok { + input.ResourceCreationLimitPolicy = expandGameliftResourceCreationLimitPolicy(v.([]interface{})) + } + if v, ok := d.GetOk("runtime_configuration"); ok { + input.RuntimeConfiguration = expandGameliftRuntimeConfiguration(v.([]interface{})) + } + + log.Printf("[INFO] Creating Gamelift Fleet: %s", input) + out, err := conn.CreateFleet(&input) + if err != nil { + return err + } + + d.SetId(*out.FleetAttributes.FleetId) + + stateConf := &resource.StateChangeConf{ + Pending: []string{ + gamelift.FleetStatusActivating, + gamelift.FleetStatusBuilding, + gamelift.FleetStatusDownloading, + gamelift.FleetStatusNew, + gamelift.FleetStatusValidating, + }, + Target: []string{gamelift.FleetStatusActive}, + Timeout: d.Timeout(schema.TimeoutCreate), + Refresh: func() (interface{}, string, error) { + out, err := conn.DescribeFleetAttributes(&gamelift.DescribeFleetAttributesInput{ + FleetIds: aws.StringSlice([]string{d.Id()}), + }) + if err != nil { + return 42, "", err + } + + attributes := out.FleetAttributes + if len(attributes) < 1 { + return nil, "", nil + } + if len(attributes) != 1 { + return 42, "", fmt.Errorf("Expected exactly 1 Gamelift fleet, found %d under %q", + len(attributes), d.Id()) + } + + fleet := attributes[0] + return fleet, *fleet.Status, nil + }, + } + _, err = stateConf.WaitForState() + if err != nil { + events, fErr := getGameliftFleetFailures(conn, d.Id()) + if fErr != nil { + log.Printf("[WARN] Failed to poll fleet failures: %s", fErr) + } + if len(events) > 0 { + return fmt.Errorf("%s Recent failures:\n%+v", err, events) + } + + return err + } + + return resourceAwsGameliftFleetRead(d, meta) +} + +func resourceAwsGameliftFleetRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).gameliftconn + + log.Printf("[INFO] Describing Gamelift Fleet: %s", d.Id()) + out, err := conn.DescribeFleetAttributes(&gamelift.DescribeFleetAttributesInput{ + FleetIds: aws.StringSlice([]string{d.Id()}), + }) + if err != nil { + return err + } + attributes := out.FleetAttributes + if len(attributes) < 1 { + log.Printf("[WARN] Gamelift Fleet (%s) not found, removing from state", d.Id()) + d.SetId("") + return nil + } + if len(attributes) != 1 { + return fmt.Errorf("Expected exactly 1 Gamelift fleet, found %d under %q", + len(attributes), d.Id()) + } + fleet := attributes[0] + + d.Set("build_id", fleet.BuildId) + d.Set("description", fleet.Description) + d.Set("arn", fleet.FleetArn) + d.Set("log_paths", aws.StringValueSlice(fleet.LogPaths)) + d.Set("metric_groups", flattenStringList(fleet.MetricGroups)) + d.Set("name", fleet.Name) + d.Set("new_game_session_protection_policy", fleet.NewGameSessionProtectionPolicy) + d.Set("operating_system", fleet.OperatingSystem) + d.Set("resource_creation_limit_policy", flattenGameliftResourceCreationLimitPolicy(fleet.ResourceCreationLimitPolicy)) + + return nil +} + +func resourceAwsGameliftFleetUpdate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).gameliftconn + + log.Printf("[INFO] Updating Gamelift Fleet: %s", d.Id()) + + if d.HasChange("description") || d.HasChange("metric_groups") || d.HasChange("name") || + d.HasChange("new_game_session_protection_policy") || d.HasChange("resource_creation_limit_policy") { + _, err := conn.UpdateFleetAttributes(&gamelift.UpdateFleetAttributesInput{ + Description: aws.String(d.Get("description").(string)), + FleetId: aws.String(d.Id()), + MetricGroups: expandStringList(d.Get("metric_groups").([]interface{})), + Name: aws.String(d.Get("name").(string)), + NewGameSessionProtectionPolicy: aws.String(d.Get("new_game_session_protection_policy").(string)), + ResourceCreationLimitPolicy: expandGameliftResourceCreationLimitPolicy(d.Get("resource_creation_limit_policy").([]interface{})), + }) + if err != nil { + return err + } + } + + if d.HasChange("ec2_inbound_permission") { + oldPerms, newPerms := d.GetChange("ec2_inbound_permission") + authorizations, revocations := diffGameliftPortSettings(oldPerms.([]interface{}), newPerms.([]interface{})) + + _, err := conn.UpdateFleetPortSettings(&gamelift.UpdateFleetPortSettingsInput{ + FleetId: aws.String(d.Id()), + InboundPermissionAuthorizations: authorizations, + InboundPermissionRevocations: revocations, + }) + if err != nil { + return err + } + } + + if d.HasChange("runtime_configuration") { + _, err := conn.UpdateRuntimeConfiguration(&gamelift.UpdateRuntimeConfigurationInput{ + FleetId: aws.String(d.Id()), + RuntimeConfiguration: expandGameliftRuntimeConfiguration(d.Get("runtime_configuration").([]interface{})), + }) + if err != nil { + return err + } + } + + return resourceAwsGameliftFleetRead(d, meta) +} + +func resourceAwsGameliftFleetDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).gameliftconn + + log.Printf("[INFO] Deleting Gamelift Fleet: %s", d.Id()) + // It can take ~ 1 hr as Gamelift will keep retrying on errors like + // invalid launch path and remain in state when it can't be deleted :/ + err := resource.Retry(60*time.Minute, func() *resource.RetryError { + _, err := conn.DeleteFleet(&gamelift.DeleteFleetInput{ + FleetId: aws.String(d.Id()), + }) + if err != nil { + msg := fmt.Sprintf("Cannot delete fleet %s that is in status of ", d.Id()) + if isAWSErr(err, gamelift.ErrCodeInvalidRequestException, msg) { + return resource.RetryableError(err) + } + return resource.NonRetryableError(err) + } + return nil + }) + if err != nil { + return err + } + + return waitForGameliftFleetToBeDeleted(conn, d.Id(), d.Timeout(schema.TimeoutDelete)) +} + +func waitForGameliftFleetToBeDeleted(conn *gamelift.GameLift, id string, timeout time.Duration) error { + stateConf := resource.StateChangeConf{ + Pending: []string{ + gamelift.FleetStatusActive, + gamelift.FleetStatusDeleting, + gamelift.FleetStatusError, + gamelift.FleetStatusTerminated, + }, + Target: []string{}, + Timeout: timeout, + Refresh: func() (interface{}, string, error) { + out, err := conn.DescribeFleetAttributes(&gamelift.DescribeFleetAttributesInput{ + FleetIds: aws.StringSlice([]string{id}), + }) + if err != nil { + return 42, "", err + } + + attributes := out.FleetAttributes + if len(attributes) < 1 { + return nil, "", nil + } + if len(attributes) != 1 { + return 42, "", fmt.Errorf("Expected exactly 1 Gamelift fleet, found %d under %q", + len(attributes), id) + } + + fleet := attributes[0] + return fleet, *fleet.Status, nil + }, + } + _, err := stateConf.WaitForState() + if err != nil { + events, fErr := getGameliftFleetFailures(conn, id) + if fErr != nil { + log.Printf("[WARN] Failed to poll fleet failures: %s", fErr) + } + if len(events) > 0 { + return fmt.Errorf("%s Recent failures:\n%+v", err, events) + } + } + return err +} + +func expandGameliftIpPermissions(cfgs []interface{}) []*gamelift.IpPermission { + if len(cfgs) < 1 { + return []*gamelift.IpPermission{} + } + + perms := make([]*gamelift.IpPermission, len(cfgs), len(cfgs)) + for i, rawCfg := range cfgs { + cfg := rawCfg.(map[string]interface{}) + perms[i] = expandGameliftIpPermission(cfg) + } + return perms +} + +func expandGameliftIpPermission(cfg map[string]interface{}) *gamelift.IpPermission { + return &gamelift.IpPermission{ + FromPort: aws.Int64(int64(cfg["from_port"].(int))), + IpRange: aws.String(cfg["ip_range"].(string)), + Protocol: aws.String(cfg["protocol"].(string)), + ToPort: aws.Int64(int64(cfg["to_port"].(int))), + } +} + +func flattenGameliftIpPermissions(ipps []*gamelift.IpPermission) []interface{} { + perms := make([]interface{}, len(ipps), len(ipps)) + + for i, ipp := range ipps { + m := make(map[string]interface{}, 0) + m["from_port"] = *ipp.FromPort + m["ip_range"] = *ipp.IpRange + m["protocol"] = *ipp.Protocol + m["to_port"] = *ipp.ToPort + perms[i] = m + } + + return perms +} + +func expandGameliftResourceCreationLimitPolicy(cfg []interface{}) *gamelift.ResourceCreationLimitPolicy { + if len(cfg) < 1 { + return nil + } + out := gamelift.ResourceCreationLimitPolicy{} + m := cfg[0].(map[string]interface{}) + + if v, ok := m["new_game_sessions_per_creator"]; ok { + out.NewGameSessionsPerCreator = aws.Int64(int64(v.(int))) + } + if v, ok := m["policy_period_in_minutes"]; ok { + out.PolicyPeriodInMinutes = aws.Int64(int64(v.(int))) + } + + return &out +} + +func flattenGameliftResourceCreationLimitPolicy(policy *gamelift.ResourceCreationLimitPolicy) []interface{} { + if policy == nil { + return []interface{}{} + } + + m := make(map[string]interface{}, 0) + m["new_game_sessions_per_creator"] = *policy.NewGameSessionsPerCreator + m["policy_period_in_minutes"] = *policy.PolicyPeriodInMinutes + + return []interface{}{m} +} + +func expandGameliftRuntimeConfiguration(cfg []interface{}) *gamelift.RuntimeConfiguration { + if len(cfg) < 1 { + return nil + } + out := gamelift.RuntimeConfiguration{} + m := cfg[0].(map[string]interface{}) + + if v, ok := m["game_session_activation_timeout_seconds"].(int); ok && v > 0 { + out.GameSessionActivationTimeoutSeconds = aws.Int64(int64(v)) + } + if v, ok := m["max_concurrent_game_session_activations"].(int); ok && v > 0 { + out.MaxConcurrentGameSessionActivations = aws.Int64(int64(v)) + } + if v, ok := m["server_process"]; ok { + out.ServerProcesses = expandGameliftServerProcesses(v.([]interface{})) + } + + return &out +} + +func expandGameliftServerProcesses(cfgs []interface{}) []*gamelift.ServerProcess { + if len(cfgs) < 1 { + return []*gamelift.ServerProcess{} + } + + processes := make([]*gamelift.ServerProcess, len(cfgs), len(cfgs)) + for i, rawCfg := range cfgs { + cfg := rawCfg.(map[string]interface{}) + process := &gamelift.ServerProcess{ + ConcurrentExecutions: aws.Int64(int64(cfg["concurrent_executions"].(int))), + LaunchPath: aws.String(cfg["launch_path"].(string)), + } + if v, ok := cfg["parameters"].(string); ok && len(v) > 0 { + process.Parameters = aws.String(v) + } + processes[i] = process + } + return processes +} + +func getGameliftFleetFailures(conn *gamelift.GameLift, id string) ([]*gamelift.Event, error) { + var events []*gamelift.Event + err := _getGameliftFleetFailures(conn, id, nil, &events) + return events, err +} + +func _getGameliftFleetFailures(conn *gamelift.GameLift, id string, nextToken *string, events *[]*gamelift.Event) error { + eOut, err := conn.DescribeFleetEvents(&gamelift.DescribeFleetEventsInput{ + FleetId: aws.String(id), + NextToken: nextToken, + }) + if err != nil { + return err + } + + for _, e := range eOut.Events { + if isGameliftEventFailure(e) { + *events = append(*events, e) + } + } + + if eOut.NextToken != nil { + err := _getGameliftFleetFailures(conn, id, nextToken, events) + if err != nil { + return err + } + } + + return nil +} + +func isGameliftEventFailure(event *gamelift.Event) bool { + failureCodes := []string{ + gamelift.EventCodeFleetActivationFailed, + gamelift.EventCodeFleetActivationFailedNoInstances, + gamelift.EventCodeFleetBinaryDownloadFailed, + gamelift.EventCodeFleetInitializationFailed, + gamelift.EventCodeFleetStateError, + gamelift.EventCodeFleetValidationExecutableRuntimeFailure, + gamelift.EventCodeFleetValidationLaunchPathNotFound, + gamelift.EventCodeFleetValidationTimedOut, + gamelift.EventCodeFleetVpcPeeringFailed, + gamelift.EventCodeGameSessionActivationTimeout, + gamelift.EventCodeServerProcessCrashed, + gamelift.EventCodeServerProcessForceTerminated, + gamelift.EventCodeServerProcessInvalidPath, + gamelift.EventCodeServerProcessProcessExitTimeout, + gamelift.EventCodeServerProcessProcessReadyTimeout, + gamelift.EventCodeServerProcessSdkInitializationTimeout, + gamelift.EventCodeServerProcessTerminatedUnhealthy, + } + for _, fc := range failureCodes { + if *event.EventCode == fc { + return true + } + } + return false +} + +func diffGameliftPortSettings(oldPerms, newPerms []interface{}) (a []*gamelift.IpPermission, r []*gamelift.IpPermission) { +OUTER: + for i, op := range oldPerms { + oldPerm := op.(map[string]interface{}) + for j, np := range newPerms { + newPerm := np.(map[string]interface{}) + + // Remove permissions which have not changed so we're not wasting + // API calls for removal & subseq. addition of the same ones + if reflect.DeepEqual(oldPerm, newPerm) { + oldPerms = append(oldPerms[:i], oldPerms[i+1:]...) + newPerms = append(newPerms[:j], newPerms[j+1:]...) + continue OUTER + } + } + + // Add what's left for revocation + r = append(r, expandGameliftIpPermission(oldPerm)) + } + + for _, np := range newPerms { + newPerm := np.(map[string]interface{}) + // Add what's left for authorization + a = append(a, expandGameliftIpPermission(newPerm)) + } + return +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_iam_user_ssh_key.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_iam_user_ssh_key.go index 646eea6aa..abb449986 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_iam_user_ssh_key.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_iam_user_ssh_key.go @@ -68,10 +68,9 @@ func resourceAwsIamUserSshKeyCreate(d *schema.ResourceData, meta interface{}) er return fmt.Errorf("Error creating IAM User SSH Key %s: %s", username, err) } - d.Set("ssh_public_key_id", createResp.SSHPublicKey.SSHPublicKeyId) d.SetId(*createResp.SSHPublicKey.SSHPublicKeyId) - return resourceAwsIamUserSshKeyRead(d, meta) + return resourceAwsIamUserSshKeyUpdate(d, meta) } func resourceAwsIamUserSshKeyRead(d *schema.ResourceData, meta interface{}) error { @@ -95,7 +94,7 @@ func resourceAwsIamUserSshKeyRead(d *schema.ResourceData, meta interface{}) erro d.Set("fingerprint", getResp.SSHPublicKey.Fingerprint) d.Set("status", getResp.SSHPublicKey.Status) - + d.Set("ssh_public_key_id", getResp.SSHPublicKey.SSHPublicKeyId) return nil } @@ -119,9 +118,8 @@ func resourceAwsIamUserSshKeyUpdate(d *schema.ResourceData, meta interface{}) er } return fmt.Errorf("Error updating IAM User SSH Key %s: %s", d.Id(), err) } - return resourceAwsIamUserRead(d, meta) } - return nil + return resourceAwsIamUserSshKeyRead(d, meta) } func resourceAwsIamUserSshKeyDelete(d *schema.ResourceData, meta interface{}) error { diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_instance.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_instance.go index f5560814e..aab29ccc8 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_instance.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_instance.go @@ -35,7 +35,7 @@ func resourceAwsInstance() *schema.Resource { Timeouts: &schema.ResourceTimeout{ Create: schema.DefaultTimeout(10 * time.Minute), Update: schema.DefaultTimeout(10 * time.Minute), - Delete: schema.DefaultTimeout(10 * time.Minute), + Delete: schema.DefaultTimeout(20 * time.Minute), }, Schema: map[string]*schema.Schema{ @@ -552,7 +552,7 @@ func resourceAwsInstanceCreate(d *schema.ResourceData, meta interface{}) error { stateConf := &resource.StateChangeConf{ Pending: []string{"pending"}, Target: []string{"running"}, - Refresh: InstanceStateRefreshFunc(conn, *instance.InstanceId, "terminated"), + Refresh: InstanceStateRefreshFunc(conn, *instance.InstanceId, []string{"terminated", "shutting-down"}), Timeout: d.Timeout(schema.TimeoutCreate), Delay: 10 * time.Second, MinTimeout: 3 * time.Second, @@ -914,7 +914,7 @@ func resourceAwsInstanceUpdate(d *schema.ResourceData, meta interface{}) error { } } - if d.HasChange("vpc_security_group_ids") { + if d.HasChange("vpc_security_group_ids") && !d.IsNewResource() { var groups []*string if v := d.Get("vpc_security_group_ids").(*schema.Set); v.Len() > 0 { for _, v := range v.List() { @@ -965,7 +965,7 @@ func resourceAwsInstanceUpdate(d *schema.ResourceData, meta interface{}) error { stateConf := &resource.StateChangeConf{ Pending: []string{"pending", "running", "shutting-down", "stopped", "stopping"}, Target: []string{"stopped"}, - Refresh: InstanceStateRefreshFunc(conn, d.Id(), ""), + Refresh: InstanceStateRefreshFunc(conn, d.Id(), []string{}), Timeout: d.Timeout(schema.TimeoutUpdate), Delay: 10 * time.Second, MinTimeout: 3 * time.Second, @@ -996,7 +996,7 @@ func resourceAwsInstanceUpdate(d *schema.ResourceData, meta interface{}) error { stateConf = &resource.StateChangeConf{ Pending: []string{"pending", "stopped"}, Target: []string{"running"}, - Refresh: InstanceStateRefreshFunc(conn, d.Id(), "terminated"), + Refresh: InstanceStateRefreshFunc(conn, d.Id(), []string{"terminated"}), Timeout: d.Timeout(schema.TimeoutUpdate), Delay: 10 * time.Second, MinTimeout: 3 * time.Second, @@ -1074,7 +1074,7 @@ func resourceAwsInstanceDelete(d *schema.ResourceData, meta interface{}) error { // InstanceStateRefreshFunc returns a resource.StateRefreshFunc that is used to watch // an EC2 instance. -func InstanceStateRefreshFunc(conn *ec2.EC2, instanceID, failState string) resource.StateRefreshFunc { +func InstanceStateRefreshFunc(conn *ec2.EC2, instanceID string, failStates []string) resource.StateRefreshFunc { return func() (interface{}, string, error) { resp, err := conn.DescribeInstances(&ec2.DescribeInstancesInput{ InstanceIds: []*string{aws.String(instanceID)}, @@ -1098,10 +1098,11 @@ func InstanceStateRefreshFunc(conn *ec2.EC2, instanceID, failState string) resou i := resp.Reservations[0].Instances[0] state := *i.State.Name - if state == failState { - return i, state, fmt.Errorf("Failed to reach target state. Reason: %s", - stringifyStateReason(i.StateReason)) - + for _, failState := range failStates { + if state == failState { + return i, state, fmt.Errorf("Failed to reach target state. Reason: %s", + stringifyStateReason(i.StateReason)) + } } return i, state, nil @@ -1716,7 +1717,7 @@ func awsTerminateInstance(conn *ec2.EC2, id string, d *schema.ResourceData) erro stateConf := &resource.StateChangeConf{ Pending: []string{"pending", "running", "shutting-down", "stopped", "stopping"}, Target: []string{"terminated"}, - Refresh: InstanceStateRefreshFunc(conn, id, ""), + Refresh: InstanceStateRefreshFunc(conn, id, []string{}), Timeout: d.Timeout(schema.TimeoutDelete), Delay: 10 * time.Second, MinTimeout: 3 * time.Second, diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_iot_thing_type.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_iot_thing_type.go new file mode 100644 index 000000000..5aa60465d --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_iot_thing_type.go @@ -0,0 +1,202 @@ +package aws + +import ( + "log" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/iot" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/helper/schema" +) + +// https://docs.aws.amazon.com/iot/latest/apireference/API_CreateThingType.html +func resourceAwsIotThingType() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsIotThingTypeCreate, + Read: resourceAwsIotThingTypeRead, + Update: resourceAwsIotThingTypeUpdate, + Delete: resourceAwsIotThingTypeDelete, + + Importer: &schema.ResourceImporter{ + State: func(d *schema.ResourceData, meta interface{}) ([]*schema.ResourceData, error) { + d.Set("name", d.Id()) + return []*schema.ResourceData{d}, nil + }, + }, + + Schema: map[string]*schema.Schema{ + "name": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validateIotThingTypeName, + }, + "properties": { + Type: schema.TypeList, + Optional: true, + MaxItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "description": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + ValidateFunc: validateIotThingTypeDescription, + }, + "searchable_attributes": { + Type: schema.TypeSet, + Optional: true, + Computed: true, + ForceNew: true, + MaxItems: 3, + Elem: &schema.Schema{ + Type: schema.TypeString, + ValidateFunc: validateIotThingTypeSearchableAttribute, + }, + }, + }, + }, + }, + "deprecated": { + Type: schema.TypeBool, + Optional: true, + Default: false, + }, + "arn": { + Type: schema.TypeString, + Computed: true, + }, + }, + } +} + +func resourceAwsIotThingTypeCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).iotconn + + params := &iot.CreateThingTypeInput{ + ThingTypeName: aws.String(d.Get("name").(string)), + } + + if v, ok := d.GetOk("properties"); ok { + configs := v.([]interface{}) + config, ok := configs[0].(map[string]interface{}) + + if ok && config != nil { + params.ThingTypeProperties = expandIotThingTypeProperties(config) + } + } + + log.Printf("[DEBUG] Creating IoT Thing Type: %s", params) + out, err := conn.CreateThingType(params) + + if err != nil { + return err + } + + d.SetId(*out.ThingTypeName) + + if v := d.Get("deprecated").(bool); v { + params := &iot.DeprecateThingTypeInput{ + ThingTypeName: aws.String(d.Id()), + UndoDeprecate: aws.Bool(false), + } + + log.Printf("[DEBUG] Deprecating IoT Thing Type: %s", params) + _, err := conn.DeprecateThingType(params) + + if err != nil { + return err + } + } + + return resourceAwsIotThingTypeRead(d, meta) +} + +func resourceAwsIotThingTypeRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).iotconn + + params := &iot.DescribeThingTypeInput{ + ThingTypeName: aws.String(d.Id()), + } + log.Printf("[DEBUG] Reading IoT Thing Type: %s", params) + out, err := conn.DescribeThingType(params) + + if err != nil { + if isAWSErr(err, iot.ErrCodeResourceNotFoundException, "") { + log.Printf("[WARN] IoT Thing Type %q not found, removing from state", d.Id()) + d.SetId("") + } + return err + } + + if out.ThingTypeMetadata != nil { + d.Set("deprecated", out.ThingTypeMetadata.Deprecated) + } + + d.Set("arn", out.ThingTypeArn) + d.Set("properties", flattenIotThingTypeProperties(out.ThingTypeProperties)) + + return nil +} + +func resourceAwsIotThingTypeUpdate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).iotconn + + if d.HasChange("deprecated") { + params := &iot.DeprecateThingTypeInput{ + ThingTypeName: aws.String(d.Id()), + UndoDeprecate: aws.Bool(!d.Get("deprecated").(bool)), + } + + log.Printf("[DEBUG] Updating IoT Thing Type: %s", params) + _, err := conn.DeprecateThingType(params) + + if err != nil { + return err + } + } + + return resourceAwsIotThingTypeRead(d, meta) +} + +func resourceAwsIotThingTypeDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).iotconn + + // In order to delete an IoT Thing Type, you must deprecate it first and wait + // at least 5 minutes. + deprecateParams := &iot.DeprecateThingTypeInput{ + ThingTypeName: aws.String(d.Id()), + } + log.Printf("[DEBUG] Deprecating IoT Thing Type: %s", deprecateParams) + _, err := conn.DeprecateThingType(deprecateParams) + + if err != nil { + return err + } + + deleteParams := &iot.DeleteThingTypeInput{ + ThingTypeName: aws.String(d.Id()), + } + log.Printf("[DEBUG] Deleting IoT Thing Type: %s", deleteParams) + + return resource.Retry(6*time.Minute, func() *resource.RetryError { + _, err := conn.DeleteThingType(deleteParams) + + if err != nil { + if isAWSErr(err, iot.ErrCodeInvalidRequestException, "Please wait for 5 minutes after deprecation and then retry") { + return resource.RetryableError(err) + } + + // As the delay post-deprecation is about 5 minutes, it may have been + // deleted in between, thus getting a Not Found Exception. + if isAWSErr(err, iot.ErrCodeResourceNotFoundException, "") { + return nil + } + + return resource.NonRetryableError(err) + } + + return nil + }) +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_kinesis_firehose_delivery_stream.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_kinesis_firehose_delivery_stream.go index f3e72689d..1d4762f5f 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_kinesis_firehose_delivery_stream.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_kinesis_firehose_delivery_stream.go @@ -9,7 +9,6 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/arn" - "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/service/firehose" "github.com/hashicorp/terraform/helper/hashcode" "github.com/hashicorp/terraform/helper/resource" @@ -1320,13 +1319,15 @@ func resourceAwsKinesisFirehoseDeliveryStreamCreate(d *schema.ResourceData, meta log.Printf("[DEBUG] Error creating Firehose Delivery Stream: %s", err) lastError = err - if awsErr, ok := err.(awserr.Error); ok { - // IAM roles can take ~10 seconds to propagate in AWS: - // http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#launch-instance-with-role-console - if awsErr.Code() == "InvalidArgumentException" && strings.Contains(awsErr.Message(), "Firehose is unable to assume role") { - log.Printf("[DEBUG] Firehose could not assume role referenced, retrying...") - return resource.RetryableError(awsErr) - } + // Retry for IAM eventual consistency + if isAWSErr(err, firehose.ErrCodeInvalidArgumentException, "is not authorized to perform") { + return resource.RetryableError(err) + } + // IAM roles can take ~10 seconds to propagate in AWS: + // http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html#launch-instance-with-role-console + if isAWSErr(err, firehose.ErrCodeInvalidArgumentException, "Firehose is unable to assume role") { + log.Printf("[DEBUG] Firehose could not assume role referenced, retrying...") + return resource.RetryableError(err) } // Not retryable return resource.NonRetryableError(err) @@ -1335,10 +1336,7 @@ func resourceAwsKinesisFirehoseDeliveryStreamCreate(d *schema.ResourceData, meta return nil }) if err != nil { - if awsErr, ok := lastError.(awserr.Error); ok { - return fmt.Errorf("[WARN] Error creating Kinesis Firehose Delivery Stream: %s", awsErr.Error()) - } - return err + return fmt.Errorf("error creating Kinesis Firehose Delivery Stream: %s", err) } stateConf := &resource.StateChangeConf{ @@ -1459,14 +1457,12 @@ func resourceAwsKinesisFirehoseDeliveryStreamRead(d *schema.ResourceData, meta i }) if err != nil { - if awsErr, ok := err.(awserr.Error); ok { - if awsErr.Code() == "ResourceNotFoundException" { - d.SetId("") - return nil - } - return fmt.Errorf("[WARN] Error reading Kinesis Firehose Delivery Stream: %s", awsErr.Error()) + if isAWSErr(err, firehose.ErrCodeResourceNotFoundException, "") { + log.Printf("[WARN] Kinesis Firehose Delivery Stream (%s) not found, removing from state", d.Get("name").(string)) + d.SetId("") + return nil } - return err + return fmt.Errorf("error reading Kinesis Firehose Delivery Stream: %s", err) } s := resp.DeliveryStreamDescription @@ -1517,11 +1513,8 @@ func firehoseStreamStateRefreshFunc(conn *firehose.Firehose, sn string) resource } resp, err := conn.DescribeDeliveryStream(describeOpts) if err != nil { - if awsErr, ok := err.(awserr.Error); ok { - if awsErr.Code() == "ResourceNotFoundException" { - return 42, "DESTROYED", nil - } - return nil, awsErr.Code(), err + if isAWSErr(err, firehose.ErrCodeResourceNotFoundException, "") { + return 42, "DESTROYED", nil } return nil, "failed", err } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_lambda_function.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_lambda_function.go index 9d73e192b..6050df8d8 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_lambda_function.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_lambda_function.go @@ -200,9 +200,23 @@ func resourceAwsLambdaFunction() *schema.Resource { "tags": tagsSchema(), }, + + CustomizeDiff: updateComputedAttributesOnPublish, } } +func updateComputedAttributesOnPublish(d *schema.ResourceDiff, meta interface{}) error { + if needsFunctionCodeUpdate(d) { + d.SetNewComputed("last_modified") + publish := d.Get("publish").(bool) + if publish { + d.SetNewComputed("version") + d.SetNewComputed("qualified_arn") + } + } + return nil +} + // resourceAwsLambdaFunction maps to: // CreateFunction in the API / SDK func resourceAwsLambdaFunctionCreate(d *schema.ResourceData, meta interface{}) error { @@ -525,6 +539,14 @@ func resourceAwsLambdaFunctionDelete(d *schema.ResourceData, meta interface{}) e return nil } +type resourceDiffer interface { + HasChange(string) bool +} + +func needsFunctionCodeUpdate(d resourceDiffer) bool { + return d.HasChange("filename") || d.HasChange("source_code_hash") || d.HasChange("s3_bucket") || d.HasChange("s3_key") || d.HasChange("s3_object_version") +} + // resourceAwsLambdaFunctionUpdate maps to: // UpdateFunctionCode in the API / SDK func resourceAwsLambdaFunctionUpdate(d *schema.ResourceData, meta interface{}) error { @@ -672,7 +694,7 @@ func resourceAwsLambdaFunctionUpdate(d *schema.ResourceData, meta interface{}) e d.SetPartial("timeout") } - if d.HasChange("filename") || d.HasChange("source_code_hash") || d.HasChange("s3_bucket") || d.HasChange("s3_key") || d.HasChange("s3_object_version") { + if needsFunctionCodeUpdate(d) { codeReq := &lambda.UpdateFunctionCodeInput{ FunctionName: aws.String(d.Id()), Publish: aws.Bool(d.Get("publish").(bool)), diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_lb_listener_certificate.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_lb_listener_certificate.go new file mode 100644 index 000000000..39f32ad53 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_lb_listener_certificate.go @@ -0,0 +1,157 @@ +package aws + +import ( + "errors" + "fmt" + "log" + "time" + + "github.com/hashicorp/terraform/helper/resource" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/elbv2" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAwsLbListenerCertificate() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsLbListenerCertificateCreate, + Read: resourceAwsLbListenerCertificateRead, + Delete: resourceAwsLbListenerCertificateDelete, + + Schema: map[string]*schema.Schema{ + "listener_arn": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "certificate_arn": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + }, + } +} + +func resourceAwsLbListenerCertificateCreate(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).elbv2conn + + params := &elbv2.AddListenerCertificatesInput{ + ListenerArn: aws.String(d.Get("listener_arn").(string)), + Certificates: []*elbv2.Certificate{ + &elbv2.Certificate{ + CertificateArn: aws.String(d.Get("certificate_arn").(string)), + }, + }, + } + + log.Printf("[DEBUG] Adding certificate: %s of listener: %s", d.Get("certificate_arn").(string), d.Get("listener_arn").(string)) + resp, err := conn.AddListenerCertificates(params) + if err != nil { + return fmt.Errorf("Error creating LB Listener Certificate: %s", err) + } + + if len(resp.Certificates) == 0 { + return errors.New("Error creating LB Listener Certificate: no certificates returned in response") + } + + d.SetId(d.Get("listener_arn").(string) + "_" + d.Get("certificate_arn").(string)) + + return resourceAwsLbListenerCertificateRead(d, meta) +} + +func resourceAwsLbListenerCertificateRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).elbv2conn + + certificateArn := d.Get("certificate_arn").(string) + listenerArn := d.Get("listener_arn").(string) + + log.Printf("[DEBUG] Reading certificate: %s of listener: %s", certificateArn, listenerArn) + + var certificate *elbv2.Certificate + err := resource.Retry(1*time.Minute, func() *resource.RetryError { + var err error + certificate, err = findAwsLbListenerCertificate(certificateArn, listenerArn, true, nil, conn) + if err != nil { + return resource.NonRetryableError(err) + } + + if certificate == nil { + err = fmt.Errorf("certificate not found: %s", certificateArn) + if d.IsNewResource() { + return resource.RetryableError(err) + } + return resource.NonRetryableError(err) + } + + return nil + }) + if err != nil { + if certificate == nil { + log.Printf("[WARN] %s - removing from state", err) + d.SetId("") + return nil + } + return err + } + + return nil +} + +func resourceAwsLbListenerCertificateDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).elbv2conn + log.Printf("[DEBUG] Deleting certificate: %s of listener: %s", d.Get("certificate_arn").(string), d.Get("listener_arn").(string)) + + params := &elbv2.RemoveListenerCertificatesInput{ + ListenerArn: aws.String(d.Get("listener_arn").(string)), + Certificates: []*elbv2.Certificate{ + &elbv2.Certificate{ + CertificateArn: aws.String(d.Get("certificate_arn").(string)), + }, + }, + } + + _, err := conn.RemoveListenerCertificates(params) + if err != nil { + if isAWSErr(err, elbv2.ErrCodeCertificateNotFoundException, "") { + return nil + } + if isAWSErr(err, elbv2.ErrCodeListenerNotFoundException, "") { + return nil + } + return fmt.Errorf("Error removing LB Listener Certificate: %s", err) + } + + return nil +} + +func findAwsLbListenerCertificate(certificateArn, listenerArn string, skipDefault bool, nextMarker *string, conn *elbv2.ELBV2) (*elbv2.Certificate, error) { + params := &elbv2.DescribeListenerCertificatesInput{ + ListenerArn: aws.String(listenerArn), + PageSize: aws.Int64(400), + } + if nextMarker != nil { + params.Marker = nextMarker + } + + resp, err := conn.DescribeListenerCertificates(params) + if err != nil { + return nil, err + } + + for _, cert := range resp.Certificates { + if skipDefault && *cert.IsDefault { + continue + } + + if *cert.CertificateArn == certificateArn { + return cert, nil + } + } + + if resp.NextMarker != nil { + return findAwsLbListenerCertificate(certificateArn, listenerArn, skipDefault, resp.NextMarker, conn) + } + return nil, nil +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_lb_listener_rule.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_lb_listener_rule.go index 020dc7d84..578d29e18 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_lb_listener_rule.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_lb_listener_rule.go @@ -5,12 +5,15 @@ import ( "fmt" "log" "regexp" + "sort" "strconv" + "time" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/service/elbv2" "github.com/hashicorp/errwrap" + "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/helper/schema" ) @@ -36,7 +39,8 @@ func resourceAwsLbbListenerRule() *schema.Resource { }, "priority": { Type: schema.TypeInt, - Required: true, + Optional: true, + Computed: true, ForceNew: true, ValidateFunc: validateAwsLbListenerRulePriority, }, @@ -82,10 +86,10 @@ func resourceAwsLbbListenerRule() *schema.Resource { func resourceAwsLbListenerRuleCreate(d *schema.ResourceData, meta interface{}) error { elbconn := meta.(*AWSClient).elbv2conn + listenerArn := d.Get("listener_arn").(string) params := &elbv2.CreateRuleInput{ - ListenerArn: aws.String(d.Get("listener_arn").(string)), - Priority: aws.Int64(int64(d.Get("priority").(int))), + ListenerArn: aws.String(listenerArn), } actions := d.Get("action").([]interface{}) @@ -112,9 +116,34 @@ func resourceAwsLbListenerRuleCreate(d *schema.ResourceData, meta interface{}) e } } - resp, err := elbconn.CreateRule(params) - if err != nil { - return errwrap.Wrapf("Error creating LB Listener Rule: {{err}}", err) + var resp *elbv2.CreateRuleOutput + if v, ok := d.GetOk("priority"); ok { + var err error + params.Priority = aws.Int64(int64(v.(int))) + resp, err = elbconn.CreateRule(params) + if err != nil { + return fmt.Errorf("Error creating LB Listener Rule: %v", err) + } + } else { + err := resource.Retry(5*time.Minute, func() *resource.RetryError { + var err error + priority, err := highestListenerRulePriority(elbconn, listenerArn) + if err != nil { + return resource.NonRetryableError(err) + } + params.Priority = aws.Int64(priority + 1) + resp, err = elbconn.CreateRule(params) + if err != nil { + if isAWSErr(err, elbv2.ErrCodePriorityInUseException, "") { + return resource.RetryableError(err) + } + return resource.NonRetryableError(err) + } + return nil + }) + if err != nil { + return fmt.Errorf("Error creating LB Listener Rule: %v", err) + } } if len(resp.Rules) == 0 { @@ -157,7 +186,7 @@ func resourceAwsLbListenerRuleRead(d *schema.ResourceData, meta interface{}) err d.Set("priority", 99999) } else { if priority, err := strconv.Atoi(*rule.Priority); err != nil { - return errwrap.Wrapf("Cannot convert rule priority %q to int: {{err}}", err) + return fmt.Errorf("Cannot convert rule priority %q to int: {{err}}", err) } else { d.Set("priority", priority) } @@ -278,8 +307,8 @@ func resourceAwsLbListenerRuleDelete(d *schema.ResourceData, meta interface{}) e func validateAwsLbListenerRulePriority(v interface{}, k string) (ws []string, errors []error) { value := v.(int) - if value < 1 || value > 99999 { - errors = append(errors, fmt.Errorf("%q must be in the range 1-99999", k)) + if value < 1 || (value > 50000 && value != 99999) { + errors = append(errors, fmt.Errorf("%q must be in the range 1-50000 for normal rule or 99999 for default rule", k)) } return } @@ -312,3 +341,39 @@ func isRuleNotFound(err error) bool { elberr, ok := err.(awserr.Error) return ok && elberr.Code() == "RuleNotFound" } + +func highestListenerRulePriority(conn *elbv2.ELBV2, arn string) (priority int64, err error) { + var priorities []int + var nextMarker *string + + for { + out, aerr := conn.DescribeRules(&elbv2.DescribeRulesInput{ + ListenerArn: aws.String(arn), + Marker: nextMarker, + }) + if aerr != nil { + err = aerr + return + } + for _, rule := range out.Rules { + if *rule.Priority != "default" { + p, _ := strconv.Atoi(*rule.Priority) + priorities = append(priorities, p) + } + } + if out.NextMarker == nil { + break + } + nextMarker = out.NextMarker + } + + if len(priorities) == 0 { + priority = 0 + return + } + + sort.IntSlice(priorities).Sort() + priority = int64(priorities[len(priorities)-1]) + + return +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_lb_target_group.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_lb_target_group.go index d45a77228..bfda18e3e 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_lb_target_group.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_lb_target_group.go @@ -330,7 +330,11 @@ func resourceAwsLbTargetGroupUpdate(d *schema.ResourceData, meta interface{}) er }) } - if d.HasChange("stickiness") { + // In CustomizeDiff we allow LB stickiness to be declared for TCP target + // groups, so long as it's not enabled. This allows for better support for + // modules, but also means we need to completely skip sending the data to the + // API if it's defined on a TCP target group. + if d.HasChange("stickiness") && d.Get("protocol") != "TCP" { stickinessBlocks := d.Get("stickiness").([]interface{}) if len(stickinessBlocks) == 1 { stickiness := stickinessBlocks[0].(map[string]interface{}) @@ -541,8 +545,45 @@ func flattenAwsLbTargetGroupResource(d *schema.ResourceData, meta interface{}, t return errwrap.Wrapf("Error retrieving Target Group Attributes: {{err}}", err) } + // We only read in the stickiness attributes if the target group is not + // TCP-based. This ensures we don't end up causing a spurious diff if someone + // has defined the stickiness block on a TCP target group (albeit with + // false), for which this update would clobber the state coming from config + // for. + // + // This is a workaround to support module design where the module needs to + // support HTTP and TCP target groups. + switch { + case *targetGroup.Protocol != "TCP": + if err = flattenAwsLbTargetGroupStickiness(d, attrResp.Attributes); err != nil { + return err + } + case *targetGroup.Protocol == "TCP" && len(d.Get("stickiness").([]interface{})) < 1: + if err = d.Set("stickiness", []interface{}{}); err != nil { + return err + } + } + + tagsResp, err := elbconn.DescribeTags(&elbv2.DescribeTagsInput{ + ResourceArns: []*string{aws.String(d.Id())}, + }) + if err != nil { + return errwrap.Wrapf("Error retrieving Target Group Tags: {{err}}", err) + } + for _, t := range tagsResp.TagDescriptions { + if *t.ResourceArn == d.Id() { + if err := d.Set("tags", tagsToMapELBv2(t.Tags)); err != nil { + return err + } + } + } + + return nil +} + +func flattenAwsLbTargetGroupStickiness(d *schema.ResourceData, attributes []*elbv2.TargetGroupAttribute) error { stickinessMap := map[string]interface{}{} - for _, attr := range attrResp.Attributes { + for _, attr := range attributes { switch *attr.Key { case "stickiness.enabled": enabled, err := strconv.ParseBool(*attr.Value) @@ -574,21 +615,6 @@ func flattenAwsLbTargetGroupResource(d *schema.ResourceData, meta interface{}, t if err := d.Set("stickiness", setStickyMap); err != nil { return err } - - tagsResp, err := elbconn.DescribeTags(&elbv2.DescribeTagsInput{ - ResourceArns: []*string{aws.String(d.Id())}, - }) - if err != nil { - return errwrap.Wrapf("Error retrieving Target Group Tags: {{err}}", err) - } - for _, t := range tagsResp.TagDescriptions { - if *t.ResourceArn == d.Id() { - if err := d.Set("tags", tagsToMapELBv2(t.Tags)); err != nil { - return err - } - } - } - return nil } @@ -596,9 +622,11 @@ func resourceAwsLbTargetGroupCustomizeDiff(diff *schema.ResourceDiff, v interfac protocol := diff.Get("protocol").(string) if protocol == "TCP" { // TCP load balancers do not support stickiness - stickinessBlocks := diff.Get("stickiness").([]interface{}) - if len(stickinessBlocks) != 0 { - return fmt.Errorf("Network Load Balancers do not support Stickiness") + if stickinessBlocks := diff.Get("stickiness").([]interface{}); len(stickinessBlocks) == 1 { + stickiness := stickinessBlocks[0].(map[string]interface{}) + if val := stickiness["enabled"].(bool); val { + return fmt.Errorf("Network Load Balancers do not support Stickiness") + } } } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_rds_cluster.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_rds_cluster.go index 95284dbc9..f76d76452 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_rds_cluster.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_rds_cluster.go @@ -95,6 +95,11 @@ func resourceAwsRDSCluster() *schema.Resource { Computed: true, }, + "hosted_zone_id": { + Type: schema.TypeString, + Computed: true, + }, + "engine": { Type: schema.TypeString, Optional: true, @@ -249,6 +254,12 @@ func resourceAwsRDSCluster() *schema.Resource { Computed: true, }, + "source_region": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + }, + "tags": tagsSchema(), }, } @@ -408,6 +419,10 @@ func resourceAwsRDSClusterCreate(d *schema.ResourceData, meta interface{}) error createOpts.KmsKeyId = aws.String(attr.(string)) } + if attr, ok := d.GetOk("source_region"); ok { + createOpts.SourceRegion = aws.String(attr.(string)) + } + log.Printf("[DEBUG] Create RDS Cluster as read replica: %s", createOpts) resp, err := conn.CreateDBCluster(createOpts) if err != nil { @@ -590,6 +605,7 @@ func flattenAwsRdsClusterResource(d *schema.ResourceData, meta interface{}, dbc d.Set("reader_endpoint", dbc.ReaderEndpoint) d.Set("replication_source_identifier", dbc.ReplicationSourceIdentifier) d.Set("iam_database_authentication_enabled", dbc.IAMDatabaseAuthenticationEnabled) + d.Set("hosted_zone_id", dbc.HostedZoneId) var vpcg []string for _, g := range dbc.VpcSecurityGroups { diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_rds_cluster_instance.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_rds_cluster_instance.go index e73a8546c..7c212a7c7 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_rds_cluster_instance.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_rds_cluster_instance.go @@ -176,6 +176,8 @@ func resourceAwsRDSClusterInstance() *schema.Resource { "availability_zone": { Type: schema.TypeString, + Optional: true, + ForceNew: true, Computed: true, }, @@ -211,6 +213,10 @@ func resourceAwsRDSClusterInstanceCreate(d *schema.ResourceData, meta interface{ Tags: tags, } + if attr, ok := d.GetOk("availability_zone"); ok { + createOpts.AvailabilityZone = aws.String(attr.(string)) + } + if attr, ok := d.GetOk("db_parameter_group_name"); ok { createOpts.DBParameterGroupName = aws.String(attr.(string)) } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_redshift_cluster.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_redshift_cluster.go index c652b25ae..b21161ee9 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_redshift_cluster.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_redshift_cluster.go @@ -8,7 +8,6 @@ import ( "time" "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/service/redshift" "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/helper/schema" @@ -484,7 +483,7 @@ func resourceAwsRedshiftClusterCreate(d *schema.ResourceData, meta interface{}) stateConf := &resource.StateChangeConf{ Pending: []string{"creating", "backing-up", "modifying", "restoring"}, Target: []string{"available"}, - Refresh: resourceAwsRedshiftClusterStateRefreshFunc(d, meta), + Refresh: resourceAwsRedshiftClusterStateRefreshFunc(d.Id(), conn), Timeout: 75 * time.Minute, MinTimeout: 10 * time.Second, } @@ -523,12 +522,10 @@ func resourceAwsRedshiftClusterRead(d *schema.ResourceData, meta interface{}) er }) if err != nil { - if awsErr, ok := err.(awserr.Error); ok { - if "ClusterNotFound" == awsErr.Code() { - d.SetId("") - log.Printf("[DEBUG] Redshift Cluster (%s) not found", d.Id()) - return nil - } + if isAWSErr(err, redshift.ErrCodeClusterNotFoundFault, "") { + d.SetId("") + log.Printf("[DEBUG] Redshift Cluster (%s) not found", d.Id()) + return nil } log.Printf("[DEBUG] Error describing Redshift Cluster (%s)", d.Id()) return err @@ -766,7 +763,7 @@ func resourceAwsRedshiftClusterUpdate(d *schema.ResourceData, meta interface{}) stateConf := &resource.StateChangeConf{ Pending: []string{"creating", "deleting", "rebooting", "resizing", "renaming", "modifying"}, Target: []string{"available"}, - Refresh: resourceAwsRedshiftClusterStateRefreshFunc(d, meta), + Refresh: resourceAwsRedshiftClusterStateRefreshFunc(d.Id(), conn), Timeout: 40 * time.Minute, MinTimeout: 10 * time.Second, } @@ -901,33 +898,10 @@ func resourceAwsRedshiftClusterDelete(d *schema.ResourceData, meta interface{}) } } - log.Printf("[DEBUG] Redshift Cluster delete options: %s", deleteOpts) - err := resource.Retry(15*time.Minute, func() *resource.RetryError { - _, err := conn.DeleteCluster(&deleteOpts) - awsErr, ok := err.(awserr.Error) - if ok && awsErr.Code() == "InvalidClusterState" { - return resource.RetryableError(err) - } - - return resource.NonRetryableError(err) - }) - + log.Printf("[DEBUG] Deleting Redshift Cluster: %s", deleteOpts) + _, err := deleteAwsRedshiftCluster(&deleteOpts, conn) if err != nil { - return fmt.Errorf("[ERROR] Error deleting Redshift Cluster (%s): %s", d.Id(), err) - } - - stateConf := &resource.StateChangeConf{ - Pending: []string{"available", "creating", "deleting", "rebooting", "resizing", "renaming", "final-snapshot"}, - Target: []string{"destroyed"}, - Refresh: resourceAwsRedshiftClusterStateRefreshFunc(d, meta), - Timeout: 40 * time.Minute, - MinTimeout: 5 * time.Second, - } - - // Wait, catching any errors - _, err = stateConf.WaitForState() - if err != nil { - return fmt.Errorf("[ERROR] Error deleting Redshift Cluster (%s): %s", d.Id(), err) + return err } log.Printf("[INFO] Redshift Cluster %s successfully deleted", d.Id()) @@ -935,29 +909,52 @@ func resourceAwsRedshiftClusterDelete(d *schema.ResourceData, meta interface{}) return nil } -func resourceAwsRedshiftClusterStateRefreshFunc(d *schema.ResourceData, meta interface{}) resource.StateRefreshFunc { - return func() (interface{}, string, error) { - conn := meta.(*AWSClient).redshiftconn +func deleteAwsRedshiftCluster(opts *redshift.DeleteClusterInput, conn *redshift.Redshift) (interface{}, error) { + id := *opts.ClusterIdentifier + log.Printf("[INFO] Deleting Redshift Cluster %q", id) + err := resource.Retry(15*time.Minute, func() *resource.RetryError { + _, err := conn.DeleteCluster(opts) + if isAWSErr(err, redshift.ErrCodeInvalidClusterStateFault, "") { + return resource.RetryableError(err) + } - log.Printf("[INFO] Reading Redshift Cluster Information: %s", d.Id()) + return resource.NonRetryableError(err) + }) + if err != nil { + return nil, fmt.Errorf("[ERROR] Error deleting Redshift Cluster (%s): %s", + id, err) + } + + stateConf := &resource.StateChangeConf{ + Pending: []string{"available", "creating", "deleting", "rebooting", "resizing", "renaming", "final-snapshot"}, + Target: []string{"destroyed"}, + Refresh: resourceAwsRedshiftClusterStateRefreshFunc(id, conn), + Timeout: 40 * time.Minute, + MinTimeout: 5 * time.Second, + } + + return stateConf.WaitForState() +} + +func resourceAwsRedshiftClusterStateRefreshFunc(id string, conn *redshift.Redshift) resource.StateRefreshFunc { + return func() (interface{}, string, error) { + log.Printf("[INFO] Reading Redshift Cluster Information: %s", id) resp, err := conn.DescribeClusters(&redshift.DescribeClustersInput{ - ClusterIdentifier: aws.String(d.Id()), + ClusterIdentifier: aws.String(id), }) if err != nil { - if awsErr, ok := err.(awserr.Error); ok { - if "ClusterNotFound" == awsErr.Code() { - return 42, "destroyed", nil - } + if isAWSErr(err, redshift.ErrCodeClusterNotFoundFault, "") { + return 42, "destroyed", nil } - log.Printf("[WARN] Error on retrieving Redshift Cluster (%s) when waiting: %s", d.Id(), err) + log.Printf("[WARN] Error on retrieving Redshift Cluster (%s) when waiting: %s", id, err) return nil, "", err } var rsc *redshift.Cluster for _, c := range resp.Clusters { - if *c.ClusterIdentifier == d.Id() { + if *c.ClusterIdentifier == id { rsc = c } } @@ -967,7 +964,7 @@ func resourceAwsRedshiftClusterStateRefreshFunc(d *schema.ResourceData, meta int } if rsc.ClusterStatus != nil { - log.Printf("[DEBUG] Redshift Cluster status (%s): %s", d.Id(), *rsc.ClusterStatus) + log.Printf("[DEBUG] Redshift Cluster status (%s): %s", id, *rsc.ClusterStatus) } return rsc, *rsc.ClusterStatus, nil diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_route53_record.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_route53_record.go index 7884b8a9f..322fe3fbe 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_route53_record.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_route53_record.go @@ -235,6 +235,12 @@ func resourceAwsRoute53Record() *schema.Resource { Optional: true, Set: schema.HashString, }, + + "allow_overwrite": { + Type: schema.TypeBool, + Optional: true, + Default: true, + }, }, } } @@ -382,6 +388,16 @@ func resourceAwsRoute53RecordCreate(d *schema.ResourceData, meta interface{}) er return err } + // Protect existing DNS records which might be managed in another way + // Use UPSERT only if the overwrite flag is true or if the current action is an update + // Else CREATE is used and fail if the same record exists + var action string + if d.Get("allow_overwrite").(bool) || !d.IsNewResource() { + action = "UPSERT" + } else { + action = "CREATE" + } + // Create the new records. We abuse StateChangeConf for this to // retry for us since Route53 sometimes returns errors about another // operation happening at the same time. @@ -389,7 +405,7 @@ func resourceAwsRoute53RecordCreate(d *schema.ResourceData, meta interface{}) er Comment: aws.String("Managed by Terraform"), Changes: []*route53.Change{ { - Action: aws.String("UPSERT"), + Action: aws.String(action), ResourceRecordSet: rec, }, }, @@ -922,5 +938,6 @@ func parseRecordId(id string) [4]string { } } } + recName = strings.TrimSuffix(recName, ".") return [4]string{recZone, recName, recType, recSet} } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_s3_bucket.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_s3_bucket.go index abf4bc7a1..a7af215eb 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_s3_bucket.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_s3_bucket.go @@ -373,6 +373,36 @@ func resourceAwsS3Bucket() *schema.Resource { Optional: true, ValidateFunc: validateS3BucketReplicationDestinationStorageClass, }, + "replica_kms_key_id": { + Type: schema.TypeString, + Optional: true, + }, + }, + }, + }, + "source_selection_criteria": { + Type: schema.TypeSet, + Optional: true, + MinItems: 1, + MaxItems: 1, + Set: sourceSelectionCriteriaHash, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "sse_kms_encrypted_objects": { + Type: schema.TypeSet, + Optional: true, + MinItems: 1, + MaxItems: 1, + Set: sourceSseKmsObjectsHash, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "enabled": { + Type: schema.TypeBool, + Required: true, + }, + }, + }, + }, }, }, }, @@ -970,19 +1000,17 @@ func resourceAwsS3BucketRead(d *schema.ResourceData, meta interface{}) error { Bucket: aws.String(d.Id()), }) }) - replication := replicationResponse.(*s3.GetBucketReplicationOutput) if err != nil { if awsError, ok := err.(awserr.RequestFailure); ok && awsError.StatusCode() != 404 { return err } } + replication := replicationResponse.(*s3.GetBucketReplicationOutput) log.Printf("[DEBUG] S3 Bucket: %s, read replication configuration: %v", d.Id(), replication) - if r := replication.ReplicationConfiguration; r != nil { - if err := d.Set("replication_configuration", flattenAwsS3BucketReplicationConfiguration(replication.ReplicationConfiguration)); err != nil { - log.Printf("[DEBUG] Error setting replication configuration: %s", err) - return err - } + if err := d.Set("replication_configuration", flattenAwsS3BucketReplicationConfiguration(replication.ReplicationConfiguration)); err != nil { + log.Printf("[DEBUG] Error setting replication configuration: %s", err) + return err } // Read the bucket server side encryption configuration @@ -1019,10 +1047,10 @@ func resourceAwsS3BucketRead(d *schema.ResourceData, meta interface{}) error { }, ) }) - location := locationResponse.(*s3.GetBucketLocationOutput) if err != nil { return err } + location := locationResponse.(*s3.GetBucketLocationOutput) var region string if location.LocationConstraint != nil { region = *location.LocationConstraint @@ -1373,10 +1401,10 @@ func websiteEndpoint(s3conn *s3.S3, d *schema.ResourceData) (*S3Website, error) }, ) }) - location := locationResponse.(*s3.GetBucketLocationOutput) if err != nil { return nil, err } + location := locationResponse.(*s3.GetBucketLocationOutput) var region string if location.LocationConstraint != nil { region = *location.LocationConstraint @@ -1682,17 +1710,37 @@ func resourceAwsS3BucketReplicationConfigurationUpdate(s3conn *s3.S3, d *schema. } ruleDestination := &s3.Destination{} - if destination, ok := rr["destination"]; ok { - dest := destination.(*schema.Set).List() - - bd := dest[0].(map[string]interface{}) + if dest, ok := rr["destination"].(*schema.Set); ok && dest.Len() > 0 { + bd := dest.List()[0].(map[string]interface{}) ruleDestination.Bucket = aws.String(bd["bucket"].(string)) if storageClass, ok := bd["storage_class"]; ok && storageClass != "" { ruleDestination.StorageClass = aws.String(storageClass.(string)) } + + if replicaKmsKeyId, ok := bd["replica_kms_key_id"]; ok && replicaKmsKeyId != "" { + ruleDestination.EncryptionConfiguration = &s3.EncryptionConfiguration{ + ReplicaKmsKeyID: aws.String(replicaKmsKeyId.(string)), + } + } } rcRule.Destination = ruleDestination + + if ssc, ok := rr["source_selection_criteria"].(*schema.Set); ok && ssc.Len() > 0 { + sscValues := ssc.List()[0].(map[string]interface{}) + ruleSsc := &s3.SourceSelectionCriteria{} + if sseKms, ok := sscValues["sse_kms_encrypted_objects"].(*schema.Set); ok && sseKms.Len() > 0 { + sseKmsValues := sseKms.List()[0].(map[string]interface{}) + sseKmsEncryptedObjects := &s3.SseKmsEncryptedObjects{} + if sseKmsValues["enabled"].(bool) { + sseKmsEncryptedObjects.Status = aws.String(s3.SseKmsEncryptedObjectsStatusEnabled) + } else { + sseKmsEncryptedObjects.Status = aws.String(s3.SseKmsEncryptedObjectsStatusDisabled) + } + ruleSsc.SseKmsEncryptedObjects = sseKmsEncryptedObjects + } + rcRule.SourceSelectionCriteria = ruleSsc + } rules = append(rules, rcRule) } @@ -1893,6 +1941,11 @@ func flattenAwsS3ServerSideEncryptionConfiguration(c *s3.ServerSideEncryptionCon func flattenAwsS3BucketReplicationConfiguration(r *s3.ReplicationConfiguration) []map[string]interface{} { replication_configuration := make([]map[string]interface{}, 0, 1) + + if r == nil { + return replication_configuration + } + m := make(map[string]interface{}) if r.Role != nil && *r.Role != "" { @@ -1910,6 +1963,11 @@ func flattenAwsS3BucketReplicationConfiguration(r *s3.ReplicationConfiguration) if v.Destination.StorageClass != nil { rd["storage_class"] = *v.Destination.StorageClass } + if v.Destination.EncryptionConfiguration != nil { + if v.Destination.EncryptionConfiguration.ReplicaKmsKeyID != nil { + rd["replica_kms_key_id"] = *v.Destination.EncryptionConfiguration.ReplicaKmsKeyID + } + } t["destination"] = schema.NewSet(destinationHash, []interface{}{rd}) } @@ -1922,6 +1980,19 @@ func flattenAwsS3BucketReplicationConfiguration(r *s3.ReplicationConfiguration) if v.Status != nil { t["status"] = *v.Status } + if vssc := v.SourceSelectionCriteria; vssc != nil { + tssc := make(map[string]interface{}) + if vssc.SseKmsEncryptedObjects != nil { + tSseKms := make(map[string]interface{}) + if *vssc.SseKmsEncryptedObjects.Status == s3.SseKmsEncryptedObjectsStatusEnabled { + tSseKms["enabled"] = true + } else if *vssc.SseKmsEncryptedObjects.Status == s3.SseKmsEncryptedObjectsStatusDisabled { + tSseKms["enabled"] = false + } + tssc["sse_kms_encrypted_objects"] = schema.NewSet(sourceSseKmsObjectsHash, []interface{}{tSseKms}) + } + t["source_selection_criteria"] = schema.NewSet(sourceSelectionCriteriaHash, []interface{}{tssc}) + } rules = append(rules, t) } m["rules"] = schema.NewSet(rulesHash, rules) @@ -2083,6 +2154,12 @@ func rulesHash(v interface{}) int { if v, ok := m["status"]; ok { buf.WriteString(fmt.Sprintf("%s-", v.(string))) } + if v, ok := m["destination"].(*schema.Set); ok && v.Len() > 0 { + buf.WriteString(fmt.Sprintf("%d-", destinationHash(v.List()[0]))) + } + if v, ok := m["source_selection_criteria"].(*schema.Set); ok && v.Len() > 0 && v.List()[0] != nil { + buf.WriteString(fmt.Sprintf("%d-", sourceSelectionCriteriaHash(v.List()[0]))) + } return hashcode.String(buf.String()) } @@ -2096,6 +2173,33 @@ func destinationHash(v interface{}) int { if v, ok := m["storage_class"]; ok { buf.WriteString(fmt.Sprintf("%s-", v.(string))) } + if v, ok := m["replica_kms_key_id"]; ok { + buf.WriteString(fmt.Sprintf("%s-", v.(string))) + } + return hashcode.String(buf.String()) +} + +func sourceSelectionCriteriaHash(v interface{}) int { + // v is nil if empty source_selection_criteria is given. + if v == nil { + return 0 + } + var buf bytes.Buffer + m := v.(map[string]interface{}) + + if v, ok := m["sse_kms_encrypted_objects"].(*schema.Set); ok && v.Len() > 0 { + buf.WriteString(fmt.Sprintf("%d-", sourceSseKmsObjectsHash(v.List()[0]))) + } + return hashcode.String(buf.String()) +} + +func sourceSseKmsObjectsHash(v interface{}) int { + var buf bytes.Buffer + m := v.(map[string]interface{}) + + if v, ok := m["enabled"]; ok { + buf.WriteString(fmt.Sprintf("%t-", v.(bool))) + } return hashcode.String(buf.String()) } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_s3_bucket_metric.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_s3_bucket_metric.go new file mode 100644 index 000000000..37ed7f137 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_s3_bucket_metric.go @@ -0,0 +1,218 @@ +package aws + +import ( + "fmt" + "log" + "strings" + "time" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/s3" + "github.com/hashicorp/terraform/helper/resource" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAwsS3BucketMetric() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsS3BucketMetricPut, + Read: resourceAwsS3BucketMetricRead, + Update: resourceAwsS3BucketMetricPut, + Delete: resourceAwsS3BucketMetricDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + + Schema: map[string]*schema.Schema{ + "bucket": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "filter": { + Type: schema.TypeList, + Optional: true, + MaxItems: 1, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "prefix": { + Type: schema.TypeString, + Optional: true, + }, + "tags": tagsSchema(), + }, + }, + }, + "name": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + }, + } +} + +func resourceAwsS3BucketMetricPut(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).s3conn + bucket := d.Get("bucket").(string) + name := d.Get("name").(string) + + metricsConfiguration := &s3.MetricsConfiguration{ + Id: aws.String(name), + } + + if v, ok := d.GetOk("filter"); ok { + filterList := v.([]interface{}) + filterMap := filterList[0].(map[string]interface{}) + metricsConfiguration.Filter = expandS3MetricsFilter(filterMap) + } + + input := &s3.PutBucketMetricsConfigurationInput{ + Bucket: aws.String(bucket), + Id: aws.String(name), + MetricsConfiguration: metricsConfiguration, + } + + log.Printf("[DEBUG] Putting metric configuration: %s", input) + err := resource.Retry(1*time.Minute, func() *resource.RetryError { + _, err := conn.PutBucketMetricsConfiguration(input) + if err != nil { + if isAWSErr(err, s3.ErrCodeNoSuchBucket, "") { + return resource.RetryableError(err) + } + return resource.NonRetryableError(err) + } + return nil + }) + if err != nil { + return fmt.Errorf("Error putting S3 metric configuration: %s", err) + } + + d.SetId(fmt.Sprintf("%s:%s", bucket, name)) + + return resourceAwsS3BucketMetricRead(d, meta) +} + +func resourceAwsS3BucketMetricDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).s3conn + + bucket, name, err := resourceAwsS3BucketMetricParseID(d.Id()) + if err != nil { + return err + } + + input := &s3.DeleteBucketMetricsConfigurationInput{ + Bucket: aws.String(bucket), + Id: aws.String(name), + } + + log.Printf("[DEBUG] Deleting S3 bucket metric configuration: %s", input) + _, err = conn.DeleteBucketMetricsConfiguration(input) + if err != nil { + if isAWSErr(err, s3.ErrCodeNoSuchBucket, "") || isAWSErr(err, "NoSuchConfiguration", "The specified configuration does not exist.") { + log.Printf("[WARN] %s S3 bucket metrics configuration not found, removing from state.", d.Id()) + d.SetId("") + return nil + } + return fmt.Errorf("Error deleting S3 metric configuration: %s", err) + } + + d.SetId("") + return nil +} + +func resourceAwsS3BucketMetricRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).s3conn + + bucket, name, err := resourceAwsS3BucketMetricParseID(d.Id()) + if err != nil { + return err + } + + d.Set("bucket", bucket) + d.Set("name", name) + + input := &s3.GetBucketMetricsConfigurationInput{ + Bucket: aws.String(bucket), + Id: aws.String(name), + } + + log.Printf("[DEBUG] Reading S3 bucket metrics configuration: %s", input) + output, err := conn.GetBucketMetricsConfiguration(input) + if err != nil { + if isAWSErr(err, s3.ErrCodeNoSuchBucket, "") || isAWSErr(err, "NoSuchConfiguration", "The specified configuration does not exist.") { + log.Printf("[WARN] %s S3 bucket metrics configuration not found, removing from state.", d.Id()) + d.SetId("") + return nil + } + return err + } + + if output.MetricsConfiguration.Filter != nil { + if err := d.Set("filter", []interface{}{flattenS3MetricsFilter(output.MetricsConfiguration.Filter)}); err != nil { + return err + } + } + + return nil +} + +func expandS3MetricsFilter(m map[string]interface{}) *s3.MetricsFilter { + var prefix string + if v, ok := m["prefix"]; ok { + prefix = v.(string) + } + + var tags []*s3.Tag + if v, ok := m["tags"]; ok { + tags = tagsFromMapS3(v.(map[string]interface{})) + } + + metricsFilter := &s3.MetricsFilter{} + if prefix != "" && len(tags) > 0 { + metricsFilter.And = &s3.MetricsAndOperator{ + Prefix: aws.String(prefix), + Tags: tags, + } + } else if len(tags) > 1 { + metricsFilter.And = &s3.MetricsAndOperator{ + Tags: tags, + } + } else if len(tags) == 1 { + metricsFilter.Tag = tags[0] + } else { + metricsFilter.Prefix = aws.String(prefix) + } + return metricsFilter +} + +func flattenS3MetricsFilter(metricsFilter *s3.MetricsFilter) map[string]interface{} { + m := make(map[string]interface{}) + + if metricsFilter.And != nil { + and := *metricsFilter.And + if and.Prefix != nil { + m["prefix"] = *and.Prefix + } + if and.Tags != nil { + m["tags"] = tagsToMapS3(and.Tags) + } + } else if metricsFilter.Prefix != nil { + m["prefix"] = *metricsFilter.Prefix + } else if metricsFilter.Tag != nil { + tags := []*s3.Tag{ + metricsFilter.Tag, + } + m["tags"] = tagsToMapS3(tags) + } + return m +} + +func resourceAwsS3BucketMetricParseID(id string) (string, string, error) { + idParts := strings.Split(id, ":") + if len(idParts) != 2 { + return "", "", fmt.Errorf("please make sure the ID is in the form BUCKET:NAME (i.e. my-bucket:EntireBucket") + } + bucket := idParts[0] + name := idParts[1] + return bucket, name, nil +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_service_discovery_service.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_service_discovery_service.go index 167b51ab7..38f07bb73 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_service_discovery_service.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_service_discovery_service.go @@ -52,14 +52,29 @@ func resourceAwsServiceDiscoveryService() *schema.Resource { Required: true, }, "type": { - Type: schema.TypeString, - Required: true, - ForceNew: true, - ValidateFunc: validateServiceDiscoveryServiceDnsRecordsType, + Type: schema.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validateStringIn( + servicediscovery.RecordTypeSrv, + servicediscovery.RecordTypeA, + servicediscovery.RecordTypeAaaa, + servicediscovery.RecordTypeCname, + ), }, }, }, }, + "routing_policy": { + Type: schema.TypeString, + Optional: true, + ForceNew: true, + Default: servicediscovery.RoutingPolicyMultivalue, + ValidateFunc: validateStringIn( + servicediscovery.RoutingPolicyMultivalue, + servicediscovery.RoutingPolicyWeighted, + ), + }, }, }, }, @@ -78,10 +93,14 @@ func resourceAwsServiceDiscoveryService() *schema.Resource { Optional: true, }, "type": { - Type: schema.TypeString, - Optional: true, - ForceNew: true, - ValidateFunc: validateServiceDiscoveryServiceHealthCheckConfigType, + Type: schema.TypeString, + Optional: true, + ForceNew: true, + ValidateFunc: validateStringIn( + servicediscovery.HealthCheckTypeHttp, + servicediscovery.HealthCheckTypeHttps, + servicediscovery.HealthCheckTypeTcp, + ), }, }, }, @@ -220,6 +239,9 @@ func expandServiceDiscoveryDnsConfig(configured map[string]interface{}) *service drs[i] = dr } result.DnsRecords = drs + if v, ok := configured["routing_policy"]; ok && v != "" { + result.RoutingPolicy = aws.String(v.(string)) + } return result } @@ -228,6 +250,7 @@ func flattenServiceDiscoveryDnsConfig(config *servicediscovery.DnsConfig) []map[ result := map[string]interface{}{} result["namespace_id"] = *config.NamespaceId + result["routing_policy"] = *config.RoutingPolicy drs := make([]map[string]interface{}, 0) for _, v := range config.DnsRecords { dr := map[string]interface{}{} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_service_discovery_service_migrate.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_service_discovery_service_migrate.go new file mode 100644 index 000000000..d0fd571f7 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_service_discovery_service_migrate.go @@ -0,0 +1,36 @@ +package aws + +import ( + "fmt" + "log" + + "github.com/aws/aws-sdk-go/service/servicediscovery" + "github.com/hashicorp/terraform/terraform" +) + +func resourceAwsServiceDiscoveryServiceMigrateState( + v int, is *terraform.InstanceState, meta interface{}) (*terraform.InstanceState, error) { + switch v { + case 0: + log.Println("[INFO] Found AWS ServiceDiscovery Service State v0; migrating to v1") + return migrateServiceDiscoveryServiceStateV0toV1(is) + default: + return is, fmt.Errorf("Unexpected schema version: %d", v) + } +} + +func migrateServiceDiscoveryServiceStateV0toV1(is *terraform.InstanceState) (*terraform.InstanceState, error) { + if is.Empty() { + log.Println("[DEBUG] Empty InstanceState; nothing to migrate.") + return is, nil + } + + log.Printf("[DEBUG] Attributes before migration: %#v", is.Attributes) + + if v, ok := is.Attributes["dns_config.0.routing_policy"]; !ok && v == "" { + is.Attributes["dns_config.0.routing_policy"] = servicediscovery.RoutingPolicyMultivalue + } + + log.Printf("[DEBUG] Attributes after migration: %#v", is.Attributes) + return is, nil +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ses_domain_mail_from.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ses_domain_mail_from.go new file mode 100644 index 000000000..c7361a607 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ses_domain_mail_from.go @@ -0,0 +1,110 @@ +package aws + +import ( + "fmt" + "log" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/ses" + "github.com/hashicorp/terraform/helper/schema" +) + +func resourceAwsSesDomainMailFrom() *schema.Resource { + return &schema.Resource{ + Create: resourceAwsSesDomainMailFromSet, + Read: resourceAwsSesDomainMailFromRead, + Update: resourceAwsSesDomainMailFromSet, + Delete: resourceAwsSesDomainMailFromDelete, + Importer: &schema.ResourceImporter{ + State: schema.ImportStatePassthrough, + }, + + Schema: map[string]*schema.Schema{ + "domain": { + Type: schema.TypeString, + Required: true, + ForceNew: true, + }, + "mail_from_domain": { + Type: schema.TypeString, + Required: true, + }, + "behavior_on_mx_failure": { + Type: schema.TypeString, + Optional: true, + Default: ses.BehaviorOnMXFailureUseDefaultValue, + }, + }, + } +} + +func resourceAwsSesDomainMailFromSet(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).sesConn + + behaviorOnMxFailure := d.Get("behavior_on_mx_failure").(string) + domainName := d.Get("domain").(string) + mailFromDomain := d.Get("mail_from_domain").(string) + + input := &ses.SetIdentityMailFromDomainInput{ + BehaviorOnMXFailure: aws.String(behaviorOnMxFailure), + Identity: aws.String(domainName), + MailFromDomain: aws.String(mailFromDomain), + } + + _, err := conn.SetIdentityMailFromDomain(input) + if err != nil { + return fmt.Errorf("Error setting MAIL FROM domain: %s", err) + } + + d.SetId(domainName) + + return resourceAwsSesDomainMailFromRead(d, meta) +} + +func resourceAwsSesDomainMailFromRead(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).sesConn + + domainName := d.Id() + + readOpts := &ses.GetIdentityMailFromDomainAttributesInput{ + Identities: []*string{ + aws.String(domainName), + }, + } + + out, err := conn.GetIdentityMailFromDomainAttributes(readOpts) + if err != nil { + log.Printf("error fetching MAIL FROM domain attributes for %s: %s", domainName, err) + return err + } + + d.Set("domain", domainName) + + if v, ok := out.MailFromDomainAttributes[domainName]; ok { + d.Set("behavior_on_mx_failure", v.BehaviorOnMXFailure) + d.Set("mail_from_domain", v.MailFromDomain) + } else { + d.Set("behavior_on_mx_failure", v.BehaviorOnMXFailure) + d.Set("mail_from_domain", "") + } + + return nil +} + +func resourceAwsSesDomainMailFromDelete(d *schema.ResourceData, meta interface{}) error { + conn := meta.(*AWSClient).sesConn + + domainName := d.Id() + + deleteOpts := &ses.SetIdentityMailFromDomainInput{ + Identity: aws.String(domainName), + MailFromDomain: nil, + } + + _, err := conn.SetIdentityMailFromDomain(deleteOpts) + if err != nil { + return fmt.Errorf("Error deleting SES domain identity: %s", err) + } + + return nil +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sns_topic.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sns_topic.go index 2f8a55f4c..3fba83d9a 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sns_topic.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sns_topic.go @@ -6,9 +6,7 @@ import ( "strings" "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/service/sns" - "github.com/hashicorp/errwrap" "github.com/hashicorp/terraform/helper/resource" "github.com/hashicorp/terraform/helper/schema" "github.com/hashicorp/terraform/helper/structure" @@ -16,22 +14,23 @@ import ( // Mutable attributes var SNSAttributeMap = map[string]string{ - "arn": "TopicArn", - "display_name": "DisplayName", - "policy": "Policy", - "delivery_policy": "DeliveryPolicy", + "application_failure_feedback_role_arn": "ApplicationFailureFeedbackRoleArn", "application_success_feedback_role_arn": "ApplicationSuccessFeedbackRoleArn", "application_success_feedback_sample_rate": "ApplicationSuccessFeedbackSampleRate", - "application_failure_feedback_role_arn": "ApplicationFailureFeedbackRoleArn", - "http_success_feedback_role_arn": "HTTPSuccessFeedbackRoleArn", - "http_success_feedback_sample_rate": "HTTPSuccessFeedbackSampleRate", - "http_failure_feedback_role_arn": "HTTPFailureFeedbackRoleArn", - "lambda_success_feedback_role_arn": "LambdaSuccessFeedbackRoleArn", - "lambda_success_feedback_sample_rate": "LambdaSuccessFeedbackSampleRate", - "lambda_failure_feedback_role_arn": "LambdaFailureFeedbackRoleArn", - "sqs_success_feedback_role_arn": "SQSSuccessFeedbackRoleArn", - "sqs_success_feedback_sample_rate": "SQSSuccessFeedbackSampleRate", - "sqs_failure_feedback_role_arn": "SQSFailureFeedbackRoleArn"} + "arn": "TopicArn", + "delivery_policy": "DeliveryPolicy", + "display_name": "DisplayName", + "http_failure_feedback_role_arn": "HTTPFailureFeedbackRoleArn", + "http_success_feedback_role_arn": "HTTPSuccessFeedbackRoleArn", + "http_success_feedback_sample_rate": "HTTPSuccessFeedbackSampleRate", + "lambda_failure_feedback_role_arn": "LambdaFailureFeedbackRoleArn", + "lambda_success_feedback_role_arn": "LambdaSuccessFeedbackRoleArn", + "lambda_success_feedback_sample_rate": "LambdaSuccessFeedbackSampleRate", + "policy": "Policy", + "sqs_failure_feedback_role_arn": "SQSFailureFeedbackRoleArn", + "sqs_success_feedback_role_arn": "SQSSuccessFeedbackRoleArn", + "sqs_success_feedback_sample_rate": "SQSSuccessFeedbackSampleRate", +} func resourceAwsSnsTopic() *schema.Resource { return &schema.Resource{ @@ -44,24 +43,23 @@ func resourceAwsSnsTopic() *schema.Resource { }, Schema: map[string]*schema.Schema{ - "name": &schema.Schema{ + "name": { Type: schema.TypeString, Optional: true, Computed: true, ForceNew: true, ConflictsWith: []string{"name_prefix"}, }, - "name_prefix": &schema.Schema{ + "name_prefix": { Type: schema.TypeString, Optional: true, ForceNew: true, }, - "display_name": &schema.Schema{ + "display_name": { Type: schema.TypeString, Optional: true, - ForceNew: false, }, - "policy": &schema.Schema{ + "policy": { Type: schema.TypeString, Optional: true, Computed: true, @@ -72,7 +70,7 @@ func resourceAwsSnsTopic() *schema.Resource { return json }, }, - "delivery_policy": &schema.Schema{ + "delivery_policy": { Type: schema.TypeString, Optional: true, ForceNew: false, @@ -135,7 +133,7 @@ func resourceAwsSnsTopic() *schema.Resource { Type: schema.TypeString, Optional: true, }, - "arn": &schema.Schema{ + "arn": { Type: schema.TypeString, Computed: true, }, @@ -168,37 +166,18 @@ func resourceAwsSnsTopicCreate(d *schema.ResourceData, meta interface{}) error { d.SetId(*output.TopicArn) - // Write the ARN to the 'arn' field for export - d.Set("arn", *output.TopicArn) - return resourceAwsSnsTopicUpdate(d, meta) } func resourceAwsSnsTopicUpdate(d *schema.ResourceData, meta interface{}) error { - r := *resourceAwsSnsTopic() + conn := meta.(*AWSClient).snsconn - for k, _ := range r.Schema { - if attrKey, ok := SNSAttributeMap[k]; ok { - if d.HasChange(k) { - log.Printf("[DEBUG] Updating %s", attrKey) - _, n := d.GetChange(k) - // Ignore an empty policy - if !(k == "policy" && n == "") { - // Make API call to update attributes - req := sns.SetTopicAttributesInput{ - TopicArn: aws.String(d.Id()), - AttributeName: aws.String(attrKey), - AttributeValue: aws.String(fmt.Sprintf("%v", n)), - } - conn := meta.(*AWSClient).snsconn - // Retry the update in the event of an eventually consistent style of - // error, where say an IAM resource is successfully created but not - // actually available. See https://github.com/hashicorp/terraform/issues/3660 - _, err := retryOnAwsCode("InvalidParameter", func() (interface{}, error) { - return conn.SetTopicAttributes(&req) - }) - return err - } + for terraformAttrName, snsAttrName := range SNSAttributeMap { + if d.HasChange(terraformAttrName) { + _, terraformAttrValue := d.GetChange(terraformAttrName) + err := updateAwsSnsTopicAttribute(d.Id(), snsAttrName, terraformAttrValue, conn) + if err != nil { + return err } } } @@ -209,11 +188,12 @@ func resourceAwsSnsTopicUpdate(d *schema.ResourceData, meta interface{}) error { func resourceAwsSnsTopicRead(d *schema.ResourceData, meta interface{}) error { snsconn := meta.(*AWSClient).snsconn + log.Printf("[DEBUG] Reading SNS Topic Attributes for %s", d.Id()) attributeOutput, err := snsconn.GetTopicAttributes(&sns.GetTopicAttributesInput{ TopicArn: aws.String(d.Id()), }) if err != nil { - if awsErr, ok := err.(awserr.Error); ok && awsErr.Code() == "NotFound" { + if isAWSErr(err, sns.ErrCodeNotFoundException, "") { log.Printf("[WARN] SNS Topic (%s) not found, error code (404)", d.Id()) d.SetId("") return nil @@ -224,28 +204,12 @@ func resourceAwsSnsTopicRead(d *schema.ResourceData, meta interface{}) error { if attributeOutput.Attributes != nil && len(attributeOutput.Attributes) > 0 { attrmap := attributeOutput.Attributes - resource := *resourceAwsSnsTopic() - // iKey = internal struct key, oKey = AWS Attribute Map key - for iKey, oKey := range SNSAttributeMap { - log.Printf("[DEBUG] Reading %s => %s", iKey, oKey) - - if attrmap[oKey] != nil { - // Some of the fetched attributes are stateful properties such as - // the number of subscriptions, the owner, etc. skip those - if resource.Schema[iKey] != nil { - var value string - if iKey == "policy" { - value, err = structure.NormalizeJsonString(*attrmap[oKey]) - if err != nil { - return errwrap.Wrapf("policy contains an invalid JSON: {{err}}", err) - } - } else { - value = *attrmap[oKey] - } - log.Printf("[DEBUG] Reading %s => %s -> %s", iKey, oKey, value) - d.Set(iKey, value) - } - } + for terraformAttrName, snsAttrName := range SNSAttributeMap { + d.Set(terraformAttrName, attrmap[snsAttrName]) + } + } else { + for terraformAttrName, _ := range SNSAttributeMap { + d.Set(terraformAttrName, "") } } @@ -275,3 +239,29 @@ func resourceAwsSnsTopicDelete(d *schema.ResourceData, meta interface{}) error { } return nil } + +func updateAwsSnsTopicAttribute(topicArn, name string, value interface{}, conn *sns.SNS) error { + // Ignore an empty policy + if name == "Policy" && value == "" { + return nil + } + log.Printf("[DEBUG] Updating SNS Topic Attribute: %s", name) + + // Make API call to update attributes + req := sns.SetTopicAttributesInput{ + TopicArn: aws.String(topicArn), + AttributeName: aws.String(name), + AttributeValue: aws.String(fmt.Sprintf("%v", value)), + } + + // Retry the update in the event of an eventually consistent style of + // error, where say an IAM resource is successfully created but not + // actually available. See https://github.com/hashicorp/terraform/issues/3660 + _, err := retryOnAwsCode(sns.ErrCodeInvalidParameterException, func() (interface{}, error) { + return conn.SetTopicAttributes(&req) + }) + if err != nil { + return err + } + return nil +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_spot_fleet_request.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_spot_fleet_request.go index 93984d06a..ec2779c0c 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_spot_fleet_request.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_spot_fleet_request.go @@ -31,9 +31,10 @@ func resourceAwsSpotFleetRequest() *schema.Resource { Schema: map[string]*schema.Schema{ "iam_fleet_role": { - Type: schema.TypeString, - Required: true, - ForceNew: true, + Type: schema.TypeString, + Required: true, + ForceNew: true, + ValidateFunc: validateArn, }, "replace_unhealthy_instances": { Type: schema.TypeBool, diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_spot_instance_request.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_spot_instance_request.go index 0a0e79b9b..b5c298a1b 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_spot_instance_request.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_spot_instance_request.go @@ -21,7 +21,7 @@ func resourceAwsSpotInstanceRequest() *schema.Resource { Timeouts: &schema.ResourceTimeout{ Create: schema.DefaultTimeout(10 * time.Minute), - Delete: schema.DefaultTimeout(10 * time.Minute), + Delete: schema.DefaultTimeout(20 * time.Minute), }, Schema: func() map[string]*schema.Schema { diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sqs_queue.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sqs_queue.go index 0ef10e9f1..164c99d1d 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sqs_queue.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_sqs_queue.go @@ -53,6 +53,7 @@ func resourceAwsSqsQueue() *schema.Resource { ForceNew: true, Computed: true, ConflictsWith: []string{"name_prefix"}, + ValidateFunc: validateSQSQueueName, }, "name_prefix": { Type: schema.TypeString, @@ -149,7 +150,7 @@ func resourceAwsSqsQueueCreate(d *schema.ResourceData, meta interface{}) error { return fmt.Errorf("Error validating the FIFO queue name: %v", errors) } } else { - if errors := validateSQSQueueName(name, "name"); len(errors) > 0 { + if errors := validateSQSNonFifoQueueName(name, "name"); len(errors) > 0 { return fmt.Errorf("Error validating SQS queue name: %v", errors) } } @@ -311,13 +312,17 @@ func resourceAwsSqsQueueRead(d *schema.ResourceData, meta interface{}) error { d.Set("fifo_queue", d.Get("fifo_queue").(bool)) d.Set("content_based_deduplication", d.Get("content_based_deduplication").(bool)) - listTagsOutput, err := sqsconn.ListQueueTags(&sqs.ListQueueTagsInput{ - QueueUrl: aws.String(d.Id()), - }) - if err != nil { - return err + tags := make(map[string]string) + if !meta.(*AWSClient).IsGovCloud() { + listTagsOutput, err := sqsconn.ListQueueTags(&sqs.ListQueueTagsInput{ + QueueUrl: aws.String(d.Id()), + }) + if err != nil { + return err + } + tags = tagsToMapGeneric(listTagsOutput.Tags) } - d.Set("tags", tagsToMapGeneric(listTagsOutput.Tags)) + d.Set("tags", tags) return nil } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ssm_association.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ssm_association.go index e376c715f..d6d82021f 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ssm_association.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_ssm_association.go @@ -73,7 +73,6 @@ func resourceAwsSsmAssociation() *schema.Resource { "targets": { Type: schema.TypeList, Optional: true, - ForceNew: true, Computed: true, MaxItems: 5, Elem: &schema.Resource{ @@ -213,6 +212,10 @@ func resourceAwsSsmAssocationUpdate(d *schema.ResourceData, meta interface{}) er associationInput.OutputLocation = expandSSMAssociationOutputLocation(d.Get("output_location").([]interface{})) } + if d.HasChange("targets") { + associationInput.Targets = expandAwsSsmTargets(d) + } + _, err := ssmconn.UpdateAssociation(associationInput) if err != nil { return errwrap.Wrapf("[ERROR] Error updating SSM association: {{err}}", err) diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_volume_attachment.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_volume_attachment.go index 49bf001ec..7049fa61c 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_volume_attachment.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_volume_attachment.go @@ -82,7 +82,7 @@ func resourceAwsVolumeAttachmentCreate(d *schema.ResourceData, meta interface{}) stateConf := &resource.StateChangeConf{ Pending: []string{"pending", "stopping"}, Target: []string{"running", "stopped"}, - Refresh: InstanceStateRefreshFunc(conn, iID, "terminated"), + Refresh: InstanceStateRefreshFunc(conn, iID, []string{"terminated"}), Timeout: 10 * time.Minute, Delay: 10 * time.Second, MinTimeout: 3 * time.Second, diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint.go index 96f26a17e..e8a895332 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_endpoint.go @@ -257,7 +257,7 @@ func resourceAwsVpcEndpointDelete(d *schema.ResourceData, meta interface{}) erro } stateConf := &resource.StateChangeConf{ - Pending: []string{"available", "deleting"}, + Pending: []string{"available", "pending", "deleting"}, Target: []string{"deleted"}, Refresh: vpcEndpointStateRefresh(conn, d.Id()), Timeout: 10 * time.Minute, diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_peering_connection.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_peering_connection.go index f5357255c..45964e2da 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_peering_connection.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/resource_aws_vpc_peering_connection.go @@ -109,7 +109,7 @@ func resourceAwsVPCPeeringRead(d *schema.ResourceData, meta interface{}) error { pcRaw, status, err := resourceAwsVPCPeeringConnectionStateRefreshFunc(conn, d.Id())() // Allow a failed VPC Peering Connection to fallthrough, // to allow rest of the logic below to do its work. - if err != nil && status != "failed" { + if err != nil && status != ec2.VpcPeeringConnectionStateReasonCodeFailed { return err } @@ -125,11 +125,11 @@ func resourceAwsVPCPeeringRead(d *schema.ResourceData, meta interface{}) error { // just "falls off" the console. See GH-2322 if pc.Status != nil { status := map[string]bool{ - "deleted": true, - "deleting": true, - "expired": true, - "failed": true, - "rejected": true, + ec2.VpcPeeringConnectionStateReasonCodeDeleted: true, + ec2.VpcPeeringConnectionStateReasonCodeDeleting: true, + ec2.VpcPeeringConnectionStateReasonCodeExpired: true, + ec2.VpcPeeringConnectionStateReasonCodeFailed: true, + ec2.VpcPeeringConnectionStateReasonCodeRejected: true, } if _, ok := status[*pc.Status.Code]; ok { log.Printf("[DEBUG] VPC Peering Connection (%s) in state (%s), removing.", @@ -249,7 +249,7 @@ func resourceAwsVPCPeeringUpdate(d *schema.ResourceData, meta interface{}) error pc := pcRaw.(*ec2.VpcPeeringConnection) if _, ok := d.GetOk("auto_accept"); ok { - if pc.Status != nil && *pc.Status.Code == "pending-acceptance" { + if pc.Status != nil && *pc.Status.Code == ec2.VpcPeeringConnectionStateReasonCodePendingAcceptance { status, err := resourceVPCPeeringConnectionAccept(conn, d.Id()) if err != nil { return errwrap.Wrapf("Unable to accept VPC Peering Connection: {{err}}", err) @@ -290,8 +290,14 @@ func resourceAwsVPCPeeringDelete(d *schema.ResourceData, meta interface{}) error // Wait for the vpc peering connection to become available log.Printf("[DEBUG] Waiting for VPC Peering Connection (%s) to delete.", d.Id()) stateConf := &resource.StateChangeConf{ - Pending: []string{"deleting"}, - Target: []string{"rejecting", "deleted"}, + Pending: []string{ + ec2.VpcPeeringConnectionStateReasonCodePendingAcceptance, + ec2.VpcPeeringConnectionStateReasonCodeDeleting, + }, + Target: []string{ + ec2.VpcPeeringConnectionStateReasonCodeRejected, + ec2.VpcPeeringConnectionStateReasonCodeDeleted, + }, Refresh: resourceAwsVPCPeeringConnectionStateRefreshFunc(conn, d.Id()), Timeout: 1 * time.Minute, } @@ -408,8 +414,14 @@ func checkVpcPeeringConnectionAvailable(conn *ec2.EC2, id string) error { // Wait for the vpc peering connection to become available log.Printf("[DEBUG] Waiting for VPC Peering Connection (%s) to become available.", id) stateConf := &resource.StateChangeConf{ - Pending: []string{"initiating-request", "provisioning", "pending"}, - Target: []string{"pending-acceptance", "active"}, + Pending: []string{ + ec2.VpcPeeringConnectionStateReasonCodeInitiatingRequest, + ec2.VpcPeeringConnectionStateReasonCodeProvisioning, + }, + Target: []string{ + ec2.VpcPeeringConnectionStateReasonCodePendingAcceptance, + ec2.VpcPeeringConnectionStateReasonCodeActive, + }, Refresh: resourceAwsVPCPeeringConnectionStateRefreshFunc(conn, id), Timeout: 1 * time.Minute, } diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/structure.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/structure.go index ca85a8f9c..39a0ad00d 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/structure.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/structure.go @@ -19,6 +19,7 @@ import ( "github.com/aws/aws-sdk-go/service/cognitoidentity" "github.com/aws/aws-sdk-go/service/cognitoidentityprovider" "github.com/aws/aws-sdk-go/service/configservice" + "github.com/aws/aws-sdk-go/service/dax" "github.com/aws/aws-sdk-go/service/directoryservice" "github.com/aws/aws-sdk-go/service/dynamodb" "github.com/aws/aws-sdk-go/service/ec2" @@ -854,6 +855,16 @@ func flattenElastiCacheSecurityGroupIds(securityGroups []*elasticache.SecurityGr return result } +func flattenDaxSecurityGroupIds(securityGroups []*dax.SecurityGroupMembership) []string { + result := make([]string, 0, len(securityGroups)) + for _, sg := range securityGroups { + if sg.SecurityGroupIdentifier != nil { + result = append(result, *sg.SecurityGroupIdentifier) + } + } + return result +} + // Flattens step adjustments into a list of map[string]interface. func flattenStepAdjustments(adjustments []*autoscaling.StepAdjustment) []map[string]interface{} { result := make([]map[string]interface{}, 0, len(adjustments)) @@ -3667,3 +3678,30 @@ func flattenDynamoDbTableItemAttributes(attrs map[string]*dynamodb.AttributeValu return rawBuffer.String(), nil } + +func expandIotThingTypeProperties(config map[string]interface{}) *iot.ThingTypeProperties { + properties := &iot.ThingTypeProperties{ + SearchableAttributes: expandStringList(config["searchable_attributes"].(*schema.Set).List()), + } + + if v, ok := config["description"]; ok && v.(string) != "" { + properties.ThingTypeDescription = aws.String(v.(string)) + } + + return properties +} + +func flattenIotThingTypeProperties(s *iot.ThingTypeProperties) []map[string]interface{} { + m := map[string]interface{}{} + + if s == nil { + return nil + } + + if s.ThingTypeDescription != nil { + m["description"] = *s.ThingTypeDescription + } + m["searchable_attributes"] = flattenStringList(s.SearchableAttributes) + + return []map[string]interface{}{m} +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/tagsDAX.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/tagsDAX.go new file mode 100644 index 000000000..816744503 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/tagsDAX.go @@ -0,0 +1,115 @@ +package aws + +import ( + "log" + "regexp" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/dax" + "github.com/hashicorp/terraform/helper/schema" +) + +// setTags is a helper to set the tags for a resource. It expects the +// tags field to be named "tags" +func setTagsDax(conn *dax.DAX, d *schema.ResourceData, arn string) error { + if d.HasChange("tags") { + oraw, nraw := d.GetChange("tags") + o := oraw.(map[string]interface{}) + n := nraw.(map[string]interface{}) + create, remove := diffTagsDax(tagsFromMapDax(o), tagsFromMapDax(n)) + + // Set tags + if len(remove) > 0 { + log.Printf("[DEBUG] Removing tags: %#v", remove) + k := make([]*string, len(remove), len(remove)) + for i, t := range remove { + k[i] = t.Key + } + + _, err := conn.UntagResource(&dax.UntagResourceInput{ + ResourceName: aws.String(arn), + TagKeys: k, + }) + if err != nil { + return err + } + } + if len(create) > 0 { + log.Printf("[DEBUG] Creating tags: %#v", create) + _, err := conn.TagResource(&dax.TagResourceInput{ + ResourceName: aws.String(arn), + Tags: create, + }) + if err != nil { + return err + } + } + } + + return nil +} + +// diffTags takes our tags locally and the ones remotely and returns +// the set of tags that must be created, and the set of tags that must +// be destroyed. +func diffTagsDax(oldTags, newTags []*dax.Tag) ([]*dax.Tag, []*dax.Tag) { + // First, we're creating everything we have + create := make(map[string]interface{}) + for _, t := range newTags { + create[*t.Key] = *t.Value + } + + // Build the list of what to remove + var remove []*dax.Tag + for _, t := range oldTags { + old, ok := create[*t.Key] + if !ok || old != *t.Value { + // Delete it! + remove = append(remove, t) + } + } + + return tagsFromMapDax(create), remove +} + +// tagsFromMap returns the tags for the given map of data. +func tagsFromMapDax(m map[string]interface{}) []*dax.Tag { + result := make([]*dax.Tag, 0, len(m)) + for k, v := range m { + t := &dax.Tag{ + Key: aws.String(k), + Value: aws.String(v.(string)), + } + if !tagIgnoredDax(t) { + result = append(result, t) + } + } + + return result +} + +// tagsToMap turns the list of tags into a map. +func tagsToMapDax(ts []*dax.Tag) map[string]string { + result := make(map[string]string) + for _, t := range ts { + if !tagIgnoredDax(t) { + result[*t.Key] = *t.Value + } + } + + return result +} + +// compare a tag against a list of strings and checks if it should +// be ignored or not +func tagIgnoredDax(t *dax.Tag) bool { + filter := []string{"^aws:"} + for _, v := range filter { + log.Printf("[DEBUG] Matching %v with %v\n", v, *t.Key) + if r, _ := regexp.MatchString(v, *t.Key); r == true { + log.Printf("[DEBUG] Found AWS specific tag %s (val: %s), ignoring.\n", *t.Key, *t.Value) + return true + } + } + return false +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/tagsDX.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/tagsDX.go new file mode 100644 index 000000000..ca353a857 --- /dev/null +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/tagsDX.go @@ -0,0 +1,137 @@ +package aws + +import ( + "log" + "regexp" + + "github.com/aws/aws-sdk-go/aws" + "github.com/aws/aws-sdk-go/service/directconnect" + "github.com/hashicorp/terraform/helper/schema" +) + +// getTags is a helper to get the tags for a resource. It expects the +// tags field to be named "tags" +func getTagsDX(conn *directconnect.DirectConnect, d *schema.ResourceData, arn string) error { + resp, err := conn.DescribeTags(&directconnect.DescribeTagsInput{ + ResourceArns: aws.StringSlice([]string{arn}), + }) + if err != nil { + return err + } + + var tags []*directconnect.Tag + if len(resp.ResourceTags) == 1 && aws.StringValue(resp.ResourceTags[0].ResourceArn) == arn { + tags = resp.ResourceTags[0].Tags + } + + if err := d.Set("tags", tagsToMapDX(tags)); err != nil { + return err + } + + return nil +} + +// setTags is a helper to set the tags for a resource. It expects the +// tags field to be named "tags" +func setTagsDX(conn *directconnect.DirectConnect, d *schema.ResourceData, arn string) error { + if d.HasChange("tags") { + oraw, nraw := d.GetChange("tags") + o := oraw.(map[string]interface{}) + n := nraw.(map[string]interface{}) + create, remove := diffTagsDX(tagsFromMapDX(o), tagsFromMapDX(n)) + + // Set tags + if len(remove) > 0 { + log.Printf("[DEBUG] Removing tags: %#v", remove) + k := make([]*string, len(remove), len(remove)) + for i, t := range remove { + k[i] = t.Key + } + + _, err := conn.UntagResource(&directconnect.UntagResourceInput{ + ResourceArn: aws.String(arn), + TagKeys: k, + }) + if err != nil { + return err + } + } + if len(create) > 0 { + log.Printf("[DEBUG] Creating tags: %#v", create) + _, err := conn.TagResource(&directconnect.TagResourceInput{ + ResourceArn: aws.String(arn), + Tags: create, + }) + if err != nil { + return err + } + } + } + + return nil +} + +// diffTags takes our tags locally and the ones remotely and returns +// the set of tags that must be created, and the set of tags that must +// be destroyed. +func diffTagsDX(oldTags, newTags []*directconnect.Tag) ([]*directconnect.Tag, []*directconnect.Tag) { + // First, we're creating everything we have + create := make(map[string]interface{}) + for _, t := range newTags { + create[aws.StringValue(t.Key)] = aws.StringValue(t.Value) + } + + // Build the list of what to remove + var remove []*directconnect.Tag + for _, t := range oldTags { + old, ok := create[aws.StringValue(t.Key)] + if !ok || old != aws.StringValue(t.Value) { + // Delete it! + remove = append(remove, t) + } + } + + return tagsFromMapDX(create), remove +} + +// tagsFromMap returns the tags for the given map of data. +func tagsFromMapDX(m map[string]interface{}) []*directconnect.Tag { + result := make([]*directconnect.Tag, 0, len(m)) + for k, v := range m { + t := &directconnect.Tag{ + Key: aws.String(k), + Value: aws.String(v.(string)), + } + if !tagIgnoredDX(t) { + result = append(result, t) + } + } + + return result +} + +// tagsToMap turns the list of tags into a map. +func tagsToMapDX(ts []*directconnect.Tag) map[string]string { + result := make(map[string]string) + for _, t := range ts { + if !tagIgnoredDX(t) { + result[aws.StringValue(t.Key)] = aws.StringValue(t.Value) + } + } + + return result +} + +// compare a tag against a list of strings and checks if it should +// be ignored or not +func tagIgnoredDX(t *directconnect.Tag) bool { + filter := []string{"^aws:"} + for _, v := range filter { + log.Printf("[DEBUG] Matching %v with %v\n", v, *t.Key) + if r, _ := regexp.MatchString(v, *t.Key); r == true { + log.Printf("[DEBUG] Found AWS specific tag %s (val: %s), ignoring.\n", *t.Key, *t.Value) + return true + } + } + return false +} diff --git a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/validators.go b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/validators.go index 990f90b36..3199e3229 100644 --- a/vendor/github.com/terraform-providers/terraform-provider-aws/aws/validators.go +++ b/vendor/github.com/terraform-providers/terraform-provider-aws/aws/validators.go @@ -24,9 +24,10 @@ import ( func validateInstanceUserDataSize(v interface{}, k string) (ws []string, errors []error) { value := v.(string) + length := len(value) - if len(value) > 16384 { - errors = append(errors, fmt.Errorf("%q cannot be longer than 16384 bytes", k)) + if length > 16384 { + errors = append(errors, fmt.Errorf("%q is %d bytes, cannot be longer than 16384 bytes", k, length)) } return } @@ -80,8 +81,8 @@ func validateRdsEngine(v interface{}, k string) (ws []string, errors []error) { if _, ok := validTypes[value]; !ok { errors = append(errors, fmt.Errorf( - "%q contains an invalid engine type %q. Valid types are either %q or %q.", - k, value, "aurora", "aurora-postgresql")) + "%q contains an invalid engine type %q. Valid types are either %q, %q or %q.", + k, value, "aurora", "aurora-mysql", "aurora-postgresql")) } return } @@ -135,9 +136,9 @@ func validateTagFilters(v interface{}, k string) (ws []string, errors []error) { func validateDbParamGroupName(v interface{}, k string) (ws []string, errors []error) { value := v.(string) - if !regexp.MustCompile(`^[0-9a-z-_]+$`).MatchString(value) { + if !regexp.MustCompile(`^[0-9a-z-]+$`).MatchString(value) { errors = append(errors, fmt.Errorf( - "only lowercase alphanumeric characters, underscores and hyphens allowed in %q", k)) + "only lowercase alphanumeric characters and hyphens allowed in %q", k)) } if !regexp.MustCompile(`^[a-z]`).MatchString(value) { errors = append(errors, fmt.Errorf( @@ -147,10 +148,6 @@ func validateDbParamGroupName(v interface{}, k string) (ws []string, errors []er errors = append(errors, fmt.Errorf( "%q cannot contain two consecutive hyphens", k)) } - if regexp.MustCompile(`__`).MatchString(value) { - errors = append(errors, fmt.Errorf( - "%q cannot contain two consecutive underscores", k)) - } if regexp.MustCompile(`-$`).MatchString(value) { errors = append(errors, fmt.Errorf( "%q cannot end with a hyphen", k)) @@ -790,7 +787,19 @@ func validateApiGatewayIntegrationContentHandling(v interface{}, k string) (ws [ return } -func validateSQSQueueName(v interface{}, k string) (errors []error) { +func validateSQSQueueName(v interface{}, k string) (ws []string, errors []error) { + value := v.(string) + if len(value) > 80 { + errors = append(errors, fmt.Errorf("%q cannot be longer than 80 characters", k)) + } + + if !regexp.MustCompile(`^[0-9A-Za-z-_]+(\.fifo)?$`).MatchString(value) { + errors = append(errors, fmt.Errorf("only alphanumeric characters and hyphens allowed in %q", k)) + } + return +} + +func validateSQSNonFifoQueueName(v interface{}, k string) (errors []error) { value := v.(string) if len(value) > 80 { errors = append(errors, fmt.Errorf("%q cannot be longer than 80 characters", k)) @@ -1878,8 +1887,9 @@ func validateSecurityGroupRuleDescription(v interface{}, k string) (ws []string, "%q cannot be longer than 255 characters: %q", k, value)) } - // https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IpRange.html - pattern := `^[A-Za-z0-9 \.\_\-\:\/\(\)\#\,\@\[\]\+\=\;\{\}\!\$\*]+$` + // https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IpRange.html. Note that + // "" is an allowable description value. + pattern := `^[A-Za-z0-9 \.\_\-\:\/\(\)\#\,\@\[\]\+\=\;\{\}\!\$\*]*$` if !regexp.MustCompile(pattern).MatchString(value) { errors = append(errors, fmt.Errorf( "%q doesn't comply with restrictions (%q): %q", @@ -2147,30 +2157,6 @@ func validateAwsElastiCacheReplicationGroupAuthToken(v interface{}, k string) (w return } -func validateServiceDiscoveryServiceDnsRecordsType(v interface{}, k string) (ws []string, errors []error) { - value := v.(string) - validType := []string{"SRV", "A", "AAAA"} - for _, str := range validType { - if value == str { - return - } - } - errors = append(errors, fmt.Errorf("expected %s to be one of %v, got %s", k, validType, value)) - return -} - -func validateServiceDiscoveryServiceHealthCheckConfigType(v interface{}, k string) (ws []string, errors []error) { - value := v.(string) - validType := []string{"HTTP", "HTTPS", "TCP"} - for _, str := range validType { - if value == str { - return - } - } - errors = append(errors, fmt.Errorf("expected %s to be one of %v, got %s", k, validType, value)) - return -} - func validateGameliftOperatingSystem(v interface{}, k string) (ws []string, errors []error) { value := v.(string) operatingSystems := map[string]bool{ @@ -2271,3 +2257,38 @@ func validateAmazonSideAsn(v interface{}, k string) (ws []string, errors []error } return } + +func validateIotThingTypeName(v interface{}, k string) (ws []string, errors []error) { + value := v.(string) + if !regexp.MustCompile(`[a-zA-Z0-9:_-]+`).MatchString(value) { + errors = append(errors, fmt.Errorf( + "only alphanumeric characters, colons, underscores and hyphens allowed in %q", k)) + } + return +} + +func validateIotThingTypeDescription(v interface{}, k string) (ws []string, errors []error) { + value := v.(string) + if len(value) > 2028 { + errors = append(errors, fmt.Errorf( + "%q cannot be longer than 2028 characters", k)) + } + if !regexp.MustCompile(`[\\p{Graph}\\x20]*`).MatchString(value) { + errors = append(errors, fmt.Errorf( + "%q must match pattern [\\p{Graph}\\x20]*", k)) + } + return +} + +func validateIotThingTypeSearchableAttribute(v interface{}, k string) (ws []string, errors []error) { + value := v.(string) + if len(value) > 128 { + errors = append(errors, fmt.Errorf( + "%q cannot be longer than 128 characters", k)) + } + if !regexp.MustCompile(`[a-zA-Z0-9_.,@/:#-]+`).MatchString(value) { + errors = append(errors, fmt.Errorf( + "only alphanumeric characters, underscores, dots, commas, arobases, slashes, colons, hashes and hyphens allowed in %q", k)) + } + return +} diff --git a/vendor/vendor.json b/vendor/vendor.json index 56aa4e1e3..ee64c0963 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -261,762 +261,776 @@ "revisionTime": "2016-01-15T23:47:25Z" }, { - "checksumSHA1": "3U3U5SzawV/N/rjwlntapRlgtWQ=", + "checksumSHA1": "fQFz9TVTFLzLZBBTL/3nXt0PepA=", "path": "github.com/aws/aws-sdk-go/aws", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "DtuTqKH29YnLjrIJkRYX0HQtXY0=", "path": "github.com/aws/aws-sdk-go/aws/arn", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "Y9W+4GimK4Fuxq+vyIskVYFRnX4=", "path": "github.com/aws/aws-sdk-go/aws/awserr", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "yyYr41HZ1Aq0hWc3J5ijXwYEcac=", "path": "github.com/aws/aws-sdk-go/aws/awsutil", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "9nE/FjZ4pYrT883KtV2/aI+Gayo=", "path": "github.com/aws/aws-sdk-go/aws/client", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "ieAJ+Cvp/PKv1LpUEnUXpc3OI6E=", "path": "github.com/aws/aws-sdk-go/aws/client/metadata", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "7/8j/q0TWtOgXyvEcv4B2Dhl00o=", "path": "github.com/aws/aws-sdk-go/aws/corehandlers", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "Y+cPwQL0dZMyqp3wI+KJWmA9KQ8=", "path": "github.com/aws/aws-sdk-go/aws/credentials", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "u3GOAJLmdvbuNUeUEcZSEAOeL/0=", "path": "github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "NUJUTWlc1sV8b7WjfiYc4JZbXl0=", "path": "github.com/aws/aws-sdk-go/aws/credentials/endpointcreds", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "JEYqmF83O5n5bHkupAzA6STm0no=", "path": "github.com/aws/aws-sdk-go/aws/credentials/stscreds", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "OnU/n7R33oYXiB4SAGd5pK7I0Bs=", "path": "github.com/aws/aws-sdk-go/aws/defaults", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "/EXbk/z2TWjWc1Hvb4QYs3Wmhb8=", "path": "github.com/aws/aws-sdk-go/aws/ec2metadata", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { - "checksumSHA1": "CJNEM69cgdO9tZi6c5Lj07jI+dk=", + "checksumSHA1": "LRonWcnvI95HVKs5fLa+wBU9A+E=", "path": "github.com/aws/aws-sdk-go/aws/endpoints", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "657ICMok3uC5dm5e9bKcVF2HaxE=", "path": "github.com/aws/aws-sdk-go/aws/request", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "DIn7B+oP++/nw603OB95fmupzu8=", "path": "github.com/aws/aws-sdk-go/aws/session", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "iU00ZjhAml/13g+1YXT21IqoXqg=", "path": "github.com/aws/aws-sdk-go/aws/signer/v4", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "04ypv4x12l4q0TksA1zEVsmgpvw=", "path": "github.com/aws/aws-sdk-go/internal/shareddefaults", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "NStHCXEvYqG72GknZyv1jaKaeH0=", "path": "github.com/aws/aws-sdk-go/private/protocol", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "1QmQ3FqV37w0Zi44qv8pA1GeR0A=", "path": "github.com/aws/aws-sdk-go/private/protocol/ec2query", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "yHfT5DTbeCLs4NE2Rgnqrhe15ls=", "path": "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "R00RL5jJXRYq1iiK1+PGvMfvXyM=", "path": "github.com/aws/aws-sdk-go/private/protocol/jsonrpc", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "ZqY5RWavBLWTo6j9xqdyBEaNFRk=", "path": "github.com/aws/aws-sdk-go/private/protocol/query", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "9V1PvtFQ9MObZTc3sa86WcuOtOU=", "path": "github.com/aws/aws-sdk-go/private/protocol/query/queryutil", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "pkeoOfZpHRvFG/AOZeTf0lwtsFg=", "path": "github.com/aws/aws-sdk-go/private/protocol/rest", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "Rpu8KBtHZgvhkwHxUfaky+qW+G4=", "path": "github.com/aws/aws-sdk-go/private/protocol/restjson", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "ODo+ko8D6unAxZuN1jGzMcN4QCc=", "path": "github.com/aws/aws-sdk-go/private/protocol/restxml", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "0qYPUga28aQVkxZgBR3Z86AbGUQ=", "path": "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "F6mth+G7dXN1GI+nktaGo8Lx8aE=", "path": "github.com/aws/aws-sdk-go/private/signer/v2", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "Ih4il2OyFyaSuoMv6hhvPUN8Gn4=", "path": "github.com/aws/aws-sdk-go/service/acm", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "DPl/OkvEUjrd+XKqX73l6nUNw3U=", "path": "github.com/aws/aws-sdk-go/service/apigateway", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "edPLU/Lb9QzcB2tFBgkKvF/WdY8=", "path": "github.com/aws/aws-sdk-go/service/applicationautoscaling", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" + }, + { + "checksumSHA1": "eXdYovPaIY64heZE1nczTsNRvtw=", + "path": "github.com/aws/aws-sdk-go/service/appsync", + "revision": "ebef4262e06a772a06a80aaee8e952c2514e1606", + "revisionTime": "2018-02-23T18:40:12Z" }, { "checksumSHA1": "wrOVdI/6ZTZ/H0Kxjh3bBEZtVzk=", "path": "github.com/aws/aws-sdk-go/service/athena", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "q4j8cW2zBulU/xx16A8/NxexXKE=", "path": "github.com/aws/aws-sdk-go/service/autoscaling", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "P5gDOoqIdVjMU77e5Nhy48QLpS4=", "path": "github.com/aws/aws-sdk-go/service/batch", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "EoaTzMilW+OIi5eETJUpd+giyTc=", "path": "github.com/aws/aws-sdk-go/service/cloud9", - "revision": "e42d74a2cc63cbef14cc85399ad04181da129ded", - "revisionTime": "2018-02-12T21:54:04Z" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "yuFNzmUIWppfji/Xx6Aao0EE4cY=", "path": "github.com/aws/aws-sdk-go/service/cloudformation", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "0nPnGWlegQG7bn/iIIfjJFoljyU=", "path": "github.com/aws/aws-sdk-go/service/cloudfront", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "VTc9UOMqIwuhWJ6oGQDsMkTW09I=", "path": "github.com/aws/aws-sdk-go/service/cloudtrail", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "ItXljM1vG/0goVleodRgbfYgyxQ=", "path": "github.com/aws/aws-sdk-go/service/cloudwatch", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "5lmoDceAWT0vrUTf3wKAaZRXwbg=", "path": "github.com/aws/aws-sdk-go/service/cloudwatchevents", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "HHct8eQygkIJ+vrQpKhB0IEDymQ=", "path": "github.com/aws/aws-sdk-go/service/cloudwatchlogs", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "22txzj8ItH1+lzyyLlFz/vtRV2I=", "path": "github.com/aws/aws-sdk-go/service/codebuild", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "RRQCgy4s3k6CJQae3ueLepkK4PI=", "path": "github.com/aws/aws-sdk-go/service/codecommit", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "wvXGTyWPjtgC4OjXb80IxYdpqmE=", "path": "github.com/aws/aws-sdk-go/service/codedeploy", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "V1Y05qfjN4xOCy+GnPWSCqIeZb4=", "path": "github.com/aws/aws-sdk-go/service/codepipeline", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "Ju8efcqcIgggB7N8io/as9ERVdc=", "path": "github.com/aws/aws-sdk-go/service/cognitoidentity", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { - "checksumSHA1": "Q4nvxp3mwkpNITKAPWGk5uFjLl8=", + "checksumSHA1": "jeCyZm4iJmOLbVOe/70QNkII+qU=", "path": "github.com/aws/aws-sdk-go/service/cognitoidentityprovider", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "kt8wGmAKAo+iC1dR/g9iJn46nDo=", "path": "github.com/aws/aws-sdk-go/service/configservice", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "45sgs1urdRiXDb35iuAhQPzl0e4=", "path": "github.com/aws/aws-sdk-go/service/databasemigrationservice", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" + }, + { + "checksumSHA1": "bu1R1eKCK2fc5+hMcXmagr3iIik=", + "path": "github.com/aws/aws-sdk-go/service/dax", + "revision": "ebef4262e06a772a06a80aaee8e952c2514e1606", + "revisionTime": "2018-02-23T18:40:12Z" }, { "checksumSHA1": "EaEfUc3nt1sS/cdfSYGq+JtSVKs=", "path": "github.com/aws/aws-sdk-go/service/devicefarm", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "LRdh5oXUe2yURIk5FDH6ceEZGMo=", "path": "github.com/aws/aws-sdk-go/service/directconnect", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "a7itHIwtyXtOGQ0KsiefmsHgu4s=", "path": "github.com/aws/aws-sdk-go/service/directoryservice", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "8JiVrxMjFSdBOfVWCy1QU+JzB08=", "path": "github.com/aws/aws-sdk-go/service/dynamodb", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { - "checksumSHA1": "Sj6NTKuc/6+amv4RsMqrZkvkvpc=", + "checksumSHA1": "Wt2FgZmez84iZmcDjR2pof13dTQ=", "path": "github.com/aws/aws-sdk-go/service/ec2", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "kEgV0dSAj3M3M1waEkC27JS7VnU=", "path": "github.com/aws/aws-sdk-go/service/ecr", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "WeevJuELH3BFpUQJC4cqZODz4c0=", "path": "github.com/aws/aws-sdk-go/service/ecs", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "4XmkiujbDA68x39KGgURR1+uPiQ=", "path": "github.com/aws/aws-sdk-go/service/efs", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "o73xT1zFo3C+giQwKcRj02OAZhM=", "path": "github.com/aws/aws-sdk-go/service/elasticache", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "1U0w3+W7kvH901jSftehitrRHCg=", "path": "github.com/aws/aws-sdk-go/service/elasticbeanstalk", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "VYGtTaSiajfKOVTbi9/SNmbiIac=", "path": "github.com/aws/aws-sdk-go/service/elasticsearchservice", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "SZ7yLDZ6RvMhpWe0Goyem64kgyA=", "path": "github.com/aws/aws-sdk-go/service/elastictranscoder", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "iRI32eUYQfumh0LybzZ+5iWV3jE=", "path": "github.com/aws/aws-sdk-go/service/elb", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "SvXeFtI3yR9UmamKEYKY/diBWDY=", "path": "github.com/aws/aws-sdk-go/service/elbv2", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "5x77vwxya74Qu5YEq75/lhyYkqY=", "path": "github.com/aws/aws-sdk-go/service/emr", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "t7BmfpJqmQ7Y0EYcj/CR9Aup9go=", "path": "github.com/aws/aws-sdk-go/service/firehose", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "iHyMxl+rkonWCTlysoO4ISkumCA=", "path": "github.com/aws/aws-sdk-go/service/gamelift", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "oDoGvSfmO2Z099ixV2HXn+SDeHE=", "path": "github.com/aws/aws-sdk-go/service/glacier", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "M01rYrldc6zwbpAeaLX5UJ6b25g=", "path": "github.com/aws/aws-sdk-go/service/glue", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { - "checksumSHA1": "L+3qjFRMMQHkpY+Wg4PAtaN/lrg=", + "checksumSHA1": "VRaMYP1928z+aLVk2qX5OPFaobk=", "path": "github.com/aws/aws-sdk-go/service/guardduty", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "I8CWKTI9BLrIF9ZKf6SpWhG+LXM=", "path": "github.com/aws/aws-sdk-go/service/iam", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "45gdBZuM7PWLQzWuBasytvZZpK0=", "path": "github.com/aws/aws-sdk-go/service/inspector", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "pZwCI4DpP5hcMa/ItKhiwo/ukd0=", "path": "github.com/aws/aws-sdk-go/service/iot", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "DfzNze8B3ME2tV3TtXP7eQXUjD0=", "path": "github.com/aws/aws-sdk-go/service/kinesis", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { - "checksumSHA1": "P132J6pP1Z5ddG/8UqeuQFmeei4=", + "checksumSHA1": "Vqq049R2eveVD15emT9vKTyBsIg=", "path": "github.com/aws/aws-sdk-go/service/kms", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "lAgaKbwpyflY7+t4V3EeH18RwgA=", "path": "github.com/aws/aws-sdk-go/service/lambda", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "4yGrGQatXcr8eGRWUoBg3KqAHK8=", "path": "github.com/aws/aws-sdk-go/service/lightsail", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "kEZmPI9Y9+05SWuRCdtt+QkqwLI=", "path": "github.com/aws/aws-sdk-go/service/mediastore", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "3QV+ZVkQ8g8JkNkftwHaOCevyqM=", "path": "github.com/aws/aws-sdk-go/service/mq", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "QuOSKqV8nFvvzN4wcsToltMFI1Y=", "path": "github.com/aws/aws-sdk-go/service/opsworks", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { - "checksumSHA1": "9AwJ02ip5HmAz2PtMTOGHX0U984=", + "checksumSHA1": "LI+fV4xrVf/bHYHt3nCb3rhc7+c=", "path": "github.com/aws/aws-sdk-go/service/rds", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "Pj9IgrR635tqA0YamoSC1GaHeao=", "path": "github.com/aws/aws-sdk-go/service/redshift", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "EaDeOWEVUQ21y3cFDyDuZPaK470=", "path": "github.com/aws/aws-sdk-go/service/route53", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "fXQn3V0ZRBZpTXUEHl4/yOjR4mQ=", "path": "github.com/aws/aws-sdk-go/service/s3", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "rtKbVK1uZVIdkTR7yJIhAte97XQ=", "path": "github.com/aws/aws-sdk-go/service/servicecatalog", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "erg+1BSdtfOk1KFXmnJ2bFHJpBY=", "path": "github.com/aws/aws-sdk-go/service/servicediscovery", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "8LeTeLzNs+0vNxTeOjMCtSrSwqo=", "path": "github.com/aws/aws-sdk-go/service/ses", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "u3AMeFxtHGtiJCxDeIm4dAwzBIc=", "path": "github.com/aws/aws-sdk-go/service/sfn", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "B3CgAFSREebpsFoFOo4vrQ6u04w=", "path": "github.com/aws/aws-sdk-go/service/simpledb", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "9Qj8yLl67q9uxBUCc0PT20YiP1M=", "path": "github.com/aws/aws-sdk-go/service/sns", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "XmEJe50M8MddNEkwbZoC+YvRjgg=", "path": "github.com/aws/aws-sdk-go/service/sqs", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "jl3IYnqe0OFL2bemYhF5tLOwvvs=", "path": "github.com/aws/aws-sdk-go/service/ssm", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "x7HCNPJnQi+4P6FKpBTY1hm3m6o=", "path": "github.com/aws/aws-sdk-go/service/sts", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "ZKwkpd+UVwEKTOMhsbNpfXGUIvI=", "path": "github.com/aws/aws-sdk-go/service/waf", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "Uk2A+lTH7aAlQlkj7WIm2RFZV8A=", "path": "github.com/aws/aws-sdk-go/service/wafregional", - "revision": "de28909e9837364f0368d94ddcba085c57af3c12", - "revisionTime": "2018-02-08T20:25:49Z", - "version": "v1.12.73", - "versionExact": "v1.12.73" + "revision": "ebc8a649dc2a7c78c9237c2575a63b3efd6d0a2d", + "revisionTime": "2018-02-12T21:53:52Z", + "version": "v1.12.75", + "versionExact": "v1.12.75" }, { "checksumSHA1": "usT4LCSQItkFvFOQT7cBlkCuGaE=", @@ -2146,20 +2160,20 @@ "revisionTime": "2018-01-15T19:27:20Z" }, { - "checksumSHA1": "5XyfTtyMIFp/q/Xz3y0LgbhCnfQ=", + "checksumSHA1": "TZcEg85gFLvAxihpYP99r6espQE=", "path": "github.com/terraform-providers/terraform-provider-aws", - "revision": "5293a0e3b1366ee16d8742b9b2354781a79bfbd9", - "revisionTime": "2018-02-09T20:49:46Z", - "version": "v1.9.0", - "versionExact": "v1.9.0" + "revision": "684291f45b87da88f39a8b4050ebc1c5e6c2f6e0", + "revisionTime": "2018-02-24T22:47:55Z", + "version": "v1.10.0", + "versionExact": "v1.10.0" }, { - "checksumSHA1": "YM2nvPlpKTnSeZ0bdpMdVgpy/XU=", + "checksumSHA1": "jBr0FKeswC9xVg758hOtM/Mb1fA=", "path": "github.com/terraform-providers/terraform-provider-aws/aws", - "revision": "5293a0e3b1366ee16d8742b9b2354781a79bfbd9", - "revisionTime": "2018-02-09T20:49:46Z", - "version": "v1.9.0", - "versionExact": "v1.9.0" + "revision": "684291f45b87da88f39a8b4050ebc1c5e6c2f6e0", + "revisionTime": "2018-02-24T22:47:55Z", + "version": "v1.10.0", + "versionExact": "v1.10.0" }, { "checksumSHA1": "7WDq0VsOJmABPUCEvfuerEp7mBg=", From 627bb24ea60ce740436e530e832f1bdb5b2981a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Socha?= Date: Mon, 26 Feb 2018 10:27:14 +0100 Subject: [PATCH 102/156] fix ssh problem with communicator.Retry --- .../salt-masterless/resource_provisioner.go | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/builtin/provisioners/salt-masterless/resource_provisioner.go b/builtin/provisioners/salt-masterless/resource_provisioner.go index 70942c5d7..e29146c64 100644 --- a/builtin/provisioners/salt-masterless/resource_provisioner.go +++ b/builtin/provisioners/salt-masterless/resource_provisioner.go @@ -140,16 +140,18 @@ func applyFn(ctx context.Context) error { Command: fmt.Sprintf("curl -L https://bootstrap.saltstack.com -o /tmp/install_salt.sh || wget -O /tmp/install_salt.sh https://bootstrap.saltstack.com"), } o.Output(fmt.Sprintf("Downloading saltstack bootstrap to /tmp/install_salt.sh")) - if err = comm.Start(cmd); err != nil { - err = fmt.Errorf("Unable to download Salt: %s", err) - } - if err == nil { + err = communicator.Retry(ctx, func() error { + if err = comm.Start(cmd); err != nil { + return fmt.Errorf("Unable to download Salt: %s", err) + } + cmd.Wait() if cmd.ExitStatus != 0 { - err = fmt.Errorf("Script exited with non-zero exit status: %d", cmd.ExitStatus) + return fmt.Errorf("Curl exited with non-zero exit status: %d", cmd.ExitStatus) } - } + return nil + }) outR, outW := io.Pipe() errR, errW := io.Pipe() @@ -164,16 +166,17 @@ func applyFn(ctx context.Context) error { } o.Output(fmt.Sprintf("Installing Salt with command %s", cmd.Command)) - if err = comm.Start(cmd); err != nil { - err = fmt.Errorf("Unable to install Salt: %s", err) - } + err = communicator.Retry(ctx, func() error { + if err = comm.Start(cmd); err != nil { + return fmt.Errorf("Unable to install Salt: %s", err) + } - if err == nil { cmd.Wait() if cmd.ExitStatus != 0 { - err = fmt.Errorf("Script exited with non-zero exit status: %d", cmd.ExitStatus) + return fmt.Errorf("Salt install script exited with non-zero exit status: %d", cmd.ExitStatus) } - } + return nil + }) // Wait for output to clean up outW.Close() errW.Close() From be8d39210db9f94a9a9fdcd098f9f7ead1b9da6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Socha?= Date: Mon, 26 Feb 2018 15:40:26 +0100 Subject: [PATCH 103/156] Wait for ssh connection --- .../salt-masterless/resource_provisioner.go | 45 ++++++++++++------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/builtin/provisioners/salt-masterless/resource_provisioner.go b/builtin/provisioners/salt-masterless/resource_provisioner.go index e29146c64..d206423bc 100644 --- a/builtin/provisioners/salt-masterless/resource_provisioner.go +++ b/builtin/provisioners/salt-masterless/resource_provisioner.go @@ -131,6 +131,24 @@ func applyFn(ctx context.Context) error { return err } + ctx, cancelFunc := context.WithTimeout(ctx, comm.Timeout()) + defer cancelFunc() + + // Wait for the context to end and then disconnect + go func() { + <-ctx.Done() + comm.Disconnect() + }() + + // Wait and retry until we establish the connection + err = communicator.Retry(ctx, func() error { + return comm.Connect(o) + }) + + if err != nil { + return err + } + var src, dst string o.Output("Provisioning with Salt...") @@ -140,18 +158,16 @@ func applyFn(ctx context.Context) error { Command: fmt.Sprintf("curl -L https://bootstrap.saltstack.com -o /tmp/install_salt.sh || wget -O /tmp/install_salt.sh https://bootstrap.saltstack.com"), } o.Output(fmt.Sprintf("Downloading saltstack bootstrap to /tmp/install_salt.sh")) + if err = comm.Start(cmd); err != nil { + err = fmt.Errorf("Unable to download Salt: %s", err) + } - err = communicator.Retry(ctx, func() error { - if err = comm.Start(cmd); err != nil { - return fmt.Errorf("Unable to download Salt: %s", err) - } - + if err == nil { cmd.Wait() if cmd.ExitStatus != 0 { - return fmt.Errorf("Curl exited with non-zero exit status: %d", cmd.ExitStatus) + err = fmt.Errorf("Curl exited with non-zero exit status: %d", cmd.ExitStatus) } - return nil - }) + } outR, outW := io.Pipe() errR, errW := io.Pipe() @@ -166,17 +182,16 @@ func applyFn(ctx context.Context) error { } o.Output(fmt.Sprintf("Installing Salt with command %s", cmd.Command)) - err = communicator.Retry(ctx, func() error { - if err = comm.Start(cmd); err != nil { - return fmt.Errorf("Unable to install Salt: %s", err) - } + if err = comm.Start(cmd); err != nil { + err = fmt.Errorf("Unable to install Salt: %s", err) + } + if err == nil { cmd.Wait() if cmd.ExitStatus != 0 { - return fmt.Errorf("Salt install script exited with non-zero exit status: %d", cmd.ExitStatus) + err = fmt.Errorf("install_salt.sh exited with non-zero exit status: %d", cmd.ExitStatus) } - return nil - }) + } // Wait for output to clean up outW.Close() errW.Close() From 07a20365de8e02939b1f0f88289aa5da63b884d1 Mon Sep 17 00:00:00 2001 From: Uriel Corfa Date: Tue, 27 Feb 2018 02:54:48 +0800 Subject: [PATCH 104/156] cli: "terraform state list" -id argument A new -id option to "terraform state list" which constraints the output of the command to resources whose id is equal to the flag value. --- command/state_list.go | 9 +++- command/state_list_test.go | 59 ++++++++++++++++++++++++ website/docs/commands/state/list.html.md | 12 +++++ 3 files changed, 78 insertions(+), 2 deletions(-) diff --git a/command/state_list.go b/command/state_list.go index 211f5b3d0..ba0bc9e38 100644 --- a/command/state_list.go +++ b/command/state_list.go @@ -23,6 +23,7 @@ func (c *StateListCommand) Run(args []string) int { cmdFlags := c.Meta.flagSet("state list") cmdFlags.StringVar(&c.Meta.statePath, "state", DefaultStateFilename, "path") + lookupId := cmdFlags.String("id", "", "Restrict output to paths with a resource having the specified ID.") if err := cmdFlags.Parse(args); err != nil { return cli.RunResultHelp } @@ -62,8 +63,10 @@ func (c *StateListCommand) Run(args []string) int { } for _, result := range results { - if _, ok := result.Value.(*terraform.InstanceState); ok { - c.Ui.Output(result.Address) + if i, ok := result.Value.(*terraform.InstanceState); ok { + if *lookupId == "" || i.ID == *lookupId { + c.Ui.Output(result.Address) + } } } @@ -94,6 +97,8 @@ Options: up Terraform-managed resources. By default it will use the state "terraform.tfstate" if it exists. + -id=ID Restricts the output to objects whose id is ID. + ` return strings.TrimSpace(helpText) } diff --git a/command/state_list_test.go b/command/state_list_test.go index 4c484f09b..0d4cedd00 100644 --- a/command/state_list_test.go +++ b/command/state_list_test.go @@ -37,6 +37,65 @@ func TestStateList(t *testing.T) { } } +func TestStateListWithID(t *testing.T) { + state := testState() + statePath := testStateFile(t, state) + + p := testProvider() + ui := new(cli.MockUi) + c := &StateListCommand{ + Meta: Meta{ + testingOverrides: metaOverridesForProvider(p), + Ui: ui, + }, + } + + args := []string{ + "-state", statePath, + "-id", "bar", + } + if code := c.Run(args); code != 0 { + t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String()) + } + + // Test that outputs were displayed + expected := strings.TrimSpace(testStateListOutput) + "\n" + actual := ui.OutputWriter.String() + if actual != expected { + t.Fatalf("Expected:\n%q\n\nTo equal: %q", actual, expected) + } +} + +func TestStateListWithNonExistentID(t *testing.T) { + state := testState() + statePath := testStateFile(t, state) + + p := testProvider() + ui := new(cli.MockUi) + c := &StateListCommand{ + Meta: Meta{ + testingOverrides: metaOverridesForProvider(p), + Ui: ui, + }, + } + + args := []string{ + "-state", statePath, + "-id", "baz", + } + if code := c.Run(args); code != 0 { + t.Fatalf("bad: %d\n\n%s", code, ui.ErrorWriter.String()) + } + + // Test that output is empty + if ui.OutputWriter != nil { + actual := ui.OutputWriter.String() + if actual != "" { + t.Fatalf("Expected an empty output but got: %q", actual) + } + } +} + func TestStateList_backendState(t *testing.T) { // Create a temporary working directory that is empty td := tempDir(t) diff --git a/website/docs/commands/state/list.html.md b/website/docs/commands/state/list.html.md index 9b8a6dadc..f18b3716b 100644 --- a/website/docs/commands/state/list.html.md +++ b/website/docs/commands/state/list.html.md @@ -31,6 +31,7 @@ The command-line flags are all optional. The list of available flags are: * `-state=path` - Path to the state file. Defaults to "terraform.tfstate". Ignored when [remote state](/docs/state/remote.html) is used. +* `-id=id` - ID of resources to show. Ignored when unset. ## Example: All Resources @@ -62,3 +63,14 @@ This example will only list resources in the given module: $ terraform state list module.elb module.elb.aws_elb.main ``` + +## Example: Filtering by ID + +This example will only list the resource whose ID is specified on the +command line. This is useful to find where in your configuration a +specific resource is located. + +``` +$ terraform state list -id=sg-1234abcd +module.elb.aws_security_group.sg +``` From fe3a5f100dc83338448fbe34d4e1f42c66c55496 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Mon, 26 Feb 2018 10:55:45 -0800 Subject: [PATCH 105/156] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e37175910..3d5bc034f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ IMPROVEMENTS: +* cli: `terraform state list` now accepts a new argument `-id=...` for filtering resources for display by their remote ids [GH-17221] * core: https URLs are now supported in the HTTP_PROXY environment variable [go1.10:net/http](https://golang.org/doc/go1.10#net/http) * connection/ssh: Add support for host key verifiation [GH-17354] * backend/s3: add support for the cn-northwest-1 region [GH-17216] From 3f2f07d5d0e23cfe4eb25e011cb8dbe49f2eeff0 Mon Sep 17 00:00:00 2001 From: azban Date: Mon, 26 Feb 2018 11:06:25 -0800 Subject: [PATCH 106/156] website: don't document unimplemented salt-masterless grains_file --- website/docs/provisioners/salt-masterless.html.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/website/docs/provisioners/salt-masterless.html.md b/website/docs/provisioners/salt-masterless.html.md index dcf7c38c2..ad439918f 100644 --- a/website/docs/provisioners/salt-masterless.html.md +++ b/website/docs/provisioners/salt-masterless.html.md @@ -69,9 +69,6 @@ Optional: uploaded to the `/etc/salt` on the remote. This option overrides the `remote_state_tree` or `remote_pillar_roots` options. -- `grains_file` (string) - The path to your local [grains file](https://docs.saltstack.com/en/latest/topics/grains). This will be - uploaded to `/etc/salt/grains` on the remote. - - `skip_bootstrap` (boolean) - By default the salt provisioner runs [salt bootstrap](https://github.com/saltstack/salt-bootstrap) to install salt. Set this to true to skip this step. From 2b97585d460da65c1eaaa3e8280a454a0d4d1636 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Tue, 27 Feb 2018 10:49:06 -0500 Subject: [PATCH 107/156] improve clistate.Locker docs --- command/clistate/state.go | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/command/clistate/state.go b/command/clistate/state.go index 9bd9fe940..a17f96c34 100644 --- a/command/clistate/state.go +++ b/command/clistate/state.go @@ -50,9 +50,15 @@ that no one else is holding a lock. ` ) -// Locker allows for more convenient locking, by creating the timeout context -// and LockInfo for the caller, while storing any related data required for -// Unlock. +// Locker allows for more convenient usage of the lower-level state.Locker +// implementations. +// The state.Locker API requires passing in a state.LockInfo struct. Locker +// implementations are expected to create the required LockInfo struct when +// Lock is called, populate the Operation field with the "reason" string +// provided, and pass that on to the underlying state.Locker. +// Locker implementations are also expected to store any state required to call +// Unlock, which is at a minimum the LockID string returned by the +// state.Locker. type Locker interface { // Lock the provided state, storing the reason string in the LockInfo. Lock(s state.State, reason string) error @@ -73,9 +79,9 @@ type locker struct { } // Create a new Locker. -// The provided context will be used for lock cancellation, and combined with -// the timeout duration. Lock progress will be be reported to the user through -// the provided UI. +// This Locker uses state.LockWithContext to retry the lock until the provided +// timeout is reached, or the context is canceled. Lock progress will be be +// reported to the user through the provided UI. func NewLocker( ctx context.Context, timeout time.Duration, From 66ff8f8bed40293bd8a3ba827ca0b0838666c821 Mon Sep 17 00:00:00 2001 From: Nick Fagerlund Date: Tue, 27 Feb 2018 14:48:04 -0800 Subject: [PATCH 108/156] website: Deprecation notes about "terraform push" Also: - In the getting started guide, the TFE content was all tailored to the older run-locally workflow. I've replaced it with some brief explanation and a link to the dedicated TFE getting started guide. - Fixed a sidebar link glitch in the configuration section. (Both "Terraform" and "Terraform Enterprise" were marked as active if you were on the TFE page.) - Renamed the "Terraform Enterprise" page "Terraform Push." (Some people have gotten confused and landed on this page when trying to set up the `atlas` remote backend.) --- website/docs/commands/push.html.markdown | 10 ++- .../terraform-enterprise.html.md | 34 ++++---- .../getting-started/remote.html.markdown | 84 +++---------------- website/layouts/docs.erb | 4 +- 4 files changed, 37 insertions(+), 95 deletions(-) diff --git a/website/docs/commands/push.html.markdown b/website/docs/commands/push.html.markdown index ee667bce5..0fa68ae2e 100644 --- a/website/docs/commands/push.html.markdown +++ b/website/docs/commands/push.html.markdown @@ -8,11 +8,13 @@ description: |- # Command: push +~> **Important:** The `terraform push` command is deprecated, and only works with [the legacy version of Terraform Enterprise](/docs/enterprise-legacy/index.html). In the current version of Terraform Enterprise, you can upload configurations using the API. See [the docs about API-driven runs](/docs/enterprise/workspaces/run-api.html) for more details. + The `terraform push` command uploads your Terraform configuration to be managed by HashiCorp's [Terraform Enterprise](https://www.hashicorp.com/products/terraform/). -By uploading your configuration to Terraform Enterprise, you can automatically run -Terraform for you, will save all state transitions, will save plans, -and will keep a history of all Terraform runs. +Terraform Enterprise can automatically run +Terraform for you, save all state transitions, save plans, +and keep a history of all Terraform runs. This makes it significantly easier to use Terraform as a team: team members modify the Terraform configurations locally and continue to @@ -127,6 +129,8 @@ or plan), and the `-overwrite` flag tells the push command to update Terraform E ## Remote State Requirement +~> **Important:** This section only refers to the legacy version of Terraform Enterprise. The current version of Terraform Enterprise always manages its own state, and does not support arbitrary remote state backends. + `terraform push` requires that [remote state](/docs/state/remote.html) is enabled. The reasoning for this is simple: `terraform push` sends your diff --git a/website/docs/configuration/terraform-enterprise.html.md b/website/docs/configuration/terraform-enterprise.html.md index e59511f75..603ec467f 100644 --- a/website/docs/configuration/terraform-enterprise.html.md +++ b/website/docs/configuration/terraform-enterprise.html.md @@ -1,36 +1,26 @@ --- layout: "docs" -page_title: "Configuring Terraform Enterprise" -sidebar_current: "docs-config-terraform-enterprise" +page_title: "Configuring Terraform Push" +sidebar_current: "docs-config-push" description: |- - Terraform Enterprise is the ideal way to use Terraform in a team environment. Terraform Enterprise will run Terraform for you, safely handle parallelization across different team members, save run history along with plans, and more. + Terraform's push command was a way to interact with the legacy version of Terraform Enterprise. It is not supported in the current version of Terraform Enterprise. --- -# Terraform Enterprise Configuration +# Terraform Push Configuration -Terraform can be configured to be able to upload to HashiCorp's -[Terraform Enterprise](https://www.hashicorp.com/products/terraform/). This configuration doesn't change -the behavior of Terraform itself, it only configures your Terraform -configuration to support being uploaded to Terraform Enterprise via the -[push command](/docs/commands/push.html). +~> **Important:** The `terraform push` command is deprecated, and only works with [the legacy version of Terraform Enterprise](/docs/enterprise-legacy/index.html). In the current version of Terraform Enterprise, you can upload configurations using the API. See [the docs about API-driven runs](/docs/enterprise/workspaces/run-api.html) for more details. -For more information on the benefits of uploading your Terraform -configuration to Terraform Enterprise, please see the -[push command documentation](/docs/commands/push.html). +The [`terraform push` command](/docs/commands/push.html) uploads a configuration to a Terraform Enterprise (legacy) environment. The name of the environment (and the organization it's in) can be specified on the command line, or as part of the Terraform configuration in an `atlas` block. + +The `atlas` block does not configure remote state; it only configures the push command. For remote state, [use a `terraform { backend "" {...} }` block](/docs/backends/config.html). This page assumes you're familiar with the [configuration syntax](/docs/configuration/syntax.html) already. -~> **Why is this called "atlas"?** Atlas was previously a commercial offering -from HashiCorp that included a full suite of enterprise products. The products -have since been broken apart into their individual products, like **Terraform -Enterprise**. While this transition is in progress, you may see references to -"atlas" in the documentation. We apologize for the inconvenience. - ## Example -Terraform Enterprise configuration looks like the following: +Terraform push configuration looks like the following: ```hcl atlas { @@ -38,6 +28,12 @@ atlas { } ``` +~> **Why is this called "atlas"?** Atlas was previously a commercial offering +from HashiCorp that included a full suite of enterprise products. The products +have since been broken apart into their individual products, like **Terraform +Enterprise**. While this transition is in progress, you may see references to +"atlas" in the documentation. We apologize for the inconvenience. + ## Description The `atlas` block configures the settings when Terraform is diff --git a/website/intro/getting-started/remote.html.markdown b/website/intro/getting-started/remote.html.markdown index b24a04100..ea3cfe0c0 100644 --- a/website/intro/getting-started/remote.html.markdown +++ b/website/intro/getting-started/remote.html.markdown @@ -10,12 +10,14 @@ description: |- We've now seen how to build, change, and destroy infrastructure from a local machine. This is great for testing and development, -however in production environments it is more responsible to run -Terraform remotely and store a master Terraform state remotely. +but in production environments it is more responsible to share responsibility +for infrastructure. The best way to do this is by running Terraform in a remote +environment with shared access to state. -Terraform supports a feature known as [remote backends](/docs/backends) -to support this. Backends are the recommended way to use Terraform in -a team environment. +Terraform supports team-based workflows with a feature known as [remote +backends](/docs/backends). Remote backends allow Terraform to use a shared +storage space for state data, so any member of your team can use Terraform to +manage the same infrastructure. Depending on the features you wish to use, Terraform has multiple remote backend options. You could use Consul for state storage, locking, and @@ -31,7 +33,7 @@ When a proposed change is accepted, the Terraform logs are stored, resulting in a linear history of infrastructure states to help with auditing and policy enforcement. Additional benefits to running Terraform remotely include moving access -credentials off of developer machines and releasing local machines +credentials off of developer machines and freeing local machines from long-running Terraform processes. ## How to Store State Remotely @@ -90,75 +92,15 @@ once again ask if you want to migrate your state back to local. ## Terraform Enterprise -HashiCorp (the makers of Terraform) also provide a commercial solution which -functions as a Terraform backend as well as enabling many other features such -as remote apply, run history, state history, state diffing, and more. +[Terraform Enterprise](https://www.hashicorp.com/products/terraform/?utm_source=oss&utm_medium=getting-started&utm_campaign=terraform) is a commercial solution which combines a predictable and reliable shared run environment with tools to help you work together on Terraform configurations and modules. -This section will guide you through a demo of Terraform Enterprise. Note that -this is commercial software. If you are not interested at this time, you may -skip this section. +Although Terraform Enterprise can act as a standard remote backend to support Terraform runs on local machines, it works even better as a remote run environment. It supports two main workflows for performing Terraform runs: -First, [create an account here](https://atlas.hashicorp.com/account/new?utm_source=oss&utm_medium=getting-started&utm_campaign=terraform) unless you already have one. +- A VCS-driven workflow, in which it automatically queues plans whenever changes are committed to your configuration's VCS repo. +- An API-driven workflow, in which a CI pipeline or other automated tool can upload configurations directly. -Terraform uses your access token to securely communicate with Terraform -Enterprise. To generate a token: select your username in the left side -navigation menu, click "Accounts Settings", "click "Tokens", then click -"Generate". +For a hands-on introduction to Terraform Enterprise, [follow the Terraform Enterprise getting started guide](/docs/enterprise/getting-started/index.html). -For the purposes of this tutorial you can use this token by exporting it to -your local shell session: - -``` -$ export ATLAS_TOKEN=ATLAS_ACCESS_TOKEN -``` - -Replace `ATLAS_ACCESS_TOKEN` with the token generated earlier. Next, -configure the Terraform Enterprise backend: - -```hcl -terraform { - backend "atlas" { - name = "USERNAME/getting-started" - } -} -``` - -Replace `USERNAME` with your Terraform Enterprise username. Note that the -backend name is "atlas" for legacy reasons and will be renamed soon. - -Remember to run `terraform init`. At this point, Terraform is using Terraform -Enterprise for everything shown before with Consul. Next, we'll show you some -additional functionality Terraform Enterprise enables. - -Before you [push](/docs/commands/push.html) your Terraform configuration to -Terraform Enterprise you'll need to start a local version control system with -at least one commit. Here is an example using `git`. - -``` -$ git init -$ git add example.tf -$ git commit -m "init commit" -``` - -Next, [push](/docs/commands/push.html) your Terraform configuration: - -``` -$ terraform push -``` - -This will automatically trigger a `terraform plan`, which you can -review in the [Terraform page](https://atlas.hashicorp.com/terraform). -If the plan looks correct, hit "Confirm & Apply" to execute the -infrastructure changes. - -Running Terraform in Terraform Enterprise creates a complete history of -infrastructure changes, a sort of version control -for infrastructure. Similar to application version control -systems such as Git or Subversion, this makes changes to -infrastructure an auditable, repeatable, -and collaborative process. With so much relying on the -stability of your infrastructure, version control is a -responsible choice for minimizing downtime. ## Next You now know how to create, modify, destroy, version, and diff --git a/website/layouts/docs.erb b/website/layouts/docs.erb index e68f37fd0..c8535b44d 100644 --- a/website/layouts/docs.erb +++ b/website/layouts/docs.erb @@ -52,8 +52,8 @@ Terraform - > - Terraform Enterprise + > + Terraform Push (deprecated) > From 344e8fca05852e281a901a39d47c431eff095306 Mon Sep 17 00:00:00 2001 From: Paul Tyng Date: Wed, 28 Feb 2018 11:40:17 -0500 Subject: [PATCH 109/156] Relax typing to allow for http.RoundTripper --- registry/client.go | 2 +- svchost/disco/disco.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/registry/client.go b/registry/client.go index 6525c5410..f778bfa4f 100644 --- a/registry/client.go +++ b/registry/client.go @@ -55,7 +55,7 @@ func NewClient(services *disco.Disco, creds auth.CredentialsSource, client *http client.Timeout = requestTimeout } - services.Transport = client.Transport.(*http.Transport) + services.Transport = client.Transport return &Client{ client: client, diff --git a/svchost/disco/disco.go b/svchost/disco/disco.go index db4046371..90f056025 100644 --- a/svchost/disco/disco.go +++ b/svchost/disco/disco.go @@ -40,9 +40,9 @@ type Disco struct { hostCache map[svchost.Hostname]Host credsSrc auth.CredentialsSource - // Transport is a custom http.Transport to use. + // Transport is a custom http.RoundTripper to use. // A package default is used if this is nil. - Transport *http.Transport + Transport http.RoundTripper } func NewDisco() *Disco { From c868092d2dd04fdde891619460a25e6a3cf6b42c Mon Sep 17 00:00:00 2001 From: Paul Tyng Date: Wed, 28 Feb 2018 11:40:43 -0500 Subject: [PATCH 110/156] Standardize http.Client creation with User-Agent --- backend/remote-state/gcs/backend.go | 4 +- httpclient/client.go | 18 +++++++ httpclient/client_test.go | 77 +++++++++++++++++++++++++++++ httpclient/useragent.go | 26 ++++++++++ plugin/discovery/get.go | 16 +++++- registry/client.go | 4 +- state/remote/gcs.go | 9 +--- svchost/disco/disco.go | 7 --- terraform/user_agent.go | 13 ++--- 9 files changed, 146 insertions(+), 28 deletions(-) create mode 100644 httpclient/client.go create mode 100644 httpclient/client_test.go create mode 100644 httpclient/useragent.go diff --git a/backend/remote-state/gcs/backend.go b/backend/remote-state/gcs/backend.go index cf11c4361..fc5109264 100644 --- a/backend/remote-state/gcs/backend.go +++ b/backend/remote-state/gcs/backend.go @@ -13,7 +13,7 @@ import ( "github.com/hashicorp/terraform/backend" "github.com/hashicorp/terraform/helper/pathorcontents" "github.com/hashicorp/terraform/helper/schema" - "github.com/hashicorp/terraform/terraform" + "github.com/hashicorp/terraform/httpclient" "golang.org/x/oauth2/jwt" "google.golang.org/api/option" ) @@ -156,7 +156,7 @@ func (b *gcsBackend) configure(ctx context.Context) error { opts = append(opts, option.WithScopes(storage.ScopeReadWrite)) } - opts = append(opts, option.WithUserAgent(terraform.UserAgentString())) + opts = append(opts, option.WithUserAgent(httpclient.UserAgentString())) client, err := storage.NewClient(b.storageContext, opts...) if err != nil { return fmt.Errorf("storage.NewClient() failed: %v", err) diff --git a/httpclient/client.go b/httpclient/client.go new file mode 100644 index 000000000..bb06beb47 --- /dev/null +++ b/httpclient/client.go @@ -0,0 +1,18 @@ +package httpclient + +import ( + "net/http" + + cleanhttp "github.com/hashicorp/go-cleanhttp" +) + +// New returns the DefaultPooledClient from the cleanhttp +// package that will also send a Terraform User-Agent string. +func New() *http.Client { + cli := cleanhttp.DefaultPooledClient() + cli.Transport = &userAgentRoundTripper{ + userAgent: UserAgentString(), + inner: cli.Transport, + } + return cli +} diff --git a/httpclient/client_test.go b/httpclient/client_test.go new file mode 100644 index 000000000..8a748f7c2 --- /dev/null +++ b/httpclient/client_test.go @@ -0,0 +1,77 @@ +package httpclient + +import ( + "fmt" + "net/http" + "net/http/httptest" + "net/url" + "testing" + + "github.com/hashicorp/terraform/version" +) + +func TestUserAgent(t *testing.T) { + var actualUserAgent string + ts := httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) { + actualUserAgent = req.UserAgent() + })) + defer ts.Close() + + tsURL, err := url.Parse(ts.URL) + if err != nil { + t.Fatal(err) + } + + for i, c := range []struct { + expected string + request func(c *http.Client) error + }{ + { + fmt.Sprintf("Terraform/%s", version.Version), + func(c *http.Client) error { + _, err := c.Get(ts.URL) + return err + }, + }, + { + "foo/1", + func(c *http.Client) error { + req := &http.Request{ + Method: "GET", + URL: tsURL, + Header: http.Header{ + "User-Agent": []string{"foo/1"}, + }, + } + _, err := c.Do(req) + return err + }, + }, + { + "", + func(c *http.Client) error { + req := &http.Request{ + Method: "GET", + URL: tsURL, + Header: http.Header{ + "User-Agent": []string{""}, + }, + } + _, err := c.Do(req) + return err + }, + }, + } { + t.Run(fmt.Sprintf("%d %s", i, c.expected), func(t *testing.T) { + actualUserAgent = "" + cli := New() + err := c.request(cli) + if err != nil { + t.Fatal(err) + } + if actualUserAgent != c.expected { + t.Fatalf("actual User-Agent '%s' is not '%s'", actualUserAgent, c.expected) + } + }) + } +} diff --git a/httpclient/useragent.go b/httpclient/useragent.go new file mode 100644 index 000000000..d8db087cf --- /dev/null +++ b/httpclient/useragent.go @@ -0,0 +1,26 @@ +package httpclient + +import ( + "fmt" + "net/http" + + "github.com/hashicorp/terraform/version" +) + +const userAgentFormat = "Terraform/%s" + +func UserAgentString() string { + return fmt.Sprintf(userAgentFormat, version.Version) +} + +type userAgentRoundTripper struct { + inner http.RoundTripper + userAgent string +} + +func (rt *userAgentRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) { + if _, ok := req.Header["User-Agent"]; !ok { + req.Header.Set("User-Agent", rt.userAgent) + } + return rt.inner.RoundTrip(req) +} diff --git a/plugin/discovery/get.go b/plugin/discovery/get.go index f523c3608..815640f14 100644 --- a/plugin/discovery/get.go +++ b/plugin/discovery/get.go @@ -15,9 +15,9 @@ import ( "golang.org/x/net/html" - cleanhttp "github.com/hashicorp/go-cleanhttp" getter "github.com/hashicorp/go-getter" multierror "github.com/hashicorp/go-multierror" + "github.com/hashicorp/terraform/httpclient" "github.com/mitchellh/cli" ) @@ -33,7 +33,19 @@ const protocolVersionHeader = "x-terraform-protocol-version" var releaseHost = "https://releases.hashicorp.com" -var httpClient = cleanhttp.DefaultPooledClient() +var httpClient *http.Client + +func init() { + httpClient = httpclient.New() + + httpGetter := &getter.HttpGetter{ + Client: httpClient, + Netrc: true, + } + + getter.Getters["http"] = httpGetter + getter.Getters["https"] = httpGetter +} // An Installer maintains a local cache of plugins by downloading plugins // from an online repository. diff --git a/registry/client.go b/registry/client.go index f778bfa4f..aefed84af 100644 --- a/registry/client.go +++ b/registry/client.go @@ -11,7 +11,7 @@ import ( "strings" "time" - cleanhttp "github.com/hashicorp/go-cleanhttp" + "github.com/hashicorp/terraform/httpclient" "github.com/hashicorp/terraform/registry/regsrc" "github.com/hashicorp/terraform/registry/response" "github.com/hashicorp/terraform/svchost" @@ -51,7 +51,7 @@ func NewClient(services *disco.Disco, creds auth.CredentialsSource, client *http services.SetCredentialsSource(creds) if client == nil { - client = cleanhttp.DefaultPooledClient() + client = httpclient.New() client.Timeout = requestTimeout } diff --git a/state/remote/gcs.go b/state/remote/gcs.go index bfd5118cd..deaaef139 100644 --- a/state/remote/gcs.go +++ b/state/remote/gcs.go @@ -8,18 +8,16 @@ import ( "log" "net/http" "os" - "runtime" "strings" "github.com/hashicorp/terraform/helper/pathorcontents" + "github.com/hashicorp/terraform/httpclient" "golang.org/x/net/context" "golang.org/x/oauth2" "golang.org/x/oauth2/google" "golang.org/x/oauth2/jwt" "google.golang.org/api/googleapi" "google.golang.org/api/storage/v1" - - version "github.com/hashicorp/terraform/version" ) // accountFile represents the structure of the credentials JSON @@ -100,16 +98,13 @@ func gcsFactory(conf map[string]string) (Client, error) { return nil, err } } - versionString := version.Version - userAgent := fmt.Sprintf( - "(%s %s) Terraform/%s", runtime.GOOS, runtime.GOARCH, versionString) log.Printf("[INFO] Instantiating Google Storage Client...") clientStorage, err := storage.New(client) if err != nil { return nil, err } - clientStorage.UserAgent = userAgent + clientStorage.UserAgent = httpclient.UserAgentString() return &GCSClient{ clientStorage: clientStorage, diff --git a/svchost/disco/disco.go b/svchost/disco/disco.go index 90f056025..144384e04 100644 --- a/svchost/disco/disco.go +++ b/svchost/disco/disco.go @@ -8,7 +8,6 @@ package disco import ( "encoding/json" "errors" - "fmt" "io" "io/ioutil" "log" @@ -20,7 +19,6 @@ import ( cleanhttp "github.com/hashicorp/go-cleanhttp" "github.com/hashicorp/terraform/svchost" "github.com/hashicorp/terraform/svchost/auth" - "github.com/hashicorp/terraform/version" ) const ( @@ -30,7 +28,6 @@ const ( maxDiscoDocBytes = 1 * 1024 * 1024 // 1MB - to prevent abusive services from using loads of our memory ) -var userAgent = fmt.Sprintf("Terraform/%s (service discovery)", version.String()) var httpTransport = cleanhttp.DefaultPooledTransport() // overridden during tests, to skip TLS verification // Disco is the main type in this package, which allows discovery on given @@ -142,13 +139,9 @@ func (d *Disco) discover(host svchost.Hostname) Host { }, } - var header = http.Header{} - header.Set("User-Agent", userAgent) - req := &http.Request{ Method: "GET", URL: discoURL, - Header: header, } if d.credsSrc != nil { diff --git a/terraform/user_agent.go b/terraform/user_agent.go index 76bdae099..a42613e85 100644 --- a/terraform/user_agent.go +++ b/terraform/user_agent.go @@ -1,16 +1,13 @@ package terraform import ( - "fmt" - "runtime" - - "github.com/hashicorp/terraform/version" + "github.com/hashicorp/terraform/httpclient" ) -// The standard Terraform User-Agent format -const UserAgent = "Terraform %s (%s)" - // Generate a UserAgent string +// +// Deprecated: Use httpclient.UserAgentString if you are setting your +// own User-Agent header. func UserAgentString() string { - return fmt.Sprintf(UserAgent, version.String(), runtime.Version()) + return httpclient.UserAgentString() } From 1da21524822ce1b183542aabf307286ac799893d Mon Sep 17 00:00:00 2001 From: Chris Griggs Date: Wed, 28 Feb 2018 16:47:56 -0800 Subject: [PATCH 111/156] website: Link to MongoDB Atlas community provider --- .../docs/providers/type/community-index.html.markdown | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/website/docs/providers/type/community-index.html.markdown b/website/docs/providers/type/community-index.html.markdown index f6d99560f..902b66d2d 100644 --- a/website/docs/providers/type/community-index.html.markdown +++ b/website/docs/providers/type/community-index.html.markdown @@ -50,22 +50,27 @@ please fill out this [community providers form](https://docs.google.com/forms/d/ Kong LXD - Open Day Light + MongoDB Atlas + Open Day Light Pass Puppet CA - PuppetDB + PuppetDB Runscope SakuraCloud - Sentry + Sentry SignalFx SCVMM + + vRealize Automation + + From ccf8a31cbb12f5d56398cdd0524a519726f7cc54 Mon Sep 17 00:00:00 2001 From: Radek Simko Date: Wed, 28 Feb 2018 12:55:14 +0000 Subject: [PATCH 112/156] helper/schema: Allow ResourceDiff.ForceNew on nested fields (avoid crash) --- helper/schema/resource_diff.go | 34 +++++- helper/schema/resource_diff_test.go | 183 ++++++++++++++++++++++++++++ 2 files changed, 213 insertions(+), 4 deletions(-) diff --git a/helper/schema/resource_diff.go b/helper/schema/resource_diff.go index 822d0dc4d..7b3716dd7 100644 --- a/helper/schema/resource_diff.go +++ b/helper/schema/resource_diff.go @@ -223,9 +223,11 @@ func (d *ResourceDiff) Clear(key string) error { func (d *ResourceDiff) clear(key string) error { // Check the schema to make sure that this key exists first. - if _, ok := d.schema[key]; !ok { + schemaL := addrToSchema(strings.Split(key, "."), d.schema) + if len(schemaL) == 0 { return fmt.Errorf("%s is not a valid key", key) } + for k := range d.diff.Attributes { if strings.HasPrefix(k, key) { delete(d.diff.Attributes, k) @@ -234,6 +236,19 @@ func (d *ResourceDiff) clear(key string) error { return nil } +// GetChangedKeysPrefix helps to implement Resource.CustomizeDiff +// where we need to act on all nested fields +// without calling out each one separately +func (d *ResourceDiff) GetChangedKeysPrefix(prefix string) []string { + keys := make([]string, 0) + for k := range d.diff.Attributes { + if strings.HasPrefix(k, prefix) { + keys = append(keys, k) + } + } + return keys +} + // diffChange helps to implement resourceDiffer and derives its change values // from ResourceDiff's own change data, in addition to existing diff, config, and state. func (d *ResourceDiff) diffChange(key string) (interface{}, interface{}, bool, bool, bool) { @@ -309,9 +324,20 @@ func (d *ResourceDiff) ForceNew(key string) error { return fmt.Errorf("ForceNew: No changes for %s", key) } - _, new := d.GetChange(key) - d.schema[key].ForceNew = true - return d.setDiff(key, new, false) + keyParts := strings.Split(key, ".") + var schema *Schema + schemaL := addrToSchema(keyParts, d.schema) + if len(schemaL) > 0 { + schema = schemaL[len(schemaL)-1] + } else { + return fmt.Errorf("ForceNew: %s is not a valid key", key) + } + + schema.ForceNew = true + + // We need to set whole lists/sets/maps here + _, new := d.GetChange(keyParts[0]) + return d.setDiff(keyParts[0], new, false) } // Get hands off to ResourceData.Get. diff --git a/helper/schema/resource_diff_test.go b/helper/schema/resource_diff_test.go index 18ba40935..f5f14a125 100644 --- a/helper/schema/resource_diff_test.go +++ b/helper/schema/resource_diff_test.go @@ -2,6 +2,7 @@ package schema import ( "reflect" + "sort" "testing" "github.com/davecgh/go-spew/spew" @@ -29,6 +30,7 @@ type resourceDiffTestCase struct { OldValue interface{} NewValue interface{} Expected *terraform.InstanceDiff + ExpectedKeys []string ExpectedError bool } @@ -697,6 +699,69 @@ func TestForceNew(t *testing.T) { }, }, }, + resourceDiffTestCase{ + Name: "nested field", + Schema: map[string]*Schema{ + "foo": &Schema{ + Type: TypeList, + Required: true, + MaxItems: 1, + Elem: &Resource{ + Schema: map[string]*Schema{ + "bar": { + Type: TypeString, + Optional: true, + }, + "baz": { + Type: TypeString, + Optional: true, + }, + }, + }, + }, + }, + State: &terraform.InstanceState{ + Attributes: map[string]string{ + "foo.#": "1", + "foo.0.bar": "abc", + "foo.0.baz": "xyz", + }, + }, + Config: testConfig(t, map[string]interface{}{ + "foo": []map[string]interface{}{ + map[string]interface{}{ + "bar": "abcdefg", + "baz": "changed", + }, + }, + }), + Diff: &terraform.InstanceDiff{ + Attributes: map[string]*terraform.ResourceAttrDiff{ + "foo.0.bar": &terraform.ResourceAttrDiff{ + Old: "abc", + New: "abcdefg", + }, + "foo.0.baz": &terraform.ResourceAttrDiff{ + Old: "xyz", + New: "changed", + }, + }, + }, + Key: "foo.0.baz", + Expected: &terraform.InstanceDiff{ + Attributes: map[string]*terraform.ResourceAttrDiff{ + "foo.0.bar": &terraform.ResourceAttrDiff{ + Old: "abc", + New: "abcdefg", + }, + "foo.0.baz": &terraform.ResourceAttrDiff{ + Old: "xyz", + New: "changed", + RequiresNew: true, + }, + }, + }, + }, } for _, tc := range cases { t.Run(tc.Name, func(t *testing.T) { @@ -851,3 +916,121 @@ func TestClear(t *testing.T) { }) } } + +func TestGetChangedKeysPrefix(t *testing.T) { + cases := []resourceDiffTestCase{ + resourceDiffTestCase{ + Name: "basic primitive diff", + Schema: map[string]*Schema{ + "foo": &Schema{ + Type: TypeString, + Optional: true, + Computed: true, + }, + }, + State: &terraform.InstanceState{ + Attributes: map[string]string{ + "foo": "bar", + }, + }, + Config: testConfig(t, map[string]interface{}{ + "foo": "baz", + }), + Diff: &terraform.InstanceDiff{ + Attributes: map[string]*terraform.ResourceAttrDiff{ + "foo": &terraform.ResourceAttrDiff{ + Old: "bar", + New: "baz", + }, + }, + }, + Key: "foo", + ExpectedKeys: []string{ + "foo", + }, + }, + resourceDiffTestCase{ + Name: "nested field filtering", + Schema: map[string]*Schema{ + "testfield": &Schema{ + Type: TypeString, + Required: true, + }, + "foo": &Schema{ + Type: TypeList, + Required: true, + MaxItems: 1, + Elem: &Resource{ + Schema: map[string]*Schema{ + "bar": { + Type: TypeString, + Optional: true, + }, + "baz": { + Type: TypeString, + Optional: true, + }, + }, + }, + }, + }, + State: &terraform.InstanceState{ + Attributes: map[string]string{ + "testfield": "blablah", + "foo.#": "1", + "foo.0.bar": "abc", + "foo.0.baz": "xyz", + }, + }, + Config: testConfig(t, map[string]interface{}{ + "testfield": "modified", + "foo": []map[string]interface{}{ + map[string]interface{}{ + "bar": "abcdefg", + "baz": "changed", + }, + }, + }), + Diff: &terraform.InstanceDiff{ + Attributes: map[string]*terraform.ResourceAttrDiff{ + "testfield": &terraform.ResourceAttrDiff{ + Old: "blablah", + New: "modified", + }, + "foo.0.bar": &terraform.ResourceAttrDiff{ + Old: "abc", + New: "abcdefg", + }, + "foo.0.baz": &terraform.ResourceAttrDiff{ + Old: "xyz", + New: "changed", + }, + }, + }, + Key: "foo", + ExpectedKeys: []string{ + "foo.0.bar", + "foo.0.baz", + }, + }, + } + for _, tc := range cases { + t.Run(tc.Name, func(t *testing.T) { + m := schemaMap(tc.Schema) + d := newResourceDiff(m, tc.Config, tc.State, tc.Diff) + keys := d.GetChangedKeysPrefix(tc.Key) + + for _, k := range d.UpdatedKeys() { + if err := m.diff(k, m[k], tc.Diff, d, false); err != nil { + t.Fatalf("bad: %s", err) + } + } + + sort.Strings(keys) + + if !reflect.DeepEqual(tc.ExpectedKeys, keys) { + t.Fatalf("Expected %s, got %s", spew.Sdump(tc.ExpectedKeys), spew.Sdump(keys)) + } + }) + } +} From ea64b24cd97309dfc337ac7902d88b4940030379 Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Thu, 1 Mar 2018 23:19:07 -0500 Subject: [PATCH 113/156] validation: Add ValidateRFC3339TimeString --- helper/validation/validation.go | 10 ++++++ helper/validation/validation_test.go | 52 ++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) diff --git a/helper/validation/validation.go b/helper/validation/validation.go index b92916315..6c3b29a45 100644 --- a/helper/validation/validation.go +++ b/helper/validation/validation.go @@ -6,6 +6,7 @@ import ( "reflect" "regexp" "strings" + "time" "github.com/hashicorp/terraform/helper/schema" "github.com/hashicorp/terraform/helper/structure" @@ -210,3 +211,12 @@ func ValidateRegexp(v interface{}, k string) (ws []string, errors []error) { } return } + +// ValidateRFC3339TimeString is a ValidateFunc that ensures a string parses +// as time.RFC3339 format +func ValidateRFC3339TimeString(v interface{}, k string) (ws []string, errors []error) { + if _, err := time.Parse(time.RFC3339, v.(string)); err != nil { + errors = append(errors, fmt.Errorf("%q: %s", k, err)) + } + return +} diff --git a/helper/validation/validation_test.go b/helper/validation/validation_test.go index cd68fa18d..82932ba51 100644 --- a/helper/validation/validation_test.go +++ b/helper/validation/validation_test.go @@ -144,6 +144,58 @@ func TestValidationRegexp(t *testing.T) { }) } +func TestValidateRFC3339TimeString(t *testing.T) { + runTestCases(t, []testCase{ + { + val: "2018-03-01T00:00:00Z", + f: ValidateRFC3339TimeString, + }, + { + val: "2018-03-01T00:00:00-05:00", + f: ValidateRFC3339TimeString, + }, + { + val: "2018-03-01T00:00:00+05:00", + f: ValidateRFC3339TimeString, + }, + { + val: "03/01/2018", + f: ValidateRFC3339TimeString, + expectedErr: regexp.MustCompile(regexp.QuoteMeta(`cannot parse "1/2018" as "2006"`)), + }, + { + val: "03-01-2018", + f: ValidateRFC3339TimeString, + expectedErr: regexp.MustCompile(regexp.QuoteMeta(`cannot parse "1-2018" as "2006"`)), + }, + { + val: "2018-03-01", + f: ValidateRFC3339TimeString, + expectedErr: regexp.MustCompile(regexp.QuoteMeta(`cannot parse "" as "T"`)), + }, + { + val: "2018-03-01T", + f: ValidateRFC3339TimeString, + expectedErr: regexp.MustCompile(regexp.QuoteMeta(`cannot parse "" as "15"`)), + }, + { + val: "2018-03-01T00:00:00", + f: ValidateRFC3339TimeString, + expectedErr: regexp.MustCompile(regexp.QuoteMeta(`cannot parse "" as "Z07:00"`)), + }, + { + val: "2018-03-01T00:00:00Z05:00", + f: ValidateRFC3339TimeString, + expectedErr: regexp.MustCompile(regexp.QuoteMeta(`extra text: 05:00`)), + }, + { + val: "2018-03-01T00:00:00Z-05:00", + f: ValidateRFC3339TimeString, + expectedErr: regexp.MustCompile(regexp.QuoteMeta(`extra text: -05:00`)), + }, + }) +} + func TestValidateJsonString(t *testing.T) { type testCases struct { Value string From 664391c254eaa867f2c653d5bb5c54cec1785609 Mon Sep 17 00:00:00 2001 From: Anthony Galea Date: Fri, 2 Mar 2018 18:16:01 +0100 Subject: [PATCH 114/156] website: fix various typos --- website/intro/getting-started/destroy.html.md | 2 +- website/intro/getting-started/modules.html.md | 4 ++-- website/intro/getting-started/provision.html.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/website/intro/getting-started/destroy.html.md b/website/intro/getting-started/destroy.html.md index 9d888e491..010bf5347 100644 --- a/website/intro/getting-started/destroy.html.md +++ b/website/intro/getting-started/destroy.html.md @@ -31,7 +31,7 @@ $ terraform destroy - aws_instance.example ``` -The `-` prefix indicates that a the instance will be destroyed. As with apply, +The `-` prefix indicates that the instance will be destroyed. As with apply, Terraform shows its execution plan and waits for approval before making any changes. diff --git a/website/intro/getting-started/modules.html.md b/website/intro/getting-started/modules.html.md index 0debae300..7c39f5c69 100644 --- a/website/intro/getting-started/modules.html.md +++ b/website/intro/getting-started/modules.html.md @@ -38,7 +38,7 @@ larger building-blocks for your infrastructure. In this example, we're going to use [the Consul Terraform module for AWS](https://registry.terraform.io/modules/hashicorp/consul/aws), which will set up a complete [Consul](https://www.consul.io) cluster. -This and other modules can found via the search feature on the Terraform +This and other modules can be found via the search feature on the Terraform Registry site. Create a configuration file with the following contents: @@ -143,7 +143,7 @@ The `module.consul.module.consul_clients` prefix shown above indicates not only that the resource is from the `module "consul"` block we wrote, but in fact that this module has its own `module "consul_clients"` block within it. Modules can be nested to decompose complex systems into -managable components. +manageable components. The full set of resources created by this module includes an autoscaling group, security groups, IAM roles and other individual resources that all support diff --git a/website/intro/getting-started/provision.html.md b/website/intro/getting-started/provision.html.md index 7d30818e0..3cc6a691a 100644 --- a/website/intro/getting-started/provision.html.md +++ b/website/intro/getting-started/provision.html.md @@ -85,7 +85,7 @@ It contains the IP, just as we asked! ## Failed Provisioners and Tainted Resources If a resource successfully creates but fails during provisioning, -Terraform will error and mark the resource as "tainted." A +Terraform will error and mark the resource as "tainted". A resource that is tainted has been physically created, but can't be considered safe to use since provisioning failed. From 6f98b4d4bec0807bd6d7734e7330c8bf3ed71875 Mon Sep 17 00:00:00 2001 From: Chris Griggs Date: Mon, 5 Mar 2018 15:40:08 -0800 Subject: [PATCH 115/156] website: two more community providers --- .../providers/type/community-index.html.markdown | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/docs/providers/type/community-index.html.markdown b/website/docs/providers/type/community-index.html.markdown index 902b66d2d..1cc76124c 100644 --- a/website/docs/providers/type/community-index.html.markdown +++ b/website/docs/providers/type/community-index.html.markdown @@ -44,33 +44,33 @@ please fill out this [community providers form](https://docs.google.com/forms/d/ Jira + JumpCloud Kafka - Kibana + Kibana Kong LXD - MongoDB Atlas + Matchbox + MongoDB Atlas Open Day Light + + Pass Puppet CA + PuppetDB - PuppetDB Runscope SakuraCloud + Sentry - Sentry SignalFx SCVMM - - vRealize Automation - - From 999f9096c10ba5ee41fc811b19a7e27c2b8592d8 Mon Sep 17 00:00:00 2001 From: Kristiyan Nikolov Date: Tue, 6 Mar 2018 01:58:49 +0200 Subject: [PATCH 116/156] provisioner/local-exec: Allow passing environment variables --- .../local-exec/resource_provisioner.go | 24 ++++++++++++++++--- .../local-exec/resource_provisioner_test.go | 24 +++++++++++++++++++ .../provisioners/local-exec.html.markdown | 19 +++++++++++++++ 3 files changed, 64 insertions(+), 3 deletions(-) diff --git a/builtin/provisioners/local-exec/resource_provisioner.go b/builtin/provisioners/local-exec/resource_provisioner.go index 3cb56f4a0..a7ea52ba7 100644 --- a/builtin/provisioners/local-exec/resource_provisioner.go +++ b/builtin/provisioners/local-exec/resource_provisioner.go @@ -28,17 +28,19 @@ func Provisioner() terraform.ResourceProvisioner { Type: schema.TypeString, Required: true, }, - "interpreter": &schema.Schema{ Type: schema.TypeList, Elem: &schema.Schema{Type: schema.TypeString}, Optional: true, }, - "working_dir": &schema.Schema{ Type: schema.TypeString, Optional: true, }, + "environment": &schema.Schema{ + Type: schema.TypeMap, + Optional: true, + }, }, ApplyFunc: applyFn, @@ -50,11 +52,20 @@ func applyFn(ctx context.Context) error { o := ctx.Value(schema.ProvOutputKey).(terraform.UIOutput) command := data.Get("command").(string) - if command == "" { return fmt.Errorf("local-exec provisioner command must be a non-empty string") } + // Execute the command with env + environment := data.Get("environment").(map[string]interface{}) + + var env []string + env = make([]string, len(environment)) + for k := range environment { + entry := fmt.Sprintf("%s=%s", k, environment[k].(string)) + env = append(env, entry) + } + // Execute the command using a shell interpreter := data.Get("interpreter").([]interface{}) @@ -85,6 +96,10 @@ func applyFn(ctx context.Context) error { return fmt.Errorf("failed to initialize pipe for output: %s", err) } + var cmdEnv []string + cmdEnv = os.Environ() + cmdEnv = append(cmdEnv, env...) + // Setup the command cmd := exec.CommandContext(ctx, cmdargs[0], cmdargs[1:]...) cmd.Stderr = pw @@ -93,6 +108,9 @@ func applyFn(ctx context.Context) error { // If Dir is the empty string (this is default), runs the command // in the calling process's current directory. cmd.Dir = workingdir + // Env specifies the environment of the command. + // By default will use the calling process's environment + cmd.Env = cmdEnv output, _ := circbuf.NewBuffer(maxBufSize) diff --git a/builtin/provisioners/local-exec/resource_provisioner_test.go b/builtin/provisioners/local-exec/resource_provisioner_test.go index 7db982f05..1e7f37278 100644 --- a/builtin/provisioners/local-exec/resource_provisioner_test.go +++ b/builtin/provisioners/local-exec/resource_provisioner_test.go @@ -174,3 +174,27 @@ func TestResourceProvider_ApplyCustomWorkingDirectory(t *testing.T) { t.Errorf("wrong output\ngot: %s\nwant: %s", got, want) } } + +func TestResourceProvider_ApplyCustomEnv(t *testing.T) { + c := testConfig(t, map[string]interface{}{ + "command": "echo $FOO $BAR $BAZ", + "environment": map[string]interface{}{ + "FOO": "BAR", + "BAR": 1, + "BAZ": "true", + }, + }) + + output := new(terraform.MockUIOutput) + p := Provisioner() + + if err := p.Apply(output, nil, c); err != nil { + t.Fatalf("err: %v", err) + } + + got := strings.TrimSpace(output.OutputMessage) + want := "BAR 1 true" + if got != want { + t.Errorf("wrong output\ngot: %s\nwant: %s", got, want) + } +} diff --git a/website/docs/provisioners/local-exec.html.markdown b/website/docs/provisioners/local-exec.html.markdown index 6dd79e7ba..dc9970283 100644 --- a/website/docs/provisioners/local-exec.html.markdown +++ b/website/docs/provisioners/local-exec.html.markdown @@ -51,6 +51,9 @@ The following arguments are supported: form "/bin/bash", "-c", "echo foo". If `interpreter` is unspecified, sensible defaults will be chosen based on the system OS. +* `environment` - (Optional) block of key value pairs representing the + environment of the executed command. inherits the current process environment. + ### Interpreter Examples ```hcl @@ -70,3 +73,19 @@ resource "null_resource" "example2" { } } ``` + +```hcl +resource "aws_instance" "web" { + # ... + + provisioner "local-exec" { + command = "echo $FOO $BAR $BAZ >> env_vars.txt" + + environment { + FOO = "bar" + BAR = 1 + BAZ = "true" + } + } +} +``` From ea50f455edca3acaa0a6ab372b861e6cd2d386aa Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Mon, 5 Mar 2018 16:00:19 -0800 Subject: [PATCH 117/156] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d5bc034f..d99b0d084 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ IMPROVEMENTS: * core: https URLs are now supported in the HTTP_PROXY environment variable [go1.10:net/http](https://golang.org/doc/go1.10#net/http) * connection/ssh: Add support for host key verifiation [GH-17354] * backend/s3: add support for the cn-northwest-1 region [GH-17216] +* provisioner/local-exec: Allow setting custom environment variables when running commands [GH-13880] * provisioner/habitat: Detect if hab user exists and only create if necessary [GH-17195] * provisioner/habitat: Allow custom service name [GH-17196] From 7fd6f97899b1e04a2c69edb9d9e499b8fa04fb7d Mon Sep 17 00:00:00 2001 From: James Bardin Date: Tue, 6 Mar 2018 17:45:28 -0500 Subject: [PATCH 118/156] Check for nil config in node_resource_refresh While not normally possible, manual manipulation of the state and config can cause us to end up with a nil config in evalTreeManagedResourceNoState. Regardless of how it got here, we can't ever assume the Config field is not nil, and EvalInterpolate happily accepts a nil RawConfig --- terraform/node_resource_refresh.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/terraform/node_resource_refresh.go b/terraform/node_resource_refresh.go index dbb64edae..697bd4942 100644 --- a/terraform/node_resource_refresh.go +++ b/terraform/node_resource_refresh.go @@ -213,10 +213,16 @@ func (n *NodeRefreshableManagedResourceInstance) evalTreeManagedResourceNoState( // Determine the dependencies for the state. stateDeps := n.StateReferences() + // n.Config can be nil if the config and state don't match + var raw *config.RawConfig + if n.Config != nil { + raw = n.Config.RawConfig.Copy() + } + return &EvalSequence{ Nodes: []EvalNode{ &EvalInterpolate{ - Config: n.Config.RawConfig.Copy(), + Config: raw, Resource: resource, Output: &resourceConfig, }, From 53110e5c1f456df757852bbf62620a189f61f6b4 Mon Sep 17 00:00:00 2001 From: Andrei Ivanov Date: Wed, 7 Mar 2018 17:57:25 +0200 Subject: [PATCH 119/156] - fixed a trivial typo --- website/docs/configuration/providers.html.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/configuration/providers.html.md b/website/docs/configuration/providers.html.md index 8fd95db83..12a717ef0 100644 --- a/website/docs/configuration/providers.html.md +++ b/website/docs/configuration/providers.html.md @@ -133,7 +133,7 @@ multiple regions, multiple hosts, etc. The primary use case for this is using multiple cloud regions. Other use-cases include targeting multiple Docker hosts, multiple Consul hosts, etc. -To include multiple configurations fo a given provider, include multiple +To include multiple configurations for a given provider, include multiple `provider` blocks with the same provider name, but set the `alias` field to an instance name to use for each additional instance. For example: From 13433687cbbb9cfd00df23920a8b6df9234063aa Mon Sep 17 00:00:00 2001 From: James Bardin Date: Thu, 8 Mar 2018 11:39:29 -0500 Subject: [PATCH 120/156] filter null output values from state While null values should not normally appear in a state file, we should filter the values rather than crash. --- .../providers/terraform/data_source_state.go | 4 +++- .../terraform/data_source_state_test.go | 23 ++++++++++++++++++ .../test-fixtures/null_outputs.tfstate | 24 +++++++++++++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 builtin/providers/terraform/test-fixtures/null_outputs.tfstate diff --git a/builtin/providers/terraform/data_source_state.go b/builtin/providers/terraform/data_source_state.go index 1f0fbea48..e6797eb4d 100644 --- a/builtin/providers/terraform/data_source_state.go +++ b/builtin/providers/terraform/data_source_state.go @@ -118,7 +118,9 @@ func dataSourceRemoteStateRead(d *schema.ResourceData, meta interface{}) error { log.Println("[DEBUG] empty remote state") } else { for key, val := range remoteState.RootModule().Outputs { - outputMap[key] = val.Value + if val.Value != nil { + outputMap[key] = val.Value + } } } diff --git a/builtin/providers/terraform/data_source_state_test.go b/builtin/providers/terraform/data_source_state_test.go index bfabd27b1..f80b738be 100644 --- a/builtin/providers/terraform/data_source_state_test.go +++ b/builtin/providers/terraform/data_source_state_test.go @@ -63,6 +63,20 @@ func TestState_complexOutputs(t *testing.T) { }) } +// outputs should never have a null value, but don't crash if we ever encounter +// them. +func TestState_nullOutputs(t *testing.T) { + resource.UnitTest(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + Steps: []resource.TestStep{ + { + Config: testAccState_nullOutputs, + }, + }, + }) +} + func TestEmptyState_defaults(t *testing.T) { resource.UnitTest(t, resource.TestCase{ PreCheck: func() { testAccPreCheck(t) }, @@ -142,6 +156,15 @@ resource "terraform_remote_state" "foo" { } }` +const testAccState_nullOutputs = ` +resource "terraform_remote_state" "foo" { + backend = "local" + + config { + path = "./test-fixtures/null_outputs.tfstate" + } +}` + const testAccEmptyState_defaults = ` data "terraform_remote_state" "foo" { backend = "local" diff --git a/builtin/providers/terraform/test-fixtures/null_outputs.tfstate b/builtin/providers/terraform/test-fixtures/null_outputs.tfstate new file mode 100644 index 000000000..fa27a1563 --- /dev/null +++ b/builtin/providers/terraform/test-fixtures/null_outputs.tfstate @@ -0,0 +1,24 @@ +{ + "version": 3, + "terraform_version": "0.7.0", + "serial": 3, + "modules": [ + { + "path": [ + "root" + ], + "outputs": { + "map": { + "sensitive": false, + "type": "map", + "value": null + }, + "list": { + "sensitive": false, + "type": "list", + "value": null + } + } + } + ] +} From 59a49c6b3f6382eabf2cb1faf7a7d800bc57b596 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Sat, 3 Mar 2018 09:43:09 -0800 Subject: [PATCH 121/156] vendor: update hcl2 and cty This is largely minor bugfixes for issues found since we last updated the vendoring. There are some new features here that Terraform is not yet using and thus present little risk. In particular this includes the HCL-JSON spec change where arrays can now be used at any level in a block label structure, to allow for preserving the relative order of blocks. --- .../hashicorp/hcl2/ext/typeexpr/README.md | 67 + .../hashicorp/hcl2/ext/typeexpr/doc.go | 11 + .../hashicorp/hcl2/ext/typeexpr/get_type.go | 196 + .../hashicorp/hcl2/ext/typeexpr/public.go | 129 + .../github.com/hashicorp/hcl2/gohcl/schema.go | 9 +- .../hashicorp/hcl2/hcl/expr_call.go | 46 + .../github.com/hashicorp/hcl2/hcl/expr_map.go | 44 + .../hcl2/hcl/hclsyntax/expression.go | 140 + .../hcl2/hcl/hclsyntax/expression_vars.go | 4 + .../hashicorp/hcl2/hcl/hclsyntax/parser.go | 151 +- .../hashicorp/hcl2/hcl/hclsyntax/peeker.go | 104 + .../hashicorp/hcl2/hcl/hclsyntax/public.go | 27 + .../hcl2/hcl/hclsyntax/scan_tokens.go | 6861 +++++++++-------- .../hcl2/hcl/hclsyntax/scan_tokens.rl | 42 +- .../hashicorp/hcl2/hcl/hclsyntax/spec.md | 50 +- .../hashicorp/hcl2/hcl/hclsyntax/token.go | 2 +- .../github.com/hashicorp/hcl2/hcl/json/ast.go | 2 +- .../hashicorp/hcl2/hcl/json/navigation.go | 53 +- .../hashicorp/hcl2/hcl/json/parser.go | 21 +- .../hashicorp/hcl2/hcl/json/public.go | 26 +- .../hashicorp/hcl2/hcl/json/spec.md | 210 +- .../hashicorp/hcl2/hcl/json/structure.go | 361 +- .../hcl2/hcl/json/tokentype_string.go | 4 +- vendor/github.com/hashicorp/hcl2/hcl/spec.md | 45 + vendor/github.com/zclconf/go-cty/LICENSE | 21 + .../zclconf/go-cty/cty/convert/conversion.go | 21 + .../cty/convert/conversion_collection.go | 40 + .../cty/convert/conversion_primitive.go | 2 +- .../zclconf/go-cty/cty/function/doc.go | 2 +- .../zclconf/go-cty/cty/function/stdlib/csv.go | 93 + .../go-cty/cty/function/stdlib/format.go | 496 ++ .../go-cty/cty/function/stdlib/format_fsm.go | 358 + .../go-cty/cty/function/stdlib/format_fsm.rl | 182 + .../go-cty/cty/function/stdlib/json.go | 7 + .../zclconf/go-cty/cty/function/stdlib/set.go | 195 + .../go-cty/cty/function/unpredictable.go | 31 + .../zclconf/go-cty/cty/object_type.go | 9 +- vendor/github.com/zclconf/go-cty/cty/path.go | 8 + .../github.com/zclconf/go-cty/cty/set/ops.go | 10 + .../zclconf/go-cty/cty/set_helper.go | 126 + vendor/github.com/zclconf/go-cty/cty/value.go | 27 + .../zclconf/go-cty/cty/value_init.go | 29 +- .../zclconf/go-cty/cty/value_ops.go | 79 +- vendor/github.com/zclconf/go-cty/cty/walk.go | 182 + vendor/vendor.json | 88 +- 45 files changed, 6987 insertions(+), 3624 deletions(-) create mode 100644 vendor/github.com/hashicorp/hcl2/ext/typeexpr/README.md create mode 100644 vendor/github.com/hashicorp/hcl2/ext/typeexpr/doc.go create mode 100644 vendor/github.com/hashicorp/hcl2/ext/typeexpr/get_type.go create mode 100644 vendor/github.com/hashicorp/hcl2/ext/typeexpr/public.go create mode 100644 vendor/github.com/hashicorp/hcl2/hcl/expr_call.go create mode 100644 vendor/github.com/hashicorp/hcl2/hcl/expr_map.go create mode 100644 vendor/github.com/zclconf/go-cty/LICENSE create mode 100644 vendor/github.com/zclconf/go-cty/cty/function/stdlib/csv.go create mode 100644 vendor/github.com/zclconf/go-cty/cty/function/stdlib/format.go create mode 100644 vendor/github.com/zclconf/go-cty/cty/function/stdlib/format_fsm.go create mode 100644 vendor/github.com/zclconf/go-cty/cty/function/stdlib/format_fsm.rl create mode 100644 vendor/github.com/zclconf/go-cty/cty/function/stdlib/set.go create mode 100644 vendor/github.com/zclconf/go-cty/cty/function/unpredictable.go create mode 100644 vendor/github.com/zclconf/go-cty/cty/set_helper.go create mode 100644 vendor/github.com/zclconf/go-cty/cty/walk.go diff --git a/vendor/github.com/hashicorp/hcl2/ext/typeexpr/README.md b/vendor/github.com/hashicorp/hcl2/ext/typeexpr/README.md new file mode 100644 index 000000000..7c4d6939f --- /dev/null +++ b/vendor/github.com/hashicorp/hcl2/ext/typeexpr/README.md @@ -0,0 +1,67 @@ +# HCL Type Expressions Extension + +This HCL extension defines a convention for describing HCL types using function +call and variable reference syntax, allowing configuration formats to include +type information provided by users. + +The type syntax is processed statically from a hcl.Expression, so it cannot +use any of the usual language operators. This is similar to type expressions +in statically-typed programming languages. + +```hcl +variable "example" { + type = list(string) +} +``` + +The extension is built using the `hcl.ExprAsKeyword` and `hcl.ExprCall` +functions, and so it relies on the underlying syntax to define how "keyword" +and "call" are interpreted. The above shows how they are interpreted in +the HCL native syntax, while the following shows the same information +expressed in JSON: + +```json +{ + "variable": { + "example": { + "type": "list(string)" + } + } +} +``` + +Notice that since we have additional contextual information that we intend +to allow only calls and keywords the JSON syntax is able to parse the given +string directly as an expression, rather than as a template as would be +the case for normal expression evaluation. + +For more information, see [the godoc reference](http://godoc.org/github.com/hashicorp/hcl2/ext/typeexpr). + +## Type Expression Syntax + +When expressed in the native syntax, the following expressions are permitted +in a type expression: + +* `string` - string +* `bool` - boolean +* `number` - number +* `any` - `cty.DynamicPseudoType` (in function `TypeConstraint` only) +* `list()` - list of the type given as an argument +* `set()` - set of the type given as an argument +* `map()` - map of the type given as an argument +* `tuple([])` - tuple with the element types given in the single list argument +* `object({=, ...}` - object with the attributes and corresponding types given in the single map argument + +For example: + +* `list(string)` +* `object({"name":string,"age":number})` +* `map(object({"name":string,"age":number}))` + +Note that the object constructor syntax is not fully-general for all possible +object types because it requires the attribute names to be valid identifiers. +In practice it is expected that any time an object type is being fixed for +type checking it will be one that has identifiers as its attributes; object +types with weird attributes generally show up only from arbitrary object +constructors in configuration files, which are usually treated either as maps +or as the dynamic pseudo-type. diff --git a/vendor/github.com/hashicorp/hcl2/ext/typeexpr/doc.go b/vendor/github.com/hashicorp/hcl2/ext/typeexpr/doc.go new file mode 100644 index 000000000..c4b379579 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl2/ext/typeexpr/doc.go @@ -0,0 +1,11 @@ +// Package typeexpr extends HCL with a convention for describing HCL types +// within configuration files. +// +// The type syntax is processed statically from a hcl.Expression, so it cannot +// use any of the usual language operators. This is similar to type expressions +// in statically-typed programming languages. +// +// variable "example" { +// type = list(string) +// } +package typeexpr diff --git a/vendor/github.com/hashicorp/hcl2/ext/typeexpr/get_type.go b/vendor/github.com/hashicorp/hcl2/ext/typeexpr/get_type.go new file mode 100644 index 000000000..a84338a85 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl2/ext/typeexpr/get_type.go @@ -0,0 +1,196 @@ +package typeexpr + +import ( + "fmt" + + "github.com/hashicorp/hcl2/hcl" + "github.com/zclconf/go-cty/cty" +) + +const invalidTypeSummary = "Invalid type specification" + +// getType is the internal implementation of both Type and TypeConstraint, +// using the passed flag to distinguish. When constraint is false, the "any" +// keyword will produce an error. +func getType(expr hcl.Expression, constraint bool) (cty.Type, hcl.Diagnostics) { + // First we'll try for one of our keywords + kw := hcl.ExprAsKeyword(expr) + switch kw { + case "bool": + return cty.Bool, nil + case "string": + return cty.String, nil + case "number": + return cty.Number, nil + case "any": + if constraint { + return cty.DynamicPseudoType, nil + } + return cty.DynamicPseudoType, hcl.Diagnostics{{ + Severity: hcl.DiagError, + Summary: invalidTypeSummary, + Detail: fmt.Sprintf("The keyword %q cannot be used in this type specification: an exact type is required.", kw), + Subject: expr.Range().Ptr(), + }} + case "list", "map", "set": + return cty.DynamicPseudoType, hcl.Diagnostics{{ + Severity: hcl.DiagError, + Summary: invalidTypeSummary, + Detail: fmt.Sprintf("The %s type constructor requires one argument specifying the element type.", kw), + Subject: expr.Range().Ptr(), + }} + case "object": + return cty.DynamicPseudoType, hcl.Diagnostics{{ + Severity: hcl.DiagError, + Summary: invalidTypeSummary, + Detail: "The object type constructor requires one argument specifying the attribute types and values as a map.", + Subject: expr.Range().Ptr(), + }} + case "tuple": + return cty.DynamicPseudoType, hcl.Diagnostics{{ + Severity: hcl.DiagError, + Summary: invalidTypeSummary, + Detail: "The tuple type constructor requires one argument specifying the element types as a list.", + Subject: expr.Range().Ptr(), + }} + case "": + // okay! we'll fall through and try processing as a call, then. + default: + return cty.DynamicPseudoType, hcl.Diagnostics{{ + Severity: hcl.DiagError, + Summary: invalidTypeSummary, + Detail: fmt.Sprintf("The keyword %q is not a valid type specification.", kw), + Subject: expr.Range().Ptr(), + }} + } + + // If we get down here then our expression isn't just a keyword, so we'll + // try to process it as a call instead. + call, diags := hcl.ExprCall(expr) + if diags.HasErrors() { + return cty.DynamicPseudoType, hcl.Diagnostics{{ + Severity: hcl.DiagError, + Summary: invalidTypeSummary, + Detail: "A type specification is either a primitive type keyword (bool, number, string) or a complex type constructor call, like list(string).", + Subject: expr.Range().Ptr(), + }} + } + + switch call.Name { + case "bool", "string", "number", "any": + return cty.DynamicPseudoType, hcl.Diagnostics{{ + Severity: hcl.DiagError, + Summary: invalidTypeSummary, + Detail: fmt.Sprintf("Primitive type keyword %q does not expect arguments.", call.Name), + Subject: &call.ArgsRange, + }} + } + + if len(call.Arguments) != 1 { + contextRange := call.ArgsRange + subjectRange := call.ArgsRange + if len(call.Arguments) > 1 { + // If we have too many arguments (as opposed to too _few_) then + // we'll highlight the extraneous arguments as the diagnostic + // subject. + subjectRange = hcl.RangeBetween(call.Arguments[1].Range(), call.Arguments[len(call.Arguments)-1].Range()) + } + + switch call.Name { + case "list", "set", "map": + return cty.DynamicPseudoType, hcl.Diagnostics{{ + Severity: hcl.DiagError, + Summary: invalidTypeSummary, + Detail: fmt.Sprintf("The %s type constructor requires one argument specifying the element type.", call.Name), + Subject: &subjectRange, + Context: &contextRange, + }} + case "object": + return cty.DynamicPseudoType, hcl.Diagnostics{{ + Severity: hcl.DiagError, + Summary: invalidTypeSummary, + Detail: "The object type constructor requires one argument specifying the attribute types and values as a map.", + Subject: &subjectRange, + Context: &contextRange, + }} + case "tuple": + return cty.DynamicPseudoType, hcl.Diagnostics{{ + Severity: hcl.DiagError, + Summary: invalidTypeSummary, + Detail: "The tuple type constructor requires one argument specifying the element types as a list.", + Subject: &subjectRange, + Context: &contextRange, + }} + } + } + + switch call.Name { + + case "list": + ety, diags := getType(call.Arguments[0], constraint) + return cty.List(ety), diags + case "set": + ety, diags := getType(call.Arguments[0], constraint) + return cty.Set(ety), diags + case "map": + ety, diags := getType(call.Arguments[0], constraint) + return cty.Map(ety), diags + case "object": + attrDefs, diags := hcl.ExprMap(call.Arguments[0]) + if diags.HasErrors() { + return cty.DynamicPseudoType, hcl.Diagnostics{{ + Severity: hcl.DiagError, + Summary: invalidTypeSummary, + Detail: "Object type constructor requires a map whose keys are attribute names and whose values are the corresponding attribute types.", + Subject: call.Arguments[0].Range().Ptr(), + Context: expr.Range().Ptr(), + }} + } + + atys := make(map[string]cty.Type) + for _, attrDef := range attrDefs { + attrName := hcl.ExprAsKeyword(attrDef.Key) + if attrName == "" { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: invalidTypeSummary, + Detail: "Object constructor map keys must be attribute names.", + Subject: attrDef.Key.Range().Ptr(), + Context: expr.Range().Ptr(), + }) + continue + } + aty, attrDiags := getType(attrDef.Value, constraint) + diags = append(diags, attrDiags...) + atys[attrName] = aty + } + return cty.Object(atys), diags + case "tuple": + elemDefs, diags := hcl.ExprList(call.Arguments[0]) + if diags.HasErrors() { + return cty.DynamicPseudoType, hcl.Diagnostics{{ + Severity: hcl.DiagError, + Summary: invalidTypeSummary, + Detail: "Tuple type constructor requires a list of element types.", + Subject: call.Arguments[0].Range().Ptr(), + Context: expr.Range().Ptr(), + }} + } + etys := make([]cty.Type, len(elemDefs)) + for i, defExpr := range elemDefs { + ety, elemDiags := getType(defExpr, constraint) + diags = append(diags, elemDiags...) + etys[i] = ety + } + return cty.Tuple(etys), diags + default: + // Can't access call.Arguments in this path because we've not validated + // that it contains exactly one expression here. + return cty.DynamicPseudoType, hcl.Diagnostics{{ + Severity: hcl.DiagError, + Summary: invalidTypeSummary, + Detail: fmt.Sprintf("Keyword %q is not a valid type constructor.", call.Name), + Subject: expr.Range().Ptr(), + }} + } +} diff --git a/vendor/github.com/hashicorp/hcl2/ext/typeexpr/public.go b/vendor/github.com/hashicorp/hcl2/ext/typeexpr/public.go new file mode 100644 index 000000000..e3f5eef59 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl2/ext/typeexpr/public.go @@ -0,0 +1,129 @@ +package typeexpr + +import ( + "bytes" + "fmt" + "sort" + + "github.com/hashicorp/hcl2/hcl/hclsyntax" + + "github.com/hashicorp/hcl2/hcl" + "github.com/zclconf/go-cty/cty" +) + +// Type attempts to process the given expression as a type expression and, if +// successful, returns the resulting type. If unsuccessful, error diagnostics +// are returned. +func Type(expr hcl.Expression) (cty.Type, hcl.Diagnostics) { + return getType(expr, false) +} + +// TypeConstraint attempts to parse the given expression as a type constraint +// and, if successful, returns the resulting type. If unsuccessful, error +// diagnostics are returned. +// +// A type constraint has the same structure as a type, but it additionally +// allows the keyword "any" to represent cty.DynamicPseudoType, which is often +// used as a wildcard in type checking and type conversion operations. +func TypeConstraint(expr hcl.Expression) (cty.Type, hcl.Diagnostics) { + return getType(expr, true) +} + +// TypeString returns a string rendering of the given type as it would be +// expected to appear in the HCL native syntax. +// +// This is primarily intended for showing types to the user in an application +// that uses typexpr, where the user can be assumed to be familiar with the +// type expression syntax. In applications that do not use typeexpr these +// results may be confusing to the user and so type.FriendlyName may be +// preferable, even though it's less precise. +// +// TypeString produces reasonable results only for types like what would be +// produced by the Type and TypeConstraint functions. In particular, it cannot +// support capsule types. +func TypeString(ty cty.Type) string { + // Easy cases first + switch ty { + case cty.String: + return "string" + case cty.Bool: + return "bool" + case cty.Number: + return "number" + case cty.DynamicPseudoType: + return "any" + } + + if ty.IsCapsuleType() { + panic("TypeString does not support capsule types") + } + + if ty.IsCollectionType() { + ety := ty.ElementType() + etyString := TypeString(ety) + switch { + case ty.IsListType(): + return fmt.Sprintf("list(%s)", etyString) + case ty.IsSetType(): + return fmt.Sprintf("set(%s)", etyString) + case ty.IsMapType(): + return fmt.Sprintf("map(%s)", etyString) + default: + // Should never happen because the above is exhaustive + panic("unsupported collection type") + } + } + + if ty.IsObjectType() { + var buf bytes.Buffer + buf.WriteString("object({") + atys := ty.AttributeTypes() + names := make([]string, 0, len(atys)) + for name := range atys { + names = append(names, name) + } + sort.Strings(names) + first := true + for _, name := range names { + aty := atys[name] + if !first { + buf.WriteByte(',') + } + if !hclsyntax.ValidIdentifier(name) { + // Should never happen for any type produced by this package, + // but we'll do something reasonable here just so we don't + // produce garbage if someone gives us a hand-assembled object + // type that has weird attribute names. + // Using Go-style quoting here isn't perfect, since it doesn't + // exactly match HCL syntax, but it's fine for an edge-case. + buf.WriteString(fmt.Sprintf("%q", name)) + } else { + buf.WriteString(name) + } + buf.WriteByte('=') + buf.WriteString(TypeString(aty)) + first = false + } + buf.WriteString("})") + return buf.String() + } + + if ty.IsTupleType() { + var buf bytes.Buffer + buf.WriteString("tuple([") + etys := ty.TupleElementTypes() + first := true + for _, ety := range etys { + if !first { + buf.WriteByte(',') + } + buf.WriteString(TypeString(ety)) + first = false + } + buf.WriteString("])") + return buf.String() + } + + // Should never happen because we covered all cases above. + panic(fmt.Errorf("unsupported type %#v", ty)) +} diff --git a/vendor/github.com/hashicorp/hcl2/gohcl/schema.go b/vendor/github.com/hashicorp/hcl2/gohcl/schema.go index a8955dcdc..88164cb05 100644 --- a/vendor/github.com/hashicorp/hcl2/gohcl/schema.go +++ b/vendor/github.com/hashicorp/hcl2/gohcl/schema.go @@ -42,7 +42,9 @@ func ImpliedBodySchema(val interface{}) (schema *hcl.BodySchema, partial bool) { sort.Strings(attrNames) for _, n := range attrNames { idx := tags.Attributes[n] + optional := tags.Optional[n] field := ty.Field(idx) + var required bool switch { @@ -51,7 +53,7 @@ func ImpliedBodySchema(val interface{}) (schema *hcl.BodySchema, partial bool) { // indicated via a null value, so we don't specify that // the field is required during decoding. required = false - case field.Type.Kind() != reflect.Ptr: + case field.Type.Kind() != reflect.Ptr && !optional: required = true default: required = false @@ -111,6 +113,7 @@ type fieldTags struct { Blocks map[string]int Labels []labelField Remain *int + Optional map[string]bool } type labelField struct { @@ -122,6 +125,7 @@ func getFieldTags(ty reflect.Type) *fieldTags { ret := &fieldTags{ Attributes: map[string]int{}, Blocks: map[string]int{}, + Optional: map[string]bool{}, } ct := ty.NumField() @@ -158,6 +162,9 @@ func getFieldTags(ty reflect.Type) *fieldTags { } idx := i // copy, because this loop will continue assigning to i ret.Remain = &idx + case "optional": + ret.Attributes[name] = i + ret.Optional[name] = true default: panic(fmt.Sprintf("invalid hcl field tag kind %q on %s %q", kind, field.Type.String(), field.Name)) } diff --git a/vendor/github.com/hashicorp/hcl2/hcl/expr_call.go b/vendor/github.com/hashicorp/hcl2/hcl/expr_call.go new file mode 100644 index 000000000..6963fbae3 --- /dev/null +++ b/vendor/github.com/hashicorp/hcl2/hcl/expr_call.go @@ -0,0 +1,46 @@ +package hcl + +// ExprCall tests if the given expression is a function call and, +// if so, extracts the function name and the expressions that represent +// the arguments. If the given expression is not statically a function call, +// error diagnostics are returned. +// +// A particular Expression implementation can support this function by +// offering a method called ExprCall that takes no arguments and returns +// *StaticCall. This method should return nil if a static call cannot +// be extracted. Alternatively, an implementation can support +// UnwrapExpression to delegate handling of this function to a wrapped +// Expression object. +func ExprCall(expr Expression) (*StaticCall, Diagnostics) { + type exprCall interface { + ExprCall() *StaticCall + } + + physExpr := UnwrapExpressionUntil(expr, func(expr Expression) bool { + _, supported := expr.(exprCall) + return supported + }) + + if exC, supported := physExpr.(exprCall); supported { + if call := exC.ExprCall(); call != nil { + return call, nil + } + } + return nil, Diagnostics{ + &Diagnostic{ + Severity: DiagError, + Summary: "Invalid expression", + Detail: "A static function call is required.", + Subject: expr.StartRange().Ptr(), + }, + } +} + +// StaticCall represents a function call that was extracted statically from +// an expression using ExprCall. +type StaticCall struct { + Name string + NameRange Range + Arguments []Expression + ArgsRange Range +} diff --git a/vendor/github.com/hashicorp/hcl2/hcl/expr_map.go b/vendor/github.com/hashicorp/hcl2/hcl/expr_map.go new file mode 100644 index 000000000..96d1ce4bf --- /dev/null +++ b/vendor/github.com/hashicorp/hcl2/hcl/expr_map.go @@ -0,0 +1,44 @@ +package hcl + +// ExprMap tests if the given expression is a static map construct and, +// if so, extracts the expressions that represent the map elements. +// If the given expression is not a static map, error diagnostics are +// returned. +// +// A particular Expression implementation can support this function by +// offering a method called ExprMap that takes no arguments and returns +// []KeyValuePair. This method should return nil if a static map cannot +// be extracted. Alternatively, an implementation can support +// UnwrapExpression to delegate handling of this function to a wrapped +// Expression object. +func ExprMap(expr Expression) ([]KeyValuePair, Diagnostics) { + type exprMap interface { + ExprMap() []KeyValuePair + } + + physExpr := UnwrapExpressionUntil(expr, func(expr Expression) bool { + _, supported := expr.(exprMap) + return supported + }) + + if exM, supported := physExpr.(exprMap); supported { + if pairs := exM.ExprMap(); pairs != nil { + return pairs, nil + } + } + return nil, Diagnostics{ + &Diagnostic{ + Severity: DiagError, + Summary: "Invalid expression", + Detail: "A static map expression is required.", + Subject: expr.StartRange().Ptr(), + }, + } +} + +// KeyValuePair represents a pair of expressions that serve as a single item +// within a map or object definition construct. +type KeyValuePair struct { + Key Expression + Value Expression +} diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/expression.go b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/expression.go index 4fa1988bf..cfc7cd920 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/expression.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/expression.go @@ -47,6 +47,51 @@ func (e *LiteralValueExpr) StartRange() hcl.Range { return e.SrcRange } +// Implementation for hcl.AbsTraversalForExpr. +func (e *LiteralValueExpr) AsTraversal() hcl.Traversal { + // This one's a little weird: the contract for AsTraversal is to interpret + // an expression as if it were traversal syntax, and traversal syntax + // doesn't have the special keywords "null", "true", and "false" so these + // are expected to be treated like variables in that case. + // Since our parser already turned them into LiteralValueExpr by the time + // we get here, we need to undo this and infer the name that would've + // originally led to our value. + // We don't do anything for any other values, since they don't overlap + // with traversal roots. + + if e.Val.IsNull() { + // In practice the parser only generates null values of the dynamic + // pseudo-type for literals, so we can safely assume that any null + // was orignally the keyword "null". + return hcl.Traversal{ + hcl.TraverseRoot{ + Name: "null", + SrcRange: e.SrcRange, + }, + } + } + + switch e.Val { + case cty.True: + return hcl.Traversal{ + hcl.TraverseRoot{ + Name: "true", + SrcRange: e.SrcRange, + }, + } + case cty.False: + return hcl.Traversal{ + hcl.TraverseRoot{ + Name: "false", + SrcRange: e.SrcRange, + }, + } + default: + // No traversal is possible for any other value. + return nil + } +} + // ScopeTraversalExpr is an Expression that retrieves a value from the scope // using a traversal. type ScopeTraversalExpr struct { @@ -102,6 +147,20 @@ func (e *RelativeTraversalExpr) StartRange() hcl.Range { return e.SrcRange } +// Implementation for hcl.AbsTraversalForExpr. +func (e *RelativeTraversalExpr) AsTraversal() hcl.Traversal { + // We can produce a traversal only if our source can. + st, diags := hcl.AbsTraversalForExpr(e.Source) + if diags.HasErrors() { + return nil + } + + ret := make(hcl.Traversal, len(st)+len(e.Traversal)) + copy(ret, st) + copy(ret[len(st):], e.Traversal) + return ret +} + // FunctionCallExpr is an Expression that calls a function from the EvalContext // and returns its result. type FunctionCallExpr struct { @@ -358,6 +417,21 @@ func (e *FunctionCallExpr) StartRange() hcl.Range { return hcl.RangeBetween(e.NameRange, e.OpenParenRange) } +// Implementation for hcl.ExprCall. +func (e *FunctionCallExpr) ExprCall() *hcl.StaticCall { + ret := &hcl.StaticCall{ + Name: e.Name, + NameRange: e.NameRange, + Arguments: make([]hcl.Expression, len(e.Args)), + ArgsRange: hcl.RangeBetween(e.OpenParenRange, e.CloseParenRange), + } + // Need to convert our own Expression objects into hcl.Expression. + for i, arg := range e.Args { + ret.Arguments[i] = arg + } + return ret +} + type ConditionalExpr struct { Condition Expression TrueResult Expression @@ -648,6 +722,72 @@ func (e *ObjectConsExpr) StartRange() hcl.Range { return e.OpenRange } +// Implementation for hcl.ExprMap +func (e *ObjectConsExpr) ExprMap() []hcl.KeyValuePair { + ret := make([]hcl.KeyValuePair, len(e.Items)) + for i, item := range e.Items { + ret[i] = hcl.KeyValuePair{ + Key: item.KeyExpr, + Value: item.ValueExpr, + } + } + return ret +} + +// ObjectConsKeyExpr is a special wrapper used only for ObjectConsExpr keys, +// which deals with the special case that a naked identifier in that position +// must be interpreted as a literal string rather than evaluated directly. +type ObjectConsKeyExpr struct { + Wrapped Expression +} + +func (e *ObjectConsKeyExpr) literalName() string { + // This is our logic for deciding whether to behave like a literal string. + // We lean on our AbsTraversalForExpr implementation here, which already + // deals with some awkward cases like the expression being the result + // of the keywords "null", "true" and "false" which we'd want to interpret + // as keys here too. + return hcl.ExprAsKeyword(e.Wrapped) +} + +func (e *ObjectConsKeyExpr) walkChildNodes(w internalWalkFunc) { + // We only treat our wrapped expression as a real expression if we're + // not going to interpret it as a literal. + if e.literalName() == "" { + e.Wrapped = w(e.Wrapped).(Expression) + } +} + +func (e *ObjectConsKeyExpr) Value(ctx *hcl.EvalContext) (cty.Value, hcl.Diagnostics) { + if ln := e.literalName(); ln != "" { + return cty.StringVal(ln), nil + } + return e.Wrapped.Value(ctx) +} + +func (e *ObjectConsKeyExpr) Range() hcl.Range { + return e.Wrapped.Range() +} + +func (e *ObjectConsKeyExpr) StartRange() hcl.Range { + return e.Wrapped.StartRange() +} + +// Implementation for hcl.AbsTraversalForExpr. +func (e *ObjectConsKeyExpr) AsTraversal() hcl.Traversal { + // We can produce a traversal only if our wrappee can. + st, diags := hcl.AbsTraversalForExpr(e.Wrapped) + if diags.HasErrors() { + return nil + } + + return st +} + +func (e *ObjectConsKeyExpr) UnwrapExpression() Expression { + return e.Wrapped +} + // ForExpr represents iteration constructs: // // tuple = [for i, v in list: upper(v) if i > 2] diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/expression_vars.go b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/expression_vars.go index c15d13405..9177092ce 100755 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/expression_vars.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/expression_vars.go @@ -39,6 +39,10 @@ func (e *ObjectConsExpr) Variables() []hcl.Traversal { return Variables(e) } +func (e *ObjectConsKeyExpr) Variables() []hcl.Traversal { + return Variables(e) +} + func (e *RelativeTraversalExpr) Variables() []hcl.Traversal { return Variables(e) } diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/parser.go b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/parser.go index 28c6a7b19..002858f46 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/parser.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/parser.go @@ -132,7 +132,7 @@ func (p *parser) ParseBodyItem() (Node, hcl.Diagnostics) { switch next.Type { case TokenEqual: return p.finishParsingBodyAttribute(ident) - case TokenOQuote, TokenOBrace: + case TokenOQuote, TokenOBrace, TokenIdent: return p.finishParsingBodyBlock(ident) default: p.recoverAfterBodyItem() @@ -167,25 +167,15 @@ func (p *parser) finishParsingBodyAttribute(ident Token) (Node, hcl.Diagnostics) p.recoverAfterBodyItem() } else { end := p.Peek() - if end.Type != TokenNewline { + if end.Type != TokenNewline && end.Type != TokenEOF { if !p.recovery { - if end.Type == TokenEOF { - diags = append(diags, &hcl.Diagnostic{ - Severity: hcl.DiagError, - Summary: "Missing newline after attribute definition", - Detail: "A newline is required after an attribute definition at the end of a file.", - Subject: &end.Range, - Context: hcl.RangeBetween(ident.Range, end.Range).Ptr(), - }) - } else { - diags = append(diags, &hcl.Diagnostic{ - Severity: hcl.DiagError, - Summary: "Missing newline after attribute definition", - Detail: "An attribute definition must end with a newline.", - Subject: &end.Range, - Context: hcl.RangeBetween(ident.Range, end.Range).Ptr(), - }) - } + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Missing newline after attribute definition", + Detail: "An attribute definition must end with a newline.", + Subject: &end.Range, + Context: hcl.RangeBetween(ident.Range, end.Range).Ptr(), + }) } endRange = p.PrevRange() p.recoverAfterBodyItem() @@ -242,6 +232,12 @@ Token: }, diags } + case TokenIdent: + tok = p.Read() // eat token + label, labelRange := string(tok.Bytes), tok.Range + labels = append(labels, label) + labelRanges = append(labelRanges, labelRange) + default: switch tok.Type { case TokenEqual: @@ -294,27 +290,17 @@ Token: cBraceRange := p.PrevRange() eol := p.Peek() - if eol.Type == TokenNewline { + if eol.Type == TokenNewline || eol.Type == TokenEOF { p.Read() // eat newline } else { if !p.recovery { - if eol.Type == TokenEOF { - diags = append(diags, &hcl.Diagnostic{ - Severity: hcl.DiagError, - Summary: "Missing newline after block definition", - Detail: "A newline is required after a block definition at the end of a file.", - Subject: &eol.Range, - Context: hcl.RangeBetween(ident.Range, eol.Range).Ptr(), - }) - } else { - diags = append(diags, &hcl.Diagnostic{ - Severity: hcl.DiagError, - Summary: "Missing newline after block definition", - Detail: "A block definition must end with a newline.", - Subject: &eol.Range, - Context: hcl.RangeBetween(ident.Range, eol.Range).Ptr(), - }) - } + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Missing newline after block definition", + Detail: "A block definition must end with a newline.", + Subject: &eol.Range, + Context: hcl.RangeBetween(ident.Range, eol.Range).Ptr(), + }) } p.recoverAfterBodyItem() } @@ -497,6 +483,53 @@ Traversal: ret = makeRelativeTraversal(ret, step, rng) + case TokenNumberLit: + // This is a weird form we inherited from HIL, allowing numbers + // to be used as attributes as a weird way of writing [n]. + // This was never actually a first-class thing in HIL, but + // HIL tolerated sequences like .0. in its variable names and + // calling applications like Terraform exploited that to + // introduce indexing syntax where none existed. + numTok := p.Read() // eat token + attrTok = numTok + + // This syntax is ambiguous if multiple indices are used in + // succession, like foo.0.1.baz: that actually parses as + // a fractional number 0.1. Since we're only supporting this + // syntax for compatibility with legacy Terraform + // configurations, and Terraform does not tend to have lists + // of lists, we'll choose to reject that here with a helpful + // error message, rather than failing later because the index + // isn't a whole number. + if dotIdx := bytes.IndexByte(numTok.Bytes, '.'); dotIdx >= 0 { + first := numTok.Bytes[:dotIdx] + second := numTok.Bytes[dotIdx+1:] + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid legacy index syntax", + Detail: fmt.Sprintf("When using the legacy index syntax, chaining two indexes together is not permitted. Use the proper index syntax instead, like [%s][%s].", first, second), + Subject: &attrTok.Range, + }) + rng := hcl.RangeBetween(dot.Range, numTok.Range) + step := hcl.TraverseIndex{ + Key: cty.DynamicVal, + SrcRange: rng, + } + ret = makeRelativeTraversal(ret, step, rng) + break + } + + numVal, numDiags := p.numberLitValue(numTok) + diags = append(diags, numDiags...) + + rng := hcl.RangeBetween(dot.Range, numTok.Range) + step := hcl.TraverseIndex{ + Key: numVal, + SrcRange: rng, + } + + ret = makeRelativeTraversal(ret, step, rng) + case TokenStar: // "Attribute-only" splat expression. // (This is a kinda weird construct inherited from HIL, which @@ -517,6 +550,27 @@ Traversal: // into a list, for expressions like: // foo.bar.*.baz.0.foo numTok := p.Read() + + // Weird special case if the user writes something + // like foo.bar.*.baz.0.0.foo, where 0.0 parses + // as a number. + if dotIdx := bytes.IndexByte(numTok.Bytes, '.'); dotIdx >= 0 { + first := numTok.Bytes[:dotIdx] + second := numTok.Bytes[dotIdx+1:] + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid legacy index syntax", + Detail: fmt.Sprintf("When using the legacy index syntax, chaining two indexes together is not permitted. Use the proper index syntax with a full splat expression [*] instead, like [%s][%s].", first, second), + Subject: &attrTok.Range, + }) + trav = append(trav, hcl.TraverseIndex{ + Key: cty.DynamicVal, + SrcRange: hcl.RangeBetween(dot.Range, numTok.Range), + }) + lastRange = numTok.Range + continue + } + numVal, numDiags := p.numberLitValue(numTok) diags = append(diags, numDiags...) trav = append(trav, hcl.TraverseIndex{ @@ -623,7 +677,7 @@ Traversal: close = p.recover(TokenCBrack) } } - p.PushIncludeNewlines(true) + p.PopIncludeNewlines() if lit, isLit := keyExpr.(*LiteralValueExpr); isLit { litKey, _ := lit.Value(nil) @@ -1057,23 +1111,9 @@ func (p *parser) parseObjectCons() (Expression, hcl.Diagnostics) { break } - // As a special case, we allow the key to be a literal identifier. - // This means that a variable reference or function call can't appear - // directly as key expression, and must instead be wrapped in some - // disambiguation punctuation, like (var.a) = "b" or "${var.a}" = "b". var key Expression var keyDiags hcl.Diagnostics - if p.Peek().Type == TokenIdent { - nameTok := p.Read() - key = &LiteralValueExpr{ - Val: cty.StringVal(string(nameTok.Bytes)), - - SrcRange: nameTok.Range, - } - } else { - key, keyDiags = p.ParseExpression() - } - + key, keyDiags = p.ParseExpression() diags = append(diags, keyDiags...) if p.recovery && keyDiags.HasErrors() { @@ -1084,6 +1124,11 @@ func (p *parser) parseObjectCons() (Expression, hcl.Diagnostics) { break } + // We wrap up the key expression in a special wrapper that deals + // with our special case that naked identifiers as object keys + // are interpreted as literal strings. + key = &ObjectConsKeyExpr{Wrapped: key} + next = p.Peek() if next.Type != TokenEqual && next.Type != TokenColon { if !p.recovery { diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/peeker.go b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/peeker.go index b8171ffab..5a4b50e2f 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/peeker.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/peeker.go @@ -1,15 +1,38 @@ package hclsyntax import ( + "bytes" + "fmt" + "path/filepath" + "runtime" + "strings" + "github.com/hashicorp/hcl2/hcl" ) +// This is set to true at init() time in tests, to enable more useful output +// if a stack discipline error is detected. It should not be enabled in +// normal mode since there is a performance penalty from accessing the +// runtime stack to produce the traces, but could be temporarily set to +// true for debugging if desired. +var tracePeekerNewlinesStack = false + type peeker struct { Tokens Tokens NextIndex int IncludeComments bool IncludeNewlinesStack []bool + + // used only when tracePeekerNewlinesStack is set + newlineStackChanges []peekerNewlineStackChange +} + +// for use in debugging the stack usage only +type peekerNewlineStackChange struct { + Pushing bool // if false, then popping + Frame runtime.Frame + Include bool } func newPeeker(tokens Tokens, includeComments bool) *peeker { @@ -97,6 +120,18 @@ func (p *peeker) includingNewlines() bool { } func (p *peeker) PushIncludeNewlines(include bool) { + if tracePeekerNewlinesStack { + // Record who called us so that we can more easily track down any + // mismanagement of the stack in the parser. + callers := []uintptr{0} + runtime.Callers(2, callers) + frames := runtime.CallersFrames(callers) + frame, _ := frames.Next() + p.newlineStackChanges = append(p.newlineStackChanges, peekerNewlineStackChange{ + true, frame, include, + }) + } + p.IncludeNewlinesStack = append(p.IncludeNewlinesStack, include) } @@ -104,5 +139,74 @@ func (p *peeker) PopIncludeNewlines() bool { stack := p.IncludeNewlinesStack remain, ret := stack[:len(stack)-1], stack[len(stack)-1] p.IncludeNewlinesStack = remain + + if tracePeekerNewlinesStack { + // Record who called us so that we can more easily track down any + // mismanagement of the stack in the parser. + callers := []uintptr{0} + runtime.Callers(2, callers) + frames := runtime.CallersFrames(callers) + frame, _ := frames.Next() + p.newlineStackChanges = append(p.newlineStackChanges, peekerNewlineStackChange{ + false, frame, ret, + }) + } + return ret } + +// AssertEmptyNewlinesStack checks if the IncludeNewlinesStack is empty, doing +// panicking if it is not. This can be used to catch stack mismanagement that +// might otherwise just cause confusing downstream errors. +// +// This function is a no-op if the stack is empty when called. +// +// If newlines stack tracing is enabled by setting the global variable +// tracePeekerNewlinesStack at init time, a full log of all of the push/pop +// calls will be produced to help identify which caller in the parser is +// misbehaving. +func (p *peeker) AssertEmptyIncludeNewlinesStack() { + if len(p.IncludeNewlinesStack) != 1 { + // Should never happen; indicates mismanagement of the stack inside + // the parser. + if p.newlineStackChanges != nil { // only if traceNewlinesStack is enabled above + panic(fmt.Errorf( + "non-empty IncludeNewlinesStack after parse with %d calls unaccounted for:\n%s", + len(p.IncludeNewlinesStack)-1, + formatPeekerNewlineStackChanges(p.newlineStackChanges), + )) + } else { + panic(fmt.Errorf("non-empty IncludeNewlinesStack after parse: %#v", p.IncludeNewlinesStack)) + } + } +} + +func formatPeekerNewlineStackChanges(changes []peekerNewlineStackChange) string { + indent := 0 + var buf bytes.Buffer + for _, change := range changes { + funcName := change.Frame.Function + if idx := strings.LastIndexByte(funcName, '.'); idx != -1 { + funcName = funcName[idx+1:] + } + filename := change.Frame.File + if idx := strings.LastIndexByte(filename, filepath.Separator); idx != -1 { + filename = filename[idx+1:] + } + + switch change.Pushing { + + case true: + buf.WriteString(strings.Repeat(" ", indent)) + fmt.Fprintf(&buf, "PUSH %#v (%s at %s:%d)\n", change.Include, funcName, filename, change.Frame.Line) + indent++ + + case false: + indent-- + buf.WriteString(strings.Repeat(" ", indent)) + fmt.Fprintf(&buf, "POP %#v (%s at %s:%d)\n", change.Include, funcName, filename, change.Frame.Line) + + } + } + return buf.String() +} diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/public.go b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/public.go index e527d63f4..cf0ee2976 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/public.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/public.go @@ -20,6 +20,12 @@ func ParseConfig(src []byte, filename string, start hcl.Pos) (*hcl.File, hcl.Dia parser := &parser{peeker: peeker} body, parseDiags := parser.ParseBody(TokenEOF) diags = append(diags, parseDiags...) + + // Panic if the parser uses incorrect stack discipline with the peeker's + // newlines stack, since otherwise it will produce confusing downstream + // errors. + peeker.AssertEmptyIncludeNewlinesStack() + return &hcl.File{ Body: body, Bytes: src, @@ -54,6 +60,13 @@ func ParseExpression(src []byte, filename string, start hcl.Pos) (Expression, hc }) } + parser.PopIncludeNewlines() + + // Panic if the parser uses incorrect stack discipline with the peeker's + // newlines stack, since otherwise it will produce confusing downstream + // errors. + peeker.AssertEmptyIncludeNewlinesStack() + return expr, diags } @@ -65,6 +78,12 @@ func ParseTemplate(src []byte, filename string, start hcl.Pos) (Expression, hcl. parser := &parser{peeker: peeker} expr, parseDiags := parser.ParseTemplate() diags = append(diags, parseDiags...) + + // Panic if the parser uses incorrect stack discipline with the peeker's + // newlines stack, since otherwise it will produce confusing downstream + // errors. + peeker.AssertEmptyIncludeNewlinesStack() + return expr, diags } @@ -85,6 +104,14 @@ func ParseTraversalAbs(src []byte, filename string, start hcl.Pos) (hcl.Traversa expr, parseDiags := parser.ParseTraversalAbs() diags = append(diags, parseDiags...) + + parser.PopIncludeNewlines() + + // Panic if the parser uses incorrect stack discipline with the peeker's + // newlines stack, since otherwise it will produce confusing downstream + // errors. + peeker.AssertEmptyIncludeNewlinesStack() + return expr, diags } diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_tokens.go b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_tokens.go index 7d557c08d..395e9c1c1 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_tokens.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_tokens.go @@ -12,1537 +12,1572 @@ import ( // line 15 "scan_tokens.go" var _hcltok_actions []byte = []byte{ - 0, 1, 0, 1, 2, 1, 3, 1, 4, - 1, 5, 1, 6, 1, 7, 1, 8, + 0, 1, 0, 1, 1, 1, 2, 1, 3, + 1, 4, 1, 6, 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 1, 12, - 1, 13, 1, 14, 1, 15, 1, 18, - 1, 19, 1, 20, 1, 21, 1, 22, + 1, 13, 1, 14, 1, 15, 1, 16, + 1, 17, 1, 18, 1, 19, 1, 22, 1, 23, 1, 24, 1, 25, 1, 26, - 1, 27, 1, 30, 1, 31, 1, 32, - 1, 33, 1, 34, 1, 35, 1, 36, - 1, 37, 1, 38, 1, 39, 1, 42, - 1, 43, 1, 44, 1, 45, 1, 46, - 1, 47, 1, 48, 1, 54, 1, 55, - 1, 56, 1, 57, 1, 58, 1, 59, + 1, 27, 1, 28, 1, 29, 1, 30, + 1, 31, 1, 34, 1, 35, 1, 36, + 1, 37, 1, 38, 1, 39, 1, 40, + 1, 41, 1, 42, 1, 43, 1, 46, + 1, 47, 1, 48, 1, 49, 1, 50, + 1, 51, 1, 52, 1, 58, 1, 59, 1, 60, 1, 61, 1, 62, 1, 63, 1, 64, 1, 65, 1, 66, 1, 67, 1, 68, 1, 69, 1, 70, 1, 71, 1, 72, 1, 73, 1, 74, 1, 75, 1, 76, 1, 77, 1, 78, 1, 79, 1, 80, 1, 81, 1, 82, 1, 83, - 2, 0, 1, 2, 3, 16, 2, 3, - 17, 2, 3, 28, 2, 3, 29, 2, - 3, 40, 2, 3, 41, 2, 3, 49, - 2, 3, 50, 2, 3, 51, 2, 3, - 52, 2, 3, 53, + 1, 84, 1, 85, 1, 86, 1, 87, + 2, 0, 15, 2, 1, 15, 2, 2, + 24, 2, 2, 28, 2, 3, 24, 2, + 3, 28, 2, 4, 5, 2, 7, 0, + 2, 7, 1, 2, 7, 20, 2, 7, + 21, 2, 7, 32, 2, 7, 33, 2, + 7, 44, 2, 7, 45, 2, 7, 53, + 2, 7, 54, 2, 7, 55, 2, 7, + 56, 2, 7, 57, 3, 7, 2, 20, + 3, 7, 3, 20, } var _hcltok_key_offsets []int16 = []int16{ 0, 0, 1, 2, 3, 5, 10, 14, - 16, 57, 97, 143, 144, 148, 154, 154, - 156, 158, 167, 173, 180, 181, 184, 185, - 189, 194, 203, 207, 211, 219, 221, 223, - 225, 228, 260, 262, 264, 268, 272, 275, - 286, 299, 318, 331, 347, 359, 375, 390, - 411, 421, 433, 444, 458, 473, 483, 495, - 504, 516, 518, 522, 543, 552, 562, 568, - 574, 575, 624, 626, 630, 632, 638, 645, - 653, 660, 663, 669, 673, 677, 679, 683, - 687, 691, 697, 705, 713, 719, 721, 725, - 727, 733, 737, 741, 745, 749, 754, 761, - 767, 769, 771, 775, 777, 783, 787, 791, - 801, 806, 820, 835, 837, 845, 847, 852, - 866, 871, 873, 877, 878, 882, 888, 894, - 904, 914, 925, 933, 936, 939, 943, 947, - 949, 952, 952, 955, 957, 987, 989, 991, - 995, 1000, 1004, 1009, 1011, 1013, 1015, 1024, - 1028, 1032, 1038, 1040, 1048, 1056, 1068, 1071, - 1077, 1081, 1083, 1087, 1107, 1109, 1111, 1122, - 1128, 1130, 1132, 1134, 1138, 1144, 1150, 1152, - 1157, 1161, 1163, 1171, 1189, 1229, 1239, 1243, - 1245, 1247, 1248, 1252, 1256, 1260, 1264, 1268, - 1273, 1277, 1281, 1285, 1287, 1289, 1293, 1303, - 1307, 1309, 1313, 1317, 1321, 1334, 1336, 1338, - 1342, 1344, 1348, 1350, 1352, 1382, 1386, 1390, - 1394, 1397, 1404, 1409, 1420, 1424, 1440, 1454, - 1458, 1463, 1467, 1471, 1477, 1479, 1485, 1487, - 1491, 1493, 1499, 1504, 1509, 1519, 1521, 1523, - 1527, 1531, 1533, 1546, 1548, 1552, 1556, 1564, - 1566, 1570, 1572, 1573, 1576, 1581, 1583, 1585, - 1589, 1591, 1595, 1601, 1621, 1627, 1633, 1635, - 1636, 1646, 1647, 1655, 1662, 1664, 1667, 1669, - 1671, 1673, 1678, 1682, 1686, 1691, 1701, 1711, - 1715, 1719, 1733, 1759, 1769, 1771, 1773, 1776, - 1778, 1781, 1783, 1787, 1789, 1790, 1794, 1796, - 1799, 1806, 1814, 1816, 1818, 1822, 1824, 1830, - 1841, 1844, 1846, 1850, 1855, 1885, 1890, 1892, - 1895, 1900, 1914, 1921, 1935, 1940, 1953, 1957, - 1970, 1975, 1993, 1994, 2003, 2007, 2019, 2024, - 2031, 2038, 2045, 2047, 2051, 2073, 2078, 2079, - 2083, 2085, 2135, 2138, 2149, 2153, 2155, 2161, - 2167, 2169, 2174, 2176, 2180, 2182, 2183, 2185, - 2187, 2193, 2195, 2197, 2201, 2207, 2220, 2222, - 2228, 2232, 2240, 2251, 2259, 2262, 2292, 2298, - 2301, 2306, 2308, 2312, 2316, 2320, 2322, 2329, - 2331, 2340, 2347, 2355, 2357, 2377, 2389, 2393, - 2395, 2413, 2452, 2454, 2458, 2460, 2467, 2471, - 2499, 2501, 2503, 2505, 2507, 2510, 2512, 2516, - 2520, 2522, 2525, 2527, 2529, 2532, 2534, 2536, - 2537, 2539, 2541, 2545, 2549, 2552, 2565, 2567, - 2573, 2577, 2579, 2583, 2587, 2601, 2604, 2613, - 2615, 2619, 2625, 2625, 2627, 2629, 2638, 2644, - 2651, 2652, 2655, 2656, 2660, 2665, 2674, 2678, - 2682, 2690, 2692, 2694, 2696, 2699, 2731, 2733, - 2735, 2739, 2743, 2746, 2757, 2770, 2789, 2802, - 2818, 2830, 2846, 2861, 2882, 2892, 2904, 2915, - 2929, 2944, 2954, 2966, 2975, 2987, 2989, 2993, - 3014, 3023, 3033, 3039, 3045, 3046, 3095, 3097, - 3101, 3103, 3109, 3116, 3124, 3131, 3134, 3140, - 3144, 3148, 3150, 3154, 3158, 3162, 3168, 3176, - 3184, 3190, 3192, 3196, 3198, 3204, 3208, 3212, - 3216, 3220, 3225, 3232, 3238, 3240, 3242, 3246, - 3248, 3254, 3258, 3262, 3272, 3277, 3291, 3306, - 3308, 3316, 3318, 3323, 3337, 3342, 3344, 3348, - 3349, 3353, 3359, 3365, 3375, 3385, 3396, 3404, - 3407, 3410, 3414, 3418, 3420, 3423, 3423, 3426, - 3428, 3458, 3460, 3462, 3466, 3471, 3475, 3480, - 3482, 3484, 3486, 3495, 3499, 3503, 3509, 3511, - 3519, 3527, 3539, 3542, 3548, 3552, 3554, 3558, - 3578, 3580, 3582, 3593, 3599, 3601, 3603, 3605, - 3609, 3615, 3621, 3623, 3628, 3632, 3634, 3642, - 3660, 3700, 3710, 3714, 3716, 3718, 3719, 3723, - 3727, 3731, 3735, 3739, 3744, 3748, 3752, 3756, - 3758, 3760, 3764, 3774, 3778, 3780, 3784, 3788, - 3792, 3805, 3807, 3809, 3813, 3815, 3819, 3821, - 3823, 3853, 3857, 3861, 3865, 3868, 3875, 3880, - 3891, 3895, 3911, 3925, 3929, 3934, 3938, 3942, - 3948, 3950, 3956, 3958, 3962, 3964, 3970, 3975, - 3980, 3990, 3992, 3994, 3998, 4002, 4004, 4017, - 4019, 4023, 4027, 4035, 4037, 4041, 4043, 4044, - 4047, 4052, 4054, 4056, 4060, 4062, 4066, 4072, - 4092, 4098, 4104, 4106, 4107, 4117, 4118, 4126, - 4133, 4135, 4138, 4140, 4142, 4144, 4149, 4153, - 4157, 4162, 4172, 4182, 4186, 4190, 4204, 4230, - 4240, 4242, 4244, 4247, 4249, 4252, 4254, 4258, - 4260, 4261, 4265, 4267, 4269, 4276, 4280, 4287, - 4294, 4303, 4319, 4331, 4349, 4360, 4372, 4380, - 4398, 4406, 4436, 4439, 4449, 4459, 4471, 4482, - 4491, 4504, 4516, 4520, 4526, 4553, 4562, 4565, - 4570, 4576, 4581, 4602, 4606, 4612, 4612, 4619, - 4628, 4636, 4639, 4643, 4649, 4655, 4658, 4662, - 4669, 4675, 4684, 4693, 4697, 4701, 4705, 4709, - 4716, 4720, 4724, 4734, 4740, 4744, 4750, 4754, - 4757, 4763, 4769, 4781, 4785, 4789, 4799, 4803, - 4814, 4816, 4818, 4822, 4834, 4839, 4863, 4867, - 4873, 4895, 4904, 4908, 4911, 4912, 4920, 4928, - 4934, 4944, 4951, 4969, 4972, 4975, 4983, 4989, - 4993, 4997, 5001, 5007, 5015, 5020, 5026, 5030, - 5038, 5045, 5049, 5056, 5062, 5070, 5078, 5084, - 5090, 5101, 5105, 5117, 5126, 5143, 5160, 5163, - 5167, 5169, 5175, 5177, 5181, 5196, 5200, 5204, - 5208, 5212, 5216, 5218, 5224, 5229, 5233, 5239, - 5246, 5249, 5267, 5269, 5314, 5320, 5326, 5330, - 5334, 5340, 5344, 5350, 5356, 5363, 5365, 5371, - 5377, 5381, 5385, 5393, 5406, 5412, 5419, 5427, - 5433, 5442, 5448, 5452, 5457, 5461, 5469, 5473, - 5477, 5507, 5513, 5519, 5525, 5531, 5538, 5544, - 5551, 5556, 5566, 5570, 5577, 5583, 5587, 5594, - 5598, 5604, 5607, 5611, 5615, 5619, 5623, 5628, - 5633, 5637, 5648, 5652, 5656, 5662, 5670, 5674, - 5691, 5695, 5701, 5711, 5717, 5723, 5726, 5731, - 5740, 5744, 5748, 5754, 5758, 5764, 5772, 5790, - 5791, 5801, 5802, 5811, 5819, 5821, 5824, 5826, - 5828, 5830, 5835, 5848, 5852, 5867, 5896, 5907, - 5909, 5913, 5917, 5922, 5926, 5928, 5935, 5939, - 5947, 5951, 5952, 5954, 5956, 5958, 5960, 5962, - 5963, 5964, 5966, 5968, 5970, 5971, 5972, 5973, - 5974, 5976, 5978, 5980, 5981, 5982, 5986, 5992, - 5992, 5994, 5996, 6005, 6011, 6018, 6019, 6022, - 6023, 6027, 6032, 6041, 6045, 6049, 6057, 6059, - 6061, 6063, 6066, 6098, 6100, 6102, 6106, 6110, - 6113, 6124, 6137, 6156, 6169, 6185, 6197, 6213, - 6228, 6249, 6259, 6271, 6282, 6296, 6311, 6321, - 6333, 6342, 6354, 6356, 6360, 6381, 6390, 6400, - 6406, 6412, 6413, 6462, 6464, 6468, 6470, 6476, - 6483, 6491, 6498, 6501, 6507, 6511, 6515, 6517, - 6521, 6525, 6529, 6535, 6543, 6551, 6557, 6559, - 6563, 6565, 6571, 6575, 6579, 6583, 6587, 6592, - 6599, 6605, 6607, 6609, 6613, 6615, 6621, 6625, - 6629, 6639, 6644, 6658, 6673, 6675, 6683, 6685, - 6690, 6704, 6709, 6711, 6715, 6716, 6720, 6726, - 6732, 6742, 6752, 6763, 6771, 6774, 6777, 6781, - 6785, 6787, 6790, 6790, 6793, 6795, 6825, 6827, - 6829, 6833, 6838, 6842, 6847, 6849, 6851, 6853, - 6862, 6866, 6870, 6876, 6878, 6886, 6894, 6906, - 6909, 6915, 6919, 6921, 6925, 6945, 6947, 6949, - 6960, 6966, 6968, 6970, 6972, 6976, 6982, 6988, - 6990, 6995, 6999, 7001, 7009, 7027, 7067, 7077, - 7081, 7083, 7085, 7086, 7090, 7094, 7098, 7102, - 7106, 7111, 7115, 7119, 7123, 7125, 7127, 7131, - 7141, 7145, 7147, 7151, 7155, 7159, 7172, 7174, - 7176, 7180, 7182, 7186, 7188, 7190, 7220, 7224, - 7228, 7232, 7235, 7242, 7247, 7258, 7262, 7278, - 7292, 7296, 7301, 7305, 7309, 7315, 7317, 7323, - 7325, 7329, 7331, 7337, 7342, 7347, 7357, 7359, - 7361, 7365, 7369, 7371, 7384, 7386, 7390, 7394, - 7402, 7404, 7408, 7410, 7411, 7414, 7419, 7421, - 7423, 7427, 7429, 7433, 7439, 7459, 7465, 7471, - 7473, 7474, 7484, 7485, 7493, 7500, 7502, 7505, - 7507, 7509, 7511, 7516, 7520, 7524, 7529, 7539, - 7549, 7553, 7557, 7571, 7597, 7607, 7609, 7611, - 7614, 7616, 7619, 7621, 7625, 7627, 7628, 7632, - 7634, 7636, 7643, 7647, 7654, 7661, 7670, 7686, - 7698, 7716, 7727, 7739, 7747, 7765, 7773, 7803, - 7806, 7816, 7826, 7838, 7849, 7858, 7871, 7883, - 7887, 7893, 7920, 7929, 7932, 7937, 7943, 7948, - 7969, 7973, 7979, 7979, 7986, 7995, 8003, 8006, - 8010, 8016, 8022, 8025, 8029, 8036, 8042, 8051, - 8060, 8064, 8068, 8072, 8076, 8083, 8087, 8091, - 8101, 8107, 8111, 8117, 8121, 8124, 8130, 8136, - 8148, 8152, 8156, 8166, 8170, 8181, 8183, 8185, - 8189, 8201, 8206, 8230, 8234, 8240, 8262, 8271, - 8275, 8278, 8279, 8287, 8295, 8301, 8311, 8318, - 8336, 8339, 8342, 8350, 8356, 8360, 8364, 8368, - 8374, 8382, 8387, 8393, 8397, 8405, 8412, 8416, - 8423, 8429, 8437, 8445, 8451, 8457, 8468, 8472, - 8484, 8493, 8510, 8527, 8530, 8534, 8536, 8542, - 8544, 8548, 8563, 8567, 8571, 8575, 8579, 8583, - 8585, 8591, 8596, 8600, 8606, 8613, 8616, 8634, - 8636, 8681, 8687, 8693, 8697, 8701, 8707, 8711, - 8717, 8723, 8730, 8732, 8738, 8744, 8748, 8752, - 8760, 8773, 8779, 8786, 8794, 8800, 8809, 8815, - 8819, 8824, 8828, 8836, 8840, 8844, 8874, 8880, - 8886, 8892, 8898, 8905, 8911, 8918, 8923, 8933, - 8937, 8944, 8950, 8954, 8961, 8965, 8971, 8974, - 8978, 8982, 8986, 8990, 8995, 9000, 9004, 9015, - 9019, 9023, 9029, 9037, 9041, 9058, 9062, 9068, - 9078, 9084, 9090, 9093, 9098, 9107, 9111, 9115, - 9121, 9125, 9131, 9139, 9157, 9158, 9168, 9169, - 9178, 9186, 9188, 9191, 9193, 9195, 9197, 9202, - 9215, 9219, 9234, 9263, 9274, 9276, 9280, 9284, - 9289, 9293, 9295, 9302, 9306, 9314, 9318, 9393, - 9395, 9396, 9397, 9398, 9399, 9400, 9402, 9403, - 9408, 9410, 9412, 9413, 9457, 9458, 9459, 9461, - 9466, 9470, 9470, 9472, 9474, 9485, 9495, 9503, - 9504, 9506, 9507, 9511, 9515, 9525, 9529, 9536, - 9547, 9554, 9558, 9564, 9575, 9607, 9656, 9671, - 9686, 9691, 9693, 9698, 9730, 9738, 9740, 9762, - 9784, 9786, 9802, 9818, 9833, 9842, 9856, 9870, - 9886, 9887, 9888, 9889, 9890, 9892, 9894, 9896, - 9910, 9924, 9925, 9926, 9928, 9930, 9932, 9946, - 9960, 9961, 9962, 9964, 9966, 9968, 10016, 10060, - 10062, 10067, 10071, 10071, 10073, 10075, 10086, 10096, - 10104, 10105, 10107, 10108, 10112, 10116, 10126, 10130, - 10137, 10148, 10155, 10159, 10165, 10176, 10208, 10257, - 10272, 10287, 10292, 10294, 10299, 10331, 10339, 10341, - 10363, 10385, + 16, 58, 99, 145, 146, 150, 156, 156, + 158, 160, 169, 175, 182, 183, 186, 187, + 191, 196, 205, 209, 213, 221, 223, 225, + 227, 230, 262, 264, 266, 270, 274, 277, + 288, 301, 320, 333, 349, 361, 377, 392, + 413, 423, 435, 446, 460, 475, 485, 497, + 506, 518, 520, 524, 545, 554, 564, 570, + 576, 577, 626, 628, 632, 634, 640, 647, + 655, 662, 665, 671, 675, 679, 681, 685, + 689, 693, 699, 707, 715, 721, 723, 727, + 729, 735, 739, 743, 747, 751, 756, 763, + 769, 771, 773, 777, 779, 785, 789, 793, + 803, 808, 822, 837, 839, 847, 849, 854, + 868, 873, 875, 879, 880, 884, 890, 896, + 906, 916, 927, 935, 938, 941, 945, 949, + 951, 954, 954, 957, 959, 989, 991, 993, + 997, 1002, 1006, 1011, 1013, 1015, 1017, 1026, + 1030, 1034, 1040, 1042, 1050, 1058, 1070, 1073, + 1079, 1083, 1085, 1089, 1109, 1111, 1113, 1124, + 1130, 1132, 1134, 1136, 1140, 1146, 1152, 1154, + 1159, 1163, 1165, 1173, 1191, 1231, 1241, 1245, + 1247, 1249, 1250, 1254, 1258, 1262, 1266, 1270, + 1275, 1279, 1283, 1287, 1289, 1291, 1295, 1305, + 1309, 1311, 1315, 1319, 1323, 1336, 1338, 1340, + 1344, 1346, 1350, 1352, 1354, 1384, 1388, 1392, + 1396, 1399, 1406, 1411, 1422, 1426, 1442, 1456, + 1460, 1465, 1469, 1473, 1479, 1481, 1487, 1489, + 1493, 1495, 1501, 1506, 1511, 1521, 1523, 1525, + 1529, 1533, 1535, 1548, 1550, 1554, 1558, 1566, + 1568, 1572, 1574, 1575, 1578, 1583, 1585, 1587, + 1591, 1593, 1597, 1603, 1623, 1629, 1635, 1637, + 1638, 1648, 1649, 1657, 1664, 1666, 1669, 1671, + 1673, 1675, 1680, 1684, 1688, 1693, 1703, 1713, + 1717, 1721, 1735, 1761, 1771, 1773, 1775, 1778, + 1780, 1783, 1785, 1789, 1791, 1792, 1796, 1798, + 1801, 1808, 1816, 1818, 1820, 1824, 1826, 1832, + 1843, 1846, 1848, 1852, 1857, 1887, 1892, 1894, + 1897, 1902, 1916, 1923, 1937, 1942, 1955, 1959, + 1972, 1977, 1995, 1996, 2005, 2009, 2021, 2026, + 2033, 2040, 2047, 2049, 2053, 2075, 2080, 2081, + 2085, 2087, 2137, 2140, 2151, 2155, 2157, 2163, + 2169, 2171, 2176, 2178, 2182, 2184, 2185, 2187, + 2189, 2195, 2197, 2199, 2203, 2209, 2222, 2224, + 2230, 2234, 2242, 2253, 2261, 2264, 2294, 2300, + 2303, 2308, 2310, 2314, 2318, 2322, 2324, 2331, + 2333, 2342, 2349, 2357, 2359, 2379, 2391, 2395, + 2397, 2415, 2454, 2456, 2460, 2462, 2469, 2473, + 2501, 2503, 2505, 2507, 2509, 2512, 2514, 2518, + 2522, 2524, 2527, 2529, 2531, 2534, 2536, 2538, + 2539, 2541, 2543, 2547, 2551, 2554, 2567, 2569, + 2575, 2579, 2581, 2585, 2589, 2603, 2606, 2615, + 2617, 2621, 2627, 2627, 2629, 2631, 2640, 2646, + 2653, 2654, 2657, 2658, 2662, 2667, 2676, 2680, + 2684, 2692, 2694, 2696, 2698, 2701, 2733, 2735, + 2737, 2741, 2745, 2748, 2759, 2772, 2791, 2804, + 2820, 2832, 2848, 2863, 2884, 2894, 2906, 2917, + 2931, 2946, 2956, 2968, 2977, 2989, 2991, 2995, + 3016, 3025, 3035, 3041, 3047, 3048, 3097, 3099, + 3103, 3105, 3111, 3118, 3126, 3133, 3136, 3142, + 3146, 3150, 3152, 3156, 3160, 3164, 3170, 3178, + 3186, 3192, 3194, 3198, 3200, 3206, 3210, 3214, + 3218, 3222, 3227, 3234, 3240, 3242, 3244, 3248, + 3250, 3256, 3260, 3264, 3274, 3279, 3293, 3308, + 3310, 3318, 3320, 3325, 3339, 3344, 3346, 3350, + 3351, 3355, 3361, 3367, 3377, 3387, 3398, 3406, + 3409, 3412, 3416, 3420, 3422, 3425, 3425, 3428, + 3430, 3460, 3462, 3464, 3468, 3473, 3477, 3482, + 3484, 3486, 3488, 3497, 3501, 3505, 3511, 3513, + 3521, 3529, 3541, 3544, 3550, 3554, 3556, 3560, + 3580, 3582, 3584, 3595, 3601, 3603, 3605, 3607, + 3611, 3617, 3623, 3625, 3630, 3634, 3636, 3644, + 3662, 3702, 3712, 3716, 3718, 3720, 3721, 3725, + 3729, 3733, 3737, 3741, 3746, 3750, 3754, 3758, + 3760, 3762, 3766, 3776, 3780, 3782, 3786, 3790, + 3794, 3807, 3809, 3811, 3815, 3817, 3821, 3823, + 3825, 3855, 3859, 3863, 3867, 3870, 3877, 3882, + 3893, 3897, 3913, 3927, 3931, 3936, 3940, 3944, + 3950, 3952, 3958, 3960, 3964, 3966, 3972, 3977, + 3982, 3992, 3994, 3996, 4000, 4004, 4006, 4019, + 4021, 4025, 4029, 4037, 4039, 4043, 4045, 4046, + 4049, 4054, 4056, 4058, 4062, 4064, 4068, 4074, + 4094, 4100, 4106, 4108, 4109, 4119, 4120, 4128, + 4135, 4137, 4140, 4142, 4144, 4146, 4151, 4155, + 4159, 4164, 4174, 4184, 4188, 4192, 4206, 4232, + 4242, 4244, 4246, 4249, 4251, 4254, 4256, 4260, + 4262, 4263, 4267, 4269, 4271, 4278, 4282, 4289, + 4296, 4305, 4321, 4333, 4351, 4362, 4374, 4382, + 4400, 4408, 4438, 4441, 4451, 4461, 4473, 4484, + 4493, 4506, 4518, 4522, 4528, 4555, 4564, 4567, + 4572, 4578, 4583, 4604, 4608, 4614, 4614, 4621, + 4630, 4638, 4641, 4645, 4651, 4657, 4660, 4664, + 4671, 4677, 4686, 4695, 4699, 4703, 4707, 4711, + 4718, 4722, 4726, 4736, 4742, 4746, 4752, 4756, + 4759, 4765, 4771, 4783, 4787, 4791, 4801, 4805, + 4816, 4818, 4820, 4824, 4836, 4841, 4865, 4869, + 4875, 4897, 4906, 4910, 4913, 4914, 4922, 4930, + 4936, 4946, 4953, 4971, 4974, 4977, 4985, 4991, + 4995, 4999, 5003, 5009, 5017, 5022, 5028, 5032, + 5040, 5047, 5051, 5058, 5064, 5072, 5080, 5086, + 5092, 5103, 5107, 5119, 5128, 5145, 5162, 5165, + 5169, 5171, 5177, 5179, 5183, 5198, 5202, 5206, + 5210, 5214, 5218, 5220, 5226, 5231, 5235, 5241, + 5248, 5251, 5269, 5271, 5316, 5322, 5328, 5332, + 5336, 5342, 5346, 5352, 5358, 5365, 5367, 5373, + 5379, 5383, 5387, 5395, 5408, 5414, 5421, 5429, + 5435, 5444, 5450, 5454, 5459, 5463, 5471, 5475, + 5479, 5509, 5515, 5521, 5527, 5533, 5540, 5546, + 5553, 5558, 5568, 5572, 5579, 5585, 5589, 5596, + 5600, 5606, 5609, 5613, 5617, 5621, 5625, 5630, + 5635, 5639, 5650, 5654, 5658, 5664, 5672, 5676, + 5693, 5697, 5703, 5713, 5719, 5725, 5728, 5733, + 5742, 5746, 5750, 5756, 5760, 5766, 5774, 5792, + 5793, 5803, 5804, 5813, 5821, 5823, 5826, 5828, + 5830, 5832, 5837, 5850, 5854, 5869, 5898, 5909, + 5911, 5915, 5919, 5924, 5928, 5930, 5937, 5941, + 5949, 5953, 5954, 5955, 5957, 5959, 5961, 5963, + 5965, 5966, 5967, 5968, 5970, 5972, 5974, 5975, + 5976, 5977, 5978, 5980, 5982, 5984, 5985, 5986, + 5990, 5996, 5996, 5998, 6000, 6009, 6015, 6022, + 6023, 6026, 6027, 6031, 6036, 6045, 6049, 6053, + 6061, 6063, 6065, 6067, 6070, 6102, 6104, 6106, + 6110, 6114, 6117, 6128, 6141, 6160, 6173, 6189, + 6201, 6217, 6232, 6253, 6263, 6275, 6286, 6300, + 6315, 6325, 6337, 6346, 6358, 6360, 6364, 6385, + 6394, 6404, 6410, 6416, 6417, 6466, 6468, 6472, + 6474, 6480, 6487, 6495, 6502, 6505, 6511, 6515, + 6519, 6521, 6525, 6529, 6533, 6539, 6547, 6555, + 6561, 6563, 6567, 6569, 6575, 6579, 6583, 6587, + 6591, 6596, 6603, 6609, 6611, 6613, 6617, 6619, + 6625, 6629, 6633, 6643, 6648, 6662, 6677, 6679, + 6687, 6689, 6694, 6708, 6713, 6715, 6719, 6720, + 6724, 6730, 6736, 6746, 6756, 6767, 6775, 6778, + 6781, 6785, 6789, 6791, 6794, 6794, 6797, 6799, + 6829, 6831, 6833, 6837, 6842, 6846, 6851, 6853, + 6855, 6857, 6866, 6870, 6874, 6880, 6882, 6890, + 6898, 6910, 6913, 6919, 6923, 6925, 6929, 6949, + 6951, 6953, 6964, 6970, 6972, 6974, 6976, 6980, + 6986, 6992, 6994, 6999, 7003, 7005, 7013, 7031, + 7071, 7081, 7085, 7087, 7089, 7090, 7094, 7098, + 7102, 7106, 7110, 7115, 7119, 7123, 7127, 7129, + 7131, 7135, 7145, 7149, 7151, 7155, 7159, 7163, + 7176, 7178, 7180, 7184, 7186, 7190, 7192, 7194, + 7224, 7228, 7232, 7236, 7239, 7246, 7251, 7262, + 7266, 7282, 7296, 7300, 7305, 7309, 7313, 7319, + 7321, 7327, 7329, 7333, 7335, 7341, 7346, 7351, + 7361, 7363, 7365, 7369, 7373, 7375, 7388, 7390, + 7394, 7398, 7406, 7408, 7412, 7414, 7415, 7418, + 7423, 7425, 7427, 7431, 7433, 7437, 7443, 7463, + 7469, 7475, 7477, 7478, 7488, 7489, 7497, 7504, + 7506, 7509, 7511, 7513, 7515, 7520, 7524, 7528, + 7533, 7543, 7553, 7557, 7561, 7575, 7601, 7611, + 7613, 7615, 7618, 7620, 7623, 7625, 7629, 7631, + 7632, 7636, 7638, 7640, 7647, 7651, 7658, 7665, + 7674, 7690, 7702, 7720, 7731, 7743, 7751, 7769, + 7777, 7807, 7810, 7820, 7830, 7842, 7853, 7862, + 7875, 7887, 7891, 7897, 7924, 7933, 7936, 7941, + 7947, 7952, 7973, 7977, 7983, 7983, 7990, 7999, + 8007, 8010, 8014, 8020, 8026, 8029, 8033, 8040, + 8046, 8055, 8064, 8068, 8072, 8076, 8080, 8087, + 8091, 8095, 8105, 8111, 8115, 8121, 8125, 8128, + 8134, 8140, 8152, 8156, 8160, 8170, 8174, 8185, + 8187, 8189, 8193, 8205, 8210, 8234, 8238, 8244, + 8266, 8275, 8279, 8282, 8283, 8291, 8299, 8305, + 8315, 8322, 8340, 8343, 8346, 8354, 8360, 8364, + 8368, 8372, 8378, 8386, 8391, 8397, 8401, 8409, + 8416, 8420, 8427, 8433, 8441, 8449, 8455, 8461, + 8472, 8476, 8488, 8497, 8514, 8531, 8534, 8538, + 8540, 8546, 8548, 8552, 8567, 8571, 8575, 8579, + 8583, 8587, 8589, 8595, 8600, 8604, 8610, 8617, + 8620, 8638, 8640, 8685, 8691, 8697, 8701, 8705, + 8711, 8715, 8721, 8727, 8734, 8736, 8742, 8748, + 8752, 8756, 8764, 8777, 8783, 8790, 8798, 8804, + 8813, 8819, 8823, 8828, 8832, 8840, 8844, 8848, + 8878, 8884, 8890, 8896, 8902, 8909, 8915, 8922, + 8927, 8937, 8941, 8948, 8954, 8958, 8965, 8969, + 8975, 8978, 8982, 8986, 8990, 8994, 8999, 9004, + 9008, 9019, 9023, 9027, 9033, 9041, 9045, 9062, + 9066, 9072, 9082, 9088, 9094, 9097, 9102, 9111, + 9115, 9119, 9125, 9129, 9135, 9143, 9161, 9162, + 9172, 9173, 9182, 9190, 9192, 9195, 9197, 9199, + 9201, 9206, 9219, 9223, 9238, 9267, 9278, 9280, + 9284, 9288, 9293, 9297, 9299, 9306, 9310, 9318, + 9322, 9398, 9400, 9401, 9402, 9403, 9404, 9405, + 9407, 9408, 9413, 9415, 9417, 9418, 9462, 9463, + 9464, 9466, 9471, 9475, 9475, 9477, 9479, 9490, + 9500, 9508, 9509, 9511, 9512, 9516, 9520, 9530, + 9534, 9541, 9552, 9559, 9563, 9569, 9580, 9612, + 9661, 9676, 9691, 9696, 9698, 9703, 9735, 9743, + 9745, 9767, 9789, 9791, 9807, 9823, 9839, 9855, + 9870, 9880, 9897, 9914, 9931, 9947, 9957, 9974, + 9990, 10006, 10022, 10038, 10054, 10070, 10086, 10087, + 10088, 10089, 10090, 10092, 10094, 10096, 10110, 10124, + 10138, 10152, 10153, 10154, 10156, 10158, 10160, 10174, + 10188, 10189, 10190, 10192, 10194, 10196, 10245, 10289, + 10291, 10296, 10300, 10300, 10302, 10304, 10315, 10325, + 10333, 10334, 10336, 10337, 10341, 10345, 10355, 10359, + 10366, 10377, 10384, 10388, 10394, 10405, 10437, 10486, + 10501, 10516, 10521, 10523, 10528, 10560, 10568, 10570, + 10592, 10614, } var _hcltok_trans_keys []byte = []byte{ 10, 46, 42, 42, 47, 46, 69, 101, 48, 57, 43, 45, 48, 57, 48, 57, - 45, 194, 195, 198, 199, 203, 205, 206, - 207, 210, 212, 213, 214, 215, 216, 217, - 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 233, 234, 237, 239, 240, 65, - 90, 97, 122, 196, 202, 208, 218, 229, - 236, 194, 195, 198, 199, 203, 205, 206, - 207, 210, 212, 213, 214, 215, 216, 217, - 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 233, 234, 237, 239, 240, 65, - 90, 97, 122, 196, 202, 208, 218, 229, - 236, 10, 13, 45, 95, 194, 195, 198, - 199, 203, 204, 205, 206, 207, 210, 212, - 213, 214, 215, 216, 217, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 233, - 234, 237, 239, 240, 243, 48, 57, 65, - 90, 97, 122, 196, 218, 229, 236, 10, - 170, 181, 183, 186, 128, 150, 152, 182, - 184, 255, 192, 255, 128, 255, 173, 130, - 133, 146, 159, 165, 171, 175, 255, 181, - 190, 184, 185, 192, 255, 140, 134, 138, - 142, 161, 163, 255, 182, 130, 136, 137, - 176, 151, 152, 154, 160, 190, 136, 144, - 192, 255, 135, 129, 130, 132, 133, 144, - 170, 176, 178, 144, 154, 160, 191, 128, - 169, 174, 255, 148, 169, 157, 158, 189, - 190, 192, 255, 144, 255, 139, 140, 178, - 255, 186, 128, 181, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 128, 173, 128, 155, - 160, 180, 182, 189, 148, 161, 163, 255, - 176, 164, 165, 132, 169, 177, 141, 142, - 145, 146, 179, 181, 186, 187, 158, 133, - 134, 137, 138, 143, 150, 152, 155, 164, - 165, 178, 255, 188, 129, 131, 133, 138, - 143, 144, 147, 168, 170, 176, 178, 179, - 181, 182, 184, 185, 190, 255, 157, 131, - 134, 137, 138, 142, 144, 146, 152, 159, - 165, 182, 255, 129, 131, 133, 141, 143, - 145, 147, 168, 170, 176, 178, 179, 181, - 185, 188, 255, 134, 138, 142, 143, 145, - 159, 164, 165, 176, 184, 186, 255, 129, - 131, 133, 140, 143, 144, 147, 168, 170, - 176, 178, 179, 181, 185, 188, 191, 177, - 128, 132, 135, 136, 139, 141, 150, 151, - 156, 157, 159, 163, 166, 175, 156, 130, - 131, 133, 138, 142, 144, 146, 149, 153, - 154, 158, 159, 163, 164, 168, 170, 174, - 185, 190, 191, 144, 151, 128, 130, 134, - 136, 138, 141, 166, 175, 128, 131, 133, - 140, 142, 144, 146, 168, 170, 185, 189, - 255, 133, 137, 151, 142, 148, 155, 159, - 164, 165, 176, 255, 128, 131, 133, 140, - 142, 144, 146, 168, 170, 179, 181, 185, - 188, 191, 158, 128, 132, 134, 136, 138, - 141, 149, 150, 160, 163, 166, 175, 177, - 178, 129, 131, 133, 140, 142, 144, 146, - 186, 189, 255, 133, 137, 143, 147, 152, - 158, 164, 165, 176, 185, 192, 255, 189, - 130, 131, 133, 150, 154, 177, 179, 187, - 138, 150, 128, 134, 143, 148, 152, 159, - 166, 175, 178, 179, 129, 186, 128, 142, - 144, 153, 132, 138, 141, 165, 167, 129, - 130, 135, 136, 148, 151, 153, 159, 161, - 163, 170, 171, 173, 185, 187, 189, 134, - 128, 132, 136, 141, 144, 153, 156, 159, - 128, 181, 183, 185, 152, 153, 160, 169, - 190, 191, 128, 135, 137, 172, 177, 191, - 128, 132, 134, 151, 153, 188, 134, 128, - 129, 130, 131, 137, 138, 139, 140, 141, - 142, 143, 144, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 173, 175, 176, - 177, 178, 179, 181, 182, 183, 188, 189, - 190, 191, 132, 152, 172, 184, 185, 187, - 128, 191, 128, 137, 144, 255, 158, 159, - 134, 187, 136, 140, 142, 143, 137, 151, - 153, 142, 143, 158, 159, 137, 177, 142, - 143, 182, 183, 191, 255, 128, 130, 133, - 136, 150, 152, 255, 145, 150, 151, 155, - 156, 160, 168, 178, 255, 128, 143, 160, - 255, 182, 183, 190, 255, 129, 255, 173, - 174, 192, 255, 129, 154, 160, 255, 171, - 173, 185, 255, 128, 140, 142, 148, 160, - 180, 128, 147, 160, 172, 174, 176, 178, - 179, 148, 150, 152, 155, 158, 159, 170, - 255, 139, 141, 144, 153, 160, 255, 184, - 255, 128, 170, 176, 255, 182, 255, 128, - 158, 160, 171, 176, 187, 134, 173, 176, - 180, 128, 171, 176, 255, 138, 143, 155, - 255, 128, 155, 160, 255, 159, 189, 190, - 192, 255, 167, 128, 137, 144, 153, 176, - 189, 140, 143, 154, 170, 180, 255, 180, - 255, 128, 183, 128, 137, 141, 189, 128, - 136, 144, 146, 148, 182, 184, 185, 128, - 181, 187, 191, 150, 151, 158, 159, 152, - 154, 156, 158, 134, 135, 142, 143, 190, - 255, 190, 128, 180, 182, 188, 130, 132, - 134, 140, 144, 147, 150, 155, 160, 172, - 178, 180, 182, 188, 128, 129, 130, 131, - 132, 133, 134, 176, 177, 178, 179, 180, - 181, 182, 183, 191, 255, 129, 147, 149, - 176, 178, 190, 192, 255, 144, 156, 161, - 144, 156, 165, 176, 130, 135, 149, 164, - 166, 168, 138, 147, 152, 157, 170, 185, - 188, 191, 142, 133, 137, 160, 255, 137, - 255, 128, 174, 176, 255, 159, 165, 170, - 180, 255, 167, 173, 128, 165, 176, 255, - 168, 174, 176, 190, 192, 255, 128, 150, - 160, 166, 168, 174, 176, 182, 184, 190, - 128, 134, 136, 142, 144, 150, 152, 158, - 160, 191, 128, 129, 130, 131, 132, 133, - 134, 135, 144, 145, 255, 133, 135, 161, - 175, 177, 181, 184, 188, 160, 151, 152, - 187, 192, 255, 133, 173, 177, 255, 143, - 159, 187, 255, 176, 191, 182, 183, 184, - 191, 192, 255, 150, 255, 128, 146, 147, - 148, 152, 153, 154, 155, 156, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, - 176, 129, 255, 141, 255, 144, 189, 141, - 143, 172, 255, 191, 128, 175, 180, 189, - 151, 159, 162, 255, 175, 137, 138, 184, - 255, 183, 255, 168, 255, 128, 179, 188, - 134, 143, 154, 159, 184, 186, 190, 255, - 128, 173, 176, 255, 148, 159, 189, 255, - 129, 142, 154, 159, 191, 255, 128, 182, - 128, 141, 144, 153, 160, 182, 186, 255, - 128, 130, 155, 157, 160, 175, 178, 182, - 129, 134, 137, 142, 145, 150, 160, 166, - 168, 174, 176, 255, 155, 166, 175, 128, - 170, 172, 173, 176, 185, 158, 159, 160, - 255, 164, 175, 135, 138, 188, 255, 164, - 169, 171, 172, 173, 174, 175, 180, 181, - 182, 183, 184, 185, 187, 188, 189, 190, - 191, 165, 186, 174, 175, 154, 255, 190, - 128, 134, 147, 151, 157, 168, 170, 182, - 184, 188, 128, 129, 131, 132, 134, 255, - 147, 255, 190, 255, 144, 145, 136, 175, - 188, 255, 128, 143, 160, 175, 179, 180, - 141, 143, 176, 180, 182, 255, 189, 255, - 191, 144, 153, 161, 186, 129, 154, 166, - 255, 191, 255, 130, 135, 138, 143, 146, - 151, 154, 156, 144, 145, 146, 147, 148, - 150, 151, 152, 155, 157, 158, 160, 170, - 171, 172, 175, 161, 169, 128, 129, 130, - 131, 133, 135, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 152, - 156, 157, 160, 161, 162, 163, 164, 166, - 168, 169, 170, 171, 172, 173, 174, 176, - 177, 153, 155, 178, 179, 128, 139, 141, - 166, 168, 186, 188, 189, 191, 255, 142, - 143, 158, 255, 187, 255, 128, 180, 189, - 128, 156, 160, 255, 145, 159, 161, 255, - 128, 159, 176, 255, 139, 143, 187, 255, - 128, 157, 160, 255, 144, 132, 135, 150, - 255, 158, 159, 170, 175, 148, 151, 188, - 255, 128, 167, 176, 255, 164, 255, 183, - 255, 128, 149, 160, 167, 136, 188, 128, - 133, 138, 181, 183, 184, 191, 255, 150, - 159, 183, 255, 128, 158, 160, 178, 180, - 181, 128, 149, 160, 185, 128, 183, 190, - 191, 191, 128, 131, 133, 134, 140, 147, - 149, 151, 153, 179, 184, 186, 160, 188, - 128, 156, 128, 135, 137, 166, 128, 181, - 128, 149, 160, 178, 128, 145, 128, 178, - 129, 130, 131, 132, 133, 135, 136, 138, - 139, 140, 141, 144, 145, 146, 147, 150, - 151, 152, 153, 154, 155, 156, 162, 163, - 171, 176, 177, 178, 128, 134, 135, 165, - 176, 190, 144, 168, 176, 185, 128, 180, - 182, 191, 182, 144, 179, 155, 133, 137, - 141, 143, 157, 255, 190, 128, 145, 147, - 183, 136, 128, 134, 138, 141, 143, 157, - 159, 168, 176, 255, 171, 175, 186, 255, - 128, 131, 133, 140, 143, 144, 147, 168, - 170, 176, 178, 179, 181, 185, 188, 191, - 144, 151, 128, 132, 135, 136, 139, 141, - 157, 163, 166, 172, 176, 180, 128, 138, - 144, 153, 134, 136, 143, 154, 255, 128, - 181, 184, 255, 129, 151, 158, 255, 129, - 131, 133, 143, 154, 255, 128, 137, 128, - 153, 157, 171, 176, 185, 160, 255, 170, - 190, 192, 255, 128, 184, 128, 136, 138, - 182, 184, 191, 128, 144, 153, 178, 255, - 168, 144, 145, 183, 255, 128, 142, 145, - 149, 129, 141, 144, 146, 147, 148, 175, - 255, 132, 255, 128, 144, 129, 143, 144, - 153, 145, 152, 135, 255, 160, 168, 169, - 171, 172, 173, 174, 188, 189, 190, 191, - 161, 167, 185, 255, 128, 158, 160, 169, - 144, 173, 176, 180, 128, 131, 144, 153, - 163, 183, 189, 255, 144, 255, 133, 143, - 191, 255, 143, 159, 160, 128, 129, 255, - 159, 160, 171, 172, 255, 173, 255, 179, - 255, 128, 176, 177, 178, 128, 129, 171, - 175, 189, 255, 128, 136, 144, 153, 157, - 158, 133, 134, 137, 144, 145, 146, 147, - 148, 149, 154, 155, 156, 157, 158, 159, - 168, 169, 170, 150, 153, 165, 169, 173, - 178, 187, 255, 131, 132, 140, 169, 174, - 255, 130, 132, 149, 157, 173, 186, 188, - 160, 161, 163, 164, 167, 168, 132, 134, - 149, 157, 186, 139, 140, 191, 255, 134, - 128, 132, 138, 144, 146, 255, 166, 167, - 129, 155, 187, 149, 181, 143, 175, 137, - 169, 131, 140, 141, 192, 255, 128, 182, - 187, 255, 173, 180, 182, 255, 132, 155, - 159, 161, 175, 128, 160, 163, 164, 165, - 184, 185, 186, 161, 162, 128, 134, 136, - 152, 155, 161, 163, 164, 166, 170, 133, - 143, 151, 255, 139, 143, 154, 255, 164, - 167, 185, 187, 128, 131, 133, 159, 161, - 162, 169, 178, 180, 183, 130, 135, 137, - 139, 148, 151, 153, 155, 157, 159, 164, - 190, 141, 143, 145, 146, 161, 162, 167, - 170, 172, 178, 180, 183, 185, 188, 128, - 137, 139, 155, 161, 163, 165, 169, 171, - 187, 155, 156, 151, 255, 156, 157, 160, - 181, 255, 186, 187, 255, 162, 255, 160, - 168, 161, 167, 158, 255, 160, 132, 135, - 133, 134, 176, 255, 170, 181, 186, 191, - 176, 180, 182, 183, 186, 189, 134, 140, - 136, 138, 142, 161, 163, 255, 130, 137, - 136, 255, 144, 170, 176, 178, 160, 191, - 128, 138, 174, 175, 177, 255, 148, 150, - 164, 167, 173, 176, 185, 189, 190, 192, - 255, 144, 146, 175, 141, 255, 166, 176, - 178, 255, 186, 138, 170, 180, 181, 160, - 161, 162, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 184, 186, 187, - 188, 189, 190, 183, 185, 154, 164, 168, - 128, 149, 128, 152, 189, 132, 185, 144, - 152, 161, 177, 255, 169, 177, 129, 132, - 141, 142, 145, 146, 179, 181, 186, 188, - 190, 255, 142, 156, 157, 159, 161, 176, - 177, 133, 138, 143, 144, 147, 168, 170, - 176, 178, 179, 181, 182, 184, 185, 158, - 153, 156, 178, 180, 189, 133, 141, 143, - 145, 147, 168, 170, 176, 178, 179, 181, - 185, 144, 185, 160, 161, 189, 133, 140, - 143, 144, 147, 168, 170, 176, 178, 179, - 181, 185, 177, 156, 157, 159, 161, 131, - 156, 133, 138, 142, 144, 146, 149, 153, - 154, 158, 159, 163, 164, 168, 170, 174, - 185, 144, 189, 133, 140, 142, 144, 146, - 168, 170, 185, 152, 154, 160, 161, 128, - 189, 133, 140, 142, 144, 146, 168, 170, - 179, 181, 185, 158, 160, 161, 177, 178, - 189, 133, 140, 142, 144, 146, 186, 142, - 148, 150, 159, 161, 186, 191, 189, 133, - 150, 154, 177, 179, 187, 128, 134, 129, - 176, 178, 179, 132, 138, 141, 165, 167, - 189, 129, 130, 135, 136, 148, 151, 153, - 159, 161, 163, 170, 171, 173, 176, 178, - 179, 134, 128, 132, 156, 159, 128, 128, - 135, 137, 172, 136, 140, 128, 129, 130, - 131, 137, 138, 139, 140, 141, 142, 143, - 144, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 184, 188, - 189, 190, 191, 132, 152, 185, 187, 191, - 128, 170, 161, 144, 149, 154, 157, 165, - 166, 174, 176, 181, 255, 130, 141, 143, - 159, 155, 255, 128, 140, 142, 145, 160, - 177, 128, 145, 160, 172, 174, 176, 151, - 156, 170, 128, 168, 176, 255, 138, 255, - 128, 150, 160, 255, 149, 255, 167, 133, - 179, 133, 139, 131, 160, 174, 175, 186, - 255, 166, 255, 128, 163, 141, 143, 154, - 189, 169, 172, 174, 177, 181, 182, 129, - 130, 132, 133, 134, 176, 177, 178, 179, - 180, 181, 182, 183, 177, 191, 165, 170, - 175, 177, 180, 255, 168, 174, 176, 255, - 128, 134, 136, 142, 144, 150, 152, 158, - 128, 129, 130, 131, 132, 133, 134, 135, - 144, 145, 255, 133, 135, 161, 169, 177, - 181, 184, 188, 160, 151, 154, 128, 146, - 147, 148, 152, 153, 154, 155, 156, 158, - 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 129, 255, 141, 143, 160, 169, - 172, 255, 191, 128, 174, 130, 134, 139, - 163, 255, 130, 179, 187, 189, 178, 183, - 138, 165, 176, 255, 135, 159, 189, 255, - 132, 178, 143, 160, 164, 166, 175, 186, - 190, 128, 168, 186, 128, 130, 132, 139, - 160, 182, 190, 255, 176, 178, 180, 183, - 184, 190, 255, 128, 130, 155, 157, 160, - 170, 178, 180, 128, 162, 164, 169, 171, - 172, 173, 174, 175, 180, 181, 182, 183, - 185, 186, 187, 188, 189, 190, 191, 165, - 179, 157, 190, 128, 134, 147, 151, 159, - 168, 170, 182, 184, 188, 176, 180, 182, - 255, 161, 186, 144, 145, 146, 147, 148, - 150, 151, 152, 155, 157, 158, 160, 170, - 171, 172, 175, 161, 169, 128, 129, 130, - 131, 133, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 152, 156, - 157, 160, 161, 162, 163, 164, 166, 168, - 169, 170, 171, 172, 173, 174, 176, 177, - 153, 155, 178, 179, 145, 255, 139, 143, - 182, 255, 158, 175, 128, 144, 147, 149, - 151, 153, 179, 128, 135, 137, 164, 128, - 130, 131, 132, 133, 134, 135, 136, 138, - 139, 140, 141, 144, 145, 146, 147, 150, - 151, 152, 153, 154, 156, 162, 163, 171, - 176, 177, 178, 131, 183, 131, 175, 144, - 168, 131, 166, 182, 144, 178, 131, 178, - 154, 156, 129, 132, 128, 145, 147, 171, - 159, 255, 144, 157, 161, 135, 138, 128, - 175, 135, 132, 133, 128, 174, 152, 155, - 132, 128, 170, 128, 153, 160, 190, 192, - 255, 128, 136, 138, 174, 128, 178, 255, - 160, 168, 169, 171, 172, 173, 174, 188, - 189, 190, 191, 161, 167, 144, 173, 128, - 131, 163, 183, 189, 255, 133, 143, 145, - 255, 147, 159, 128, 176, 177, 178, 128, - 136, 144, 153, 144, 145, 146, 147, 148, - 149, 154, 155, 156, 157, 158, 159, 150, - 153, 131, 140, 255, 160, 163, 164, 165, - 184, 185, 186, 161, 162, 133, 255, 170, - 181, 183, 186, 128, 150, 152, 182, 184, - 255, 192, 255, 128, 255, 173, 130, 133, - 146, 159, 165, 171, 175, 255, 181, 190, - 184, 185, 192, 255, 140, 134, 138, 142, - 161, 163, 255, 182, 130, 136, 137, 176, - 151, 152, 154, 160, 190, 136, 144, 192, - 255, 135, 129, 130, 132, 133, 144, 170, - 176, 178, 144, 154, 160, 191, 128, 169, - 174, 255, 148, 169, 157, 158, 189, 190, - 192, 255, 144, 255, 139, 140, 178, 255, - 186, 128, 181, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 128, 173, 128, 155, 160, - 180, 182, 189, 148, 161, 163, 255, 176, - 164, 165, 132, 169, 177, 141, 142, 145, - 146, 179, 181, 186, 187, 158, 133, 134, - 137, 138, 143, 150, 152, 155, 164, 165, - 178, 255, 188, 129, 131, 133, 138, 143, - 144, 147, 168, 170, 176, 178, 179, 181, - 182, 184, 185, 190, 255, 157, 131, 134, - 137, 138, 142, 144, 146, 152, 159, 165, - 182, 255, 129, 131, 133, 141, 143, 145, - 147, 168, 170, 176, 178, 179, 181, 185, - 188, 255, 134, 138, 142, 143, 145, 159, - 164, 165, 176, 184, 186, 255, 129, 131, - 133, 140, 143, 144, 147, 168, 170, 176, - 178, 179, 181, 185, 188, 191, 177, 128, - 132, 135, 136, 139, 141, 150, 151, 156, - 157, 159, 163, 166, 175, 156, 130, 131, - 133, 138, 142, 144, 146, 149, 153, 154, - 158, 159, 163, 164, 168, 170, 174, 185, - 190, 191, 144, 151, 128, 130, 134, 136, - 138, 141, 166, 175, 128, 131, 133, 140, - 142, 144, 146, 168, 170, 185, 189, 255, - 133, 137, 151, 142, 148, 155, 159, 164, - 165, 176, 255, 128, 131, 133, 140, 142, - 144, 146, 168, 170, 179, 181, 185, 188, - 191, 158, 128, 132, 134, 136, 138, 141, - 149, 150, 160, 163, 166, 175, 177, 178, - 129, 131, 133, 140, 142, 144, 146, 186, - 189, 255, 133, 137, 143, 147, 152, 158, - 164, 165, 176, 185, 192, 255, 189, 130, - 131, 133, 150, 154, 177, 179, 187, 138, - 150, 128, 134, 143, 148, 152, 159, 166, - 175, 178, 179, 129, 186, 128, 142, 144, - 153, 132, 138, 141, 165, 167, 129, 130, - 135, 136, 148, 151, 153, 159, 161, 163, - 170, 171, 173, 185, 187, 189, 134, 128, - 132, 136, 141, 144, 153, 156, 159, 128, - 181, 183, 185, 152, 153, 160, 169, 190, - 191, 128, 135, 137, 172, 177, 191, 128, - 132, 134, 151, 153, 188, 134, 128, 129, - 130, 131, 137, 138, 139, 140, 141, 142, - 143, 144, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 173, 175, 176, 177, - 178, 179, 181, 182, 183, 188, 189, 190, - 191, 132, 152, 172, 184, 185, 187, 128, - 191, 128, 137, 144, 255, 158, 159, 134, - 187, 136, 140, 142, 143, 137, 151, 153, - 142, 143, 158, 159, 137, 177, 142, 143, - 182, 183, 191, 255, 128, 130, 133, 136, - 150, 152, 255, 145, 150, 151, 155, 156, - 160, 168, 178, 255, 128, 143, 160, 255, - 182, 183, 190, 255, 129, 255, 173, 174, - 192, 255, 129, 154, 160, 255, 171, 173, - 185, 255, 128, 140, 142, 148, 160, 180, - 128, 147, 160, 172, 174, 176, 178, 179, - 148, 150, 152, 155, 158, 159, 170, 255, - 139, 141, 144, 153, 160, 255, 184, 255, - 128, 170, 176, 255, 182, 255, 128, 158, - 160, 171, 176, 187, 134, 173, 176, 180, - 128, 171, 176, 255, 138, 143, 155, 255, - 128, 155, 160, 255, 159, 189, 190, 192, - 255, 167, 128, 137, 144, 153, 176, 189, - 140, 143, 154, 170, 180, 255, 180, 255, - 128, 183, 128, 137, 141, 189, 128, 136, - 144, 146, 148, 182, 184, 185, 128, 181, - 187, 191, 150, 151, 158, 159, 152, 154, - 156, 158, 134, 135, 142, 143, 190, 255, - 190, 128, 180, 182, 188, 130, 132, 134, - 140, 144, 147, 150, 155, 160, 172, 178, - 180, 182, 188, 128, 129, 130, 131, 132, - 133, 134, 176, 177, 178, 179, 180, 181, - 182, 183, 191, 255, 129, 147, 149, 176, - 178, 190, 192, 255, 144, 156, 161, 144, - 156, 165, 176, 130, 135, 149, 164, 166, - 168, 138, 147, 152, 157, 170, 185, 188, - 191, 142, 133, 137, 160, 255, 137, 255, - 128, 174, 176, 255, 159, 165, 170, 180, - 255, 167, 173, 128, 165, 176, 255, 168, - 174, 176, 190, 192, 255, 128, 150, 160, - 166, 168, 174, 176, 182, 184, 190, 128, - 134, 136, 142, 144, 150, 152, 158, 160, - 191, 128, 129, 130, 131, 132, 133, 134, - 135, 144, 145, 255, 133, 135, 161, 175, - 177, 181, 184, 188, 160, 151, 152, 187, - 192, 255, 133, 173, 177, 255, 143, 159, - 187, 255, 176, 191, 182, 183, 184, 191, - 192, 255, 150, 255, 128, 146, 147, 148, - 152, 153, 154, 155, 156, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, - 129, 255, 141, 255, 144, 189, 141, 143, - 172, 255, 191, 128, 175, 180, 189, 151, - 159, 162, 255, 175, 137, 138, 184, 255, - 183, 255, 168, 255, 128, 179, 188, 134, - 143, 154, 159, 184, 186, 190, 255, 128, - 173, 176, 255, 148, 159, 189, 255, 129, - 142, 154, 159, 191, 255, 128, 182, 128, - 141, 144, 153, 160, 182, 186, 255, 128, - 130, 155, 157, 160, 175, 178, 182, 129, - 134, 137, 142, 145, 150, 160, 166, 168, - 174, 176, 255, 155, 166, 175, 128, 170, - 172, 173, 176, 185, 158, 159, 160, 255, - 164, 175, 135, 138, 188, 255, 164, 169, - 171, 172, 173, 174, 175, 180, 181, 182, - 183, 184, 185, 187, 188, 189, 190, 191, - 165, 186, 174, 175, 154, 255, 190, 128, - 134, 147, 151, 157, 168, 170, 182, 184, - 188, 128, 129, 131, 132, 134, 255, 147, - 255, 190, 255, 144, 145, 136, 175, 188, - 255, 128, 143, 160, 175, 179, 180, 141, - 143, 176, 180, 182, 255, 189, 255, 191, - 144, 153, 161, 186, 129, 154, 166, 255, - 191, 255, 130, 135, 138, 143, 146, 151, - 154, 156, 144, 145, 146, 147, 148, 150, - 151, 152, 155, 157, 158, 160, 170, 171, - 172, 175, 161, 169, 128, 129, 130, 131, - 133, 135, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 152, 156, - 157, 160, 161, 162, 163, 164, 166, 168, - 169, 170, 171, 172, 173, 174, 176, 177, - 153, 155, 178, 179, 128, 139, 141, 166, - 168, 186, 188, 189, 191, 255, 142, 143, - 158, 255, 187, 255, 128, 180, 189, 128, - 156, 160, 255, 145, 159, 161, 255, 128, - 159, 176, 255, 139, 143, 187, 255, 128, - 157, 160, 255, 144, 132, 135, 150, 255, - 158, 159, 170, 175, 148, 151, 188, 255, - 128, 167, 176, 255, 164, 255, 183, 255, - 128, 149, 160, 167, 136, 188, 128, 133, - 138, 181, 183, 184, 191, 255, 150, 159, - 183, 255, 128, 158, 160, 178, 180, 181, - 128, 149, 160, 185, 128, 183, 190, 191, - 191, 128, 131, 133, 134, 140, 147, 149, - 151, 153, 179, 184, 186, 160, 188, 128, - 156, 128, 135, 137, 166, 128, 181, 128, - 149, 160, 178, 128, 145, 128, 178, 129, - 130, 131, 132, 133, 135, 136, 138, 139, - 140, 141, 144, 145, 146, 147, 150, 151, - 152, 153, 154, 155, 156, 162, 163, 171, - 176, 177, 178, 128, 134, 135, 165, 176, - 190, 144, 168, 176, 185, 128, 180, 182, - 191, 182, 144, 179, 155, 133, 137, 141, - 143, 157, 255, 190, 128, 145, 147, 183, - 136, 128, 134, 138, 141, 143, 157, 159, - 168, 176, 255, 171, 175, 186, 255, 128, - 131, 133, 140, 143, 144, 147, 168, 170, - 176, 178, 179, 181, 185, 188, 191, 144, - 151, 128, 132, 135, 136, 139, 141, 157, - 163, 166, 172, 176, 180, 128, 138, 144, - 153, 134, 136, 143, 154, 255, 128, 181, - 184, 255, 129, 151, 158, 255, 129, 131, - 133, 143, 154, 255, 128, 137, 128, 153, - 157, 171, 176, 185, 160, 255, 170, 190, - 192, 255, 128, 184, 128, 136, 138, 182, - 184, 191, 128, 144, 153, 178, 255, 168, - 144, 145, 183, 255, 128, 142, 145, 149, - 129, 141, 144, 146, 147, 148, 175, 255, - 132, 255, 128, 144, 129, 143, 144, 153, - 145, 152, 135, 255, 160, 168, 169, 171, - 172, 173, 174, 188, 189, 190, 191, 161, - 167, 185, 255, 128, 158, 160, 169, 144, - 173, 176, 180, 128, 131, 144, 153, 163, - 183, 189, 255, 144, 255, 133, 143, 191, - 255, 143, 159, 160, 128, 129, 255, 159, - 160, 171, 172, 255, 173, 255, 179, 255, - 128, 176, 177, 178, 128, 129, 171, 175, - 189, 255, 128, 136, 144, 153, 157, 158, - 133, 134, 137, 144, 145, 146, 147, 148, - 149, 154, 155, 156, 157, 158, 159, 168, - 169, 170, 150, 153, 165, 169, 173, 178, - 187, 255, 131, 132, 140, 169, 174, 255, - 130, 132, 149, 157, 173, 186, 188, 160, - 161, 163, 164, 167, 168, 132, 134, 149, - 157, 186, 139, 140, 191, 255, 134, 128, - 132, 138, 144, 146, 255, 166, 167, 129, - 155, 187, 149, 181, 143, 175, 137, 169, - 131, 140, 141, 192, 255, 128, 182, 187, - 255, 173, 180, 182, 255, 132, 155, 159, - 161, 175, 128, 160, 163, 164, 165, 184, - 185, 186, 161, 162, 128, 134, 136, 152, - 155, 161, 163, 164, 166, 170, 133, 143, - 151, 255, 139, 143, 154, 255, 164, 167, - 185, 187, 128, 131, 133, 159, 161, 162, - 169, 178, 180, 183, 130, 135, 137, 139, - 148, 151, 153, 155, 157, 159, 164, 190, - 141, 143, 145, 146, 161, 162, 167, 170, - 172, 178, 180, 183, 185, 188, 128, 137, - 139, 155, 161, 163, 165, 169, 171, 187, - 155, 156, 151, 255, 156, 157, 160, 181, - 255, 186, 187, 255, 162, 255, 160, 168, - 161, 167, 158, 255, 160, 132, 135, 133, - 134, 176, 255, 128, 191, 154, 164, 168, - 128, 149, 150, 191, 128, 152, 153, 191, - 181, 128, 159, 160, 189, 190, 191, 189, - 128, 131, 132, 185, 186, 191, 144, 128, - 151, 152, 161, 162, 176, 177, 255, 169, - 177, 129, 132, 141, 142, 145, 146, 179, - 181, 186, 188, 190, 191, 192, 255, 142, - 158, 128, 155, 156, 161, 162, 175, 176, - 177, 178, 191, 169, 177, 180, 183, 128, - 132, 133, 138, 139, 142, 143, 144, 145, - 146, 147, 185, 186, 191, 157, 128, 152, - 153, 158, 159, 177, 178, 180, 181, 191, - 142, 146, 169, 177, 180, 189, 128, 132, - 133, 185, 186, 191, 144, 185, 128, 159, - 160, 161, 162, 191, 169, 177, 180, 189, - 128, 132, 133, 140, 141, 142, 143, 144, - 145, 146, 147, 185, 186, 191, 158, 177, - 128, 155, 156, 161, 162, 191, 131, 145, - 155, 157, 128, 132, 133, 138, 139, 141, - 142, 149, 150, 152, 153, 159, 160, 162, - 163, 164, 165, 167, 168, 170, 171, 173, - 174, 185, 186, 191, 144, 128, 191, 141, - 145, 169, 189, 128, 132, 133, 185, 186, - 191, 128, 151, 152, 154, 155, 159, 160, - 161, 162, 191, 128, 141, 145, 169, 180, - 189, 129, 132, 133, 185, 186, 191, 158, - 128, 159, 160, 161, 162, 176, 177, 178, - 179, 191, 141, 145, 189, 128, 132, 133, - 186, 187, 191, 142, 128, 147, 148, 150, - 151, 158, 159, 161, 162, 185, 186, 191, - 178, 188, 128, 132, 133, 150, 151, 153, - 154, 189, 190, 191, 128, 134, 135, 191, - 128, 177, 129, 179, 180, 191, 128, 131, - 137, 141, 152, 160, 164, 166, 172, 177, - 189, 129, 132, 133, 134, 135, 138, 139, - 147, 148, 167, 168, 169, 170, 179, 180, - 191, 133, 128, 134, 135, 155, 156, 159, - 160, 191, 128, 129, 191, 136, 128, 172, - 173, 191, 128, 135, 136, 140, 141, 191, - 191, 128, 170, 171, 190, 161, 128, 143, - 144, 149, 150, 153, 154, 157, 158, 164, - 165, 166, 167, 173, 174, 176, 177, 180, - 181, 255, 130, 141, 143, 159, 134, 187, - 136, 140, 142, 143, 137, 151, 153, 142, - 143, 158, 159, 137, 177, 191, 142, 143, - 182, 183, 192, 255, 129, 151, 128, 133, - 134, 135, 136, 255, 145, 150, 151, 155, - 191, 192, 255, 128, 143, 144, 159, 160, - 255, 182, 183, 190, 191, 192, 255, 128, - 129, 255, 173, 174, 192, 255, 128, 129, - 154, 155, 159, 160, 255, 171, 173, 185, - 191, 192, 255, 141, 128, 145, 146, 159, - 160, 177, 178, 191, 173, 128, 145, 146, - 159, 160, 176, 177, 191, 128, 179, 180, - 191, 151, 156, 128, 191, 128, 159, 160, - 255, 184, 191, 192, 255, 169, 128, 170, - 171, 175, 176, 255, 182, 191, 192, 255, - 128, 158, 159, 191, 128, 143, 144, 173, - 174, 175, 176, 180, 181, 191, 128, 171, - 172, 175, 176, 255, 138, 191, 192, 255, - 128, 150, 151, 159, 160, 255, 149, 191, - 192, 255, 167, 128, 191, 128, 132, 133, - 179, 180, 191, 128, 132, 133, 139, 140, - 191, 128, 130, 131, 160, 161, 173, 174, - 175, 176, 185, 186, 255, 166, 191, 192, - 255, 128, 163, 164, 191, 128, 140, 141, - 143, 144, 153, 154, 189, 190, 191, 128, - 136, 137, 191, 173, 128, 168, 169, 177, - 178, 180, 181, 182, 183, 191, 0, 127, - 192, 255, 150, 151, 158, 159, 152, 154, - 156, 158, 134, 135, 142, 143, 190, 191, - 192, 255, 181, 189, 191, 128, 190, 133, - 181, 128, 129, 130, 140, 141, 143, 144, - 147, 148, 149, 150, 155, 156, 159, 160, - 172, 173, 177, 178, 188, 189, 191, 177, - 191, 128, 190, 128, 143, 144, 156, 157, - 191, 130, 135, 148, 164, 166, 168, 128, - 137, 138, 149, 150, 151, 152, 157, 158, - 169, 170, 185, 186, 187, 188, 191, 142, - 128, 132, 133, 137, 138, 159, 160, 255, - 137, 191, 192, 255, 175, 128, 255, 159, - 165, 170, 175, 177, 180, 191, 192, 255, - 166, 173, 128, 167, 168, 175, 176, 255, - 168, 174, 176, 191, 192, 255, 167, 175, - 183, 191, 128, 150, 151, 159, 160, 190, - 135, 143, 151, 128, 158, 159, 191, 128, - 132, 133, 135, 136, 160, 161, 169, 170, - 176, 177, 181, 182, 183, 184, 188, 189, - 191, 160, 151, 154, 187, 192, 255, 128, - 132, 133, 173, 174, 176, 177, 255, 143, - 159, 187, 191, 192, 255, 128, 175, 176, - 191, 150, 191, 192, 255, 141, 191, 192, - 255, 128, 143, 144, 189, 190, 191, 141, - 143, 160, 169, 172, 191, 192, 255, 191, - 128, 174, 175, 190, 128, 157, 158, 159, - 160, 255, 176, 191, 192, 255, 128, 150, - 151, 159, 160, 161, 162, 255, 175, 137, - 138, 184, 191, 192, 255, 128, 182, 183, - 255, 130, 134, 139, 163, 191, 192, 255, - 128, 129, 130, 179, 180, 191, 187, 189, - 128, 177, 178, 183, 184, 191, 128, 137, - 138, 165, 166, 175, 176, 255, 135, 159, - 189, 191, 192, 255, 128, 131, 132, 178, - 179, 191, 143, 165, 191, 128, 159, 160, - 175, 176, 185, 186, 190, 128, 168, 169, - 191, 131, 186, 128, 139, 140, 159, 160, - 182, 183, 189, 190, 255, 176, 178, 180, - 183, 184, 190, 191, 192, 255, 129, 128, - 130, 131, 154, 155, 157, 158, 159, 160, - 170, 171, 177, 178, 180, 181, 191, 128, - 167, 175, 129, 134, 135, 136, 137, 142, - 143, 144, 145, 150, 151, 159, 160, 255, - 155, 166, 175, 128, 162, 163, 191, 164, - 175, 135, 138, 188, 191, 192, 255, 174, - 175, 154, 191, 192, 255, 157, 169, 183, - 189, 191, 128, 134, 135, 146, 147, 151, - 152, 158, 159, 190, 130, 133, 128, 255, - 178, 191, 192, 255, 128, 146, 147, 255, - 190, 191, 192, 255, 128, 143, 144, 255, - 144, 145, 136, 175, 188, 191, 192, 255, - 181, 128, 175, 176, 255, 189, 191, 192, - 255, 128, 160, 161, 186, 187, 191, 128, - 129, 154, 155, 165, 166, 255, 191, 192, - 255, 128, 129, 130, 135, 136, 137, 138, - 143, 144, 145, 146, 151, 152, 153, 154, - 156, 157, 191, 128, 191, 128, 129, 130, - 131, 133, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 152, 156, - 157, 160, 161, 162, 163, 164, 166, 168, - 169, 170, 171, 172, 173, 174, 176, 177, - 132, 151, 153, 155, 158, 175, 178, 179, - 180, 191, 140, 167, 187, 190, 128, 255, - 142, 143, 158, 191, 192, 255, 187, 191, - 192, 255, 128, 180, 181, 191, 128, 156, - 157, 159, 160, 255, 145, 191, 192, 255, - 128, 159, 160, 175, 176, 255, 139, 143, - 182, 191, 192, 255, 144, 132, 135, 150, - 191, 192, 255, 158, 175, 148, 151, 188, - 191, 192, 255, 128, 167, 168, 175, 176, - 255, 164, 191, 192, 255, 183, 191, 192, - 255, 128, 149, 150, 159, 160, 167, 168, - 191, 136, 182, 188, 128, 133, 134, 137, - 138, 184, 185, 190, 191, 255, 150, 159, - 183, 191, 192, 255, 179, 128, 159, 160, - 181, 182, 191, 128, 149, 150, 159, 160, - 185, 186, 191, 128, 183, 184, 189, 190, - 191, 128, 148, 152, 129, 143, 144, 179, - 180, 191, 128, 159, 160, 188, 189, 191, - 128, 156, 157, 191, 136, 128, 164, 165, - 191, 128, 181, 182, 191, 128, 149, 150, - 159, 160, 178, 179, 191, 128, 145, 146, - 191, 128, 178, 179, 191, 128, 130, 131, - 132, 133, 134, 135, 136, 138, 139, 140, - 141, 144, 145, 146, 147, 150, 151, 152, - 153, 154, 156, 162, 163, 171, 176, 177, - 178, 129, 191, 128, 130, 131, 183, 184, - 191, 128, 130, 131, 175, 176, 191, 128, - 143, 144, 168, 169, 191, 128, 130, 131, - 166, 167, 191, 182, 128, 143, 144, 178, - 179, 191, 128, 130, 131, 178, 179, 191, - 128, 154, 156, 129, 132, 133, 191, 146, - 128, 171, 172, 191, 135, 137, 142, 158, - 128, 168, 169, 175, 176, 255, 159, 191, - 192, 255, 144, 128, 156, 157, 161, 162, - 191, 128, 134, 135, 138, 139, 191, 128, - 175, 176, 191, 134, 128, 131, 132, 135, - 136, 191, 128, 174, 175, 191, 128, 151, - 152, 155, 156, 191, 132, 128, 191, 128, - 170, 171, 191, 128, 153, 154, 191, 160, - 190, 192, 255, 128, 184, 185, 191, 137, - 128, 174, 175, 191, 128, 129, 177, 178, - 255, 144, 191, 192, 255, 128, 142, 143, - 144, 145, 146, 149, 129, 148, 150, 191, - 175, 191, 192, 255, 132, 191, 192, 255, - 128, 144, 129, 143, 145, 191, 144, 153, - 128, 143, 145, 152, 154, 191, 135, 191, - 192, 255, 160, 168, 169, 171, 172, 173, - 174, 188, 189, 190, 191, 128, 159, 161, - 167, 170, 187, 185, 191, 192, 255, 128, - 143, 144, 173, 174, 191, 128, 131, 132, - 162, 163, 183, 184, 188, 189, 255, 133, - 143, 145, 191, 192, 255, 128, 146, 147, - 159, 160, 191, 160, 128, 191, 128, 129, - 191, 192, 255, 159, 160, 171, 128, 170, - 172, 191, 192, 255, 173, 191, 192, 255, - 179, 191, 192, 255, 128, 176, 177, 178, - 129, 191, 128, 129, 130, 191, 171, 175, - 189, 191, 192, 255, 128, 136, 137, 143, - 144, 153, 154, 191, 144, 145, 146, 147, - 148, 149, 154, 155, 156, 157, 158, 159, - 128, 143, 150, 153, 160, 191, 149, 157, - 173, 186, 188, 160, 161, 163, 164, 167, - 168, 132, 134, 149, 157, 186, 191, 139, - 140, 192, 255, 133, 145, 128, 134, 135, - 137, 138, 255, 166, 167, 129, 155, 187, - 149, 181, 143, 175, 137, 169, 131, 140, - 191, 192, 255, 160, 163, 164, 165, 184, - 185, 186, 128, 159, 161, 162, 166, 191, - 133, 191, 192, 255, 132, 160, 163, 167, - 179, 184, 186, 128, 164, 165, 168, 169, - 187, 188, 191, 130, 135, 137, 139, 144, - 147, 151, 153, 155, 157, 159, 163, 171, - 179, 184, 189, 191, 128, 140, 141, 148, - 149, 160, 161, 164, 165, 166, 167, 190, - 138, 164, 170, 128, 155, 156, 160, 161, - 187, 188, 191, 128, 191, 155, 156, 128, - 191, 151, 191, 192, 255, 156, 157, 160, - 128, 191, 181, 191, 192, 255, 158, 159, - 186, 128, 185, 187, 191, 192, 255, 162, - 191, 192, 255, 160, 168, 128, 159, 161, - 167, 169, 191, 158, 191, 192, 255, 123, - 128, 191, 128, 191, 128, 191, 128, 191, - 128, 191, 10, 123, 128, 191, 128, 191, - 128, 191, 123, 123, 10, 123, 128, 191, - 128, 191, 128, 191, 123, 123, 170, 181, - 183, 186, 128, 150, 152, 182, 184, 255, - 192, 255, 128, 255, 173, 130, 133, 146, - 159, 165, 171, 175, 255, 181, 190, 184, - 185, 192, 255, 140, 134, 138, 142, 161, - 163, 255, 182, 130, 136, 137, 176, 151, - 152, 154, 160, 190, 136, 144, 192, 255, - 135, 129, 130, 132, 133, 144, 170, 176, - 178, 144, 154, 160, 191, 128, 169, 174, - 255, 148, 169, 157, 158, 189, 190, 192, - 255, 144, 255, 139, 140, 178, 255, 186, - 128, 181, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 128, 173, 128, 155, 160, 180, - 182, 189, 148, 161, 163, 255, 176, 164, - 165, 132, 169, 177, 141, 142, 145, 146, - 179, 181, 186, 187, 158, 133, 134, 137, - 138, 143, 150, 152, 155, 164, 165, 178, - 255, 188, 129, 131, 133, 138, 143, 144, - 147, 168, 170, 176, 178, 179, 181, 182, - 184, 185, 190, 255, 157, 131, 134, 137, - 138, 142, 144, 146, 152, 159, 165, 182, - 255, 129, 131, 133, 141, 143, 145, 147, - 168, 170, 176, 178, 179, 181, 185, 188, - 255, 134, 138, 142, 143, 145, 159, 164, - 165, 176, 184, 186, 255, 129, 131, 133, - 140, 143, 144, 147, 168, 170, 176, 178, - 179, 181, 185, 188, 191, 177, 128, 132, - 135, 136, 139, 141, 150, 151, 156, 157, - 159, 163, 166, 175, 156, 130, 131, 133, - 138, 142, 144, 146, 149, 153, 154, 158, - 159, 163, 164, 168, 170, 174, 185, 190, - 191, 144, 151, 128, 130, 134, 136, 138, - 141, 166, 175, 128, 131, 133, 140, 142, - 144, 146, 168, 170, 185, 189, 255, 133, - 137, 151, 142, 148, 155, 159, 164, 165, - 176, 255, 128, 131, 133, 140, 142, 144, - 146, 168, 170, 179, 181, 185, 188, 191, - 158, 128, 132, 134, 136, 138, 141, 149, - 150, 160, 163, 166, 175, 177, 178, 129, - 131, 133, 140, 142, 144, 146, 186, 189, - 255, 133, 137, 143, 147, 152, 158, 164, - 165, 176, 185, 192, 255, 189, 130, 131, - 133, 150, 154, 177, 179, 187, 138, 150, - 128, 134, 143, 148, 152, 159, 166, 175, - 178, 179, 129, 186, 128, 142, 144, 153, - 132, 138, 141, 165, 167, 129, 130, 135, - 136, 148, 151, 153, 159, 161, 163, 170, - 171, 173, 185, 187, 189, 134, 128, 132, - 136, 141, 144, 153, 156, 159, 128, 181, - 183, 185, 152, 153, 160, 169, 190, 191, - 128, 135, 137, 172, 177, 191, 128, 132, - 134, 151, 153, 188, 134, 128, 129, 130, - 131, 137, 138, 139, 140, 141, 142, 143, - 144, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 173, 175, 176, 177, 178, - 179, 181, 182, 183, 188, 189, 190, 191, - 132, 152, 172, 184, 185, 187, 128, 191, - 128, 137, 144, 255, 158, 159, 134, 187, - 136, 140, 142, 143, 137, 151, 153, 142, - 143, 158, 159, 137, 177, 142, 143, 182, - 183, 191, 255, 128, 130, 133, 136, 150, - 152, 255, 145, 150, 151, 155, 156, 160, - 168, 178, 255, 128, 143, 160, 255, 182, - 183, 190, 255, 129, 255, 173, 174, 192, - 255, 129, 154, 160, 255, 171, 173, 185, - 255, 128, 140, 142, 148, 160, 180, 128, - 147, 160, 172, 174, 176, 178, 179, 148, - 150, 152, 155, 158, 159, 170, 255, 139, - 141, 144, 153, 160, 255, 184, 255, 128, - 170, 176, 255, 182, 255, 128, 158, 160, - 171, 176, 187, 134, 173, 176, 180, 128, - 171, 176, 255, 138, 143, 155, 255, 128, - 155, 160, 255, 159, 189, 190, 192, 255, - 167, 128, 137, 144, 153, 176, 189, 140, - 143, 154, 170, 180, 255, 180, 255, 128, - 183, 128, 137, 141, 189, 128, 136, 144, - 146, 148, 182, 184, 185, 128, 181, 187, - 191, 150, 151, 158, 159, 152, 154, 156, - 158, 134, 135, 142, 143, 190, 255, 190, - 128, 180, 182, 188, 130, 132, 134, 140, - 144, 147, 150, 155, 160, 172, 178, 180, - 182, 188, 128, 129, 130, 131, 132, 133, - 134, 176, 177, 178, 179, 180, 181, 182, - 183, 191, 255, 129, 147, 149, 176, 178, - 190, 192, 255, 144, 156, 161, 144, 156, - 165, 176, 130, 135, 149, 164, 166, 168, - 138, 147, 152, 157, 170, 185, 188, 191, - 142, 133, 137, 160, 255, 137, 255, 128, - 174, 176, 255, 159, 165, 170, 180, 255, - 167, 173, 128, 165, 176, 255, 168, 174, - 176, 190, 192, 255, 128, 150, 160, 166, - 168, 174, 176, 182, 184, 190, 128, 134, - 136, 142, 144, 150, 152, 158, 160, 191, - 128, 129, 130, 131, 132, 133, 134, 135, - 144, 145, 255, 133, 135, 161, 175, 177, - 181, 184, 188, 160, 151, 152, 187, 192, - 255, 133, 173, 177, 255, 143, 159, 187, - 255, 176, 191, 182, 183, 184, 191, 192, - 255, 150, 255, 128, 146, 147, 148, 152, - 153, 154, 155, 156, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 129, - 255, 141, 255, 144, 189, 141, 143, 172, - 255, 191, 128, 175, 180, 189, 151, 159, - 162, 255, 175, 137, 138, 184, 255, 183, - 255, 168, 255, 128, 179, 188, 134, 143, - 154, 159, 184, 186, 190, 255, 128, 173, - 176, 255, 148, 159, 189, 255, 129, 142, - 154, 159, 191, 255, 128, 182, 128, 141, - 144, 153, 160, 182, 186, 255, 128, 130, - 155, 157, 160, 175, 178, 182, 129, 134, - 137, 142, 145, 150, 160, 166, 168, 174, - 176, 255, 155, 166, 175, 128, 170, 172, - 173, 176, 185, 158, 159, 160, 255, 164, - 175, 135, 138, 188, 255, 164, 169, 171, - 172, 173, 174, 175, 180, 181, 182, 183, - 184, 185, 187, 188, 189, 190, 191, 165, - 186, 174, 175, 154, 255, 190, 128, 134, - 147, 151, 157, 168, 170, 182, 184, 188, - 128, 129, 131, 132, 134, 255, 147, 255, - 190, 255, 144, 145, 136, 175, 188, 255, - 128, 143, 160, 175, 179, 180, 141, 143, - 176, 180, 182, 255, 189, 255, 191, 144, - 153, 161, 186, 129, 154, 166, 255, 191, - 255, 130, 135, 138, 143, 146, 151, 154, - 156, 144, 145, 146, 147, 148, 150, 151, - 152, 155, 157, 158, 160, 170, 171, 172, - 175, 161, 169, 128, 129, 130, 131, 133, - 135, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 152, 156, 157, - 160, 161, 162, 163, 164, 166, 168, 169, - 170, 171, 172, 173, 174, 176, 177, 153, - 155, 178, 179, 128, 139, 141, 166, 168, - 186, 188, 189, 191, 255, 142, 143, 158, - 255, 187, 255, 128, 180, 189, 128, 156, - 160, 255, 145, 159, 161, 255, 128, 159, - 176, 255, 139, 143, 187, 255, 128, 157, - 160, 255, 144, 132, 135, 150, 255, 158, - 159, 170, 175, 148, 151, 188, 255, 128, - 167, 176, 255, 164, 255, 183, 255, 128, - 149, 160, 167, 136, 188, 128, 133, 138, - 181, 183, 184, 191, 255, 150, 159, 183, - 255, 128, 158, 160, 178, 180, 181, 128, - 149, 160, 185, 128, 183, 190, 191, 191, - 128, 131, 133, 134, 140, 147, 149, 151, - 153, 179, 184, 186, 160, 188, 128, 156, - 128, 135, 137, 166, 128, 181, 128, 149, - 160, 178, 128, 145, 128, 178, 129, 130, - 131, 132, 133, 135, 136, 138, 139, 140, - 141, 144, 145, 146, 147, 150, 151, 152, - 153, 154, 155, 156, 162, 163, 171, 176, - 177, 178, 128, 134, 135, 165, 176, 190, - 144, 168, 176, 185, 128, 180, 182, 191, - 182, 144, 179, 155, 133, 137, 141, 143, - 157, 255, 190, 128, 145, 147, 183, 136, - 128, 134, 138, 141, 143, 157, 159, 168, - 176, 255, 171, 175, 186, 255, 128, 131, - 133, 140, 143, 144, 147, 168, 170, 176, - 178, 179, 181, 185, 188, 191, 144, 151, - 128, 132, 135, 136, 139, 141, 157, 163, - 166, 172, 176, 180, 128, 138, 144, 153, - 134, 136, 143, 154, 255, 128, 181, 184, - 255, 129, 151, 158, 255, 129, 131, 133, - 143, 154, 255, 128, 137, 128, 153, 157, - 171, 176, 185, 160, 255, 170, 190, 192, - 255, 128, 184, 128, 136, 138, 182, 184, - 191, 128, 144, 153, 178, 255, 168, 144, - 145, 183, 255, 128, 142, 145, 149, 129, - 141, 144, 146, 147, 148, 175, 255, 132, - 255, 128, 144, 129, 143, 144, 153, 145, - 152, 135, 255, 160, 168, 169, 171, 172, - 173, 174, 188, 189, 190, 191, 161, 167, - 185, 255, 128, 158, 160, 169, 144, 173, - 176, 180, 128, 131, 144, 153, 163, 183, - 189, 255, 144, 255, 133, 143, 191, 255, - 143, 159, 160, 128, 129, 255, 159, 160, - 171, 172, 255, 173, 255, 179, 255, 128, - 176, 177, 178, 128, 129, 171, 175, 189, - 255, 128, 136, 144, 153, 157, 158, 133, - 134, 137, 144, 145, 146, 147, 148, 149, - 154, 155, 156, 157, 158, 159, 168, 169, - 170, 150, 153, 165, 169, 173, 178, 187, - 255, 131, 132, 140, 169, 174, 255, 130, - 132, 149, 157, 173, 186, 188, 160, 161, - 163, 164, 167, 168, 132, 134, 149, 157, - 186, 139, 140, 191, 255, 134, 128, 132, - 138, 144, 146, 255, 166, 167, 129, 155, - 187, 149, 181, 143, 175, 137, 169, 131, - 140, 141, 192, 255, 128, 182, 187, 255, - 173, 180, 182, 255, 132, 155, 159, 161, - 175, 128, 160, 163, 164, 165, 184, 185, - 186, 161, 162, 128, 134, 136, 152, 155, - 161, 163, 164, 166, 170, 133, 143, 151, - 255, 139, 143, 154, 255, 164, 167, 185, - 187, 128, 131, 133, 159, 161, 162, 169, - 178, 180, 183, 130, 135, 137, 139, 148, - 151, 153, 155, 157, 159, 164, 190, 141, - 143, 145, 146, 161, 162, 167, 170, 172, - 178, 180, 183, 185, 188, 128, 137, 139, - 155, 161, 163, 165, 169, 171, 187, 155, - 156, 151, 255, 156, 157, 160, 181, 255, - 186, 187, 255, 162, 255, 160, 168, 161, - 167, 158, 255, 160, 132, 135, 133, 134, - 176, 255, 128, 191, 154, 164, 168, 128, - 149, 150, 191, 128, 152, 153, 191, 181, - 128, 159, 160, 189, 190, 191, 189, 128, - 131, 132, 185, 186, 191, 144, 128, 151, - 152, 161, 162, 176, 177, 255, 169, 177, - 129, 132, 141, 142, 145, 146, 179, 181, - 186, 188, 190, 191, 192, 255, 142, 158, - 128, 155, 156, 161, 162, 175, 176, 177, - 178, 191, 169, 177, 180, 183, 128, 132, - 133, 138, 139, 142, 143, 144, 145, 146, - 147, 185, 186, 191, 157, 128, 152, 153, - 158, 159, 177, 178, 180, 181, 191, 142, - 146, 169, 177, 180, 189, 128, 132, 133, - 185, 186, 191, 144, 185, 128, 159, 160, - 161, 162, 191, 169, 177, 180, 189, 128, - 132, 133, 140, 141, 142, 143, 144, 145, - 146, 147, 185, 186, 191, 158, 177, 128, - 155, 156, 161, 162, 191, 131, 145, 155, - 157, 128, 132, 133, 138, 139, 141, 142, - 149, 150, 152, 153, 159, 160, 162, 163, - 164, 165, 167, 168, 170, 171, 173, 174, - 185, 186, 191, 144, 128, 191, 141, 145, - 169, 189, 128, 132, 133, 185, 186, 191, - 128, 151, 152, 154, 155, 159, 160, 161, - 162, 191, 128, 141, 145, 169, 180, 189, - 129, 132, 133, 185, 186, 191, 158, 128, - 159, 160, 161, 162, 176, 177, 178, 179, - 191, 141, 145, 189, 128, 132, 133, 186, - 187, 191, 142, 128, 147, 148, 150, 151, - 158, 159, 161, 162, 185, 186, 191, 178, - 188, 128, 132, 133, 150, 151, 153, 154, - 189, 190, 191, 128, 134, 135, 191, 128, - 177, 129, 179, 180, 191, 128, 131, 137, - 141, 152, 160, 164, 166, 172, 177, 189, - 129, 132, 133, 134, 135, 138, 139, 147, - 148, 167, 168, 169, 170, 179, 180, 191, - 133, 128, 134, 135, 155, 156, 159, 160, - 191, 128, 129, 191, 136, 128, 172, 173, - 191, 128, 135, 136, 140, 141, 191, 191, - 128, 170, 171, 190, 161, 128, 143, 144, - 149, 150, 153, 154, 157, 158, 164, 165, - 166, 167, 173, 174, 176, 177, 180, 181, - 255, 130, 141, 143, 159, 134, 187, 136, - 140, 142, 143, 137, 151, 153, 142, 143, - 158, 159, 137, 177, 191, 142, 143, 182, - 183, 192, 255, 129, 151, 128, 133, 134, - 135, 136, 255, 145, 150, 151, 155, 191, - 192, 255, 128, 143, 144, 159, 160, 255, - 182, 183, 190, 191, 192, 255, 128, 129, - 255, 173, 174, 192, 255, 128, 129, 154, - 155, 159, 160, 255, 171, 173, 185, 191, - 192, 255, 141, 128, 145, 146, 159, 160, - 177, 178, 191, 173, 128, 145, 146, 159, - 160, 176, 177, 191, 128, 179, 180, 191, - 151, 156, 128, 191, 128, 159, 160, 255, - 184, 191, 192, 255, 169, 128, 170, 171, - 175, 176, 255, 182, 191, 192, 255, 128, - 158, 159, 191, 128, 143, 144, 173, 174, - 175, 176, 180, 181, 191, 128, 171, 172, - 175, 176, 255, 138, 191, 192, 255, 128, - 150, 151, 159, 160, 255, 149, 191, 192, - 255, 167, 128, 191, 128, 132, 133, 179, - 180, 191, 128, 132, 133, 139, 140, 191, - 128, 130, 131, 160, 161, 173, 174, 175, - 176, 185, 186, 255, 166, 191, 192, 255, - 128, 163, 164, 191, 128, 140, 141, 143, - 144, 153, 154, 189, 190, 191, 128, 136, - 137, 191, 173, 128, 168, 169, 177, 178, - 180, 181, 182, 183, 191, 0, 127, 192, - 255, 150, 151, 158, 159, 152, 154, 156, - 158, 134, 135, 142, 143, 190, 191, 192, - 255, 181, 189, 191, 128, 190, 133, 181, - 128, 129, 130, 140, 141, 143, 144, 147, - 148, 149, 150, 155, 156, 159, 160, 172, - 173, 177, 178, 188, 189, 191, 177, 191, - 128, 190, 128, 143, 144, 156, 157, 191, - 130, 135, 148, 164, 166, 168, 128, 137, - 138, 149, 150, 151, 152, 157, 158, 169, - 170, 185, 186, 187, 188, 191, 142, 128, - 132, 133, 137, 138, 159, 160, 255, 137, - 191, 192, 255, 175, 128, 255, 159, 165, - 170, 175, 177, 180, 191, 192, 255, 166, - 173, 128, 167, 168, 175, 176, 255, 168, - 174, 176, 191, 192, 255, 167, 175, 183, - 191, 128, 150, 151, 159, 160, 190, 135, - 143, 151, 128, 158, 159, 191, 128, 132, - 133, 135, 136, 160, 161, 169, 170, 176, - 177, 181, 182, 183, 184, 188, 189, 191, - 160, 151, 154, 187, 192, 255, 128, 132, - 133, 173, 174, 176, 177, 255, 143, 159, - 187, 191, 192, 255, 128, 175, 176, 191, - 150, 191, 192, 255, 141, 191, 192, 255, - 128, 143, 144, 189, 190, 191, 141, 143, - 160, 169, 172, 191, 192, 255, 191, 128, - 174, 175, 190, 128, 157, 158, 159, 160, - 255, 176, 191, 192, 255, 128, 150, 151, - 159, 160, 161, 162, 255, 175, 137, 138, - 184, 191, 192, 255, 128, 182, 183, 255, - 130, 134, 139, 163, 191, 192, 255, 128, - 129, 130, 179, 180, 191, 187, 189, 128, - 177, 178, 183, 184, 191, 128, 137, 138, - 165, 166, 175, 176, 255, 135, 159, 189, - 191, 192, 255, 128, 131, 132, 178, 179, - 191, 143, 165, 191, 128, 159, 160, 175, - 176, 185, 186, 190, 128, 168, 169, 191, - 131, 186, 128, 139, 140, 159, 160, 182, - 183, 189, 190, 255, 176, 178, 180, 183, - 184, 190, 191, 192, 255, 129, 128, 130, - 131, 154, 155, 157, 158, 159, 160, 170, - 171, 177, 178, 180, 181, 191, 128, 167, - 175, 129, 134, 135, 136, 137, 142, 143, - 144, 145, 150, 151, 159, 160, 255, 155, - 166, 175, 128, 162, 163, 191, 164, 175, - 135, 138, 188, 191, 192, 255, 174, 175, - 154, 191, 192, 255, 157, 169, 183, 189, - 191, 128, 134, 135, 146, 147, 151, 152, - 158, 159, 190, 130, 133, 128, 255, 178, - 191, 192, 255, 128, 146, 147, 255, 190, - 191, 192, 255, 128, 143, 144, 255, 144, - 145, 136, 175, 188, 191, 192, 255, 181, - 128, 175, 176, 255, 189, 191, 192, 255, - 128, 160, 161, 186, 187, 191, 128, 129, - 154, 155, 165, 166, 255, 191, 192, 255, - 128, 129, 130, 135, 136, 137, 138, 143, - 144, 145, 146, 151, 152, 153, 154, 156, - 157, 191, 128, 191, 128, 129, 130, 131, - 133, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 152, 156, 157, - 160, 161, 162, 163, 164, 166, 168, 169, - 170, 171, 172, 173, 174, 176, 177, 132, - 151, 153, 155, 158, 175, 178, 179, 180, - 191, 140, 167, 187, 190, 128, 255, 142, - 143, 158, 191, 192, 255, 187, 191, 192, - 255, 128, 180, 181, 191, 128, 156, 157, - 159, 160, 255, 145, 191, 192, 255, 128, - 159, 160, 175, 176, 255, 139, 143, 182, - 191, 192, 255, 144, 132, 135, 150, 191, - 192, 255, 158, 175, 148, 151, 188, 191, - 192, 255, 128, 167, 168, 175, 176, 255, - 164, 191, 192, 255, 183, 191, 192, 255, - 128, 149, 150, 159, 160, 167, 168, 191, - 136, 182, 188, 128, 133, 134, 137, 138, - 184, 185, 190, 191, 255, 150, 159, 183, - 191, 192, 255, 179, 128, 159, 160, 181, - 182, 191, 128, 149, 150, 159, 160, 185, - 186, 191, 128, 183, 184, 189, 190, 191, - 128, 148, 152, 129, 143, 144, 179, 180, - 191, 128, 159, 160, 188, 189, 191, 128, - 156, 157, 191, 136, 128, 164, 165, 191, - 128, 181, 182, 191, 128, 149, 150, 159, - 160, 178, 179, 191, 128, 145, 146, 191, - 128, 178, 179, 191, 128, 130, 131, 132, - 133, 134, 135, 136, 138, 139, 140, 141, - 144, 145, 146, 147, 150, 151, 152, 153, - 154, 156, 162, 163, 171, 176, 177, 178, - 129, 191, 128, 130, 131, 183, 184, 191, - 128, 130, 131, 175, 176, 191, 128, 143, - 144, 168, 169, 191, 128, 130, 131, 166, - 167, 191, 182, 128, 143, 144, 178, 179, - 191, 128, 130, 131, 178, 179, 191, 128, - 154, 156, 129, 132, 133, 191, 146, 128, - 171, 172, 191, 135, 137, 142, 158, 128, - 168, 169, 175, 176, 255, 159, 191, 192, - 255, 144, 128, 156, 157, 161, 162, 191, - 128, 134, 135, 138, 139, 191, 128, 175, - 176, 191, 134, 128, 131, 132, 135, 136, - 191, 128, 174, 175, 191, 128, 151, 152, - 155, 156, 191, 132, 128, 191, 128, 170, - 171, 191, 128, 153, 154, 191, 160, 190, - 192, 255, 128, 184, 185, 191, 137, 128, - 174, 175, 191, 128, 129, 177, 178, 255, - 144, 191, 192, 255, 128, 142, 143, 144, - 145, 146, 149, 129, 148, 150, 191, 175, - 191, 192, 255, 132, 191, 192, 255, 128, - 144, 129, 143, 145, 191, 144, 153, 128, - 143, 145, 152, 154, 191, 135, 191, 192, - 255, 160, 168, 169, 171, 172, 173, 174, - 188, 189, 190, 191, 128, 159, 161, 167, - 170, 187, 185, 191, 192, 255, 128, 143, - 144, 173, 174, 191, 128, 131, 132, 162, - 163, 183, 184, 188, 189, 255, 133, 143, - 145, 191, 192, 255, 128, 146, 147, 159, - 160, 191, 160, 128, 191, 128, 129, 191, - 192, 255, 159, 160, 171, 128, 170, 172, - 191, 192, 255, 173, 191, 192, 255, 179, - 191, 192, 255, 128, 176, 177, 178, 129, - 191, 128, 129, 130, 191, 171, 175, 189, - 191, 192, 255, 128, 136, 137, 143, 144, - 153, 154, 191, 144, 145, 146, 147, 148, - 149, 154, 155, 156, 157, 158, 159, 128, - 143, 150, 153, 160, 191, 149, 157, 173, - 186, 188, 160, 161, 163, 164, 167, 168, - 132, 134, 149, 157, 186, 191, 139, 140, - 192, 255, 133, 145, 128, 134, 135, 137, - 138, 255, 166, 167, 129, 155, 187, 149, - 181, 143, 175, 137, 169, 131, 140, 191, - 192, 255, 160, 163, 164, 165, 184, 185, - 186, 128, 159, 161, 162, 166, 191, 133, - 191, 192, 255, 132, 160, 163, 167, 179, - 184, 186, 128, 164, 165, 168, 169, 187, - 188, 191, 130, 135, 137, 139, 144, 147, - 151, 153, 155, 157, 159, 163, 171, 179, - 184, 189, 191, 128, 140, 141, 148, 149, - 160, 161, 164, 165, 166, 167, 190, 138, - 164, 170, 128, 155, 156, 160, 161, 187, - 188, 191, 128, 191, 155, 156, 128, 191, - 151, 191, 192, 255, 156, 157, 160, 128, - 191, 181, 191, 192, 255, 158, 159, 186, - 128, 185, 187, 191, 192, 255, 162, 191, - 192, 255, 160, 168, 128, 159, 161, 167, - 169, 191, 158, 191, 192, 255, 9, 10, - 13, 32, 33, 34, 35, 38, 46, 47, - 60, 61, 62, 64, 92, 95, 123, 124, - 125, 126, 127, 194, 195, 198, 199, 203, - 204, 205, 206, 207, 210, 212, 213, 214, - 215, 216, 217, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 233, 234, 237, - 238, 239, 240, 0, 39, 40, 45, 48, - 57, 58, 63, 65, 90, 91, 96, 97, - 122, 192, 193, 196, 218, 229, 236, 241, - 247, 9, 32, 10, 61, 10, 38, 46, - 42, 47, 42, 46, 69, 101, 48, 57, - 60, 61, 61, 62, 61, 45, 95, 194, + 45, 95, 194, 195, 198, 199, 203, 205, + 206, 207, 210, 212, 213, 214, 215, 216, + 217, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 233, 234, 237, 239, 240, + 65, 90, 97, 122, 196, 202, 208, 218, + 229, 236, 95, 194, 195, 198, 199, 203, + 205, 206, 207, 210, 212, 213, 214, 215, + 216, 217, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 233, 234, 237, 239, + 240, 65, 90, 97, 122, 196, 202, 208, + 218, 229, 236, 10, 13, 45, 95, 194, 195, 198, 199, 203, 204, 205, 206, 207, 210, 212, 213, 214, 215, 216, 217, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 233, 234, 237, 239, 240, 243, 48, 57, 65, 90, 97, 122, 196, 218, 229, - 236, 124, 125, 128, 191, 170, 181, 186, - 128, 191, 151, 183, 128, 255, 192, 255, - 0, 127, 173, 130, 133, 146, 159, 165, - 171, 175, 191, 192, 255, 181, 190, 128, - 175, 176, 183, 184, 185, 186, 191, 134, - 139, 141, 162, 128, 135, 136, 255, 182, - 130, 137, 176, 151, 152, 154, 160, 136, - 191, 192, 255, 128, 143, 144, 170, 171, - 175, 176, 178, 179, 191, 128, 159, 160, - 191, 176, 128, 138, 139, 173, 174, 255, - 148, 150, 164, 167, 173, 176, 185, 189, - 190, 192, 255, 144, 128, 145, 146, 175, - 176, 191, 128, 140, 141, 255, 166, 176, - 178, 191, 192, 255, 186, 128, 137, 138, - 170, 171, 179, 180, 181, 182, 191, 160, - 161, 162, 164, 165, 166, 167, 168, 169, + 236, 10, 170, 181, 183, 186, 128, 150, + 152, 182, 184, 255, 192, 255, 0, 127, + 173, 130, 133, 146, 159, 165, 171, 175, + 255, 181, 190, 184, 185, 192, 255, 140, + 134, 138, 142, 161, 163, 255, 182, 130, + 136, 137, 176, 151, 152, 154, 160, 190, + 136, 144, 192, 255, 135, 129, 130, 132, + 133, 144, 170, 176, 178, 144, 154, 160, + 191, 128, 169, 174, 255, 148, 169, 157, + 158, 189, 190, 192, 255, 144, 255, 139, + 140, 178, 255, 186, 128, 181, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 128, 191, 128, + 186, 187, 188, 189, 190, 191, 128, 173, + 128, 155, 160, 180, 182, 189, 148, 161, + 163, 255, 176, 164, 165, 132, 169, 177, + 141, 142, 145, 146, 179, 181, 186, 187, + 158, 133, 134, 137, 138, 143, 150, 152, + 155, 164, 165, 178, 255, 188, 129, 131, + 133, 138, 143, 144, 147, 168, 170, 176, + 178, 179, 181, 182, 184, 185, 190, 255, + 157, 131, 134, 137, 138, 142, 144, 146, + 152, 159, 165, 182, 255, 129, 131, 133, + 141, 143, 145, 147, 168, 170, 176, 178, + 179, 181, 185, 188, 255, 134, 138, 142, + 143, 145, 159, 164, 165, 176, 184, 186, + 255, 129, 131, 133, 140, 143, 144, 147, + 168, 170, 176, 178, 179, 181, 185, 188, + 191, 177, 128, 132, 135, 136, 139, 141, + 150, 151, 156, 157, 159, 163, 166, 175, + 156, 130, 131, 133, 138, 142, 144, 146, + 149, 153, 154, 158, 159, 163, 164, 168, + 170, 174, 185, 190, 191, 144, 151, 128, + 130, 134, 136, 138, 141, 166, 175, 128, + 131, 133, 140, 142, 144, 146, 168, 170, + 185, 189, 255, 133, 137, 151, 142, 148, + 155, 159, 164, 165, 176, 255, 128, 131, + 133, 140, 142, 144, 146, 168, 170, 179, + 181, 185, 188, 191, 158, 128, 132, 134, + 136, 138, 141, 149, 150, 160, 163, 166, + 175, 177, 178, 129, 131, 133, 140, 142, + 144, 146, 186, 189, 255, 133, 137, 143, + 147, 152, 158, 164, 165, 176, 185, 192, + 255, 189, 130, 131, 133, 150, 154, 177, + 179, 187, 138, 150, 128, 134, 143, 148, + 152, 159, 166, 175, 178, 179, 129, 186, + 128, 142, 144, 153, 132, 138, 141, 165, + 167, 129, 130, 135, 136, 148, 151, 153, + 159, 161, 163, 170, 171, 173, 185, 187, + 189, 134, 128, 132, 136, 141, 144, 153, + 156, 159, 128, 181, 183, 185, 152, 153, + 160, 169, 190, 191, 128, 135, 137, 172, + 177, 191, 128, 132, 134, 151, 153, 188, + 134, 128, 129, 130, 131, 137, 138, 139, + 140, 141, 142, 143, 144, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 173, + 175, 176, 177, 178, 179, 181, 182, 183, + 188, 189, 190, 191, 132, 152, 172, 184, + 185, 187, 128, 191, 128, 137, 144, 255, + 158, 159, 134, 187, 136, 140, 142, 143, + 137, 151, 153, 142, 143, 158, 159, 137, + 177, 142, 143, 182, 183, 191, 255, 128, + 130, 133, 136, 150, 152, 255, 145, 150, + 151, 155, 156, 160, 168, 178, 255, 128, + 143, 160, 255, 182, 183, 190, 255, 129, + 255, 173, 174, 192, 255, 129, 154, 160, + 255, 171, 173, 185, 255, 128, 140, 142, + 148, 160, 180, 128, 147, 160, 172, 174, + 176, 178, 179, 148, 150, 152, 155, 158, + 159, 170, 255, 139, 141, 144, 153, 160, + 255, 184, 255, 128, 170, 176, 255, 182, + 255, 128, 158, 160, 171, 176, 187, 134, + 173, 176, 180, 128, 171, 176, 255, 138, + 143, 155, 255, 128, 155, 160, 255, 159, + 189, 190, 192, 255, 167, 128, 137, 144, + 153, 176, 189, 140, 143, 154, 170, 180, + 255, 180, 255, 128, 183, 128, 137, 141, + 189, 128, 136, 144, 146, 148, 182, 184, + 185, 128, 181, 187, 191, 150, 151, 158, + 159, 152, 154, 156, 158, 134, 135, 142, + 143, 190, 255, 190, 128, 180, 182, 188, + 130, 132, 134, 140, 144, 147, 150, 155, + 160, 172, 178, 180, 182, 188, 128, 129, + 130, 131, 132, 133, 134, 176, 177, 178, + 179, 180, 181, 182, 183, 191, 255, 129, + 147, 149, 176, 178, 190, 192, 255, 144, + 156, 161, 144, 156, 165, 176, 130, 135, + 149, 164, 166, 168, 138, 147, 152, 157, + 170, 185, 188, 191, 142, 133, 137, 160, + 255, 137, 255, 128, 174, 176, 255, 159, + 165, 170, 180, 255, 167, 173, 128, 165, + 176, 255, 168, 174, 176, 190, 192, 255, + 128, 150, 160, 166, 168, 174, 176, 182, + 184, 190, 128, 134, 136, 142, 144, 150, + 152, 158, 160, 191, 128, 129, 130, 131, + 132, 133, 134, 135, 144, 145, 255, 133, + 135, 161, 175, 177, 181, 184, 188, 160, + 151, 152, 187, 192, 255, 133, 173, 177, + 255, 143, 159, 187, 255, 176, 191, 182, + 183, 184, 191, 192, 255, 150, 255, 128, + 146, 147, 148, 152, 153, 154, 155, 156, + 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 129, 255, 141, 255, 144, + 189, 141, 143, 172, 255, 191, 128, 175, + 180, 189, 151, 159, 162, 255, 175, 137, + 138, 184, 255, 183, 255, 168, 255, 128, + 179, 188, 134, 143, 154, 159, 184, 186, + 190, 255, 128, 173, 176, 255, 148, 159, + 189, 255, 129, 142, 154, 159, 191, 255, + 128, 182, 128, 141, 144, 153, 160, 182, + 186, 255, 128, 130, 155, 157, 160, 175, + 178, 182, 129, 134, 137, 142, 145, 150, + 160, 166, 168, 174, 176, 255, 155, 166, + 175, 128, 170, 172, 173, 176, 185, 158, + 159, 160, 255, 164, 175, 135, 138, 188, + 255, 164, 169, 171, 172, 173, 174, 175, + 180, 181, 182, 183, 184, 185, 187, 188, + 189, 190, 191, 165, 186, 174, 175, 154, + 255, 190, 128, 134, 147, 151, 157, 168, + 170, 182, 184, 188, 128, 129, 131, 132, + 134, 255, 147, 255, 190, 255, 144, 145, + 136, 175, 188, 255, 128, 143, 160, 175, + 179, 180, 141, 143, 176, 180, 182, 255, + 189, 255, 191, 144, 153, 161, 186, 129, + 154, 166, 255, 191, 255, 130, 135, 138, + 143, 146, 151, 154, 156, 144, 145, 146, + 147, 148, 150, 151, 152, 155, 157, 158, + 160, 170, 171, 172, 175, 161, 169, 128, + 129, 130, 131, 133, 135, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, + 149, 152, 156, 157, 160, 161, 162, 163, + 164, 166, 168, 169, 170, 171, 172, 173, + 174, 176, 177, 153, 155, 178, 179, 128, + 139, 141, 166, 168, 186, 188, 189, 191, + 255, 142, 143, 158, 255, 187, 255, 128, + 180, 189, 128, 156, 160, 255, 145, 159, + 161, 255, 128, 159, 176, 255, 139, 143, + 187, 255, 128, 157, 160, 255, 144, 132, + 135, 150, 255, 158, 159, 170, 175, 148, + 151, 188, 255, 128, 167, 176, 255, 164, + 255, 183, 255, 128, 149, 160, 167, 136, + 188, 128, 133, 138, 181, 183, 184, 191, + 255, 150, 159, 183, 255, 128, 158, 160, + 178, 180, 181, 128, 149, 160, 185, 128, + 183, 190, 191, 191, 128, 131, 133, 134, + 140, 147, 149, 151, 153, 179, 184, 186, + 160, 188, 128, 156, 128, 135, 137, 166, + 128, 181, 128, 149, 160, 178, 128, 145, + 128, 178, 129, 130, 131, 132, 133, 135, + 136, 138, 139, 140, 141, 144, 145, 146, + 147, 150, 151, 152, 153, 154, 155, 156, + 162, 163, 171, 176, 177, 178, 128, 134, + 135, 165, 176, 190, 144, 168, 176, 185, + 128, 180, 182, 191, 182, 144, 179, 155, + 133, 137, 141, 143, 157, 255, 190, 128, + 145, 147, 183, 136, 128, 134, 138, 141, + 143, 157, 159, 168, 176, 255, 171, 175, + 186, 255, 128, 131, 133, 140, 143, 144, + 147, 168, 170, 176, 178, 179, 181, 185, + 188, 191, 144, 151, 128, 132, 135, 136, + 139, 141, 157, 163, 166, 172, 176, 180, + 128, 138, 144, 153, 134, 136, 143, 154, + 255, 128, 181, 184, 255, 129, 151, 158, + 255, 129, 131, 133, 143, 154, 255, 128, + 137, 128, 153, 157, 171, 176, 185, 160, + 255, 170, 190, 192, 255, 128, 184, 128, + 136, 138, 182, 184, 191, 128, 144, 153, + 178, 255, 168, 144, 145, 183, 255, 128, + 142, 145, 149, 129, 141, 144, 146, 147, + 148, 175, 255, 132, 255, 128, 144, 129, + 143, 144, 153, 145, 152, 135, 255, 160, + 168, 169, 171, 172, 173, 174, 188, 189, + 190, 191, 161, 167, 185, 255, 128, 158, + 160, 169, 144, 173, 176, 180, 128, 131, + 144, 153, 163, 183, 189, 255, 144, 255, + 133, 143, 191, 255, 143, 159, 160, 128, + 129, 255, 159, 160, 171, 172, 255, 173, + 255, 179, 255, 128, 176, 177, 178, 128, + 129, 171, 175, 189, 255, 128, 136, 144, + 153, 157, 158, 133, 134, 137, 144, 145, + 146, 147, 148, 149, 154, 155, 156, 157, + 158, 159, 168, 169, 170, 150, 153, 165, + 169, 173, 178, 187, 255, 131, 132, 140, + 169, 174, 255, 130, 132, 149, 157, 173, + 186, 188, 160, 161, 163, 164, 167, 168, + 132, 134, 149, 157, 186, 139, 140, 191, + 255, 134, 128, 132, 138, 144, 146, 255, + 166, 167, 129, 155, 187, 149, 181, 143, + 175, 137, 169, 131, 140, 141, 192, 255, + 128, 182, 187, 255, 173, 180, 182, 255, + 132, 155, 159, 161, 175, 128, 160, 163, + 164, 165, 184, 185, 186, 161, 162, 128, + 134, 136, 152, 155, 161, 163, 164, 166, + 170, 133, 143, 151, 255, 139, 143, 154, + 255, 164, 167, 185, 187, 128, 131, 133, + 159, 161, 162, 169, 178, 180, 183, 130, + 135, 137, 139, 148, 151, 153, 155, 157, + 159, 164, 190, 141, 143, 145, 146, 161, + 162, 167, 170, 172, 178, 180, 183, 185, + 188, 128, 137, 139, 155, 161, 163, 165, + 169, 171, 187, 155, 156, 151, 255, 156, + 157, 160, 181, 255, 186, 187, 255, 162, + 255, 160, 168, 161, 167, 158, 255, 160, + 132, 135, 133, 134, 176, 255, 170, 181, + 186, 191, 176, 180, 182, 183, 186, 189, + 134, 140, 136, 138, 142, 161, 163, 255, + 130, 137, 136, 255, 144, 170, 176, 178, + 160, 191, 128, 138, 174, 175, 177, 255, + 148, 150, 164, 167, 173, 176, 185, 189, + 190, 192, 255, 144, 146, 175, 141, 255, + 166, 176, 178, 255, 186, 138, 170, 180, + 181, 160, 161, 162, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 184, + 186, 187, 188, 189, 190, 183, 185, 154, + 164, 168, 128, 149, 128, 152, 189, 132, + 185, 144, 152, 161, 177, 255, 169, 177, + 129, 132, 141, 142, 145, 146, 179, 181, + 186, 188, 190, 255, 142, 156, 157, 159, + 161, 176, 177, 133, 138, 143, 144, 147, + 168, 170, 176, 178, 179, 181, 182, 184, + 185, 158, 153, 156, 178, 180, 189, 133, + 141, 143, 145, 147, 168, 170, 176, 178, + 179, 181, 185, 144, 185, 160, 161, 189, + 133, 140, 143, 144, 147, 168, 170, 176, + 178, 179, 181, 185, 177, 156, 157, 159, + 161, 131, 156, 133, 138, 142, 144, 146, + 149, 153, 154, 158, 159, 163, 164, 168, + 170, 174, 185, 144, 189, 133, 140, 142, + 144, 146, 168, 170, 185, 152, 154, 160, + 161, 128, 189, 133, 140, 142, 144, 146, + 168, 170, 179, 181, 185, 158, 160, 161, + 177, 178, 189, 133, 140, 142, 144, 146, + 186, 142, 148, 150, 159, 161, 186, 191, + 189, 133, 150, 154, 177, 179, 187, 128, + 134, 129, 176, 178, 179, 132, 138, 141, + 165, 167, 189, 129, 130, 135, 136, 148, + 151, 153, 159, 161, 163, 170, 171, 173, + 176, 178, 179, 134, 128, 132, 156, 159, + 128, 128, 135, 137, 172, 136, 140, 128, 129, 130, 131, 137, 138, 139, 140, 141, 142, 143, 144, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 182, - 183, 184, 188, 189, 190, 191, 132, 187, - 129, 130, 132, 133, 134, 176, 177, 178, - 179, 180, 181, 182, 183, 128, 191, 128, - 129, 130, 131, 132, 133, 134, 135, 144, - 136, 143, 145, 191, 192, 255, 182, 183, - 184, 128, 191, 128, 191, 191, 128, 190, - 192, 255, 128, 146, 147, 148, 152, 153, - 154, 155, 156, 158, 159, 160, 161, 162, + 166, 167, 168, 169, 170, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, + 184, 188, 189, 190, 191, 132, 152, 185, + 187, 191, 128, 170, 161, 144, 149, 154, + 157, 165, 166, 174, 176, 181, 255, 130, + 141, 143, 159, 155, 255, 128, 140, 142, + 145, 160, 177, 128, 145, 160, 172, 174, + 176, 151, 156, 170, 128, 168, 176, 255, + 138, 255, 128, 150, 160, 255, 149, 255, + 167, 133, 179, 133, 139, 131, 160, 174, + 175, 186, 255, 166, 255, 128, 163, 141, + 143, 154, 189, 169, 172, 174, 177, 181, + 182, 129, 130, 132, 133, 134, 176, 177, + 178, 179, 180, 181, 182, 183, 177, 191, + 165, 170, 175, 177, 180, 255, 168, 174, + 176, 255, 128, 134, 136, 142, 144, 150, + 152, 158, 128, 129, 130, 131, 132, 133, + 134, 135, 144, 145, 255, 133, 135, 161, + 169, 177, 181, 184, 188, 160, 151, 154, + 128, 146, 147, 148, 152, 153, 154, 155, + 156, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 129, 255, 141, 143, + 160, 169, 172, 255, 191, 128, 174, 130, + 134, 139, 163, 255, 130, 179, 187, 189, + 178, 183, 138, 165, 176, 255, 135, 159, + 189, 255, 132, 178, 143, 160, 164, 166, + 175, 186, 190, 128, 168, 186, 128, 130, + 132, 139, 160, 182, 190, 255, 176, 178, + 180, 183, 184, 190, 255, 128, 130, 155, + 157, 160, 170, 178, 180, 128, 162, 164, + 169, 171, 172, 173, 174, 175, 180, 181, + 182, 183, 185, 186, 187, 188, 189, 190, + 191, 165, 179, 157, 190, 128, 134, 147, + 151, 159, 168, 170, 182, 184, 188, 176, + 180, 182, 255, 161, 186, 144, 145, 146, + 147, 148, 150, 151, 152, 155, 157, 158, + 160, 170, 171, 172, 175, 161, 169, 128, + 129, 130, 131, 133, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, + 152, 156, 157, 160, 161, 162, 163, 164, + 166, 168, 169, 170, 171, 172, 173, 174, + 176, 177, 153, 155, 178, 179, 145, 255, + 139, 143, 182, 255, 158, 175, 128, 144, + 147, 149, 151, 153, 179, 128, 135, 137, + 164, 128, 130, 131, 132, 133, 134, 135, + 136, 138, 139, 140, 141, 144, 145, 146, + 147, 150, 151, 152, 153, 154, 156, 162, + 163, 171, 176, 177, 178, 131, 183, 131, + 175, 144, 168, 131, 166, 182, 144, 178, + 131, 178, 154, 156, 129, 132, 128, 145, + 147, 171, 159, 255, 144, 157, 161, 135, + 138, 128, 175, 135, 132, 133, 128, 174, + 152, 155, 132, 128, 170, 128, 153, 160, + 190, 192, 255, 128, 136, 138, 174, 128, + 178, 255, 160, 168, 169, 171, 172, 173, + 174, 188, 189, 190, 191, 161, 167, 144, + 173, 128, 131, 163, 183, 189, 255, 133, + 143, 145, 255, 147, 159, 128, 176, 177, + 178, 128, 136, 144, 153, 144, 145, 146, + 147, 148, 149, 154, 155, 156, 157, 158, + 159, 150, 153, 131, 140, 255, 160, 163, + 164, 165, 184, 185, 186, 161, 162, 133, + 255, 170, 181, 183, 186, 128, 150, 152, + 182, 184, 255, 192, 255, 128, 255, 173, + 130, 133, 146, 159, 165, 171, 175, 255, + 181, 190, 184, 185, 192, 255, 140, 134, + 138, 142, 161, 163, 255, 182, 130, 136, + 137, 176, 151, 152, 154, 160, 190, 136, + 144, 192, 255, 135, 129, 130, 132, 133, + 144, 170, 176, 178, 144, 154, 160, 191, + 128, 169, 174, 255, 148, 169, 157, 158, + 189, 190, 192, 255, 144, 255, 139, 140, + 178, 255, 186, 128, 181, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 129, 191, - 192, 255, 158, 159, 128, 157, 160, 191, - 192, 255, 128, 191, 164, 169, 171, 172, - 173, 174, 175, 180, 181, 182, 183, 184, - 185, 187, 188, 189, 190, 191, 128, 163, - 165, 186, 144, 145, 146, 147, 148, 150, - 151, 152, 155, 157, 158, 160, 170, 171, - 172, 175, 128, 159, 161, 169, 173, 191, - 128, 191, 10, 13, 34, 36, 37, 92, - 128, 191, 192, 223, 224, 239, 240, 247, - 248, 255, 10, 13, 34, 92, 36, 37, - 128, 191, 192, 223, 224, 239, 240, 247, - 248, 255, 10, 13, 92, 36, 37, 128, + 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 128, 173, 128, + 155, 160, 180, 182, 189, 148, 161, 163, + 255, 176, 164, 165, 132, 169, 177, 141, + 142, 145, 146, 179, 181, 186, 187, 158, + 133, 134, 137, 138, 143, 150, 152, 155, + 164, 165, 178, 255, 188, 129, 131, 133, + 138, 143, 144, 147, 168, 170, 176, 178, + 179, 181, 182, 184, 185, 190, 255, 157, + 131, 134, 137, 138, 142, 144, 146, 152, + 159, 165, 182, 255, 129, 131, 133, 141, + 143, 145, 147, 168, 170, 176, 178, 179, + 181, 185, 188, 255, 134, 138, 142, 143, + 145, 159, 164, 165, 176, 184, 186, 255, + 129, 131, 133, 140, 143, 144, 147, 168, + 170, 176, 178, 179, 181, 185, 188, 191, + 177, 128, 132, 135, 136, 139, 141, 150, + 151, 156, 157, 159, 163, 166, 175, 156, + 130, 131, 133, 138, 142, 144, 146, 149, + 153, 154, 158, 159, 163, 164, 168, 170, + 174, 185, 190, 191, 144, 151, 128, 130, + 134, 136, 138, 141, 166, 175, 128, 131, + 133, 140, 142, 144, 146, 168, 170, 185, + 189, 255, 133, 137, 151, 142, 148, 155, + 159, 164, 165, 176, 255, 128, 131, 133, + 140, 142, 144, 146, 168, 170, 179, 181, + 185, 188, 191, 158, 128, 132, 134, 136, + 138, 141, 149, 150, 160, 163, 166, 175, + 177, 178, 129, 131, 133, 140, 142, 144, + 146, 186, 189, 255, 133, 137, 143, 147, + 152, 158, 164, 165, 176, 185, 192, 255, + 189, 130, 131, 133, 150, 154, 177, 179, + 187, 138, 150, 128, 134, 143, 148, 152, + 159, 166, 175, 178, 179, 129, 186, 128, + 142, 144, 153, 132, 138, 141, 165, 167, + 129, 130, 135, 136, 148, 151, 153, 159, + 161, 163, 170, 171, 173, 185, 187, 189, + 134, 128, 132, 136, 141, 144, 153, 156, + 159, 128, 181, 183, 185, 152, 153, 160, + 169, 190, 191, 128, 135, 137, 172, 177, + 191, 128, 132, 134, 151, 153, 188, 134, + 128, 129, 130, 131, 137, 138, 139, 140, + 141, 142, 143, 144, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 173, 175, + 176, 177, 178, 179, 181, 182, 183, 188, + 189, 190, 191, 132, 152, 172, 184, 185, + 187, 128, 191, 128, 137, 144, 255, 158, + 159, 134, 187, 136, 140, 142, 143, 137, + 151, 153, 142, 143, 158, 159, 137, 177, + 142, 143, 182, 183, 191, 255, 128, 130, + 133, 136, 150, 152, 255, 145, 150, 151, + 155, 156, 160, 168, 178, 255, 128, 143, + 160, 255, 182, 183, 190, 255, 129, 255, + 173, 174, 192, 255, 129, 154, 160, 255, + 171, 173, 185, 255, 128, 140, 142, 148, + 160, 180, 128, 147, 160, 172, 174, 176, + 178, 179, 148, 150, 152, 155, 158, 159, + 170, 255, 139, 141, 144, 153, 160, 255, + 184, 255, 128, 170, 176, 255, 182, 255, + 128, 158, 160, 171, 176, 187, 134, 173, + 176, 180, 128, 171, 176, 255, 138, 143, + 155, 255, 128, 155, 160, 255, 159, 189, + 190, 192, 255, 167, 128, 137, 144, 153, + 176, 189, 140, 143, 154, 170, 180, 255, + 180, 255, 128, 183, 128, 137, 141, 189, + 128, 136, 144, 146, 148, 182, 184, 185, + 128, 181, 187, 191, 150, 151, 158, 159, + 152, 154, 156, 158, 134, 135, 142, 143, + 190, 255, 190, 128, 180, 182, 188, 130, + 132, 134, 140, 144, 147, 150, 155, 160, + 172, 178, 180, 182, 188, 128, 129, 130, + 131, 132, 133, 134, 176, 177, 178, 179, + 180, 181, 182, 183, 191, 255, 129, 147, + 149, 176, 178, 190, 192, 255, 144, 156, + 161, 144, 156, 165, 176, 130, 135, 149, + 164, 166, 168, 138, 147, 152, 157, 170, + 185, 188, 191, 142, 133, 137, 160, 255, + 137, 255, 128, 174, 176, 255, 159, 165, + 170, 180, 255, 167, 173, 128, 165, 176, + 255, 168, 174, 176, 190, 192, 255, 128, + 150, 160, 166, 168, 174, 176, 182, 184, + 190, 128, 134, 136, 142, 144, 150, 152, + 158, 160, 191, 128, 129, 130, 131, 132, + 133, 134, 135, 144, 145, 255, 133, 135, + 161, 175, 177, 181, 184, 188, 160, 151, + 152, 187, 192, 255, 133, 173, 177, 255, + 143, 159, 187, 255, 176, 191, 182, 183, + 184, 191, 192, 255, 150, 255, 128, 146, + 147, 148, 152, 153, 154, 155, 156, 158, + 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 129, 255, 141, 255, 144, 189, + 141, 143, 172, 255, 191, 128, 175, 180, + 189, 151, 159, 162, 255, 175, 137, 138, + 184, 255, 183, 255, 168, 255, 128, 179, + 188, 134, 143, 154, 159, 184, 186, 190, + 255, 128, 173, 176, 255, 148, 159, 189, + 255, 129, 142, 154, 159, 191, 255, 128, + 182, 128, 141, 144, 153, 160, 182, 186, + 255, 128, 130, 155, 157, 160, 175, 178, + 182, 129, 134, 137, 142, 145, 150, 160, + 166, 168, 174, 176, 255, 155, 166, 175, + 128, 170, 172, 173, 176, 185, 158, 159, + 160, 255, 164, 175, 135, 138, 188, 255, + 164, 169, 171, 172, 173, 174, 175, 180, + 181, 182, 183, 184, 185, 187, 188, 189, + 190, 191, 165, 186, 174, 175, 154, 255, + 190, 128, 134, 147, 151, 157, 168, 170, + 182, 184, 188, 128, 129, 131, 132, 134, + 255, 147, 255, 190, 255, 144, 145, 136, + 175, 188, 255, 128, 143, 160, 175, 179, + 180, 141, 143, 176, 180, 182, 255, 189, + 255, 191, 144, 153, 161, 186, 129, 154, + 166, 255, 191, 255, 130, 135, 138, 143, + 146, 151, 154, 156, 144, 145, 146, 147, + 148, 150, 151, 152, 155, 157, 158, 160, + 170, 171, 172, 175, 161, 169, 128, 129, + 130, 131, 133, 135, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, + 152, 156, 157, 160, 161, 162, 163, 164, + 166, 168, 169, 170, 171, 172, 173, 174, + 176, 177, 153, 155, 178, 179, 128, 139, + 141, 166, 168, 186, 188, 189, 191, 255, + 142, 143, 158, 255, 187, 255, 128, 180, + 189, 128, 156, 160, 255, 145, 159, 161, + 255, 128, 159, 176, 255, 139, 143, 187, + 255, 128, 157, 160, 255, 144, 132, 135, + 150, 255, 158, 159, 170, 175, 148, 151, + 188, 255, 128, 167, 176, 255, 164, 255, + 183, 255, 128, 149, 160, 167, 136, 188, + 128, 133, 138, 181, 183, 184, 191, 255, + 150, 159, 183, 255, 128, 158, 160, 178, + 180, 181, 128, 149, 160, 185, 128, 183, + 190, 191, 191, 128, 131, 133, 134, 140, + 147, 149, 151, 153, 179, 184, 186, 160, + 188, 128, 156, 128, 135, 137, 166, 128, + 181, 128, 149, 160, 178, 128, 145, 128, + 178, 129, 130, 131, 132, 133, 135, 136, + 138, 139, 140, 141, 144, 145, 146, 147, + 150, 151, 152, 153, 154, 155, 156, 162, + 163, 171, 176, 177, 178, 128, 134, 135, + 165, 176, 190, 144, 168, 176, 185, 128, + 180, 182, 191, 182, 144, 179, 155, 133, + 137, 141, 143, 157, 255, 190, 128, 145, + 147, 183, 136, 128, 134, 138, 141, 143, + 157, 159, 168, 176, 255, 171, 175, 186, + 255, 128, 131, 133, 140, 143, 144, 147, + 168, 170, 176, 178, 179, 181, 185, 188, + 191, 144, 151, 128, 132, 135, 136, 139, + 141, 157, 163, 166, 172, 176, 180, 128, + 138, 144, 153, 134, 136, 143, 154, 255, + 128, 181, 184, 255, 129, 151, 158, 255, + 129, 131, 133, 143, 154, 255, 128, 137, + 128, 153, 157, 171, 176, 185, 160, 255, + 170, 190, 192, 255, 128, 184, 128, 136, + 138, 182, 184, 191, 128, 144, 153, 178, + 255, 168, 144, 145, 183, 255, 128, 142, + 145, 149, 129, 141, 144, 146, 147, 148, + 175, 255, 132, 255, 128, 144, 129, 143, + 144, 153, 145, 152, 135, 255, 160, 168, + 169, 171, 172, 173, 174, 188, 189, 190, + 191, 161, 167, 185, 255, 128, 158, 160, + 169, 144, 173, 176, 180, 128, 131, 144, + 153, 163, 183, 189, 255, 144, 255, 133, + 143, 191, 255, 143, 159, 160, 128, 129, + 255, 159, 160, 171, 172, 255, 173, 255, + 179, 255, 128, 176, 177, 178, 128, 129, + 171, 175, 189, 255, 128, 136, 144, 153, + 157, 158, 133, 134, 137, 144, 145, 146, + 147, 148, 149, 154, 155, 156, 157, 158, + 159, 168, 169, 170, 150, 153, 165, 169, + 173, 178, 187, 255, 131, 132, 140, 169, + 174, 255, 130, 132, 149, 157, 173, 186, + 188, 160, 161, 163, 164, 167, 168, 132, + 134, 149, 157, 186, 139, 140, 191, 255, + 134, 128, 132, 138, 144, 146, 255, 166, + 167, 129, 155, 187, 149, 181, 143, 175, + 137, 169, 131, 140, 141, 192, 255, 128, + 182, 187, 255, 173, 180, 182, 255, 132, + 155, 159, 161, 175, 128, 160, 163, 164, + 165, 184, 185, 186, 161, 162, 128, 134, + 136, 152, 155, 161, 163, 164, 166, 170, + 133, 143, 151, 255, 139, 143, 154, 255, + 164, 167, 185, 187, 128, 131, 133, 159, + 161, 162, 169, 178, 180, 183, 130, 135, + 137, 139, 148, 151, 153, 155, 157, 159, + 164, 190, 141, 143, 145, 146, 161, 162, + 167, 170, 172, 178, 180, 183, 185, 188, + 128, 137, 139, 155, 161, 163, 165, 169, + 171, 187, 155, 156, 151, 255, 156, 157, + 160, 181, 255, 186, 187, 255, 162, 255, + 160, 168, 161, 167, 158, 255, 160, 132, + 135, 133, 134, 176, 255, 128, 191, 154, + 164, 168, 128, 149, 150, 191, 128, 152, + 153, 191, 181, 128, 159, 160, 189, 190, + 191, 189, 128, 131, 132, 185, 186, 191, + 144, 128, 151, 152, 161, 162, 176, 177, + 255, 169, 177, 129, 132, 141, 142, 145, + 146, 179, 181, 186, 188, 190, 191, 192, + 255, 142, 158, 128, 155, 156, 161, 162, + 175, 176, 177, 178, 191, 169, 177, 180, + 183, 128, 132, 133, 138, 139, 142, 143, + 144, 145, 146, 147, 185, 186, 191, 157, + 128, 152, 153, 158, 159, 177, 178, 180, + 181, 191, 142, 146, 169, 177, 180, 189, + 128, 132, 133, 185, 186, 191, 144, 185, + 128, 159, 160, 161, 162, 191, 169, 177, + 180, 189, 128, 132, 133, 140, 141, 142, + 143, 144, 145, 146, 147, 185, 186, 191, + 158, 177, 128, 155, 156, 161, 162, 191, + 131, 145, 155, 157, 128, 132, 133, 138, + 139, 141, 142, 149, 150, 152, 153, 159, + 160, 162, 163, 164, 165, 167, 168, 170, + 171, 173, 174, 185, 186, 191, 144, 128, + 191, 141, 145, 169, 189, 128, 132, 133, + 185, 186, 191, 128, 151, 152, 154, 155, + 159, 160, 161, 162, 191, 128, 141, 145, + 169, 180, 189, 129, 132, 133, 185, 186, + 191, 158, 128, 159, 160, 161, 162, 176, + 177, 178, 179, 191, 141, 145, 189, 128, + 132, 133, 186, 187, 191, 142, 128, 147, + 148, 150, 151, 158, 159, 161, 162, 185, + 186, 191, 178, 188, 128, 132, 133, 150, + 151, 153, 154, 189, 190, 191, 128, 134, + 135, 191, 128, 177, 129, 179, 180, 191, + 128, 131, 137, 141, 152, 160, 164, 166, + 172, 177, 189, 129, 132, 133, 134, 135, + 138, 139, 147, 148, 167, 168, 169, 170, + 179, 180, 191, 133, 128, 134, 135, 155, + 156, 159, 160, 191, 128, 129, 191, 136, + 128, 172, 173, 191, 128, 135, 136, 140, + 141, 191, 191, 128, 170, 171, 190, 161, + 128, 143, 144, 149, 150, 153, 154, 157, + 158, 164, 165, 166, 167, 173, 174, 176, + 177, 180, 181, 255, 130, 141, 143, 159, + 134, 187, 136, 140, 142, 143, 137, 151, + 153, 142, 143, 158, 159, 137, 177, 191, + 142, 143, 182, 183, 192, 255, 129, 151, + 128, 133, 134, 135, 136, 255, 145, 150, + 151, 155, 191, 192, 255, 128, 143, 144, + 159, 160, 255, 182, 183, 190, 191, 192, + 255, 128, 129, 255, 173, 174, 192, 255, + 128, 129, 154, 155, 159, 160, 255, 171, + 173, 185, 191, 192, 255, 141, 128, 145, + 146, 159, 160, 177, 178, 191, 173, 128, + 145, 146, 159, 160, 176, 177, 191, 128, + 179, 180, 191, 151, 156, 128, 191, 128, + 159, 160, 255, 184, 191, 192, 255, 169, + 128, 170, 171, 175, 176, 255, 182, 191, + 192, 255, 128, 158, 159, 191, 128, 143, + 144, 173, 174, 175, 176, 180, 181, 191, + 128, 171, 172, 175, 176, 255, 138, 191, + 192, 255, 128, 150, 151, 159, 160, 255, + 149, 191, 192, 255, 167, 128, 191, 128, + 132, 133, 179, 180, 191, 128, 132, 133, + 139, 140, 191, 128, 130, 131, 160, 161, + 173, 174, 175, 176, 185, 186, 255, 166, + 191, 192, 255, 128, 163, 164, 191, 128, + 140, 141, 143, 144, 153, 154, 189, 190, + 191, 128, 136, 137, 191, 173, 128, 168, + 169, 177, 178, 180, 181, 182, 183, 191, + 0, 127, 192, 255, 150, 151, 158, 159, + 152, 154, 156, 158, 134, 135, 142, 143, + 190, 191, 192, 255, 181, 189, 191, 128, + 190, 133, 181, 128, 129, 130, 140, 141, + 143, 144, 147, 148, 149, 150, 155, 156, + 159, 160, 172, 173, 177, 178, 188, 189, + 191, 177, 191, 128, 190, 128, 143, 144, + 156, 157, 191, 130, 135, 148, 164, 166, + 168, 128, 137, 138, 149, 150, 151, 152, + 157, 158, 169, 170, 185, 186, 187, 188, + 191, 142, 128, 132, 133, 137, 138, 159, + 160, 255, 137, 191, 192, 255, 175, 128, + 255, 159, 165, 170, 175, 177, 180, 191, + 192, 255, 166, 173, 128, 167, 168, 175, + 176, 255, 168, 174, 176, 191, 192, 255, + 167, 175, 183, 191, 128, 150, 151, 159, + 160, 190, 135, 143, 151, 128, 158, 159, + 191, 128, 132, 133, 135, 136, 160, 161, + 169, 170, 176, 177, 181, 182, 183, 184, + 188, 189, 191, 160, 151, 154, 187, 192, + 255, 128, 132, 133, 173, 174, 176, 177, + 255, 143, 159, 187, 191, 192, 255, 128, + 175, 176, 191, 150, 191, 192, 255, 141, + 191, 192, 255, 128, 143, 144, 189, 190, + 191, 141, 143, 160, 169, 172, 191, 192, + 255, 191, 128, 174, 175, 190, 128, 157, + 158, 159, 160, 255, 176, 191, 192, 255, + 128, 150, 151, 159, 160, 161, 162, 255, + 175, 137, 138, 184, 191, 192, 255, 128, + 182, 183, 255, 130, 134, 139, 163, 191, + 192, 255, 128, 129, 130, 179, 180, 191, + 187, 189, 128, 177, 178, 183, 184, 191, + 128, 137, 138, 165, 166, 175, 176, 255, + 135, 159, 189, 191, 192, 255, 128, 131, + 132, 178, 179, 191, 143, 165, 191, 128, + 159, 160, 175, 176, 185, 186, 190, 128, + 168, 169, 191, 131, 186, 128, 139, 140, + 159, 160, 182, 183, 189, 190, 255, 176, + 178, 180, 183, 184, 190, 191, 192, 255, + 129, 128, 130, 131, 154, 155, 157, 158, + 159, 160, 170, 171, 177, 178, 180, 181, + 191, 128, 167, 175, 129, 134, 135, 136, + 137, 142, 143, 144, 145, 150, 151, 159, + 160, 255, 155, 166, 175, 128, 162, 163, + 191, 164, 175, 135, 138, 188, 191, 192, + 255, 174, 175, 154, 191, 192, 255, 157, + 169, 183, 189, 191, 128, 134, 135, 146, + 147, 151, 152, 158, 159, 190, 130, 133, + 128, 255, 178, 191, 192, 255, 128, 146, + 147, 255, 190, 191, 192, 255, 128, 143, + 144, 255, 144, 145, 136, 175, 188, 191, + 192, 255, 181, 128, 175, 176, 255, 189, + 191, 192, 255, 128, 160, 161, 186, 187, + 191, 128, 129, 154, 155, 165, 166, 255, + 191, 192, 255, 128, 129, 130, 135, 136, + 137, 138, 143, 144, 145, 146, 151, 152, + 153, 154, 156, 157, 191, 128, 191, 128, + 129, 130, 131, 133, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, + 152, 156, 157, 160, 161, 162, 163, 164, + 166, 168, 169, 170, 171, 172, 173, 174, + 176, 177, 132, 151, 153, 155, 158, 175, + 178, 179, 180, 191, 140, 167, 187, 190, + 128, 255, 142, 143, 158, 191, 192, 255, + 187, 191, 192, 255, 128, 180, 181, 191, + 128, 156, 157, 159, 160, 255, 145, 191, + 192, 255, 128, 159, 160, 175, 176, 255, + 139, 143, 182, 191, 192, 255, 144, 132, + 135, 150, 191, 192, 255, 158, 175, 148, + 151, 188, 191, 192, 255, 128, 167, 168, + 175, 176, 255, 164, 191, 192, 255, 183, + 191, 192, 255, 128, 149, 150, 159, 160, + 167, 168, 191, 136, 182, 188, 128, 133, + 134, 137, 138, 184, 185, 190, 191, 255, + 150, 159, 183, 191, 192, 255, 179, 128, + 159, 160, 181, 182, 191, 128, 149, 150, + 159, 160, 185, 186, 191, 128, 183, 184, + 189, 190, 191, 128, 148, 152, 129, 143, + 144, 179, 180, 191, 128, 159, 160, 188, + 189, 191, 128, 156, 157, 191, 136, 128, + 164, 165, 191, 128, 181, 182, 191, 128, + 149, 150, 159, 160, 178, 179, 191, 128, + 145, 146, 191, 128, 178, 179, 191, 128, + 130, 131, 132, 133, 134, 135, 136, 138, + 139, 140, 141, 144, 145, 146, 147, 150, + 151, 152, 153, 154, 156, 162, 163, 171, + 176, 177, 178, 129, 191, 128, 130, 131, + 183, 184, 191, 128, 130, 131, 175, 176, + 191, 128, 143, 144, 168, 169, 191, 128, + 130, 131, 166, 167, 191, 182, 128, 143, + 144, 178, 179, 191, 128, 130, 131, 178, + 179, 191, 128, 154, 156, 129, 132, 133, + 191, 146, 128, 171, 172, 191, 135, 137, + 142, 158, 128, 168, 169, 175, 176, 255, + 159, 191, 192, 255, 144, 128, 156, 157, + 161, 162, 191, 128, 134, 135, 138, 139, + 191, 128, 175, 176, 191, 134, 128, 131, + 132, 135, 136, 191, 128, 174, 175, 191, + 128, 151, 152, 155, 156, 191, 132, 128, + 191, 128, 170, 171, 191, 128, 153, 154, + 191, 160, 190, 192, 255, 128, 184, 185, + 191, 137, 128, 174, 175, 191, 128, 129, + 177, 178, 255, 144, 191, 192, 255, 128, + 142, 143, 144, 145, 146, 149, 129, 148, + 150, 191, 175, 191, 192, 255, 132, 191, + 192, 255, 128, 144, 129, 143, 145, 191, + 144, 153, 128, 143, 145, 152, 154, 191, + 135, 191, 192, 255, 160, 168, 169, 171, + 172, 173, 174, 188, 189, 190, 191, 128, + 159, 161, 167, 170, 187, 185, 191, 192, + 255, 128, 143, 144, 173, 174, 191, 128, + 131, 132, 162, 163, 183, 184, 188, 189, + 255, 133, 143, 145, 191, 192, 255, 128, + 146, 147, 159, 160, 191, 160, 128, 191, + 128, 129, 191, 192, 255, 159, 160, 171, + 128, 170, 172, 191, 192, 255, 173, 191, + 192, 255, 179, 191, 192, 255, 128, 176, + 177, 178, 129, 191, 128, 129, 130, 191, + 171, 175, 189, 191, 192, 255, 128, 136, + 137, 143, 144, 153, 154, 191, 144, 145, + 146, 147, 148, 149, 154, 155, 156, 157, + 158, 159, 128, 143, 150, 153, 160, 191, + 149, 157, 173, 186, 188, 160, 161, 163, + 164, 167, 168, 132, 134, 149, 157, 186, + 191, 139, 140, 192, 255, 133, 145, 128, + 134, 135, 137, 138, 255, 166, 167, 129, + 155, 187, 149, 181, 143, 175, 137, 169, + 131, 140, 191, 192, 255, 160, 163, 164, + 165, 184, 185, 186, 128, 159, 161, 162, + 166, 191, 133, 191, 192, 255, 132, 160, + 163, 167, 179, 184, 186, 128, 164, 165, + 168, 169, 187, 188, 191, 130, 135, 137, + 139, 144, 147, 151, 153, 155, 157, 159, + 163, 171, 179, 184, 189, 191, 128, 140, + 141, 148, 149, 160, 161, 164, 165, 166, + 167, 190, 138, 164, 170, 128, 155, 156, + 160, 161, 187, 188, 191, 128, 191, 155, + 156, 128, 191, 151, 191, 192, 255, 156, + 157, 160, 128, 191, 181, 191, 192, 255, + 158, 159, 186, 128, 185, 187, 191, 192, + 255, 162, 191, 192, 255, 160, 168, 128, + 159, 161, 167, 169, 191, 158, 191, 192, + 255, 123, 123, 128, 191, 128, 191, 128, + 191, 128, 191, 128, 191, 10, 123, 123, + 128, 191, 128, 191, 128, 191, 123, 123, + 10, 123, 128, 191, 128, 191, 128, 191, + 123, 123, 170, 181, 183, 186, 128, 150, + 152, 182, 184, 255, 192, 255, 128, 255, + 173, 130, 133, 146, 159, 165, 171, 175, + 255, 181, 190, 184, 185, 192, 255, 140, + 134, 138, 142, 161, 163, 255, 182, 130, + 136, 137, 176, 151, 152, 154, 160, 190, + 136, 144, 192, 255, 135, 129, 130, 132, + 133, 144, 170, 176, 178, 144, 154, 160, + 191, 128, 169, 174, 255, 148, 169, 157, + 158, 189, 190, 192, 255, 144, 255, 139, + 140, 178, 255, 186, 128, 181, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 128, 173, + 128, 155, 160, 180, 182, 189, 148, 161, + 163, 255, 176, 164, 165, 132, 169, 177, + 141, 142, 145, 146, 179, 181, 186, 187, + 158, 133, 134, 137, 138, 143, 150, 152, + 155, 164, 165, 178, 255, 188, 129, 131, + 133, 138, 143, 144, 147, 168, 170, 176, + 178, 179, 181, 182, 184, 185, 190, 255, + 157, 131, 134, 137, 138, 142, 144, 146, + 152, 159, 165, 182, 255, 129, 131, 133, + 141, 143, 145, 147, 168, 170, 176, 178, + 179, 181, 185, 188, 255, 134, 138, 142, + 143, 145, 159, 164, 165, 176, 184, 186, + 255, 129, 131, 133, 140, 143, 144, 147, + 168, 170, 176, 178, 179, 181, 185, 188, + 191, 177, 128, 132, 135, 136, 139, 141, + 150, 151, 156, 157, 159, 163, 166, 175, + 156, 130, 131, 133, 138, 142, 144, 146, + 149, 153, 154, 158, 159, 163, 164, 168, + 170, 174, 185, 190, 191, 144, 151, 128, + 130, 134, 136, 138, 141, 166, 175, 128, + 131, 133, 140, 142, 144, 146, 168, 170, + 185, 189, 255, 133, 137, 151, 142, 148, + 155, 159, 164, 165, 176, 255, 128, 131, + 133, 140, 142, 144, 146, 168, 170, 179, + 181, 185, 188, 191, 158, 128, 132, 134, + 136, 138, 141, 149, 150, 160, 163, 166, + 175, 177, 178, 129, 131, 133, 140, 142, + 144, 146, 186, 189, 255, 133, 137, 143, + 147, 152, 158, 164, 165, 176, 185, 192, + 255, 189, 130, 131, 133, 150, 154, 177, + 179, 187, 138, 150, 128, 134, 143, 148, + 152, 159, 166, 175, 178, 179, 129, 186, + 128, 142, 144, 153, 132, 138, 141, 165, + 167, 129, 130, 135, 136, 148, 151, 153, + 159, 161, 163, 170, 171, 173, 185, 187, + 189, 134, 128, 132, 136, 141, 144, 153, + 156, 159, 128, 181, 183, 185, 152, 153, + 160, 169, 190, 191, 128, 135, 137, 172, + 177, 191, 128, 132, 134, 151, 153, 188, + 134, 128, 129, 130, 131, 137, 138, 139, + 140, 141, 142, 143, 144, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 173, + 175, 176, 177, 178, 179, 181, 182, 183, + 188, 189, 190, 191, 132, 152, 172, 184, + 185, 187, 128, 191, 128, 137, 144, 255, + 158, 159, 134, 187, 136, 140, 142, 143, + 137, 151, 153, 142, 143, 158, 159, 137, + 177, 142, 143, 182, 183, 191, 255, 128, + 130, 133, 136, 150, 152, 255, 145, 150, + 151, 155, 156, 160, 168, 178, 255, 128, + 143, 160, 255, 182, 183, 190, 255, 129, + 255, 173, 174, 192, 255, 129, 154, 160, + 255, 171, 173, 185, 255, 128, 140, 142, + 148, 160, 180, 128, 147, 160, 172, 174, + 176, 178, 179, 148, 150, 152, 155, 158, + 159, 170, 255, 139, 141, 144, 153, 160, + 255, 184, 255, 128, 170, 176, 255, 182, + 255, 128, 158, 160, 171, 176, 187, 134, + 173, 176, 180, 128, 171, 176, 255, 138, + 143, 155, 255, 128, 155, 160, 255, 159, + 189, 190, 192, 255, 167, 128, 137, 144, + 153, 176, 189, 140, 143, 154, 170, 180, + 255, 180, 255, 128, 183, 128, 137, 141, + 189, 128, 136, 144, 146, 148, 182, 184, + 185, 128, 181, 187, 191, 150, 151, 158, + 159, 152, 154, 156, 158, 134, 135, 142, + 143, 190, 255, 190, 128, 180, 182, 188, + 130, 132, 134, 140, 144, 147, 150, 155, + 160, 172, 178, 180, 182, 188, 128, 129, + 130, 131, 132, 133, 134, 176, 177, 178, + 179, 180, 181, 182, 183, 191, 255, 129, + 147, 149, 176, 178, 190, 192, 255, 144, + 156, 161, 144, 156, 165, 176, 130, 135, + 149, 164, 166, 168, 138, 147, 152, 157, + 170, 185, 188, 191, 142, 133, 137, 160, + 255, 137, 255, 128, 174, 176, 255, 159, + 165, 170, 180, 255, 167, 173, 128, 165, + 176, 255, 168, 174, 176, 190, 192, 255, + 128, 150, 160, 166, 168, 174, 176, 182, + 184, 190, 128, 134, 136, 142, 144, 150, + 152, 158, 160, 191, 128, 129, 130, 131, + 132, 133, 134, 135, 144, 145, 255, 133, + 135, 161, 175, 177, 181, 184, 188, 160, + 151, 152, 187, 192, 255, 133, 173, 177, + 255, 143, 159, 187, 255, 176, 191, 182, + 183, 184, 191, 192, 255, 150, 255, 128, + 146, 147, 148, 152, 153, 154, 155, 156, + 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 129, 255, 141, 255, 144, + 189, 141, 143, 172, 255, 191, 128, 175, + 180, 189, 151, 159, 162, 255, 175, 137, + 138, 184, 255, 183, 255, 168, 255, 128, + 179, 188, 134, 143, 154, 159, 184, 186, + 190, 255, 128, 173, 176, 255, 148, 159, + 189, 255, 129, 142, 154, 159, 191, 255, + 128, 182, 128, 141, 144, 153, 160, 182, + 186, 255, 128, 130, 155, 157, 160, 175, + 178, 182, 129, 134, 137, 142, 145, 150, + 160, 166, 168, 174, 176, 255, 155, 166, + 175, 128, 170, 172, 173, 176, 185, 158, + 159, 160, 255, 164, 175, 135, 138, 188, + 255, 164, 169, 171, 172, 173, 174, 175, + 180, 181, 182, 183, 184, 185, 187, 188, + 189, 190, 191, 165, 186, 174, 175, 154, + 255, 190, 128, 134, 147, 151, 157, 168, + 170, 182, 184, 188, 128, 129, 131, 132, + 134, 255, 147, 255, 190, 255, 144, 145, + 136, 175, 188, 255, 128, 143, 160, 175, + 179, 180, 141, 143, 176, 180, 182, 255, + 189, 255, 191, 144, 153, 161, 186, 129, + 154, 166, 255, 191, 255, 130, 135, 138, + 143, 146, 151, 154, 156, 144, 145, 146, + 147, 148, 150, 151, 152, 155, 157, 158, + 160, 170, 171, 172, 175, 161, 169, 128, + 129, 130, 131, 133, 135, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, + 149, 152, 156, 157, 160, 161, 162, 163, + 164, 166, 168, 169, 170, 171, 172, 173, + 174, 176, 177, 153, 155, 178, 179, 128, + 139, 141, 166, 168, 186, 188, 189, 191, + 255, 142, 143, 158, 255, 187, 255, 128, + 180, 189, 128, 156, 160, 255, 145, 159, + 161, 255, 128, 159, 176, 255, 139, 143, + 187, 255, 128, 157, 160, 255, 144, 132, + 135, 150, 255, 158, 159, 170, 175, 148, + 151, 188, 255, 128, 167, 176, 255, 164, + 255, 183, 255, 128, 149, 160, 167, 136, + 188, 128, 133, 138, 181, 183, 184, 191, + 255, 150, 159, 183, 255, 128, 158, 160, + 178, 180, 181, 128, 149, 160, 185, 128, + 183, 190, 191, 191, 128, 131, 133, 134, + 140, 147, 149, 151, 153, 179, 184, 186, + 160, 188, 128, 156, 128, 135, 137, 166, + 128, 181, 128, 149, 160, 178, 128, 145, + 128, 178, 129, 130, 131, 132, 133, 135, + 136, 138, 139, 140, 141, 144, 145, 146, + 147, 150, 151, 152, 153, 154, 155, 156, + 162, 163, 171, 176, 177, 178, 128, 134, + 135, 165, 176, 190, 144, 168, 176, 185, + 128, 180, 182, 191, 182, 144, 179, 155, + 133, 137, 141, 143, 157, 255, 190, 128, + 145, 147, 183, 136, 128, 134, 138, 141, + 143, 157, 159, 168, 176, 255, 171, 175, + 186, 255, 128, 131, 133, 140, 143, 144, + 147, 168, 170, 176, 178, 179, 181, 185, + 188, 191, 144, 151, 128, 132, 135, 136, + 139, 141, 157, 163, 166, 172, 176, 180, + 128, 138, 144, 153, 134, 136, 143, 154, + 255, 128, 181, 184, 255, 129, 151, 158, + 255, 129, 131, 133, 143, 154, 255, 128, + 137, 128, 153, 157, 171, 176, 185, 160, + 255, 170, 190, 192, 255, 128, 184, 128, + 136, 138, 182, 184, 191, 128, 144, 153, + 178, 255, 168, 144, 145, 183, 255, 128, + 142, 145, 149, 129, 141, 144, 146, 147, + 148, 175, 255, 132, 255, 128, 144, 129, + 143, 144, 153, 145, 152, 135, 255, 160, + 168, 169, 171, 172, 173, 174, 188, 189, + 190, 191, 161, 167, 185, 255, 128, 158, + 160, 169, 144, 173, 176, 180, 128, 131, + 144, 153, 163, 183, 189, 255, 144, 255, + 133, 143, 191, 255, 143, 159, 160, 128, + 129, 255, 159, 160, 171, 172, 255, 173, + 255, 179, 255, 128, 176, 177, 178, 128, + 129, 171, 175, 189, 255, 128, 136, 144, + 153, 157, 158, 133, 134, 137, 144, 145, + 146, 147, 148, 149, 154, 155, 156, 157, + 158, 159, 168, 169, 170, 150, 153, 165, + 169, 173, 178, 187, 255, 131, 132, 140, + 169, 174, 255, 130, 132, 149, 157, 173, + 186, 188, 160, 161, 163, 164, 167, 168, + 132, 134, 149, 157, 186, 139, 140, 191, + 255, 134, 128, 132, 138, 144, 146, 255, + 166, 167, 129, 155, 187, 149, 181, 143, + 175, 137, 169, 131, 140, 141, 192, 255, + 128, 182, 187, 255, 173, 180, 182, 255, + 132, 155, 159, 161, 175, 128, 160, 163, + 164, 165, 184, 185, 186, 161, 162, 128, + 134, 136, 152, 155, 161, 163, 164, 166, + 170, 133, 143, 151, 255, 139, 143, 154, + 255, 164, 167, 185, 187, 128, 131, 133, + 159, 161, 162, 169, 178, 180, 183, 130, + 135, 137, 139, 148, 151, 153, 155, 157, + 159, 164, 190, 141, 143, 145, 146, 161, + 162, 167, 170, 172, 178, 180, 183, 185, + 188, 128, 137, 139, 155, 161, 163, 165, + 169, 171, 187, 155, 156, 151, 255, 156, + 157, 160, 181, 255, 186, 187, 255, 162, + 255, 160, 168, 161, 167, 158, 255, 160, + 132, 135, 133, 134, 176, 255, 128, 191, + 154, 164, 168, 128, 149, 150, 191, 128, + 152, 153, 191, 181, 128, 159, 160, 189, + 190, 191, 189, 128, 131, 132, 185, 186, + 191, 144, 128, 151, 152, 161, 162, 176, + 177, 255, 169, 177, 129, 132, 141, 142, + 145, 146, 179, 181, 186, 188, 190, 191, + 192, 255, 142, 158, 128, 155, 156, 161, + 162, 175, 176, 177, 178, 191, 169, 177, + 180, 183, 128, 132, 133, 138, 139, 142, + 143, 144, 145, 146, 147, 185, 186, 191, + 157, 128, 152, 153, 158, 159, 177, 178, + 180, 181, 191, 142, 146, 169, 177, 180, + 189, 128, 132, 133, 185, 186, 191, 144, + 185, 128, 159, 160, 161, 162, 191, 169, + 177, 180, 189, 128, 132, 133, 140, 141, + 142, 143, 144, 145, 146, 147, 185, 186, + 191, 158, 177, 128, 155, 156, 161, 162, + 191, 131, 145, 155, 157, 128, 132, 133, + 138, 139, 141, 142, 149, 150, 152, 153, + 159, 160, 162, 163, 164, 165, 167, 168, + 170, 171, 173, 174, 185, 186, 191, 144, + 128, 191, 141, 145, 169, 189, 128, 132, + 133, 185, 186, 191, 128, 151, 152, 154, + 155, 159, 160, 161, 162, 191, 128, 141, + 145, 169, 180, 189, 129, 132, 133, 185, + 186, 191, 158, 128, 159, 160, 161, 162, + 176, 177, 178, 179, 191, 141, 145, 189, + 128, 132, 133, 186, 187, 191, 142, 128, + 147, 148, 150, 151, 158, 159, 161, 162, + 185, 186, 191, 178, 188, 128, 132, 133, + 150, 151, 153, 154, 189, 190, 191, 128, + 134, 135, 191, 128, 177, 129, 179, 180, + 191, 128, 131, 137, 141, 152, 160, 164, + 166, 172, 177, 189, 129, 132, 133, 134, + 135, 138, 139, 147, 148, 167, 168, 169, + 170, 179, 180, 191, 133, 128, 134, 135, + 155, 156, 159, 160, 191, 128, 129, 191, + 136, 128, 172, 173, 191, 128, 135, 136, + 140, 141, 191, 191, 128, 170, 171, 190, + 161, 128, 143, 144, 149, 150, 153, 154, + 157, 158, 164, 165, 166, 167, 173, 174, + 176, 177, 180, 181, 255, 130, 141, 143, + 159, 134, 187, 136, 140, 142, 143, 137, + 151, 153, 142, 143, 158, 159, 137, 177, + 191, 142, 143, 182, 183, 192, 255, 129, + 151, 128, 133, 134, 135, 136, 255, 145, + 150, 151, 155, 191, 192, 255, 128, 143, + 144, 159, 160, 255, 182, 183, 190, 191, + 192, 255, 128, 129, 255, 173, 174, 192, + 255, 128, 129, 154, 155, 159, 160, 255, + 171, 173, 185, 191, 192, 255, 141, 128, + 145, 146, 159, 160, 177, 178, 191, 173, + 128, 145, 146, 159, 160, 176, 177, 191, + 128, 179, 180, 191, 151, 156, 128, 191, + 128, 159, 160, 255, 184, 191, 192, 255, + 169, 128, 170, 171, 175, 176, 255, 182, + 191, 192, 255, 128, 158, 159, 191, 128, + 143, 144, 173, 174, 175, 176, 180, 181, + 191, 128, 171, 172, 175, 176, 255, 138, + 191, 192, 255, 128, 150, 151, 159, 160, + 255, 149, 191, 192, 255, 167, 128, 191, + 128, 132, 133, 179, 180, 191, 128, 132, + 133, 139, 140, 191, 128, 130, 131, 160, + 161, 173, 174, 175, 176, 185, 186, 255, + 166, 191, 192, 255, 128, 163, 164, 191, + 128, 140, 141, 143, 144, 153, 154, 189, + 190, 191, 128, 136, 137, 191, 173, 128, + 168, 169, 177, 178, 180, 181, 182, 183, + 191, 0, 127, 192, 255, 150, 151, 158, + 159, 152, 154, 156, 158, 134, 135, 142, + 143, 190, 191, 192, 255, 181, 189, 191, + 128, 190, 133, 181, 128, 129, 130, 140, + 141, 143, 144, 147, 148, 149, 150, 155, + 156, 159, 160, 172, 173, 177, 178, 188, + 189, 191, 177, 191, 128, 190, 128, 143, + 144, 156, 157, 191, 130, 135, 148, 164, + 166, 168, 128, 137, 138, 149, 150, 151, + 152, 157, 158, 169, 170, 185, 186, 187, + 188, 191, 142, 128, 132, 133, 137, 138, + 159, 160, 255, 137, 191, 192, 255, 175, + 128, 255, 159, 165, 170, 175, 177, 180, + 191, 192, 255, 166, 173, 128, 167, 168, + 175, 176, 255, 168, 174, 176, 191, 192, + 255, 167, 175, 183, 191, 128, 150, 151, + 159, 160, 190, 135, 143, 151, 128, 158, + 159, 191, 128, 132, 133, 135, 136, 160, + 161, 169, 170, 176, 177, 181, 182, 183, + 184, 188, 189, 191, 160, 151, 154, 187, + 192, 255, 128, 132, 133, 173, 174, 176, + 177, 255, 143, 159, 187, 191, 192, 255, + 128, 175, 176, 191, 150, 191, 192, 255, + 141, 191, 192, 255, 128, 143, 144, 189, + 190, 191, 141, 143, 160, 169, 172, 191, + 192, 255, 191, 128, 174, 175, 190, 128, + 157, 158, 159, 160, 255, 176, 191, 192, + 255, 128, 150, 151, 159, 160, 161, 162, + 255, 175, 137, 138, 184, 191, 192, 255, + 128, 182, 183, 255, 130, 134, 139, 163, + 191, 192, 255, 128, 129, 130, 179, 180, + 191, 187, 189, 128, 177, 178, 183, 184, + 191, 128, 137, 138, 165, 166, 175, 176, + 255, 135, 159, 189, 191, 192, 255, 128, + 131, 132, 178, 179, 191, 143, 165, 191, + 128, 159, 160, 175, 176, 185, 186, 190, + 128, 168, 169, 191, 131, 186, 128, 139, + 140, 159, 160, 182, 183, 189, 190, 255, + 176, 178, 180, 183, 184, 190, 191, 192, + 255, 129, 128, 130, 131, 154, 155, 157, + 158, 159, 160, 170, 171, 177, 178, 180, + 181, 191, 128, 167, 175, 129, 134, 135, + 136, 137, 142, 143, 144, 145, 150, 151, + 159, 160, 255, 155, 166, 175, 128, 162, + 163, 191, 164, 175, 135, 138, 188, 191, + 192, 255, 174, 175, 154, 191, 192, 255, + 157, 169, 183, 189, 191, 128, 134, 135, + 146, 147, 151, 152, 158, 159, 190, 130, + 133, 128, 255, 178, 191, 192, 255, 128, + 146, 147, 255, 190, 191, 192, 255, 128, + 143, 144, 255, 144, 145, 136, 175, 188, + 191, 192, 255, 181, 128, 175, 176, 255, + 189, 191, 192, 255, 128, 160, 161, 186, + 187, 191, 128, 129, 154, 155, 165, 166, + 255, 191, 192, 255, 128, 129, 130, 135, + 136, 137, 138, 143, 144, 145, 146, 151, + 152, 153, 154, 156, 157, 191, 128, 191, + 128, 129, 130, 131, 133, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, + 149, 152, 156, 157, 160, 161, 162, 163, + 164, 166, 168, 169, 170, 171, 172, 173, + 174, 176, 177, 132, 151, 153, 155, 158, + 175, 178, 179, 180, 191, 140, 167, 187, + 190, 128, 255, 142, 143, 158, 191, 192, + 255, 187, 191, 192, 255, 128, 180, 181, + 191, 128, 156, 157, 159, 160, 255, 145, + 191, 192, 255, 128, 159, 160, 175, 176, + 255, 139, 143, 182, 191, 192, 255, 144, + 132, 135, 150, 191, 192, 255, 158, 175, + 148, 151, 188, 191, 192, 255, 128, 167, + 168, 175, 176, 255, 164, 191, 192, 255, + 183, 191, 192, 255, 128, 149, 150, 159, + 160, 167, 168, 191, 136, 182, 188, 128, + 133, 134, 137, 138, 184, 185, 190, 191, + 255, 150, 159, 183, 191, 192, 255, 179, + 128, 159, 160, 181, 182, 191, 128, 149, + 150, 159, 160, 185, 186, 191, 128, 183, + 184, 189, 190, 191, 128, 148, 152, 129, + 143, 144, 179, 180, 191, 128, 159, 160, + 188, 189, 191, 128, 156, 157, 191, 136, + 128, 164, 165, 191, 128, 181, 182, 191, + 128, 149, 150, 159, 160, 178, 179, 191, + 128, 145, 146, 191, 128, 178, 179, 191, + 128, 130, 131, 132, 133, 134, 135, 136, + 138, 139, 140, 141, 144, 145, 146, 147, + 150, 151, 152, 153, 154, 156, 162, 163, + 171, 176, 177, 178, 129, 191, 128, 130, + 131, 183, 184, 191, 128, 130, 131, 175, + 176, 191, 128, 143, 144, 168, 169, 191, + 128, 130, 131, 166, 167, 191, 182, 128, + 143, 144, 178, 179, 191, 128, 130, 131, + 178, 179, 191, 128, 154, 156, 129, 132, + 133, 191, 146, 128, 171, 172, 191, 135, + 137, 142, 158, 128, 168, 169, 175, 176, + 255, 159, 191, 192, 255, 144, 128, 156, + 157, 161, 162, 191, 128, 134, 135, 138, + 139, 191, 128, 175, 176, 191, 134, 128, + 131, 132, 135, 136, 191, 128, 174, 175, + 191, 128, 151, 152, 155, 156, 191, 132, + 128, 191, 128, 170, 171, 191, 128, 153, + 154, 191, 160, 190, 192, 255, 128, 184, + 185, 191, 137, 128, 174, 175, 191, 128, + 129, 177, 178, 255, 144, 191, 192, 255, + 128, 142, 143, 144, 145, 146, 149, 129, + 148, 150, 191, 175, 191, 192, 255, 132, + 191, 192, 255, 128, 144, 129, 143, 145, + 191, 144, 153, 128, 143, 145, 152, 154, + 191, 135, 191, 192, 255, 160, 168, 169, + 171, 172, 173, 174, 188, 189, 190, 191, + 128, 159, 161, 167, 170, 187, 185, 191, + 192, 255, 128, 143, 144, 173, 174, 191, + 128, 131, 132, 162, 163, 183, 184, 188, + 189, 255, 133, 143, 145, 191, 192, 255, + 128, 146, 147, 159, 160, 191, 160, 128, + 191, 128, 129, 191, 192, 255, 159, 160, + 171, 128, 170, 172, 191, 192, 255, 173, + 191, 192, 255, 179, 191, 192, 255, 128, + 176, 177, 178, 129, 191, 128, 129, 130, + 191, 171, 175, 189, 191, 192, 255, 128, + 136, 137, 143, 144, 153, 154, 191, 144, + 145, 146, 147, 148, 149, 154, 155, 156, + 157, 158, 159, 128, 143, 150, 153, 160, + 191, 149, 157, 173, 186, 188, 160, 161, + 163, 164, 167, 168, 132, 134, 149, 157, + 186, 191, 139, 140, 192, 255, 133, 145, + 128, 134, 135, 137, 138, 255, 166, 167, + 129, 155, 187, 149, 181, 143, 175, 137, + 169, 131, 140, 191, 192, 255, 160, 163, + 164, 165, 184, 185, 186, 128, 159, 161, + 162, 166, 191, 133, 191, 192, 255, 132, + 160, 163, 167, 179, 184, 186, 128, 164, + 165, 168, 169, 187, 188, 191, 130, 135, + 137, 139, 144, 147, 151, 153, 155, 157, + 159, 163, 171, 179, 184, 189, 191, 128, + 140, 141, 148, 149, 160, 161, 164, 165, + 166, 167, 190, 138, 164, 170, 128, 155, + 156, 160, 161, 187, 188, 191, 128, 191, + 155, 156, 128, 191, 151, 191, 192, 255, + 156, 157, 160, 128, 191, 181, 191, 192, + 255, 158, 159, 186, 128, 185, 187, 191, + 192, 255, 162, 191, 192, 255, 160, 168, + 128, 159, 161, 167, 169, 191, 158, 191, + 192, 255, 9, 10, 13, 32, 33, 34, + 35, 37, 38, 46, 47, 60, 61, 62, + 64, 92, 95, 123, 124, 125, 126, 127, + 194, 195, 198, 199, 203, 204, 205, 206, + 207, 210, 212, 213, 214, 215, 216, 217, + 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 233, 234, 237, 238, 239, 240, + 0, 39, 40, 45, 48, 57, 58, 63, + 65, 90, 91, 96, 97, 122, 192, 193, + 196, 218, 229, 236, 241, 247, 9, 32, + 10, 61, 10, 38, 46, 42, 47, 42, + 46, 69, 101, 48, 57, 60, 61, 61, + 62, 61, 45, 95, 194, 195, 198, 199, + 203, 204, 205, 206, 207, 210, 212, 213, + 214, 215, 216, 217, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 233, 234, + 237, 239, 240, 243, 48, 57, 65, 90, + 97, 122, 196, 218, 229, 236, 124, 125, + 128, 191, 170, 181, 186, 128, 191, 151, + 183, 128, 255, 192, 255, 0, 127, 173, + 130, 133, 146, 159, 165, 171, 175, 191, + 192, 255, 181, 190, 128, 175, 176, 183, + 184, 185, 186, 191, 134, 139, 141, 162, + 128, 135, 136, 255, 182, 130, 137, 176, + 151, 152, 154, 160, 136, 191, 192, 255, + 128, 143, 144, 170, 171, 175, 176, 178, + 179, 191, 128, 159, 160, 191, 176, 128, + 138, 139, 173, 174, 255, 148, 150, 164, + 167, 173, 176, 185, 189, 190, 192, 255, + 144, 128, 145, 146, 175, 176, 191, 128, + 140, 141, 255, 166, 176, 178, 191, 192, + 255, 186, 128, 137, 138, 170, 171, 179, + 180, 181, 182, 191, 160, 161, 162, 164, + 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 128, 191, 128, 129, 130, 131, + 137, 138, 139, 140, 141, 142, 143, 144, + 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 182, 183, 184, 188, + 189, 190, 191, 132, 187, 129, 130, 132, + 133, 134, 176, 177, 178, 179, 180, 181, + 182, 183, 128, 191, 128, 129, 130, 131, + 132, 133, 134, 135, 144, 136, 143, 145, + 191, 192, 255, 182, 183, 184, 128, 191, + 128, 191, 191, 128, 190, 192, 255, 128, + 146, 147, 148, 152, 153, 154, 155, 156, + 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 129, 191, 192, 255, 158, + 159, 128, 157, 160, 191, 192, 255, 128, + 191, 164, 169, 171, 172, 173, 174, 175, + 180, 181, 182, 183, 184, 185, 187, 188, + 189, 190, 191, 128, 163, 165, 186, 144, + 145, 146, 147, 148, 150, 151, 152, 155, + 157, 158, 160, 170, 171, 172, 175, 128, + 159, 161, 169, 173, 191, 128, 191, 10, + 13, 34, 36, 37, 92, 128, 191, 192, + 223, 224, 239, 240, 247, 248, 255, 10, + 13, 34, 36, 37, 92, 128, 191, 192, + 223, 224, 239, 240, 247, 248, 255, 10, + 13, 34, 36, 37, 92, 128, 191, 192, + 223, 224, 239, 240, 247, 248, 255, 10, + 13, 34, 36, 37, 92, 128, 191, 192, + 223, 224, 239, 240, 247, 248, 255, 10, + 13, 36, 37, 92, 128, 191, 192, 223, + 224, 239, 240, 247, 248, 255, 36, 37, + 92, 123, 192, 223, 224, 239, 240, 247, + 10, 13, 34, 36, 37, 92, 123, 128, 191, 192, 223, 224, 239, 240, 247, 248, - 255, 92, 36, 37, 192, 223, 224, 239, - 240, 247, 10, 13, 34, 92, 36, 37, - 192, 223, 224, 239, 240, 247, 248, 255, - 10, 13, 34, 92, 36, 37, 128, 223, + 255, 10, 13, 34, 36, 37, 92, 123, + 128, 191, 192, 223, 224, 239, 240, 247, + 248, 255, 10, 13, 34, 36, 37, 92, + 123, 128, 191, 192, 223, 224, 239, 240, + 247, 248, 255, 10, 13, 34, 36, 37, + 92, 128, 191, 192, 223, 224, 239, 240, + 247, 248, 255, 36, 37, 92, 123, 192, + 223, 224, 239, 240, 247, 10, 13, 34, + 36, 37, 92, 123, 128, 191, 192, 223, 224, 239, 240, 247, 248, 255, 10, 13, - 34, 92, 36, 37, 128, 191, 192, 223, + 34, 36, 37, 92, 128, 191, 192, 223, + 224, 239, 240, 247, 248, 255, 10, 13, + 34, 36, 37, 92, 128, 191, 192, 223, + 224, 239, 240, 247, 248, 255, 10, 13, + 34, 36, 37, 92, 128, 191, 192, 223, + 224, 239, 240, 247, 248, 255, 10, 13, + 34, 36, 37, 92, 128, 191, 192, 223, + 224, 239, 240, 247, 248, 255, 10, 13, + 34, 36, 37, 92, 128, 191, 192, 223, + 224, 239, 240, 247, 248, 255, 10, 13, + 34, 36, 37, 92, 128, 191, 192, 223, + 224, 239, 240, 247, 248, 255, 10, 13, + 34, 36, 37, 92, 128, 191, 192, 223, 224, 239, 240, 247, 248, 255, 123, 126, 123, 126, 128, 191, 128, 191, 128, 191, 10, 13, 36, 37, 128, 191, 192, 223, 224, 239, 240, 247, 248, 255, 10, 13, 36, 37, 128, 191, 192, 223, 224, 239, - 240, 247, 248, 255, 126, 126, 128, 191, - 128, 191, 128, 191, 10, 13, 36, 37, + 240, 247, 248, 255, 10, 13, 36, 37, 128, 191, 192, 223, 224, 239, 240, 247, 248, 255, 10, 13, 36, 37, 128, 191, 192, 223, 224, 239, 240, 247, 248, 255, 126, 126, 128, 191, 128, 191, 128, 191, - 194, 195, 198, 199, 203, 204, 205, 206, - 207, 210, 212, 213, 214, 215, 216, 217, - 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 233, 234, 237, 238, 239, 240, - 65, 90, 97, 122, 128, 191, 192, 193, - 196, 218, 229, 236, 241, 247, 248, 255, - 45, 95, 194, 195, 198, 199, 203, 204, - 205, 206, 207, 210, 212, 213, 214, 215, - 216, 217, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 233, 234, 237, 239, - 240, 243, 48, 57, 65, 90, 97, 122, - 196, 218, 229, 236, 128, 191, 170, 181, - 186, 128, 191, 151, 183, 128, 255, 192, - 255, 0, 127, 173, 130, 133, 146, 159, - 165, 171, 175, 191, 192, 255, 181, 190, - 128, 175, 176, 183, 184, 185, 186, 191, - 134, 139, 141, 162, 128, 135, 136, 255, - 182, 130, 137, 176, 151, 152, 154, 160, - 136, 191, 192, 255, 128, 143, 144, 170, - 171, 175, 176, 178, 179, 191, 128, 159, - 160, 191, 176, 128, 138, 139, 173, 174, - 255, 148, 150, 164, 167, 173, 176, 185, - 189, 190, 192, 255, 144, 128, 145, 146, - 175, 176, 191, 128, 140, 141, 255, 166, - 176, 178, 191, 192, 255, 186, 128, 137, - 138, 170, 171, 179, 180, 181, 182, 191, - 160, 161, 162, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 128, 191, - 128, 129, 130, 131, 137, 138, 139, 140, - 141, 142, 143, 144, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, + 10, 13, 36, 37, 128, 191, 192, 223, + 224, 239, 240, 247, 248, 255, 10, 13, + 36, 37, 128, 191, 192, 223, 224, 239, + 240, 247, 248, 255, 126, 126, 128, 191, + 128, 191, 128, 191, 95, 194, 195, 198, + 199, 203, 204, 205, 206, 207, 210, 212, + 213, 214, 215, 216, 217, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 233, + 234, 237, 238, 239, 240, 65, 90, 97, + 122, 128, 191, 192, 193, 196, 218, 229, + 236, 241, 247, 248, 255, 45, 95, 194, + 195, 198, 199, 203, 204, 205, 206, 207, + 210, 212, 213, 214, 215, 216, 217, 219, + 220, 221, 222, 223, 224, 225, 226, 227, + 228, 233, 234, 237, 239, 240, 243, 48, + 57, 65, 90, 97, 122, 196, 218, 229, + 236, 128, 191, 170, 181, 186, 128, 191, + 151, 183, 128, 255, 192, 255, 0, 127, + 173, 130, 133, 146, 159, 165, 171, 175, + 191, 192, 255, 181, 190, 128, 175, 176, + 183, 184, 185, 186, 191, 134, 139, 141, + 162, 128, 135, 136, 255, 182, 130, 137, + 176, 151, 152, 154, 160, 136, 191, 192, + 255, 128, 143, 144, 170, 171, 175, 176, + 178, 179, 191, 128, 159, 160, 191, 176, + 128, 138, 139, 173, 174, 255, 148, 150, + 164, 167, 173, 176, 185, 189, 190, 192, + 255, 144, 128, 145, 146, 175, 176, 191, + 128, 140, 141, 255, 166, 176, 178, 191, + 192, 255, 186, 128, 137, 138, 170, 171, + 179, 180, 181, 182, 191, 160, 161, 162, + 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 128, 191, 128, 129, 130, + 131, 137, 138, 139, 140, 141, 142, 143, + 144, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 182, 183, 184, + 188, 189, 190, 191, 132, 187, 129, 130, + 132, 133, 134, 176, 177, 178, 179, 180, + 181, 182, 183, 128, 191, 128, 129, 130, + 131, 132, 133, 134, 135, 144, 136, 143, + 145, 191, 192, 255, 182, 183, 184, 128, + 191, 128, 191, 191, 128, 190, 192, 255, + 128, 146, 147, 148, 152, 153, 154, 155, + 156, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, - 182, 183, 184, 188, 189, 190, 191, 132, - 187, 129, 130, 132, 133, 134, 176, 177, - 178, 179, 180, 181, 182, 183, 128, 191, - 128, 129, 130, 131, 132, 133, 134, 135, - 144, 136, 143, 145, 191, 192, 255, 182, - 183, 184, 128, 191, 128, 191, 191, 128, - 190, 192, 255, 128, 146, 147, 148, 152, - 153, 154, 155, 156, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 129, - 191, 192, 255, 158, 159, 128, 157, 160, - 191, 192, 255, 128, 191, 164, 169, 171, - 172, 173, 174, 175, 180, 181, 182, 183, - 184, 185, 187, 188, 189, 190, 191, 128, - 163, 165, 186, 144, 145, 146, 147, 148, - 150, 151, 152, 155, 157, 158, 160, 170, - 171, 172, 175, 128, 159, 161, 169, 173, - 191, 128, 191, + 173, 174, 175, 176, 129, 191, 192, 255, + 158, 159, 128, 157, 160, 191, 192, 255, + 128, 191, 164, 169, 171, 172, 173, 174, + 175, 180, 181, 182, 183, 184, 185, 187, + 188, 189, 190, 191, 128, 163, 165, 186, + 144, 145, 146, 147, 148, 150, 151, 152, + 155, 157, 158, 160, 170, 171, 172, 175, + 128, 159, 161, 169, 173, 191, 128, 191, } var _hcltok_single_lengths []byte = []byte{ 0, 1, 1, 1, 2, 3, 2, 0, - 31, 30, 36, 1, 4, 0, 0, 0, + 32, 31, 36, 1, 4, 0, 0, 0, 0, 1, 2, 1, 1, 1, 1, 0, 1, 1, 0, 0, 2, 0, 0, 0, 1, 32, 0, 0, 0, 0, 1, 3, @@ -1657,83 +1692,85 @@ var _hcltok_single_lengths []byte = []byte{ 4, 1, 5, 2, 0, 3, 2, 2, 2, 1, 7, 0, 7, 17, 3, 0, 2, 0, 3, 0, 0, 1, 0, 2, - 0, 1, 0, 0, 0, 0, 0, 1, - 1, 0, 0, 0, 1, 1, 1, 1, - 0, 0, 0, 1, 1, 4, 0, 0, - 0, 0, 1, 2, 1, 1, 1, 1, - 0, 1, 1, 0, 0, 2, 0, 0, - 0, 1, 32, 0, 0, 0, 0, 1, - 3, 1, 1, 1, 0, 2, 0, 1, - 1, 2, 0, 3, 0, 1, 0, 2, - 1, 2, 0, 0, 5, 1, 4, 0, - 0, 1, 43, 0, 0, 0, 2, 3, - 2, 1, 1, 0, 0, 0, 0, 0, + 0, 1, 1, 0, 0, 0, 0, 0, + 1, 1, 1, 0, 0, 0, 1, 1, + 1, 1, 0, 0, 0, 1, 1, 4, + 0, 0, 0, 0, 1, 2, 1, 1, + 1, 1, 0, 1, 1, 0, 0, 2, + 0, 0, 0, 1, 32, 0, 0, 0, + 0, 1, 3, 1, 1, 1, 0, 2, + 0, 1, 1, 2, 0, 3, 0, 1, + 0, 2, 1, 2, 0, 0, 5, 1, + 4, 0, 0, 1, 43, 0, 0, 0, + 2, 3, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 1, 0, 15, 0, 0, 0, 1, - 6, 1, 0, 0, 1, 0, 2, 0, - 0, 0, 9, 0, 1, 1, 0, 0, - 0, 3, 0, 1, 0, 28, 0, 0, - 0, 1, 0, 1, 0, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 1, - 0, 2, 0, 0, 18, 0, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 16, 36, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 1, 0, 0, - 0, 0, 0, 0, 0, 28, 0, 0, - 0, 1, 1, 1, 1, 0, 0, 2, - 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1, 1, 4, 0, 0, - 2, 2, 0, 11, 0, 0, 0, 0, - 0, 0, 0, 1, 1, 3, 0, 0, - 4, 0, 0, 0, 18, 0, 0, 0, - 1, 4, 1, 4, 1, 0, 3, 2, - 2, 2, 1, 0, 0, 1, 8, 0, - 0, 0, 4, 12, 0, 2, 0, 3, - 0, 1, 0, 2, 0, 1, 2, 0, - 0, 3, 0, 1, 1, 1, 2, 2, - 4, 1, 6, 2, 4, 2, 4, 1, - 4, 0, 6, 1, 3, 1, 2, 0, - 2, 11, 1, 1, 1, 0, 1, 1, - 0, 2, 0, 3, 3, 2, 1, 0, - 0, 0, 1, 0, 1, 0, 1, 1, - 0, 2, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, - 4, 3, 2, 2, 0, 6, 1, 0, - 1, 1, 0, 2, 0, 4, 3, 0, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 1, 0, 3, - 0, 2, 0, 0, 0, 3, 0, 2, - 1, 1, 3, 1, 0, 0, 0, 0, - 0, 5, 2, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 1, 1, 0, 0, - 35, 4, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 1, 0, 15, 0, 0, + 0, 1, 6, 1, 0, 0, 1, 0, + 2, 0, 0, 0, 9, 0, 1, 1, + 0, 0, 0, 3, 0, 1, 0, 28, + 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, - 3, 0, 1, 0, 0, 3, 0, 0, - 1, 0, 0, 0, 0, 28, 0, 0, - 0, 0, 1, 0, 3, 1, 4, 0, - 1, 0, 0, 1, 0, 0, 1, 0, - 0, 0, 0, 1, 1, 0, 7, 0, - 0, 2, 2, 0, 11, 0, 0, 0, - 0, 0, 1, 1, 3, 0, 0, 4, - 0, 0, 0, 12, 1, 4, 1, 5, - 2, 0, 3, 2, 2, 2, 1, 7, - 0, 7, 17, 3, 0, 2, 0, 3, - 0, 0, 1, 0, 2, 0, 53, 2, - 1, 1, 1, 1, 1, 2, 1, 3, - 2, 2, 1, 34, 1, 1, 0, 3, - 2, 0, 0, 0, 1, 2, 4, 1, - 0, 1, 0, 0, 0, 0, 1, 1, - 1, 0, 0, 1, 30, 47, 13, 9, - 3, 0, 1, 28, 2, 0, 18, 16, - 0, 6, 4, 3, 1, 4, 4, 4, - 1, 1, 1, 1, 0, 0, 0, 4, - 2, 1, 1, 0, 0, 0, 4, 2, - 1, 1, 0, 0, 0, 32, 34, 0, + 0, 1, 0, 2, 0, 0, 18, 0, + 0, 1, 0, 0, 0, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 16, 36, + 0, 0, 0, 0, 1, 0, 0, 0, + 0, 0, 1, 0, 0, 0, 0, 0, + 0, 2, 0, 0, 0, 0, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 28, + 0, 0, 0, 1, 1, 1, 1, 0, + 0, 2, 0, 1, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 1, 4, + 0, 0, 2, 2, 0, 11, 0, 0, + 0, 0, 0, 0, 0, 1, 1, 3, + 0, 0, 4, 0, 0, 0, 18, 0, + 0, 0, 1, 4, 1, 4, 1, 0, + 3, 2, 2, 2, 1, 0, 0, 1, + 8, 0, 0, 0, 4, 12, 0, 2, + 0, 3, 0, 1, 0, 2, 0, 1, + 2, 0, 0, 3, 0, 1, 1, 1, + 2, 2, 4, 1, 6, 2, 4, 2, + 4, 1, 4, 0, 6, 1, 3, 1, + 2, 0, 2, 11, 1, 1, 1, 0, + 1, 1, 0, 2, 0, 3, 3, 2, + 1, 0, 0, 0, 1, 0, 1, 0, + 1, 1, 0, 2, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 4, 3, 2, 2, 0, 6, + 1, 0, 1, 1, 0, 2, 0, 4, + 3, 0, 1, 1, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 1, + 0, 3, 0, 2, 0, 0, 0, 3, + 0, 2, 1, 1, 3, 1, 0, 0, + 0, 0, 0, 5, 2, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 1, 1, + 0, 0, 35, 4, 0, 0, 0, 0, + 0, 0, 0, 1, 0, 0, 0, 0, + 0, 0, 3, 0, 1, 0, 0, 3, + 0, 0, 1, 0, 0, 0, 0, 28, + 0, 0, 0, 0, 1, 0, 3, 1, + 4, 0, 1, 0, 0, 1, 0, 0, + 1, 0, 0, 0, 0, 1, 1, 0, + 7, 0, 0, 2, 2, 0, 11, 0, + 0, 0, 0, 0, 1, 1, 3, 0, + 0, 4, 0, 0, 0, 12, 1, 4, + 1, 5, 2, 0, 3, 2, 2, 2, + 1, 7, 0, 7, 17, 3, 0, 2, + 0, 3, 0, 0, 1, 0, 2, 0, + 54, 2, 1, 1, 1, 1, 1, 2, + 1, 3, 2, 2, 1, 34, 1, 1, + 0, 3, 2, 0, 0, 0, 1, 2, + 4, 1, 0, 1, 0, 0, 0, 0, + 1, 1, 1, 0, 0, 1, 30, 47, + 13, 9, 3, 0, 1, 28, 2, 0, + 18, 16, 0, 6, 6, 6, 6, 5, + 4, 7, 7, 7, 6, 4, 7, 6, + 6, 6, 6, 6, 6, 6, 1, 1, + 1, 1, 0, 0, 0, 4, 4, 4, + 4, 1, 1, 0, 0, 0, 4, 2, + 1, 1, 0, 0, 0, 33, 34, 0, 3, 2, 0, 0, 0, 1, 2, 4, 1, 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 30, 47, 13, @@ -1858,82 +1895,84 @@ var _hcltok_range_lengths []byte = []byte{ 3, 0, 2, 3, 1, 0, 0, 0, 0, 2, 3, 2, 4, 6, 4, 1, 1, 2, 1, 2, 1, 3, 2, 3, - 2, 0, 1, 1, 1, 1, 1, 0, - 0, 1, 1, 1, 0, 0, 0, 0, - 1, 1, 1, 0, 0, 0, 3, 0, - 1, 1, 4, 2, 3, 0, 1, 0, - 2, 2, 4, 2, 2, 3, 1, 1, - 1, 1, 0, 1, 1, 2, 2, 1, - 4, 6, 9, 6, 8, 5, 8, 7, - 10, 4, 6, 4, 7, 7, 5, 5, - 4, 5, 1, 2, 8, 4, 3, 3, - 3, 0, 3, 1, 2, 1, 2, 2, - 3, 3, 1, 3, 2, 2, 1, 2, - 2, 2, 3, 4, 4, 3, 1, 2, - 1, 3, 2, 2, 2, 2, 2, 3, - 3, 1, 1, 2, 1, 3, 2, 2, - 3, 2, 7, 0, 1, 4, 1, 2, - 4, 2, 1, 2, 0, 2, 2, 3, - 5, 5, 1, 4, 1, 1, 2, 2, - 1, 0, 0, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 1, 1, 1, 4, - 2, 2, 3, 1, 4, 4, 6, 1, - 3, 1, 1, 2, 1, 1, 1, 5, - 3, 1, 1, 1, 2, 3, 3, 1, - 2, 2, 1, 4, 1, 2, 5, 2, - 1, 1, 0, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 1, 1, 2, 4, - 2, 1, 2, 2, 2, 6, 1, 1, - 2, 1, 2, 1, 1, 1, 2, 2, - 2, 1, 3, 2, 5, 2, 8, 6, - 2, 2, 2, 2, 3, 1, 3, 1, - 2, 1, 3, 2, 2, 3, 1, 1, - 1, 1, 1, 1, 1, 2, 2, 4, - 1, 2, 1, 0, 1, 1, 1, 1, - 0, 1, 2, 3, 1, 3, 3, 1, - 0, 3, 0, 2, 3, 1, 0, 0, - 0, 0, 2, 2, 2, 2, 1, 5, - 2, 2, 5, 7, 5, 0, 1, 0, - 1, 1, 1, 1, 1, 0, 1, 1, - 1, 2, 2, 3, 3, 4, 7, 5, - 7, 5, 3, 3, 7, 3, 13, 1, - 3, 5, 3, 5, 3, 6, 5, 2, - 2, 8, 4, 1, 2, 3, 2, 10, - 2, 2, 0, 2, 3, 3, 1, 2, - 3, 3, 1, 2, 3, 3, 4, 4, - 2, 1, 2, 2, 3, 2, 2, 5, - 3, 2, 3, 2, 1, 3, 3, 6, - 2, 2, 5, 2, 5, 1, 1, 2, - 4, 1, 11, 1, 3, 8, 4, 2, - 1, 0, 4, 3, 3, 3, 2, 9, - 1, 1, 4, 3, 2, 2, 2, 3, - 4, 2, 3, 2, 4, 3, 2, 2, - 3, 3, 4, 3, 3, 4, 2, 5, - 4, 8, 7, 1, 2, 1, 3, 1, - 2, 5, 1, 2, 2, 2, 2, 1, - 3, 2, 2, 3, 3, 1, 9, 1, - 5, 1, 3, 2, 2, 3, 2, 3, - 3, 3, 1, 3, 3, 2, 2, 4, - 5, 3, 3, 4, 3, 3, 3, 2, - 2, 2, 4, 2, 2, 1, 3, 3, - 3, 3, 3, 3, 2, 2, 3, 2, - 3, 3, 2, 3, 2, 3, 1, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 2, 3, 2, 3, 5, - 3, 3, 1, 2, 3, 2, 2, 1, - 2, 3, 4, 3, 0, 3, 0, 2, - 3, 1, 0, 0, 0, 0, 2, 3, - 2, 4, 6, 4, 1, 1, 2, 1, - 2, 1, 3, 2, 3, 2, 11, 0, - 0, 0, 0, 0, 0, 0, 0, 1, - 0, 0, 0, 5, 0, 0, 1, 1, - 1, 0, 1, 1, 5, 4, 2, 0, - 1, 0, 2, 2, 5, 2, 3, 5, - 3, 2, 3, 5, 1, 1, 1, 3, - 1, 1, 2, 2, 3, 1, 2, 3, - 1, 5, 6, 6, 4, 5, 5, 6, - 0, 0, 0, 0, 1, 1, 1, 5, - 6, 0, 0, 1, 1, 1, 5, 6, + 2, 0, 0, 1, 1, 1, 1, 1, + 0, 0, 0, 1, 1, 1, 0, 0, + 0, 0, 1, 1, 1, 0, 0, 0, + 3, 0, 1, 1, 4, 2, 3, 0, + 1, 0, 2, 2, 4, 2, 2, 3, + 1, 1, 1, 1, 0, 1, 1, 2, + 2, 1, 4, 6, 9, 6, 8, 5, + 8, 7, 10, 4, 6, 4, 7, 7, + 5, 5, 4, 5, 1, 2, 8, 4, + 3, 3, 3, 0, 3, 1, 2, 1, + 2, 2, 3, 3, 1, 3, 2, 2, + 1, 2, 2, 2, 3, 4, 4, 3, + 1, 2, 1, 3, 2, 2, 2, 2, + 2, 3, 3, 1, 1, 2, 1, 3, + 2, 2, 3, 2, 7, 0, 1, 4, + 1, 2, 4, 2, 1, 2, 0, 2, + 2, 3, 5, 5, 1, 4, 1, 1, + 2, 2, 1, 0, 0, 1, 1, 1, + 1, 1, 2, 2, 2, 2, 1, 1, + 1, 4, 2, 2, 3, 1, 4, 4, + 6, 1, 3, 1, 1, 2, 1, 1, + 1, 5, 3, 1, 1, 1, 2, 3, + 3, 1, 2, 2, 1, 4, 1, 2, + 5, 2, 1, 1, 0, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 1, + 2, 4, 2, 1, 2, 2, 2, 6, + 1, 1, 2, 1, 2, 1, 1, 1, + 2, 2, 2, 1, 3, 2, 5, 2, + 8, 6, 2, 2, 2, 2, 3, 1, + 3, 1, 2, 1, 3, 2, 2, 3, + 1, 1, 1, 1, 1, 1, 1, 2, + 2, 4, 1, 2, 1, 0, 1, 1, + 1, 1, 0, 1, 2, 3, 1, 3, + 3, 1, 0, 3, 0, 2, 3, 1, + 0, 0, 0, 0, 2, 2, 2, 2, + 1, 5, 2, 2, 5, 7, 5, 0, + 1, 0, 1, 1, 1, 1, 1, 0, + 1, 1, 1, 2, 2, 3, 3, 4, + 7, 5, 7, 5, 3, 3, 7, 3, + 13, 1, 3, 5, 3, 5, 3, 6, + 5, 2, 2, 8, 4, 1, 2, 3, + 2, 10, 2, 2, 0, 2, 3, 3, + 1, 2, 3, 3, 1, 2, 3, 3, + 4, 4, 2, 1, 2, 2, 3, 2, + 2, 5, 3, 2, 3, 2, 1, 3, + 3, 6, 2, 2, 5, 2, 5, 1, + 1, 2, 4, 1, 11, 1, 3, 8, + 4, 2, 1, 0, 4, 3, 3, 3, + 2, 9, 1, 1, 4, 3, 2, 2, + 2, 3, 4, 2, 3, 2, 4, 3, + 2, 2, 3, 3, 4, 3, 3, 4, + 2, 5, 4, 8, 7, 1, 2, 1, + 3, 1, 2, 5, 1, 2, 2, 2, + 2, 1, 3, 2, 2, 3, 3, 1, + 9, 1, 5, 1, 3, 2, 2, 3, + 2, 3, 3, 3, 1, 3, 3, 2, + 2, 4, 5, 3, 3, 4, 3, 3, + 3, 2, 2, 2, 4, 2, 2, 1, + 3, 3, 3, 3, 3, 3, 2, 2, + 3, 2, 3, 3, 2, 3, 2, 3, + 1, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 3, 2, 3, 2, + 3, 5, 3, 3, 1, 2, 3, 2, + 2, 1, 2, 3, 4, 3, 0, 3, + 0, 2, 3, 1, 0, 0, 0, 0, + 2, 3, 2, 4, 6, 4, 1, 1, + 2, 1, 2, 1, 3, 2, 3, 2, + 11, 0, 0, 0, 0, 0, 0, 0, + 0, 1, 0, 0, 0, 5, 0, 0, + 1, 1, 1, 0, 1, 1, 5, 4, + 2, 0, 1, 0, 2, 2, 5, 2, + 3, 5, 3, 2, 3, 5, 1, 1, + 1, 3, 1, 1, 2, 2, 3, 1, + 2, 3, 1, 5, 5, 5, 5, 5, + 3, 5, 5, 5, 5, 3, 5, 5, + 5, 5, 5, 5, 5, 5, 0, 0, + 0, 0, 1, 1, 1, 5, 5, 5, + 5, 0, 0, 1, 1, 1, 5, 6, 0, 0, 1, 1, 1, 8, 5, 1, 1, 1, 0, 1, 1, 5, 4, 2, 0, 1, 0, 2, 2, 5, 2, 3, @@ -1944,1251 +1983,1275 @@ var _hcltok_range_lengths []byte = []byte{ var _hcltok_index_offsets []int16 = []int16{ 0, 0, 2, 4, 6, 9, 14, 18, - 20, 57, 93, 135, 137, 142, 146, 147, - 149, 151, 157, 162, 167, 169, 172, 174, - 177, 181, 187, 190, 193, 199, 201, 203, - 205, 208, 241, 243, 245, 248, 251, 254, - 262, 270, 281, 289, 298, 306, 315, 324, - 336, 343, 350, 358, 366, 375, 381, 389, - 395, 403, 405, 408, 422, 428, 436, 440, - 444, 446, 493, 495, 498, 500, 505, 511, - 517, 522, 525, 529, 532, 535, 537, 540, - 543, 546, 550, 555, 560, 564, 566, 569, - 571, 575, 578, 581, 584, 587, 591, 596, - 600, 602, 604, 607, 609, 613, 616, 619, - 627, 631, 639, 655, 657, 662, 664, 668, - 679, 683, 685, 688, 690, 693, 698, 702, - 708, 714, 725, 730, 733, 736, 739, 742, - 744, 748, 749, 752, 754, 784, 786, 788, - 791, 795, 798, 802, 804, 806, 808, 814, - 817, 820, 824, 826, 831, 836, 843, 846, - 850, 854, 856, 859, 879, 881, 883, 890, - 894, 896, 898, 900, 903, 907, 911, 913, - 917, 920, 922, 927, 945, 984, 990, 993, - 995, 997, 999, 1002, 1005, 1008, 1011, 1014, - 1018, 1021, 1024, 1027, 1029, 1031, 1034, 1041, - 1044, 1046, 1049, 1052, 1055, 1063, 1065, 1067, - 1070, 1072, 1075, 1077, 1079, 1109, 1112, 1115, - 1118, 1121, 1126, 1130, 1137, 1140, 1149, 1158, - 1161, 1165, 1168, 1171, 1175, 1177, 1181, 1183, - 1186, 1188, 1192, 1196, 1200, 1208, 1210, 1212, - 1216, 1220, 1222, 1235, 1237, 1240, 1243, 1248, - 1250, 1253, 1255, 1257, 1260, 1265, 1267, 1269, - 1274, 1276, 1279, 1283, 1303, 1307, 1311, 1313, - 1315, 1323, 1325, 1332, 1337, 1339, 1343, 1346, - 1349, 1352, 1356, 1359, 1362, 1366, 1376, 1382, - 1385, 1388, 1398, 1418, 1424, 1427, 1429, 1433, - 1435, 1438, 1440, 1444, 1446, 1448, 1452, 1454, - 1458, 1463, 1469, 1471, 1473, 1476, 1478, 1482, - 1489, 1492, 1494, 1497, 1501, 1531, 1536, 1538, - 1541, 1545, 1554, 1559, 1567, 1571, 1579, 1583, - 1591, 1595, 1606, 1608, 1614, 1617, 1625, 1629, - 1634, 1639, 1644, 1646, 1649, 1664, 1668, 1670, - 1673, 1675, 1724, 1727, 1734, 1737, 1739, 1743, - 1747, 1750, 1754, 1756, 1759, 1761, 1763, 1765, - 1767, 1771, 1773, 1775, 1778, 1782, 1796, 1799, - 1803, 1806, 1811, 1822, 1827, 1830, 1860, 1864, - 1867, 1872, 1874, 1878, 1881, 1884, 1886, 1891, - 1893, 1899, 1904, 1910, 1912, 1932, 1940, 1943, - 1945, 1963, 2001, 2003, 2006, 2008, 2013, 2016, - 2045, 2047, 2049, 2051, 2053, 2056, 2058, 2062, - 2065, 2067, 2070, 2072, 2074, 2077, 2079, 2081, - 2083, 2085, 2087, 2090, 2093, 2096, 2109, 2111, - 2115, 2118, 2120, 2125, 2128, 2142, 2145, 2154, - 2156, 2161, 2165, 2166, 2168, 2170, 2176, 2181, - 2186, 2188, 2191, 2193, 2196, 2200, 2206, 2209, - 2212, 2218, 2220, 2222, 2224, 2227, 2260, 2262, - 2264, 2267, 2270, 2273, 2281, 2289, 2300, 2308, - 2317, 2325, 2334, 2343, 2355, 2362, 2369, 2377, - 2385, 2394, 2400, 2408, 2414, 2422, 2424, 2427, - 2441, 2447, 2455, 2459, 2463, 2465, 2512, 2514, - 2517, 2519, 2524, 2530, 2536, 2541, 2544, 2548, - 2551, 2554, 2556, 2559, 2562, 2565, 2569, 2574, - 2579, 2583, 2585, 2588, 2590, 2594, 2597, 2600, - 2603, 2606, 2610, 2615, 2619, 2621, 2623, 2626, - 2628, 2632, 2635, 2638, 2646, 2650, 2658, 2674, - 2676, 2681, 2683, 2687, 2698, 2702, 2704, 2707, - 2709, 2712, 2717, 2721, 2727, 2733, 2744, 2749, - 2752, 2755, 2758, 2761, 2763, 2767, 2768, 2771, - 2773, 2803, 2805, 2807, 2810, 2814, 2817, 2821, - 2823, 2825, 2827, 2833, 2836, 2839, 2843, 2845, - 2850, 2855, 2862, 2865, 2869, 2873, 2875, 2878, - 2898, 2900, 2902, 2909, 2913, 2915, 2917, 2919, - 2922, 2926, 2930, 2932, 2936, 2939, 2941, 2946, - 2964, 3003, 3009, 3012, 3014, 3016, 3018, 3021, - 3024, 3027, 3030, 3033, 3037, 3040, 3043, 3046, - 3048, 3050, 3053, 3060, 3063, 3065, 3068, 3071, - 3074, 3082, 3084, 3086, 3089, 3091, 3094, 3096, - 3098, 3128, 3131, 3134, 3137, 3140, 3145, 3149, - 3156, 3159, 3168, 3177, 3180, 3184, 3187, 3190, - 3194, 3196, 3200, 3202, 3205, 3207, 3211, 3215, - 3219, 3227, 3229, 3231, 3235, 3239, 3241, 3254, - 3256, 3259, 3262, 3267, 3269, 3272, 3274, 3276, - 3279, 3284, 3286, 3288, 3293, 3295, 3298, 3302, - 3322, 3326, 3330, 3332, 3334, 3342, 3344, 3351, - 3356, 3358, 3362, 3365, 3368, 3371, 3375, 3378, - 3381, 3385, 3395, 3401, 3404, 3407, 3417, 3437, - 3443, 3446, 3448, 3452, 3454, 3457, 3459, 3463, - 3465, 3467, 3471, 3473, 3475, 3481, 3484, 3489, - 3494, 3500, 3510, 3518, 3530, 3537, 3547, 3553, - 3565, 3571, 3589, 3592, 3600, 3606, 3616, 3623, - 3630, 3638, 3646, 3649, 3654, 3674, 3680, 3683, - 3687, 3691, 3695, 3707, 3710, 3715, 3716, 3722, - 3729, 3735, 3738, 3741, 3745, 3749, 3752, 3755, - 3760, 3764, 3770, 3776, 3779, 3783, 3786, 3789, - 3794, 3797, 3800, 3806, 3810, 3813, 3817, 3820, - 3823, 3827, 3831, 3838, 3841, 3844, 3850, 3853, - 3860, 3862, 3864, 3867, 3876, 3881, 3895, 3899, - 3903, 3918, 3924, 3927, 3930, 3932, 3937, 3943, - 3947, 3955, 3961, 3971, 3974, 3977, 3982, 3986, - 3989, 3992, 3995, 3999, 4004, 4008, 4012, 4015, - 4020, 4025, 4028, 4034, 4038, 4044, 4049, 4053, - 4057, 4065, 4068, 4076, 4082, 4092, 4103, 4106, - 4109, 4111, 4115, 4117, 4120, 4131, 4135, 4138, - 4141, 4144, 4147, 4149, 4153, 4157, 4160, 4164, - 4169, 4172, 4182, 4184, 4225, 4231, 4235, 4238, - 4241, 4245, 4248, 4252, 4256, 4261, 4263, 4267, - 4271, 4274, 4277, 4282, 4291, 4295, 4300, 4305, - 4309, 4316, 4320, 4323, 4327, 4330, 4335, 4338, - 4341, 4371, 4375, 4379, 4383, 4387, 4392, 4396, - 4402, 4406, 4414, 4417, 4422, 4426, 4429, 4434, - 4437, 4441, 4444, 4447, 4450, 4453, 4456, 4460, - 4464, 4467, 4477, 4480, 4483, 4488, 4494, 4497, - 4512, 4515, 4519, 4525, 4529, 4533, 4536, 4540, - 4547, 4550, 4553, 4559, 4562, 4566, 4571, 4587, - 4589, 4597, 4599, 4607, 4613, 4615, 4619, 4622, - 4625, 4628, 4632, 4643, 4646, 4658, 4682, 4690, - 4692, 4696, 4699, 4704, 4707, 4709, 4714, 4717, - 4723, 4726, 4728, 4730, 4732, 4734, 4736, 4738, - 4740, 4742, 4744, 4746, 4748, 4750, 4752, 4754, - 4756, 4758, 4760, 4762, 4764, 4766, 4771, 4775, - 4776, 4778, 4780, 4786, 4791, 4796, 4798, 4801, - 4803, 4806, 4810, 4816, 4819, 4822, 4828, 4830, - 4832, 4834, 4837, 4870, 4872, 4874, 4877, 4880, - 4883, 4891, 4899, 4910, 4918, 4927, 4935, 4944, - 4953, 4965, 4972, 4979, 4987, 4995, 5004, 5010, - 5018, 5024, 5032, 5034, 5037, 5051, 5057, 5065, - 5069, 5073, 5075, 5122, 5124, 5127, 5129, 5134, - 5140, 5146, 5151, 5154, 5158, 5161, 5164, 5166, - 5169, 5172, 5175, 5179, 5184, 5189, 5193, 5195, - 5198, 5200, 5204, 5207, 5210, 5213, 5216, 5220, - 5225, 5229, 5231, 5233, 5236, 5238, 5242, 5245, - 5248, 5256, 5260, 5268, 5284, 5286, 5291, 5293, - 5297, 5308, 5312, 5314, 5317, 5319, 5322, 5327, - 5331, 5337, 5343, 5354, 5359, 5362, 5365, 5368, - 5371, 5373, 5377, 5378, 5381, 5383, 5413, 5415, - 5417, 5420, 5424, 5427, 5431, 5433, 5435, 5437, - 5443, 5446, 5449, 5453, 5455, 5460, 5465, 5472, - 5475, 5479, 5483, 5485, 5488, 5508, 5510, 5512, - 5519, 5523, 5525, 5527, 5529, 5532, 5536, 5540, - 5542, 5546, 5549, 5551, 5556, 5574, 5613, 5619, - 5622, 5624, 5626, 5628, 5631, 5634, 5637, 5640, - 5643, 5647, 5650, 5653, 5656, 5658, 5660, 5663, - 5670, 5673, 5675, 5678, 5681, 5684, 5692, 5694, - 5696, 5699, 5701, 5704, 5706, 5708, 5738, 5741, - 5744, 5747, 5750, 5755, 5759, 5766, 5769, 5778, - 5787, 5790, 5794, 5797, 5800, 5804, 5806, 5810, - 5812, 5815, 5817, 5821, 5825, 5829, 5837, 5839, - 5841, 5845, 5849, 5851, 5864, 5866, 5869, 5872, - 5877, 5879, 5882, 5884, 5886, 5889, 5894, 5896, - 5898, 5903, 5905, 5908, 5912, 5932, 5936, 5940, - 5942, 5944, 5952, 5954, 5961, 5966, 5968, 5972, - 5975, 5978, 5981, 5985, 5988, 5991, 5995, 6005, - 6011, 6014, 6017, 6027, 6047, 6053, 6056, 6058, - 6062, 6064, 6067, 6069, 6073, 6075, 6077, 6081, - 6083, 6085, 6091, 6094, 6099, 6104, 6110, 6120, - 6128, 6140, 6147, 6157, 6163, 6175, 6181, 6199, - 6202, 6210, 6216, 6226, 6233, 6240, 6248, 6256, - 6259, 6264, 6284, 6290, 6293, 6297, 6301, 6305, - 6317, 6320, 6325, 6326, 6332, 6339, 6345, 6348, - 6351, 6355, 6359, 6362, 6365, 6370, 6374, 6380, - 6386, 6389, 6393, 6396, 6399, 6404, 6407, 6410, - 6416, 6420, 6423, 6427, 6430, 6433, 6437, 6441, - 6448, 6451, 6454, 6460, 6463, 6470, 6472, 6474, - 6477, 6486, 6491, 6505, 6509, 6513, 6528, 6534, - 6537, 6540, 6542, 6547, 6553, 6557, 6565, 6571, - 6581, 6584, 6587, 6592, 6596, 6599, 6602, 6605, - 6609, 6614, 6618, 6622, 6625, 6630, 6635, 6638, - 6644, 6648, 6654, 6659, 6663, 6667, 6675, 6678, - 6686, 6692, 6702, 6713, 6716, 6719, 6721, 6725, - 6727, 6730, 6741, 6745, 6748, 6751, 6754, 6757, - 6759, 6763, 6767, 6770, 6774, 6779, 6782, 6792, - 6794, 6835, 6841, 6845, 6848, 6851, 6855, 6858, - 6862, 6866, 6871, 6873, 6877, 6881, 6884, 6887, - 6892, 6901, 6905, 6910, 6915, 6919, 6926, 6930, - 6933, 6937, 6940, 6945, 6948, 6951, 6981, 6985, - 6989, 6993, 6997, 7002, 7006, 7012, 7016, 7024, - 7027, 7032, 7036, 7039, 7044, 7047, 7051, 7054, - 7057, 7060, 7063, 7066, 7070, 7074, 7077, 7087, - 7090, 7093, 7098, 7104, 7107, 7122, 7125, 7129, - 7135, 7139, 7143, 7146, 7150, 7157, 7160, 7163, - 7169, 7172, 7176, 7181, 7197, 7199, 7207, 7209, - 7217, 7223, 7225, 7229, 7232, 7235, 7238, 7242, - 7253, 7256, 7268, 7292, 7300, 7302, 7306, 7309, - 7314, 7317, 7319, 7324, 7327, 7333, 7336, 7401, - 7404, 7406, 7408, 7410, 7412, 7414, 7417, 7419, - 7424, 7427, 7430, 7432, 7472, 7474, 7476, 7478, - 7483, 7487, 7488, 7490, 7492, 7499, 7506, 7513, - 7515, 7517, 7519, 7522, 7525, 7531, 7534, 7539, - 7546, 7551, 7554, 7558, 7565, 7597, 7646, 7661, - 7674, 7679, 7681, 7685, 7716, 7722, 7724, 7745, - 7765, 7767, 7779, 7790, 7800, 7806, 7816, 7826, - 7837, 7839, 7841, 7843, 7845, 7847, 7849, 7851, - 7861, 7870, 7872, 7874, 7876, 7878, 7880, 7890, - 7899, 7901, 7903, 7905, 7907, 7909, 7950, 7990, - 7992, 7997, 8001, 8002, 8004, 8006, 8013, 8020, - 8027, 8029, 8031, 8033, 8036, 8039, 8045, 8048, - 8053, 8060, 8065, 8068, 8072, 8079, 8111, 8160, - 8175, 8188, 8193, 8195, 8199, 8230, 8236, 8238, - 8259, 8279, + 20, 58, 95, 137, 139, 144, 148, 149, + 151, 153, 159, 164, 169, 171, 174, 176, + 179, 183, 189, 192, 195, 201, 203, 205, + 207, 210, 243, 245, 247, 250, 253, 256, + 264, 272, 283, 291, 300, 308, 317, 326, + 338, 345, 352, 360, 368, 377, 383, 391, + 397, 405, 407, 410, 424, 430, 438, 442, + 446, 448, 495, 497, 500, 502, 507, 513, + 519, 524, 527, 531, 534, 537, 539, 542, + 545, 548, 552, 557, 562, 566, 568, 571, + 573, 577, 580, 583, 586, 589, 593, 598, + 602, 604, 606, 609, 611, 615, 618, 621, + 629, 633, 641, 657, 659, 664, 666, 670, + 681, 685, 687, 690, 692, 695, 700, 704, + 710, 716, 727, 732, 735, 738, 741, 744, + 746, 750, 751, 754, 756, 786, 788, 790, + 793, 797, 800, 804, 806, 808, 810, 816, + 819, 822, 826, 828, 833, 838, 845, 848, + 852, 856, 858, 861, 881, 883, 885, 892, + 896, 898, 900, 902, 905, 909, 913, 915, + 919, 922, 924, 929, 947, 986, 992, 995, + 997, 999, 1001, 1004, 1007, 1010, 1013, 1016, + 1020, 1023, 1026, 1029, 1031, 1033, 1036, 1043, + 1046, 1048, 1051, 1054, 1057, 1065, 1067, 1069, + 1072, 1074, 1077, 1079, 1081, 1111, 1114, 1117, + 1120, 1123, 1128, 1132, 1139, 1142, 1151, 1160, + 1163, 1167, 1170, 1173, 1177, 1179, 1183, 1185, + 1188, 1190, 1194, 1198, 1202, 1210, 1212, 1214, + 1218, 1222, 1224, 1237, 1239, 1242, 1245, 1250, + 1252, 1255, 1257, 1259, 1262, 1267, 1269, 1271, + 1276, 1278, 1281, 1285, 1305, 1309, 1313, 1315, + 1317, 1325, 1327, 1334, 1339, 1341, 1345, 1348, + 1351, 1354, 1358, 1361, 1364, 1368, 1378, 1384, + 1387, 1390, 1400, 1420, 1426, 1429, 1431, 1435, + 1437, 1440, 1442, 1446, 1448, 1450, 1454, 1456, + 1460, 1465, 1471, 1473, 1475, 1478, 1480, 1484, + 1491, 1494, 1496, 1499, 1503, 1533, 1538, 1540, + 1543, 1547, 1556, 1561, 1569, 1573, 1581, 1585, + 1593, 1597, 1608, 1610, 1616, 1619, 1627, 1631, + 1636, 1641, 1646, 1648, 1651, 1666, 1670, 1672, + 1675, 1677, 1726, 1729, 1736, 1739, 1741, 1745, + 1749, 1752, 1756, 1758, 1761, 1763, 1765, 1767, + 1769, 1773, 1775, 1777, 1780, 1784, 1798, 1801, + 1805, 1808, 1813, 1824, 1829, 1832, 1862, 1866, + 1869, 1874, 1876, 1880, 1883, 1886, 1888, 1893, + 1895, 1901, 1906, 1912, 1914, 1934, 1942, 1945, + 1947, 1965, 2003, 2005, 2008, 2010, 2015, 2018, + 2047, 2049, 2051, 2053, 2055, 2058, 2060, 2064, + 2067, 2069, 2072, 2074, 2076, 2079, 2081, 2083, + 2085, 2087, 2089, 2092, 2095, 2098, 2111, 2113, + 2117, 2120, 2122, 2127, 2130, 2144, 2147, 2156, + 2158, 2163, 2167, 2168, 2170, 2172, 2178, 2183, + 2188, 2190, 2193, 2195, 2198, 2202, 2208, 2211, + 2214, 2220, 2222, 2224, 2226, 2229, 2262, 2264, + 2266, 2269, 2272, 2275, 2283, 2291, 2302, 2310, + 2319, 2327, 2336, 2345, 2357, 2364, 2371, 2379, + 2387, 2396, 2402, 2410, 2416, 2424, 2426, 2429, + 2443, 2449, 2457, 2461, 2465, 2467, 2514, 2516, + 2519, 2521, 2526, 2532, 2538, 2543, 2546, 2550, + 2553, 2556, 2558, 2561, 2564, 2567, 2571, 2576, + 2581, 2585, 2587, 2590, 2592, 2596, 2599, 2602, + 2605, 2608, 2612, 2617, 2621, 2623, 2625, 2628, + 2630, 2634, 2637, 2640, 2648, 2652, 2660, 2676, + 2678, 2683, 2685, 2689, 2700, 2704, 2706, 2709, + 2711, 2714, 2719, 2723, 2729, 2735, 2746, 2751, + 2754, 2757, 2760, 2763, 2765, 2769, 2770, 2773, + 2775, 2805, 2807, 2809, 2812, 2816, 2819, 2823, + 2825, 2827, 2829, 2835, 2838, 2841, 2845, 2847, + 2852, 2857, 2864, 2867, 2871, 2875, 2877, 2880, + 2900, 2902, 2904, 2911, 2915, 2917, 2919, 2921, + 2924, 2928, 2932, 2934, 2938, 2941, 2943, 2948, + 2966, 3005, 3011, 3014, 3016, 3018, 3020, 3023, + 3026, 3029, 3032, 3035, 3039, 3042, 3045, 3048, + 3050, 3052, 3055, 3062, 3065, 3067, 3070, 3073, + 3076, 3084, 3086, 3088, 3091, 3093, 3096, 3098, + 3100, 3130, 3133, 3136, 3139, 3142, 3147, 3151, + 3158, 3161, 3170, 3179, 3182, 3186, 3189, 3192, + 3196, 3198, 3202, 3204, 3207, 3209, 3213, 3217, + 3221, 3229, 3231, 3233, 3237, 3241, 3243, 3256, + 3258, 3261, 3264, 3269, 3271, 3274, 3276, 3278, + 3281, 3286, 3288, 3290, 3295, 3297, 3300, 3304, + 3324, 3328, 3332, 3334, 3336, 3344, 3346, 3353, + 3358, 3360, 3364, 3367, 3370, 3373, 3377, 3380, + 3383, 3387, 3397, 3403, 3406, 3409, 3419, 3439, + 3445, 3448, 3450, 3454, 3456, 3459, 3461, 3465, + 3467, 3469, 3473, 3475, 3477, 3483, 3486, 3491, + 3496, 3502, 3512, 3520, 3532, 3539, 3549, 3555, + 3567, 3573, 3591, 3594, 3602, 3608, 3618, 3625, + 3632, 3640, 3648, 3651, 3656, 3676, 3682, 3685, + 3689, 3693, 3697, 3709, 3712, 3717, 3718, 3724, + 3731, 3737, 3740, 3743, 3747, 3751, 3754, 3757, + 3762, 3766, 3772, 3778, 3781, 3785, 3788, 3791, + 3796, 3799, 3802, 3808, 3812, 3815, 3819, 3822, + 3825, 3829, 3833, 3840, 3843, 3846, 3852, 3855, + 3862, 3864, 3866, 3869, 3878, 3883, 3897, 3901, + 3905, 3920, 3926, 3929, 3932, 3934, 3939, 3945, + 3949, 3957, 3963, 3973, 3976, 3979, 3984, 3988, + 3991, 3994, 3997, 4001, 4006, 4010, 4014, 4017, + 4022, 4027, 4030, 4036, 4040, 4046, 4051, 4055, + 4059, 4067, 4070, 4078, 4084, 4094, 4105, 4108, + 4111, 4113, 4117, 4119, 4122, 4133, 4137, 4140, + 4143, 4146, 4149, 4151, 4155, 4159, 4162, 4166, + 4171, 4174, 4184, 4186, 4227, 4233, 4237, 4240, + 4243, 4247, 4250, 4254, 4258, 4263, 4265, 4269, + 4273, 4276, 4279, 4284, 4293, 4297, 4302, 4307, + 4311, 4318, 4322, 4325, 4329, 4332, 4337, 4340, + 4343, 4373, 4377, 4381, 4385, 4389, 4394, 4398, + 4404, 4408, 4416, 4419, 4424, 4428, 4431, 4436, + 4439, 4443, 4446, 4449, 4452, 4455, 4458, 4462, + 4466, 4469, 4479, 4482, 4485, 4490, 4496, 4499, + 4514, 4517, 4521, 4527, 4531, 4535, 4538, 4542, + 4549, 4552, 4555, 4561, 4564, 4568, 4573, 4589, + 4591, 4599, 4601, 4609, 4615, 4617, 4621, 4624, + 4627, 4630, 4634, 4645, 4648, 4660, 4684, 4692, + 4694, 4698, 4701, 4706, 4709, 4711, 4716, 4719, + 4725, 4728, 4730, 4732, 4734, 4736, 4738, 4740, + 4742, 4744, 4746, 4748, 4750, 4752, 4754, 4756, + 4758, 4760, 4762, 4764, 4766, 4768, 4770, 4772, + 4777, 4781, 4782, 4784, 4786, 4792, 4797, 4802, + 4804, 4807, 4809, 4812, 4816, 4822, 4825, 4828, + 4834, 4836, 4838, 4840, 4843, 4876, 4878, 4880, + 4883, 4886, 4889, 4897, 4905, 4916, 4924, 4933, + 4941, 4950, 4959, 4971, 4978, 4985, 4993, 5001, + 5010, 5016, 5024, 5030, 5038, 5040, 5043, 5057, + 5063, 5071, 5075, 5079, 5081, 5128, 5130, 5133, + 5135, 5140, 5146, 5152, 5157, 5160, 5164, 5167, + 5170, 5172, 5175, 5178, 5181, 5185, 5190, 5195, + 5199, 5201, 5204, 5206, 5210, 5213, 5216, 5219, + 5222, 5226, 5231, 5235, 5237, 5239, 5242, 5244, + 5248, 5251, 5254, 5262, 5266, 5274, 5290, 5292, + 5297, 5299, 5303, 5314, 5318, 5320, 5323, 5325, + 5328, 5333, 5337, 5343, 5349, 5360, 5365, 5368, + 5371, 5374, 5377, 5379, 5383, 5384, 5387, 5389, + 5419, 5421, 5423, 5426, 5430, 5433, 5437, 5439, + 5441, 5443, 5449, 5452, 5455, 5459, 5461, 5466, + 5471, 5478, 5481, 5485, 5489, 5491, 5494, 5514, + 5516, 5518, 5525, 5529, 5531, 5533, 5535, 5538, + 5542, 5546, 5548, 5552, 5555, 5557, 5562, 5580, + 5619, 5625, 5628, 5630, 5632, 5634, 5637, 5640, + 5643, 5646, 5649, 5653, 5656, 5659, 5662, 5664, + 5666, 5669, 5676, 5679, 5681, 5684, 5687, 5690, + 5698, 5700, 5702, 5705, 5707, 5710, 5712, 5714, + 5744, 5747, 5750, 5753, 5756, 5761, 5765, 5772, + 5775, 5784, 5793, 5796, 5800, 5803, 5806, 5810, + 5812, 5816, 5818, 5821, 5823, 5827, 5831, 5835, + 5843, 5845, 5847, 5851, 5855, 5857, 5870, 5872, + 5875, 5878, 5883, 5885, 5888, 5890, 5892, 5895, + 5900, 5902, 5904, 5909, 5911, 5914, 5918, 5938, + 5942, 5946, 5948, 5950, 5958, 5960, 5967, 5972, + 5974, 5978, 5981, 5984, 5987, 5991, 5994, 5997, + 6001, 6011, 6017, 6020, 6023, 6033, 6053, 6059, + 6062, 6064, 6068, 6070, 6073, 6075, 6079, 6081, + 6083, 6087, 6089, 6091, 6097, 6100, 6105, 6110, + 6116, 6126, 6134, 6146, 6153, 6163, 6169, 6181, + 6187, 6205, 6208, 6216, 6222, 6232, 6239, 6246, + 6254, 6262, 6265, 6270, 6290, 6296, 6299, 6303, + 6307, 6311, 6323, 6326, 6331, 6332, 6338, 6345, + 6351, 6354, 6357, 6361, 6365, 6368, 6371, 6376, + 6380, 6386, 6392, 6395, 6399, 6402, 6405, 6410, + 6413, 6416, 6422, 6426, 6429, 6433, 6436, 6439, + 6443, 6447, 6454, 6457, 6460, 6466, 6469, 6476, + 6478, 6480, 6483, 6492, 6497, 6511, 6515, 6519, + 6534, 6540, 6543, 6546, 6548, 6553, 6559, 6563, + 6571, 6577, 6587, 6590, 6593, 6598, 6602, 6605, + 6608, 6611, 6615, 6620, 6624, 6628, 6631, 6636, + 6641, 6644, 6650, 6654, 6660, 6665, 6669, 6673, + 6681, 6684, 6692, 6698, 6708, 6719, 6722, 6725, + 6727, 6731, 6733, 6736, 6747, 6751, 6754, 6757, + 6760, 6763, 6765, 6769, 6773, 6776, 6780, 6785, + 6788, 6798, 6800, 6841, 6847, 6851, 6854, 6857, + 6861, 6864, 6868, 6872, 6877, 6879, 6883, 6887, + 6890, 6893, 6898, 6907, 6911, 6916, 6921, 6925, + 6932, 6936, 6939, 6943, 6946, 6951, 6954, 6957, + 6987, 6991, 6995, 6999, 7003, 7008, 7012, 7018, + 7022, 7030, 7033, 7038, 7042, 7045, 7050, 7053, + 7057, 7060, 7063, 7066, 7069, 7072, 7076, 7080, + 7083, 7093, 7096, 7099, 7104, 7110, 7113, 7128, + 7131, 7135, 7141, 7145, 7149, 7152, 7156, 7163, + 7166, 7169, 7175, 7178, 7182, 7187, 7203, 7205, + 7213, 7215, 7223, 7229, 7231, 7235, 7238, 7241, + 7244, 7248, 7259, 7262, 7274, 7298, 7306, 7308, + 7312, 7315, 7320, 7323, 7325, 7330, 7333, 7339, + 7342, 7408, 7411, 7413, 7415, 7417, 7419, 7421, + 7424, 7426, 7431, 7434, 7437, 7439, 7479, 7481, + 7483, 7485, 7490, 7494, 7495, 7497, 7499, 7506, + 7513, 7520, 7522, 7524, 7526, 7529, 7532, 7538, + 7541, 7546, 7553, 7558, 7561, 7565, 7572, 7604, + 7653, 7668, 7681, 7686, 7688, 7692, 7723, 7729, + 7731, 7752, 7772, 7774, 7786, 7798, 7810, 7822, + 7833, 7841, 7854, 7867, 7880, 7892, 7900, 7913, + 7925, 7937, 7949, 7961, 7973, 7985, 7997, 7999, + 8001, 8003, 8005, 8007, 8009, 8011, 8021, 8031, + 8041, 8051, 8053, 8055, 8057, 8059, 8061, 8071, + 8080, 8082, 8084, 8086, 8088, 8090, 8132, 8172, + 8174, 8179, 8183, 8184, 8186, 8188, 8195, 8202, + 8209, 8211, 8213, 8215, 8218, 8221, 8227, 8230, + 8235, 8242, 8247, 8250, 8254, 8261, 8293, 8342, + 8357, 8370, 8375, 8377, 8381, 8412, 8418, 8420, + 8441, 8461, } var _hcltok_indicies []int16 = []int16{ 2, 1, 4, 3, 6, 5, 6, 7, 5, 9, 11, 11, 10, 8, 12, 12, - 10, 8, 10, 8, 13, 15, 16, 18, - 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 42, 43, - 44, 45, 46, 14, 14, 17, 17, 41, - 3, 15, 16, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 42, 43, 44, 45, 46, 14, - 14, 17, 17, 41, 3, 47, 48, 14, - 14, 49, 16, 18, 19, 20, 19, 50, - 51, 23, 52, 25, 26, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 40, 42, 66, 44, 67, 68, - 69, 14, 14, 14, 17, 41, 3, 47, - 3, 14, 14, 14, 14, 3, 14, 14, - 14, 3, 14, 3, 14, 14, 3, 3, - 3, 3, 3, 3, 14, 3, 3, 3, - 3, 14, 14, 14, 14, 14, 3, 3, - 14, 3, 3, 14, 3, 14, 3, 3, - 14, 3, 3, 3, 14, 14, 14, 14, - 14, 14, 3, 14, 14, 3, 14, 14, - 3, 3, 3, 3, 3, 3, 14, 14, - 3, 3, 14, 3, 14, 14, 14, 3, - 70, 71, 72, 73, 17, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, - 3, 14, 3, 14, 3, 14, 14, 3, - 14, 14, 3, 3, 3, 14, 3, 3, - 3, 3, 3, 3, 3, 14, 3, 3, - 3, 3, 3, 3, 3, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 3, 3, 3, 3, 3, 3, 3, 3, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 3, 3, 3, 3, 3, 3, 3, - 3, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 3, 14, 14, 14, 14, 14, - 14, 14, 14, 3, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 3, - 14, 14, 14, 14, 14, 14, 3, 14, - 14, 14, 14, 14, 14, 3, 3, 3, - 3, 3, 3, 3, 3, 14, 14, 14, - 14, 14, 14, 14, 14, 3, 14, 14, - 14, 14, 14, 14, 14, 14, 3, 14, - 14, 14, 14, 14, 3, 3, 3, 3, - 3, 3, 3, 3, 14, 14, 14, 14, - 14, 14, 3, 14, 14, 14, 14, 14, - 14, 14, 3, 14, 3, 14, 14, 3, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 3, 14, 14, - 14, 14, 14, 3, 14, 14, 14, 14, - 14, 14, 14, 3, 14, 14, 14, 3, - 14, 14, 14, 3, 14, 3, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 19, - 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 17, 18, 136, 137, 138, 139, - 140, 17, 19, 17, 3, 14, 3, 14, - 14, 3, 3, 14, 3, 3, 3, 3, + 10, 8, 10, 8, 13, 14, 15, 16, + 18, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 42, + 43, 44, 45, 46, 14, 14, 17, 17, + 41, 3, 14, 15, 16, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 42, 43, 44, 45, + 46, 14, 14, 17, 17, 41, 3, 47, + 48, 14, 14, 49, 16, 18, 19, 20, + 19, 50, 51, 23, 52, 25, 26, 53, + 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 40, 42, 66, 44, + 67, 68, 69, 14, 14, 14, 17, 41, + 3, 47, 3, 14, 14, 14, 14, 3, + 14, 14, 14, 3, 14, 3, 14, 3, 14, 3, 3, 3, 3, 3, 14, 3, - 3, 3, 3, 3, 14, 14, 14, 14, - 14, 3, 3, 3, 14, 3, 3, 3, - 14, 14, 14, 3, 3, 3, 14, 14, - 3, 3, 3, 14, 14, 14, 3, 3, - 3, 14, 14, 14, 14, 3, 14, 14, - 14, 14, 3, 3, 3, 3, 3, 14, - 14, 14, 14, 3, 3, 14, 14, 14, - 3, 3, 14, 14, 14, 14, 3, 14, - 14, 3, 14, 14, 3, 3, 3, 14, - 14, 14, 3, 3, 3, 3, 14, 14, - 14, 14, 14, 3, 3, 3, 3, 14, - 3, 14, 14, 3, 14, 14, 3, 14, - 3, 14, 14, 14, 3, 14, 14, 3, - 3, 3, 14, 3, 3, 3, 3, 3, - 3, 3, 14, 14, 14, 14, 3, 14, - 14, 14, 14, 14, 14, 14, 3, 141, - 142, 143, 144, 145, 146, 147, 148, 149, - 17, 150, 151, 152, 153, 154, 3, 14, - 3, 3, 3, 3, 3, 14, 14, 3, - 14, 14, 14, 3, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 3, 14, - 14, 14, 3, 3, 14, 14, 14, 3, - 3, 14, 3, 3, 14, 14, 14, 14, - 14, 3, 3, 3, 3, 14, 14, 14, - 14, 14, 14, 3, 14, 14, 14, 14, - 14, 3, 155, 112, 156, 157, 158, 17, - 159, 160, 19, 17, 3, 14, 14, 14, - 14, 3, 3, 3, 14, 3, 3, 14, - 14, 14, 3, 3, 3, 14, 14, 3, - 122, 3, 19, 17, 17, 161, 3, 17, - 3, 14, 19, 162, 163, 19, 164, 165, - 19, 60, 166, 167, 168, 169, 170, 19, - 171, 172, 173, 19, 174, 175, 176, 18, - 177, 178, 179, 18, 180, 19, 17, 3, - 3, 14, 14, 3, 3, 3, 14, 14, - 14, 14, 3, 14, 14, 3, 3, 3, - 3, 14, 14, 3, 3, 14, 14, 3, - 3, 3, 3, 3, 3, 14, 14, 14, - 3, 3, 3, 14, 3, 3, 3, 14, - 14, 3, 14, 14, 14, 14, 3, 14, - 14, 14, 14, 3, 14, 14, 14, 14, - 14, 14, 3, 3, 3, 14, 14, 14, - 14, 3, 181, 182, 3, 17, 3, 14, - 3, 3, 14, 19, 183, 184, 185, 186, - 60, 187, 188, 58, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 17, 3, 3, - 14, 3, 14, 14, 14, 14, 14, 14, - 14, 3, 14, 14, 14, 3, 14, 3, - 3, 14, 3, 14, 3, 3, 14, 14, - 14, 14, 3, 14, 14, 14, 3, 3, + 3, 3, 3, 14, 14, 14, 14, 14, + 3, 3, 14, 3, 3, 14, 3, 14, + 3, 3, 14, 3, 3, 3, 14, 14, 14, 14, 14, 14, 3, 14, 14, 3, - 3, 14, 14, 14, 14, 14, 3, 198, - 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 204, 209, 210, 211, 212, 41, - 3, 213, 214, 19, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 19, 17, 224, - 225, 226, 227, 19, 228, 229, 230, 231, - 232, 233, 234, 235, 236, 237, 238, 239, - 240, 241, 242, 19, 147, 17, 243, 3, - 14, 14, 14, 14, 14, 3, 3, 3, - 14, 3, 14, 14, 3, 14, 3, 14, - 14, 3, 3, 3, 14, 14, 14, 3, - 3, 3, 14, 14, 14, 3, 3, 3, - 3, 14, 3, 3, 14, 3, 3, 14, + 14, 14, 3, 3, 3, 3, 3, 3, 14, 14, 3, 3, 14, 3, 14, 14, - 14, 3, 14, 14, 14, 14, 14, 14, - 3, 3, 3, 14, 14, 3, 14, 14, - 3, 14, 14, 3, 14, 14, 3, 14, - 14, 14, 14, 14, 14, 14, 3, 14, - 3, 14, 3, 14, 14, 3, 14, 3, - 14, 14, 3, 14, 3, 14, 3, 244, - 215, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 101, 254, 19, 255, 256, 257, - 19, 258, 132, 259, 260, 261, 262, 263, - 264, 265, 266, 19, 3, 3, 3, 14, - 14, 14, 3, 14, 14, 3, 14, 14, - 3, 3, 3, 3, 3, 14, 14, 14, - 14, 3, 14, 14, 14, 14, 14, 14, + 14, 3, 70, 71, 72, 73, 17, 74, + 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 3, 14, 3, 14, 3, 14, + 14, 3, 14, 14, 3, 3, 3, 14, + 3, 3, 3, 3, 3, 3, 3, 14, + 3, 3, 3, 3, 3, 3, 3, 14, + 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 3, 3, 3, 3, 3, 3, + 3, 3, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 3, 3, 3, 3, 3, 3, 3, 3, 14, 14, 14, 14, 14, 14, 14, 14, 14, 3, 14, 14, 14, 14, 14, 14, 14, 14, 3, 14, 14, - 3, 3, 3, 3, 14, 14, 14, 3, - 3, 3, 14, 3, 3, 3, 14, 14, - 3, 14, 14, 14, 3, 14, 3, 3, - 3, 14, 14, 3, 14, 14, 14, 3, - 14, 14, 14, 3, 3, 3, 3, 14, - 19, 184, 267, 268, 17, 19, 17, 3, - 3, 14, 3, 14, 19, 267, 17, 3, - 19, 269, 17, 3, 3, 14, 19, 270, - 271, 272, 175, 273, 274, 19, 275, 276, - 277, 17, 3, 3, 14, 14, 14, 3, - 14, 14, 3, 14, 14, 14, 14, 3, - 3, 14, 3, 3, 14, 14, 3, 14, - 3, 19, 17, 3, 278, 19, 279, 3, - 17, 3, 14, 3, 14, 280, 19, 281, - 282, 3, 14, 3, 3, 3, 14, 14, - 14, 14, 3, 283, 284, 285, 19, 286, - 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 17, 3, 14, - 14, 14, 3, 3, 3, 3, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, + 14, 3, 14, 14, 14, 14, 14, 14, + 3, 14, 14, 14, 14, 14, 14, 3, + 3, 3, 3, 3, 3, 3, 3, 14, + 14, 14, 14, 14, 14, 14, 14, 3, + 14, 14, 14, 14, 14, 14, 14, 14, + 3, 14, 14, 14, 14, 14, 3, 3, + 3, 3, 3, 3, 3, 3, 14, 14, + 14, 14, 14, 14, 3, 14, 14, 14, + 14, 14, 14, 14, 3, 14, 3, 14, + 14, 3, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 3, + 14, 14, 14, 14, 14, 3, 14, 14, + 14, 14, 14, 14, 14, 3, 14, 14, + 14, 3, 14, 14, 14, 3, 14, 3, + 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, + 117, 19, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 17, 18, 136, 137, + 138, 139, 140, 17, 19, 17, 3, 14, + 3, 14, 14, 3, 3, 14, 3, 3, 3, 3, 14, 3, 3, 3, 3, 3, - 3, 3, 14, 3, 14, 3, 3, 3, - 3, 3, 3, 14, 14, 14, 14, 14, - 3, 3, 14, 3, 3, 3, 14, 3, - 3, 14, 3, 3, 14, 3, 3, 14, - 3, 3, 3, 14, 14, 14, 3, 3, - 3, 14, 14, 14, 14, 3, 300, 19, - 301, 19, 302, 303, 304, 305, 17, 3, + 14, 3, 3, 3, 3, 3, 14, 14, + 14, 14, 14, 3, 3, 3, 14, 3, + 3, 3, 14, 14, 14, 3, 3, 3, + 14, 14, 3, 3, 3, 14, 14, 14, + 3, 3, 3, 14, 14, 14, 14, 3, + 14, 14, 14, 14, 3, 3, 3, 3, + 3, 14, 14, 14, 14, 3, 3, 14, + 14, 14, 3, 3, 14, 14, 14, 14, + 3, 14, 14, 3, 14, 14, 3, 3, + 3, 14, 14, 14, 3, 3, 3, 3, 14, 14, 14, 14, 14, 3, 3, 3, + 3, 14, 3, 14, 14, 3, 14, 14, + 3, 14, 3, 14, 14, 14, 3, 14, + 14, 3, 3, 3, 14, 3, 3, 3, + 3, 3, 3, 3, 14, 14, 14, 14, + 3, 14, 14, 14, 14, 14, 14, 14, + 3, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 17, 150, 151, 152, 153, 154, + 3, 14, 3, 3, 3, 3, 3, 14, + 14, 3, 14, 14, 14, 3, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, + 3, 14, 14, 14, 3, 3, 14, 14, + 14, 3, 3, 14, 3, 3, 14, 14, + 14, 14, 14, 3, 3, 3, 3, 14, + 14, 14, 14, 14, 14, 3, 14, 14, + 14, 14, 14, 3, 155, 112, 156, 157, + 158, 17, 159, 160, 19, 17, 3, 14, + 14, 14, 14, 3, 3, 3, 14, 3, + 3, 14, 14, 14, 3, 3, 3, 14, + 14, 3, 122, 3, 19, 17, 17, 161, + 3, 17, 3, 14, 19, 162, 163, 19, + 164, 165, 19, 60, 166, 167, 168, 169, + 170, 19, 171, 172, 173, 19, 174, 175, + 176, 18, 177, 178, 179, 18, 180, 19, + 17, 3, 3, 14, 14, 3, 3, 3, + 14, 14, 14, 14, 3, 14, 14, 3, + 3, 3, 3, 14, 14, 3, 3, 14, + 14, 3, 3, 3, 3, 3, 3, 14, + 14, 14, 3, 3, 3, 14, 3, 3, + 3, 14, 14, 3, 14, 14, 14, 14, + 3, 14, 14, 14, 14, 3, 14, 14, + 14, 14, 14, 14, 3, 3, 3, 14, + 14, 14, 14, 3, 181, 182, 3, 17, + 3, 14, 3, 3, 14, 19, 183, 184, + 185, 186, 60, 187, 188, 58, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 17, + 3, 3, 14, 3, 14, 14, 14, 14, + 14, 14, 14, 3, 14, 14, 14, 3, + 14, 3, 3, 14, 3, 14, 3, 3, + 14, 14, 14, 14, 3, 14, 14, 14, + 3, 3, 14, 14, 14, 14, 3, 14, 14, 3, 3, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 3, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 3, 14, 14, 14, 14, 14, 3, - 306, 19, 17, 3, 14, 307, 19, 103, - 17, 3, 14, 308, 3, 17, 3, 14, - 19, 309, 17, 3, 3, 14, 310, 3, - 19, 311, 17, 3, 3, 14, 14, 14, - 14, 3, 14, 14, 14, 14, 3, 14, - 14, 14, 14, 14, 3, 3, 14, 3, - 14, 14, 14, 3, 14, 3, 14, 14, - 14, 3, 3, 3, 3, 3, 3, 3, - 14, 14, 14, 3, 14, 3, 3, 3, - 14, 14, 14, 14, 3, 312, 313, 72, - 314, 315, 316, 317, 318, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, 329, - 330, 331, 332, 334, 335, 336, 337, 338, - 339, 333, 3, 14, 14, 14, 14, 3, - 14, 3, 14, 14, 3, 14, 14, 14, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 14, 14, 14, 14, 14, 3, 14, + 3, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 204, 209, 210, 211, + 212, 41, 3, 213, 214, 19, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 19, + 17, 224, 225, 226, 227, 19, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 19, 147, 17, + 243, 3, 14, 14, 14, 14, 14, 3, + 3, 3, 14, 3, 14, 14, 3, 14, + 3, 14, 14, 3, 3, 3, 14, 14, + 14, 3, 3, 3, 14, 14, 14, 3, + 3, 3, 3, 14, 3, 3, 14, 3, + 3, 14, 14, 14, 3, 3, 14, 3, + 14, 14, 14, 3, 14, 14, 14, 14, + 14, 14, 3, 3, 3, 14, 14, 3, + 14, 14, 3, 14, 14, 3, 14, 14, + 3, 14, 14, 14, 14, 14, 14, 14, + 3, 14, 3, 14, 3, 14, 14, 3, + 14, 3, 14, 14, 3, 14, 3, 14, + 3, 244, 215, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 101, 254, 19, 255, + 256, 257, 19, 258, 132, 259, 260, 261, + 262, 263, 264, 265, 266, 19, 3, 3, + 3, 14, 14, 14, 3, 14, 14, 3, + 14, 14, 3, 3, 3, 3, 3, 14, + 14, 14, 14, 3, 14, 14, 14, 14, + 14, 14, 3, 3, 3, 14, 14, 14, 14, 14, 14, 14, 14, 14, 3, 14, - 14, 14, 3, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 3, + 14, 14, 3, 3, 3, 3, 14, 14, + 14, 3, 3, 3, 14, 3, 3, 3, 14, 14, 3, 14, 14, 14, 3, 14, - 14, 14, 14, 14, 14, 14, 3, 14, - 14, 14, 3, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 3, 14, 3, - 14, 14, 14, 14, 14, 3, 14, 14, + 3, 3, 3, 14, 14, 3, 14, 14, + 14, 3, 14, 14, 14, 3, 3, 3, + 3, 14, 19, 184, 267, 268, 17, 19, + 17, 3, 3, 14, 3, 14, 19, 267, + 17, 3, 19, 269, 17, 3, 3, 14, + 19, 270, 271, 272, 175, 273, 274, 19, + 275, 276, 277, 17, 3, 3, 14, 14, + 14, 3, 14, 14, 3, 14, 14, 14, + 14, 3, 3, 14, 3, 3, 14, 14, + 3, 14, 3, 19, 17, 3, 278, 19, + 279, 3, 17, 3, 14, 3, 14, 280, + 19, 281, 282, 3, 14, 3, 3, 3, + 14, 14, 14, 14, 3, 283, 284, 285, + 19, 286, 287, 288, 289, 290, 291, 292, + 293, 294, 295, 296, 297, 298, 299, 17, + 3, 14, 14, 14, 3, 3, 3, 3, + 14, 14, 3, 3, 14, 3, 3, 3, + 3, 3, 3, 3, 14, 3, 14, 3, + 3, 3, 3, 3, 3, 14, 14, 14, + 14, 14, 3, 3, 14, 3, 3, 3, + 14, 3, 3, 14, 3, 3, 14, 3, + 3, 14, 3, 3, 3, 14, 14, 14, + 3, 3, 3, 14, 14, 14, 14, 3, + 300, 19, 301, 19, 302, 303, 304, 305, + 17, 3, 14, 14, 14, 14, 14, 3, + 3, 3, 14, 3, 3, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 3, + 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 3, 14, 14, 14, 14, + 14, 3, 306, 19, 17, 3, 14, 307, + 19, 103, 17, 3, 14, 308, 3, 17, + 3, 14, 19, 309, 17, 3, 3, 14, + 310, 3, 19, 311, 17, 3, 3, 14, + 14, 14, 14, 3, 14, 14, 14, 14, + 3, 14, 14, 14, 14, 14, 3, 3, + 14, 3, 14, 14, 14, 3, 14, 3, + 14, 14, 14, 3, 3, 3, 3, 3, + 3, 3, 14, 14, 14, 3, 14, 3, + 3, 3, 14, 14, 14, 14, 3, 312, + 313, 72, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 334, 335, 336, + 337, 338, 339, 333, 3, 14, 14, 14, + 14, 3, 14, 3, 14, 14, 3, 14, + 14, 14, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 14, 14, 14, 14, 14, 3, 14, 14, 14, 14, 14, 14, 14, 3, 14, 14, 14, 3, 14, 14, 14, - 14, 3, 14, 14, 14, 14, 3, 14, - 14, 14, 14, 3, 14, 3, 14, 14, + 14, 14, 14, 14, 3, 14, 14, 14, 3, 14, 14, 14, 14, 14, 14, 14, + 3, 14, 14, 14, 3, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 3, - 14, 14, 14, 3, 14, 3, 14, 14, - 3, 14, 3, 340, 341, 342, 104, 105, - 106, 107, 108, 343, 110, 111, 112, 113, - 114, 115, 344, 345, 170, 346, 261, 120, - 347, 122, 232, 272, 125, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 134, - 358, 19, 17, 18, 19, 137, 138, 139, - 140, 17, 17, 3, 14, 14, 3, 14, - 14, 14, 14, 14, 14, 3, 3, 3, - 14, 3, 14, 14, 14, 14, 3, 14, - 14, 14, 3, 14, 14, 3, 14, 14, - 14, 3, 3, 14, 14, 14, 3, 3, - 14, 14, 3, 14, 3, 14, 3, 14, - 14, 14, 3, 3, 14, 14, 3, 14, - 14, 3, 14, 14, 14, 3, 359, 143, - 145, 146, 147, 148, 149, 17, 360, 151, - 361, 153, 362, 3, 14, 14, 3, 3, - 3, 3, 14, 3, 3, 14, 14, 14, - 14, 14, 3, 363, 112, 364, 157, 158, - 17, 159, 160, 19, 17, 3, 14, 14, - 14, 14, 3, 3, 3, 14, 19, 162, - 163, 19, 365, 366, 222, 311, 166, 167, - 168, 367, 170, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 178, 179, 18, - 378, 19, 17, 3, 3, 3, 3, 14, - 14, 14, 3, 3, 3, 3, 3, 14, - 14, 3, 14, 14, 14, 3, 14, 14, - 3, 3, 3, 14, 14, 3, 14, 14, - 14, 14, 3, 14, 3, 14, 14, 14, - 14, 14, 3, 3, 3, 3, 3, 14, - 14, 14, 14, 14, 14, 3, 14, 3, - 19, 183, 184, 379, 186, 60, 187, 188, - 58, 189, 190, 380, 17, 193, 381, 195, - 196, 197, 17, 3, 14, 14, 14, 14, - 14, 14, 14, 3, 14, 14, 3, 14, - 3, 382, 383, 200, 201, 202, 384, 204, - 205, 385, 386, 387, 204, 209, 210, 211, - 212, 41, 3, 213, 214, 19, 215, 216, - 218, 388, 220, 389, 222, 223, 19, 17, - 390, 225, 226, 227, 19, 228, 229, 230, - 231, 232, 233, 234, 235, 391, 237, 238, - 392, 240, 241, 242, 19, 147, 17, 243, - 3, 3, 14, 3, 3, 14, 3, 14, - 14, 14, 14, 14, 3, 14, 14, 3, - 393, 394, 395, 396, 397, 398, 399, 400, - 250, 401, 322, 402, 216, 403, 404, 405, - 406, 407, 404, 408, 409, 410, 261, 411, - 263, 412, 413, 274, 3, 14, 3, 14, - 3, 14, 3, 14, 3, 14, 14, 3, - 14, 3, 14, 14, 14, 3, 14, 14, - 3, 3, 14, 14, 14, 3, 14, 3, - 14, 3, 14, 14, 3, 14, 3, 14, - 3, 14, 3, 14, 3, 14, 3, 3, + 14, 3, 14, 14, 14, 14, 14, 3, + 14, 14, 3, 14, 14, 14, 14, 14, + 14, 14, 3, 14, 14, 14, 3, 14, + 14, 14, 14, 3, 14, 14, 14, 14, + 3, 14, 14, 14, 14, 3, 14, 3, + 14, 14, 3, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, + 14, 3, 14, 14, 14, 3, 14, 3, + 14, 14, 3, 14, 3, 340, 341, 342, + 104, 105, 106, 107, 108, 343, 110, 111, + 112, 113, 114, 115, 344, 345, 170, 346, + 261, 120, 347, 122, 232, 272, 125, 348, + 349, 350, 351, 352, 353, 354, 355, 356, + 357, 134, 358, 19, 17, 18, 19, 137, + 138, 139, 140, 17, 17, 3, 14, 14, + 3, 14, 14, 14, 14, 14, 14, 3, + 3, 3, 14, 3, 14, 14, 14, 14, 3, 14, 14, 14, 3, 14, 14, 3, - 19, 270, 232, 414, 404, 415, 274, 19, - 416, 417, 277, 17, 3, 14, 3, 14, + 14, 14, 14, 3, 3, 14, 14, 14, + 3, 3, 14, 14, 3, 14, 3, 14, + 3, 14, 14, 14, 3, 3, 14, 14, + 3, 14, 14, 3, 14, 14, 14, 3, + 359, 143, 145, 146, 147, 148, 149, 17, + 360, 151, 361, 153, 362, 3, 14, 14, + 3, 3, 3, 3, 14, 3, 3, 14, + 14, 14, 14, 14, 3, 363, 112, 364, + 157, 158, 17, 159, 160, 19, 17, 3, + 14, 14, 14, 14, 3, 3, 3, 14, + 19, 162, 163, 19, 365, 366, 222, 311, + 166, 167, 168, 367, 170, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 178, + 179, 18, 378, 19, 17, 3, 3, 3, + 3, 14, 14, 14, 3, 3, 3, 3, + 3, 14, 14, 3, 14, 14, 14, 3, 14, 14, 3, 3, 3, 14, 14, 3, - 280, 19, 281, 418, 3, 14, 14, 3, - 19, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 419, 17, 3, 3, 3, - 14, 19, 420, 19, 268, 303, 304, 305, - 17, 3, 3, 14, 422, 422, 422, 422, - 421, 422, 422, 422, 421, 422, 421, 422, - 422, 421, 421, 421, 421, 421, 421, 422, - 421, 421, 421, 421, 422, 422, 422, 422, - 422, 421, 421, 422, 421, 421, 422, 421, - 422, 421, 421, 422, 421, 421, 421, 422, - 422, 422, 422, 422, 422, 421, 422, 422, + 14, 14, 14, 14, 3, 14, 3, 14, + 14, 14, 14, 14, 3, 3, 3, 3, + 3, 14, 14, 14, 14, 14, 14, 3, + 14, 3, 19, 183, 184, 379, 186, 60, + 187, 188, 58, 189, 190, 380, 17, 193, + 381, 195, 196, 197, 17, 3, 14, 14, + 14, 14, 14, 14, 14, 3, 14, 14, + 3, 14, 3, 382, 383, 200, 201, 202, + 384, 204, 205, 385, 386, 387, 204, 209, + 210, 211, 212, 41, 3, 213, 214, 19, + 215, 216, 218, 388, 220, 389, 222, 223, + 19, 17, 390, 225, 226, 227, 19, 228, + 229, 230, 231, 232, 233, 234, 235, 391, + 237, 238, 392, 240, 241, 242, 19, 147, + 17, 243, 3, 3, 14, 3, 3, 14, + 3, 14, 14, 14, 14, 14, 3, 14, + 14, 3, 393, 394, 395, 396, 397, 398, + 399, 400, 250, 401, 322, 402, 216, 403, + 404, 405, 406, 407, 404, 408, 409, 410, + 261, 411, 263, 412, 413, 274, 3, 14, + 3, 14, 3, 14, 3, 14, 3, 14, + 14, 3, 14, 3, 14, 14, 14, 3, + 14, 14, 3, 3, 14, 14, 14, 3, + 14, 3, 14, 3, 14, 14, 3, 14, + 3, 14, 3, 14, 3, 14, 3, 14, + 3, 3, 3, 14, 14, 14, 3, 14, + 14, 3, 19, 270, 232, 414, 404, 415, + 274, 19, 416, 417, 277, 17, 3, 14, + 3, 14, 14, 14, 3, 3, 3, 14, + 14, 3, 280, 19, 281, 418, 3, 14, + 14, 3, 19, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 419, 17, 3, + 3, 3, 14, 19, 420, 19, 268, 303, + 304, 305, 17, 3, 3, 14, 422, 422, + 422, 422, 421, 422, 422, 422, 421, 422, 421, 422, 422, 421, 421, 421, 421, 421, - 421, 422, 422, 421, 421, 422, 421, 422, - 422, 422, 421, 423, 424, 425, 426, 427, - 428, 429, 430, 431, 432, 433, 434, 435, - 436, 437, 438, 439, 440, 441, 442, 443, - 444, 445, 446, 447, 448, 449, 450, 451, - 452, 453, 454, 421, 422, 421, 422, 421, + 421, 422, 421, 421, 421, 421, 422, 422, + 422, 422, 422, 421, 421, 422, 421, 421, + 422, 421, 422, 421, 421, 422, 421, 421, + 421, 422, 422, 422, 422, 422, 422, 421, 422, 422, 421, 422, 422, 421, 421, 421, - 422, 421, 421, 421, 421, 421, 421, 421, - 422, 421, 421, 421, 421, 421, 421, 421, - 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 421, 421, 421, 421, 421, - 421, 421, 421, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 421, 421, 421, 421, - 421, 421, 421, 421, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 421, 422, 422, - 422, 422, 422, 422, 422, 422, 421, 422, - 422, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 421, 422, 422, 422, 422, 422, - 422, 421, 422, 422, 422, 422, 422, 422, - 421, 421, 421, 421, 421, 421, 421, 421, - 422, 422, 422, 422, 422, 422, 422, 422, - 421, 422, 422, 422, 422, 422, 422, 422, - 422, 421, 422, 422, 422, 422, 422, 421, - 421, 421, 421, 421, 421, 421, 421, 422, - 422, 422, 422, 422, 422, 421, 422, 422, - 422, 422, 422, 422, 422, 421, 422, 421, - 422, 422, 421, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, - 421, 422, 422, 422, 422, 422, 421, 422, - 422, 422, 422, 422, 422, 422, 421, 422, - 422, 422, 421, 422, 422, 422, 421, 422, - 421, 455, 456, 457, 458, 459, 460, 461, - 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, - 478, 479, 480, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 427, 491, 492, - 493, 494, 495, 496, 427, 472, 427, 421, - 422, 421, 422, 422, 421, 421, 422, 421, - 421, 421, 421, 422, 421, 421, 421, 421, - 421, 422, 421, 421, 421, 421, 421, 422, - 422, 422, 422, 422, 421, 421, 421, 422, - 421, 421, 421, 422, 422, 422, 421, 421, - 421, 422, 422, 421, 421, 421, 422, 422, - 422, 421, 421, 421, 422, 422, 422, 422, - 421, 422, 422, 422, 422, 421, 421, 421, - 421, 421, 422, 422, 422, 422, 421, 421, - 422, 422, 422, 421, 421, 422, 422, 422, + 421, 421, 421, 422, 422, 421, 421, 422, + 421, 422, 422, 422, 421, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 421, 422, 421, 422, 421, 422, 422, 421, 422, 422, 421, - 421, 421, 422, 422, 422, 421, 421, 421, - 421, 422, 422, 422, 422, 422, 421, 421, - 421, 421, 422, 421, 422, 422, 421, 422, - 422, 421, 422, 421, 422, 422, 422, 421, - 422, 422, 421, 421, 421, 422, 421, 421, - 421, 421, 421, 421, 421, 422, 422, 422, - 422, 421, 422, 422, 422, 422, 422, 422, - 422, 421, 497, 498, 499, 500, 501, 502, - 503, 504, 505, 427, 506, 507, 508, 509, - 510, 421, 422, 421, 421, 421, 421, 421, - 422, 422, 421, 422, 422, 422, 421, 422, - 422, 422, 422, 422, 422, 422, 422, 422, - 422, 421, 422, 422, 422, 421, 421, 422, - 422, 422, 421, 421, 422, 421, 421, 422, - 422, 422, 422, 422, 421, 421, 421, 421, - 422, 422, 422, 422, 422, 422, 421, 422, - 422, 422, 422, 422, 421, 511, 466, 512, - 513, 514, 427, 515, 516, 472, 427, 421, - 422, 422, 422, 422, 421, 421, 421, 422, - 421, 421, 422, 422, 422, 421, 421, 421, - 422, 422, 421, 477, 421, 472, 427, 427, - 517, 421, 427, 421, 422, 472, 518, 519, - 472, 520, 521, 472, 522, 523, 524, 525, - 526, 527, 472, 528, 529, 530, 472, 531, - 532, 533, 491, 534, 535, 536, 491, 537, - 472, 427, 421, 421, 422, 422, 421, 421, - 421, 422, 422, 422, 422, 421, 422, 422, - 421, 421, 421, 421, 422, 422, 421, 421, - 422, 422, 421, 421, 421, 421, 421, 421, - 422, 422, 422, 421, 421, 421, 422, 421, - 421, 421, 422, 422, 421, 422, 422, 422, - 422, 421, 422, 422, 422, 422, 421, 422, + 421, 421, 422, 421, 421, 421, 421, 421, + 421, 421, 422, 421, 421, 421, 421, 421, + 421, 421, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 421, 421, 421, - 422, 422, 422, 422, 421, 538, 539, 421, - 427, 421, 422, 421, 421, 422, 472, 540, - 541, 542, 543, 522, 544, 545, 546, 547, - 548, 549, 550, 551, 552, 553, 554, 555, - 427, 421, 421, 422, 421, 422, 422, 422, - 422, 422, 422, 422, 421, 422, 422, 422, - 421, 422, 421, 421, 422, 421, 422, 421, - 421, 422, 422, 422, 422, 421, 422, 422, - 422, 421, 421, 422, 422, 422, 422, 421, - 422, 422, 421, 421, 422, 422, 422, 422, - 422, 421, 556, 557, 558, 559, 560, 561, - 562, 563, 564, 565, 566, 562, 568, 569, - 570, 571, 567, 421, 572, 573, 472, 574, - 575, 576, 577, 578, 579, 580, 581, 582, - 472, 427, 583, 584, 585, 586, 472, 587, - 588, 589, 590, 591, 592, 593, 594, 595, - 596, 597, 598, 599, 600, 601, 472, 503, - 427, 602, 421, 422, 422, 422, 422, 422, - 421, 421, 421, 422, 421, 422, 422, 421, - 422, 421, 422, 422, 421, 421, 421, 422, - 422, 422, 421, 421, 421, 422, 422, 422, - 421, 421, 421, 421, 422, 421, 421, 422, - 421, 421, 422, 422, 422, 421, 421, 422, - 421, 422, 422, 422, 421, 422, 422, 422, - 422, 422, 422, 421, 421, 421, 422, 422, - 421, 422, 422, 421, 422, 422, 421, 422, - 422, 421, 422, 422, 422, 422, 422, 422, - 422, 421, 422, 421, 422, 421, 422, 422, - 421, 422, 421, 422, 422, 421, 422, 421, - 422, 421, 603, 574, 604, 605, 606, 607, - 608, 609, 610, 611, 612, 455, 613, 472, - 614, 615, 616, 472, 617, 487, 618, 619, - 620, 621, 622, 623, 624, 625, 472, 421, - 421, 421, 422, 422, 422, 421, 422, 422, - 421, 422, 422, 421, 421, 421, 421, 421, - 422, 422, 422, 422, 421, 422, 422, 422, - 422, 422, 422, 421, 421, 421, 422, 422, + 421, 421, 421, 421, 421, 422, 422, 422, + 422, 422, 422, 422, 422, 422, 421, 421, + 421, 421, 421, 421, 421, 421, 422, 422, 422, 422, 422, 422, 422, 422, 422, 421, 422, 422, 422, 422, 422, 422, 422, 422, - 421, 422, 422, 421, 421, 421, 421, 422, - 422, 422, 421, 421, 421, 422, 421, 421, - 421, 422, 422, 421, 422, 422, 422, 421, - 422, 421, 421, 421, 422, 422, 421, 422, - 422, 422, 421, 422, 422, 422, 421, 421, - 421, 421, 422, 472, 541, 626, 627, 427, - 472, 427, 421, 421, 422, 421, 422, 472, - 626, 427, 421, 472, 628, 427, 421, 421, - 422, 472, 629, 630, 631, 532, 632, 633, - 472, 634, 635, 636, 427, 421, 421, 422, - 422, 422, 421, 422, 422, 421, 422, 422, - 422, 422, 421, 421, 422, 421, 421, 422, - 422, 421, 422, 421, 472, 427, 421, 637, - 472, 638, 421, 427, 421, 422, 421, 422, - 639, 472, 640, 641, 421, 422, 421, 421, - 421, 422, 422, 422, 422, 421, 642, 643, - 644, 472, 645, 646, 647, 648, 649, 650, - 651, 652, 653, 654, 655, 656, 657, 658, - 427, 421, 422, 422, 422, 421, 421, 421, - 421, 422, 422, 421, 421, 422, 421, 421, - 421, 421, 421, 421, 421, 422, 421, 422, - 421, 421, 421, 421, 421, 421, 422, 422, - 422, 422, 422, 421, 421, 422, 421, 421, - 421, 422, 421, 421, 422, 421, 421, 422, - 421, 421, 422, 421, 421, 421, 422, 422, - 422, 421, 421, 421, 422, 422, 422, 422, - 421, 659, 472, 660, 472, 661, 662, 663, - 664, 427, 421, 422, 422, 422, 422, 422, - 421, 421, 421, 422, 421, 421, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, 421, 422, 422, 422, 422, 422, 422, 422, - 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 421, 422, 422, 422, - 422, 422, 421, 665, 472, 427, 421, 422, - 666, 472, 457, 427, 421, 422, 667, 421, - 427, 421, 422, 472, 668, 427, 421, 421, - 422, 669, 421, 472, 670, 427, 421, 421, - 422, 672, 671, 422, 422, 422, 422, 672, - 671, 422, 672, 671, 672, 672, 422, 672, - 671, 422, 672, 422, 672, 671, 422, 672, - 422, 672, 422, 671, 672, 672, 672, 672, - 672, 672, 672, 672, 671, 422, 422, 672, - 672, 422, 672, 422, 672, 671, 672, 672, - 672, 672, 672, 422, 672, 422, 672, 422, - 672, 671, 672, 672, 422, 672, 422, 672, - 671, 672, 672, 672, 672, 672, 422, 672, - 422, 672, 671, 422, 422, 672, 422, 672, - 671, 672, 672, 672, 422, 672, 422, 672, - 422, 672, 422, 672, 671, 672, 422, 672, - 422, 672, 671, 422, 672, 672, 672, 672, - 422, 672, 422, 672, 422, 672, 422, 672, - 422, 672, 422, 672, 671, 422, 672, 671, - 672, 672, 672, 422, 672, 422, 672, 671, - 672, 422, 672, 422, 672, 671, 422, 672, - 672, 672, 672, 422, 672, 422, 672, 671, - 422, 672, 422, 672, 422, 672, 671, 672, - 672, 422, 672, 422, 672, 671, 422, 672, - 422, 672, 422, 672, 422, 671, 672, 672, - 672, 422, 672, 422, 672, 671, 422, 672, - 671, 672, 672, 422, 672, 671, 672, 672, - 672, 422, 672, 672, 672, 672, 672, 672, - 422, 422, 672, 422, 672, 422, 672, 422, - 672, 671, 672, 422, 672, 422, 672, 671, - 422, 672, 671, 672, 422, 672, 671, 672, - 422, 672, 671, 422, 422, 672, 671, 422, - 672, 422, 672, 422, 672, 422, 672, 422, - 672, 422, 671, 672, 672, 422, 672, 672, - 672, 672, 422, 422, 672, 672, 672, 672, - 672, 422, 672, 672, 672, 672, 672, 671, - 422, 672, 672, 422, 672, 422, 671, 672, - 672, 422, 672, 671, 422, 422, 672, 422, - 671, 672, 672, 671, 422, 672, 422, 671, - 672, 671, 422, 672, 422, 672, 422, 671, - 672, 672, 671, 422, 672, 422, 672, 422, - 672, 671, 672, 422, 672, 422, 672, 671, - 422, 672, 671, 422, 422, 672, 671, 672, - 422, 671, 672, 671, 422, 672, 422, 672, - 422, 671, 672, 671, 422, 422, 672, 671, - 672, 422, 672, 422, 672, 671, 422, 672, - 422, 671, 672, 671, 422, 422, 672, 422, - 671, 672, 671, 422, 422, 672, 671, 672, - 422, 672, 671, 672, 422, 672, 671, 672, - 422, 672, 422, 672, 422, 671, 672, 671, - 422, 422, 672, 671, 672, 422, 672, 422, - 672, 671, 422, 672, 671, 672, 672, 422, - 672, 422, 672, 671, 671, 422, 671, 422, - 672, 672, 422, 672, 672, 672, 672, 672, - 672, 672, 671, 422, 672, 672, 672, 422, - 671, 672, 672, 672, 422, 672, 422, 672, - 422, 672, 422, 672, 422, 672, 671, 422, - 422, 672, 671, 672, 422, 672, 671, 422, - 422, 672, 422, 422, 422, 672, 422, 672, - 422, 672, 422, 672, 422, 671, 422, 672, - 422, 672, 422, 671, 672, 671, 422, 672, - 422, 671, 672, 422, 672, 672, 672, 671, - 422, 672, 422, 422, 672, 422, 671, 672, - 672, 671, 422, 672, 672, 672, 672, 422, - 672, 422, 671, 672, 672, 672, 422, 672, - 671, 672, 422, 672, 422, 672, 422, 672, - 422, 672, 671, 672, 672, 422, 672, 671, - 422, 672, 422, 672, 422, 671, 672, 672, - 671, 422, 672, 422, 671, 672, 671, 422, - 672, 671, 422, 672, 422, 672, 671, 672, - 672, 672, 671, 422, 422, 422, 672, 671, - 422, 672, 422, 671, 672, 671, 422, 672, - 422, 672, 422, 671, 672, 672, 672, 671, - 422, 672, 422, 671, 672, 672, 672, 672, - 671, 422, 672, 422, 672, 671, 422, 422, - 672, 422, 672, 671, 672, 422, 672, 422, - 671, 672, 672, 671, 422, 672, 422, 672, - 671, 422, 672, 672, 672, 422, 672, 422, - 671, 422, 672, 671, 672, 422, 422, 672, - 422, 672, 422, 671, 672, 672, 672, 672, - 671, 422, 672, 422, 672, 422, 672, 422, - 672, 422, 672, 671, 672, 672, 672, 422, - 672, 422, 672, 422, 672, 422, 671, 672, - 672, 422, 422, 672, 671, 672, 422, 672, - 672, 671, 422, 672, 422, 672, 671, 422, - 422, 672, 672, 672, 672, 422, 672, 422, - 672, 422, 671, 672, 672, 422, 671, 672, - 671, 422, 672, 422, 671, 672, 671, 422, - 672, 422, 671, 672, 422, 672, 672, 671, - 422, 672, 672, 422, 671, 672, 671, 422, - 672, 422, 672, 671, 672, 422, 672, 422, - 671, 672, 671, 422, 672, 422, 672, 422, - 672, 422, 672, 422, 672, 671, 673, 671, - 674, 675, 676, 677, 678, 679, 680, 681, - 682, 683, 684, 676, 685, 686, 687, 688, - 689, 676, 690, 691, 692, 693, 694, 695, - 696, 697, 698, 699, 700, 701, 702, 703, - 704, 676, 705, 673, 685, 673, 706, 673, - 671, 672, 672, 672, 672, 422, 671, 672, - 672, 671, 422, 672, 671, 422, 422, 672, - 671, 422, 672, 422, 671, 672, 671, 422, - 422, 672, 422, 671, 672, 672, 671, 422, - 672, 672, 672, 671, 422, 672, 422, 672, - 672, 671, 422, 422, 672, 422, 671, 672, - 671, 422, 672, 671, 422, 422, 672, 422, - 672, 671, 422, 672, 422, 422, 672, 422, - 672, 422, 671, 672, 672, 671, 422, 672, - 672, 422, 672, 671, 422, 672, 422, 672, - 671, 422, 672, 422, 671, 422, 672, 672, - 672, 422, 672, 671, 672, 422, 672, 671, - 422, 672, 671, 672, 422, 672, 671, 422, - 672, 671, 422, 672, 422, 672, 671, 422, - 672, 671, 422, 672, 671, 707, 708, 709, - 710, 711, 712, 713, 714, 715, 716, 717, - 718, 678, 719, 720, 721, 722, 723, 720, - 724, 725, 726, 727, 728, 729, 730, 731, - 732, 673, 671, 672, 422, 672, 671, 672, - 422, 672, 671, 672, 422, 672, 671, 672, + 422, 422, 422, 421, 422, 422, 422, 422, + 422, 422, 421, 421, 421, 421, 421, 421, + 421, 421, 422, 422, 422, 422, 422, 422, + 422, 422, 421, 422, 422, 422, 422, 422, + 422, 422, 422, 421, 422, 422, 422, 422, + 422, 421, 421, 421, 421, 421, 421, 421, + 421, 422, 422, 422, 422, 422, 422, 421, + 422, 422, 422, 422, 422, 422, 422, 421, + 422, 421, 422, 422, 421, 422, 422, 422, + 422, 422, 422, 422, 422, 422, 422, 422, + 422, 422, 421, 422, 422, 422, 422, 422, + 421, 422, 422, 422, 422, 422, 422, 422, + 421, 422, 422, 422, 421, 422, 422, 422, + 421, 422, 421, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 427, + 491, 492, 493, 494, 495, 496, 427, 472, + 427, 421, 422, 421, 422, 422, 421, 421, + 422, 421, 421, 421, 421, 422, 421, 421, + 421, 421, 421, 422, 421, 421, 421, 421, + 421, 422, 422, 422, 422, 422, 421, 421, + 421, 422, 421, 421, 421, 422, 422, 422, + 421, 421, 421, 422, 422, 421, 421, 421, + 422, 422, 422, 421, 421, 421, 422, 422, + 422, 422, 421, 422, 422, 422, 422, 421, + 421, 421, 421, 421, 422, 422, 422, 422, + 421, 421, 422, 422, 422, 421, 421, 422, + 422, 422, 422, 421, 422, 422, 421, 422, + 422, 421, 421, 421, 422, 422, 422, 421, + 421, 421, 421, 422, 422, 422, 422, 422, + 421, 421, 421, 421, 422, 421, 422, 422, + 421, 422, 422, 421, 422, 421, 422, 422, + 422, 421, 422, 422, 421, 421, 421, 422, + 421, 421, 421, 421, 421, 421, 421, 422, + 422, 422, 422, 421, 422, 422, 422, 422, + 422, 422, 422, 421, 497, 498, 499, 500, + 501, 502, 503, 504, 505, 427, 506, 507, + 508, 509, 510, 421, 422, 421, 421, 421, + 421, 421, 422, 422, 421, 422, 422, 422, + 421, 422, 422, 422, 422, 422, 422, 422, + 422, 422, 422, 421, 422, 422, 422, 421, + 421, 422, 422, 422, 421, 421, 422, 421, + 421, 422, 422, 422, 422, 422, 421, 421, + 421, 421, 422, 422, 422, 422, 422, 422, + 421, 422, 422, 422, 422, 422, 421, 511, + 466, 512, 513, 514, 427, 515, 516, 472, + 427, 421, 422, 422, 422, 422, 421, 421, + 421, 422, 421, 421, 422, 422, 422, 421, + 421, 421, 422, 422, 421, 477, 421, 472, + 427, 427, 517, 421, 427, 421, 422, 472, + 518, 519, 472, 520, 521, 472, 522, 523, + 524, 525, 526, 527, 472, 528, 529, 530, + 472, 531, 532, 533, 491, 534, 535, 536, + 491, 537, 472, 427, 421, 421, 422, 422, + 421, 421, 421, 422, 422, 422, 422, 421, + 422, 422, 421, 421, 421, 421, 422, 422, + 421, 421, 422, 422, 421, 421, 421, 421, + 421, 421, 422, 422, 422, 421, 421, 421, + 422, 421, 421, 421, 422, 422, 421, 422, + 422, 422, 422, 421, 422, 422, 422, 422, + 421, 422, 422, 422, 422, 422, 422, 421, + 421, 421, 422, 422, 422, 422, 421, 538, + 539, 421, 427, 421, 422, 421, 421, 422, + 472, 540, 541, 542, 543, 522, 544, 545, + 546, 547, 548, 549, 550, 551, 552, 553, + 554, 555, 427, 421, 421, 422, 421, 422, + 422, 422, 422, 422, 422, 422, 421, 422, + 422, 422, 421, 422, 421, 421, 422, 421, + 422, 421, 421, 422, 422, 422, 422, 421, + 422, 422, 422, 421, 421, 422, 422, 422, + 422, 421, 422, 422, 421, 421, 422, 422, + 422, 422, 422, 421, 556, 557, 558, 559, + 560, 561, 562, 563, 564, 565, 566, 562, + 568, 569, 570, 571, 567, 421, 572, 573, + 472, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 472, 427, 583, 584, 585, 586, + 472, 587, 588, 589, 590, 591, 592, 593, + 594, 595, 596, 597, 598, 599, 600, 601, + 472, 503, 427, 602, 421, 422, 422, 422, + 422, 422, 421, 421, 421, 422, 421, 422, + 422, 421, 422, 421, 422, 422, 421, 421, + 421, 422, 422, 422, 421, 421, 421, 422, + 422, 422, 421, 421, 421, 421, 422, 421, + 421, 422, 421, 421, 422, 422, 422, 421, + 421, 422, 421, 422, 422, 422, 421, 422, + 422, 422, 422, 422, 422, 421, 421, 421, + 422, 422, 421, 422, 422, 421, 422, 422, + 421, 422, 422, 421, 422, 422, 422, 422, + 422, 422, 422, 421, 422, 421, 422, 421, + 422, 422, 421, 422, 421, 422, 422, 421, + 422, 421, 422, 421, 603, 574, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 455, + 613, 472, 614, 615, 616, 472, 617, 487, + 618, 619, 620, 621, 622, 623, 624, 625, + 472, 421, 421, 421, 422, 422, 422, 421, + 422, 422, 421, 422, 422, 421, 421, 421, + 421, 421, 422, 422, 422, 422, 421, 422, + 422, 422, 422, 422, 422, 421, 421, 421, + 422, 422, 422, 422, 422, 422, 422, 422, + 422, 421, 422, 422, 422, 422, 422, 422, + 422, 422, 421, 422, 422, 421, 421, 421, + 421, 422, 422, 422, 421, 421, 421, 422, + 421, 421, 421, 422, 422, 421, 422, 422, + 422, 421, 422, 421, 421, 421, 422, 422, + 421, 422, 422, 422, 421, 422, 422, 422, + 421, 421, 421, 421, 422, 472, 541, 626, + 627, 427, 472, 427, 421, 421, 422, 421, + 422, 472, 626, 427, 421, 472, 628, 427, + 421, 421, 422, 472, 629, 630, 631, 532, + 632, 633, 472, 634, 635, 636, 427, 421, + 421, 422, 422, 422, 421, 422, 422, 421, + 422, 422, 422, 422, 421, 421, 422, 421, + 421, 422, 422, 421, 422, 421, 472, 427, + 421, 637, 472, 638, 421, 427, 421, 422, + 421, 422, 639, 472, 640, 641, 421, 422, + 421, 421, 421, 422, 422, 422, 422, 421, + 642, 643, 644, 472, 645, 646, 647, 648, + 649, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 427, 421, 422, 422, 422, 421, + 421, 421, 421, 422, 422, 421, 421, 422, + 421, 421, 421, 421, 421, 421, 421, 422, + 421, 422, 421, 421, 421, 421, 421, 421, + 422, 422, 422, 422, 422, 421, 421, 422, + 421, 421, 421, 422, 421, 421, 422, 421, + 421, 422, 421, 421, 422, 421, 421, 421, + 422, 422, 422, 421, 421, 421, 422, 422, + 422, 422, 421, 659, 472, 660, 472, 661, + 662, 663, 664, 427, 421, 422, 422, 422, + 422, 422, 421, 421, 421, 422, 421, 421, + 422, 422, 422, 422, 422, 422, 422, 422, + 422, 422, 421, 422, 422, 422, 422, 422, + 422, 422, 422, 422, 422, 422, 422, 422, + 422, 422, 422, 422, 422, 422, 421, 422, + 422, 422, 422, 422, 421, 665, 472, 427, + 421, 422, 666, 472, 457, 427, 421, 422, + 667, 421, 427, 421, 422, 472, 668, 427, + 421, 421, 422, 669, 421, 472, 670, 427, + 421, 421, 422, 672, 671, 422, 422, 422, + 422, 672, 671, 422, 672, 671, 672, 672, 422, 672, 671, 422, 672, 422, 672, 671, - 672, 422, 672, 671, 672, 422, 422, 422, - 672, 671, 672, 422, 672, 671, 672, 672, - 672, 672, 422, 672, 422, 671, 672, 671, - 422, 422, 672, 422, 672, 671, 672, 422, - 672, 671, 422, 672, 671, 672, 672, 422, + 422, 672, 422, 672, 422, 671, 672, 672, + 672, 672, 672, 672, 672, 672, 671, 422, + 422, 672, 672, 422, 672, 422, 672, 671, + 672, 672, 672, 672, 672, 422, 672, 422, + 672, 422, 672, 671, 672, 672, 422, 672, + 422, 672, 671, 672, 672, 672, 672, 672, + 422, 672, 422, 672, 671, 422, 422, 672, + 422, 672, 671, 672, 672, 672, 422, 672, + 422, 672, 422, 672, 422, 672, 671, 672, + 422, 672, 422, 672, 671, 422, 672, 672, + 672, 672, 422, 672, 422, 672, 422, 672, + 422, 672, 422, 672, 422, 672, 671, 422, + 672, 671, 672, 672, 672, 422, 672, 422, + 672, 671, 672, 422, 672, 422, 672, 671, + 422, 672, 672, 672, 672, 422, 672, 422, + 672, 671, 422, 672, 422, 672, 422, 672, + 671, 672, 672, 422, 672, 422, 672, 671, + 422, 672, 422, 672, 422, 672, 422, 671, + 672, 672, 672, 422, 672, 422, 672, 671, + 422, 672, 671, 672, 672, 422, 672, 671, + 672, 672, 672, 422, 672, 672, 672, 672, + 672, 672, 422, 422, 672, 422, 672, 422, + 672, 422, 672, 671, 672, 422, 672, 422, 672, 671, 422, 672, 671, 672, 422, 672, - 671, 422, 672, 671, 422, 672, 671, 422, - 672, 671, 672, 671, 422, 422, 672, 671, - 672, 422, 672, 671, 422, 672, 422, 671, - 672, 671, 422, 676, 733, 673, 676, 734, - 676, 735, 685, 673, 671, 672, 671, 422, - 672, 671, 422, 676, 734, 685, 673, 671, - 676, 736, 673, 685, 673, 671, 672, 671, - 422, 676, 737, 694, 738, 720, 739, 732, - 676, 740, 741, 742, 673, 685, 673, 671, - 672, 671, 422, 672, 422, 672, 671, 422, + 671, 672, 422, 672, 671, 422, 422, 672, + 671, 422, 672, 422, 672, 422, 672, 422, + 672, 422, 672, 422, 671, 672, 672, 422, + 672, 672, 672, 672, 422, 422, 672, 672, + 672, 672, 672, 422, 672, 672, 672, 672, + 672, 671, 422, 672, 672, 422, 672, 422, + 671, 672, 672, 422, 672, 671, 422, 422, + 672, 422, 671, 672, 672, 671, 422, 672, + 422, 671, 672, 671, 422, 672, 422, 672, + 422, 671, 672, 672, 671, 422, 672, 422, + 672, 422, 672, 671, 672, 422, 672, 422, + 672, 671, 422, 672, 671, 422, 422, 672, + 671, 672, 422, 671, 672, 671, 422, 672, + 422, 672, 422, 671, 672, 671, 422, 422, + 672, 671, 672, 422, 672, 422, 672, 671, + 422, 672, 422, 671, 672, 671, 422, 422, + 672, 422, 671, 672, 671, 422, 422, 672, + 671, 672, 422, 672, 671, 672, 422, 672, + 671, 672, 422, 672, 422, 672, 422, 671, + 672, 671, 422, 422, 672, 671, 672, 422, + 672, 422, 672, 671, 422, 672, 671, 672, + 672, 422, 672, 422, 672, 671, 671, 422, + 671, 422, 672, 672, 422, 672, 672, 672, + 672, 672, 672, 672, 671, 422, 672, 672, + 672, 422, 671, 672, 672, 672, 422, 672, + 422, 672, 422, 672, 422, 672, 422, 672, + 671, 422, 422, 672, 671, 672, 422, 672, + 671, 422, 422, 672, 422, 422, 422, 672, + 422, 672, 422, 672, 422, 672, 422, 671, + 422, 672, 422, 672, 422, 671, 672, 671, + 422, 672, 422, 671, 672, 422, 672, 672, + 672, 671, 422, 672, 422, 422, 672, 422, + 671, 672, 672, 671, 422, 672, 672, 672, + 672, 422, 672, 422, 671, 672, 672, 672, + 422, 672, 671, 672, 422, 672, 422, 672, + 422, 672, 422, 672, 671, 672, 672, 422, + 672, 671, 422, 672, 422, 672, 422, 671, + 672, 672, 671, 422, 672, 422, 671, 672, + 671, 422, 672, 671, 422, 672, 422, 672, + 671, 672, 672, 672, 671, 422, 422, 422, + 672, 671, 422, 672, 422, 671, 672, 671, + 422, 672, 422, 672, 422, 671, 672, 672, + 672, 671, 422, 672, 422, 671, 672, 672, + 672, 672, 671, 422, 672, 422, 672, 671, + 422, 422, 672, 422, 672, 671, 672, 422, + 672, 422, 671, 672, 672, 671, 422, 672, + 422, 672, 671, 422, 672, 672, 672, 422, + 672, 422, 671, 422, 672, 671, 672, 422, + 422, 672, 422, 672, 422, 671, 672, 672, + 672, 672, 671, 422, 672, 422, 672, 422, + 672, 422, 672, 422, 672, 671, 672, 672, + 672, 422, 672, 422, 672, 422, 672, 422, + 671, 672, 672, 422, 422, 672, 671, 672, + 422, 672, 672, 671, 422, 672, 422, 672, + 671, 422, 422, 672, 672, 672, 672, 422, + 672, 422, 672, 422, 671, 672, 672, 422, + 671, 672, 671, 422, 672, 422, 671, 672, + 671, 422, 672, 422, 671, 672, 422, 672, + 672, 671, 422, 672, 672, 422, 671, 672, + 671, 422, 672, 422, 672, 671, 672, 422, + 672, 422, 671, 672, 671, 422, 672, 422, + 672, 422, 672, 422, 672, 422, 672, 671, + 673, 671, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 676, 685, 686, + 687, 688, 689, 676, 690, 691, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, + 702, 703, 704, 676, 705, 673, 685, 673, + 706, 673, 671, 672, 672, 672, 672, 422, + 671, 672, 672, 671, 422, 672, 671, 422, + 422, 672, 671, 422, 672, 422, 671, 672, + 671, 422, 422, 672, 422, 671, 672, 672, + 671, 422, 672, 672, 672, 671, 422, 672, + 422, 672, 672, 671, 422, 422, 672, 422, + 671, 672, 671, 422, 672, 671, 422, 422, + 672, 422, 672, 671, 422, 672, 422, 422, 672, 422, 672, 422, 671, 672, 672, 671, - 422, 672, 422, 672, 671, 422, 672, 671, - 676, 685, 427, 671, 743, 676, 744, 685, - 673, 671, 427, 672, 671, 422, 672, 671, - 422, 745, 676, 746, 747, 673, 671, 422, - 672, 671, 672, 672, 671, 422, 422, 672, - 422, 672, 671, 676, 748, 749, 750, 751, - 752, 753, 754, 755, 756, 757, 758, 673, - 685, 673, 671, 672, 422, 672, 672, 672, - 672, 672, 672, 672, 422, 672, 422, 672, - 672, 672, 672, 672, 672, 671, 422, 672, - 672, 422, 672, 422, 671, 672, 422, 672, + 422, 672, 672, 422, 672, 671, 422, 672, + 422, 672, 671, 422, 672, 422, 671, 422, + 672, 672, 672, 422, 672, 671, 672, 422, + 672, 671, 422, 672, 671, 672, 422, 672, + 671, 422, 672, 671, 422, 672, 422, 672, + 671, 422, 672, 671, 422, 672, 671, 707, + 708, 709, 710, 711, 712, 713, 714, 715, + 716, 717, 718, 678, 719, 720, 721, 722, + 723, 720, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 673, 671, 672, 422, 672, + 671, 672, 422, 672, 671, 672, 422, 672, + 671, 672, 422, 672, 671, 422, 672, 422, + 672, 671, 672, 422, 672, 671, 672, 422, + 422, 422, 672, 671, 672, 422, 672, 671, + 672, 672, 672, 672, 422, 672, 422, 671, + 672, 671, 422, 422, 672, 422, 672, 671, + 672, 422, 672, 671, 422, 672, 671, 672, + 672, 422, 672, 671, 422, 672, 671, 672, + 422, 672, 671, 422, 672, 671, 422, 672, + 671, 422, 672, 671, 672, 671, 422, 422, + 672, 671, 672, 422, 672, 671, 422, 672, + 422, 671, 672, 671, 422, 676, 733, 673, + 676, 734, 676, 735, 685, 673, 671, 672, + 671, 422, 672, 671, 422, 676, 734, 685, + 673, 671, 676, 736, 673, 685, 673, 671, + 672, 671, 422, 676, 737, 694, 738, 720, + 739, 732, 676, 740, 741, 742, 673, 685, + 673, 671, 672, 671, 422, 672, 422, 672, + 671, 422, 672, 422, 672, 422, 671, 672, + 672, 671, 422, 672, 422, 672, 671, 422, + 672, 671, 676, 685, 427, 671, 743, 676, + 744, 685, 673, 671, 427, 672, 671, 422, + 672, 671, 422, 745, 676, 746, 747, 673, + 671, 422, 672, 671, 672, 672, 671, 422, + 422, 672, 422, 672, 671, 676, 748, 749, + 750, 751, 752, 753, 754, 755, 756, 757, + 758, 673, 685, 673, 671, 672, 422, 672, + 672, 672, 672, 672, 672, 672, 422, 672, + 422, 672, 672, 672, 672, 672, 672, 671, + 422, 672, 672, 422, 672, 422, 671, 672, + 422, 672, 672, 672, 422, 672, 672, 422, 672, 672, 422, 672, 672, 422, 672, 672, - 422, 672, 672, 422, 672, 672, 671, 422, - 676, 759, 676, 735, 760, 761, 762, 673, - 685, 673, 671, 672, 671, 422, 672, 672, - 672, 422, 672, 672, 672, 422, 672, 422, - 672, 671, 422, 422, 422, 422, 672, 672, - 422, 422, 422, 422, 422, 672, 672, 672, - 672, 672, 672, 672, 422, 672, 422, 672, - 422, 671, 672, 672, 672, 422, 672, 422, - 672, 671, 685, 427, 763, 676, 685, 427, - 672, 671, 422, 764, 676, 765, 685, 427, - 672, 671, 422, 672, 422, 766, 685, 673, - 671, 427, 672, 671, 422, 676, 767, 673, - 685, 673, 671, 672, 671, 422, 768, 769, - 769, 768, 770, 768, 771, 768, 769, 772, - 773, 772, 775, 774, 776, 777, 777, 774, - 778, 774, 779, 776, 780, 777, 781, 777, - 783, 782, 784, 785, 785, 782, 786, 782, - 787, 784, 788, 785, 789, 785, 791, 791, - 791, 791, 790, 791, 791, 791, 790, 791, - 790, 791, 791, 790, 790, 790, 790, 790, - 790, 791, 790, 790, 790, 790, 791, 791, - 791, 791, 791, 790, 790, 791, 790, 790, - 791, 790, 791, 790, 790, 791, 790, 790, - 790, 791, 791, 791, 791, 791, 791, 790, - 791, 791, 790, 791, 791, 790, 790, 790, - 790, 790, 790, 791, 791, 790, 790, 791, - 790, 791, 791, 791, 790, 793, 794, 795, - 796, 797, 798, 799, 800, 801, 802, 803, - 804, 805, 806, 807, 808, 809, 810, 811, - 812, 813, 814, 815, 816, 817, 818, 819, - 820, 821, 822, 823, 824, 790, 791, 790, - 791, 790, 791, 791, 790, 791, 791, 790, - 790, 790, 791, 790, 790, 790, 790, 790, - 790, 790, 791, 790, 790, 790, 790, 790, - 790, 790, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 790, 790, 790, - 790, 790, 790, 790, 790, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 790, 790, - 790, 790, 790, 790, 790, 790, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 790, - 791, 791, 791, 791, 791, 791, 791, 791, - 790, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 790, 791, 791, 791, - 791, 791, 791, 790, 791, 791, 791, 791, - 791, 791, 790, 790, 790, 790, 790, 790, - 790, 790, 791, 791, 791, 791, 791, 791, - 791, 791, 790, 791, 791, 791, 791, 791, - 791, 791, 791, 790, 791, 791, 791, 791, - 791, 790, 790, 790, 790, 790, 790, 790, - 790, 791, 791, 791, 791, 791, 791, 790, - 791, 791, 791, 791, 791, 791, 791, 790, - 791, 790, 791, 791, 790, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 790, 791, 791, 791, 791, 791, - 790, 791, 791, 791, 791, 791, 791, 791, - 790, 791, 791, 791, 790, 791, 791, 791, - 790, 791, 790, 825, 826, 827, 828, 829, - 830, 831, 832, 833, 834, 835, 836, 837, - 838, 839, 840, 841, 842, 843, 844, 845, - 846, 847, 848, 849, 850, 851, 852, 853, - 854, 855, 856, 857, 858, 859, 860, 797, - 861, 862, 863, 864, 865, 866, 797, 842, - 797, 790, 791, 790, 791, 791, 790, 790, - 791, 790, 790, 790, 790, 791, 790, 790, - 790, 790, 790, 791, 790, 790, 790, 790, - 790, 791, 791, 791, 791, 791, 790, 790, - 790, 791, 790, 790, 790, 791, 791, 791, - 790, 790, 790, 791, 791, 790, 790, 790, - 791, 791, 791, 790, 790, 790, 791, 791, - 791, 791, 790, 791, 791, 791, 791, 790, - 790, 790, 790, 790, 791, 791, 791, 791, - 790, 790, 791, 791, 791, 790, 790, 791, - 791, 791, 791, 790, 791, 791, 790, 791, - 791, 790, 790, 790, 791, 791, 791, 790, - 790, 790, 790, 791, 791, 791, 791, 791, - 790, 790, 790, 790, 791, 790, 791, 791, - 790, 791, 791, 790, 791, 790, 791, 791, - 791, 790, 791, 791, 790, 790, 790, 791, - 790, 790, 790, 790, 790, 790, 790, 791, - 791, 791, 791, 790, 791, 791, 791, 791, - 791, 791, 791, 790, 867, 868, 869, 870, - 871, 872, 873, 874, 875, 797, 876, 877, - 878, 879, 880, 790, 791, 790, 790, 790, - 790, 790, 791, 791, 790, 791, 791, 791, - 790, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 790, 791, 791, 791, 790, - 790, 791, 791, 791, 790, 790, 791, 790, - 790, 791, 791, 791, 791, 791, 790, 790, - 790, 790, 791, 791, 791, 791, 791, 791, - 790, 791, 791, 791, 791, 791, 790, 881, - 836, 882, 883, 884, 797, 885, 886, 842, - 797, 790, 791, 791, 791, 791, 790, 790, - 790, 791, 790, 790, 791, 791, 791, 790, - 790, 790, 791, 791, 790, 847, 790, 842, - 797, 797, 887, 790, 797, 790, 791, 842, - 888, 889, 842, 890, 891, 842, 892, 893, - 894, 895, 896, 897, 842, 898, 899, 900, - 842, 901, 902, 903, 861, 904, 905, 906, - 861, 907, 842, 797, 790, 790, 791, 791, - 790, 790, 790, 791, 791, 791, 791, 790, - 791, 791, 790, 790, 790, 790, 791, 791, - 790, 790, 791, 791, 790, 790, 790, 790, - 790, 790, 791, 791, 791, 790, 790, 790, - 791, 790, 790, 790, 791, 791, 790, 791, - 791, 791, 791, 790, 791, 791, 791, 791, - 790, 791, 791, 791, 791, 791, 791, 790, - 790, 790, 791, 791, 791, 791, 790, 908, - 909, 790, 797, 790, 791, 790, 790, 791, - 842, 910, 911, 912, 913, 892, 914, 915, - 916, 917, 918, 919, 920, 921, 922, 923, - 924, 925, 797, 790, 790, 791, 790, 791, - 791, 791, 791, 791, 791, 791, 790, 791, - 791, 791, 790, 791, 790, 790, 791, 790, - 791, 790, 790, 791, 791, 791, 791, 790, - 791, 791, 791, 790, 790, 791, 791, 791, - 791, 790, 791, 791, 790, 790, 791, 791, - 791, 791, 791, 790, 926, 927, 928, 929, - 930, 931, 932, 933, 934, 935, 936, 932, - 938, 939, 940, 941, 937, 790, 942, 943, - 842, 944, 945, 946, 947, 948, 949, 950, - 951, 952, 842, 797, 953, 954, 955, 956, - 842, 957, 958, 959, 960, 961, 962, 963, - 964, 965, 966, 967, 968, 969, 970, 971, - 842, 873, 797, 972, 790, 791, 791, 791, - 791, 791, 790, 790, 790, 791, 790, 791, - 791, 790, 791, 790, 791, 791, 790, 790, - 790, 791, 791, 791, 790, 790, 790, 791, - 791, 791, 790, 790, 790, 790, 791, 790, - 790, 791, 790, 790, 791, 791, 791, 790, - 790, 791, 790, 791, 791, 791, 790, 791, - 791, 791, 791, 791, 791, 790, 790, 790, - 791, 791, 790, 791, 791, 790, 791, 791, - 790, 791, 791, 790, 791, 791, 791, 791, - 791, 791, 791, 790, 791, 790, 791, 790, - 791, 791, 790, 791, 790, 791, 791, 790, - 791, 790, 791, 790, 973, 944, 974, 975, - 976, 977, 978, 979, 980, 981, 982, 825, - 983, 842, 984, 985, 986, 842, 987, 857, - 988, 989, 990, 991, 992, 993, 994, 995, - 842, 790, 790, 790, 791, 791, 791, 790, - 791, 791, 790, 791, 791, 790, 790, 790, - 790, 790, 791, 791, 791, 791, 790, 791, - 791, 791, 791, 791, 791, 790, 790, 790, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 790, 791, 791, 791, 791, 791, 791, - 791, 791, 790, 791, 791, 790, 790, 790, - 790, 791, 791, 791, 790, 790, 790, 791, - 790, 790, 790, 791, 791, 790, 791, 791, - 791, 790, 791, 790, 790, 790, 791, 791, - 790, 791, 791, 791, 790, 791, 791, 791, - 790, 790, 790, 790, 791, 842, 911, 996, - 997, 797, 842, 797, 790, 790, 791, 790, - 791, 842, 996, 797, 790, 842, 998, 797, - 790, 790, 791, 842, 999, 1000, 1001, 902, - 1002, 1003, 842, 1004, 1005, 1006, 797, 790, - 790, 791, 791, 791, 790, 791, 791, 790, - 791, 791, 791, 791, 790, 790, 791, 790, - 790, 791, 791, 790, 791, 790, 842, 797, - 790, 1007, 842, 1008, 790, 797, 790, 791, - 790, 791, 1009, 842, 1010, 1011, 790, 791, - 790, 790, 790, 791, 791, 791, 791, 790, - 1012, 1013, 1014, 842, 1015, 1016, 1017, 1018, - 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, - 1027, 1028, 797, 790, 791, 791, 791, 790, - 790, 790, 790, 791, 791, 790, 790, 791, - 790, 790, 790, 790, 790, 790, 790, 791, - 790, 791, 790, 790, 790, 790, 790, 790, - 791, 791, 791, 791, 791, 790, 790, 791, - 790, 790, 790, 791, 790, 790, 791, 790, - 790, 791, 790, 790, 791, 790, 790, 790, - 791, 791, 791, 790, 790, 790, 791, 791, - 791, 791, 790, 1029, 842, 1030, 842, 1031, - 1032, 1033, 1034, 797, 790, 791, 791, 791, - 791, 791, 790, 790, 790, 791, 790, 790, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 790, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 790, 791, - 791, 791, 791, 791, 790, 1035, 842, 797, - 790, 791, 1036, 842, 827, 797, 790, 791, - 1037, 790, 797, 790, 791, 842, 1038, 797, - 790, 790, 791, 1039, 790, 842, 1040, 797, - 790, 790, 791, 1042, 1041, 791, 791, 791, - 791, 1042, 1041, 791, 1042, 1041, 1042, 1042, - 791, 1042, 1041, 791, 1042, 791, 1042, 1041, - 791, 1042, 791, 1042, 791, 1041, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1041, 791, - 791, 1042, 1042, 791, 1042, 791, 1042, 1041, - 1042, 1042, 1042, 1042, 1042, 791, 1042, 791, - 1042, 791, 1042, 1041, 1042, 1042, 791, 1042, - 791, 1042, 1041, 1042, 1042, 1042, 1042, 1042, - 791, 1042, 791, 1042, 1041, 791, 791, 1042, - 791, 1042, 1041, 1042, 1042, 1042, 791, 1042, - 791, 1042, 791, 1042, 791, 1042, 1041, 1042, - 791, 1042, 791, 1042, 1041, 791, 1042, 1042, - 1042, 1042, 791, 1042, 791, 1042, 791, 1042, - 791, 1042, 791, 1042, 791, 1042, 1041, 791, - 1042, 1041, 1042, 1042, 1042, 791, 1042, 791, - 1042, 1041, 1042, 791, 1042, 791, 1042, 1041, - 791, 1042, 1042, 1042, 1042, 791, 1042, 791, - 1042, 1041, 791, 1042, 791, 1042, 791, 1042, - 1041, 1042, 1042, 791, 1042, 791, 1042, 1041, - 791, 1042, 791, 1042, 791, 1042, 791, 1041, - 1042, 1042, 1042, 791, 1042, 791, 1042, 1041, - 791, 1042, 1041, 1042, 1042, 791, 1042, 1041, - 1042, 1042, 1042, 791, 1042, 1042, 1042, 1042, - 1042, 1042, 791, 791, 1042, 791, 1042, 791, - 1042, 791, 1042, 1041, 1042, 791, 1042, 791, - 1042, 1041, 791, 1042, 1041, 1042, 791, 1042, - 1041, 1042, 791, 1042, 1041, 791, 791, 1042, - 1041, 791, 1042, 791, 1042, 791, 1042, 791, - 1042, 791, 1042, 791, 1041, 1042, 1042, 791, - 1042, 1042, 1042, 1042, 791, 791, 1042, 1042, - 1042, 1042, 1042, 791, 1042, 1042, 1042, 1042, - 1042, 1041, 791, 1042, 1042, 791, 1042, 791, - 1041, 1042, 1042, 791, 1042, 1041, 791, 791, - 1042, 791, 1041, 1042, 1042, 1041, 791, 1042, - 791, 1041, 1042, 1041, 791, 1042, 791, 1042, - 791, 1041, 1042, 1042, 1041, 791, 1042, 791, - 1042, 791, 1042, 1041, 1042, 791, 1042, 791, - 1042, 1041, 791, 1042, 1041, 791, 791, 1042, - 1041, 1042, 791, 1041, 1042, 1041, 791, 1042, - 791, 1042, 791, 1041, 1042, 1041, 791, 791, - 1042, 1041, 1042, 791, 1042, 791, 1042, 1041, - 791, 1042, 791, 1041, 1042, 1041, 791, 791, - 1042, 791, 1041, 1042, 1041, 791, 791, 1042, - 1041, 1042, 791, 1042, 1041, 1042, 791, 1042, - 1041, 1042, 791, 1042, 791, 1042, 791, 1041, - 1042, 1041, 791, 791, 1042, 1041, 1042, 791, - 1042, 791, 1042, 1041, 791, 1042, 1041, 1042, - 1042, 791, 1042, 791, 1042, 1041, 1041, 791, - 1041, 791, 1042, 1042, 791, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1041, 791, 1042, 1042, - 1042, 791, 1041, 1042, 1042, 1042, 791, 1042, - 791, 1042, 791, 1042, 791, 1042, 791, 1042, - 1041, 791, 791, 1042, 1041, 1042, 791, 1042, - 1041, 791, 791, 1042, 791, 791, 791, 1042, - 791, 1042, 791, 1042, 791, 1042, 791, 1041, - 791, 1042, 791, 1042, 791, 1041, 1042, 1041, - 791, 1042, 791, 1041, 1042, 791, 1042, 1042, - 1042, 1041, 791, 1042, 791, 791, 1042, 791, - 1041, 1042, 1042, 1041, 791, 1042, 1042, 1042, - 1042, 791, 1042, 791, 1041, 1042, 1042, 1042, - 791, 1042, 1041, 1042, 791, 1042, 791, 1042, - 791, 1042, 791, 1042, 1041, 1042, 1042, 791, - 1042, 1041, 791, 1042, 791, 1042, 791, 1041, - 1042, 1042, 1041, 791, 1042, 791, 1041, 1042, - 1041, 791, 1042, 1041, 791, 1042, 791, 1042, - 1041, 1042, 1042, 1042, 1041, 791, 791, 791, - 1042, 1041, 791, 1042, 791, 1041, 1042, 1041, - 791, 1042, 791, 1042, 791, 1041, 1042, 1042, - 1042, 1041, 791, 1042, 791, 1041, 1042, 1042, - 1042, 1042, 1041, 791, 1042, 791, 1042, 1041, - 791, 791, 1042, 791, 1042, 1041, 1042, 791, - 1042, 791, 1041, 1042, 1042, 1041, 791, 1042, - 791, 1042, 1041, 791, 1042, 1042, 1042, 791, - 1042, 791, 1041, 791, 1042, 1041, 1042, 791, - 791, 1042, 791, 1042, 791, 1041, 1042, 1042, - 1042, 1042, 1041, 791, 1042, 791, 1042, 791, - 1042, 791, 1042, 791, 1042, 1041, 1042, 1042, - 1042, 791, 1042, 791, 1042, 791, 1042, 791, - 1041, 1042, 1042, 791, 791, 1042, 1041, 1042, - 791, 1042, 1042, 1041, 791, 1042, 791, 1042, - 1041, 791, 791, 1042, 1042, 1042, 1042, 791, - 1042, 791, 1042, 791, 1041, 1042, 1042, 791, - 1041, 1042, 1041, 791, 1042, 791, 1041, 1042, - 1041, 791, 1042, 791, 1041, 1042, 791, 1042, - 1042, 1041, 791, 1042, 1042, 791, 1041, 1042, - 1041, 791, 1042, 791, 1042, 1041, 1042, 791, - 1042, 791, 1041, 1042, 1041, 791, 1042, 791, - 1042, 791, 1042, 791, 1042, 791, 1042, 1041, - 1043, 1041, 1044, 1045, 1046, 1047, 1048, 1049, - 1050, 1051, 1052, 1053, 1054, 1046, 1055, 1056, - 1057, 1058, 1059, 1046, 1060, 1061, 1062, 1063, - 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, - 1072, 1073, 1074, 1046, 1075, 1043, 1055, 1043, - 1076, 1043, 1041, 1042, 1042, 1042, 1042, 791, - 1041, 1042, 1042, 1041, 791, 1042, 1041, 791, - 791, 1042, 1041, 791, 1042, 791, 1041, 1042, - 1041, 791, 791, 1042, 791, 1041, 1042, 1042, - 1041, 791, 1042, 1042, 1042, 1041, 791, 1042, - 791, 1042, 1042, 1041, 791, 791, 1042, 791, - 1041, 1042, 1041, 791, 1042, 1041, 791, 791, - 1042, 791, 1042, 1041, 791, 1042, 791, 791, - 1042, 791, 1042, 791, 1041, 1042, 1042, 1041, - 791, 1042, 1042, 791, 1042, 1041, 791, 1042, - 791, 1042, 1041, 791, 1042, 791, 1041, 791, - 1042, 1042, 1042, 791, 1042, 1041, 1042, 791, - 1042, 1041, 791, 1042, 1041, 1042, 791, 1042, - 1041, 791, 1042, 1041, 791, 1042, 791, 1042, - 1041, 791, 1042, 1041, 791, 1042, 1041, 1077, - 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, - 1086, 1087, 1088, 1048, 1089, 1090, 1091, 1092, - 1093, 1090, 1094, 1095, 1096, 1097, 1098, 1099, - 1100, 1101, 1102, 1043, 1041, 1042, 791, 1042, - 1041, 1042, 791, 1042, 1041, 1042, 791, 1042, - 1041, 1042, 791, 1042, 1041, 791, 1042, 791, - 1042, 1041, 1042, 791, 1042, 1041, 1042, 791, - 791, 791, 1042, 1041, 1042, 791, 1042, 1041, - 1042, 1042, 1042, 1042, 791, 1042, 791, 1041, - 1042, 1041, 791, 791, 1042, 791, 1042, 1041, - 1042, 791, 1042, 1041, 791, 1042, 1041, 1042, - 1042, 791, 1042, 1041, 791, 1042, 1041, 1042, - 791, 1042, 1041, 791, 1042, 1041, 791, 1042, - 1041, 791, 1042, 1041, 1042, 1041, 791, 791, - 1042, 1041, 1042, 791, 1042, 1041, 791, 1042, - 791, 1041, 1042, 1041, 791, 1046, 1103, 1043, - 1046, 1104, 1046, 1105, 1055, 1043, 1041, 1042, - 1041, 791, 1042, 1041, 791, 1046, 1104, 1055, - 1043, 1041, 1046, 1106, 1043, 1055, 1043, 1041, - 1042, 1041, 791, 1046, 1107, 1064, 1108, 1090, - 1109, 1102, 1046, 1110, 1111, 1112, 1043, 1055, - 1043, 1041, 1042, 1041, 791, 1042, 791, 1042, - 1041, 791, 1042, 791, 1042, 791, 1041, 1042, - 1042, 1041, 791, 1042, 791, 1042, 1041, 791, - 1042, 1041, 1046, 1055, 797, 1041, 1113, 1046, - 1114, 1055, 1043, 1041, 797, 1042, 1041, 791, - 1042, 1041, 791, 1115, 1046, 1116, 1117, 1043, - 1041, 791, 1042, 1041, 1042, 1042, 1041, 791, - 791, 1042, 791, 1042, 1041, 1046, 1118, 1119, - 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, - 1128, 1043, 1055, 1043, 1041, 1042, 791, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 791, 1042, - 791, 1042, 1042, 1042, 1042, 1042, 1042, 1041, - 791, 1042, 1042, 791, 1042, 791, 1041, 1042, - 791, 1042, 1042, 1042, 791, 1042, 1042, 791, - 1042, 1042, 791, 1042, 1042, 791, 1042, 1042, - 1041, 791, 1046, 1129, 1046, 1105, 1130, 1131, - 1132, 1043, 1055, 1043, 1041, 1042, 1041, 791, - 1042, 1042, 1042, 791, 1042, 1042, 1042, 791, - 1042, 791, 1042, 1041, 791, 791, 791, 791, - 1042, 1042, 791, 791, 791, 791, 791, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 791, 1042, - 791, 1042, 791, 1041, 1042, 1042, 1042, 791, - 1042, 791, 1042, 1041, 1055, 797, 1133, 1046, - 1055, 797, 1042, 1041, 791, 1134, 1046, 1135, - 1055, 797, 1042, 1041, 791, 1042, 791, 1136, - 1055, 1043, 1041, 797, 1042, 1041, 791, 1046, - 1137, 1043, 1055, 1043, 1041, 1042, 1041, 791, - 1138, 1139, 1140, 1138, 1141, 1142, 1143, 1144, - 1146, 1147, 1148, 1149, 1150, 672, 672, 672, - 1151, 1152, 1153, 1154, 672, 1157, 1158, 1160, - 1161, 1162, 1156, 1163, 1164, 1165, 1166, 1167, - 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, - 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1184, - 1185, 1186, 1187, 1188, 1189, 672, 1145, 10, - 1145, 422, 1145, 422, 1156, 1159, 1183, 1190, - 1155, 1138, 1138, 1191, 1139, 1192, 1194, 1193, - 2, 1, 1195, 1193, 1196, 1193, 5, 1, - 1193, 6, 5, 9, 11, 11, 10, 1198, - 1199, 1200, 1193, 1201, 1202, 1193, 1203, 1193, - 422, 422, 1205, 1206, 491, 472, 1207, 472, - 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, - 1216, 1217, 1218, 546, 1219, 522, 1220, 1221, - 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, - 1230, 1231, 422, 422, 422, 427, 567, 1204, - 1232, 1193, 1233, 1193, 672, 1234, 422, 422, - 422, 672, 1234, 672, 672, 422, 1234, 422, - 1234, 422, 1234, 422, 672, 672, 672, 672, - 672, 1234, 422, 672, 672, 672, 422, 672, - 422, 1234, 422, 672, 672, 672, 672, 422, - 1234, 672, 422, 672, 422, 672, 422, 672, - 672, 422, 672, 1234, 422, 672, 422, 672, - 422, 672, 1234, 672, 422, 1234, 672, 422, - 672, 422, 1234, 672, 672, 672, 672, 672, - 1234, 422, 422, 672, 422, 672, 1234, 672, - 422, 1234, 672, 672, 1234, 422, 422, 672, - 422, 672, 422, 672, 1234, 1235, 1236, 1237, - 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, - 717, 1246, 1247, 1248, 1249, 1250, 1251, 1252, - 1253, 1254, 1255, 1256, 1257, 1256, 1258, 1259, - 1260, 1261, 1262, 673, 1234, 1263, 1264, 1265, - 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, - 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, - 727, 1282, 1283, 1284, 694, 1285, 1286, 1287, - 1288, 1289, 1290, 673, 1291, 1292, 1293, 1294, - 1295, 1296, 1297, 1298, 676, 1299, 673, 676, - 1300, 1301, 1302, 1303, 685, 1234, 1304, 1305, - 1306, 1307, 705, 1308, 1309, 685, 1310, 1311, - 1312, 1313, 1314, 673, 1234, 1315, 1274, 1316, - 1317, 1318, 685, 1319, 1320, 676, 673, 685, - 427, 1234, 1284, 673, 676, 685, 427, 685, - 427, 1321, 685, 1234, 427, 676, 1322, 1323, - 676, 1324, 1325, 683, 1326, 1327, 1328, 1329, - 1330, 1280, 1331, 1332, 1333, 1334, 1335, 1336, - 1337, 1338, 1339, 1340, 1341, 1342, 1299, 1343, - 676, 685, 427, 1234, 1344, 1345, 685, 673, - 1234, 427, 673, 1234, 676, 1346, 733, 1347, - 1348, 1349, 1350, 1351, 1352, 1353, 1354, 673, - 1355, 1356, 1357, 1358, 1359, 1360, 673, 685, - 1234, 1362, 1363, 1364, 1365, 1366, 1367, 1368, - 1369, 1370, 1371, 1372, 1368, 1374, 1375, 1376, - 1377, 1361, 1373, 1361, 1234, 1361, 1234, 1378, - 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, - 1386, 1383, 769, 1387, 1387, 1387, 1382, 1388, - 1387, 770, 771, 1389, 1387, 769, 1387, 1387, - 1382, 1390, 1387, 770, 771, 1389, 1387, 769, - 1382, 1390, 1391, 1392, 1393, 769, 1387, 1387, - 1387, 1382, 1388, 770, 771, 1389, 1387, 769, - 1387, 1387, 1387, 1382, 1388, 770, 771, 1389, - 1387, 769, 1387, 1387, 1387, 1382, 1388, 771, - 770, 771, 1389, 1387, 769, 1395, 769, 1397, - 1396, 1398, 769, 1400, 1399, 769, 1401, 773, - 1401, 1402, 1401, 775, 1403, 1404, 1405, 1406, - 1407, 1408, 1409, 1406, 777, 775, 1403, 1411, - 1410, 778, 779, 1412, 1410, 777, 1414, 1413, - 1416, 1415, 777, 1417, 778, 1417, 779, 1417, - 783, 1418, 1419, 1420, 1421, 1422, 1423, 1424, - 1421, 785, 783, 1418, 1426, 1425, 786, 787, - 1427, 1425, 785, 1429, 1428, 1431, 1430, 785, - 1432, 786, 1432, 787, 1432, 1435, 1436, 1438, - 1439, 1440, 1434, 1441, 1442, 1443, 1444, 1445, - 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, - 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1462, - 1463, 1464, 1465, 1466, 1467, 791, 791, 1433, - 1434, 1437, 1461, 1468, 1433, 1042, 791, 791, - 1470, 1471, 861, 842, 1472, 842, 1473, 1474, - 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, - 1483, 916, 1484, 892, 1485, 1486, 1487, 1488, - 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, - 791, 791, 791, 797, 937, 1469, 1042, 1497, - 791, 791, 791, 1042, 1497, 1042, 1042, 791, - 1497, 791, 1497, 791, 1497, 791, 1042, 1042, - 1042, 1042, 1042, 1497, 791, 1042, 1042, 1042, - 791, 1042, 791, 1497, 791, 1042, 1042, 1042, - 1042, 791, 1497, 1042, 791, 1042, 791, 1042, - 791, 1042, 1042, 791, 1042, 1497, 791, 1042, - 791, 1042, 791, 1042, 1497, 1042, 791, 1497, - 1042, 791, 1042, 791, 1497, 1042, 1042, 1042, - 1042, 1042, 1497, 791, 791, 1042, 791, 1042, - 1497, 1042, 791, 1497, 1042, 1042, 1497, 791, - 791, 1042, 791, 1042, 791, 1042, 1497, 1498, - 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, - 1507, 1508, 1087, 1509, 1510, 1511, 1512, 1513, - 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1519, - 1521, 1522, 1523, 1524, 1525, 1043, 1497, 1526, - 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, - 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, - 1543, 1544, 1097, 1545, 1546, 1547, 1064, 1548, - 1549, 1550, 1551, 1552, 1553, 1043, 1554, 1555, - 1556, 1557, 1558, 1559, 1560, 1561, 1046, 1562, - 1043, 1046, 1563, 1564, 1565, 1566, 1055, 1497, - 1567, 1568, 1569, 1570, 1075, 1571, 1572, 1055, - 1573, 1574, 1575, 1576, 1577, 1043, 1497, 1578, - 1537, 1579, 1580, 1581, 1055, 1582, 1583, 1046, - 1043, 1055, 797, 1497, 1547, 1043, 1046, 1055, - 797, 1055, 797, 1584, 1055, 1497, 797, 1046, - 1585, 1586, 1046, 1587, 1588, 1053, 1589, 1590, - 1591, 1592, 1593, 1543, 1594, 1595, 1596, 1597, - 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, - 1562, 1606, 1046, 1055, 797, 1497, 1607, 1608, - 1055, 1043, 1497, 797, 1043, 1497, 1046, 1609, - 1103, 1610, 1611, 1612, 1613, 1614, 1615, 1616, - 1617, 1043, 1618, 1619, 1620, 1621, 1622, 1623, - 1043, 1055, 1497, 1625, 1626, 1627, 1628, 1629, - 1630, 1631, 1632, 1633, 1634, 1635, 1631, 1637, - 1638, 1639, 1640, 1624, 1636, 1624, 1497, 1624, - 1497, + 671, 422, 676, 759, 676, 735, 760, 761, + 762, 673, 685, 673, 671, 672, 671, 422, + 672, 672, 672, 422, 672, 672, 672, 422, + 672, 422, 672, 671, 422, 422, 422, 422, + 672, 672, 422, 422, 422, 422, 422, 672, + 672, 672, 672, 672, 672, 672, 422, 672, + 422, 672, 422, 671, 672, 672, 672, 422, + 672, 422, 672, 671, 685, 427, 763, 676, + 685, 427, 672, 671, 422, 764, 676, 765, + 685, 427, 672, 671, 422, 672, 422, 766, + 685, 673, 671, 427, 672, 671, 422, 676, + 767, 673, 685, 673, 671, 672, 671, 422, + 768, 769, 768, 770, 771, 768, 772, 768, + 773, 768, 771, 774, 775, 774, 777, 776, + 778, 779, 778, 780, 781, 776, 782, 776, + 783, 778, 784, 779, 785, 780, 787, 786, + 788, 789, 789, 786, 790, 786, 791, 788, + 792, 789, 793, 789, 795, 795, 795, 795, + 794, 795, 795, 795, 794, 795, 794, 795, + 795, 794, 794, 794, 794, 794, 794, 795, + 794, 794, 794, 794, 795, 795, 795, 795, + 795, 794, 794, 795, 794, 794, 795, 794, + 795, 794, 794, 795, 794, 794, 794, 795, + 795, 795, 795, 795, 795, 794, 795, 795, + 794, 795, 795, 794, 794, 794, 794, 794, + 794, 795, 795, 794, 794, 795, 794, 795, + 795, 795, 794, 797, 798, 799, 800, 801, + 802, 803, 804, 805, 806, 807, 808, 809, + 810, 811, 812, 813, 814, 815, 816, 817, + 818, 819, 820, 821, 822, 823, 824, 825, + 826, 827, 828, 794, 795, 794, 795, 794, + 795, 795, 794, 795, 795, 794, 794, 794, + 795, 794, 794, 794, 794, 794, 794, 794, + 795, 794, 794, 794, 794, 794, 794, 794, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 794, 794, 794, 794, 794, + 794, 794, 794, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 794, 794, 794, 794, + 794, 794, 794, 794, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 794, 795, 795, + 795, 795, 795, 795, 795, 795, 794, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 794, 795, 795, 795, 795, 795, + 795, 794, 795, 795, 795, 795, 795, 795, + 794, 794, 794, 794, 794, 794, 794, 794, + 795, 795, 795, 795, 795, 795, 795, 795, + 794, 795, 795, 795, 795, 795, 795, 795, + 795, 794, 795, 795, 795, 795, 795, 794, + 794, 794, 794, 794, 794, 794, 794, 795, + 795, 795, 795, 795, 795, 794, 795, 795, + 795, 795, 795, 795, 795, 794, 795, 794, + 795, 795, 794, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 794, 795, 795, 795, 795, 795, 794, 795, + 795, 795, 795, 795, 795, 795, 794, 795, + 795, 795, 794, 795, 795, 795, 794, 795, + 794, 829, 830, 831, 832, 833, 834, 835, + 836, 837, 838, 839, 840, 841, 842, 843, + 844, 845, 846, 847, 848, 849, 850, 851, + 852, 853, 854, 855, 856, 857, 858, 859, + 860, 861, 862, 863, 864, 801, 865, 866, + 867, 868, 869, 870, 801, 846, 801, 794, + 795, 794, 795, 795, 794, 794, 795, 794, + 794, 794, 794, 795, 794, 794, 794, 794, + 794, 795, 794, 794, 794, 794, 794, 795, + 795, 795, 795, 795, 794, 794, 794, 795, + 794, 794, 794, 795, 795, 795, 794, 794, + 794, 795, 795, 794, 794, 794, 795, 795, + 795, 794, 794, 794, 795, 795, 795, 795, + 794, 795, 795, 795, 795, 794, 794, 794, + 794, 794, 795, 795, 795, 795, 794, 794, + 795, 795, 795, 794, 794, 795, 795, 795, + 795, 794, 795, 795, 794, 795, 795, 794, + 794, 794, 795, 795, 795, 794, 794, 794, + 794, 795, 795, 795, 795, 795, 794, 794, + 794, 794, 795, 794, 795, 795, 794, 795, + 795, 794, 795, 794, 795, 795, 795, 794, + 795, 795, 794, 794, 794, 795, 794, 794, + 794, 794, 794, 794, 794, 795, 795, 795, + 795, 794, 795, 795, 795, 795, 795, 795, + 795, 794, 871, 872, 873, 874, 875, 876, + 877, 878, 879, 801, 880, 881, 882, 883, + 884, 794, 795, 794, 794, 794, 794, 794, + 795, 795, 794, 795, 795, 795, 794, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 794, 795, 795, 795, 794, 794, 795, + 795, 795, 794, 794, 795, 794, 794, 795, + 795, 795, 795, 795, 794, 794, 794, 794, + 795, 795, 795, 795, 795, 795, 794, 795, + 795, 795, 795, 795, 794, 885, 840, 886, + 887, 888, 801, 889, 890, 846, 801, 794, + 795, 795, 795, 795, 794, 794, 794, 795, + 794, 794, 795, 795, 795, 794, 794, 794, + 795, 795, 794, 851, 794, 846, 801, 801, + 891, 794, 801, 794, 795, 846, 892, 893, + 846, 894, 895, 846, 896, 897, 898, 899, + 900, 901, 846, 902, 903, 904, 846, 905, + 906, 907, 865, 908, 909, 910, 865, 911, + 846, 801, 794, 794, 795, 795, 794, 794, + 794, 795, 795, 795, 795, 794, 795, 795, + 794, 794, 794, 794, 795, 795, 794, 794, + 795, 795, 794, 794, 794, 794, 794, 794, + 795, 795, 795, 794, 794, 794, 795, 794, + 794, 794, 795, 795, 794, 795, 795, 795, + 795, 794, 795, 795, 795, 795, 794, 795, + 795, 795, 795, 795, 795, 794, 794, 794, + 795, 795, 795, 795, 794, 912, 913, 794, + 801, 794, 795, 794, 794, 795, 846, 914, + 915, 916, 917, 896, 918, 919, 920, 921, + 922, 923, 924, 925, 926, 927, 928, 929, + 801, 794, 794, 795, 794, 795, 795, 795, + 795, 795, 795, 795, 794, 795, 795, 795, + 794, 795, 794, 794, 795, 794, 795, 794, + 794, 795, 795, 795, 795, 794, 795, 795, + 795, 794, 794, 795, 795, 795, 795, 794, + 795, 795, 794, 794, 795, 795, 795, 795, + 795, 794, 930, 931, 932, 933, 934, 935, + 936, 937, 938, 939, 940, 936, 942, 943, + 944, 945, 941, 794, 946, 947, 846, 948, + 949, 950, 951, 952, 953, 954, 955, 956, + 846, 801, 957, 958, 959, 960, 846, 961, + 962, 963, 964, 965, 966, 967, 968, 969, + 970, 971, 972, 973, 974, 975, 846, 877, + 801, 976, 794, 795, 795, 795, 795, 795, + 794, 794, 794, 795, 794, 795, 795, 794, + 795, 794, 795, 795, 794, 794, 794, 795, + 795, 795, 794, 794, 794, 795, 795, 795, + 794, 794, 794, 794, 795, 794, 794, 795, + 794, 794, 795, 795, 795, 794, 794, 795, + 794, 795, 795, 795, 794, 795, 795, 795, + 795, 795, 795, 794, 794, 794, 795, 795, + 794, 795, 795, 794, 795, 795, 794, 795, + 795, 794, 795, 795, 795, 795, 795, 795, + 795, 794, 795, 794, 795, 794, 795, 795, + 794, 795, 794, 795, 795, 794, 795, 794, + 795, 794, 977, 948, 978, 979, 980, 981, + 982, 983, 984, 985, 986, 829, 987, 846, + 988, 989, 990, 846, 991, 861, 992, 993, + 994, 995, 996, 997, 998, 999, 846, 794, + 794, 794, 795, 795, 795, 794, 795, 795, + 794, 795, 795, 794, 794, 794, 794, 794, + 795, 795, 795, 795, 794, 795, 795, 795, + 795, 795, 795, 794, 794, 794, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 794, + 795, 795, 795, 795, 795, 795, 795, 795, + 794, 795, 795, 794, 794, 794, 794, 795, + 795, 795, 794, 794, 794, 795, 794, 794, + 794, 795, 795, 794, 795, 795, 795, 794, + 795, 794, 794, 794, 795, 795, 794, 795, + 795, 795, 794, 795, 795, 795, 794, 794, + 794, 794, 795, 846, 915, 1000, 1001, 801, + 846, 801, 794, 794, 795, 794, 795, 846, + 1000, 801, 794, 846, 1002, 801, 794, 794, + 795, 846, 1003, 1004, 1005, 906, 1006, 1007, + 846, 1008, 1009, 1010, 801, 794, 794, 795, + 795, 795, 794, 795, 795, 794, 795, 795, + 795, 795, 794, 794, 795, 794, 794, 795, + 795, 794, 795, 794, 846, 801, 794, 1011, + 846, 1012, 794, 801, 794, 795, 794, 795, + 1013, 846, 1014, 1015, 794, 795, 794, 794, + 794, 795, 795, 795, 795, 794, 1016, 1017, + 1018, 846, 1019, 1020, 1021, 1022, 1023, 1024, + 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, + 801, 794, 795, 795, 795, 794, 794, 794, + 794, 795, 795, 794, 794, 795, 794, 794, + 794, 794, 794, 794, 794, 795, 794, 795, + 794, 794, 794, 794, 794, 794, 795, 795, + 795, 795, 795, 794, 794, 795, 794, 794, + 794, 795, 794, 794, 795, 794, 794, 795, + 794, 794, 795, 794, 794, 794, 795, 795, + 795, 794, 794, 794, 795, 795, 795, 795, + 794, 1033, 846, 1034, 846, 1035, 1036, 1037, + 1038, 801, 794, 795, 795, 795, 795, 795, + 794, 794, 794, 795, 794, 794, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 794, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 794, 795, 795, 795, + 795, 795, 794, 1039, 846, 801, 794, 795, + 1040, 846, 831, 801, 794, 795, 1041, 794, + 801, 794, 795, 846, 1042, 801, 794, 794, + 795, 1043, 794, 846, 1044, 801, 794, 794, + 795, 1046, 1045, 795, 795, 795, 795, 1046, + 1045, 795, 1046, 1045, 1046, 1046, 795, 1046, + 1045, 795, 1046, 795, 1046, 1045, 795, 1046, + 795, 1046, 795, 1045, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1045, 795, 795, 1046, + 1046, 795, 1046, 795, 1046, 1045, 1046, 1046, + 1046, 1046, 1046, 795, 1046, 795, 1046, 795, + 1046, 1045, 1046, 1046, 795, 1046, 795, 1046, + 1045, 1046, 1046, 1046, 1046, 1046, 795, 1046, + 795, 1046, 1045, 795, 795, 1046, 795, 1046, + 1045, 1046, 1046, 1046, 795, 1046, 795, 1046, + 795, 1046, 795, 1046, 1045, 1046, 795, 1046, + 795, 1046, 1045, 795, 1046, 1046, 1046, 1046, + 795, 1046, 795, 1046, 795, 1046, 795, 1046, + 795, 1046, 795, 1046, 1045, 795, 1046, 1045, + 1046, 1046, 1046, 795, 1046, 795, 1046, 1045, + 1046, 795, 1046, 795, 1046, 1045, 795, 1046, + 1046, 1046, 1046, 795, 1046, 795, 1046, 1045, + 795, 1046, 795, 1046, 795, 1046, 1045, 1046, + 1046, 795, 1046, 795, 1046, 1045, 795, 1046, + 795, 1046, 795, 1046, 795, 1045, 1046, 1046, + 1046, 795, 1046, 795, 1046, 1045, 795, 1046, + 1045, 1046, 1046, 795, 1046, 1045, 1046, 1046, + 1046, 795, 1046, 1046, 1046, 1046, 1046, 1046, + 795, 795, 1046, 795, 1046, 795, 1046, 795, + 1046, 1045, 1046, 795, 1046, 795, 1046, 1045, + 795, 1046, 1045, 1046, 795, 1046, 1045, 1046, + 795, 1046, 1045, 795, 795, 1046, 1045, 795, + 1046, 795, 1046, 795, 1046, 795, 1046, 795, + 1046, 795, 1045, 1046, 1046, 795, 1046, 1046, + 1046, 1046, 795, 795, 1046, 1046, 1046, 1046, + 1046, 795, 1046, 1046, 1046, 1046, 1046, 1045, + 795, 1046, 1046, 795, 1046, 795, 1045, 1046, + 1046, 795, 1046, 1045, 795, 795, 1046, 795, + 1045, 1046, 1046, 1045, 795, 1046, 795, 1045, + 1046, 1045, 795, 1046, 795, 1046, 795, 1045, + 1046, 1046, 1045, 795, 1046, 795, 1046, 795, + 1046, 1045, 1046, 795, 1046, 795, 1046, 1045, + 795, 1046, 1045, 795, 795, 1046, 1045, 1046, + 795, 1045, 1046, 1045, 795, 1046, 795, 1046, + 795, 1045, 1046, 1045, 795, 795, 1046, 1045, + 1046, 795, 1046, 795, 1046, 1045, 795, 1046, + 795, 1045, 1046, 1045, 795, 795, 1046, 795, + 1045, 1046, 1045, 795, 795, 1046, 1045, 1046, + 795, 1046, 1045, 1046, 795, 1046, 1045, 1046, + 795, 1046, 795, 1046, 795, 1045, 1046, 1045, + 795, 795, 1046, 1045, 1046, 795, 1046, 795, + 1046, 1045, 795, 1046, 1045, 1046, 1046, 795, + 1046, 795, 1046, 1045, 1045, 795, 1045, 795, + 1046, 1046, 795, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1045, 795, 1046, 1046, 1046, 795, + 1045, 1046, 1046, 1046, 795, 1046, 795, 1046, + 795, 1046, 795, 1046, 795, 1046, 1045, 795, + 795, 1046, 1045, 1046, 795, 1046, 1045, 795, + 795, 1046, 795, 795, 795, 1046, 795, 1046, + 795, 1046, 795, 1046, 795, 1045, 795, 1046, + 795, 1046, 795, 1045, 1046, 1045, 795, 1046, + 795, 1045, 1046, 795, 1046, 1046, 1046, 1045, + 795, 1046, 795, 795, 1046, 795, 1045, 1046, + 1046, 1045, 795, 1046, 1046, 1046, 1046, 795, + 1046, 795, 1045, 1046, 1046, 1046, 795, 1046, + 1045, 1046, 795, 1046, 795, 1046, 795, 1046, + 795, 1046, 1045, 1046, 1046, 795, 1046, 1045, + 795, 1046, 795, 1046, 795, 1045, 1046, 1046, + 1045, 795, 1046, 795, 1045, 1046, 1045, 795, + 1046, 1045, 795, 1046, 795, 1046, 1045, 1046, + 1046, 1046, 1045, 795, 795, 795, 1046, 1045, + 795, 1046, 795, 1045, 1046, 1045, 795, 1046, + 795, 1046, 795, 1045, 1046, 1046, 1046, 1045, + 795, 1046, 795, 1045, 1046, 1046, 1046, 1046, + 1045, 795, 1046, 795, 1046, 1045, 795, 795, + 1046, 795, 1046, 1045, 1046, 795, 1046, 795, + 1045, 1046, 1046, 1045, 795, 1046, 795, 1046, + 1045, 795, 1046, 1046, 1046, 795, 1046, 795, + 1045, 795, 1046, 1045, 1046, 795, 795, 1046, + 795, 1046, 795, 1045, 1046, 1046, 1046, 1046, + 1045, 795, 1046, 795, 1046, 795, 1046, 795, + 1046, 795, 1046, 1045, 1046, 1046, 1046, 795, + 1046, 795, 1046, 795, 1046, 795, 1045, 1046, + 1046, 795, 795, 1046, 1045, 1046, 795, 1046, + 1046, 1045, 795, 1046, 795, 1046, 1045, 795, + 795, 1046, 1046, 1046, 1046, 795, 1046, 795, + 1046, 795, 1045, 1046, 1046, 795, 1045, 1046, + 1045, 795, 1046, 795, 1045, 1046, 1045, 795, + 1046, 795, 1045, 1046, 795, 1046, 1046, 1045, + 795, 1046, 1046, 795, 1045, 1046, 1045, 795, + 1046, 795, 1046, 1045, 1046, 795, 1046, 795, + 1045, 1046, 1045, 795, 1046, 795, 1046, 795, + 1046, 795, 1046, 795, 1046, 1045, 1047, 1045, + 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, + 1056, 1057, 1058, 1050, 1059, 1060, 1061, 1062, + 1063, 1050, 1064, 1065, 1066, 1067, 1068, 1069, + 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, + 1078, 1050, 1079, 1047, 1059, 1047, 1080, 1047, + 1045, 1046, 1046, 1046, 1046, 795, 1045, 1046, + 1046, 1045, 795, 1046, 1045, 795, 795, 1046, + 1045, 795, 1046, 795, 1045, 1046, 1045, 795, + 795, 1046, 795, 1045, 1046, 1046, 1045, 795, + 1046, 1046, 1046, 1045, 795, 1046, 795, 1046, + 1046, 1045, 795, 795, 1046, 795, 1045, 1046, + 1045, 795, 1046, 1045, 795, 795, 1046, 795, + 1046, 1045, 795, 1046, 795, 795, 1046, 795, + 1046, 795, 1045, 1046, 1046, 1045, 795, 1046, + 1046, 795, 1046, 1045, 795, 1046, 795, 1046, + 1045, 795, 1046, 795, 1045, 795, 1046, 1046, + 1046, 795, 1046, 1045, 1046, 795, 1046, 1045, + 795, 1046, 1045, 1046, 795, 1046, 1045, 795, + 1046, 1045, 795, 1046, 795, 1046, 1045, 795, + 1046, 1045, 795, 1046, 1045, 1081, 1082, 1083, + 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, + 1092, 1052, 1093, 1094, 1095, 1096, 1097, 1094, + 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, + 1106, 1047, 1045, 1046, 795, 1046, 1045, 1046, + 795, 1046, 1045, 1046, 795, 1046, 1045, 1046, + 795, 1046, 1045, 795, 1046, 795, 1046, 1045, + 1046, 795, 1046, 1045, 1046, 795, 795, 795, + 1046, 1045, 1046, 795, 1046, 1045, 1046, 1046, + 1046, 1046, 795, 1046, 795, 1045, 1046, 1045, + 795, 795, 1046, 795, 1046, 1045, 1046, 795, + 1046, 1045, 795, 1046, 1045, 1046, 1046, 795, + 1046, 1045, 795, 1046, 1045, 1046, 795, 1046, + 1045, 795, 1046, 1045, 795, 1046, 1045, 795, + 1046, 1045, 1046, 1045, 795, 795, 1046, 1045, + 1046, 795, 1046, 1045, 795, 1046, 795, 1045, + 1046, 1045, 795, 1050, 1107, 1047, 1050, 1108, + 1050, 1109, 1059, 1047, 1045, 1046, 1045, 795, + 1046, 1045, 795, 1050, 1108, 1059, 1047, 1045, + 1050, 1110, 1047, 1059, 1047, 1045, 1046, 1045, + 795, 1050, 1111, 1068, 1112, 1094, 1113, 1106, + 1050, 1114, 1115, 1116, 1047, 1059, 1047, 1045, + 1046, 1045, 795, 1046, 795, 1046, 1045, 795, + 1046, 795, 1046, 795, 1045, 1046, 1046, 1045, + 795, 1046, 795, 1046, 1045, 795, 1046, 1045, + 1050, 1059, 801, 1045, 1117, 1050, 1118, 1059, + 1047, 1045, 801, 1046, 1045, 795, 1046, 1045, + 795, 1119, 1050, 1120, 1121, 1047, 1045, 795, + 1046, 1045, 1046, 1046, 1045, 795, 795, 1046, + 795, 1046, 1045, 1050, 1122, 1123, 1124, 1125, + 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1047, + 1059, 1047, 1045, 1046, 795, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 795, 1046, 795, 1046, + 1046, 1046, 1046, 1046, 1046, 1045, 795, 1046, + 1046, 795, 1046, 795, 1045, 1046, 795, 1046, + 1046, 1046, 795, 1046, 1046, 795, 1046, 1046, + 795, 1046, 1046, 795, 1046, 1046, 1045, 795, + 1050, 1133, 1050, 1109, 1134, 1135, 1136, 1047, + 1059, 1047, 1045, 1046, 1045, 795, 1046, 1046, + 1046, 795, 1046, 1046, 1046, 795, 1046, 795, + 1046, 1045, 795, 795, 795, 795, 1046, 1046, + 795, 795, 795, 795, 795, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 795, 1046, 795, 1046, + 795, 1045, 1046, 1046, 1046, 795, 1046, 795, + 1046, 1045, 1059, 801, 1137, 1050, 1059, 801, + 1046, 1045, 795, 1138, 1050, 1139, 1059, 801, + 1046, 1045, 795, 1046, 795, 1140, 1059, 1047, + 1045, 801, 1046, 1045, 795, 1050, 1141, 1047, + 1059, 1047, 1045, 1046, 1045, 795, 1142, 1143, + 1144, 1142, 1145, 1146, 1147, 1148, 1149, 1150, + 1151, 1152, 1153, 1154, 672, 672, 422, 1155, + 1156, 1157, 1158, 672, 1161, 1162, 1164, 1165, + 1166, 1160, 1167, 1168, 1169, 1170, 1171, 1172, + 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, + 1181, 1182, 1183, 1184, 1185, 1186, 1188, 1189, + 1190, 1191, 1192, 1193, 672, 1148, 10, 1148, + 422, 1148, 422, 1160, 1163, 1187, 1194, 1159, + 1142, 1142, 1195, 1143, 1196, 1198, 1197, 2, + 1, 1199, 1197, 1200, 1197, 5, 1, 1197, + 6, 5, 9, 11, 11, 10, 1202, 1203, + 1204, 1197, 1205, 1206, 1197, 1207, 1197, 422, + 422, 1209, 1210, 491, 472, 1211, 472, 1212, + 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, + 1221, 1222, 546, 1223, 522, 1224, 1225, 1226, + 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, + 1235, 422, 422, 422, 427, 567, 1208, 1236, + 1197, 1237, 1197, 672, 1238, 422, 422, 422, + 672, 1238, 672, 672, 422, 1238, 422, 1238, + 422, 1238, 422, 672, 672, 672, 672, 672, + 1238, 422, 672, 672, 672, 422, 672, 422, + 1238, 422, 672, 672, 672, 672, 422, 1238, + 672, 422, 672, 422, 672, 422, 672, 672, + 422, 672, 1238, 422, 672, 422, 672, 422, + 672, 1238, 672, 422, 1238, 672, 422, 672, + 422, 1238, 672, 672, 672, 672, 672, 1238, + 422, 422, 672, 422, 672, 1238, 672, 422, + 1238, 672, 672, 1238, 422, 422, 672, 422, + 672, 422, 672, 1238, 1239, 1240, 1241, 1242, + 1243, 1244, 1245, 1246, 1247, 1248, 1249, 717, + 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, + 1258, 1259, 1260, 1261, 1260, 1262, 1263, 1264, + 1265, 1266, 673, 1238, 1267, 1268, 1269, 1270, + 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, + 1279, 1280, 1281, 1282, 1283, 1284, 1285, 727, + 1286, 1287, 1288, 694, 1289, 1290, 1291, 1292, + 1293, 1294, 673, 1295, 1296, 1297, 1298, 1299, + 1300, 1301, 1302, 676, 1303, 673, 676, 1304, + 1305, 1306, 1307, 685, 1238, 1308, 1309, 1310, + 1311, 705, 1312, 1313, 685, 1314, 1315, 1316, + 1317, 1318, 673, 1238, 1319, 1278, 1320, 1321, + 1322, 685, 1323, 1324, 676, 673, 685, 427, + 1238, 1288, 673, 676, 685, 427, 685, 427, + 1325, 685, 1238, 427, 676, 1326, 1327, 676, + 1328, 1329, 683, 1330, 1331, 1332, 1333, 1334, + 1284, 1335, 1336, 1337, 1338, 1339, 1340, 1341, + 1342, 1343, 1344, 1345, 1346, 1303, 1347, 676, + 685, 427, 1238, 1348, 1349, 685, 673, 1238, + 427, 673, 1238, 676, 1350, 733, 1351, 1352, + 1353, 1354, 1355, 1356, 1357, 1358, 673, 1359, + 1360, 1361, 1362, 1363, 1364, 673, 685, 1238, + 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, + 1374, 1375, 1376, 1372, 1378, 1379, 1380, 1381, + 1365, 1377, 1365, 1238, 1365, 1238, 1382, 1382, + 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, + 1387, 771, 1391, 1391, 1391, 1392, 1393, 1386, + 1391, 772, 773, 1394, 1391, 771, 1395, 1395, + 1395, 1397, 1398, 1399, 1395, 1400, 1401, 1402, + 1395, 1396, 1403, 1403, 1403, 1405, 1406, 1407, + 1403, 1408, 1409, 1410, 1403, 1404, 1391, 1391, + 1411, 1412, 1386, 1391, 772, 773, 1394, 1391, + 771, 1413, 1414, 1415, 771, 1416, 1417, 1418, + 769, 769, 769, 769, 1420, 1421, 1422, 1396, + 769, 1423, 1424, 1425, 769, 1419, 770, 770, + 770, 1427, 1428, 1429, 1396, 770, 1430, 1431, + 1432, 770, 1426, 769, 769, 769, 1434, 1435, + 1436, 1404, 769, 1437, 1438, 1439, 769, 1433, + 1395, 1395, 771, 1440, 1441, 1399, 1395, 1400, + 1401, 1402, 1395, 1396, 1442, 1443, 1444, 771, + 1445, 1446, 1447, 770, 770, 770, 770, 1449, + 1450, 1451, 1404, 770, 1452, 1453, 1454, 770, + 1448, 1403, 1403, 771, 1455, 1456, 1407, 1403, + 1408, 1409, 1410, 1403, 1404, 1403, 1403, 1403, + 1405, 1406, 1407, 771, 1408, 1409, 1410, 1403, + 1404, 1403, 1403, 1403, 1405, 1406, 1407, 772, + 1408, 1409, 1410, 1403, 1404, 1403, 1403, 1403, + 1405, 1406, 1407, 773, 1408, 1409, 1410, 1403, + 1404, 1395, 1395, 1395, 1397, 1398, 1399, 771, + 1400, 1401, 1402, 1395, 1396, 1395, 1395, 1395, + 1397, 1398, 1399, 772, 1400, 1401, 1402, 1395, + 1396, 1395, 1395, 1395, 1397, 1398, 1399, 773, + 1400, 1401, 1402, 1395, 1396, 1458, 769, 1460, + 1459, 1461, 770, 1463, 1462, 771, 1464, 775, + 1464, 1465, 1464, 777, 1466, 1467, 1468, 1469, + 1470, 1471, 1472, 1469, 781, 777, 1466, 1474, + 1475, 1473, 782, 783, 1476, 1473, 781, 1479, + 1480, 1481, 1482, 1477, 1483, 1484, 1485, 1477, + 1478, 1488, 1489, 1490, 1491, 1486, 1492, 1493, + 1494, 1486, 1487, 1496, 1495, 1498, 1497, 781, + 1499, 782, 1499, 783, 1499, 787, 1500, 1501, + 1502, 1503, 1504, 1505, 1506, 1503, 789, 787, + 1500, 1508, 1507, 790, 791, 1509, 1507, 789, + 1511, 1510, 1513, 1512, 789, 1514, 790, 1514, + 791, 1514, 795, 1517, 1518, 1520, 1521, 1522, + 1516, 1523, 1524, 1525, 1526, 1527, 1528, 1529, + 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, + 1538, 1539, 1540, 1541, 1542, 1544, 1545, 1546, + 1547, 1548, 1549, 795, 795, 1515, 1516, 1519, + 1543, 1550, 1515, 1046, 795, 795, 1552, 1553, + 865, 846, 1554, 846, 1555, 1556, 1557, 1558, + 1559, 1560, 1561, 1562, 1563, 1564, 1565, 920, + 1566, 896, 1567, 1568, 1569, 1570, 1571, 1572, + 1573, 1574, 1575, 1576, 1577, 1578, 795, 795, + 795, 801, 941, 1551, 1046, 1579, 795, 795, + 795, 1046, 1579, 1046, 1046, 795, 1579, 795, + 1579, 795, 1579, 795, 1046, 1046, 1046, 1046, + 1046, 1579, 795, 1046, 1046, 1046, 795, 1046, + 795, 1579, 795, 1046, 1046, 1046, 1046, 795, + 1579, 1046, 795, 1046, 795, 1046, 795, 1046, + 1046, 795, 1046, 1579, 795, 1046, 795, 1046, + 795, 1046, 1579, 1046, 795, 1579, 1046, 795, + 1046, 795, 1579, 1046, 1046, 1046, 1046, 1046, + 1579, 795, 795, 1046, 795, 1046, 1579, 1046, + 795, 1579, 1046, 1046, 1579, 795, 795, 1046, + 795, 1046, 795, 1046, 1579, 1580, 1581, 1582, + 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, + 1091, 1591, 1592, 1593, 1594, 1595, 1596, 1597, + 1598, 1599, 1600, 1601, 1602, 1601, 1603, 1604, + 1605, 1606, 1607, 1047, 1579, 1608, 1609, 1610, + 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, + 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, + 1101, 1627, 1628, 1629, 1068, 1630, 1631, 1632, + 1633, 1634, 1635, 1047, 1636, 1637, 1638, 1639, + 1640, 1641, 1642, 1643, 1050, 1644, 1047, 1050, + 1645, 1646, 1647, 1648, 1059, 1579, 1649, 1650, + 1651, 1652, 1079, 1653, 1654, 1059, 1655, 1656, + 1657, 1658, 1659, 1047, 1579, 1660, 1619, 1661, + 1662, 1663, 1059, 1664, 1665, 1050, 1047, 1059, + 801, 1579, 1629, 1047, 1050, 1059, 801, 1059, + 801, 1666, 1059, 1579, 801, 1050, 1667, 1668, + 1050, 1669, 1670, 1057, 1671, 1672, 1673, 1674, + 1675, 1625, 1676, 1677, 1678, 1679, 1680, 1681, + 1682, 1683, 1684, 1685, 1686, 1687, 1644, 1688, + 1050, 1059, 801, 1579, 1689, 1690, 1059, 1047, + 1579, 801, 1047, 1579, 1050, 1691, 1107, 1692, + 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1047, + 1700, 1701, 1702, 1703, 1704, 1705, 1047, 1059, + 1579, 1707, 1708, 1709, 1710, 1711, 1712, 1713, + 1714, 1715, 1716, 1717, 1713, 1719, 1720, 1721, + 1722, 1706, 1718, 1706, 1579, 1706, 1579, } var _hcltok_trans_targs []int16 = []int16{ - 1462, 1, 1462, 1462, 1462, 3, 4, 1470, - 1462, 5, 1471, 6, 7, 9, 10, 287, + 1464, 1, 1464, 1464, 1464, 3, 4, 1472, + 1464, 5, 1473, 6, 7, 9, 10, 287, 13, 14, 15, 16, 17, 288, 289, 20, 290, 22, 23, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 329, 349, 354, - 128, 129, 130, 357, 152, 372, 376, 1462, + 128, 129, 130, 357, 152, 372, 376, 1464, 11, 12, 18, 19, 21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 65, 106, 121, 132, 155, 171, 284, 34, 35, @@ -3235,7 +3298,7 @@ var _hcltok_trans_targs []int16 = []int16{ 382, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 406, 407, - 408, 409, 411, 413, 415, 1462, 1475, 438, + 408, 409, 411, 413, 415, 1464, 1477, 438, 439, 440, 441, 418, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, @@ -3266,8 +3329,8 @@ var _hcltok_trans_targs []int16 = []int16{ 653, 654, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 674, 675, 676, 677, 678, - 679, 681, 683, 685, 687, 689, 690, 1462, - 1462, 691, 828, 829, 760, 830, 831, 832, + 679, 681, 683, 685, 687, 689, 690, 1464, + 1464, 691, 828, 829, 760, 830, 831, 832, 833, 834, 835, 789, 836, 725, 837, 838, 839, 840, 841, 842, 843, 844, 745, 845, 846, 847, 848, 849, 850, 851, 852, 853, @@ -3279,125 +3342,135 @@ var _hcltok_trans_targs []int16 = []int16{ 897, 899, 900, 901, 903, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 915, 916, 917, 918, 921, 923, 924, 926, 928, - 1513, 1514, 930, 931, 1513, 933, 1527, 1527, - 1527, 1528, 937, 938, 1529, 1530, 1534, 1534, - 1534, 1535, 944, 945, 1536, 1537, 1541, 1542, - 1541, 971, 972, 973, 974, 951, 975, 976, - 977, 978, 979, 980, 981, 982, 983, 984, - 985, 986, 987, 988, 989, 990, 991, 992, - 993, 994, 995, 996, 997, 998, 999, 1000, - 1001, 1003, 1004, 1005, 1006, 1007, 1008, 1009, - 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, - 1018, 1019, 953, 1020, 1021, 1022, 1023, 1024, - 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, - 1033, 1034, 1035, 1036, 1037, 952, 1038, 1039, - 1040, 1041, 1042, 1044, 1045, 1046, 1047, 1048, - 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, - 1057, 1059, 1060, 1061, 1062, 1063, 1064, 1068, - 1070, 1071, 1072, 1073, 968, 1074, 1075, 1076, - 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, - 1085, 1086, 1087, 1088, 1090, 1091, 1093, 1094, - 1095, 1096, 1097, 1098, 966, 1099, 1100, 1101, - 1102, 1103, 1104, 1105, 1106, 1107, 1109, 1141, - 1165, 1168, 1169, 1171, 1180, 1181, 1184, 1188, - 1206, 1066, 1213, 1215, 1217, 1219, 1110, 1111, - 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, - 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, - 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, - 1136, 1137, 1138, 1139, 1140, 1142, 1143, 1144, - 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, - 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, - 1161, 1162, 1163, 1164, 1166, 1167, 1170, 1172, - 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1182, - 1183, 1185, 1186, 1187, 1189, 1190, 1191, 1192, - 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, - 1201, 1202, 1203, 1204, 1205, 1207, 1208, 1209, - 1210, 1211, 1212, 1214, 1216, 1218, 1220, 1222, - 1223, 1541, 1541, 1224, 1361, 1362, 1293, 1363, - 1364, 1365, 1366, 1367, 1368, 1322, 1369, 1258, - 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, - 1278, 1378, 1379, 1380, 1381, 1382, 1383, 1384, - 1385, 1386, 1387, 1303, 1388, 1390, 1391, 1392, - 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1236, - 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, - 1408, 1274, 1409, 1410, 1411, 1412, 1413, 1344, - 1415, 1416, 1419, 1421, 1422, 1423, 1424, 1425, - 1426, 1429, 1430, 1432, 1433, 1434, 1436, 1437, - 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, - 1446, 1448, 1449, 1450, 1451, 1454, 1456, 1457, - 1459, 1461, 1463, 1462, 1464, 1465, 1462, 1466, - 1467, 1462, 1468, 1469, 1472, 1473, 1474, 1462, - 1476, 1462, 1477, 1462, 1478, 1479, 1480, 1481, - 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, - 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, - 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, - 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1462, - 1462, 1462, 1462, 1462, 2, 1462, 1462, 8, - 1462, 1462, 1462, 1462, 1462, 416, 417, 421, - 422, 423, 424, 425, 426, 427, 428, 429, - 430, 431, 432, 434, 436, 437, 469, 510, - 525, 532, 534, 536, 556, 559, 575, 688, - 1462, 1462, 1462, 692, 693, 694, 695, 696, - 697, 698, 699, 700, 701, 702, 704, 705, - 706, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 718, 719, 720, 721, - 722, 723, 724, 726, 727, 728, 729, 730, - 731, 732, 733, 734, 735, 736, 737, 738, - 739, 740, 742, 743, 744, 746, 747, 748, - 749, 750, 751, 752, 753, 754, 755, 756, - 757, 758, 759, 761, 762, 763, 764, 765, - 766, 767, 768, 769, 771, 772, 773, 774, - 775, 776, 777, 778, 779, 780, 781, 782, - 783, 784, 785, 786, 787, 788, 790, 791, - 792, 793, 794, 795, 796, 797, 798, 799, - 800, 801, 802, 803, 804, 805, 806, 807, - 808, 809, 810, 812, 813, 814, 815, 816, - 817, 818, 819, 820, 821, 822, 823, 824, - 825, 826, 827, 856, 881, 884, 885, 887, - 894, 895, 898, 902, 914, 919, 920, 922, - 925, 927, 1513, 1513, 1520, 1522, 1515, 1513, - 1524, 1525, 1526, 1513, 929, 932, 1516, 1517, - 1518, 1519, 1513, 1521, 1513, 1513, 1523, 1513, - 1513, 1513, 934, 935, 940, 941, 1527, 1531, - 1532, 1533, 1527, 936, 939, 1527, 1527, 1527, - 1527, 1527, 942, 947, 948, 1534, 1538, 1539, - 1540, 1534, 943, 946, 1534, 1534, 1534, 1534, - 1534, 1541, 1543, 1544, 1545, 1546, 1547, 1548, - 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, - 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, - 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, - 1573, 1574, 1575, 1576, 1577, 1541, 949, 950, - 954, 955, 956, 957, 958, 959, 960, 961, - 962, 963, 964, 965, 967, 969, 970, 1002, - 1043, 1058, 1065, 1067, 1069, 1089, 1092, 1108, - 1221, 1541, 1225, 1226, 1227, 1228, 1229, 1230, - 1231, 1232, 1233, 1234, 1235, 1237, 1238, 1239, + 1515, 1517, 1518, 1516, 931, 932, 1515, 934, + 1541, 1541, 1541, 1543, 1544, 1542, 939, 940, + 1545, 1546, 1550, 1550, 1550, 1551, 946, 947, + 1552, 1553, 1557, 1558, 1557, 973, 974, 975, + 976, 953, 977, 978, 979, 980, 981, 982, + 983, 984, 985, 986, 987, 988, 989, 990, + 991, 992, 993, 994, 995, 996, 997, 998, + 999, 1000, 1001, 1002, 1003, 1005, 1006, 1007, + 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, + 1016, 1017, 1018, 1019, 1020, 1021, 955, 1022, + 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, + 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, + 1039, 954, 1040, 1041, 1042, 1043, 1044, 1046, + 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, + 1055, 1056, 1057, 1058, 1059, 1061, 1062, 1063, + 1064, 1065, 1066, 1070, 1072, 1073, 1074, 1075, + 970, 1076, 1077, 1078, 1079, 1080, 1081, 1082, + 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, + 1092, 1093, 1095, 1096, 1097, 1098, 1099, 1100, + 968, 1101, 1102, 1103, 1104, 1105, 1106, 1107, + 1108, 1109, 1111, 1143, 1167, 1170, 1171, 1173, + 1182, 1183, 1186, 1190, 1208, 1068, 1215, 1217, + 1219, 1221, 1112, 1113, 1114, 1115, 1116, 1117, + 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, + 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, + 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, + 1142, 1144, 1145, 1146, 1147, 1148, 1149, 1150, + 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, + 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, + 1168, 1169, 1172, 1174, 1175, 1176, 1177, 1178, + 1179, 1180, 1181, 1184, 1185, 1187, 1188, 1189, + 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, + 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, + 1207, 1209, 1210, 1211, 1212, 1213, 1214, 1216, + 1218, 1220, 1222, 1224, 1225, 1557, 1557, 1226, + 1363, 1364, 1295, 1365, 1366, 1367, 1368, 1369, + 1370, 1324, 1371, 1260, 1372, 1373, 1374, 1375, + 1376, 1377, 1378, 1379, 1280, 1380, 1381, 1382, + 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1305, + 1390, 1392, 1393, 1394, 1395, 1396, 1397, 1398, + 1399, 1400, 1401, 1238, 1402, 1403, 1404, 1405, + 1406, 1407, 1408, 1409, 1410, 1276, 1411, 1412, + 1413, 1414, 1415, 1346, 1417, 1418, 1421, 1423, + 1424, 1425, 1426, 1427, 1428, 1431, 1432, 1434, + 1435, 1436, 1438, 1439, 1440, 1441, 1442, 1443, + 1444, 1445, 1446, 1447, 1448, 1450, 1451, 1452, + 1453, 1456, 1458, 1459, 1461, 1463, 1465, 1464, + 1466, 1467, 1464, 1468, 1464, 1469, 1470, 1471, + 1474, 1475, 1476, 1464, 1478, 1464, 1479, 1464, + 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, + 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, + 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, + 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, + 1512, 1513, 1514, 1464, 1464, 1464, 1464, 1464, + 2, 1464, 1464, 8, 1464, 1464, 1464, 1464, + 1464, 416, 417, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 430, 431, 432, 434, + 436, 437, 469, 510, 525, 532, 534, 536, + 556, 559, 575, 688, 1464, 1464, 1464, 692, + 693, 694, 695, 696, 697, 698, 699, 700, + 701, 702, 704, 705, 706, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, + 718, 719, 720, 721, 722, 723, 724, 726, + 727, 728, 729, 730, 731, 732, 733, 734, + 735, 736, 737, 738, 739, 740, 742, 743, + 744, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 755, 756, 757, 758, 759, 761, + 762, 763, 764, 765, 766, 767, 768, 769, + 771, 772, 773, 774, 775, 776, 777, 778, + 779, 780, 781, 782, 783, 784, 785, 786, + 787, 788, 790, 791, 792, 793, 794, 795, + 796, 797, 798, 799, 800, 801, 802, 803, + 804, 805, 806, 807, 808, 809, 810, 812, + 813, 814, 815, 816, 817, 818, 819, 820, + 821, 822, 823, 824, 825, 826, 827, 856, + 881, 884, 885, 887, 894, 895, 898, 902, + 914, 919, 920, 922, 925, 927, 1515, 1515, + 1534, 1536, 1519, 1515, 1538, 1539, 1540, 1515, + 929, 930, 933, 1515, 1516, 929, 930, 1519, + 931, 932, 933, 1515, 1516, 929, 930, 1519, + 931, 932, 933, 1520, 1525, 1521, 1522, 1524, + 1531, 1532, 1533, 1517, 1521, 1522, 1524, 1531, + 1532, 1533, 1518, 1523, 1526, 1527, 1528, 1529, + 1530, 1517, 1521, 1522, 1524, 1531, 1532, 1533, + 1520, 1525, 1523, 1526, 1527, 1528, 1529, 1530, + 1518, 1523, 1526, 1527, 1528, 1529, 1530, 1520, + 1525, 1515, 1535, 1515, 1515, 1537, 1515, 1515, + 1515, 935, 936, 942, 943, 1541, 1547, 1548, + 1549, 1541, 937, 938, 941, 1541, 1542, 1541, + 936, 937, 938, 939, 940, 941, 1541, 1542, + 1541, 936, 937, 938, 939, 940, 941, 1541, + 1541, 1541, 1541, 1541, 944, 949, 950, 1550, + 1554, 1555, 1556, 1550, 945, 948, 1550, 1550, + 1550, 1550, 1550, 1557, 1559, 1560, 1561, 1562, + 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, + 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, + 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, + 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1557, + 951, 952, 956, 957, 958, 959, 960, 961, + 962, 963, 964, 965, 966, 967, 969, 971, + 972, 1004, 1045, 1060, 1067, 1069, 1071, 1091, + 1094, 1110, 1223, 1557, 1227, 1228, 1229, 1230, + 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, - 1256, 1257, 1259, 1260, 1261, 1262, 1263, 1264, + 1256, 1257, 1258, 1259, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, - 1273, 1275, 1276, 1277, 1279, 1280, 1281, 1282, + 1273, 1274, 1275, 1277, 1278, 1279, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, - 1291, 1292, 1294, 1295, 1296, 1297, 1298, 1299, - 1300, 1301, 1302, 1304, 1305, 1306, 1307, 1308, + 1291, 1292, 1293, 1294, 1296, 1297, 1298, 1299, + 1300, 1301, 1302, 1303, 1304, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, - 1317, 1318, 1319, 1320, 1321, 1323, 1324, 1325, + 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, - 1342, 1343, 1345, 1346, 1347, 1348, 1349, 1350, + 1342, 1343, 1344, 1345, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, - 1359, 1360, 1389, 1414, 1417, 1418, 1420, 1427, - 1428, 1431, 1435, 1447, 1452, 1453, 1455, 1458, - 1460, + 1359, 1360, 1361, 1362, 1391, 1416, 1419, 1420, + 1422, 1429, 1430, 1433, 1437, 1449, 1454, 1455, + 1457, 1460, 1462, } var _hcltok_trans_actions []byte = []byte{ - 143, 0, 85, 139, 101, 0, 0, 169, - 135, 0, 5, 0, 0, 0, 0, 0, + 151, 0, 93, 147, 109, 0, 0, 201, + 143, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 115, + 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3444,7 +3517,7 @@ var _hcltok_trans_actions []byte = []byte{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 137, 166, 0, + 0, 0, 0, 0, 0, 145, 198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3475,8 +3548,8 @@ var _hcltok_trans_actions []byte = []byte{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 141, - 119, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 149, + 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3488,10 +3561,10 @@ var _hcltok_trans_actions []byte = []byte{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 27, 5, 0, 0, 29, 0, 49, 35, - 47, 148, 0, 0, 0, 0, 69, 55, - 67, 154, 0, 0, 0, 0, 79, 160, - 83, 0, 0, 0, 0, 0, 0, 0, + 35, 13, 13, 13, 0, 0, 37, 0, + 57, 43, 55, 180, 180, 180, 0, 0, + 0, 0, 77, 63, 75, 186, 0, 0, + 0, 0, 87, 192, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3522,7 +3595,7 @@ var _hcltok_trans_actions []byte = []byte{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 81, 73, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 89, 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3534,19 +3607,20 @@ var _hcltok_trans_actions []byte = []byte{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 87, 0, 0, 113, 178, - 0, 105, 5, 172, 5, 0, 0, 107, - 0, 109, 0, 117, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 95, + 0, 0, 121, 210, 113, 0, 13, 204, + 13, 0, 0, 115, 0, 117, 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 5, 5, 175, 175, 175, - 175, 175, 175, 5, 5, 175, 5, 121, - 133, 129, 91, 97, 0, 127, 123, 0, - 95, 89, 103, 93, 125, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 13, 13, + 13, 207, 207, 207, 207, 207, 207, 13, + 13, 207, 13, 129, 141, 137, 99, 105, + 0, 135, 131, 0, 103, 97, 111, 101, + 133, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 107, 119, 139, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 99, 111, 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3563,23 +3637,33 @@ var _hcltok_trans_actions []byte = []byte{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 21, 19, + 0, 0, 13, 23, 0, 13, 13, 29, + 0, 0, 0, 153, 174, 1, 1, 174, + 1, 1, 1, 156, 177, 3, 3, 177, + 3, 3, 3, 0, 0, 0, 0, 13, + 13, 13, 13, 174, 1, 1, 174, 174, + 174, 174, 174, 1, 1, 174, 174, 174, + 174, 177, 3, 3, 177, 177, 177, 177, + 1, 1, 0, 0, 13, 13, 13, 13, + 177, 3, 3, 177, 177, 177, 177, 3, + 3, 31, 0, 25, 15, 0, 27, 17, + 33, 0, 0, 0, 0, 45, 0, 183, + 183, 51, 0, 0, 0, 162, 213, 159, + 5, 5, 5, 5, 5, 5, 168, 217, + 165, 7, 7, 7, 7, 7, 7, 47, + 39, 49, 41, 53, 0, 0, 0, 65, + 0, 189, 189, 71, 0, 0, 67, 59, + 69, 61, 73, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 13, 11, 0, 0, 5, 15, - 0, 5, 5, 21, 0, 0, 0, 5, - 5, 5, 23, 0, 17, 7, 0, 19, - 9, 25, 0, 0, 0, 0, 37, 0, - 151, 151, 43, 0, 0, 39, 31, 41, - 33, 45, 0, 0, 0, 57, 0, 157, - 157, 63, 0, 0, 59, 51, 61, 53, - 65, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 13, 13, 13, 195, 195, 195, + 195, 195, 195, 13, 13, 195, 13, 83, 0, 0, 0, 0, 0, 0, 0, 0, - 5, 5, 5, 163, 163, 163, 163, 163, - 163, 5, 5, 163, 5, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3596,8 +3680,7 @@ var _hcltok_trans_actions []byte = []byte{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, + 0, 0, 0, } var _hcltok_to_state_actions []byte = []byte{ @@ -3783,17 +3866,19 @@ var _hcltok_to_state_actions []byte = []byte{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 145, - 0, 0, 0, 0, 0, 0, 145, 0, - 0, 0, 0, 0, 0, 1, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 171, 0, 0, + 0, 0, 0, 0, 0, 0, 171, 0, + 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3984,17 +4069,19 @@ var _hcltok_from_state_actions []byte = []byte{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, - 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 11, 0, 0, + 0, 0, 0, 0, 0, 0, 11, 0, + 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4119,99 +4206,101 @@ var _hcltok_eof_trans []int16 = []int16{ 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, - 672, 769, 769, 769, 769, 773, 773, 775, - 777, 775, 775, 777, 0, 0, 783, 785, - 783, 783, 785, 0, 0, 791, 791, 793, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 791, 791, 791, 791, 791, 791, 791, 791, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 0, 1192, - 1193, 1194, 1193, 1194, 1194, 1194, 1198, 1199, - 1194, 1194, 1194, 1205, 1194, 1194, 1235, 1235, - 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, - 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, - 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, - 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, - 1235, 0, 1388, 1388, 1388, 1388, 1388, 1388, - 1395, 1397, 1395, 1400, 1402, 1402, 1402, 0, - 1411, 1414, 1416, 1418, 1418, 1418, 0, 1426, - 1429, 1431, 1433, 1433, 1433, 0, 1470, 1498, - 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, - 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, - 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, - 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1498, - 1498, 1498, + 672, 769, 769, 769, 769, 769, 775, 775, + 777, 779, 779, 777, 777, 779, 0, 0, + 787, 789, 787, 787, 789, 0, 0, 795, + 795, 797, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, + 795, 795, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, + 0, 1196, 1197, 1198, 1197, 1198, 1198, 1198, + 1202, 1203, 1198, 1198, 1198, 1209, 1198, 1198, + 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, + 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, + 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, + 1239, 1239, 1239, 1239, 1239, 1239, 1239, 1239, + 1239, 1239, 1239, 0, 1392, 1396, 1404, 1392, + 1392, 1396, 1396, 1404, 1396, 1392, 1404, 1404, + 1404, 1404, 1404, 1396, 1396, 1396, 1458, 1460, + 1458, 1463, 1465, 1465, 1465, 0, 1474, 1478, + 1487, 1496, 1498, 1500, 1500, 1500, 0, 1508, + 1511, 1513, 1515, 1515, 1515, 0, 1552, 1580, + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + 1580, 1580, 1580, 1580, 1580, 1580, 1580, 1580, + 1580, 1580, } -const hcltok_start int = 1462 -const hcltok_first_final int = 1462 +const hcltok_start int = 1464 +const hcltok_first_final int = 1464 const hcltok_error int = 0 -const hcltok_en_stringTemplate int = 1513 -const hcltok_en_heredocTemplate int = 1527 -const hcltok_en_bareTemplate int = 1534 -const hcltok_en_identOnly int = 1541 -const hcltok_en_main int = 1462 +const hcltok_en_stringTemplate int = 1515 +const hcltok_en_heredocTemplate int = 1541 +const hcltok_en_bareTemplate int = 1550 +const hcltok_en_identOnly int = 1557 +const hcltok_en_main int = 1464 // line 16 "scan_tokens.rl" @@ -4222,7 +4311,7 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To Pos: start, } - // line 276 "scan_tokens.rl" + // line 294 "scan_tokens.rl" // Ragel state p := 0 // "Pointer" into data @@ -4250,7 +4339,7 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To var retBraces []int // stack of brace levels that cause us to use fret var heredocs []heredocInProgress // stack of heredocs we're currently processing - // line 311 "scan_tokens.rl" + // line 329 "scan_tokens.rl" // Make Go compiler happy _ = ts @@ -4270,7 +4359,7 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To f.emitToken(TokenType(b[0]), ts, te) } - // line 4282 "scan_tokens.go" + // line 4372 "scan_tokens.go" { top = 0 ts = 0 @@ -4278,7 +4367,7 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To act = 0 } - // line 4290 "scan_tokens.go" + // line 4380 "scan_tokens.go" { var _klen int var _trans int @@ -4298,12 +4387,12 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To for ; _nacts > 0; _nacts-- { _acts++ switch _hcltok_actions[_acts-1] { - case 2: + case 6: // line 1 "NONE" ts = p - // line 4314 "scan_tokens.go" + // line 4404 "scan_tokens.go" } } @@ -4374,13 +4463,33 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To for ; _nacts > 0; _nacts-- { _acts++ switch _hcltok_actions[_acts-1] { + case 0: + // line 218 "scan_tokens.rl" + + p-- + + case 1: + // line 219 "scan_tokens.rl" + + p-- + + case 2: + // line 224 "scan_tokens.rl" + + p-- + case 3: + // line 225 "scan_tokens.rl" + + p-- + + case 7: // line 1 "NONE" te = p + 1 - case 4: - // line 137 "scan_tokens.rl" + case 8: + // line 155 "scan_tokens.rl" te = p + 1 { @@ -4394,12 +4503,12 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 1462 + cs = 1464 goto _again } } - case 5: - // line 147 "scan_tokens.rl" + case 9: + // line 165 "scan_tokens.rl" te = p + 1 { @@ -4413,11 +4522,11 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 1462 + cs = 1464 goto _again } } - case 6: + case 10: // line 79 "scan_tokens.rl" te = p + 1 @@ -4431,108 +4540,108 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To goto _again } - case 7: - // line 221 "scan_tokens.rl" + case 11: + // line 239 "scan_tokens.rl" te = p + 1 { token(TokenInvalid) } - case 8: - // line 222 "scan_tokens.rl" - - te = p + 1 - { - token(TokenBadUTF8) - } - case 9: - // line 137 "scan_tokens.rl" - - te = p - p-- - { - token(TokenTemplateInterp) - braces++ - retBraces = append(retBraces, braces) - if len(heredocs) > 0 { - heredocs[len(heredocs)-1].StartOfLine = false - } - { - stack = append(stack, 0) - stack[top] = cs - top++ - cs = 1462 - goto _again - } - } - case 10: - // line 147 "scan_tokens.rl" - - te = p - p-- - { - token(TokenTemplateControl) - braces++ - retBraces = append(retBraces, braces) - if len(heredocs) > 0 { - heredocs[len(heredocs)-1].StartOfLine = false - } - { - stack = append(stack, 0) - stack[top] = cs - top++ - cs = 1462 - goto _again - } - } - case 11: - // line 220 "scan_tokens.rl" - - te = p - p-- - { - token(TokenQuotedLit) - } case 12: - // line 221 "scan_tokens.rl" + // line 240 "scan_tokens.rl" + + te = p + 1 + { + token(TokenBadUTF8) + } + case 13: + // line 155 "scan_tokens.rl" + + te = p + p-- + { + token(TokenTemplateInterp) + braces++ + retBraces = append(retBraces, braces) + if len(heredocs) > 0 { + heredocs[len(heredocs)-1].StartOfLine = false + } + { + stack = append(stack, 0) + stack[top] = cs + top++ + cs = 1464 + goto _again + } + } + case 14: + // line 165 "scan_tokens.rl" + + te = p + p-- + { + token(TokenTemplateControl) + braces++ + retBraces = append(retBraces, braces) + if len(heredocs) > 0 { + heredocs[len(heredocs)-1].StartOfLine = false + } + { + stack = append(stack, 0) + stack[top] = cs + top++ + cs = 1464 + goto _again + } + } + case 15: + // line 238 "scan_tokens.rl" + + te = p + p-- + { + token(TokenQuotedLit) + } + case 16: + // line 239 "scan_tokens.rl" te = p p-- { token(TokenInvalid) } - case 13: - // line 222 "scan_tokens.rl" + case 17: + // line 240 "scan_tokens.rl" te = p p-- { token(TokenBadUTF8) } - case 14: - // line 220 "scan_tokens.rl" + case 18: + // line 238 "scan_tokens.rl" p = (te) - 1 { token(TokenQuotedLit) } - case 15: - // line 222 "scan_tokens.rl" + case 19: + // line 240 "scan_tokens.rl" p = (te) - 1 { token(TokenBadUTF8) } - case 16: - // line 125 "scan_tokens.rl" + case 20: + // line 143 "scan_tokens.rl" act = 10 - case 17: - // line 230 "scan_tokens.rl" + case 21: + // line 248 "scan_tokens.rl" act = 11 - case 18: - // line 137 "scan_tokens.rl" + case 22: + // line 155 "scan_tokens.rl" te = p + 1 { @@ -4546,12 +4655,12 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 1462 + cs = 1464 goto _again } } - case 19: - // line 147 "scan_tokens.rl" + case 23: + // line 165 "scan_tokens.rl" te = p + 1 { @@ -4565,11 +4674,11 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 1462 + cs = 1464 goto _again } } - case 20: + case 24: // line 106 "scan_tokens.rl" te = p + 1 @@ -4582,7 +4691,25 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To if topdoc.StartOfLine { maybeMarker := bytes.TrimSpace(data[ts:te]) if bytes.Equal(maybeMarker, topdoc.Marker) { + // We actually emit two tokens here: the end-of-heredoc + // marker first, and then separately the newline that + // follows it. This then avoids issues with the closing + // marker consuming a newline that would normally be used + // to mark the end of an attribute definition. + // We might have either a \n sequence or an \r\n sequence + // here, so we must handle both. + nls := te - 1 + nle := te + te-- + if data[te-1] == '\r' { + // back up one more byte + nls-- + te-- + } token(TokenCHeredoc) + ts = nls + te = nle + token(TokenNewline) heredocs = heredocs[:len(heredocs)-1] top-- cs = stack[top] @@ -4597,15 +4724,15 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To topdoc.StartOfLine = true token(TokenStringLit) } - case 21: - // line 230 "scan_tokens.rl" + case 25: + // line 248 "scan_tokens.rl" te = p + 1 { token(TokenBadUTF8) } - case 22: - // line 137 "scan_tokens.rl" + case 26: + // line 155 "scan_tokens.rl" te = p p-- @@ -4620,12 +4747,12 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 1462 + cs = 1464 goto _again } } - case 23: - // line 147 "scan_tokens.rl" + case 27: + // line 165 "scan_tokens.rl" te = p p-- @@ -4640,12 +4767,12 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 1462 + cs = 1464 goto _again } } - case 24: - // line 125 "scan_tokens.rl" + case 28: + // line 143 "scan_tokens.rl" te = p p-- @@ -4656,16 +4783,16 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To heredocs[len(heredocs)-1].StartOfLine = false token(TokenStringLit) } - case 25: - // line 230 "scan_tokens.rl" + case 29: + // line 248 "scan_tokens.rl" te = p p-- { token(TokenBadUTF8) } - case 26: - // line 125 "scan_tokens.rl" + case 30: + // line 143 "scan_tokens.rl" p = (te) - 1 { @@ -4675,7 +4802,7 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To heredocs[len(heredocs)-1].StartOfLine = false token(TokenStringLit) } - case 27: + case 31: // line 1 "NONE" switch act { @@ -4701,71 +4828,18 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To } } - case 28: - // line 133 "scan_tokens.rl" + case 32: + // line 151 "scan_tokens.rl" act = 14 - case 29: - // line 237 "scan_tokens.rl" + case 33: + // line 255 "scan_tokens.rl" act = 15 - case 30: - // line 137 "scan_tokens.rl" - - te = p + 1 - { - token(TokenTemplateInterp) - braces++ - retBraces = append(retBraces, braces) - if len(heredocs) > 0 { - heredocs[len(heredocs)-1].StartOfLine = false - } - { - stack = append(stack, 0) - stack[top] = cs - top++ - cs = 1462 - goto _again - } - } - case 31: - // line 147 "scan_tokens.rl" - - te = p + 1 - { - token(TokenTemplateControl) - braces++ - retBraces = append(retBraces, braces) - if len(heredocs) > 0 { - heredocs[len(heredocs)-1].StartOfLine = false - } - { - stack = append(stack, 0) - stack[top] = cs - top++ - cs = 1462 - goto _again - } - } - case 32: - // line 133 "scan_tokens.rl" - - te = p + 1 - { - token(TokenStringLit) - } - case 33: - // line 237 "scan_tokens.rl" - - te = p + 1 - { - token(TokenBadUTF8) - } case 34: - // line 137 "scan_tokens.rl" + // line 155 "scan_tokens.rl" - te = p - p-- + te = p + 1 { token(TokenTemplateInterp) braces++ @@ -4777,12 +4851,65 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 1462 + cs = 1464 goto _again } } case 35: - // line 147 "scan_tokens.rl" + // line 165 "scan_tokens.rl" + + te = p + 1 + { + token(TokenTemplateControl) + braces++ + retBraces = append(retBraces, braces) + if len(heredocs) > 0 { + heredocs[len(heredocs)-1].StartOfLine = false + } + { + stack = append(stack, 0) + stack[top] = cs + top++ + cs = 1464 + goto _again + } + } + case 36: + // line 151 "scan_tokens.rl" + + te = p + 1 + { + token(TokenStringLit) + } + case 37: + // line 255 "scan_tokens.rl" + + te = p + 1 + { + token(TokenBadUTF8) + } + case 38: + // line 155 "scan_tokens.rl" + + te = p + p-- + { + token(TokenTemplateInterp) + braces++ + retBraces = append(retBraces, braces) + if len(heredocs) > 0 { + heredocs[len(heredocs)-1].StartOfLine = false + } + { + stack = append(stack, 0) + stack[top] = cs + top++ + cs = 1464 + goto _again + } + } + case 39: + // line 165 "scan_tokens.rl" te = p p-- @@ -4797,34 +4924,34 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 1462 + cs = 1464 goto _again } } - case 36: - // line 133 "scan_tokens.rl" + case 40: + // line 151 "scan_tokens.rl" te = p p-- { token(TokenStringLit) } - case 37: - // line 237 "scan_tokens.rl" + case 41: + // line 255 "scan_tokens.rl" te = p p-- { token(TokenBadUTF8) } - case 38: - // line 133 "scan_tokens.rl" + case 42: + // line 151 "scan_tokens.rl" p = (te) - 1 { token(TokenStringLit) } - case 39: + case 43: // line 1 "NONE" switch act { @@ -4846,59 +4973,59 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To } } - case 40: - // line 241 "scan_tokens.rl" + case 44: + // line 259 "scan_tokens.rl" act = 16 - case 41: - // line 242 "scan_tokens.rl" + case 45: + // line 260 "scan_tokens.rl" act = 17 - case 42: - // line 242 "scan_tokens.rl" + case 46: + // line 260 "scan_tokens.rl" te = p + 1 { token(TokenBadUTF8) } - case 43: - // line 243 "scan_tokens.rl" + case 47: + // line 261 "scan_tokens.rl" te = p + 1 { token(TokenInvalid) } - case 44: - // line 241 "scan_tokens.rl" - - te = p - p-- - { - token(TokenIdent) - } - case 45: - // line 242 "scan_tokens.rl" - - te = p - p-- - { - token(TokenBadUTF8) - } - case 46: - // line 241 "scan_tokens.rl" - - p = (te) - 1 - { - token(TokenIdent) - } - case 47: - // line 242 "scan_tokens.rl" - - p = (te) - 1 - { - token(TokenBadUTF8) - } case 48: + // line 259 "scan_tokens.rl" + + te = p + p-- + { + token(TokenIdent) + } + case 49: + // line 260 "scan_tokens.rl" + + te = p + p-- + { + token(TokenBadUTF8) + } + case 50: + // line 259 "scan_tokens.rl" + + p = (te) - 1 + { + token(TokenIdent) + } + case 51: + // line 260 "scan_tokens.rl" + + p = (te) - 1 + { + token(TokenBadUTF8) + } + case 52: // line 1 "NONE" switch act { @@ -4914,113 +5041,113 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To } } - case 49: - // line 249 "scan_tokens.rl" + case 53: + // line 267 "scan_tokens.rl" act = 21 - case 50: - // line 251 "scan_tokens.rl" + case 54: + // line 269 "scan_tokens.rl" act = 22 - case 51: - // line 262 "scan_tokens.rl" + case 55: + // line 280 "scan_tokens.rl" act = 32 - case 52: - // line 272 "scan_tokens.rl" + case 56: + // line 290 "scan_tokens.rl" act = 38 - case 53: - // line 273 "scan_tokens.rl" + case 57: + // line 291 "scan_tokens.rl" act = 39 - case 54: - // line 251 "scan_tokens.rl" + case 58: + // line 269 "scan_tokens.rl" te = p + 1 { token(TokenComment) } - case 55: - // line 252 "scan_tokens.rl" + case 59: + // line 270 "scan_tokens.rl" te = p + 1 { token(TokenNewline) } - case 56: - // line 254 "scan_tokens.rl" + case 60: + // line 272 "scan_tokens.rl" te = p + 1 { token(TokenEqualOp) } - case 57: - // line 255 "scan_tokens.rl" + case 61: + // line 273 "scan_tokens.rl" te = p + 1 { token(TokenNotEqual) } - case 58: - // line 256 "scan_tokens.rl" + case 62: + // line 274 "scan_tokens.rl" te = p + 1 { token(TokenGreaterThanEq) } - case 59: - // line 257 "scan_tokens.rl" + case 63: + // line 275 "scan_tokens.rl" te = p + 1 { token(TokenLessThanEq) } - case 60: - // line 258 "scan_tokens.rl" + case 64: + // line 276 "scan_tokens.rl" te = p + 1 { token(TokenAnd) } - case 61: - // line 259 "scan_tokens.rl" + case 65: + // line 277 "scan_tokens.rl" te = p + 1 { token(TokenOr) } - case 62: - // line 260 "scan_tokens.rl" + case 66: + // line 278 "scan_tokens.rl" te = p + 1 { token(TokenEllipsis) } - case 63: - // line 261 "scan_tokens.rl" + case 67: + // line 279 "scan_tokens.rl" te = p + 1 { token(TokenFatArrow) } - case 64: - // line 262 "scan_tokens.rl" + case 68: + // line 280 "scan_tokens.rl" te = p + 1 { selfToken() } - case 65: - // line 157 "scan_tokens.rl" + case 69: + // line 175 "scan_tokens.rl" te = p + 1 { token(TokenOBrace) braces++ } - case 66: - // line 162 "scan_tokens.rl" + case 70: + // line 180 "scan_tokens.rl" te = p + 1 { @@ -5040,8 +5167,8 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To braces-- } } - case 67: - // line 174 "scan_tokens.rl" + case 71: + // line 192 "scan_tokens.rl" te = p + 1 { @@ -5070,7 +5197,7 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To braces-- } } - case 68: + case 72: // line 74 "scan_tokens.rl" te = p + 1 @@ -5080,11 +5207,11 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 1513 + cs = 1515 goto _again } } - case 69: + case 73: // line 84 "scan_tokens.rl" te = p + 1 @@ -5111,107 +5238,107 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To stack = append(stack, 0) stack[top] = cs top++ - cs = 1527 + cs = 1541 goto _again } } - case 70: - // line 272 "scan_tokens.rl" + case 74: + // line 290 "scan_tokens.rl" te = p + 1 { token(TokenBadUTF8) } - case 71: - // line 273 "scan_tokens.rl" + case 75: + // line 291 "scan_tokens.rl" te = p + 1 { token(TokenInvalid) } - case 72: - // line 247 "scan_tokens.rl" + case 76: + // line 265 "scan_tokens.rl" te = p p-- - case 73: - // line 248 "scan_tokens.rl" + case 77: + // line 266 "scan_tokens.rl" te = p p-- { token(TokenNumberLit) } - case 74: - // line 249 "scan_tokens.rl" + case 78: + // line 267 "scan_tokens.rl" te = p p-- { token(TokenIdent) } - case 75: - // line 251 "scan_tokens.rl" + case 79: + // line 269 "scan_tokens.rl" te = p p-- { token(TokenComment) } - case 76: - // line 262 "scan_tokens.rl" + case 80: + // line 280 "scan_tokens.rl" te = p p-- { selfToken() } - case 77: - // line 272 "scan_tokens.rl" + case 81: + // line 290 "scan_tokens.rl" te = p p-- { token(TokenBadUTF8) } - case 78: - // line 273 "scan_tokens.rl" + case 82: + // line 291 "scan_tokens.rl" te = p p-- { token(TokenInvalid) } - case 79: - // line 248 "scan_tokens.rl" + case 83: + // line 266 "scan_tokens.rl" p = (te) - 1 { token(TokenNumberLit) } - case 80: - // line 249 "scan_tokens.rl" + case 84: + // line 267 "scan_tokens.rl" p = (te) - 1 { token(TokenIdent) } - case 81: - // line 262 "scan_tokens.rl" + case 85: + // line 280 "scan_tokens.rl" p = (te) - 1 { selfToken() } - case 82: - // line 272 "scan_tokens.rl" + case 86: + // line 290 "scan_tokens.rl" p = (te) - 1 { token(TokenBadUTF8) } - case 83: + case 87: // line 1 "NONE" switch act { @@ -5242,7 +5369,7 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To } } - // line 5104 "scan_tokens.go" + // line 5232 "scan_tokens.go" } } @@ -5253,17 +5380,17 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To for ; _nacts > 0; _nacts-- { _acts++ switch _hcltok_actions[_acts-1] { - case 0: + case 4: // line 1 "NONE" ts = 0 - case 1: + case 5: // line 1 "NONE" act = 0 - // line 5124 "scan_tokens.go" + // line 5252 "scan_tokens.go" } } @@ -5289,13 +5416,23 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To } } - // line 334 "scan_tokens.rl" + // line 352 "scan_tokens.rl" // If we fall out here without being in a final state then we've // encountered something that the scanner can't match, which we'll // deal with as an invalid. if cs < hcltok_first_final { - f.emitToken(TokenInvalid, p, len(data)) + if mode == scanTemplate && len(stack) == 0 { + // If we're scanning a bare template then any straggling + // top-level stuff is actually literal string, rather than + // invalid. This handles the case where the template ends + // with a single "$" or "%", which trips us up because we + // want to see another character to decide if it's a sequence + // or an escape. + f.emitToken(TokenStringLit, ts, len(data)) + } else { + f.emitToken(TokenInvalid, ts, len(data)) + } } // We always emit a synthetic EOF token at the end, since it gives the diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_tokens.rl b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_tokens.rl index dc3f56b9b..83ef65b47 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_tokens.rl +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/scan_tokens.rl @@ -36,10 +36,10 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To NumberLitContinue = (digit|'.'|('e'|'E') ('+'|'-')? digit); NumberLit = digit ("" | (NumberLitContinue - '.') | (NumberLitContinue* (NumberLitContinue - '.'))); - Ident = ID_Start (ID_Continue | '-')*; + Ident = (ID_Start | '_') (ID_Continue | '-')*; # Symbols that just represent themselves are handled as a single rule. - SelfToken = "[" | "]" | "(" | ")" | "." | "," | "*" | "/" | "+" | "-" | "=" | "<" | ">" | "!" | "?" | ":" | "\n" | "&" | "|" | "~" | "^" | ";" | "`"; + SelfToken = "[" | "]" | "(" | ")" | "." | "," | "*" | "/" | "%" | "+" | "-" | "=" | "<" | ">" | "!" | "?" | ":" | "\n" | "&" | "|" | "~" | "^" | ";" | "`"; EqualOp = "=="; NotEqual = "!="; @@ -112,7 +112,25 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To if topdoc.StartOfLine { maybeMarker := bytes.TrimSpace(data[ts:te]) if bytes.Equal(maybeMarker, topdoc.Marker) { + // We actually emit two tokens here: the end-of-heredoc + // marker first, and then separately the newline that + // follows it. This then avoids issues with the closing + // marker consuming a newline that would normally be used + // to mark the end of an attribute definition. + // We might have either a \n sequence or an \r\n sequence + // here, so we must handle both. + nls := te-1 + nle := te + te-- + if data[te-1] == '\r' { + // back up one more byte + nls-- + te-- + } token(TokenCHeredoc); + ts = nls + te = nle + token(TokenNewline); heredocs = heredocs[:len(heredocs)-1] fret; } @@ -197,14 +215,14 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To EndStringTmpl = '"'; StringLiteralChars = (AnyUTF8 - ("\r"|"\n")); TemplateStringLiteral = ( - ('$' ^'{') | - ('%' ^'{') | + ('$' ^'{' %{ fhold; }) | + ('%' ^'{' %{ fhold; }) | ('\\' StringLiteralChars) | (StringLiteralChars - ("$" | '%' | '"')) )+; HeredocStringLiteral = ( - ('$' ^'{') | - ('%' ^'{') | + ('$' ^'{' %{ fhold; }) | + ('%' ^'{' %{ fhold; }) | (StringLiteralChars - ("$" | '%')) )*; BareStringLiteral = ( @@ -337,7 +355,17 @@ func scanTokens(data []byte, filename string, start hcl.Pos, mode scanMode) []To // encountered something that the scanner can't match, which we'll // deal with as an invalid. if cs < hcltok_first_final { - f.emitToken(TokenInvalid, p, len(data)) + if mode == scanTemplate && len(stack) == 0 { + // If we're scanning a bare template then any straggling + // top-level stuff is actually literal string, rather than + // invalid. This handles the case where the template ends + // with a single "$" or "%", which trips us up because we + // want to see another character to decide if it's a sequence + // or an escape. + f.emitToken(TokenStringLit, ts, len(data)) + } else { + f.emitToken(TokenInvalid, ts, len(data)) + } } // We always emit a synthetic EOF token at the end, since it gives the diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/spec.md b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/spec.md index faf279170..49b9a3ea3 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/spec.md +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/spec.md @@ -161,7 +161,7 @@ language-agnostic HCL information model. ConfigFile = Body; Body = (Attribute | Block)*; Attribute = Identifier "=" Expression Newline; -Block = Identifier (StringLit)* "{" Newline Body "}" Newline; +Block = Identifier (StringLit|Identifier)* "{" Newline Body "}" Newline; ``` ### Configuration Files @@ -186,8 +186,10 @@ for later evaluation by the calling application. ### Blocks A _block_ creates a child body that is annotated with a block _type_ and -zero or more optional block _labels_. Blocks create a structural heirachy -which can be interpreted by the calling application. +zero or more block _labels_. Blocks create a structural heirachy which can be +interpreted by the calling application. + +Block labels can either be quoted literal strings or naked identifiers. ## Expressions @@ -877,3 +879,45 @@ application, by converting the final template result to string. This is necessary, for example, if a standalone template is being used to produce the direct contents of a file, since the result in that case must always be a string. + +## Static Analysis + +The HCL static analysis operations are implemented for some expression types +in the native syntax, as described in the following sections. + +A goal for static analysis of the native syntax is for the interpretation to +be as consistent as possible with the dynamic evaluation interpretation of +the given expression, though some deviations are intentionally made in order +to maximize the potential for analysis. + +### Static List + +The tuple construction syntax can be interpreted as a static list. All of +the expression elements given are returned as the static list elements, +with no further interpretation. + +### Static Map + +The object construction syntax can be interpreted as a static map. All of the +key/value pairs given are returned as the static pairs, with no further +interpretation. + +The usual requirement that an attribute name be interpretable as a string +does not apply to this static analyis, allowing callers to provide map-like +constructs with different key types by building on the map syntax. + +### Static Call + +The function call syntax can be interpreted as a static call. The called +function name is returned verbatim and the given argument expressions are +returned as the static arguments, with no further interpretation. + +### Static Traversal + +A variable expression and any attached attribute access operations and +constant index operations can be interpreted as a static traversal. + +The keywords `true`, `false` and `null` can also be interpreted as +static traversals, behaving as if they were references to variables of those +names, to allow callers to redefine the meaning of those keywords in certain +contexts. diff --git a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/token.go b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/token.go index 53e847d13..bcaa15f09 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/token.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/hclsyntax/token.go @@ -133,7 +133,7 @@ func (f *tokenAccum) emitToken(ty TokenType, startOfs, endOfs int) { b := f.Bytes[startOfs:endOfs] for len(b) > 0 { advance, seq, _ := textseg.ScanGraphemeClusters(b, true) - if len(seq) == 1 && seq[0] == '\n' { + if (len(seq) == 1 && seq[0] == '\n') || (len(seq) == 2 && seq[0] == '\r' && seq[1] == '\n') { end.Line++ end.Column = 1 } else { diff --git a/vendor/github.com/hashicorp/hcl2/hcl/json/ast.go b/vendor/github.com/hashicorp/hcl2/hcl/json/ast.go index 8b288f938..753bfa0a7 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/json/ast.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/json/ast.go @@ -12,7 +12,7 @@ type node interface { } type objectVal struct { - Attrs map[string]*objectAttr + Attrs []*objectAttr SrcRange hcl.Range // range of the entire object, brace-to-brace OpenRange hcl.Range // range of the opening brace CloseRange hcl.Range // range of the closing brace diff --git a/vendor/github.com/hashicorp/hcl2/hcl/json/navigation.go b/vendor/github.com/hashicorp/hcl2/hcl/json/navigation.go index 307eebb2c..bc8a97f74 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/json/navigation.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/json/navigation.go @@ -1,11 +1,12 @@ package json import ( + "fmt" "strings" ) type navigation struct { - root *objectVal + root node } // Implementation of hcled.ContextString @@ -21,21 +22,49 @@ func (n navigation) ContextString(offset int) string { steps[i], steps[len(steps)-1-i] = steps[len(steps)-1-i], steps[i] } - return strings.Join(steps, ".") + ret := strings.Join(steps, "") + if len(ret) > 0 && ret[0] == '.' { + ret = ret[1:] + } + return ret } -func navigationStepsRev(obj *objectVal, offset int) []string { - // Do any of our properties have an object that contains the target - // offset? - for k, attr := range obj.Attrs { - ov, ok := attr.Value.(*objectVal) - if !ok { - continue - } +func navigationStepsRev(v node, offset int) []string { + switch tv := v.(type) { + case *objectVal: + // Do any of our properties have an object that contains the target + // offset? + for _, attr := range tv.Attrs { + k := attr.Name + av := attr.Value - if ov.SrcRange.ContainsOffset(offset) { - return append(navigationStepsRev(ov, offset), k) + switch av.(type) { + case *objectVal, *arrayVal: + // okay + default: + continue + } + + if av.Range().ContainsOffset(offset) { + return append(navigationStepsRev(av, offset), "."+k) + } + } + case *arrayVal: + // Do any of our elements contain the target offset? + for i, elem := range tv.Values { + + switch elem.(type) { + case *objectVal, *arrayVal: + // okay + default: + continue + } + + if elem.Range().ContainsOffset(offset) { + return append(navigationStepsRev(elem, offset), fmt.Sprintf("[%d]", i)) + } } } + return nil } diff --git a/vendor/github.com/hashicorp/hcl2/hcl/json/parser.go b/vendor/github.com/hashicorp/hcl2/hcl/json/parser.go index f36625e0f..246fd1c32 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/json/parser.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/json/parser.go @@ -103,7 +103,7 @@ func parseObject(p *peeker) (node, hcl.Diagnostics) { var diags hcl.Diagnostics open := p.Read() - attrs := map[string]*objectAttr{} + attrs := []*objectAttr{} // recover is used to shift the peeker to what seems to be the end of // our object, so that when we encounter an error we leave the peeker @@ -191,24 +191,11 @@ Token: return nil, diags } - if existing := attrs[key]; existing != nil { - // Generate a diagnostic for the duplicate key, but continue parsing - // anyway since this is a semantic error we can recover from. - diags = diags.Append(&hcl.Diagnostic{ - Severity: hcl.DiagError, - Summary: "Duplicate JSON object property", - Detail: fmt.Sprintf( - "An property named %q was previously introduced at %s", - key, existing.NameRange.String(), - ), - Subject: &keyStrNode.SrcRange, - }) - } - attrs[key] = &objectAttr{ + attrs = append(attrs, &objectAttr{ Name: key, Value: valNode, NameRange: keyStrNode.SrcRange, - } + }) switch p.Peek().Type { case tokenComma: @@ -383,7 +370,7 @@ func parseNumber(p *peeker) (node, hcl.Diagnostics) { } } - f, _, err := (&big.Float{}).Parse(string(num), 10) + f, _, err := big.ParseFloat(string(num), 10, 512, big.ToNearestEven) if err != nil { // Should never happen if above passed, since JSON numbers are a subset // of what big.Float can parse... diff --git a/vendor/github.com/hashicorp/hcl2/hcl/json/public.go b/vendor/github.com/hashicorp/hcl2/hcl/json/public.go index 04ee9147c..2728aa130 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/json/public.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/json/public.go @@ -19,19 +19,22 @@ import ( // the subset of data that was able to be parsed, which may be none. func Parse(src []byte, filename string) (*hcl.File, hcl.Diagnostics) { rootNode, diags := parseFileContent(src, filename) - if _, ok := rootNode.(*objectVal); !ok { + + switch rootNode.(type) { + case *objectVal, *arrayVal: + // okay + default: diags = diags.Append(&hcl.Diagnostic{ Severity: hcl.DiagError, Summary: "Root value must be object", - Detail: "The root value in a JSON-based configuration must be a JSON object.", + Detail: "The root value in a JSON-based configuration must be either a JSON object or a JSON array of objects.", Subject: rootNode.StartRange().Ptr(), }) - // Put in a placeholder objectVal just so the caller always gets - // a valid file, even if it appears empty. This is useful for callers - // that are doing static analysis of possibly-erroneous source code, - // which will try to process the returned file even if we return - // diagnostics of severity error. This way, they'll get a file that - // has an empty body rather than a body that panics when probed. + + // Since we've already produced an error message for this being + // invalid, we'll return an empty placeholder here so that trying to + // extract content from our root body won't produce a redundant + // error saying the same thing again in more general terms. fakePos := hcl.Pos{ Byte: 0, Line: 1, @@ -43,17 +46,18 @@ func Parse(src []byte, filename string) (*hcl.File, hcl.Diagnostics) { End: fakePos, } rootNode = &objectVal{ - Attrs: map[string]*objectAttr{}, + Attrs: []*objectAttr{}, SrcRange: fakeRange, OpenRange: fakeRange, } } + file := &hcl.File{ Body: &body{ - obj: rootNode.(*objectVal), + val: rootNode, }, Bytes: src, - Nav: navigation{rootNode.(*objectVal)}, + Nav: navigation{rootNode}, } return file, diags } diff --git a/vendor/github.com/hashicorp/hcl2/hcl/json/spec.md b/vendor/github.com/hashicorp/hcl2/hcl/json/spec.md index 9b08a4f26..9b33c7f49 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/json/spec.md +++ b/vendor/github.com/hashicorp/hcl2/hcl/json/spec.md @@ -13,19 +13,36 @@ grammar as-is, and merely defines a specific methodology for interpreting JSON constructs into HCL structural elements and expressions. This mapping is defined such that valid JSON-serialized HCL input can be -produced using standard JSON implementations in various programming languages. +_produced_ using standard JSON implementations in various programming languages. _Parsing_ such JSON has some additional constraints not beyond what is normally -supported by JSON parsers, though adaptations are defined to allow processing -with an off-the-shelf JSON parser with certain caveats, described in later -sections. +supported by JSON parsers, so a specialized parser may be required that +is able to: + +* Preserve the relative ordering of properties defined in an object. +* Preserve multiple definitions of the same property name. +* Preserve numeric values to the precision required by the number type + in [the HCL syntax-agnostic information model](../spec.md). +* Retain source location information for parsed tokens/constructs in order + to produce good error messages. ## Structural Elements -The HCL language-agnostic information model defines a _body_ as an abstract -container for attribute definitions and child blocks. A body is represented -in JSON as a JSON _object_. +[The HCL syntax-agnostic information model](../spec.md) defines a _body_ as an +abstract container for attribute definitions and child blocks. A body is +represented in JSON as either a single JSON object or a JSON array of objects. -As defined in the language-agnostic model, body processing is done in terms +Body processing is in terms of JSON object properties, visited in the order +they appear in the input. Where a body is represented by a single JSON object, +the properties of that object are visited in order. Where a body is +represented by a JSON array, each of its elements are visited in order and +each element has its properties visited in order. If any element of the array +is not a JSON object then the input is erroneous. + +When a body is being processed in the _dynamic attributes_ mode, the allowance +of a JSON array in the previous paragraph does not apply and instead a single +JSON object is always required. + +As defined in the language-agnostic model, body processing is in terms of a schema which provides context for interpreting the body's content. For JSON bodies, the schema is crucial to allow differentiation of attribute definitions and block definitions, both of which are represented via object @@ -61,14 +78,16 @@ the following provides a definition for that attribute: ### Blocks -Where the given schema describes a block with a given type name, the object -property with the matching name — if present — serves as a definition of -zero or more blocks of that type. +Where the given schema describes a block with a given type name, each object +property with the matching name serves as a definition of zero or more blocks +of that type. Processing of child blocks is in terms of nested JSON objects and arrays. -If the schema defines one or more _labels_ for the block type, a nested -object is required for each labelling level, with the object keys serving as -the label values at that level. +If the schema defines one or more _labels_ for the block type, a nested JSON +object or JSON array of objects is required for each labelling level. These +are flattened to a single ordered sequence of object properties using the +same algorithm as for body content as defined above. Each object property +serves as a label value at the corresponding level. After any labelling levels, the next nested value is either a JSON object representing a single block body, or a JSON array of JSON objects that each @@ -111,7 +130,8 @@ of zero blocks, though generators should prefer to omit the property entirely in this scenario. Given a schema that calls for a block type named "foo" with _two_ labels, the -extra label levels must be represented as objects as in the following examples: +extra label levels must be represented as objects or arrays of objects as in +the following examples: ```json { @@ -132,6 +152,7 @@ extra label levels must be represented as objects as in the following examples: } } ``` + ```json { "foo": { @@ -157,10 +178,70 @@ extra label levels must be represented as objects as in the following examples: } ``` -Where multiple definitions are included for the same type and labels, the -JSON array is always the value of the property representing the final label, -and contains objects representing block bodies. It is not valid to use an array -at any other point in the block definition structure. +```json +{ + "foo": [ + { + "bar": { + "baz": { + "child_attr": "baz" + }, + "boz": { + "child_attr": "baz" + } + }, + }, + { + "bar": { + "baz": [ + { + "child_attr": "baz" + }, + { + "child_attr": "boz" + } + ] + } + } + ] +} +``` + +```json +{ + "foo": { + "bar": { + "baz": { + "child_attr": "baz" + }, + "boz": { + "child_attr": "baz" + } + }, + "bar": { + "baz": [ + { + "child_attr": "baz" + }, + { + "child_attr": "boz" + } + ] + } + } +} +``` + +Arrays can be introduced at either the label definition or block body +definition levels to define multiple definitions of the same block type +or labels while preserving order. + +A JSON HCL parser _must_ support duplicate definitions of the same property +name within a single object, preserving all of them and the relative ordering +between them. The array-based forms are also required so that JSON HCL +configurations can be produced with JSON producing libraries that are not +able to preserve property definition order and multiple definitions of +the same property. ## Expressions @@ -174,17 +255,24 @@ When interpreted as an expression, a JSON object represents a value of a HCL object type. Each property of the JSON object represents an attribute of the HCL object type. -The object type is constructed by enumerating the JSON object properties, -creating for each an attribute whose name exactly matches the property name, -and whose type is the result of recursively applying the expression mapping -rules. +The property name string given in the JSON input is interpreted as a string +expression as described below, and its result is converted to string as defined +by the syntax-agnostic information model. If such a conversion is not possible, +an error is produced and evaluation fails. An instance of the constructed object type is then created, whose values are interpreted by again recursively applying the mapping rules defined in -this section. +this section to each of the property values. + +If any evaluated property name strings produce null values, an error is +produced and evaluation fails. If any produce _unknown_ values, the _entire +object's_ result is an unknown value of the dynamic pseudo-type, signalling +that the type of the object cannot be determined. It is an error to define the same property name multiple times within a single -JSON object interpreted as an expression. +JSON object interpreted as an expression. In full expression mode, this +constraint applies to the name expression results after conversion to string, +rather than the raw string that may contain interpolation expressions. ### Arrays @@ -205,18 +293,25 @@ section. When interpreted as an expression, a JSON number represents a HCL number value. -HCL numbers are arbitrary-precision decimal values, so an ideal implementation -of this specification will translate exactly the value given to a number of -corresponding precision. +HCL numbers are arbitrary-precision decimal values, so a JSON HCL parser must +be able to translate exactly the value given to a number of corresponding +precision, within the constraints set by the HCL syntax-agnostic information +model. -In practice, off-the-shelf JSON parsers often do not support customizing the +In practice, off-the-shelf JSON serializers often do not support customizing the processing of numbers, and instead force processing as 32-bit or 64-bit -floating point values with a potential loss of precision. It is permissable -for a HCL JSON parser to pass on such limitations _if and only if_ the -available precision and other constraints are defined in its documentation. -Calling applications each have differing precision requirements, so calling -applications are free to select an implementation with more limited precision -capabilities should high precision not be required for that application. +floating point values. + +A _producer_ of JSON HCL that uses such a serializer can provide numeric values +as JSON strings where they have precision too great for representation in the +serializer's chosen numeric type in situations where the result will be +converted to number (using the standard conversion rules) by a calling +application. + +Alternatively, for expressions that are evaluated in full expression mode an +embedded template interpolation can be used to faithfully represent a number, +such as `"${1e150}"`, which will then be evaluated by the underlying HCL native +syntax expression evaluator. ### Boolean Values @@ -263,3 +358,48 @@ the result must be a number, rather than a string representation of a number: ```json "${ a + b }" ``` + +## Static Analysis + +The HCL static analysis operations are implemented for JSON values that +represent expressions, as described in the following sections. + +Due to the limited expressive power of the JSON syntax alone, use of these +static analyses functions rather than normal expression evaluation is used +as additional context for how a JSON value is to be interpreted, which means +that static analyses can result in a different interpretation of a given +expression than normal evaluation. + +### Static List + +An expression interpreted as a static list must be a JSON array. Each of the +values in the array is interpreted as an expression and returned. + +### Static Map + +An expression interpreted as a static map must be a JSON object. Each of the +key/value pairs in the object is presented as a pair of expressions. Since +object property names are always strings, evaluating the key expression with +a non-`nil` evaluation context will evaluate any template sequences given +in the property name. + +### Static Call + +An expression interpreted as a static call must be a string. The content of +the string is interpreted as a native syntax expression (not a _template_, +unlike normal evaluation) and then the static call analysis is delegated to +that expression. + +If the original expression is not a string or its contents cannot be parsed +as a native syntax expression then static call analysis is not supported. + +### Static Traversal + +An expression interpreted as a static traversal must be a string. The content +of the string is interpreted as a native syntax expression (not a _template_, +unlike normal evaluation) and then static traversal analysis is delegated +to that expression. + +If the original expression is not a string or its contents cannot be parsed +as a native syntax expression then static call analysis is not supported. + diff --git a/vendor/github.com/hashicorp/hcl2/hcl/json/structure.go b/vendor/github.com/hashicorp/hcl2/hcl/json/structure.go index fc9f580db..28dcf5259 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/json/structure.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/json/structure.go @@ -6,12 +6,13 @@ import ( "github.com/hashicorp/hcl2/hcl" "github.com/hashicorp/hcl2/hcl/hclsyntax" "github.com/zclconf/go-cty/cty" + "github.com/zclconf/go-cty/cty/convert" ) // body is the implementation of "Body" used for files processed with the JSON // parser. type body struct { - obj *objectVal + val node // If non-nil, the keys of this map cause the corresponding attributes to // be treated as non-existing. This is used when Body.PartialContent is @@ -43,7 +44,11 @@ func (b *body) Content(schema *hcl.BodySchema) (*hcl.BodyContent, hcl.Diagnostic nameSuggestions = append(nameSuggestions, blockS.Type) } - for k, attr := range b.obj.Attrs { + jsonAttrs, attrDiags := b.collectDeepAttrs(b.val, nil) + diags = append(diags, attrDiags...) + + for _, attr := range jsonAttrs { + k := attr.Name if k == "//" { // Ignore "//" keys in objects representing bodies, to allow // their use as comments. @@ -51,16 +56,15 @@ func (b *body) Content(schema *hcl.BodySchema) (*hcl.BodyContent, hcl.Diagnostic } if _, ok := hiddenAttrs[k]; !ok { - var fixItHint string suggestion := nameSuggestion(k, nameSuggestions) if suggestion != "" { - fixItHint = fmt.Sprintf(" Did you mean %q?", suggestion) + suggestion = fmt.Sprintf(" Did you mean %q?", suggestion) } diags = append(diags, &hcl.Diagnostic{ Severity: hcl.DiagError, Summary: "Extraneous JSON object property", - Detail: fmt.Sprintf("No attribute or block type is named %q.%s", k, fixItHint), + Detail: fmt.Sprintf("No attribute or block type is named %q.%s", k, suggestion), Subject: &attr.NameRange, Context: attr.Range().Ptr(), }) @@ -71,16 +75,17 @@ func (b *body) Content(schema *hcl.BodySchema) (*hcl.BodyContent, hcl.Diagnostic } func (b *body) PartialContent(schema *hcl.BodySchema) (*hcl.BodyContent, hcl.Body, hcl.Diagnostics) { + var diags hcl.Diagnostics + + jsonAttrs, attrDiags := b.collectDeepAttrs(b.val, nil) + diags = append(diags, attrDiags...) - obj := b.obj - jsonAttrs := obj.Attrs usedNames := map[string]struct{}{} if b.hiddenAttrs != nil { for k := range b.hiddenAttrs { usedNames[k] = struct{}{} } } - var diags hcl.Diagnostics content := &hcl.BodyContent{ Attributes: map[string]*hcl.Attribute{}, @@ -89,43 +94,70 @@ func (b *body) PartialContent(schema *hcl.BodySchema) (*hcl.BodyContent, hcl.Bod MissingItemRange: b.MissingItemRange(), } + // Create some more convenient data structures for our work below. + attrSchemas := map[string]hcl.AttributeSchema{} + blockSchemas := map[string]hcl.BlockHeaderSchema{} for _, attrS := range schema.Attributes { - jsonAttr, exists := jsonAttrs[attrS.Name] - _, used := usedNames[attrS.Name] - if used || !exists { - if attrS.Required { - diags = diags.Append(&hcl.Diagnostic{ - Severity: hcl.DiagError, - Summary: "Missing required attribute", - Detail: fmt.Sprintf("The attribute %q is required, so a JSON object property must be present with this name.", attrS.Name), - Subject: &obj.OpenRange, - }) - } - continue - } - content.Attributes[attrS.Name] = &hcl.Attribute{ - Name: attrS.Name, - Expr: &expression{src: jsonAttr.Value}, - Range: hcl.RangeBetween(jsonAttr.NameRange, jsonAttr.Value.Range()), - NameRange: jsonAttr.NameRange, - } - usedNames[attrS.Name] = struct{}{} + attrSchemas[attrS.Name] = attrS + } + for _, blockS := range schema.Blocks { + blockSchemas[blockS.Type] = blockS } - for _, blockS := range schema.Blocks { - jsonAttr, exists := jsonAttrs[blockS.Type] - _, used := usedNames[blockS.Type] - if used || !exists { - usedNames[blockS.Type] = struct{}{} + for _, jsonAttr := range jsonAttrs { + attrName := jsonAttr.Name + if _, used := b.hiddenAttrs[attrName]; used { continue } - v := jsonAttr.Value - diags = append(diags, b.unpackBlock(v, blockS.Type, &jsonAttr.NameRange, blockS.LabelNames, nil, nil, &content.Blocks)...) - usedNames[blockS.Type] = struct{}{} + + if attrS, defined := attrSchemas[attrName]; defined { + if existing, exists := content.Attributes[attrName]; exists { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Duplicate attribute definition", + Detail: fmt.Sprintf("The attribute %q was already defined at %s.", attrName, existing.Range), + Subject: &jsonAttr.NameRange, + Context: jsonAttr.Range().Ptr(), + }) + continue + } + + content.Attributes[attrS.Name] = &hcl.Attribute{ + Name: attrS.Name, + Expr: &expression{src: jsonAttr.Value}, + Range: hcl.RangeBetween(jsonAttr.NameRange, jsonAttr.Value.Range()), + NameRange: jsonAttr.NameRange, + } + usedNames[attrName] = struct{}{} + + } else if blockS, defined := blockSchemas[attrName]; defined { + bv := jsonAttr.Value + blockDiags := b.unpackBlock(bv, blockS.Type, &jsonAttr.NameRange, blockS.LabelNames, nil, nil, &content.Blocks) + diags = append(diags, blockDiags...) + usedNames[attrName] = struct{}{} + } + + // We ignore anything that isn't defined because that's the + // PartialContent contract. The Content method will catch leftovers. + } + + // Make sure we got all the required attributes. + for _, attrS := range schema.Attributes { + if !attrS.Required { + continue + } + if _, defined := content.Attributes[attrS.Name]; !defined { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Missing required attribute", + Detail: fmt.Sprintf("The attribute %q is required, but no definition was found.", attrS.Name), + Subject: b.MissingItemRange().Ptr(), + }) + } } unusedBody := &body{ - obj: b.obj, + val: b.val, hiddenAttrs: usedNames, } @@ -135,8 +167,22 @@ func (b *body) PartialContent(schema *hcl.BodySchema) (*hcl.BodyContent, hcl.Bod // JustAttributes for JSON bodies interprets all properties of the wrapped // JSON object as attributes and returns them. func (b *body) JustAttributes() (hcl.Attributes, hcl.Diagnostics) { + var diags hcl.Diagnostics attrs := make(map[string]*hcl.Attribute) - for name, jsonAttr := range b.obj.Attrs { + + obj, ok := b.val.(*objectVal) + if !ok { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Incorrect JSON value type", + Detail: "A JSON object is required here, defining the attributes for this block.", + Subject: b.val.StartRange().Ptr(), + }) + return attrs, diags + } + + for _, jsonAttr := range obj.Attrs { + name := jsonAttr.Name if name == "//" { // Ignore "//" keys in objects representing bodies, to allow // their use as comments. @@ -146,6 +192,17 @@ func (b *body) JustAttributes() (hcl.Attributes, hcl.Diagnostics) { if _, hidden := b.hiddenAttrs[name]; hidden { continue } + + if existing, exists := attrs[name]; exists { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Duplicate attribute definition", + Detail: fmt.Sprintf("The attribute %q was already defined at %s.", name, existing.Range), + Subject: &jsonAttr.NameRange, + }) + continue + } + attrs[name] = &hcl.Attribute{ Name: name, Expr: &expression{src: jsonAttr.Value}, @@ -156,27 +213,29 @@ func (b *body) JustAttributes() (hcl.Attributes, hcl.Diagnostics) { // No diagnostics possible here, since the parser already took care of // finding duplicates and every JSON value can be a valid attribute value. - return attrs, nil + return attrs, diags } func (b *body) MissingItemRange() hcl.Range { - return b.obj.CloseRange + switch tv := b.val.(type) { + case *objectVal: + return tv.CloseRange + case *arrayVal: + return tv.OpenRange + default: + // Should not happen in correct operation, but might show up if the + // input is invalid and we are producing partial results. + return tv.StartRange() + } } func (b *body) unpackBlock(v node, typeName string, typeRange *hcl.Range, labelsLeft []string, labelsUsed []string, labelRanges []hcl.Range, blocks *hcl.Blocks) (diags hcl.Diagnostics) { if len(labelsLeft) > 0 { labelName := labelsLeft[0] - ov, ok := v.(*objectVal) - if !ok { - diags = diags.Append(&hcl.Diagnostic{ - Severity: hcl.DiagError, - Summary: "Incorrect JSON value type", - Detail: fmt.Sprintf("A JSON object is required, whose keys represent the %s block's %s.", typeName, labelName), - Subject: v.StartRange().Ptr(), - }) - return - } - if len(ov.Attrs) == 0 { + jsonAttrs, attrDiags := b.collectDeepAttrs(v, &labelName) + diags = append(diags, attrDiags...) + + if len(jsonAttrs) == 0 { diags = diags.Append(&hcl.Diagnostic{ Severity: hcl.DiagError, Summary: "Missing block label", @@ -187,7 +246,8 @@ func (b *body) unpackBlock(v node, typeName string, typeRange *hcl.Range, labels } labelsUsed := append(labelsUsed, "") labelRanges := append(labelRanges, hcl.Range{}) - for pk, p := range ov.Attrs { + for _, p := range jsonAttrs { + pk := p.Name labelsUsed[len(labelsUsed)-1] = pk labelRanges[len(labelRanges)-1] = p.NameRange diags = append(diags, b.unpackBlock(p.Value, typeName, typeRange, labelsLeft[1:], labelsUsed, labelRanges, blocks)...) @@ -212,7 +272,7 @@ func (b *body) unpackBlock(v node, typeName string, typeRange *hcl.Range, labels Type: typeName, Labels: labels, Body: &body{ - obj: tv, + val: tv, }, DefRange: tv.OpenRange, @@ -222,22 +282,11 @@ func (b *body) unpackBlock(v node, typeName string, typeRange *hcl.Range, labels case *arrayVal: // Multiple instances of the block for _, av := range tv.Values { - ov, ok := av.(*objectVal) - if !ok { - diags = diags.Append(&hcl.Diagnostic{ - Severity: hcl.DiagError, - Summary: "Incorrect JSON value type", - Detail: fmt.Sprintf("A JSON object is required, representing the contents of a %q block.", typeName), - Subject: v.StartRange().Ptr(), - }) - continue - } - *blocks = append(*blocks, &hcl.Block{ Type: typeName, Labels: labels, Body: &body{ - obj: ov, + val: av, // might be mistyped; we'll find out when content is requested for this body }, DefRange: tv.OpenRange, @@ -256,6 +305,74 @@ func (b *body) unpackBlock(v node, typeName string, typeRange *hcl.Range, labels return } +// collectDeepAttrs takes either a single object or an array of objects and +// flattens it into a list of object attributes, collecting attributes from +// all of the objects in a given array. +// +// Ordering is preserved, so a list of objects that each have one property +// will result in those properties being returned in the same order as the +// objects appeared in the array. +// +// This is appropriate for use only for objects representing bodies or labels +// within a block. +// +// The labelName argument, if non-null, is used to tailor returned error +// messages to refer to block labels rather than attributes and child blocks. +// It has no other effect. +func (b *body) collectDeepAttrs(v node, labelName *string) ([]*objectAttr, hcl.Diagnostics) { + var diags hcl.Diagnostics + var attrs []*objectAttr + + switch tv := v.(type) { + + case *objectVal: + attrs = append(attrs, tv.Attrs...) + + case *arrayVal: + for _, ev := range tv.Values { + switch tev := ev.(type) { + case *objectVal: + attrs = append(attrs, tev.Attrs...) + default: + if labelName != nil { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Incorrect JSON value type", + Detail: fmt.Sprintf("A JSON object is required here, to specify %s labels for this block.", *labelName), + Subject: ev.StartRange().Ptr(), + }) + } else { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Incorrect JSON value type", + Detail: "A JSON object is required here, to define attributes and child blocks.", + Subject: ev.StartRange().Ptr(), + }) + } + } + } + + default: + if labelName != nil { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Incorrect JSON value type", + Detail: fmt.Sprintf("Either a JSON object or JSON array of objects is required here, to specify %s labels for this block.", *labelName), + Subject: v.StartRange().Ptr(), + }) + } else { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Incorrect JSON value type", + Detail: "Either a JSON object or JSON array of objects is required here, to define attributes and child blocks.", + Subject: v.StartRange().Ptr(), + }) + } + } + + return attrs, diags +} + func (e *expression) Value(ctx *hcl.EvalContext) (cty.Value, hcl.Diagnostics) { switch v := e.src.(type) { case *stringVal: @@ -301,12 +418,75 @@ func (e *expression) Value(ctx *hcl.EvalContext) (cty.Value, hcl.Diagnostics) { } return cty.TupleVal(vals), nil case *objectVal: + var diags hcl.Diagnostics attrs := map[string]cty.Value{} - for name, jsonAttr := range v.Attrs { - val, _ := (&expression{src: jsonAttr.Value}).Value(ctx) - attrs[name] = val + attrRanges := map[string]hcl.Range{} + known := true + for _, jsonAttr := range v.Attrs { + // In this one context we allow keys to contain interpolation + // experessions too, assuming we're evaluating in interpolation + // mode. This achieves parity with the native syntax where + // object expressions can have dynamic keys, while block contents + // may not. + name, nameDiags := (&expression{src: &stringVal{ + Value: jsonAttr.Name, + SrcRange: jsonAttr.NameRange, + }}).Value(ctx) + val, valDiags := (&expression{src: jsonAttr.Value}).Value(ctx) + diags = append(diags, nameDiags...) + diags = append(diags, valDiags...) + + var err error + name, err = convert.Convert(name, cty.String) + if err != nil { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid object key expression", + Detail: fmt.Sprintf("Cannot use this expression as an object key: %s.", err), + Subject: &jsonAttr.NameRange, + }) + continue + } + if name.IsNull() { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid object key expression", + Detail: "Cannot use null value as an object key.", + Subject: &jsonAttr.NameRange, + }) + continue + } + if !name.IsKnown() { + // This is a bit of a weird case, since our usual rules require + // us to tolerate unknowns and just represent the result as + // best we can but if we don't know the key then we can't + // know the type of our object at all, and thus we must turn + // the whole thing into cty.DynamicVal. This is consistent with + // how this situation is handled in the native syntax. + // We'll keep iterating so we can collect other errors in + // subsequent attributes. + known = false + continue + } + nameStr := name.AsString() + if _, defined := attrs[nameStr]; defined { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Duplicate object attribute", + Detail: fmt.Sprintf("An attribute named %q was already defined at %s.", nameStr, attrRanges[nameStr]), + Subject: &jsonAttr.NameRange, + }) + continue + } + attrs[nameStr] = val + attrRanges[nameStr] = jsonAttr.NameRange } - return cty.ObjectVal(attrs), nil + if !known { + // We encountered an unknown key somewhere along the way, so + // we can't know what our type will eventually be. + return cty.DynamicVal, diags + } + return cty.ObjectVal(attrs), diags default: // Default to DynamicVal so that ASTs containing invalid nodes can // still be partially-evaluated. @@ -378,6 +558,29 @@ func (e *expression) AsTraversal() hcl.Traversal { } } +// Implementation for hcl.ExprCall. +func (e *expression) ExprCall() *hcl.StaticCall { + // In JSON-based syntax a static call is given as a string containing + // an expression in the native syntax that also supports ExprCall. + + switch v := e.src.(type) { + case *stringVal: + expr, diags := hclsyntax.ParseExpression([]byte(v.Value), v.SrcRange.Filename, v.SrcRange.Start) + if diags.HasErrors() { + return nil + } + + call, diags := hcl.ExprCall(expr) + if diags.HasErrors() { + return nil + } + + return call + default: + return nil + } +} + // Implementation for hcl.ExprList. func (e *expression) ExprList() []hcl.Expression { switch v := e.src.(type) { @@ -391,3 +594,23 @@ func (e *expression) ExprList() []hcl.Expression { return nil } } + +// Implementation for hcl.ExprMap. +func (e *expression) ExprMap() []hcl.KeyValuePair { + switch v := e.src.(type) { + case *objectVal: + ret := make([]hcl.KeyValuePair, len(v.Attrs)) + for i, jsonAttr := range v.Attrs { + ret[i] = hcl.KeyValuePair{ + Key: &expression{src: &stringVal{ + Value: jsonAttr.Name, + SrcRange: jsonAttr.NameRange, + }}, + Value: &expression{src: jsonAttr.Value}, + } + } + return ret + default: + return nil + } +} diff --git a/vendor/github.com/hashicorp/hcl2/hcl/json/tokentype_string.go b/vendor/github.com/hashicorp/hcl2/hcl/json/tokentype_string.go index 8773235fe..bbcce5b30 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/json/tokentype_string.go +++ b/vendor/github.com/hashicorp/hcl2/hcl/json/tokentype_string.go @@ -2,7 +2,7 @@ package json -import "fmt" +import "strconv" const _tokenType_name = "tokenInvalidtokenCommatokenColontokenEqualstokenKeywordtokenNumbertokenStringtokenBrackOtokenBrackCtokenBraceOtokenBraceCtokenEOF" @@ -25,5 +25,5 @@ func (i tokenType) String() string { if str, ok := _tokenType_map[i]; ok { return str } - return fmt.Sprintf("tokenType(%d)", i) + return "tokenType(" + strconv.FormatInt(int64(i), 10) + ")" } diff --git a/vendor/github.com/hashicorp/hcl2/hcl/spec.md b/vendor/github.com/hashicorp/hcl2/hcl/spec.md index e50bd73a2..58257bfe4 100644 --- a/vendor/github.com/hashicorp/hcl2/hcl/spec.md +++ b/vendor/github.com/hashicorp/hcl2/hcl/spec.md @@ -616,6 +616,48 @@ Two tuple types of the same length unify constructing a new type of the same length whose elements are the unification of the corresponding elements in the two input types. +## Static Analysis + +In most applications, full expression evaluation is sufficient for understanding +the provided configuration. However, some specialized applications require more +direct access to the physical structures in the expressions, which can for +example allow the construction of new language constructs in terms of the +existing syntax elements. + +Since static analysis analyses the physical structure of configuration, the +details will vary depending on syntax. Each syntax must decide which of its +physical structures corresponds to the following analyses, producing error +diagnostics if they are applied to inappropriate expressions. + +The following are the required static analysis functions: + +* **Static List**: Require list/tuple construction syntax to be used and + return a list of expressions for each of the elements given. + +* **Static Map**: Require map/object construction syntax to be used and + return a list of key/value pairs -- both expressions -- for each of + the elements given. The usual constraint that a map key must be a string + must not apply to this analysis, thus allowing applications to interpret + arbitrary keys as they see fit. + +* **Static Call**: Require function call syntax to be used and return an + object describing the called function name and a list of expressions + representing each of the call arguments. + +* **Static Traversal**: Require a reference to a symbol in the variable + scope and return a description of the path from the root scope to the + accessed attribute or index. + +The intent of a calling application using these features is to require a more +rigid interpretation of the configuration than in expression evaluation. +Syntax implementations should make use of the extra contextual information +provided in order to make an intuitive mapping onto the constructs of the +underlying syntax, possibly interpreting the expression slightly differently +than it would be interpreted in normal evaluation. + +Each syntax must define which of its expression elements each of the analyses +above applies to, and how those analyses behave given those expression elements. + ## Implementation Considerations Implementations of this specification are free to adopt any strategy that @@ -639,6 +681,9 @@ are implemented separately for each syntax: * Providing an evaluation function for all possible expressions that produces a value given an evaluation context. +* Providing the static analysis functionality described above in a manner that + makes sense within the convention of the syntax. + The suggested implementation strategy is to use an implementation language's closest concept to an _abstract type_, _virtual type_ or _interface type_ to represent both Body and Expression. Each language-specific implementation diff --git a/vendor/github.com/zclconf/go-cty/LICENSE b/vendor/github.com/zclconf/go-cty/LICENSE new file mode 100644 index 000000000..d6503b555 --- /dev/null +++ b/vendor/github.com/zclconf/go-cty/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017-2018 Martin Atkins + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/zclconf/go-cty/cty/convert/conversion.go b/vendor/github.com/zclconf/go-cty/cty/convert/conversion.go index b064bfb7d..7bfcc081c 100644 --- a/vendor/github.com/zclconf/go-cty/cty/convert/conversion.go +++ b/vendor/github.com/zclconf/go-cty/cty/convert/conversion.go @@ -72,6 +72,27 @@ func getConversionKnown(in cty.Type, out cty.Type, unsafe bool) conversion { } return conversionCollectionToList(outEty, convEty) + case out.IsSetType() && (in.IsListType() || in.IsSetType()): + if in.IsListType() && !unsafe { + // Conversion from list to map is unsafe because it will lose + // information: the ordering will not be preserved, and any + // duplicate elements will be conflated. + return nil + } + inEty := in.ElementType() + outEty := out.ElementType() + convEty := getConversion(inEty, outEty, unsafe) + if inEty.Equals(outEty) { + // This indicates that we're converting from set to list with + // the same element type, so we don't need an element converter. + return conversionCollectionToSet(outEty, nil) + } + + if convEty == nil { + return nil + } + return conversionCollectionToSet(outEty, convEty) + case out.IsListType() && in.IsTupleType(): outEty := out.ElementType() return conversionTupleToList(in, outEty, unsafe) diff --git a/vendor/github.com/zclconf/go-cty/cty/convert/conversion_collection.go b/vendor/github.com/zclconf/go-cty/cty/convert/conversion_collection.go index a6a4c35d7..eace85d3d 100644 --- a/vendor/github.com/zclconf/go-cty/cty/convert/conversion_collection.go +++ b/vendor/github.com/zclconf/go-cty/cty/convert/conversion_collection.go @@ -44,6 +44,46 @@ func conversionCollectionToList(ety cty.Type, conv conversion) conversion { } } +// conversionCollectionToSet returns a conversion that will apply the given +// conversion to all of the elements of a collection (something that supports +// ForEachElement and LengthInt) and then returns the result as a set. +// +// "conv" can be nil if the elements are expected to already be of the +// correct type and just need to be re-wrapped into a set. (For example, +// if we're converting from a list into a set of the same element type.) +func conversionCollectionToSet(ety cty.Type, conv conversion) conversion { + return func(val cty.Value, path cty.Path) (cty.Value, error) { + elems := make([]cty.Value, 0, val.LengthInt()) + i := int64(0) + path = append(path, nil) + it := val.ElementIterator() + for it.Next() { + _, val := it.Element() + var err error + + path[len(path)-1] = cty.IndexStep{ + Key: cty.NumberIntVal(i), + } + + if conv != nil { + val, err = conv(val, path) + if err != nil { + return cty.NilVal, err + } + } + elems = append(elems, val) + + i++ + } + + if len(elems) == 0 { + return cty.SetValEmpty(ety), nil + } + + return cty.SetVal(elems), nil + } +} + // conversionTupleToList returns a conversion that will take a value of the // given tuple type and return a list of the given element type. // diff --git a/vendor/github.com/zclconf/go-cty/cty/convert/conversion_primitive.go b/vendor/github.com/zclconf/go-cty/cty/convert/conversion_primitive.go index 399ff9a59..e563ee348 100644 --- a/vendor/github.com/zclconf/go-cty/cty/convert/conversion_primitive.go +++ b/vendor/github.com/zclconf/go-cty/cty/convert/conversion_primitive.go @@ -30,7 +30,7 @@ var primitiveConversionsSafe = map[cty.Type]map[cty.Type]conversion{ var primitiveConversionsUnsafe = map[cty.Type]map[cty.Type]conversion{ cty.String: { cty.Number: func(val cty.Value, path cty.Path) (cty.Value, error) { - f, _, err := (&big.Float{}).Parse(val.AsString(), 10) + f, _, err := big.ParseFloat(val.AsString(), 10, 512, big.ToNearestEven) if err != nil { return cty.NilVal, path.NewErrorf("a number is required") } diff --git a/vendor/github.com/zclconf/go-cty/cty/function/doc.go b/vendor/github.com/zclconf/go-cty/cty/function/doc.go index ac1dd8ce7..393b3110b 100644 --- a/vendor/github.com/zclconf/go-cty/cty/function/doc.go +++ b/vendor/github.com/zclconf/go-cty/cty/function/doc.go @@ -1,6 +1,6 @@ // Package function builds on the functionality of cty by modeling functions // that operate on cty Values. // -// Functions are, at their call, Go anonymous functions. However, this package +// Functions are, at their core, Go anonymous functions. However, this package // wraps around them utility functions for parameter type checking, etc. package function diff --git a/vendor/github.com/zclconf/go-cty/cty/function/stdlib/csv.go b/vendor/github.com/zclconf/go-cty/cty/function/stdlib/csv.go new file mode 100644 index 000000000..5070a5adf --- /dev/null +++ b/vendor/github.com/zclconf/go-cty/cty/function/stdlib/csv.go @@ -0,0 +1,93 @@ +package stdlib + +import ( + "encoding/csv" + "fmt" + "io" + "strings" + + "github.com/zclconf/go-cty/cty" + "github.com/zclconf/go-cty/cty/function" +) + +var CSVDecodeFunc = function.New(&function.Spec{ + Params: []function.Parameter{ + { + Name: "str", + Type: cty.String, + }, + }, + Type: func(args []cty.Value) (cty.Type, error) { + str := args[0] + if !str.IsKnown() { + return cty.DynamicPseudoType, nil + } + + r := strings.NewReader(str.AsString()) + cr := csv.NewReader(r) + headers, err := cr.Read() + if err == io.EOF { + return cty.DynamicPseudoType, fmt.Errorf("missing header line") + } + if err != nil { + return cty.DynamicPseudoType, err + } + + atys := make(map[string]cty.Type, len(headers)) + for _, name := range headers { + if _, exists := atys[name]; exists { + return cty.DynamicPseudoType, fmt.Errorf("duplicate column name %q", name) + } + atys[name] = cty.String + } + return cty.List(cty.Object(atys)), nil + }, + Impl: func(args []cty.Value, retType cty.Type) (cty.Value, error) { + ety := retType.ElementType() + atys := ety.AttributeTypes() + str := args[0] + r := strings.NewReader(str.AsString()) + cr := csv.NewReader(r) + cr.FieldsPerRecord = len(atys) + + // Read the header row first, since that'll tell us which indices + // map to which attribute names. + headers, err := cr.Read() + if err != nil { + return cty.DynamicVal, err + } + + var rows []cty.Value + for { + cols, err := cr.Read() + if err == io.EOF { + break + } + if err != nil { + return cty.DynamicVal, err + } + + vals := make(map[string]cty.Value, len(cols)) + for i, str := range cols { + name := headers[i] + vals[name] = cty.StringVal(str) + } + rows = append(rows, cty.ObjectVal(vals)) + } + + if len(rows) == 0 { + return cty.ListValEmpty(ety), nil + } + return cty.ListVal(rows), nil + }, +}) + +// CSVDecode parses the given CSV (RFC 4180) string and, if it is valid, +// returns a list of objects representing the rows. +// +// The result is always a list of some object type. The first row of the +// input is used to determine the object attributes, and subsequent rows +// determine the values of those attributes. +func CSVDecode(str cty.Value) (cty.Value, error) { + return CSVDecodeFunc.Call([]cty.Value{str}) +} diff --git a/vendor/github.com/zclconf/go-cty/cty/function/stdlib/format.go b/vendor/github.com/zclconf/go-cty/cty/function/stdlib/format.go new file mode 100644 index 000000000..fb24f2046 --- /dev/null +++ b/vendor/github.com/zclconf/go-cty/cty/function/stdlib/format.go @@ -0,0 +1,496 @@ +package stdlib + +import ( + "bytes" + "fmt" + "math/big" + "strings" + + "github.com/apparentlymart/go-textseg/textseg" + + "github.com/zclconf/go-cty/cty" + "github.com/zclconf/go-cty/cty/convert" + "github.com/zclconf/go-cty/cty/function" + "github.com/zclconf/go-cty/cty/json" +) + +//go:generate ragel -Z format_fsm.rl +//go:generate gofmt -w format_fsm.go + +var FormatFunc = function.New(&function.Spec{ + Params: []function.Parameter{ + { + Name: "format", + Type: cty.String, + }, + }, + VarParam: &function.Parameter{ + Name: "args", + Type: cty.DynamicPseudoType, + AllowNull: true, + }, + Type: function.StaticReturnType(cty.String), + Impl: func(args []cty.Value, retType cty.Type) (cty.Value, error) { + for _, arg := range args[1:] { + if !arg.IsWhollyKnown() { + // We require all nested values to be known because the only + // thing we can do for a collection/structural type is print + // it as JSON and that requires it to be wholly known. + return cty.UnknownVal(cty.String), nil + } + } + str, err := formatFSM(args[0].AsString(), args[1:]) + return cty.StringVal(str), err + }, +}) + +var FormatListFunc = function.New(&function.Spec{ + Params: []function.Parameter{ + { + Name: "format", + Type: cty.String, + }, + }, + VarParam: &function.Parameter{ + Name: "args", + Type: cty.DynamicPseudoType, + AllowNull: true, + AllowUnknown: true, + }, + Type: function.StaticReturnType(cty.List(cty.String)), + Impl: func(args []cty.Value, retType cty.Type) (cty.Value, error) { + fmtVal := args[0] + args = args[1:] + + if len(args) == 0 { + // With no arguments, this function is equivalent to Format, but + // returning a single-element list result. + result, err := Format(fmtVal, args...) + return cty.ListVal([]cty.Value{result}), err + } + + fmtStr := fmtVal.AsString() + + // Each of our arguments will be dealt with either as an iterator + // or as a single value. Iterators are used for sequence-type values + // (lists, sets, tuples) while everything else is treated as a + // single value. The sequences we iterate over are required to be + // all the same length. + iterLen := -1 + lenChooser := -1 + iterators := make([]cty.ElementIterator, len(args)) + singleVals := make([]cty.Value, len(args)) + for i, arg := range args { + argTy := arg.Type() + switch { + case (argTy.IsListType() || argTy.IsSetType() || argTy.IsTupleType()) && !arg.IsNull(): + thisLen := arg.LengthInt() + if iterLen == -1 { + iterLen = thisLen + lenChooser = i + } else { + if thisLen != iterLen { + return cty.NullVal(cty.List(cty.String)), function.NewArgErrorf( + i+1, + "argument %d has length %d, which is inconsistent with argument %d of length %d", + i+1, thisLen, + lenChooser+1, iterLen, + ) + } + } + iterators[i] = arg.ElementIterator() + default: + singleVals[i] = arg + } + } + + if iterLen == 0 { + // If our sequences are all empty then our result must be empty. + return cty.ListValEmpty(cty.String), nil + } + + if iterLen == -1 { + // If we didn't encounter any iterables at all then we're going + // to just do one iteration with items from singleVals. + iterLen = 1 + } + + ret := make([]cty.Value, 0, iterLen) + fmtArgs := make([]cty.Value, len(iterators)) + Results: + for iterIdx := 0; iterIdx < iterLen; iterIdx++ { + + // Construct our arguments for a single format call + for i := range fmtArgs { + switch { + case iterators[i] != nil: + iterator := iterators[i] + iterator.Next() + _, val := iterator.Element() + fmtArgs[i] = val + default: + fmtArgs[i] = singleVals[i] + } + + // If any of the arguments to this call would be unknown then + // this particular result is unknown, but we'll keep going + // to see if any other iterations can produce known values. + if !fmtArgs[i].IsWhollyKnown() { + // We require all nested values to be known because the only + // thing we can do for a collection/structural type is print + // it as JSON and that requires it to be wholly known. + ret = append(ret, cty.UnknownVal(cty.String)) + continue Results + } + } + + str, err := formatFSM(fmtStr, fmtArgs) + if err != nil { + return cty.NullVal(cty.List(cty.String)), fmt.Errorf( + "error on format iteration %d: %s", iterIdx, err, + ) + } + + ret = append(ret, cty.StringVal(str)) + } + + return cty.ListVal(ret), nil + }, +}) + +// Format produces a string representation of zero or more values using a +// format string similar to the "printf" function in C. +// +// It supports the following "verbs": +// +// %% Literal percent sign, consuming no value +// %v A default formatting of the value based on type, as described below. +// %#v JSON serialization of the value +// %t Converts to boolean and then produces "true" or "false" +// %b Converts to number, requires integer, produces binary representation +// %d Converts to number, requires integer, produces decimal representation +// %o Converts to number, requires integer, produces octal representation +// %x Converts to number, requires integer, produces hexadecimal representation +// with lowercase letters +// %X Like %x but with uppercase letters +// %e Converts to number, produces scientific notation like -1.234456e+78 +// %E Like %e but with an uppercase "E" representing the exponent +// %f Converts to number, produces decimal representation with fractional +// part but no exponent, like 123.456 +// %g %e for large exponents or %f otherwise +// %G %E for large exponents or %f otherwise +// %s Converts to string and produces the string's characters +// %q Converts to string and produces JSON-quoted string representation, +// like %v. +// +// The default format selections made by %v are: +// +// string %s +// number %g +// bool %t +// other %#v +// +// Null values produce the literal keyword "null" for %v and %#v, and produce +// an error otherwise. +// +// Width is specified by an optional decimal number immediately preceding the +// verb letter. If absent, the width is whatever is necessary to represent the +// value. Precision is specified after the (optional) width by a period +// followed by a decimal number. If no period is present, a default precision +// is used. A period with no following number is invalid. +// For examples: +// +// %f default width, default precision +// %9f width 9, default precision +// %.2f default width, precision 2 +// %9.2f width 9, precision 2 +// +// Width and precision are measured in unicode characters (grapheme clusters). +// +// For most values, width is the minimum number of characters to output, +// padding the formatted form with spaces if necessary. +// +// For strings, precision limits the length of the input to be formatted (not +// the size of the output), truncating if necessary. +// +// For numbers, width sets the minimum width of the field and precision sets +// the number of places after the decimal, if appropriate, except that for +// %g/%G precision sets the total number of significant digits. +// +// The following additional symbols can be used immediately after the percent +// introducer as flags: +// +// (a space) leave a space where the sign would be if number is positive +// + Include a sign for a number even if it is positive (numeric only) +// - Pad with spaces on the left rather than the right +// 0 Pad with zeros rather than spaces. +// +// Flag characters are ignored for verbs that do not support them. +// +// By default, % sequences consume successive arguments starting with the first. +// Introducing a [n] sequence immediately before the verb letter, where n is a +// decimal integer, explicitly chooses a particular value argument by its +// one-based index. Subsequent calls without an explicit index will then +// proceed with n+1, n+2, etc. +// +// An error is produced if the format string calls for an impossible conversion +// or accesses more values than are given. An error is produced also for +// an unsupported format verb. +func Format(format cty.Value, vals ...cty.Value) (cty.Value, error) { + args := make([]cty.Value, 0, len(vals)+1) + args = append(args, format) + args = append(args, vals...) + return FormatFunc.Call(args) +} + +// FormatList applies the same formatting behavior as Format, but accepts +// a mixture of list and non-list values as arguments. Any list arguments +// passed must have the same length, which dictates the length of the +// resulting list. +// +// Any non-list arguments are used repeatedly for each iteration over the +// list arguments. The list arguments are iterated in order by key, so +// corresponding items are formatted together. +func FormatList(format cty.Value, vals ...cty.Value) (cty.Value, error) { + args := make([]cty.Value, 0, len(vals)+1) + args = append(args, format) + args = append(args, vals...) + return FormatListFunc.Call(args) +} + +type formatVerb struct { + Raw string + Offset int + + ArgNum int + Mode rune + + Zero bool + Sharp bool + Plus bool + Minus bool + Space bool + + HasPrec bool + Prec int + + HasWidth bool + Width int +} + +// formatAppend is called by formatFSM (generated by format_fsm.rl) for each +// formatting sequence that is encountered. +func formatAppend(verb *formatVerb, buf *bytes.Buffer, args []cty.Value) error { + argIdx := verb.ArgNum - 1 + if argIdx >= len(args) { + return fmt.Errorf( + "not enough arguments for %q at %d: need index %d but have %d total", + verb.Raw, verb.Offset, + verb.ArgNum, len(args), + ) + } + arg := args[argIdx] + + if verb.Mode != 'v' && arg.IsNull() { + return fmt.Errorf("unsupported value for %q at %d: null value cannot be formatted", verb.Raw, verb.Offset) + } + + // Normalize to make some things easier for downstream formatters + if !verb.HasWidth { + verb.Width = -1 + } + if !verb.HasPrec { + verb.Prec = -1 + } + + // For our first pass we'll ensure the verb is supported and then fan + // out to other functions based on what conversion is needed. + switch verb.Mode { + + case 'v': + return formatAppendAsIs(verb, buf, arg) + + case 't': + return formatAppendBool(verb, buf, arg) + + case 'b', 'd', 'o', 'x', 'X', 'e', 'E', 'f', 'g', 'G': + return formatAppendNumber(verb, buf, arg) + + case 's', 'q': + return formatAppendString(verb, buf, arg) + + default: + return fmt.Errorf("unsupported format verb %q in %q at offset %d", verb.Mode, verb.Raw, verb.Offset) + } +} + +func formatAppendAsIs(verb *formatVerb, buf *bytes.Buffer, arg cty.Value) error { + + if !verb.Sharp && !arg.IsNull() { + // Unless the caller overrode it with the sharp flag, we'll try some + // specialized formats before we fall back on JSON. + switch arg.Type() { + case cty.String: + fmted := arg.AsString() + fmted = formatPadWidth(verb, fmted) + buf.WriteString(fmted) + return nil + case cty.Number: + bf := arg.AsBigFloat() + fmted := bf.Text('g', -1) + fmted = formatPadWidth(verb, fmted) + buf.WriteString(fmted) + return nil + } + } + + jb, err := json.Marshal(arg, arg.Type()) + if err != nil { + return fmt.Errorf("unsupported value for %q at %d: %s", verb.Raw, verb.Offset, err) + } + fmted := formatPadWidth(verb, string(jb)) + buf.WriteString(fmted) + + return nil +} + +func formatAppendBool(verb *formatVerb, buf *bytes.Buffer, arg cty.Value) error { + var err error + arg, err = convert.Convert(arg, cty.Bool) + if err != nil { + return fmt.Errorf("unsupported value for %q at %d: %s", verb.Raw, verb.Offset, err) + } + + if arg.True() { + buf.WriteString("true") + } else { + buf.WriteString("false") + } + return nil +} + +func formatAppendNumber(verb *formatVerb, buf *bytes.Buffer, arg cty.Value) error { + var err error + arg, err = convert.Convert(arg, cty.Number) + if err != nil { + return fmt.Errorf("unsupported value for %q at %d: %s", verb.Raw, verb.Offset, err) + } + + switch verb.Mode { + case 'b', 'd', 'o', 'x', 'X': + return formatAppendInteger(verb, buf, arg) + default: + bf := arg.AsBigFloat() + + // For floats our format syntax is a subset of Go's, so it's + // safe for us to just lean on the existing Go implementation. + fmtstr := formatStripIndexSegment(verb.Raw) + fmted := fmt.Sprintf(fmtstr, bf) + buf.WriteString(fmted) + return nil + } +} + +func formatAppendInteger(verb *formatVerb, buf *bytes.Buffer, arg cty.Value) error { + bf := arg.AsBigFloat() + bi, acc := bf.Int(nil) + if acc != big.Exact { + return fmt.Errorf("unsupported value for %q at %d: an integer is required", verb.Raw, verb.Offset) + } + + // For integers our format syntax is a subset of Go's, so it's + // safe for us to just lean on the existing Go implementation. + fmtstr := formatStripIndexSegment(verb.Raw) + fmted := fmt.Sprintf(fmtstr, bi) + buf.WriteString(fmted) + return nil +} + +func formatAppendString(verb *formatVerb, buf *bytes.Buffer, arg cty.Value) error { + var err error + arg, err = convert.Convert(arg, cty.String) + if err != nil { + return fmt.Errorf("unsupported value for %q at %d: %s", verb.Raw, verb.Offset, err) + } + + // We _cannot_ directly use the Go fmt.Sprintf implementation for strings + // because it measures widths and precisions in runes rather than grapheme + // clusters. + + str := arg.AsString() + if verb.Prec > 0 { + strB := []byte(str) + pos := 0 + wanted := verb.Prec + for i := 0; i < wanted; i++ { + next := strB[pos:] + if len(next) == 0 { + // ran out of characters before we hit our max width + break + } + d, _, _ := textseg.ScanGraphemeClusters(strB[pos:], true) + pos += d + } + str = str[:pos] + } + + switch verb.Mode { + case 's': + fmted := formatPadWidth(verb, str) + buf.WriteString(fmted) + case 'q': + jb, err := json.Marshal(cty.StringVal(str), cty.String) + if err != nil { + // Should never happen, since we know this is a known, non-null string + panic(fmt.Errorf("failed to marshal %#v as JSON: %s", arg, err)) + } + fmted := formatPadWidth(verb, string(jb)) + buf.WriteString(fmted) + default: + // Should never happen because formatAppend should've already validated + panic(fmt.Errorf("invalid string formatting mode %q", verb.Mode)) + } + return nil +} + +func formatPadWidth(verb *formatVerb, fmted string) string { + if verb.Width < 0 { + return fmted + } + + // Safe to ignore errors because ScanGraphemeClusters cannot produce errors + givenLen, _ := textseg.TokenCount([]byte(fmted), textseg.ScanGraphemeClusters) + wantLen := verb.Width + if givenLen >= wantLen { + return fmted + } + + padLen := wantLen - givenLen + padChar := " " + if verb.Zero { + padChar = "0" + } + pads := strings.Repeat(padChar, padLen) + + if verb.Minus { + return fmted + pads + } + return pads + fmted +} + +// formatStripIndexSegment strips out any [nnn] segment present in a verb +// string so that we can pass it through to Go's fmt.Sprintf with a single +// argument. This is used in cases where we're just leaning on Go's formatter +// because it's a superset of ours. +func formatStripIndexSegment(rawVerb string) string { + // We assume the string has already been validated here, since we should + // only be using this function with strings that were accepted by our + // scanner in formatFSM. + start := strings.Index(rawVerb, "[") + end := strings.Index(rawVerb, "]") + if start == -1 || end == -1 { + return rawVerb + } + + return rawVerb[:start] + rawVerb[end+1:] +} diff --git a/vendor/github.com/zclconf/go-cty/cty/function/stdlib/format_fsm.go b/vendor/github.com/zclconf/go-cty/cty/function/stdlib/format_fsm.go new file mode 100644 index 000000000..86876ba9f --- /dev/null +++ b/vendor/github.com/zclconf/go-cty/cty/function/stdlib/format_fsm.go @@ -0,0 +1,358 @@ +// line 1 "format_fsm.rl" +// This file is generated from format_fsm.rl. DO NOT EDIT. + +// line 5 "format_fsm.rl" + +package stdlib + +import ( + "bytes" + "fmt" + "unicode/utf8" + + "github.com/zclconf/go-cty/cty" +) + +// line 20 "format_fsm.go" +var _formatfsm_actions []byte = []byte{ + 0, 1, 0, 1, 1, 1, 2, 1, 4, + 1, 5, 1, 6, 1, 7, 1, 8, + 1, 9, 1, 10, 1, 11, 1, 14, + 1, 16, 1, 17, 1, 18, 2, 3, + 4, 2, 12, 10, 2, 12, 16, 2, + 12, 18, 2, 13, 14, 2, 15, 10, + 2, 15, 18, +} + +var _formatfsm_key_offsets []byte = []byte{ + 0, 0, 14, 27, 34, 36, 39, 43, + 51, +} + +var _formatfsm_trans_keys []byte = []byte{ + 32, 35, 37, 43, 45, 46, 48, 91, + 49, 57, 65, 90, 97, 122, 32, 35, + 43, 45, 46, 48, 91, 49, 57, 65, + 90, 97, 122, 91, 48, 57, 65, 90, + 97, 122, 49, 57, 93, 48, 57, 65, + 90, 97, 122, 46, 91, 48, 57, 65, + 90, 97, 122, 37, +} + +var _formatfsm_single_lengths []byte = []byte{ + 0, 8, 7, 1, 0, 1, 0, 2, + 1, +} + +var _formatfsm_range_lengths []byte = []byte{ + 0, 3, 3, 3, 1, 1, 2, 3, + 0, +} + +var _formatfsm_index_offsets []byte = []byte{ + 0, 0, 12, 23, 28, 30, 33, 36, + 42, +} + +var _formatfsm_indicies []byte = []byte{ + 1, 2, 3, 4, 5, 6, 7, 10, + 8, 9, 9, 0, 1, 2, 4, 5, + 6, 7, 10, 8, 9, 9, 0, 13, + 11, 12, 12, 0, 14, 0, 15, 14, + 0, 9, 9, 0, 16, 19, 17, 18, + 18, 0, 20, 3, +} + +var _formatfsm_trans_targs []byte = []byte{ + 0, 2, 2, 8, 2, 2, 3, 2, + 7, 8, 4, 3, 8, 4, 5, 6, + 3, 7, 8, 4, 1, +} + +var _formatfsm_trans_actions []byte = []byte{ + 7, 17, 9, 3, 15, 13, 25, 11, + 43, 29, 19, 27, 49, 46, 21, 0, + 37, 23, 40, 34, 1, +} + +var _formatfsm_eof_actions []byte = []byte{ + 0, 31, 31, 31, 31, 31, 31, 31, + 5, +} + +const formatfsm_start int = 8 +const formatfsm_first_final int = 8 +const formatfsm_error int = 0 + +const formatfsm_en_main int = 8 + +// line 19 "format_fsm.rl" + +func formatFSM(format string, a []cty.Value) (string, error) { + var buf bytes.Buffer + data := format + nextArg := 1 // arg numbers are 1-based + var verb formatVerb + + // line 153 "format_fsm.rl" + + // Ragel state + p := 0 // "Pointer" into data + pe := len(data) // End-of-data "pointer" + cs := 0 // current state (will be initialized by ragel-generated code) + ts := 0 + te := 0 + eof := pe + + // Keep Go compiler happy even if generated code doesn't use these + _ = ts + _ = te + _ = eof + + // line 121 "format_fsm.go" + { + cs = formatfsm_start + } + + // line 126 "format_fsm.go" + { + var _klen int + var _trans int + var _acts int + var _nacts uint + var _keys int + if p == pe { + goto _test_eof + } + if cs == 0 { + goto _out + } + _resume: + _keys = int(_formatfsm_key_offsets[cs]) + _trans = int(_formatfsm_index_offsets[cs]) + + _klen = int(_formatfsm_single_lengths[cs]) + if _klen > 0 { + _lower := int(_keys) + var _mid int + _upper := int(_keys + _klen - 1) + for { + if _upper < _lower { + break + } + + _mid = _lower + ((_upper - _lower) >> 1) + switch { + case data[p] < _formatfsm_trans_keys[_mid]: + _upper = _mid - 1 + case data[p] > _formatfsm_trans_keys[_mid]: + _lower = _mid + 1 + default: + _trans += int(_mid - int(_keys)) + goto _match + } + } + _keys += _klen + _trans += _klen + } + + _klen = int(_formatfsm_range_lengths[cs]) + if _klen > 0 { + _lower := int(_keys) + var _mid int + _upper := int(_keys + (_klen << 1) - 2) + for { + if _upper < _lower { + break + } + + _mid = _lower + (((_upper - _lower) >> 1) & ^1) + switch { + case data[p] < _formatfsm_trans_keys[_mid]: + _upper = _mid - 2 + case data[p] > _formatfsm_trans_keys[_mid+1]: + _lower = _mid + 2 + default: + _trans += int((_mid - int(_keys)) >> 1) + goto _match + } + } + _trans += _klen + } + + _match: + _trans = int(_formatfsm_indicies[_trans]) + cs = int(_formatfsm_trans_targs[_trans]) + + if _formatfsm_trans_actions[_trans] == 0 { + goto _again + } + + _acts = int(_formatfsm_trans_actions[_trans]) + _nacts = uint(_formatfsm_actions[_acts]) + _acts++ + for ; _nacts > 0; _nacts-- { + _acts++ + switch _formatfsm_actions[_acts-1] { + case 0: + // line 29 "format_fsm.rl" + + verb = formatVerb{ + ArgNum: nextArg, + Prec: -1, + Width: -1, + } + ts = p + + case 1: + // line 38 "format_fsm.rl" + + buf.WriteByte(data[p]) + + case 4: + // line 49 "format_fsm.rl" + + // We'll try to slurp a whole UTF-8 sequence here, to give the user + // better feedback. + r, _ := utf8.DecodeRuneInString(data[p:]) + return buf.String(), fmt.Errorf("unrecognized format character %q at offset %d", r, p) + + case 5: + // line 56 "format_fsm.rl" + + verb.Sharp = true + + case 6: + // line 59 "format_fsm.rl" + + verb.Zero = true + + case 7: + // line 62 "format_fsm.rl" + + verb.Minus = true + + case 8: + // line 65 "format_fsm.rl" + + verb.Plus = true + + case 9: + // line 68 "format_fsm.rl" + + verb.Space = true + + case 10: + // line 72 "format_fsm.rl" + + verb.ArgNum = 0 + + case 11: + // line 75 "format_fsm.rl" + + verb.ArgNum = (10 * verb.ArgNum) + (int(data[p]) - '0') + + case 12: + // line 79 "format_fsm.rl" + + verb.HasWidth = true + + case 13: + // line 82 "format_fsm.rl" + + verb.Width = 0 + + case 14: + // line 85 "format_fsm.rl" + + verb.Width = (10 * verb.Width) + (int(data[p]) - '0') + + case 15: + // line 89 "format_fsm.rl" + + verb.HasPrec = true + + case 16: + // line 92 "format_fsm.rl" + + verb.Prec = 0 + + case 17: + // line 95 "format_fsm.rl" + + verb.Prec = (10 * verb.Prec) + (int(data[p]) - '0') + + case 18: + // line 99 "format_fsm.rl" + + verb.Mode = rune(data[p]) + te = p + 1 + verb.Raw = data[ts:te] + verb.Offset = ts + + err := formatAppend(&verb, &buf, a) + if err != nil { + return buf.String(), err + } + nextArg = verb.ArgNum + 1 + + // line 324 "format_fsm.go" + } + } + + _again: + if cs == 0 { + goto _out + } + p++ + if p != pe { + goto _resume + } + _test_eof: + { + } + if p == eof { + __acts := _formatfsm_eof_actions[cs] + __nacts := uint(_formatfsm_actions[__acts]) + __acts++ + for ; __nacts > 0; __nacts-- { + __acts++ + switch _formatfsm_actions[__acts-1] { + case 2: + // line 42 "format_fsm.rl" + + case 3: + // line 45 "format_fsm.rl" + + return buf.String(), fmt.Errorf("invalid format string starting at offset %d", p) + + case 4: + // line 49 "format_fsm.rl" + + // We'll try to slurp a whole UTF-8 sequence here, to give the user + // better feedback. + r, _ := utf8.DecodeRuneInString(data[p:]) + return buf.String(), fmt.Errorf("unrecognized format character %q at offset %d", r, p) + + // line 363 "format_fsm.go" + } + } + } + + _out: + { + } + } + + // line 171 "format_fsm.rl" + + // If we fall out here without being in a final state then we've + // encountered something that the scanner can't match, which should + // be impossible (the scanner matches all bytes _somehow_) but we'll + // flag it anyway rather than just losing data from the end. + if cs < formatfsm_first_final { + return buf.String(), fmt.Errorf("extraneous characters beginning at offset %i", p) + } + + return buf.String(), nil +} diff --git a/vendor/github.com/zclconf/go-cty/cty/function/stdlib/format_fsm.rl b/vendor/github.com/zclconf/go-cty/cty/function/stdlib/format_fsm.rl new file mode 100644 index 000000000..85d43bb77 --- /dev/null +++ b/vendor/github.com/zclconf/go-cty/cty/function/stdlib/format_fsm.rl @@ -0,0 +1,182 @@ +// This file is generated from format_fsm.rl. DO NOT EDIT. +%%{ + # (except you are actually in scan_tokens.rl here, so edit away!) + machine formatfsm; +}%% + +package stdlib + +import ( + "bytes" + "fmt" + "unicode/utf8" + + "github.com/zclconf/go-cty/cty" +) + +%%{ + write data; +}%% + +func formatFSM(format string, a []cty.Value) (string, error) { + var buf bytes.Buffer + data := format + nextArg := 1 // arg numbers are 1-based + var verb formatVerb + + %%{ + + action begin { + verb = formatVerb{ + ArgNum: nextArg, + Prec: -1, + Width: -1, + } + ts = p + } + + action emit { + buf.WriteByte(fc); + } + + action finish_ok { + } + + action finish_err { + return buf.String(), fmt.Errorf("invalid format string starting at offset %d", p) + } + + action err_char { + // We'll try to slurp a whole UTF-8 sequence here, to give the user + // better feedback. + r, _ := utf8.DecodeRuneInString(data[p:]) + return buf.String(), fmt.Errorf("unrecognized format character %q at offset %d", r, p) + } + + action flag_sharp { + verb.Sharp = true + } + action flag_zero { + verb.Zero = true + } + action flag_minus { + verb.Minus = true + } + action flag_plus { + verb.Plus = true + } + action flag_space { + verb.Space = true + } + + action argidx_reset { + verb.ArgNum = 0 + } + action argidx_num { + verb.ArgNum = (10 * verb.ArgNum) + (int(fc) - '0') + } + + action has_width { + verb.HasWidth = true + } + action width_reset { + verb.Width = 0 + } + action width_num { + verb.Width = (10 * verb.Width) + (int(fc) - '0') + } + + action has_prec { + verb.HasPrec = true + } + action prec_reset { + verb.Prec = 0 + } + action prec_num { + verb.Prec = (10 * verb.Prec) + (int(fc) - '0') + } + + action mode { + verb.Mode = rune(fc) + te = p+1 + verb.Raw = data[ts:te] + verb.Offset = ts + + err := formatAppend(&verb, &buf, a) + if err != nil { + return buf.String(), err + } + nextArg = verb.ArgNum + 1 + } + + # a number that isn't zero and doesn't have a leading zero + num = [1-9] [0-9]*; + + flags = ( + '0' @flag_zero | + '#' @flag_sharp | + '-' @flag_minus | + '+' @flag_plus | + ' ' @flag_space + )*; + + argidx = (( + '[' (num $argidx_num) ']' + ) >argidx_reset)?; + + width = ( + ( num $width_num ) >width_reset %has_width + )?; + + precision = ( + ('.' ( digit* $prec_num )) >prec_reset %has_prec + )?; + + # We accept any letter here, but will be more picky in formatAppend + mode = ('a'..'z' | 'A'..'Z') @mode; + + fmt_verb = ( + '%' @begin + flags + width + precision + argidx + mode + ); + + main := ( + [^%] @emit | + '%%' @emit | + fmt_verb + )* @/finish_err %/finish_ok $!err_char; + + }%% + + // Ragel state + p := 0 // "Pointer" into data + pe := len(data) // End-of-data "pointer" + cs := 0 // current state (will be initialized by ragel-generated code) + ts := 0 + te := 0 + eof := pe + + // Keep Go compiler happy even if generated code doesn't use these + _ = ts + _ = te + _ = eof + + %%{ + write init; + write exec; + }%% + + // If we fall out here without being in a final state then we've + // encountered something that the scanner can't match, which should + // be impossible (the scanner matches all bytes _somehow_) but we'll + // flag it anyway rather than just losing data from the end. + if cs < formatfsm_first_final { + return buf.String(), fmt.Errorf("extraneous characters beginning at offset %i", p) + } + + return buf.String(), nil +} diff --git a/vendor/github.com/zclconf/go-cty/cty/function/stdlib/json.go b/vendor/github.com/zclconf/go-cty/cty/function/stdlib/json.go index 6288a1e74..07901c65d 100644 --- a/vendor/github.com/zclconf/go-cty/cty/function/stdlib/json.go +++ b/vendor/github.com/zclconf/go-cty/cty/function/stdlib/json.go @@ -17,6 +17,13 @@ var JSONEncodeFunc = function.New(&function.Spec{ Type: function.StaticReturnType(cty.String), Impl: func(args []cty.Value, retType cty.Type) (cty.Value, error) { val := args[0] + if !val.IsWhollyKnown() { + // We can't serialize unknowns, so if the value is unknown or + // contains any _nested_ unknowns then our result must be + // unknown. + return cty.UnknownVal(retType), nil + } + buf, err := json.Marshal(val, val.Type()) if err != nil { return cty.NilVal, err diff --git a/vendor/github.com/zclconf/go-cty/cty/function/stdlib/set.go b/vendor/github.com/zclconf/go-cty/cty/function/stdlib/set.go new file mode 100644 index 000000000..100078fdc --- /dev/null +++ b/vendor/github.com/zclconf/go-cty/cty/function/stdlib/set.go @@ -0,0 +1,195 @@ +package stdlib + +import ( + "fmt" + + "github.com/zclconf/go-cty/cty/convert" + + "github.com/zclconf/go-cty/cty" + "github.com/zclconf/go-cty/cty/function" +) + +var SetHasElementFunc = function.New(&function.Spec{ + Params: []function.Parameter{ + { + Name: "set", + Type: cty.Set(cty.DynamicPseudoType), + AllowDynamicType: true, + }, + { + Name: "elem", + Type: cty.DynamicPseudoType, + AllowDynamicType: true, + }, + }, + Type: function.StaticReturnType(cty.Bool), + Impl: func(args []cty.Value, retType cty.Type) (ret cty.Value, err error) { + return args[0].HasElement(args[1]), nil + }, +}) + +var SetUnionFunc = function.New(&function.Spec{ + Params: []function.Parameter{ + { + Name: "first_set", + Type: cty.Set(cty.DynamicPseudoType), + AllowDynamicType: true, + }, + }, + VarParam: &function.Parameter{ + Name: "other_sets", + Type: cty.Set(cty.DynamicPseudoType), + AllowDynamicType: true, + }, + Type: setOperationReturnType, + Impl: setOperationImpl(func(s1, s2 cty.ValueSet) cty.ValueSet { + return s1.Union(s2) + }), +}) + +var SetIntersectionFunc = function.New(&function.Spec{ + Params: []function.Parameter{ + { + Name: "first_set", + Type: cty.Set(cty.DynamicPseudoType), + AllowDynamicType: true, + }, + }, + VarParam: &function.Parameter{ + Name: "other_sets", + Type: cty.Set(cty.DynamicPseudoType), + AllowDynamicType: true, + }, + Type: setOperationReturnType, + Impl: setOperationImpl(func(s1, s2 cty.ValueSet) cty.ValueSet { + return s1.Intersection(s2) + }), +}) + +var SetSubtractFunc = function.New(&function.Spec{ + Params: []function.Parameter{ + { + Name: "a", + Type: cty.Set(cty.DynamicPseudoType), + AllowDynamicType: true, + }, + { + Name: "b", + Type: cty.Set(cty.DynamicPseudoType), + AllowDynamicType: true, + }, + }, + Type: setOperationReturnType, + Impl: setOperationImpl(func(s1, s2 cty.ValueSet) cty.ValueSet { + return s1.Subtract(s2) + }), +}) + +var SetSymmetricDifferenceFunc = function.New(&function.Spec{ + Params: []function.Parameter{ + { + Name: "first_set", + Type: cty.Set(cty.DynamicPseudoType), + AllowDynamicType: true, + }, + }, + VarParam: &function.Parameter{ + Name: "other_sets", + Type: cty.Set(cty.DynamicPseudoType), + AllowDynamicType: true, + }, + Type: setOperationReturnType, + Impl: setOperationImpl(func(s1, s2 cty.ValueSet) cty.ValueSet { + return s1.Subtract(s2) + }), +}) + +// SetHasElement determines whether the given set contains the given value as an +// element. +func SetHasElement(set cty.Value, elem cty.Value) (cty.Value, error) { + return SetHasElementFunc.Call([]cty.Value{set, elem}) +} + +// SetUnion returns a new set containing all of the elements from the given +// sets, which must have element types that can all be converted to some +// common type using the standard type unification rules. If conversion +// is not possible, an error is returned. +// +// The union operation is performed after type conversion, which may result +// in some previously-distinct values being conflated. +// +// At least one set must be provided. +func SetUnion(sets ...cty.Value) (cty.Value, error) { + return SetUnionFunc.Call(sets) +} + +// Intersection returns a new set containing the elements that exist +// in all of the given sets, which must have element types that can all be +// converted to some common type using the standard type unification rules. +// If conversion is not possible, an error is returned. +// +// The intersection operation is performed after type conversion, which may +// result in some previously-distinct values being conflated. +// +// At least one set must be provided. +func SetIntersection(sets ...cty.Value) (cty.Value, error) { + return SetIntersectionFunc.Call(sets) +} + +// SetSubtract returns a new set containing the elements from the +// first set that are not present in the second set. The sets must have +// element types that can both be converted to some common type using the +// standard type unification rules. If conversion is not possible, an error +// is returned. +// +// The subtract operation is performed after type conversion, which may +// result in some previously-distinct values being conflated. +func SetSubtract(a, b cty.Value) (cty.Value, error) { + return SetSubtractFunc.Call([]cty.Value{a, b}) +} + +// SetSymmetricDifference returns a new set containing elements that appear +// in any of the given sets but not multiple. The sets must have +// element types that can all be converted to some common type using the +// standard type unification rules. If conversion is not possible, an error +// is returned. +// +// The difference operation is performed after type conversion, which may +// result in some previously-distinct values being conflated. +func SetSymmetricDifference(sets ...cty.Value) (cty.Value, error) { + return SetSymmetricDifferenceFunc.Call(sets) +} + +func setOperationReturnType(args []cty.Value) (ret cty.Type, err error) { + var etys []cty.Type + for _, arg := range args { + etys = append(etys, arg.Type().ElementType()) + } + newEty, _ := convert.UnifyUnsafe(etys) + if newEty == cty.NilType { + return cty.NilType, fmt.Errorf("given sets must all have compatible element types") + } + return cty.Set(newEty), nil +} + +func setOperationImpl(f func(s1, s2 cty.ValueSet) cty.ValueSet) function.ImplFunc { + return func(args []cty.Value, retType cty.Type) (ret cty.Value, err error) { + first := args[0] + first, err = convert.Convert(first, retType) + if err != nil { + return cty.NilVal, function.NewArgError(0, err) + } + + set := first.AsValueSet() + for i, arg := range args[1:] { + arg, err := convert.Convert(arg, retType) + if err != nil { + return cty.NilVal, function.NewArgError(i+1, err) + } + + argSet := arg.AsValueSet() + set = f(set, argSet) + } + return cty.SetValFromValueSet(set), nil + } +} diff --git a/vendor/github.com/zclconf/go-cty/cty/function/unpredictable.go b/vendor/github.com/zclconf/go-cty/cty/function/unpredictable.go new file mode 100644 index 000000000..3495550af --- /dev/null +++ b/vendor/github.com/zclconf/go-cty/cty/function/unpredictable.go @@ -0,0 +1,31 @@ +package function + +import ( + "github.com/zclconf/go-cty/cty" +) + +// Unpredictable wraps a given function such that it retains the same arguments +// and type checking behavior but will return an unknown value when called. +// +// It is recommended that most functions be "pure", which is to say that they +// will always produce the same value given particular input. However, +// sometimes it is necessary to offer functions whose behavior depends on +// some external state, such as reading a file or determining the current time. +// In such cases, an unpredictable wrapper might be used to stand in for +// the function during some sort of prior "checking" phase in order to delay +// the actual effect until later. +// +// While Unpredictable can support a function that isn't pure in its +// implementation, it still expects a function to be pure in its type checking +// behavior, except for the special case of returning cty.DynamicPseudoType +// if it is not yet able to predict its return value based on current argument +// information. +func Unpredictable(f Function) Function { + newSpec := *f.spec // shallow copy + newSpec.Impl = unpredictableImpl + return New(&newSpec) +} + +func unpredictableImpl(args []cty.Value, retType cty.Type) (cty.Value, error) { + return cty.UnknownVal(retType), nil +} diff --git a/vendor/github.com/zclconf/go-cty/cty/object_type.go b/vendor/github.com/zclconf/go-cty/cty/object_type.go index 6f5ef3056..2540883ca 100644 --- a/vendor/github.com/zclconf/go-cty/cty/object_type.go +++ b/vendor/github.com/zclconf/go-cty/cty/object_type.go @@ -14,9 +14,14 @@ type typeObject struct { // After a map is passed to this function the caller must no longer access it, // since ownership is transferred to this library. func Object(attrTypes map[string]Type) Type { + attrTypesNorm := make(map[string]Type, len(attrTypes)) + for k, v := range attrTypes { + attrTypesNorm[NormalizeString(k)] = v + } + return Type{ typeObject{ - AttrTypes: attrTypes, + AttrTypes: attrTypesNorm, }, } } @@ -91,6 +96,7 @@ func (t Type) IsObjectType() bool { // name, regardless of its type. Will panic if the reciever isn't an object // type; use IsObjectType to determine whether this operation will succeed. func (t Type) HasAttribute(name string) bool { + name = NormalizeString(name) if ot, ok := t.typeImpl.(typeObject); ok { _, hasAttr := ot.AttrTypes[name] return hasAttr @@ -102,6 +108,7 @@ func (t Type) HasAttribute(name string) bool { // panic if the receiver is not an object type (use IsObjectType to confirm) // or if the object type has no such attribute (use HasAttribute to confirm). func (t Type) AttributeType(name string) Type { + name = NormalizeString(name) if ot, ok := t.typeImpl.(typeObject); ok { aty, hasAttr := ot.AttrTypes[name] if !hasAttr { diff --git a/vendor/github.com/zclconf/go-cty/cty/path.go b/vendor/github.com/zclconf/go-cty/cty/path.go index d38c2231c..84a9de0c4 100644 --- a/vendor/github.com/zclconf/go-cty/cty/path.go +++ b/vendor/github.com/zclconf/go-cty/cty/path.go @@ -156,6 +156,10 @@ func (s IndexStep) Apply(val Value) (Value, error) { return val.Index(s.Key), nil } +func (s IndexStep) GoString() string { + return fmt.Sprintf("cty.IndexStep{Key:%#v}", s.Key) +} + // GetAttrStep is a Step implementation representing retrieving an attribute // from a value, which must be of an object type. type GetAttrStep struct { @@ -176,3 +180,7 @@ func (s GetAttrStep) Apply(val Value) (Value, error) { return val.GetAttr(s.Name), nil } + +func (s GetAttrStep) GoString() string { + return fmt.Sprintf("cty.GetAttrStep{Name:%q}", s.Name) +} diff --git a/vendor/github.com/zclconf/go-cty/cty/set/ops.go b/vendor/github.com/zclconf/go-cty/cty/set/ops.go index e900eb0ec..726e7077a 100644 --- a/vendor/github.com/zclconf/go-cty/cty/set/ops.go +++ b/vendor/github.com/zclconf/go-cty/cty/set/ops.go @@ -65,6 +65,16 @@ func (s Set) Has(val interface{}) bool { return false } +// Copy performs a shallow copy of the receiving set, returning a new set +// with the same rules and elements. +func (s Set) Copy() Set { + ret := NewSet(s.rules) + for k, v := range s.vals { + ret.vals[k] = v + } + return ret +} + // Iterator returns an iterator over values in the set, in an undefined order // that callers should not depend on. // diff --git a/vendor/github.com/zclconf/go-cty/cty/set_helper.go b/vendor/github.com/zclconf/go-cty/cty/set_helper.go new file mode 100644 index 000000000..a88ddaffb --- /dev/null +++ b/vendor/github.com/zclconf/go-cty/cty/set_helper.go @@ -0,0 +1,126 @@ +package cty + +import ( + "fmt" + + "github.com/zclconf/go-cty/cty/set" +) + +// ValueSet is to cty.Set what []cty.Value is to cty.List and +// map[string]cty.Value is to cty.Map. It's provided to allow callers a +// convenient interface for manipulating sets before wrapping them in cty.Set +// values using cty.SetValFromValueSet. +// +// Unlike value slices and value maps, ValueSet instances have a single +// homogenous element type because that is a requirement of the underlying +// set implementation, which uses the element type to select a suitable +// hashing function. +// +// Set mutations are not concurrency-safe. +type ValueSet struct { + // ValueSet is just a thin wrapper around a set.Set with our value-oriented + // "rules" applied. We do this so that the caller can work in terms of + // cty.Value objects even though the set internals use the raw values. + s set.Set +} + +// NewValueSet creates and returns a new ValueSet with the given element type. +func NewValueSet(ety Type) ValueSet { + return newValueSet(set.NewSet(setRules{Type: ety})) +} + +func newValueSet(s set.Set) ValueSet { + return ValueSet{ + s: s, + } +} + +// ElementType returns the element type for the receiving ValueSet. +func (s ValueSet) ElementType() Type { + return s.s.Rules().(setRules).Type +} + +// Add inserts the given value into the receiving set. +func (s ValueSet) Add(v Value) { + s.requireElementType(v) + s.s.Add(v.v) +} + +// Remove deletes the given value from the receiving set, if indeed it was +// there in the first place. If the value is not present, this is a no-op. +func (s ValueSet) Remove(v Value) { + s.requireElementType(v) + s.s.Remove(v.v) +} + +// Has returns true if the given value is in the receiving set, or false if +// it is not. +func (s ValueSet) Has(v Value) bool { + s.requireElementType(v) + return s.s.Has(v.v) +} + +// Copy performs a shallow copy of the receiving set, returning a new set +// with the same rules and elements. +func (s ValueSet) Copy() ValueSet { + return newValueSet(s.s.Copy()) +} + +// Length returns the number of values in the set. +func (s ValueSet) Length() int { + return s.s.Length() +} + +// Values returns a slice of all of the values in the set in no particular +// order. +func (s ValueSet) Values() []Value { + l := s.s.Length() + if l == 0 { + return nil + } + ret := make([]Value, 0, l) + ety := s.ElementType() + for it := s.s.Iterator(); it.Next(); { + ret = append(ret, Value{ + ty: ety, + v: it.Value(), + }) + } + return ret +} + +// Union returns a new set that contains all of the members of both the +// receiving set and the given set. Both sets must have the same element type, +// or else this function will panic. +func (s ValueSet) Union(other ValueSet) ValueSet { + return newValueSet(s.s.Union(other.s)) +} + +// Intersection returns a new set that contains the values that both the +// receiver and given sets have in common. Both sets must have the same element +// type, or else this function will panic. +func (s ValueSet) Intersection(other ValueSet) ValueSet { + return newValueSet(s.s.Intersection(other.s)) +} + +// Subtract returns a new set that contains all of the values from the receiver +// that are not also in the given set. Both sets must have the same element +// type, or else this function will panic. +func (s ValueSet) Subtract(other ValueSet) ValueSet { + return newValueSet(s.s.Subtract(other.s)) +} + +// SymmetricDifference returns a new set that contains all of the values from +// both the receiver and given sets, except those that both sets have in +// common. Both sets must have the same element type, or else this function +// will panic. +func (s ValueSet) SymmetricDifference(other ValueSet) ValueSet { + return newValueSet(s.s.SymmetricDifference(other.s)) +} + +// requireElementType panics if the given value is not of the set's element type. +func (s ValueSet) requireElementType(v Value) { + if !v.Type().Equals(s.ElementType()) { + panic(fmt.Errorf("attempt to use %#v value with set of %#v", v.Type(), s.ElementType())) + } +} diff --git a/vendor/github.com/zclconf/go-cty/cty/value.go b/vendor/github.com/zclconf/go-cty/cty/value.go index 24ff35afd..80cb8f76f 100644 --- a/vendor/github.com/zclconf/go-cty/cty/value.go +++ b/vendor/github.com/zclconf/go-cty/cty/value.go @@ -69,3 +69,30 @@ var NilVal = Value{ ty: Type{typeImpl: nil}, v: nil, } + +// IsWhollyKnown is an extension of IsKnown that also recursively checks +// inside collections and structures to see if there are any nested unknown +// values. +func (val Value) IsWhollyKnown() bool { + if !val.IsKnown() { + return false + } + + if val.IsNull() { + // Can't recurse into a null, so we're done + return true + } + + switch { + case val.CanIterateElements(): + for it := val.ElementIterator(); it.Next(); { + _, ev := it.Element() + if !ev.IsWhollyKnown() { + return false + } + } + return true + default: + return true + } +} diff --git a/vendor/github.com/zclconf/go-cty/cty/value_init.go b/vendor/github.com/zclconf/go-cty/cty/value_init.go index 2ccafb1bf..495a83e61 100644 --- a/vendor/github.com/zclconf/go-cty/cty/value_init.go +++ b/vendor/github.com/zclconf/go-cty/cty/value_init.go @@ -59,10 +59,19 @@ func NumberFloatVal(v float64) Value { func StringVal(v string) Value { return Value{ ty: String, - v: norm.NFC.String(v), + v: NormalizeString(v), } } +// NormalizeString applies the same normalization that cty applies when +// constructing string values. +// +// A return value from this function can be meaningfully compared byte-for-byte +// with a Value.AsString result. +func NormalizeString(s string) string { + return norm.NFC.String(s) +} + // ObjectVal returns a Value of an object type whose structure is defined // by the key names and value types in the given map. func ObjectVal(attrs map[string]Value) Value { @@ -70,6 +79,7 @@ func ObjectVal(attrs map[string]Value) Value { attrVals := make(map[string]interface{}, len(attrs)) for attr, val := range attrs { + attr = NormalizeString(attr) attrTypes[attr] = val.ty attrVals[attr] = val.v } @@ -162,7 +172,7 @@ func MapVal(vals map[string]Value) Value { )) } - rawMap[key] = val.v + rawMap[NormalizeString(key)] = val.v } return Value{ @@ -214,6 +224,21 @@ func SetVal(vals []Value) Value { } } +// SetValFromValueSet returns a Value of set type based on an already-constructed +// ValueSet. +// +// The element type of the returned value is the element type of the given +// set. +func SetValFromValueSet(s ValueSet) Value { + ety := s.ElementType() + rawVal := s.s.Copy() // copy so caller can't mutate what we wrap + + return Value{ + ty: Set(ety), + v: rawVal, + } +} + // SetValEmpty returns an empty set of the given element type. func SetValEmpty(element Type) Value { return Value{ diff --git a/vendor/github.com/zclconf/go-cty/cty/value_ops.go b/vendor/github.com/zclconf/go-cty/cty/value_ops.go index 8d7b126a5..967aa761d 100644 --- a/vendor/github.com/zclconf/go-cty/cty/value_ops.go +++ b/vendor/github.com/zclconf/go-cty/cty/value_ops.go @@ -15,14 +15,14 @@ func (val Value) GoString() string { } if val.ty == DynamicPseudoType { - return "cty.DynamicValue" + return "cty.DynamicVal" } if !val.IsKnown() { - return fmt.Sprintf("cty.Unknown(%#v)", val.ty) + return fmt.Sprintf("cty.UnknownVal(%#v)", val.ty) } if val.IsNull() { - return fmt.Sprintf("cty.Null(%#v)", val.ty) + return fmt.Sprintf("cty.NullVal(%#v)", val.ty) } // By the time we reach here we've dealt with all of the exceptions around @@ -540,6 +540,8 @@ func (val Value) GetAttr(name string) Value { if !val.ty.IsObjectType() { panic("value is not an object") } + + name = NormalizeString(name) if !val.ty.HasAttribute(name) { panic("value has no attribute of that name") } @@ -756,6 +758,9 @@ func (val Value) HasElement(elem Value) Value { if val.IsNull() { panic("can't call HasElement on a nil value") } + if ty.ElementType() != elem.Type() { + return False + } s := val.v.(set.Set) return BoolVal(s.Has(elem.v)) @@ -967,7 +972,7 @@ func (val Value) AsString() string { // cty.Number value, or panics if called on any other value. // // For more convenient conversions to other native numeric types, use the -// "convert" package. +// "gocty" package. func (val Value) AsBigFloat() *big.Float { if val.ty != Number { panic("not a number") @@ -985,6 +990,72 @@ func (val Value) AsBigFloat() *big.Float { return &ret } +// AsValueSlice returns a []cty.Value representation of a non-null, non-unknown +// value of any type that CanIterateElements, or panics if called on +// any other value. +// +// For more convenient conversions to slices of more specific types, use +// the "gocty" package. +func (val Value) AsValueSlice() []Value { + l := val.LengthInt() + if l == 0 { + return nil + } + + ret := make([]Value, 0, l) + for it := val.ElementIterator(); it.Next(); { + _, v := it.Element() + ret = append(ret, v) + } + return ret +} + +// AsValueMap returns a map[string]cty.Value representation of a non-null, +// non-unknown value of any type that CanIterateElements, or panics if called +// on any other value. +// +// For more convenient conversions to maps of more specific types, use +// the "gocty" package. +func (val Value) AsValueMap() map[string]Value { + l := val.LengthInt() + if l == 0 { + return nil + } + + ret := make(map[string]Value, l) + for it := val.ElementIterator(); it.Next(); { + k, v := it.Element() + ret[k.AsString()] = v + } + return ret +} + +// AsValueSet returns a ValueSet representation of a non-null, +// non-unknown value of any collection type, or panics if called +// on any other value. +// +// Unlike AsValueSlice and AsValueMap, this method requires specifically a +// collection type (list, set or map) and does not allow structural types +// (tuple or object), because the ValueSet type requires homogenous +// element types. +// +// The returned ValueSet can store only values of the receiver's element type. +func (val Value) AsValueSet() ValueSet { + if !val.Type().IsCollectionType() { + panic("not a collection type") + } + + // We don't give the caller our own set.Set (assuming we're a cty.Set value) + // because then the caller could mutate our internals, which is forbidden. + // Instead, we will construct a new set and append our elements into it. + ret := NewValueSet(val.Type().ElementType()) + for it := val.ElementIterator(); it.Next(); { + _, v := it.Element() + ret.Add(v) + } + return ret +} + // EncapsulatedValue returns the native value encapsulated in a non-null, // non-unknown capsule-typed value, or panics if called on any other value. // diff --git a/vendor/github.com/zclconf/go-cty/cty/walk.go b/vendor/github.com/zclconf/go-cty/cty/walk.go new file mode 100644 index 000000000..a6943babe --- /dev/null +++ b/vendor/github.com/zclconf/go-cty/cty/walk.go @@ -0,0 +1,182 @@ +package cty + +// Walk visits all of the values in a possibly-complex structure, calling +// a given function for each value. +// +// For example, given a list of strings the callback would first be called +// with the whole list and then called once for each element of the list. +// +// The callback function may prevent recursive visits to child values by +// returning false. The callback function my halt the walk altogether by +// returning a non-nil error. If the returned error is about the element +// currently being visited, it is recommended to use the provided path +// value to produce a PathError describing that context. +// +// The path passed to the given function may not be used after that function +// returns, since its backing array is re-used for other calls. +func Walk(val Value, cb func(Path, Value) (bool, error)) error { + var path Path + return walk(path, val, cb) +} + +func walk(path Path, val Value, cb func(Path, Value) (bool, error)) error { + deeper, err := cb(path, val) + if err != nil { + return err + } + if !deeper { + return nil + } + + if val.IsNull() || !val.IsKnown() { + // Can't recurse into null or unknown values, regardless of type + return nil + } + + ty := val.Type() + switch { + case ty.IsObjectType(): + for it := val.ElementIterator(); it.Next(); { + nameVal, av := it.Element() + path := append(path, GetAttrStep{ + Name: nameVal.AsString(), + }) + err := walk(path, av, cb) + if err != nil { + return err + } + } + case val.CanIterateElements(): + for it := val.ElementIterator(); it.Next(); { + kv, ev := it.Element() + path := append(path, IndexStep{ + Key: kv, + }) + err := walk(path, ev, cb) + if err != nil { + return err + } + } + } + return nil +} + +// Transform visits all of the values in a possibly-complex structure, +// calling a given function for each value which has an opportunity to +// replace that value. +// +// Unlike Walk, Transform visits child nodes first, so for a list of strings +// it would first visit the strings and then the _new_ list constructed +// from the transformed values of the list items. +// +// This is useful for creating the effect of being able to make deep mutations +// to a value even though values are immutable. However, it's the responsibility +// of the given function to preserve expected invariants, such as homogenity of +// element types in collections; this function can panic if such invariants +// are violated, just as if new values were constructed directly using the +// value constructor functions. An easy way to preserve invariants is to +// ensure that the transform function never changes the value type. +// +// The callback function my halt the walk altogether by +// returning a non-nil error. If the returned error is about the element +// currently being visited, it is recommended to use the provided path +// value to produce a PathError describing that context. +// +// The path passed to the given function may not be used after that function +// returns, since its backing array is re-used for other calls. +func Transform(val Value, cb func(Path, Value) (Value, error)) (Value, error) { + var path Path + return transform(path, val, cb) +} + +func transform(path Path, val Value, cb func(Path, Value) (Value, error)) (Value, error) { + ty := val.Type() + var newVal Value + + switch { + + case val.IsNull() || !val.IsKnown(): + // Can't recurse into null or unknown values, regardless of type + newVal = val + + case ty.IsListType() || ty.IsSetType() || ty.IsTupleType(): + l := val.LengthInt() + switch l { + case 0: + // No deep transform for an empty sequence + newVal = val + default: + elems := make([]Value, 0, l) + for it := val.ElementIterator(); it.Next(); { + kv, ev := it.Element() + path := append(path, IndexStep{ + Key: kv, + }) + newEv, err := transform(path, ev, cb) + if err != nil { + return DynamicVal, err + } + elems = append(elems, newEv) + } + switch { + case ty.IsListType(): + newVal = ListVal(elems) + case ty.IsSetType(): + newVal = SetVal(elems) + case ty.IsTupleType(): + newVal = TupleVal(elems) + default: + panic("unknown sequence type") // should never happen because of the case we are in + } + } + + case ty.IsMapType(): + l := val.LengthInt() + switch l { + case 0: + // No deep transform for an empty map + newVal = val + default: + elems := make(map[string]Value) + for it := val.ElementIterator(); it.Next(); { + kv, ev := it.Element() + path := append(path, IndexStep{ + Key: kv, + }) + newEv, err := transform(path, ev, cb) + if err != nil { + return DynamicVal, err + } + elems[kv.AsString()] = newEv + } + newVal = MapVal(elems) + } + + case ty.IsObjectType(): + switch { + case ty.Equals(EmptyObject): + // No deep transform for an empty object + newVal = val + default: + atys := ty.AttributeTypes() + newAVs := make(map[string]Value) + for name := range atys { + av := val.GetAttr(name) + path := append(path, GetAttrStep{ + Name: name, + }) + newAV, err := transform(path, av, cb) + if err != nil { + return DynamicVal, err + } + newAVs[name] = newAV + } + newVal = ObjectVal(newAVs) + } + + default: + newVal = val + } + + return cb(path, newVal) +} diff --git a/vendor/vendor.json b/vendor/vendor.json index ee64c0963..1289ec622 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -1715,58 +1715,64 @@ "revisionTime": "2017-05-04T19:02:34Z" }, { - "checksumSHA1": "6kxMiZSmgazD/CZgmnEeEMJSAOM=", + "checksumSHA1": "Tpj2tK/XrhxbIKB5xEJlfTI46M0=", + "path": "github.com/hashicorp/hcl2/ext/typeexpr", + "revision": "5f8ed954abd873b2c09616ba0aa607892bbca7e9", + "revisionTime": "2018-03-08T16:30:58Z" + }, + { + "checksumSHA1": "BRJaQcKriVKEirVC7YxBxPufQF0=", "path": "github.com/hashicorp/hcl2/gohcl", - "revision": "5ca9713bf06addcefc0a4e16f779e43a2c88570c", - "revisionTime": "2018-02-05T02:55:09Z" + "revision": "5f8ed954abd873b2c09616ba0aa607892bbca7e9", + "revisionTime": "2018-03-08T16:30:58Z" }, { - "checksumSHA1": "l2zkxDVi2EUwFdvsVcIfyuOr4zo=", + "checksumSHA1": "v1JCFNvhLqF3ErYcxkJJPboKO8c=", "path": "github.com/hashicorp/hcl2/hcl", - "revision": "5ca9713bf06addcefc0a4e16f779e43a2c88570c", - "revisionTime": "2018-02-05T02:55:09Z" + "revision": "5f8ed954abd873b2c09616ba0aa607892bbca7e9", + "revisionTime": "2018-03-08T16:30:58Z" }, { - "checksumSHA1": "iLOUzHOej23ORpmbXAndg5Ft5H0=", + "checksumSHA1": "ekhg+MJLLGkJQdh/tZ4A3EZwpNY=", "path": "github.com/hashicorp/hcl2/hcl/hclsyntax", - "revision": "5ca9713bf06addcefc0a4e16f779e43a2c88570c", - "revisionTime": "2018-02-05T02:55:09Z" + "revision": "5f8ed954abd873b2c09616ba0aa607892bbca7e9", + "revisionTime": "2018-03-08T16:30:58Z" }, { - "checksumSHA1": "O8jJfHiwuQFmAo0ivcBhni4pWyg=", + "checksumSHA1": "G40fCmu1bSWXv4Hw5JXwEUTVThk=", "path": "github.com/hashicorp/hcl2/hcl/json", - "revision": "5ca9713bf06addcefc0a4e16f779e43a2c88570c", - "revisionTime": "2018-02-05T02:55:09Z" + "revision": "5f8ed954abd873b2c09616ba0aa607892bbca7e9", + "revisionTime": "2018-03-08T16:30:58Z" }, { "checksumSHA1": "672O/GQ9z+OFsG3eHLKq1yg3ZGM=", "path": "github.com/hashicorp/hcl2/hcldec", - "revision": "5ca9713bf06addcefc0a4e16f779e43a2c88570c", - "revisionTime": "2018-02-05T02:55:09Z" + "revision": "5f8ed954abd873b2c09616ba0aa607892bbca7e9", + "revisionTime": "2018-03-08T16:30:58Z" }, { "checksumSHA1": "sySYF9Ew71VS/LfrG+s/0jK+1VQ=", "path": "github.com/hashicorp/hcl2/hcled", - "revision": "5ca9713bf06addcefc0a4e16f779e43a2c88570c", - "revisionTime": "2018-02-05T02:55:09Z" + "revision": "5f8ed954abd873b2c09616ba0aa607892bbca7e9", + "revisionTime": "2018-03-08T16:30:58Z" }, { "checksumSHA1": "IzmftuG99BqNhbFGhxZaGwtiMtM=", "path": "github.com/hashicorp/hcl2/hclparse", - "revision": "5ca9713bf06addcefc0a4e16f779e43a2c88570c", - "revisionTime": "2018-02-05T02:55:09Z" + "revision": "5f8ed954abd873b2c09616ba0aa607892bbca7e9", + "revisionTime": "2018-03-08T16:30:58Z" }, { "checksumSHA1": "v5qx2XghQ+EtvFLa4a0Efjiwt9I=", "path": "github.com/hashicorp/hcl2/hcltest", - "revision": "5ca9713bf06addcefc0a4e16f779e43a2c88570c", - "revisionTime": "2018-02-05T02:55:09Z" + "revision": "5f8ed954abd873b2c09616ba0aa607892bbca7e9", + "revisionTime": "2018-03-08T16:30:58Z" }, { "checksumSHA1": "9UCSLRG+TEAsNKOZJUaJj/7d6r8=", "path": "github.com/hashicorp/hcl2/hclwrite", - "revision": "5ca9713bf06addcefc0a4e16f779e43a2c88570c", - "revisionTime": "2018-02-05T02:55:09Z" + "revision": "5f8ed954abd873b2c09616ba0aa607892bbca7e9", + "revisionTime": "2018-03-08T16:30:58Z" }, { "checksumSHA1": "M09yxoBoCEtG7EcHR8aEWLzMMJc=", @@ -2218,46 +2224,46 @@ "revisionTime": "2016-10-29T10:40:18Z" }, { - "checksumSHA1": "TudZOVOvOvR5zw7EFbvD3eZpmLI=", + "checksumSHA1": "lGCvuEPfb2vhxEgYamNhnd1jYH8=", "path": "github.com/zclconf/go-cty/cty", - "revision": "709e4033eeb037dc543dbc2048065dfb814ce316", - "revisionTime": "2018-01-06T05:58:34Z" + "revision": "49fa5e03c418f95f78684c91e155af06aa901a32", + "revisionTime": "2018-03-02T16:03:48Z" }, { - "checksumSHA1": "IjvfMUZ9S1L1NM0haXwMfKzkyvM=", + "checksumSHA1": "gDpi8g5VxCRM3JKm/kaYlGdFUdQ=", "path": "github.com/zclconf/go-cty/cty/convert", - "revision": "709e4033eeb037dc543dbc2048065dfb814ce316", - "revisionTime": "2018-01-06T05:58:34Z" + "revision": "49fa5e03c418f95f78684c91e155af06aa901a32", + "revisionTime": "2018-03-02T16:03:48Z" }, { - "checksumSHA1": "TU21yqpRZdbEbH8pp4I5YsQa00E=", + "checksumSHA1": "MyyLCGg3RREMllTJyK6ehZl/dHk=", "path": "github.com/zclconf/go-cty/cty/function", - "revision": "709e4033eeb037dc543dbc2048065dfb814ce316", - "revisionTime": "2018-01-06T05:58:34Z" + "revision": "49fa5e03c418f95f78684c91e155af06aa901a32", + "revisionTime": "2018-03-02T16:03:48Z" }, { - "checksumSHA1": "Ke4kpRBTSophcLSCrusR8XxSC0Y=", + "checksumSHA1": "4R+DQqBew6i9a4lYiLZW1OXVwTI=", "path": "github.com/zclconf/go-cty/cty/function/stdlib", - "revision": "709e4033eeb037dc543dbc2048065dfb814ce316", - "revisionTime": "2018-01-06T05:58:34Z" + "revision": "49fa5e03c418f95f78684c91e155af06aa901a32", + "revisionTime": "2018-03-02T16:03:48Z" }, { "checksumSHA1": "tmCzwfNXOEB1sSO7TKVzilb2vjA=", "path": "github.com/zclconf/go-cty/cty/gocty", - "revision": "709e4033eeb037dc543dbc2048065dfb814ce316", - "revisionTime": "2018-01-06T05:58:34Z" + "revision": "49fa5e03c418f95f78684c91e155af06aa901a32", + "revisionTime": "2018-03-02T16:03:48Z" }, { "checksumSHA1": "1ApmO+Q33+Oem/3f6BU6sztJWNc=", "path": "github.com/zclconf/go-cty/cty/json", - "revision": "709e4033eeb037dc543dbc2048065dfb814ce316", - "revisionTime": "2018-01-06T05:58:34Z" + "revision": "49fa5e03c418f95f78684c91e155af06aa901a32", + "revisionTime": "2018-03-02T16:03:48Z" }, { - "checksumSHA1": "gH4rRyzIQknMIXAJfpvC04KTsME=", + "checksumSHA1": "y5Sk+n6SOspFj8mlyb8swr4DMIs=", "path": "github.com/zclconf/go-cty/cty/set", - "revision": "709e4033eeb037dc543dbc2048065dfb814ce316", - "revisionTime": "2018-01-06T05:58:34Z" + "revision": "49fa5e03c418f95f78684c91e155af06aa901a32", + "revisionTime": "2018-03-02T16:03:48Z" }, { "checksumSHA1": "vE43s37+4CJ2CDU6TlOUOYE0K9c=", From 7549ce15f04d29ac71877044fc1e43b7c95931f0 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Thu, 8 Mar 2018 11:17:39 -0800 Subject: [PATCH 122/156] configs: update values file invalid syntax test for new HCL behavior The error-handling behavior of the HCL parser was improved, which causes the number of diagnostics and the diagnostics messages to be different in cases where a block-like introduction is given but without any following body. --- configs/parser_values_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configs/parser_values_test.go b/configs/parser_values_test.go index 9c95b65f2..b26901bfd 100644 --- a/configs/parser_values_test.go +++ b/configs/parser_values_test.go @@ -60,7 +60,7 @@ func TestParserLoadValuesFile(t *testing.T) { "invalid-syntax.tfvars": { "foo bar baz\n", map[string]cty.Value{}, - 1, // attribute or block definition required + 2, // invalid block definition, and unexpected foo block (the latter due to parser recovery behavior) }, "block.tfvars": { "foo = true\ninvalid {\n}\n", From a26ff56f01ef59450bf74b6fd180a35eedfbddae Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Thu, 1 Mar 2018 12:18:07 -0800 Subject: [PATCH 123/156] configs: highlight resource name in diags when invalid Previously we were erroneously highlighting the resource type name instead. --- configs/resource.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configs/resource.go b/configs/resource.go index e6c9ca2af..c310dbb54 100644 --- a/configs/resource.go +++ b/configs/resource.go @@ -63,7 +63,7 @@ func decodeResourceBlock(block *hcl.Block) (*ManagedResource, hcl.Diagnostics) { Severity: hcl.DiagError, Summary: "Invalid resource name", Detail: badIdentifierDetail, - Subject: &block.LabelRanges[0], + Subject: &block.LabelRanges[1], }) } @@ -258,7 +258,7 @@ func decodeDataBlock(block *hcl.Block) (*DataResource, hcl.Diagnostics) { Severity: hcl.DiagError, Summary: "Invalid data resource name", Detail: badIdentifierDetail, - Subject: &block.LabelRanges[0], + Subject: &block.LabelRanges[1], }) } From c05a1050fc53b3ad2a7c1edd63751de13ac44bcb Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Tue, 6 Mar 2018 14:54:43 -0800 Subject: [PATCH 124/156] configs: Disable deprecation warning for quoted keywords/references Although we do still consider these deprecated for 0.12, we'll defer actually generating warnings for them until a later minor release so that module authors can retain their quoted identifiers for a period after 0.12 release for backward-compatibility with Terraform 0.11. --- configs/compat_shim.go | 37 +++++++++++++++++++++-------------- configs/parser_config_test.go | 25 ----------------------- 2 files changed, 22 insertions(+), 40 deletions(-) diff --git a/configs/compat_shim.go b/configs/compat_shim.go index 2f803b3fa..ed4f37d43 100644 --- a/configs/compat_shim.go +++ b/configs/compat_shim.go @@ -59,21 +59,28 @@ func shimTraversalInString(expr hcl.Expression, wantKeyword bool) (hcl.Expressio ) diags = append(diags, tDiags...) - if wantKeyword { - diags = append(diags, &hcl.Diagnostic{ - Severity: hcl.DiagWarning, - Summary: "Quoted keywords are deprecated", - Detail: "In this context, keywords are expected literally rather than in quotes. Previous versions of Terraform required quotes, but that usage is now deprecated. Remove the quotes surrounding this keyword to silence this warning.", - Subject: &srcRange, - }) - } else { - diags = append(diags, &hcl.Diagnostic{ - Severity: hcl.DiagWarning, - Summary: "Quoted references are deprecated", - Detail: "In this context, references are expected literally rather than in quotes. Previous versions of Terraform required quotes, but that usage is now deprecated. Remove the quotes surrounding this reference to silence this warning.", - Subject: &srcRange, - }) - } + // For initial release our deprecation warnings are disabled to allow + // a period where modules can be compatible with both old and new + // conventions. + // FIXME: Re-enable these deprecation warnings in a release prior to + // Terraform 0.13 and then remove the shims altogether for 0.13. + /* + if wantKeyword { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagWarning, + Summary: "Quoted keywords are deprecated", + Detail: "In this context, keywords are expected literally rather than in quotes. Previous versions of Terraform required quotes, but that usage is now deprecated. Remove the quotes surrounding this keyword to silence this warning.", + Subject: &srcRange, + }) + } else { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagWarning, + Summary: "Quoted references are deprecated", + Detail: "In this context, references are expected literally rather than in quotes. Previous versions of Terraform required quotes, but that usage is now deprecated. Remove the quotes surrounding this reference to silence this warning.", + Subject: &srcRange, + }) + } + */ return &hclsyntax.ScopeTraversalExpr{ Traversal: traversal, diff --git a/configs/parser_config_test.go b/configs/parser_config_test.go index ff90d5eba..62a04d3ba 100644 --- a/configs/parser_config_test.go +++ b/configs/parser_config_test.go @@ -99,11 +99,6 @@ func TestParserLoadConfigFileFailureMessages(t *testing.T) { hcl.DiagError, "Invalid variable type hint", }, - { - "valid-files/variable-type-quoted.tf", - hcl.DiagWarning, - "Quoted keywords are deprecated", - }, { "invalid-files/unexpected-attr.tf", hcl.DiagError, @@ -119,16 +114,6 @@ func TestParserLoadConfigFileFailureMessages(t *testing.T) { hcl.DiagError, "Unsuitable value type", }, - { - "valid-files/resources-dependson-quoted.tf", - hcl.DiagWarning, - "Quoted references are deprecated", - }, - { - "valid-files/resources-ignorechanges-quoted.tf", - hcl.DiagWarning, - "Quoted references are deprecated", - }, { "valid-files/resources-ignorechanges-all-legacy.tf", hcl.DiagWarning, @@ -139,16 +124,6 @@ func TestParserLoadConfigFileFailureMessages(t *testing.T) { hcl.DiagWarning, "Deprecated ignore_changes wildcard", }, - { - "valid-files/resources-provisioner-when-quoted.tf", - hcl.DiagWarning, - "Quoted keywords are deprecated", - }, - { - "valid-files/resources-provisioner-onfailure-quoted.tf", - hcl.DiagWarning, - "Quoted keywords are deprecated", - }, } for _, test := range tests { From 12f8c90a5109fda6867a7a3aaa87f6a6969acb84 Mon Sep 17 00:00:00 2001 From: Seth Vargo Date: Thu, 8 Mar 2018 19:22:21 -0500 Subject: [PATCH 125/156] website: Recommend SVG instead of PNG for graph output --- website/docs/commands/graph.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/commands/graph.html.markdown b/website/docs/commands/graph.html.markdown index ce7d3928f..b7d677c7b 100644 --- a/website/docs/commands/graph.html.markdown +++ b/website/docs/commands/graph.html.markdown @@ -47,7 +47,7 @@ easily be converted to an image by making use of `dot` provided by GraphViz: ```shell -$ terraform graph | dot -Tpng > graph.png +$ terraform graph | dot -Tsvg > graph.svg ``` Here is an example graph output: From 5661ab599151372540ceb2630591085404786e6a Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Tue, 6 Mar 2018 17:37:51 -0800 Subject: [PATCH 126/156] configs: allow full type constraints for variables Previously we just ported over the simple "string", "list", and "map" type hint keywords from the old loader, which exist primarily as hints to the CLI for whether to treat -var=... arguments and environment variables as literal strings or as HCL expressions. However, we've been requested before to allow more specific constraints here because it's generally better UX for a type error to be detected within an expression in a calling "module" block rather than at some point deep inside a third-party module. To allow for more specific constraints, here we use the type constraint expression syntax defined as an extension within HCL, which uses the variable and function call syntaxes to represent types rather than values, like this: - string - number - bool - list(string) - list(any) - list(map(string)) - object({id=string,name=string}) In native HCL syntax this looks like: variable "foo" { type = map(string) } In JSON, this looks like: { "variable": { "foo": { "type": "map(string)" } } } The selection of literal processing or HCL parsing of CLI-set values is now explicit in the model and separate from the type, though it's still derived from the type constraint and thus not directly controllable in configuration. Since this syntax is more complex than the keywords that replaced it, for now the simpler keywords are still supported and "list" and "map" are interpreted as list(any) and map(any) respectively, mimicking how they were interpreted by Terraform 0.11 and earlier. For the time being our documentation should continue to recommend these shorthand versions until we gain more experience with the more-specific type constraints; most users should just make use of the additional primitive type constraints this enables: bool and number. As a result of these more-complete type constraints, we can now type-check the default value at config load time, which has the nice side-effect of allowing us to produce a tailored error message if an override file produces an invalid situation; previously the result was rather confusing because the error message referred to the original definition of the variable and not the overridden parts. --- configs/module_merge.go | 55 ++++++- configs/module_merge_test.go | 6 +- configs/named_values.go | 151 ++++++++++++++++-- configs/parser_config.go | 2 +- configs/parser_config_test.go | 2 +- .../invalid-files/variable-bad-default.tf | 4 + .../base.tf | 4 + .../override.tf | 5 + .../test-fixtures/valid-files/variables.tf | 2 +- 9 files changed, 210 insertions(+), 21 deletions(-) create mode 100644 configs/test-fixtures/invalid-files/variable-bad-default.tf create mode 100644 configs/test-fixtures/invalid-modules/override-variable-causes-bad-default/base.tf create mode 100644 configs/test-fixtures/invalid-modules/override-variable-causes-bad-default/override.tf diff --git a/configs/module_merge.go b/configs/module_merge.go index 2e5ed3249..8eb257a61 100644 --- a/configs/module_merge.go +++ b/configs/module_merge.go @@ -1,8 +1,11 @@ package configs import ( + "fmt" + "github.com/hashicorp/hcl2/hcl" "github.com/zclconf/go-cty/cty" + "github.com/zclconf/go-cty/cty/convert" ) // The methods in this file are used by Module.mergeFile to apply overrides @@ -52,8 +55,56 @@ func (v *Variable) merge(ov *Variable) hcl.Diagnostics { if ov.Default != cty.NilVal { v.Default = ov.Default } - if ov.TypeHint != TypeHintNone { - v.TypeHint = ov.TypeHint + if ov.Type != cty.NilType { + v.Type = ov.Type + } + if ov.ParsingMode != 0 { + v.ParsingMode = ov.ParsingMode + } + + // If the override file overrode type without default or vice-versa then + // it may have created an invalid situation, which we'll catch now by + // attempting to re-convert the value. + // + // Note that here we may be re-converting an already-converted base value + // from the base config. This will be a no-op if the type was not changed, + // but in particular might be user-observable in the edge case where the + // literal value in config could've been converted to the overridden type + // constraint but the converted value cannot. In practice, this situation + // should be rare since most of our conversions are interchangable. + if v.Default != cty.NilVal { + val, err := convert.Convert(v.Default, v.Type) + if err != nil { + // What exactly we'll say in the error message here depends on whether + // it was Default or Type that was overridden here. + switch { + case ov.Type != cty.NilType && ov.Default == cty.NilVal: + // If only the type was overridden + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid default value for variable", + Detail: fmt.Sprintf("Overriding this variable's type constraint has made its default value invalid: %s.", err), + Subject: &ov.DeclRange, + }) + case ov.Type == cty.NilType && ov.Default != cty.NilVal: + // Only the default was overridden + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid default value for variable", + Detail: fmt.Sprintf("The overridden default value for this variable is not compatible with the variable's type constraint: %s.", err), + Subject: &ov.DeclRange, + }) + default: + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid default value for variable", + Detail: fmt.Sprintf("This variable's default value is not compatible with its type constraint: %s.", err), + Subject: &ov.DeclRange, + }) + } + } else { + v.Default = val + } } return diags diff --git a/configs/module_merge_test.go b/configs/module_merge_test.go index 14126afa4..a89ba1551 100644 --- a/configs/module_merge_test.go +++ b/configs/module_merge_test.go @@ -22,7 +22,8 @@ func TestModuleOverrideVariable(t *testing.T) { Description: "b_override description", DescriptionSet: true, Default: cty.StringVal("b_override"), - TypeHint: TypeHintString, + Type: cty.String, + ParsingMode: VariableParseLiteral, DeclRange: hcl.Range{ Filename: "test-fixtures/valid-modules/override-variable/primary.tf", Start: hcl.Pos{ @@ -42,7 +43,8 @@ func TestModuleOverrideVariable(t *testing.T) { Description: "base description", DescriptionSet: true, Default: cty.StringVal("b_override partial"), - TypeHint: TypeHintString, + Type: cty.String, + ParsingMode: VariableParseLiteral, DeclRange: hcl.Range{ Filename: "test-fixtures/valid-modules/override-variable/primary.tf", Start: hcl.Pos{ diff --git a/configs/named_values.go b/configs/named_values.go index d1d93a57d..9a463c214 100644 --- a/configs/named_values.go +++ b/configs/named_values.go @@ -3,10 +3,12 @@ package configs import ( "fmt" + "github.com/hashicorp/hcl2/ext/typeexpr" "github.com/hashicorp/hcl2/gohcl" "github.com/hashicorp/hcl2/hcl" "github.com/hashicorp/hcl2/hcl/hclsyntax" "github.com/zclconf/go-cty/cty" + "github.com/zclconf/go-cty/cty/convert" ) // A consistent detail message for all "not a valid identifier" diagnostics. @@ -17,19 +19,29 @@ type Variable struct { Name string Description string Default cty.Value - TypeHint VariableTypeHint + Type cty.Type + ParsingMode VariableParsingMode DescriptionSet bool DeclRange hcl.Range } -func decodeVariableBlock(block *hcl.Block) (*Variable, hcl.Diagnostics) { +func decodeVariableBlock(block *hcl.Block, override bool) (*Variable, hcl.Diagnostics) { v := &Variable{ Name: block.Labels[0], DeclRange: block.DefRange, } + // Unless we're building an override, we'll set some defaults + // which we might override with attributes below. We leave these + // as zero-value in the override case so we can recognize whether + // or not they are set when we merge. + if !override { + v.Type = cty.DynamicPseudoType + v.ParsingMode = VariableParseLiteral + } + content, diags := block.Body.Content(variableBlockSchema) if !hclsyntax.ValidIdentifier(v.Name) { @@ -61,34 +73,145 @@ func decodeVariableBlock(block *hcl.Block) (*Variable, hcl.Diagnostics) { v.DescriptionSet = true } + if attr, exists := content.Attributes["type"]; exists { + ty, parseMode, tyDiags := decodeVariableType(attr.Expr) + diags = append(diags, tyDiags...) + v.Type = ty + v.ParsingMode = parseMode + } + if attr, exists := content.Attributes["default"]; exists { val, valDiags := attr.Expr.Value(nil) diags = append(diags, valDiags...) + + // Convert the default to the expected type so we can catch invalid + // defaults early and allow later code to assume validity. + // Note that this depends on us having already processed any "type" + // attribute above. + // However, we can't do this if we're in an override file where + // the type might not be set; we'll catch that during merge. + if v.Type != cty.NilType { + var err error + val, err = convert.Convert(val, v.Type) + if err != nil { + diags = append(diags, &hcl.Diagnostic{ + Severity: hcl.DiagError, + Summary: "Invalid default value for variable", + Detail: fmt.Sprintf("This default value is not compatible with the variable's type constraint: %s.", err), + Subject: attr.Expr.Range().Ptr(), + }) + val = cty.DynamicVal + } + } + v.Default = val } - if attr, exists := content.Attributes["type"]; exists { - expr, shimDiags := shimTraversalInString(attr.Expr, true) - diags = append(diags, shimDiags...) + return v, diags +} - switch hcl.ExprAsKeyword(expr) { +func decodeVariableType(expr hcl.Expression) (cty.Type, VariableParsingMode, hcl.Diagnostics) { + if exprIsNativeQuotedString(expr) { + // Here we're accepting the pre-0.12 form of variable type argument where + // the string values "string", "list" and "map" are accepted has a hint + // about the type used primarily for deciding how to parse values + // given on the command line and in environment variables. + // Only the native syntax ends up in this codepath; we handle the + // JSON syntax (which is, of course, quoted even in the new format) + // in the normal codepath below. + val, diags := expr.Value(nil) + if diags.HasErrors() { + return cty.DynamicPseudoType, VariableParseHCL, diags + } + str := val.AsString() + switch str { case "string": - v.TypeHint = TypeHintString + return cty.String, VariableParseLiteral, diags case "list": - v.TypeHint = TypeHintList + return cty.List(cty.DynamicPseudoType), VariableParseHCL, diags case "map": - v.TypeHint = TypeHintMap + return cty.Map(cty.DynamicPseudoType), VariableParseHCL, diags default: - diags = append(diags, &hcl.Diagnostic{ + return cty.DynamicPseudoType, VariableParseHCL, hcl.Diagnostics{{ Severity: hcl.DiagError, - Summary: "Invalid variable type hint", - Detail: "The type argument requires one of the following keywords: string, list, or map.", + Summary: "Invalid legacy variable type hint", + Detail: `The legacy variable type hint form, using a quoted string, allows only the values "string", "list", and "map". To provide a full type expression, remove the surrounding quotes and give the type expression directly.`, Subject: expr.Range().Ptr(), - }) + }} } } - return v, diags + // First we'll deal with some shorthand forms that the HCL-level type + // expression parser doesn't include. These both emulate pre-0.12 behavior + // of allowing a list or map of any element type as long as all of the + // elements are consistent. This is the same as list(any) or map(any). + switch hcl.ExprAsKeyword(expr) { + case "list": + return cty.List(cty.DynamicPseudoType), VariableParseHCL, nil + case "map": + return cty.Map(cty.DynamicPseudoType), VariableParseHCL, nil + } + + ty, diags := typeexpr.TypeConstraint(expr) + if diags.HasErrors() { + return cty.DynamicPseudoType, VariableParseHCL, diags + } + + switch { + case ty.IsPrimitiveType(): + // Primitive types use literal parsing. + return ty, VariableParseLiteral, diags + default: + // Everything else uses HCL parsing + return ty, VariableParseHCL, diags + } +} + +// VariableParsingMode defines how values of a particular variable given by +// text-only mechanisms (command line arguments and environment variables) +// should be parsed to produce the final value. +type VariableParsingMode rune + +// VariableParseLiteral is a variable parsing mode that just takes the given +// string directly as a cty.String value. +const VariableParseLiteral VariableParsingMode = 'L' + +// VariableParseHCL is a variable parsing mode that attempts to parse the given +// string as an HCL expression and returns the result. +const VariableParseHCL VariableParsingMode = 'H' + +// Parse uses the receiving parsing mode to process the given variable value +// string, returning the result along with any diagnostics. +// +// A VariableParsingMode does not know the expected type of the corresponding +// variable, so it's the caller's responsibility to attempt to convert the +// result to the appropriate type and return to the user any diagnostics that +// conversion may produce. +// +// The given name is used to create a synthetic filename in case any diagnostics +// must be generated about the given string value. This should be the name +// of the root module variable whose value will be populated from the given +// string. +// +// If the returned diagnostics has errors, the returned value may not be +// valid. +func (m VariableParsingMode) Parse(name, value string) (cty.Value, hcl.Diagnostics) { + switch m { + case VariableParseLiteral: + return cty.StringVal(value), nil + case VariableParseHCL: + fakeFilename := fmt.Sprintf("", name) + expr, diags := hclsyntax.ParseExpression([]byte(value), fakeFilename, hcl.Pos{Line: 1, Column: 1}) + if diags.HasErrors() { + return cty.DynamicVal, diags + } + val, valDiags := expr.Value(nil) + diags = append(diags, valDiags...) + return val, diags + default: + // Should never happen + panic(fmt.Errorf("Parse called on invalid VariableParsingMode %#v", m)) + } } // Output represents an "output" block in a module or file. diff --git a/configs/parser_config.go b/configs/parser_config.go index c7fc33fd9..7f2ff2714 100644 --- a/configs/parser_config.go +++ b/configs/parser_config.go @@ -86,7 +86,7 @@ func (p *Parser) loadConfigFile(path string, override bool) (*File, hcl.Diagnost } case "variable": - cfg, cfgDiags := decodeVariableBlock(block) + cfg, cfgDiags := decodeVariableBlock(block, override) diags = append(diags, cfgDiags...) if cfg != nil { file.Variables = append(file.Variables, cfg) diff --git a/configs/parser_config_test.go b/configs/parser_config_test.go index 62a04d3ba..09ea72659 100644 --- a/configs/parser_config_test.go +++ b/configs/parser_config_test.go @@ -97,7 +97,7 @@ func TestParserLoadConfigFileFailureMessages(t *testing.T) { { "invalid-files/variable-type-unknown.tf", hcl.DiagError, - "Invalid variable type hint", + "Invalid type specification", }, { "invalid-files/unexpected-attr.tf", diff --git a/configs/test-fixtures/invalid-files/variable-bad-default.tf b/configs/test-fixtures/invalid-files/variable-bad-default.tf new file mode 100644 index 000000000..9da568f71 --- /dev/null +++ b/configs/test-fixtures/invalid-files/variable-bad-default.tf @@ -0,0 +1,4 @@ +variable "incorrectly_typed_default" { + type = list(string) + default = "hello" +} diff --git a/configs/test-fixtures/invalid-modules/override-variable-causes-bad-default/base.tf b/configs/test-fixtures/invalid-modules/override-variable-causes-bad-default/base.tf new file mode 100644 index 000000000..f2d572ebe --- /dev/null +++ b/configs/test-fixtures/invalid-modules/override-variable-causes-bad-default/base.tf @@ -0,0 +1,4 @@ +variable "foo" { + type = list(string) + default = ["this is valid"] +} diff --git a/configs/test-fixtures/invalid-modules/override-variable-causes-bad-default/override.tf b/configs/test-fixtures/invalid-modules/override-variable-causes-bad-default/override.tf new file mode 100644 index 000000000..3c979d9ea --- /dev/null +++ b/configs/test-fixtures/invalid-modules/override-variable-causes-bad-default/override.tf @@ -0,0 +1,5 @@ +variable "foo" { + type = string + # Since we didn't also override the default, this is now invalid because + # the existing default is not compatible with "string". +} diff --git a/configs/test-fixtures/valid-files/variables.tf b/configs/test-fixtures/valid-files/variables.tf index 185d9de55..817649307 100644 --- a/configs/test-fixtures/valid-files/variables.tf +++ b/configs/test-fixtures/valid-files/variables.tf @@ -12,7 +12,7 @@ variable "baz" { variable "bar-baz" { default = [] - type = list + type = list(string) } variable "cheeze_pizza" { From b94da25919211ef59627a09ca5ce24f1576a8b30 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Thu, 8 Mar 2018 18:04:50 -0800 Subject: [PATCH 127/156] Update CHANGELOG.md --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d99b0d084..4e1e5ca56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,12 +3,13 @@ IMPROVEMENTS: * cli: `terraform state list` now accepts a new argument `-id=...` for filtering resources for display by their remote ids [GH-17221] -* core: https URLs are now supported in the HTTP_PROXY environment variable [go1.10:net/http](https://golang.org/doc/go1.10#net/http) +* cli: `terraform destroy` now uses the option `-auto-approve` instead of `-force`, for consistency with `terraform apply`. The old flag is preserved for backward-compatibility, but is now deprecated; it will be retained for at least one major release. [GH-17218] * connection/ssh: Add support for host key verifiation [GH-17354] * backend/s3: add support for the cn-northwest-1 region [GH-17216] * provisioner/local-exec: Allow setting custom environment variables when running commands [GH-13880] * provisioner/habitat: Detect if hab user exists and only create if necessary [GH-17195] * provisioner/habitat: Allow custom service name [GH-17196] +* general: https URLs are now supported in the HTTP_PROXY environment variable [go1.10:net/http](https://golang.org/doc/go1.10#net/http) BUG FIXES: From 441e62748c9c145625206a7cc8adb401cb050b15 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Thu, 8 Mar 2018 18:06:18 -0800 Subject: [PATCH 128/156] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e1e5ca56..aed121f10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ IMPROVEMENTS: * provisioner/local-exec: Allow setting custom environment variables when running commands [GH-13880] * provisioner/habitat: Detect if hab user exists and only create if necessary [GH-17195] * provisioner/habitat: Allow custom service name [GH-17196] -* general: https URLs are now supported in the HTTP_PROXY environment variable [go1.10:net/http](https://golang.org/doc/go1.10#net/http) +* general: https URLs are now supported in the HTTP_PROXY environment variable for URLs interpreted by Terraform Core. (This will not immediately be true for all Terraform provider plugins, since each must upgrade its own HTTP client.) [go1.10:net/http](https://golang.org/doc/go1.10#net/http) BUG FIXES: From e011dd95f3f2551115bb22f97317ef036a06ff74 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Fri, 9 Mar 2018 10:22:18 -0500 Subject: [PATCH 129/156] don't let default workspace override environment The workspace attribute should only override the environment if it's not the default value. --- .../providers/terraform/data_source_state.go | 15 ++++----- .../terraform/data_source_state_test.go | 31 +++++++++++++++++++ 2 files changed, 39 insertions(+), 7 deletions(-) diff --git a/builtin/providers/terraform/data_source_state.go b/builtin/providers/terraform/data_source_state.go index e6797eb4d..1eefe9e8d 100644 --- a/builtin/providers/terraform/data_source_state.go +++ b/builtin/providers/terraform/data_source_state.go @@ -64,7 +64,7 @@ func dataSourceRemoteState() *schema.Resource { } func dataSourceRemoteStateRead(d *schema.ResourceData, meta interface{}) error { - backend := d.Get("backend").(string) + backendType := d.Get("backend").(string) // Get the configuration in a type we want. rawConfig, err := config.NewRawConfig(d.Get("config").(map[string]interface{})) @@ -73,16 +73,16 @@ func dataSourceRemoteStateRead(d *schema.ResourceData, meta interface{}) error { } // Don't break people using the old _local syntax - but note warning above - if backend == "_local" { + if backendType == "_local" { log.Println(`[INFO] Switching old (unsupported) backend "_local" to "local"`) - backend = "local" + backendType = "local" } // Create the client to access our remote state - log.Printf("[DEBUG] Initializing remote state backend: %s", backend) - f := backendinit.Backend(backend) + log.Printf("[DEBUG] Initializing remote state backend: %s", backendType) + f := backendinit.Backend(backendType) if f == nil { - return fmt.Errorf("Unknown backend type: %s", backend) + return fmt.Errorf("Unknown backend type: %s", backendType) } b := f() @@ -94,9 +94,10 @@ func dataSourceRemoteStateRead(d *schema.ResourceData, meta interface{}) error { // environment is deprecated in favour of workspace. // If both keys are set workspace should win. name := d.Get("environment").(string) - if ws, ok := d.GetOk("workspace"); ok { + if ws, ok := d.GetOk("workspace"); ok && ws != backend.DefaultStateName { name = ws.(string) } + state, err := b.State(name) if err != nil { return fmt.Errorf("error loading the remote state: %s", err) diff --git a/builtin/providers/terraform/data_source_state_test.go b/builtin/providers/terraform/data_source_state_test.go index f80b738be..9b2040e82 100644 --- a/builtin/providers/terraform/data_source_state_test.go +++ b/builtin/providers/terraform/data_source_state_test.go @@ -129,6 +129,27 @@ func testAccCheckStateValue(id, name, value string) resource.TestCheckFunc { } } +// make sure that the deprecated environment field isn't overridden by the +// default value for workspace. +func TestState_deprecatedEnvironment(t *testing.T) { + resource.UnitTest(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + Steps: []resource.TestStep{ + { + Config: testAccState_deprecatedEnvironment, + Check: resource.ComposeTestCheckFunc( + testAccCheckStateValue( + // if the workspace default value overrides the + // environment, this will get the foo value from the + // default state. + "data.terraform_remote_state.foo", "foo", ""), + ), + }, + }, + }) +} + const testAccState_basic = ` data "terraform_remote_state" "foo" { backend = "local" @@ -190,3 +211,13 @@ data "terraform_remote_state" "foo" { foo = "not bar" } }` + +const testAccState_deprecatedEnvironment = ` +data "terraform_remote_state" "foo" { + backend = "local" + environment = "deprecated" + + config { + path = "./test-fixtures/basic.tfstate" + } +}` From f3d1fb3aff94fc1595e6111cfc778eccc31cba69 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Fri, 9 Mar 2018 18:38:41 -0500 Subject: [PATCH 130/156] failing test for interpolated count from plan An interpolated count value that is determined during plan, is lost during plan serialization, causing apply to fail when the interpolation string can't be evaluated. --- terraform/context_apply_test.go | 69 ++++++++++++++++++- .../apply-interpolated-count/main.tf | 11 +++ 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 terraform/test-fixtures/apply-interpolated-count/main.tf diff --git a/terraform/context_apply_test.go b/terraform/context_apply_test.go index 28e42b02e..69da40cfc 100644 --- a/terraform/context_apply_test.go +++ b/terraform/context_apply_test.go @@ -9472,5 +9472,72 @@ func TestContext2Apply_providersFromState(t *testing.T) { }) } - +} + +func TestContext2Apply_plannedInterpolatedCount(t *testing.T) { + m := testModule(t, "apply-interpolated-count") + + p := testProvider("aws") + p.ApplyFn = testApplyFn + p.DiffFn = testDiffFn + + providerResolver := ResourceProviderResolverFixed( + map[string]ResourceProviderFactory{ + "aws": testProviderFuncFixed(p), + }, + ) + + s := &State{ + Modules: []*ModuleState{ + &ModuleState{ + Path: rootModulePath, + Resources: map[string]*ResourceState{ + "aws_instance.test": { + Type: "aws_instance", + Primary: &InstanceState{ + ID: "foo", + }, + Provider: "provider.aws", + }, + }, + }, + }, + } + + ctx := testContext2(t, &ContextOpts{ + Module: m, + ProviderResolver: providerResolver, + State: s, + }) + + plan, err := ctx.Plan() + if err != nil { + t.Fatalf("plan failed: %s", err) + } + + // We'll marshal and unmarshal the plan here, to ensure that we have + // a clean new context as would be created if we separately ran + // terraform plan -out=tfplan && terraform apply tfplan + var planBuf bytes.Buffer + err = WritePlan(plan, &planBuf) + if err != nil { + t.Fatalf("failed to write plan: %s", err) + } + plan, err = ReadPlan(&planBuf) + if err != nil { + t.Fatalf("failed to read plan: %s", err) + } + + ctx, err = plan.Context(&ContextOpts{ + ProviderResolver: providerResolver, + }) + if err != nil { + t.Fatalf("failed to create context for plan: %s", err) + } + + // Applying the plan should now succeed + _, err = ctx.Apply() + if err != nil { + t.Fatalf("apply failed: %s", err) + } } diff --git a/terraform/test-fixtures/apply-interpolated-count/main.tf b/terraform/test-fixtures/apply-interpolated-count/main.tf new file mode 100644 index 000000000..c4ed06dc7 --- /dev/null +++ b/terraform/test-fixtures/apply-interpolated-count/main.tf @@ -0,0 +1,11 @@ +variable "instance_count" { + default = 1 +} + +resource "aws_instance" "test" { + count = "${var.instance_count}" +} + +resource "aws_instance" "dependent" { + count = "${aws_instance.test.count}" +} From a2718e4f790d48f57c9769648cd6b3da435355f7 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Fri, 9 Mar 2018 19:07:28 -0500 Subject: [PATCH 131/156] ignore errors interpolating RawCount during apply If a count field references another count field which is interpolated but is attached to a resource already in the state, the result of that first interpolation will be lost when a plan is serialized. This is because the result of the first interpolation is stored directly in the module config, in an unexported config field. This is not a general fix for the above situation, which would require refactoring how counts are handles throughout the config. Ignoring the error works, because in most cases the count will be properly handled during the resource's interpolation. --- terraform/node_resource_apply.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/terraform/node_resource_apply.go b/terraform/node_resource_apply.go index 904480655..40ee1cf2a 100644 --- a/terraform/node_resource_apply.go +++ b/terraform/node_resource_apply.go @@ -140,7 +140,10 @@ func (n *NodeApplyableResource) evalTreeDataResource( // Here we are just populating the interpolated value in-place // inside this RawConfig object, like we would in // NodeAbstractCountResource. - &EvalInterpolate{Config: n.Config.RawCount}, + &EvalInterpolate{ + Config: n.Config.RawCount, + ContinueOnErr: true, + }, // We need to re-interpolate the config here, rather than // just using the diff's values directly, because we've @@ -271,7 +274,10 @@ func (n *NodeApplyableResource) evalTreeManagedResource( // Here we are just populating the interpolated value in-place // inside this RawConfig object, like we would in // NodeAbstractCountResource. - &EvalInterpolate{Config: n.Config.RawCount}, + &EvalInterpolate{ + Config: n.Config.RawCount, + ContinueOnErr: true, + }, &EvalInterpolate{ Config: n.Config.RawConfig.Copy(), From c86a618c0ab3be04bacbc362f064d74099815d24 Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Fri, 9 Mar 2018 17:05:24 -0800 Subject: [PATCH 132/156] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index aed121f10..ed653f851 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ BUG FIXES: * core: Halt on fatal provisioner errors, rather than retrying until a timeout [GH-17359] * core: When handling a forced exit due to multiple interrupts, prevent the process from exiting while the state is being written [GH-17323] * core: Fix handling of locals and outputs at destroy time [GH-17241] +* core: Fix regression in handling of `count` arguments that refer to `count` attributes from other resources. [GH-17548] * helper/schema: Prevent crash on removal of computed field in CustomizeDiff [GH-17261] ## 0.11.3 (January 31, 2018) From 557bc1a349f123ccbfb08eb32ee7646b4177909d Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Fri, 9 Mar 2018 17:06:49 -0800 Subject: [PATCH 133/156] Update CHANGELOG.md --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ed653f851..575a4d2ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,8 @@ BUG FIXES: * core: Halt on fatal provisioner errors, rather than retrying until a timeout [GH-17359] * core: When handling a forced exit due to multiple interrupts, prevent the process from exiting while the state is being written [GH-17323] * core: Fix handling of locals and outputs at destroy time [GH-17241] -* core: Fix regression in handling of `count` arguments that refer to `count` attributes from other resources. [GH-17548] +* core: Fix regression in handling of `count` arguments that refer to `count` attributes from other resources [GH-17548] +* provider/terraform: restore support for the deprecated `environment` argument to the `terraform_remote_state` data source [GH-17545] * helper/schema: Prevent crash on removal of computed field in CustomizeDiff [GH-17261] ## 0.11.3 (January 31, 2018) From 84637534f43cba00d39084ba204f16c15829d2bd Mon Sep 17 00:00:00 2001 From: Logan Rakai Date: Sat, 10 Mar 2018 09:30:22 -0700 Subject: [PATCH 134/156] Grammar Improvement --- website/docs/modules/usage.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/modules/usage.html.markdown b/website/docs/modules/usage.html.markdown index 64ff092b6..5602cfe97 100644 --- a/website/docs/modules/usage.html.markdown +++ b/website/docs/modules/usage.html.markdown @@ -47,7 +47,7 @@ for each registry module can be found from the registry website. Terraform also supports modules in local directories, identified by a relative path starting with either `./` or `../`. Such local modules are useful to -organize code more complex repositories, and are described in more detail +organize code in more complex repositories, and are described in more detail in [_Creating Modules_](/docs/modules/create.html). Finally, Terraform can download modules directly from various storage providers From f18e4f29216758343822ad0fd6e73677e9411f5f Mon Sep 17 00:00:00 2001 From: Paul Tyng Date: Sat, 10 Mar 2018 12:40:37 -0500 Subject: [PATCH 135/156] Export a const for validation methods --- helper/resource/id.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/helper/resource/id.go b/helper/resource/id.go index 1cde67c1a..44949550e 100644 --- a/helper/resource/id.go +++ b/helper/resource/id.go @@ -18,6 +18,11 @@ func UniqueId() string { return PrefixedUniqueId(UniqueIdPrefix) } +// UniqueIDSuffixLength is the string length of the suffix generated by +// PrefixedUniqueId. This can be used by length validation functions to +// ensure prefixes are the correct length for the target field. +const UniqueIDSuffixLength = 26 + // Helper for a resource to generate a unique identifier w/ given prefix // // After the prefix, the ID consists of an incrementing 26 digit value (to match From 707d7febe3ae840c88428ebdb81d9014886f9564 Mon Sep 17 00:00:00 2001 From: Paul Tyng Date: Sat, 10 Mar 2018 20:56:13 -0500 Subject: [PATCH 136/156] Use constants in test --- helper/resource/id_test.go | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/helper/resource/id_test.go b/helper/resource/id_test.go index 7e5f27bfb..26845832e 100644 --- a/helper/resource/id_test.go +++ b/helper/resource/id_test.go @@ -15,8 +15,6 @@ func TestUniqueId(t *testing.T) { return rest[:18], rest[18:] } - const prefix = "terraform-" - iterations := 10000 ids := make(map[string]struct{}) var id, lastId string @@ -27,13 +25,13 @@ func TestUniqueId(t *testing.T) { t.Fatalf("Got duplicated id! %s", id) } - if !strings.HasPrefix(id, prefix) { + if !strings.HasPrefix(id, UniqueIdPrefix) { t.Fatalf("Unique ID didn't have terraform- prefix! %s", id) } - rest := strings.TrimPrefix(id, prefix) + rest := strings.TrimPrefix(id, UniqueIdPrefix) - if len(rest) != 26 { + if len(rest) != UniqueIDSuffixLength { t.Fatalf("Post-prefix part has wrong length! %s", rest) } @@ -58,8 +56,8 @@ func TestUniqueId(t *testing.T) { id1 := UniqueId() time.Sleep(time.Millisecond) id2 := UniqueId() - timestamp1, _ := split(strings.TrimPrefix(id1, prefix)) - timestamp2, _ := split(strings.TrimPrefix(id2, prefix)) + timestamp1, _ := split(strings.TrimPrefix(id1, UniqueIdPrefix)) + timestamp2, _ := split(strings.TrimPrefix(id2, UniqueIdPrefix)) if timestamp1 == timestamp2 { t.Fatalf("Timestamp part should update at least once a millisecond %s %s", From 528cbecfcef98e0d4440c6a1eafeba72f953a731 Mon Sep 17 00:00:00 2001 From: Paul Tyng Date: Sat, 10 Mar 2018 21:53:54 -0500 Subject: [PATCH 137/156] Make failure message more explicit --- helper/resource/id_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helper/resource/id_test.go b/helper/resource/id_test.go index 26845832e..f1560dab1 100644 --- a/helper/resource/id_test.go +++ b/helper/resource/id_test.go @@ -32,7 +32,7 @@ func TestUniqueId(t *testing.T) { rest := strings.TrimPrefix(id, UniqueIdPrefix) if len(rest) != UniqueIDSuffixLength { - t.Fatalf("Post-prefix part has wrong length! %s", rest) + t.Fatalf("PrefixedUniqueId is out of sync with UniqueIDSuffixLength, post-prefix part has wrong length! %s", rest) } timestamp, increment := split(rest) From a6f76aa0affc940eb9ecb86c72948ca2768874ba Mon Sep 17 00:00:00 2001 From: stack72 Date: Mon, 12 Mar 2018 17:27:57 +0200 Subject: [PATCH 138/156] backend/manta: Manta Backend was not dealing with a ResourceNotFound Fixes: #17314 We now deal correctly with the creation of the state file - we were not dealing well with a ResourceNotFound error Now that this has been changed around, we try and create the statefile and if there is an error, we look for an existing statefile - previously this was not the order of operations --- backend/remote-state/manta/client.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/remote-state/manta/client.go b/backend/remote-state/manta/client.go index 5d5c8dedd..841bd0f28 100644 --- a/backend/remote-state/manta/client.go +++ b/backend/remote-state/manta/client.go @@ -106,7 +106,7 @@ func (c *RemoteClient) Lock(info *state.LockInfo) (string, error) { lockErr := &state.LockError{} lockInfo, err := c.getLockInfo() if err != nil { - if tritonErrors.IsResourceNotFound(err) { + if !tritonErrors.IsResourceNotFound(err) { lockErr.Err = fmt.Errorf("failed to retrieve lock info: %s", err) return "", lockErr } From cf887b08b70cc8f7ed0c72ae49ad2b2c1f27c916 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Mon, 12 Mar 2018 15:50:47 -0400 Subject: [PATCH 139/156] update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 575a4d2ee..f11813bb7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,11 +13,14 @@ IMPROVEMENTS: BUG FIXES: +* core: Make sure state is locked during initial refresh [GH-17422] +* core: Fix interpolation error when count references another interpolated count value [GH-17368] * core: Halt on fatal provisioner errors, rather than retrying until a timeout [GH-17359] * core: When handling a forced exit due to multiple interrupts, prevent the process from exiting while the state is being written [GH-17323] * core: Fix handling of locals and outputs at destroy time [GH-17241] * core: Fix regression in handling of `count` arguments that refer to `count` attributes from other resources [GH-17548] * provider/terraform: restore support for the deprecated `environment` argument to the `terraform_remote_state` data source [GH-17545] +* backend/gcs: Report the correct lock ID for GCS state locks [GH-17397] * helper/schema: Prevent crash on removal of computed field in CustomizeDiff [GH-17261] ## 0.11.3 (January 31, 2018) From 78525fd65a5b8303bf5c17a37ee95db1da2adc9c Mon Sep 17 00:00:00 2001 From: stack72 Date: Tue, 13 Mar 2018 12:10:41 +0200 Subject: [PATCH 140/156] backend/manta: Update triton-go dependency to 1.1.1 This will support the features of RBAC in Manta Backends --- .../github.com/joyent/triton-go/CHANGELOG.md | 47 ++++++++--- .../github.com/joyent/triton-go/GNUmakefile | 8 +- vendor/github.com/joyent/triton-go/README.md | 17 +++- .../authentication/agent_key_identifier.go | 25 ++++++ .../authentication/private_key_signer.go | 17 ++-- .../joyent/triton-go/authentication/signer.go | 2 +- .../authentication/ssh_agent_signer.go | 22 ++--- .../triton-go/authentication/test_signer.go | 2 +- .../joyent/triton-go/client/client.go | 81 ++++++++++++------- .../joyent/triton-go/storage/client.go | 8 ++ .../joyent/triton-go/storage/directory.go | 2 +- vendor/github.com/joyent/triton-go/triton.go | 19 +++++ vendor/github.com/joyent/triton-go/version.go | 26 ++++-- vendor/vendor.json | 38 +++++---- 14 files changed, 222 insertions(+), 92 deletions(-) create mode 100644 vendor/github.com/joyent/triton-go/authentication/agent_key_identifier.go diff --git a/vendor/github.com/joyent/triton-go/CHANGELOG.md b/vendor/github.com/joyent/triton-go/CHANGELOG.md index 7b2df2e8a..981cd2136 100644 --- a/vendor/github.com/joyent/triton-go/CHANGELOG.md +++ b/vendor/github.com/joyent/triton-go/CHANGELOG.md @@ -1,39 +1,62 @@ ## Unreleased -- Add support for managing columes in Triton [#100] +## 1.1.1 (March 13 2018) + +- client: Adding the rbac user support to the SSHAgentSigner [BUG!] + +## 1.1.0 (March 13 2018) + +- client: Add support for Manta RBAC http signatures + +## 1.0.0 (February 28 2018) + +- client: Add support for querystring in client/ExecuteRequestRaw [#121] +- client: Introduce SetHeader for overriding API request header [#125] +- compute/instances: Add support for passing a list of tags to filter List instances [#116] +- compute/instances: Add support for getting a count of current instances from the CloudAPI [#119] +- compute/instances: Add ability to support name-prefix [#129] +- compute/instances: Add support for Instance Deletion Protection [#131] +- identity/user: Add support for ChangeUserPassword [#111] +- expose GetTritonEnv as a root level func [#126] + +## 0.9.0 (January 23 2018) + +**Please Note:** This is a precursor release to marking triton-go as 1.0.0. We are going to wait and fix any bugs that occur from this large set of changes that has happened since 0.5.2 + +- Add support for managing volumes in Triton [#100] - identity/policies: Add support for managing policies in Triton [#86] -- addition of triton-go errors package to expose unwraping of internal errors +- addition of triton-go errors package to expose unwrapping of internal errors - Migration from hashicorp/errwrap to pkg/errors - Using path.Join() for URL structures rather than fmt.Sprintf() -## 0.5.2 (December 28) +## 0.5.2 (December 28 2017) - Standardise the API SSH Signers input casing and naming -## 0.5.1 (December 28) +## 0.5.1 (December 28 2017) - Include leading '/' when working with SSH Agent signers -## 0.5.0 (December 28) +## 0.5.0 (December 28 2017) - Add support for RBAC in triton-go [#82] This is a breaking change. No longer do we pass individual parameters to the SSH Signer funcs, but we now pass an input Struct. This will guard from from additional parameter changes in the future. We also now add support for using `SDC_*` and `TRITON_*` env vars when working with the Default agent signer -## 0.4.2 (December 22) +## 0.4.2 (December 22 2017) - Fixing a panic when the user loses network connectivity when making a GET request to instance [#81] -## 0.4.1 (December 15) +## 0.4.1 (December 15 2017) - Clean up the handling of directory sanitization. Use abs paths everywhere [#79] -## 0.4.0 (December 15) +## 0.4.0 (December 15 2017) - Fix an issue where Manta HEAD requests do not return an error resp body [#77] - Add support for recursively creating child directories [#78] -## 0.3.0 (December 14) +## 0.3.0 (December 14 2017) - Introduce CloudAPI's ListRulesMachines under networking - Enable HTTP KeepAlives by default in the client. 15s idle timeout, 2x @@ -46,11 +69,11 @@ We also now add support for using `SDC_*` and `TRITON_*` env vars when working w - Add support for ForceDelete of all children of a directory [#71](https://github.com/joyent/issues/71) - storage: Introduce `Objects.GetInfo` and `Objects.IsDir` using HEAD requests [#74](https://github.com/joyent/triton-go/issues/74) -## 0.2.1 (November 8) +## 0.2.1 (November 8 2017) - Fixing a bug where CreateUser and UpdateUser didn't return the UserID -## 0.2.0 (November 7) +## 0.2.0 (November 7 2017) - Introduce CloudAPI's Ping under compute - Introduce CloudAPI's RebootMachine under compute instances @@ -59,6 +82,6 @@ We also now add support for using `SDC_*` and `TRITON_*` env vars when working w - tools: Introduce unit testing and scripts for linting, etc. - bug: Fix the `compute.ListMachineRules` endpoint -## 0.1.0 (November 2) +## 0.1.0 (November 2 2017) - Initial release of a versioned SDK diff --git a/vendor/github.com/joyent/triton-go/GNUmakefile b/vendor/github.com/joyent/triton-go/GNUmakefile index f996b9951..c5cf617d9 100644 --- a/vendor/github.com/joyent/triton-go/GNUmakefile +++ b/vendor/github.com/joyent/triton-go/GNUmakefile @@ -1,7 +1,7 @@ TEST?=$$(go list ./... |grep -Ev 'vendor|examples|testutils') GOFMT_FILES?=$$(find . -name '*.go' |grep -v vendor) -default: vet errcheck test +default: vet fmtcheck errcheck test tools:: ## Download and install all dev/code tools @echo "==> Installing dev tools" @@ -29,16 +29,16 @@ vet:: ## Check for unwanted code constructs fi lint:: ## Lint and vet code by common Go standards - @bash $(CURDIR)/scripts/lint.sh + @./scripts/lint.sh fmt:: ## Format as canonical Go code gofmt -w $(GOFMT_FILES) fmtcheck:: ## Check if code format is canonical Go - @bash $(CURDIR)/scripts/gofmtcheck.sh + @./scripts/gofmtcheck.sh errcheck:: ## Check for unhandled errors - @bash $(CURDIR)/scripts/errcheck.sh + @./scripts/errcheck.sh .PHONY: help help:: ## Display this help message diff --git a/vendor/github.com/joyent/triton-go/README.md b/vendor/github.com/joyent/triton-go/README.md index 5dbd5de0f..982dd5e50 100644 --- a/vendor/github.com/joyent/triton-go/README.md +++ b/vendor/github.com/joyent/triton-go/README.md @@ -5,6 +5,15 @@ using Joyent's Triton Compute and Storage (Manta) APIs. [![Build Status](https://travis-ci.org/joyent/triton-go.svg?branch=master)](https://travis-ci.org/joyent/triton-go) [![Go Report Card](https://goreportcard.com/badge/github.com/joyent/triton-go)](https://goreportcard.com/report/github.com/joyent/triton-go) +The Triton Go SDK is used in the following open source projects. + +- [Packer](http://github.com/hashicorp/packer) +- [Vault](http://github.com/hashicorp/vault) +- [Terraform](http://github.com/hashicorp/terraform) +- [Terraform Triton Provider](https://github.com/terraform-providers/terraform-provider-triton) +- [Docker Machine](https://github.com/joyent/docker-machine-driver-triton) +- [Triton Kubernetes](https://github.com/joyent/triton-kubernetes) + ## Usage Triton uses [HTTP Signature][4] to sign the Date header in each HTTP request @@ -38,7 +47,7 @@ ssh-keygen -Emd5 -lf ~/.ssh/id_rsa.pub | cut -d " " -f 2 | sed 's/MD5://' ``` Each top level package, `account`, `compute`, `identity`, `network`, all have -their own seperate client. In order to initialize a package client, simply pass +their own separate client. In order to initialize a package client, simply pass the global `triton.ClientConfig` struct into the client's constructor function. ```go @@ -73,8 +82,8 @@ if err != nil { ## Error Handling If an error is returned by the HTTP API, the `error` returned from the function -will contain an instance of `compute.TritonError` in the chain. Error wrapping -is performed using the [errwrap][7] library from HashiCorp. +will contain an instance of `errors.APIError` in the chain. Error wrapping +is performed using the [pkg/errors][7] library. ## Acceptance Tests @@ -235,4 +244,4 @@ func main() { [4]: https://github.com/joyent/node-http-signature/blob/master/http_signing.md [5]: https://godoc.org/github.com/joyent/triton-go/authentication [6]: https://godoc.org/github.com/joyent/triton-go/authentication -[7]: https://github.com/hashicorp/go-errwrap +[7]: https://github.com/pkg/errors diff --git a/vendor/github.com/joyent/triton-go/authentication/agent_key_identifier.go b/vendor/github.com/joyent/triton-go/authentication/agent_key_identifier.go new file mode 100644 index 000000000..5c316363e --- /dev/null +++ b/vendor/github.com/joyent/triton-go/authentication/agent_key_identifier.go @@ -0,0 +1,25 @@ +package authentication + +import "path" + +type KeyID struct { + UserName string + AccountName string + Fingerprint string + IsManta bool +} + +func (input *KeyID) generate() string { + var keyID string + if input.UserName != "" { + if input.IsManta { + keyID = path.Join("/", input.AccountName, input.UserName, "keys", input.Fingerprint) + } else { + keyID = path.Join("/", input.AccountName, "users", input.UserName, "keys", input.Fingerprint) + } + } else { + keyID = path.Join("/", input.AccountName, "keys", input.Fingerprint) + } + + return keyID +} diff --git a/vendor/github.com/joyent/triton-go/authentication/private_key_signer.go b/vendor/github.com/joyent/triton-go/authentication/private_key_signer.go index 6e5a67331..9b21d6315 100644 --- a/vendor/github.com/joyent/triton-go/authentication/private_key_signer.go +++ b/vendor/github.com/joyent/triton-go/authentication/private_key_signer.go @@ -16,7 +16,6 @@ import ( "encoding/base64" "encoding/pem" "fmt" - "path" "strings" "github.com/pkg/errors" @@ -87,7 +86,7 @@ func NewPrivateKeySigner(input PrivateKeySignerInput) (*PrivateKeySigner, error) return signer, nil } -func (s *PrivateKeySigner) Sign(dateHeader string) (string, error) { +func (s *PrivateKeySigner) Sign(dateHeader string, isManta bool) (string, error) { const headerName = "date" hash := s.hashFunc.New() @@ -100,14 +99,14 @@ func (s *PrivateKeySigner) Sign(dateHeader string) (string, error) { } signedBase64 := base64.StdEncoding.EncodeToString(signed) - var keyID string - if s.userName != "" { - - keyID = path.Join("/", s.accountName, "users", s.userName, "keys", s.formattedKeyFingerprint) - } else { - keyID = path.Join("/", s.accountName, "keys", s.formattedKeyFingerprint) + key := &KeyID{ + UserName: s.userName, + AccountName: s.accountName, + Fingerprint: s.formattedKeyFingerprint, + IsManta: isManta, } - return fmt.Sprintf(authorizationHeaderFormat, keyID, "rsa-sha1", headerName, signedBase64), nil + + return fmt.Sprintf(authorizationHeaderFormat, key.generate(), "rsa-sha1", headerName, signedBase64), nil } func (s *PrivateKeySigner) SignRaw(toSign string) (string, string, error) { diff --git a/vendor/github.com/joyent/triton-go/authentication/signer.go b/vendor/github.com/joyent/triton-go/authentication/signer.go index f1e114194..40b71d08d 100644 --- a/vendor/github.com/joyent/triton-go/authentication/signer.go +++ b/vendor/github.com/joyent/triton-go/authentication/signer.go @@ -13,6 +13,6 @@ const authorizationHeaderFormat = `Signature keyId="%s",algorithm="%s",headers=" type Signer interface { DefaultAlgorithm() string KeyFingerprint() string - Sign(dateHeader string) (string, error) + Sign(dateHeader string, isManta bool) (string, error) SignRaw(toSign string) (string, string, error) } diff --git a/vendor/github.com/joyent/triton-go/authentication/ssh_agent_signer.go b/vendor/github.com/joyent/triton-go/authentication/ssh_agent_signer.go index 304e7fb3b..c21218290 100644 --- a/vendor/github.com/joyent/triton-go/authentication/ssh_agent_signer.go +++ b/vendor/github.com/joyent/triton-go/authentication/ssh_agent_signer.go @@ -15,7 +15,6 @@ import ( "fmt" "net" "os" - "path" "strings" pkgerrors "github.com/pkg/errors" @@ -64,18 +63,16 @@ func NewSSHAgentSigner(input SSHAgentSignerInput) (*SSHAgentSigner, error) { agent: ag, } + if input.Username != "" { + signer.userName = input.Username + } + matchingKey, err := signer.MatchKey() if err != nil { return nil, err } signer.key = matchingKey signer.formattedKeyFingerprint = formatPublicKeyFingerprint(signer.key, true) - if input.Username != "" { - signer.userName = input.Username - signer.keyIdentifier = path.Join("/", signer.accountName, "users", input.Username, "keys", signer.formattedKeyFingerprint) - } else { - signer.keyIdentifier = path.Join("/", signer.accountName, "keys", signer.formattedKeyFingerprint) - } _, algorithm, err := signer.SignRaw("HelloWorld") if err != nil { @@ -118,7 +115,7 @@ func (s *SSHAgentSigner) MatchKey() (ssh.PublicKey, error) { return matchingKey, nil } -func (s *SSHAgentSigner) Sign(dateHeader string) (string, error) { +func (s *SSHAgentSigner) Sign(dateHeader string, isManta bool) (string, error) { const headerName = "date" signature, err := s.agent.Sign(s.key, []byte(fmt.Sprintf("%s: %s", headerName, dateHeader))) @@ -131,6 +128,13 @@ func (s *SSHAgentSigner) Sign(dateHeader string) (string, error) { return "", pkgerrors.Wrap(err, "unable to format signature") } + key := &KeyID{ + UserName: s.userName, + AccountName: s.accountName, + Fingerprint: s.formattedKeyFingerprint, + IsManta: isManta, + } + var authSignature httpAuthSignature switch keyFormat { case "rsa": @@ -147,7 +151,7 @@ func (s *SSHAgentSigner) Sign(dateHeader string) (string, error) { return "", fmt.Errorf("Unsupported algorithm from SSH agent: %s", signature.Format) } - return fmt.Sprintf(authorizationHeaderFormat, s.keyIdentifier, + return fmt.Sprintf(authorizationHeaderFormat, key.generate(), authSignature.SignatureType(), headerName, authSignature.String()), nil } diff --git a/vendor/github.com/joyent/triton-go/authentication/test_signer.go b/vendor/github.com/joyent/triton-go/authentication/test_signer.go index 4ccfd3847..b34f28bf3 100644 --- a/vendor/github.com/joyent/triton-go/authentication/test_signer.go +++ b/vendor/github.com/joyent/triton-go/authentication/test_signer.go @@ -26,7 +26,7 @@ func (s *TestSigner) KeyFingerprint() string { return "" } -func (s *TestSigner) Sign(dateHeader string) (string, error) { +func (s *TestSigner) Sign(dateHeader string, isManta bool) (string, error) { return "", nil } diff --git a/vendor/github.com/joyent/triton-go/client/client.go b/vendor/github.com/joyent/triton-go/client/client.go index 0d8bc8931..13a47f56a 100644 --- a/vendor/github.com/joyent/triton-go/client/client.go +++ b/vendor/github.com/joyent/triton-go/client/client.go @@ -18,7 +18,6 @@ import ( "net" "net/http" "net/url" - "os" "time" "github.com/joyent/triton-go" @@ -40,12 +39,13 @@ var ( // Client represents a connection to the Triton Compute or Object Storage APIs. type Client struct { - HTTPClient *http.Client - Authorizers []authentication.Signer - TritonURL url.URL - MantaURL url.URL - AccountName string - Username string + HTTPClient *http.Client + RequestHeader *http.Header + Authorizers []authentication.Signer + TritonURL url.URL + MantaURL url.URL + AccountName string + Username string } // New is used to construct a Client in order to make API @@ -102,29 +102,12 @@ func New(tritonURL string, mantaURL string, accountName string, signers ...authe return newClient, nil } -var envPrefixes = []string{"TRITON", "SDC"} - -// GetTritonEnv looks up environment variables using the preferred "TRITON" -// prefix, but falls back to the SDC prefix. For example, looking up "USER" -// will search for "TRITON_USER" followed by "SDC_USER". If the environment -// variable is not set, an empty string is returned. GetTritonEnv() is used to -// aid in the transition and deprecation of the SDC_* environment variables. -func GetTritonEnv(name string) string { - for _, prefix := range envPrefixes { - if val, found := os.LookupEnv(prefix + "_" + name); found { - return val - } - } - - return "" -} - // initDefaultAuth provides a default key signer for a client. This should only // be used internally if the client has no other key signer for authenticating // with Triton. We first look for both `SDC_KEY_ID` and `SSH_AUTH_SOCK` in the // user's environ(7). If so we default to the SSH agent key signer. func (c *Client) DefaultAuth() error { - tritonKeyId := GetTritonEnv("KEY_ID") + tritonKeyId := triton.GetEnv("KEY_ID") if tritonKeyId != "" { input := authentication.SSHAgentSignerInput{ KeyID: tritonKeyId, @@ -153,6 +136,8 @@ func (c *Client) InsecureSkipTLSVerify() { c.HTTPClient.Transport = httpTransport(true) } +// httpTransport is responsible for setting up our HTTP client's transport +// settings func httpTransport(insecureSkipTLSVerify bool) *http.Transport { return &http.Transport{ Proxy: http.ProxyFromEnvironment, @@ -173,6 +158,7 @@ func doNotFollowRedirects(*http.Request, []*http.Request) error { return http.ErrUseLastResponse } +// DecodeError decodes a backend Triton error into a more usable Go error type func (c *Client) DecodeError(resp *http.Response, requestMethod string) error { err := &errors.APIError{ StatusCode: resp.StatusCode, @@ -192,6 +178,23 @@ func (c *Client) DecodeError(resp *http.Response, requestMethod string) error { return err } +// overrideHeader overrides the header of the passed in HTTP request +func (c *Client) overrideHeader(req *http.Request) { + if c.RequestHeader != nil { + for k, vs := range *c.RequestHeader { + for _, v := range vs { + req.Header.Add(k, v) + } + } + } +} + +// resetHeader will reset the struct field that stores custom header +// information +func (c *Client) resetHeader() { + c.RequestHeader = nil +} + // ----------------------------------------------------------------------------- type RequestInput struct { @@ -203,6 +206,8 @@ type RequestInput struct { } func (c *Client) ExecuteRequestURIParams(ctx context.Context, inputs RequestInput) (io.ReadCloser, error) { + defer c.resetHeader() + method := inputs.Method path := inputs.Path body := inputs.Body @@ -233,7 +238,7 @@ func (c *Client) ExecuteRequestURIParams(ctx context.Context, inputs RequestInpu // NewClient ensures there's always an authorizer (unless this is called // outside that constructor). - authHeader, err := c.Authorizers[0].Sign(dateHeader) + authHeader, err := c.Authorizers[0].Sign(dateHeader, false) if err != nil { return nil, pkgerrors.Wrapf(err, "unable to sign HTTP request") } @@ -246,6 +251,8 @@ func (c *Client) ExecuteRequestURIParams(ctx context.Context, inputs RequestInpu req.Header.Set("Content-Type", "application/json") } + c.overrideHeader(req) + resp, err := c.HTTPClient.Do(req.WithContext(ctx)) if err != nil { return nil, pkgerrors.Wrapf(err, "unable to execute HTTP request") @@ -265,9 +272,12 @@ func (c *Client) ExecuteRequest(ctx context.Context, inputs RequestInput) (io.Re } func (c *Client) ExecuteRequestRaw(ctx context.Context, inputs RequestInput) (*http.Response, error) { + defer c.resetHeader() + method := inputs.Method path := inputs.Path body := inputs.Body + query := inputs.Query var requestBody io.Reader if body != nil { @@ -280,6 +290,9 @@ func (c *Client) ExecuteRequestRaw(ctx context.Context, inputs RequestInput) (*h endpoint := c.TritonURL endpoint.Path = path + if query != nil { + endpoint.RawQuery = query.Encode() + } req, err := http.NewRequest(method, endpoint.String(), requestBody) if err != nil { @@ -291,7 +304,7 @@ func (c *Client) ExecuteRequestRaw(ctx context.Context, inputs RequestInput) (*h // NewClient ensures there's always an authorizer (unless this is called // outside that constructor). - authHeader, err := c.Authorizers[0].Sign(dateHeader) + authHeader, err := c.Authorizers[0].Sign(dateHeader, false) if err != nil { return nil, pkgerrors.Wrapf(err, "unable to sign HTTP request") } @@ -304,6 +317,8 @@ func (c *Client) ExecuteRequestRaw(ctx context.Context, inputs RequestInput) (*h req.Header.Set("Content-Type", "application/json") } + c.overrideHeader(req) + resp, err := c.HTTPClient.Do(req.WithContext(ctx)) if err != nil { return nil, pkgerrors.Wrapf(err, "unable to execute HTTP request") @@ -319,6 +334,8 @@ func (c *Client) ExecuteRequestRaw(ctx context.Context, inputs RequestInput) (*h } func (c *Client) ExecuteRequestStorage(ctx context.Context, inputs RequestInput) (io.ReadCloser, http.Header, error) { + defer c.resetHeader() + method := inputs.Method path := inputs.Path query := inputs.Query @@ -356,7 +373,7 @@ func (c *Client) ExecuteRequestStorage(ctx context.Context, inputs RequestInput) dateHeader := time.Now().UTC().Format(time.RFC1123) req.Header.Set("date", dateHeader) - authHeader, err := c.Authorizers[0].Sign(dateHeader) + authHeader, err := c.Authorizers[0].Sign(dateHeader, true) if err != nil { return nil, nil, pkgerrors.Wrapf(err, "unable to sign HTTP request") } @@ -368,6 +385,8 @@ func (c *Client) ExecuteRequestStorage(ctx context.Context, inputs RequestInput) req.URL.RawQuery = query.Encode() } + c.overrideHeader(req) + resp, err := c.HTTPClient.Do(req.WithContext(ctx)) if err != nil { return nil, nil, pkgerrors.Wrapf(err, "unable to execute HTTP request") @@ -391,6 +410,8 @@ type RequestNoEncodeInput struct { } func (c *Client) ExecuteRequestNoEncode(ctx context.Context, inputs RequestNoEncodeInput) (io.ReadCloser, http.Header, error) { + defer c.resetHeader() + method := inputs.Method path := inputs.Path query := inputs.Query @@ -416,7 +437,7 @@ func (c *Client) ExecuteRequestNoEncode(ctx context.Context, inputs RequestNoEnc dateHeader := time.Now().UTC().Format(time.RFC1123) req.Header.Set("date", dateHeader) - authHeader, err := c.Authorizers[0].Sign(dateHeader) + authHeader, err := c.Authorizers[0].Sign(dateHeader, true) if err != nil { return nil, nil, pkgerrors.Wrapf(err, "unable to sign HTTP request") } @@ -429,6 +450,8 @@ func (c *Client) ExecuteRequestNoEncode(ctx context.Context, inputs RequestNoEnc req.URL.RawQuery = query.Encode() } + c.overrideHeader(req) + resp, err := c.HTTPClient.Do(req.WithContext(ctx)) if err != nil { return nil, nil, pkgerrors.Wrapf(err, "unable to execute HTTP request") diff --git a/vendor/github.com/joyent/triton-go/storage/client.go b/vendor/github.com/joyent/triton-go/storage/client.go index e38569fbc..3bf9b3d4b 100644 --- a/vendor/github.com/joyent/triton-go/storage/client.go +++ b/vendor/github.com/joyent/triton-go/storage/client.go @@ -9,6 +9,8 @@ package storage import ( + "net/http" + triton "github.com/joyent/triton-go" "github.com/joyent/triton-go/client" ) @@ -34,6 +36,12 @@ func NewClient(config *triton.ClientConfig) (*StorageClient, error) { return newStorageClient(client), nil } +// SetHeader allows a consumer of the current client to set a custom header for +// the next backend HTTP request sent to CloudAPI. +func (c *StorageClient) SetHeader(header *http.Header) { + c.Client.RequestHeader = header +} + // Dir returns a DirectoryClient used for accessing functions pertaining to // Directories functionality of the Manta API. func (c *StorageClient) Dir() *DirectoryClient { diff --git a/vendor/github.com/joyent/triton-go/storage/directory.go b/vendor/github.com/joyent/triton-go/storage/directory.go index 865b56483..90c4f4a57 100644 --- a/vendor/github.com/joyent/triton-go/storage/directory.go +++ b/vendor/github.com/joyent/triton-go/storage/directory.go @@ -102,7 +102,7 @@ type PutDirectoryInput struct { DirectoryName string } -// Put puts a directoy into the Triton Object Storage service is an idempotent +// Put puts a director into the Triton Object Storage service is an idempotent // create-or-update operation. Your private namespace starts at /:login, and you // can create any nested set of directories or objects within it. func (s *DirectoryClient) Put(ctx context.Context, input *PutDirectoryInput) error { diff --git a/vendor/github.com/joyent/triton-go/triton.go b/vendor/github.com/joyent/triton-go/triton.go index 5d74258d4..f499e9a65 100644 --- a/vendor/github.com/joyent/triton-go/triton.go +++ b/vendor/github.com/joyent/triton-go/triton.go @@ -9,6 +9,8 @@ package triton import ( + "os" + "github.com/joyent/triton-go/authentication" ) @@ -25,3 +27,20 @@ type ClientConfig struct { Username string Signers []authentication.Signer } + +var envPrefixes = []string{"TRITON", "SDC"} + +// GetEnv looks up environment variables using the preferred "TRITON" prefix, +// but falls back to the retired "SDC" prefix. For example, looking up "USER" +// will search for "TRITON_USER" followed by "SDC_USER". If the environment +// variable is not set, an empty string is returned. GetEnv() is used to aid in +// the transition and deprecation of the "SDC_*" environment variables. +func GetEnv(name string) string { + for _, prefix := range envPrefixes { + if val, found := os.LookupEnv(prefix + "_" + name); found { + return val + } + } + + return "" +} diff --git a/vendor/github.com/joyent/triton-go/version.go b/vendor/github.com/joyent/triton-go/version.go index 0c1bc8680..cfc268c2d 100644 --- a/vendor/github.com/joyent/triton-go/version.go +++ b/vendor/github.com/joyent/triton-go/version.go @@ -13,20 +13,30 @@ import ( "runtime" ) -// The main version number of the current released Triton-go SDK. -const Version = "0.9.0" +// Version represents main version number of the current release +// of the Triton-go SDK. +const Version = "1.1.1" -// A pre-release marker for the version. If this is "" (empty string) -// then it means that it is a final release. Otherwise, this is a pre-release -// such as "dev" (in development), "beta", "rc1", etc. +// Prerelease adds a pre-release marker to the version. +// +// If this is "" (empty string) then it means that it is a final release. +// Otherwise, this is a pre-release such as "dev" (in development), "beta", +// "rc1", etc. var Prerelease = "" +// UserAgent returns a Triton-go characteristic string that allows the +// network protocol peers to identify the version, release and runtime +// of the Triton-go client from which the requests originate. func UserAgent() string { if Prerelease != "" { - return fmt.Sprintf("triton-go/%s-%s (%s-%s; %s)", Version, Prerelease, runtime.GOARCH, runtime.GOOS, runtime.Version()) - } else { - return fmt.Sprintf("triton-go/%s (%s-%s; %s)", Version, runtime.GOARCH, runtime.GOOS, runtime.Version()) + return fmt.Sprintf("triton-go/%s-%s (%s-%s; %s)", Version, Prerelease, + runtime.GOARCH, runtime.GOOS, runtime.Version()) } + + return fmt.Sprintf("triton-go/%s (%s-%s; %s)", Version, runtime.GOARCH, + runtime.GOOS, runtime.Version()) } +// CloudAPIMajorVersion specifies the CloudAPI version compatibility +// for current release of the Triton-go SDK. const CloudAPIMajorVersion = "8" diff --git a/vendor/vendor.json b/vendor/vendor.json index 1289ec622..d6e32b45e 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -1860,34 +1860,44 @@ "revisionTime": "2016-08-03T19:07:31Z" }, { - "checksumSHA1": "Lg8OHK87XRGCaipG+5+zFyN8OMw=", + "checksumSHA1": "hnUvydIu2VnSjYP/ROo1SLNlLv4=", "path": "github.com/joyent/triton-go", - "revision": "545edbe0d564f075ac576f1ad177f4ff39c9adaf", - "revisionTime": "2018-01-16T16:57:42Z" + "revision": "d8f9c031492688b4b62b7fd29b1edd9897400c4e", + "revisionTime": "2018-03-13T10:08:02Z", + "version": "1.1.1", + "versionExact": "1.1.1" }, { - "checksumSHA1": "Y03+L+I0FVZ2bMGWt1MHTDEyWM4=", + "checksumSHA1": "yNrArK8kjkVkU0bunKlemd6dFkE=", "path": "github.com/joyent/triton-go/authentication", - "revision": "545edbe0d564f075ac576f1ad177f4ff39c9adaf", - "revisionTime": "2018-01-16T16:57:42Z" + "revision": "d8f9c031492688b4b62b7fd29b1edd9897400c4e", + "revisionTime": "2018-03-13T10:08:02Z", + "version": "1.1.1", + "versionExact": "1.1.1" }, { - "checksumSHA1": "MuJsGBr6HlXQYxZY9cM5rBk+Lns=", + "checksumSHA1": "WBCMeFCM9qif0JwcGQL72SG7yJM=", "path": "github.com/joyent/triton-go/client", - "revision": "545edbe0d564f075ac576f1ad177f4ff39c9adaf", - "revisionTime": "2018-01-16T16:57:42Z" + "revision": "d8f9c031492688b4b62b7fd29b1edd9897400c4e", + "revisionTime": "2018-03-13T10:08:02Z", + "version": "1.1.1", + "versionExact": "1.1.1" }, { "checksumSHA1": "d/Py6j/uMgOAFNFGpsQrNnSsO+k=", "path": "github.com/joyent/triton-go/errors", - "revision": "545edbe0d564f075ac576f1ad177f4ff39c9adaf", - "revisionTime": "2018-01-16T16:57:42Z" + "revision": "d8f9c031492688b4b62b7fd29b1edd9897400c4e", + "revisionTime": "2018-03-13T10:08:02Z", + "version": "1.1.1", + "versionExact": "1.1.1" }, { - "checksumSHA1": "5v533ELM047YOiwHsyMaVzITpR0=", + "checksumSHA1": "MAjG3M0OLUJ3hdNZLHHpXdl1THQ=", "path": "github.com/joyent/triton-go/storage", - "revision": "545edbe0d564f075ac576f1ad177f4ff39c9adaf", - "revisionTime": "2018-01-16T16:57:42Z" + "revision": "d8f9c031492688b4b62b7fd29b1edd9897400c4e", + "revisionTime": "2018-03-13T10:08:02Z", + "version": "1.1.1", + "versionExact": "1.1.1" }, { "checksumSHA1": "g+afVQQVopBLiLB5pFZp/8s6aBs=", From 9b295e2bc7c47a6f0b638c6742a6e4c12936c6de Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Tue, 13 Mar 2018 12:49:49 -0400 Subject: [PATCH 141/156] docs/internal: Fix sidebar navigation for Remote Service Discovery page --- website/docs/internals/remote-service-discovery.html.md | 2 +- website/layouts/docs.erb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/website/docs/internals/remote-service-discovery.html.md b/website/docs/internals/remote-service-discovery.html.md index 5cdf47bf8..84ba3c6e0 100644 --- a/website/docs/internals/remote-service-discovery.html.md +++ b/website/docs/internals/remote-service-discovery.html.md @@ -1,7 +1,7 @@ --- layout: "docs" page_title: "Internals: Remote Service Discovery" -sidebar_current: "docs-remote-service-discovery" +sidebar_current: "docs-internals-remote-service-discovery" description: |- Remote service discovery is a protocol used to locate Terraform-native services provided at a user-friendly hostname. diff --git a/website/layouts/docs.erb b/website/layouts/docs.erb index c8535b44d..4d71518c5 100644 --- a/website/layouts/docs.erb +++ b/website/layouts/docs.erb @@ -354,7 +354,7 @@ Resource Addressing - > + > Remote Service Discovery From 4e7c9dd07b3cd168df498c9df1c183da8897e5d6 Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Tue, 13 Mar 2018 12:56:49 -0400 Subject: [PATCH 142/156] docs/getting-started: Replace underscores in aws_s3_bucket name in dependencies example --- website/intro/getting-started/dependencies.html.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/intro/getting-started/dependencies.html.md b/website/intro/getting-started/dependencies.html.md index 3ed429749..32d159b77 100644 --- a/website/intro/getting-started/dependencies.html.md +++ b/website/intro/getting-started/dependencies.html.md @@ -156,7 +156,7 @@ resource "aws_s3_bucket" "example" { # NOTE: S3 bucket names must be unique across _all_ AWS accounts, so # this name must be changed before applying this example to avoid naming # conflicts. - bucket = "terraform_getting_started_guide" + bucket = "terraform-getting-started-guide" acl = "private" } From 02ff60d083181ae4899fcd8ed4ef28bddd065024 Mon Sep 17 00:00:00 2001 From: Chase Date: Wed, 14 Mar 2018 17:33:03 +0100 Subject: [PATCH 143/156] Fixing small typo in resource/wait.go --- helper/resource/wait.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helper/resource/wait.go b/helper/resource/wait.go index ca50e292f..e56a5155d 100644 --- a/helper/resource/wait.go +++ b/helper/resource/wait.go @@ -74,7 +74,7 @@ func RetryableError(err error) *RetryError { return &RetryError{Err: err, Retryable: true} } -// NonRetryableError is a helper to create a RetryError that's _not)_ retryable +// NonRetryableError is a helper to create a RetryError that's _not_ retryable // from a given error. func NonRetryableError(err error) *RetryError { if err == nil { From 04899393b0d300e82858679a97c7f08bc4afcc68 Mon Sep 17 00:00:00 2001 From: Radek Simko Date: Wed, 14 Mar 2018 18:54:22 +0000 Subject: [PATCH 144/156] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f11813bb7..67f5e9a2f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ BUG FIXES: * provider/terraform: restore support for the deprecated `environment` argument to the `terraform_remote_state` data source [GH-17545] * backend/gcs: Report the correct lock ID for GCS state locks [GH-17397] * helper/schema: Prevent crash on removal of computed field in CustomizeDiff [GH-17261] +* helper/schema: Allow ResourceDiff.ForceNew on nested fields (avoid crash) [GH-17463] ## 0.11.3 (January 31, 2018) From 035d56409f7d33c0b42d086fc1082f258dd3a30b Mon Sep 17 00:00:00 2001 From: James McGill Date: Wed, 14 Mar 2018 17:50:41 -0400 Subject: [PATCH 145/156] helper/schema: handle TypeMap elem consistently with other collection types For historical reasons, the handling of element types for maps is inconsistent with other collection types. Here we begin a multi-step process to make it consistent, starting by supporting both the "consistent" form of using a schema.Schema and an existing erroneous form of using a schema.Type directly. In subsequent commits we will phase out the erroneous form and require the schema.Schema approach, the same as we do for TypeList and TypeSet. --- helper/schema/field_reader.go | 11 +++---- helper/schema/field_reader_config.go | 2 +- helper/schema/field_reader_config_test.go | 4 +++ helper/schema/field_reader_diff.go | 3 +- helper/schema/field_reader_diff_test.go | 13 ++++++++ helper/schema/field_reader_map.go | 2 +- helper/schema/field_reader_map_test.go | 4 +++ helper/schema/field_reader_test.go | 20 +++++++++++++ helper/schema/schema.go | 9 ++---- helper/schema/schema_test.go | 36 +++++++++++++++++++++++ 10 files changed, 90 insertions(+), 14 deletions(-) diff --git a/helper/schema/field_reader.go b/helper/schema/field_reader.go index 1660a6702..b80b223a2 100644 --- a/helper/schema/field_reader.go +++ b/helper/schema/field_reader.go @@ -126,6 +126,8 @@ func addrToSchema(addr []string, schemaMap map[string]*Schema) []*Schema { switch v := current.Elem.(type) { case ValueType: current = &Schema{Type: v} + case *Schema: + current, _ = current.Elem.(*Schema) default: // maps default to string values. This is all we can have // if this is nested in another list or map. @@ -249,11 +251,10 @@ func readObjectField( } // convert map values to the proper primitive type based on schema.Elem -func mapValuesToPrimitive(m map[string]interface{}, schema *Schema) error { - - elemType := TypeString - if et, ok := schema.Elem.(ValueType); ok { - elemType = et +func mapValuesToPrimitive(k string, m map[string]interface{}, schema *Schema) error { + elemType, err := getValueType(k, schema) + if err != nil { + return err } switch elemType { diff --git a/helper/schema/field_reader_config.go b/helper/schema/field_reader_config.go index f958bbcb1..55a301d81 100644 --- a/helper/schema/field_reader_config.go +++ b/helper/schema/field_reader_config.go @@ -206,7 +206,7 @@ func (r *ConfigFieldReader) readMap(k string, schema *Schema) (FieldReadResult, panic(fmt.Sprintf("unknown type: %#v", mraw)) } - err := mapValuesToPrimitive(result, schema) + err := mapValuesToPrimitive(k, result, schema) if err != nil { return FieldReadResult{}, nil } diff --git a/helper/schema/field_reader_config_test.go b/helper/schema/field_reader_config_test.go index 5db643d75..6f50c340f 100644 --- a/helper/schema/field_reader_config_test.go +++ b/helper/schema/field_reader_config_test.go @@ -39,6 +39,10 @@ func TestConfigFieldReader(t *testing.T) { "one": "1", "two": "2", }, + "mapIntNestedSchema": map[string]interface{}{ + "one": "1", + "two": "2", + }, "mapFloat": map[string]interface{}{ "oneDotTwo": "1.2", }, diff --git a/helper/schema/field_reader_diff.go b/helper/schema/field_reader_diff.go index 644b93e6a..d558a5bc9 100644 --- a/helper/schema/field_reader_diff.go +++ b/helper/schema/field_reader_diff.go @@ -122,7 +122,8 @@ func (r *DiffFieldReader) readMap( result[k] = v.New } - err = mapValuesToPrimitive(result, schema) + key := address[len(address)-1] + err = mapValuesToPrimitive(key, result, schema) if err != nil { return FieldReadResult{}, nil } diff --git a/helper/schema/field_reader_diff_test.go b/helper/schema/field_reader_diff_test.go index 537e62e55..49b05e862 100644 --- a/helper/schema/field_reader_diff_test.go +++ b/helper/schema/field_reader_diff_test.go @@ -433,6 +433,19 @@ func TestDiffFieldReader(t *testing.T) { New: "2", }, + "mapIntNestedSchema.%": &terraform.ResourceAttrDiff{ + Old: "", + New: "2", + }, + "mapIntNestedSchema.one": &terraform.ResourceAttrDiff{ + Old: "", + New: "1", + }, + "mapIntNestedSchema.two": &terraform.ResourceAttrDiff{ + Old: "", + New: "2", + }, + "mapFloat.%": &terraform.ResourceAttrDiff{ Old: "", New: "1", diff --git a/helper/schema/field_reader_map.go b/helper/schema/field_reader_map.go index 95339810b..054efe08f 100644 --- a/helper/schema/field_reader_map.go +++ b/helper/schema/field_reader_map.go @@ -61,7 +61,7 @@ func (r *MapFieldReader) readMap(k string, schema *Schema) (FieldReadResult, err return true }) - err := mapValuesToPrimitive(result, schema) + err := mapValuesToPrimitive(k, result, schema) if err != nil { return FieldReadResult{}, nil } diff --git a/helper/schema/field_reader_map_test.go b/helper/schema/field_reader_map_test.go index 4fa78e25c..2723674a3 100644 --- a/helper/schema/field_reader_map_test.go +++ b/helper/schema/field_reader_map_test.go @@ -46,6 +46,10 @@ func TestMapFieldReader(t *testing.T) { "mapInt.one": "1", "mapInt.two": "2", + "mapIntNestedSchema.%": "2", + "mapIntNestedSchema.one": "1", + "mapIntNestedSchema.two": "2", + "mapFloat.%": "1", "mapFloat.oneDotTwo": "1.2", diff --git a/helper/schema/field_reader_test.go b/helper/schema/field_reader_test.go index fb0030722..2c62eb0a8 100644 --- a/helper/schema/field_reader_test.go +++ b/helper/schema/field_reader_test.go @@ -215,6 +215,13 @@ func testFieldReader(t *testing.T, f func(map[string]*Schema) FieldReader) { Type: TypeMap, Elem: TypeInt, }, + + // This is used to verify that the type of a Map can be specified using the + // same syntax as for lists (as a nested *Schema passed to Elem) + "mapIntNestedSchema": &Schema{ + Type: TypeMap, + Elem: &Schema{Type: TypeInt}, + }, "mapFloat": &Schema{ Type: TypeMap, Elem: TypeFloat, @@ -360,6 +367,19 @@ func testFieldReader(t *testing.T, f func(map[string]*Schema) FieldReader) { false, }, + "mapIntNestedSchema": { + []string{"mapIntNestedSchema"}, + FieldReadResult{ + Value: map[string]interface{}{ + "one": 1, + "two": 2, + }, + Exists: true, + Computed: false, + }, + false, + }, + "mapFloat": { []string{"mapFloat"}, FieldReadResult{ diff --git a/helper/schema/schema.go b/helper/schema/schema.go index 4c9ecd61a..c94b694ff 100644 --- a/helper/schema/schema.go +++ b/helper/schema/schema.go @@ -1461,13 +1461,10 @@ func getValueType(k string, schema *Schema) (ValueType, error) { return vt, nil } + // If a Schema is provided to a Map, we use the Type of that schema + // as the type for each element in the Map. if s, ok := schema.Elem.(*Schema); ok { - if s.Elem == nil { - return TypeString, nil - } - if vt, ok := s.Elem.(ValueType); ok { - return vt, nil - } + return s.Type, nil } if _, ok := schema.Elem.(*Resource); ok { diff --git a/helper/schema/schema_test.go b/helper/schema/schema_test.go index 7c4d20f0a..4f50f9215 100644 --- a/helper/schema/schema_test.go +++ b/helper/schema/schema_test.go @@ -4528,6 +4528,42 @@ func TestSchemaMap_Validate(t *testing.T) { }, }, + "Map with type specified as value type": { + Schema: map[string]*Schema{ + "user_data": &Schema{ + Type: TypeMap, + Optional: true, + Elem: TypeBool, + }, + }, + + Config: map[string]interface{}{ + "user_data": map[string]interface{}{ + "foo": "not_a_bool", + }, + }, + + Err: true, + }, + + "Map with type specified as nested Schema": { + Schema: map[string]*Schema{ + "user_data": &Schema{ + Type: TypeMap, + Optional: true, + Elem: &Schema{Type: TypeBool}, + }, + }, + + Config: map[string]interface{}{ + "user_data": map[string]interface{}{ + "foo": "not_a_bool", + }, + }, + + Err: true, + }, + "Bad map: just a slice": { Schema: map[string]*Schema{ "user_data": &Schema{ From ead558261d5e322f1f1e90c8e74834ba9215f24e Mon Sep 17 00:00:00 2001 From: Martin Atkins Date: Wed, 14 Mar 2018 14:59:30 -0700 Subject: [PATCH 146/156] Update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 67f5e9a2f..9613c77d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,8 +21,12 @@ BUG FIXES: * core: Fix regression in handling of `count` arguments that refer to `count` attributes from other resources [GH-17548] * provider/terraform: restore support for the deprecated `environment` argument to the `terraform_remote_state` data source [GH-17545] * backend/gcs: Report the correct lock ID for GCS state locks [GH-17397] + +PROVIDER SDK CHANGES (not user-facing): + * helper/schema: Prevent crash on removal of computed field in CustomizeDiff [GH-17261] * helper/schema: Allow ResourceDiff.ForceNew on nested fields (avoid crash) [GH-17463] +* helper/schema: Allow `TypeMap` to have a `*schema.Schema` as its `Elem`, for consistency with `TypeSet` and `TypeList` [GH-17097] ## 0.11.3 (January 31, 2018) From 994a78dbc77334a4422f41146adde29d73c203b9 Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Thu, 15 Mar 2018 12:31:31 -0400 Subject: [PATCH 147/156] validation: Return "invalid RFC3339 timestamp" in ValidateRFC3339TimeString --- helper/validation/validation.go | 2 +- helper/validation/validation_test.go | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/helper/validation/validation.go b/helper/validation/validation.go index 6c3b29a45..1fc3a6c09 100644 --- a/helper/validation/validation.go +++ b/helper/validation/validation.go @@ -216,7 +216,7 @@ func ValidateRegexp(v interface{}, k string) (ws []string, errors []error) { // as time.RFC3339 format func ValidateRFC3339TimeString(v interface{}, k string) (ws []string, errors []error) { if _, err := time.Parse(time.RFC3339, v.(string)); err != nil { - errors = append(errors, fmt.Errorf("%q: %s", k, err)) + errors = append(errors, fmt.Errorf("%q: invalid RFC3339 timestamp", k)) } return } diff --git a/helper/validation/validation_test.go b/helper/validation/validation_test.go index 82932ba51..0e77006d4 100644 --- a/helper/validation/validation_test.go +++ b/helper/validation/validation_test.go @@ -161,37 +161,37 @@ func TestValidateRFC3339TimeString(t *testing.T) { { val: "03/01/2018", f: ValidateRFC3339TimeString, - expectedErr: regexp.MustCompile(regexp.QuoteMeta(`cannot parse "1/2018" as "2006"`)), + expectedErr: regexp.MustCompile(regexp.QuoteMeta(`invalid RFC3339 timestamp`)), }, { val: "03-01-2018", f: ValidateRFC3339TimeString, - expectedErr: regexp.MustCompile(regexp.QuoteMeta(`cannot parse "1-2018" as "2006"`)), + expectedErr: regexp.MustCompile(regexp.QuoteMeta(`invalid RFC3339 timestamp`)), }, { val: "2018-03-01", f: ValidateRFC3339TimeString, - expectedErr: regexp.MustCompile(regexp.QuoteMeta(`cannot parse "" as "T"`)), + expectedErr: regexp.MustCompile(regexp.QuoteMeta(`invalid RFC3339 timestamp`)), }, { val: "2018-03-01T", f: ValidateRFC3339TimeString, - expectedErr: regexp.MustCompile(regexp.QuoteMeta(`cannot parse "" as "15"`)), + expectedErr: regexp.MustCompile(regexp.QuoteMeta(`invalid RFC3339 timestamp`)), }, { val: "2018-03-01T00:00:00", f: ValidateRFC3339TimeString, - expectedErr: regexp.MustCompile(regexp.QuoteMeta(`cannot parse "" as "Z07:00"`)), + expectedErr: regexp.MustCompile(regexp.QuoteMeta(`invalid RFC3339 timestamp`)), }, { val: "2018-03-01T00:00:00Z05:00", f: ValidateRFC3339TimeString, - expectedErr: regexp.MustCompile(regexp.QuoteMeta(`extra text: 05:00`)), + expectedErr: regexp.MustCompile(regexp.QuoteMeta(`invalid RFC3339 timestamp`)), }, { val: "2018-03-01T00:00:00Z-05:00", f: ValidateRFC3339TimeString, - expectedErr: regexp.MustCompile(regexp.QuoteMeta(`extra text: -05:00`)), + expectedErr: regexp.MustCompile(regexp.QuoteMeta(`invalid RFC3339 timestamp`)), }, }) } From 2d7dc605a01307f6c9a98c59b49c331d2bca5a18 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Thu, 15 Mar 2018 10:50:17 -0400 Subject: [PATCH 148/156] get communicator errors from a remote.Cmd The remote.Cmd struct could not convey any transport related error to the caller, meaning that interrupted commands would show that they succeeded. Change Cmd.SetExited to accept an exit status, as well as an error to store for the caller. Make the status and error fields internal, require serialized access through the getter methods. Users of remote.Cmd should not check both Cmd.Err() and Cmd.ExitStatus() until after Wait returns. Require communicators to call Cmd.Init before executing the command. This will indicate incorrect usage of the remote.Cmd by causing a panic in SetExitStatus. --- communicator/communicator_mock.go | 4 +- communicator/remote/command.go | 70 ++++++++++++++++----------- communicator/ssh/communicator.go | 10 ++-- communicator/ssh/communicator_test.go | 50 +++++++++++++++++++ communicator/winrm/communicator.go | 5 +- 5 files changed, 105 insertions(+), 34 deletions(-) diff --git a/communicator/communicator_mock.go b/communicator/communicator_mock.go index f1c5ad5e6..7f887b4d3 100644 --- a/communicator/communicator_mock.go +++ b/communicator/communicator_mock.go @@ -42,11 +42,13 @@ func (c *MockCommunicator) ScriptPath() string { // Start implementation of communicator.Communicator interface func (c *MockCommunicator) Start(r *remote.Cmd) error { + r.Init() + if !c.Commands[r.Command] { return fmt.Errorf("Command not found!") } - r.SetExited(0) + r.SetExitStatus(0, nil) return nil } diff --git a/communicator/remote/command.go b/communicator/remote/command.go index ae16dfa88..0804e70fa 100644 --- a/communicator/remote/command.go +++ b/communicator/remote/command.go @@ -23,45 +23,59 @@ type Cmd struct { Stdout io.Writer Stderr io.Writer - // This will be set to true when the remote command has exited. It - // shouldn't be set manually by the user, but there is no harm in - // doing so. - Exited bool - - // Once Exited is true, this will contain the exit code of the process. - ExitStatus int + // Once Wait returns, his will contain the exit code of the process. + exitStatus int // Internal fields exitCh chan struct{} + // err is used to store any error reported by the Communicator during + // execution. + err error + // This thing is a mutex, lock when making modifications concurrently sync.Mutex } -// SetExited is a helper for setting that this process is exited. This -// should be called by communicators who are running a remote command in -// order to set that the command is done. -func (r *Cmd) SetExited(status int) { - r.Lock() - defer r.Unlock() +// Init must be called by the Communicator before executing the command. +func (c *Cmd) Init() { + c.Lock() + defer c.Unlock() - if r.exitCh == nil { - r.exitCh = make(chan struct{}) - } + c.exitCh = make(chan struct{}) +} - r.Exited = true - r.ExitStatus = status - close(r.exitCh) +// SetExitStatus stores the exit status of the remote command as well as any +// communicator related error. SetExitStatus then unblocks any pending calls +// to Wait. +// This should only be called by communicators executing the remote.Cmd. +func (c *Cmd) SetExitStatus(status int, err error) { + c.Lock() + defer c.Unlock() + + c.exitStatus = status + c.err = err + + close(c.exitCh) +} + +// Err returns any communicator related error. +func (c *Cmd) Err() error { + c.Lock() + defer c.Unlock() + + return c.err +} + +// ExitStatus returns the exit status of the remote command +func (c *Cmd) ExitStatus() int { + c.Lock() + defer c.Unlock() + + return c.exitStatus } // Wait waits for the remote command to complete. -func (r *Cmd) Wait() { - // Make sure our condition variable is initialized. - r.Lock() - if r.exitCh == nil { - r.exitCh = make(chan struct{}) - } - r.Unlock() - - <-r.exitCh +func (c *Cmd) Wait() { + <-c.exitCh } diff --git a/communicator/ssh/communicator.go b/communicator/ssh/communicator.go index f9d183976..4945f5dd8 100644 --- a/communicator/ssh/communicator.go +++ b/communicator/ssh/communicator.go @@ -243,6 +243,8 @@ func (c *Communicator) ScriptPath() string { // Start implementation of communicator.Communicator interface func (c *Communicator) Start(cmd *remote.Cmd) error { + cmd.Init() + session, err := c.newSession() if err != nil { return err @@ -267,7 +269,7 @@ func (c *Communicator) Start(cmd *remote.Cmd) error { } log.Printf("starting remote command: %s", cmd.Command) - err = session.Start(cmd.Command + "\n") + err = session.Start(strings.TrimSpace(cmd.Command) + "\n") if err != nil { return err } @@ -286,8 +288,8 @@ func (c *Communicator) Start(cmd *remote.Cmd) error { } } + cmd.SetExitStatus(exitStatus, err) log.Printf("remote command exited with '%d': %s", exitStatus, cmd.Command) - cmd.SetExited(exitStatus) }() return nil @@ -358,10 +360,10 @@ func (c *Communicator) UploadScript(path string, input io.Reader) error { "machine: %s", err) } cmd.Wait() - if cmd.ExitStatus != 0 { + if cmd.ExitStatus() != 0 { return fmt.Errorf( "Error chmodding script file to 0777 in remote "+ - "machine %d: %s %s", cmd.ExitStatus, stdout.String(), stderr.String()) + "machine %d: %s %s", cmd.ExitStatus(), stdout.String(), stderr.String()) } return nil diff --git a/communicator/ssh/communicator_test.go b/communicator/ssh/communicator_test.go index 9a2d715f2..4eb3799ce 100644 --- a/communicator/ssh/communicator_test.go +++ b/communicator/ssh/communicator_test.go @@ -17,6 +17,7 @@ import ( "strconv" "strings" "testing" + "time" "github.com/hashicorp/terraform/communicator/remote" "github.com/hashicorp/terraform/terraform" @@ -178,6 +179,55 @@ func TestStart(t *testing.T) { } } +func TestLostConnection(t *testing.T) { + address := newMockLineServer(t, nil) + parts := strings.Split(address, ":") + + r := &terraform.InstanceState{ + Ephemeral: terraform.EphemeralState{ + ConnInfo: map[string]string{ + "type": "ssh", + "user": "user", + "password": "pass", + "host": parts[0], + "port": parts[1], + "timeout": "30s", + }, + }, + } + + c, err := New(r) + if err != nil { + t.Fatalf("error creating communicator: %s", err) + } + + var cmd remote.Cmd + stdout := new(bytes.Buffer) + cmd.Command = "echo foo" + cmd.Stdout = stdout + + err = c.Start(&cmd) + if err != nil { + t.Fatalf("error executing remote command: %s", err) + } + + // The test server can't execute anything, so Wait will block, unless + // there's an error. Disconnect the communicator transport, to cause the + // command to fail. + go func() { + time.Sleep(100 * time.Millisecond) + c.Disconnect() + }() + + cmd.Wait() + if cmd.Err() == nil { + t.Fatal("expected communicator error") + } + if cmd.ExitStatus() != 0 { + t.Fatal("command should not have returned an exit status") + } +} + func TestHostKey(t *testing.T) { // get the server's public key signer, err := ssh.ParsePrivateKey([]byte(testServerPrivateKey)) diff --git a/communicator/winrm/communicator.go b/communicator/winrm/communicator.go index 729e6eb51..90b9fe915 100644 --- a/communicator/winrm/communicator.go +++ b/communicator/winrm/communicator.go @@ -131,6 +131,8 @@ func (c *Communicator) ScriptPath() string { // Start implementation of communicator.Communicator interface func (c *Communicator) Start(rc *remote.Cmd) error { + rc.Init() + err := c.Connect(nil) if err != nil { return err @@ -168,7 +170,8 @@ func runCommand(shell *winrm.Shell, cmd *winrm.Command, rc *remote.Cmd) { cmd.Wait() wg.Wait() - rc.SetExited(cmd.ExitCode()) + + rc.SetExitStatus(cmd.ExitCode(), nil) } // Upload implementation of communicator.Communicator interface From af132a186d1525724682bd99c6c9616a7582f1b6 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Thu, 15 Mar 2018 12:25:44 -0400 Subject: [PATCH 149/156] remove timeout from remote-exec command context The timeout for the remote command was taken from the wrong config field, and the connection timeout was being used which is 5 min. Any remote command taking more than 5 min would be terminated by disconnecting the communicator. Remove the timeout from the context, and rely on the global timeout provided by terraform. There was no way to get the error from the communicator previously, so the broken connection was silently ignored and the provisioner returned successfully. Now we can use the new cmd.Err() method to retrieve any errors encountered during execution. --- .../remote-exec/resource_provisioner.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/builtin/provisioners/remote-exec/resource_provisioner.go b/builtin/provisioners/remote-exec/resource_provisioner.go index 378a282ed..8c3d671b9 100644 --- a/builtin/provisioners/remote-exec/resource_provisioner.go +++ b/builtin/provisioners/remote-exec/resource_provisioner.go @@ -156,10 +156,6 @@ func runScripts( o terraform.UIOutput, comm communicator.Communicator, scripts []io.ReadCloser) error { - // Wrap out context in a cancelation function that we use to - // kill the connection. - ctx, cancelFunc := context.WithTimeout(ctx, comm.Timeout()) - defer cancelFunc() // Wait for the context to end and then disconnect go func() { @@ -200,10 +196,14 @@ func runScripts( if err := comm.Start(cmd); err != nil { return fmt.Errorf("Error starting script: %v", err) } - cmd.Wait() - if cmd.ExitStatus != 0 { - err = fmt.Errorf("Script exited with non-zero exit status: %d", cmd.ExitStatus) + + if err := cmd.Err(); err != nil { + return fmt.Errorf("Remote command exited with error: %s", err) + } + + if cmd.ExitStatus() != 0 { + err = fmt.Errorf("Script exited with non-zero exit status: %d", cmd.ExitStatus()) } // Upload a blank follow up file in the same path to prevent residual From b21483483415c4267f2a6d42ef0c9adc674d9204 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Thu, 15 Mar 2018 12:30:27 -0400 Subject: [PATCH 150/156] update the vendored winrm release This was updated to see if we can get at any error status from the remote command and transport, which still is not available, but kept the latest version since it fixes a couple race conditions. --- vendor/github.com/masterzen/winrm/client.go | 33 +++++++++++++++++---- vendor/vendor.json | 14 +++++---- 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/vendor/github.com/masterzen/winrm/client.go b/vendor/github.com/masterzen/winrm/client.go index 732dd61cb..c19515194 100644 --- a/vendor/github.com/masterzen/winrm/client.go +++ b/vendor/github.com/masterzen/winrm/client.go @@ -152,10 +152,20 @@ func (c *Client) RunWithString(command string, stdin string) (string, string, in } var outWriter, errWriter bytes.Buffer - go io.Copy(&outWriter, cmd.Stdout) - go io.Copy(&errWriter, cmd.Stderr) + var wg sync.WaitGroup + wg.Add(2) + go func() { + defer wg.Done() + io.Copy(&outWriter, cmd.Stdout) + }() + + go func() { + defer wg.Done() + io.Copy(&errWriter, cmd.Stderr) + }() cmd.Wait() + wg.Wait() return outWriter.String(), errWriter.String(), cmd.ExitCode(), cmd.err } @@ -176,11 +186,24 @@ func (c Client) RunWithInput(command string, stdout, stderr io.Writer, stdin io. return 1, err } - go io.Copy(cmd.Stdin, stdin) - go io.Copy(stdout, cmd.Stdout) - go io.Copy(stderr, cmd.Stderr) + var wg sync.WaitGroup + wg.Add(3) + + go func() { + defer wg.Done() + io.Copy(cmd.Stdin, stdin) + }() + go func() { + defer wg.Done() + io.Copy(stdout, cmd.Stdout) + }() + go func() { + defer wg.Done() + io.Copy(stderr, cmd.Stderr) + }() cmd.Wait() + wg.Wait() return cmd.ExitCode(), cmd.err diff --git a/vendor/vendor.json b/vendor/vendor.json index d6e32b45e..df59aea56 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -1983,16 +1983,20 @@ "revisionTime": "2016-06-08T18:30:07Z" }, { - "checksumSHA1": "8z5kCCFRsBkhXic9jxxeIV3bBn8=", + "checksumSHA1": "dVQEUn5TxdIAXczK7rh6qUrq44Q=", "path": "github.com/masterzen/winrm", - "revision": "a2df6b1315e6fd5885eb15c67ed259e85854125f", - "revisionTime": "2017-08-14T13:39:27Z" + "revision": "7e40f93ae939004a1ef3bd5ff5c88c756ee762bb", + "revisionTime": "2018-02-24T16:03:50Z", + "version": "master", + "versionExact": "master" }, { "checksumSHA1": "XFSXma+KmkhkIPsh4dTd/eyja5s=", "path": "github.com/masterzen/winrm/soap", - "revision": "a2df6b1315e6fd5885eb15c67ed259e85854125f", - "revisionTime": "2017-08-14T13:39:27Z" + "revision": "7e40f93ae939004a1ef3bd5ff5c88c756ee762bb", + "revisionTime": "2018-02-24T16:03:50Z", + "version": "master", + "versionExact": "master" }, { "checksumSHA1": "rCffFCN6TpDAN3Jylyo8RFzhQ9E=", From a715430d247d84b0a96eca17a7f67076cd26139f Mon Sep 17 00:00:00 2001 From: James Bardin Date: Thu, 15 Mar 2018 12:45:49 -0400 Subject: [PATCH 151/156] fix exit status handling in salt-masterless Convert to the new Cmd.ExitStatus() method in the salt-masterless provisioner. Add calls to Wait and remove race conditions around setting the status. --- .../salt-masterless/resource_provisioner.go | 49 +++++++++++-------- 1 file changed, 28 insertions(+), 21 deletions(-) diff --git a/builtin/provisioners/salt-masterless/resource_provisioner.go b/builtin/provisioners/salt-masterless/resource_provisioner.go index d206423bc..dd19d419e 100644 --- a/builtin/provisioners/salt-masterless/resource_provisioner.go +++ b/builtin/provisioners/salt-masterless/resource_provisioner.go @@ -164,8 +164,10 @@ func applyFn(ctx context.Context) error { if err == nil { cmd.Wait() - if cmd.ExitStatus != 0 { - err = fmt.Errorf("Curl exited with non-zero exit status: %d", cmd.ExitStatus) + if cmd.Err() != nil { + err = cmd.Err() + } else if cmd.ExitStatus() != 0 { + err = fmt.Errorf("Curl exited with non-zero exit status: %d", cmd.ExitStatus()) } } @@ -188,8 +190,10 @@ func applyFn(ctx context.Context) error { if err == nil { cmd.Wait() - if cmd.ExitStatus != 0 { - err = fmt.Errorf("install_salt.sh exited with non-zero exit status: %d", cmd.ExitStatus) + if cmd.Err() != nil { + err = cmd.Err() + } else if cmd.ExitStatus() != 0 { + err = fmt.Errorf("install_salt.sh exited with non-zero exit status: %d", cmd.ExitStatus()) } } // Wait for output to clean up @@ -277,17 +281,16 @@ func applyFn(ctx context.Context) error { Stdout: outW, Stderr: errW, } - if err = comm.Start(cmd); err != nil || cmd.ExitStatus != 0 { - if err == nil { - err = fmt.Errorf("Bad exit status: %d", cmd.ExitStatus) - } - + if err = comm.Start(cmd); err != nil { err = fmt.Errorf("Error executing salt-call: %s", err) } + if err == nil { cmd.Wait() - if cmd.ExitStatus != 0 { - err = fmt.Errorf("Script exited with non-zero exit status: %d", cmd.ExitStatus) + if cmd.Err() != nil { + err = cmd.Err() + } else if cmd.ExitStatus() != 0 { + err = fmt.Errorf("Script exited with non-zero exit status: %d", cmd.ExitStatus()) } } // Wait for output to clean up @@ -354,14 +357,15 @@ func (p *provisioner) uploadFile(o terraform.UIOutput, comm communicator.Communi func (p *provisioner) moveFile(o terraform.UIOutput, comm communicator.Communicator, dst, src string) error { o.Output(fmt.Sprintf("Moving %s to %s", src, dst)) cmd := &remote.Cmd{Command: fmt.Sprintf(p.sudo("mv %s %s"), src, dst)} - if err := comm.Start(cmd); err != nil || cmd.ExitStatus != 0 { - if err == nil { - err = fmt.Errorf("Bad exit status: %d", cmd.ExitStatus) - } - + if err := comm.Start(cmd); err != nil { return fmt.Errorf("Unable to move %s to %s: %s", src, dst, err) } - return nil + cmd.Wait() + if cmd.ExitStatus() != 0 { + return fmt.Errorf("Unable to move %s to %s: exit status: %d", src, dst, cmd.ExitStatus()) + } + + return cmd.Err() } func (p *provisioner) createDir(o terraform.UIOutput, comm communicator.Communicator, dir string) error { @@ -372,10 +376,12 @@ func (p *provisioner) createDir(o terraform.UIOutput, comm communicator.Communic if err := comm.Start(cmd); err != nil { return err } - if cmd.ExitStatus != 0 { + + cmd.Wait() + if cmd.ExitStatus() != 0 { return fmt.Errorf("Non-zero exit status.") } - return nil + return cmd.Err() } func (p *provisioner) removeDir(o terraform.UIOutput, comm communicator.Communicator, dir string) error { @@ -386,10 +392,11 @@ func (p *provisioner) removeDir(o terraform.UIOutput, comm communicator.Communic if err := comm.Start(cmd); err != nil { return err } - if cmd.ExitStatus != 0 { + cmd.Wait() + if cmd.ExitStatus() != 0 { return fmt.Errorf("Non-zero exit status.") } - return nil + return cmd.Err() } func (p *provisioner) uploadDir(o terraform.UIOutput, comm communicator.Communicator, dst, src string, ignore []string) error { From a1061ed9311487d0bb16357eb5dd7ed770cc7389 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Thu, 15 Mar 2018 12:55:57 -0400 Subject: [PATCH 152/156] update the chef and habitat error handling Use the new ExitStatus method, and also check the cmd.Err() method for errors. Remove leaks from the output goroutines in both provisioners by deferring their cleanup, and returning early on all error conditions. --- .../provisioners/chef/resource_provisioner.go | 22 ++++++++++-------- .../habitat/resource_provisioner.go | 23 +++++++++++-------- 2 files changed, 26 insertions(+), 19 deletions(-) diff --git a/builtin/provisioners/chef/resource_provisioner.go b/builtin/provisioners/chef/resource_provisioner.go index 6edf973f3..ea44e9fd0 100644 --- a/builtin/provisioners/chef/resource_provisioner.go +++ b/builtin/provisioners/chef/resource_provisioner.go @@ -684,6 +684,13 @@ func (p *provisioner) runCommand(o terraform.UIOutput, comm communicator.Communi errDoneCh := make(chan struct{}) go p.copyOutput(o, outR, outDoneCh) go p.copyOutput(o, errR, errDoneCh) + go func() { + // Wait for output to clean up + outW.Close() + errW.Close() + <-outDoneCh + <-errDoneCh + }() cmd := &remote.Cmd{ Command: command, @@ -697,18 +704,15 @@ func (p *provisioner) runCommand(o terraform.UIOutput, comm communicator.Communi } cmd.Wait() - if cmd.ExitStatus != 0 { - err = fmt.Errorf( - "Command %q exited with non-zero exit status: %d", cmd.Command, cmd.ExitStatus) + if cmd.Err() != nil { + return cmd.Err() } - // Wait for output to clean up - outW.Close() - errW.Close() - <-outDoneCh - <-errDoneCh + if cmd.ExitStatus() != 0 { + return fmt.Errorf("Command %q exited with non-zero exit status: %d", cmd.Command, cmd.ExitStatus()) + } - return err + return nil } func (p *provisioner) copyOutput(o terraform.UIOutput, r io.Reader, doneCh chan<- struct{}) { diff --git a/builtin/provisioners/habitat/resource_provisioner.go b/builtin/provisioners/habitat/resource_provisioner.go index aa404dae1..ada06a88c 100644 --- a/builtin/provisioners/habitat/resource_provisioner.go +++ b/builtin/provisioners/habitat/resource_provisioner.go @@ -740,12 +740,17 @@ func (p *provisioner) copyOutput(o terraform.UIOutput, r io.Reader, doneCh chan< func (p *provisioner) runCommand(o terraform.UIOutput, comm communicator.Communicator, command string) error { outR, outW := io.Pipe() errR, errW := io.Pipe() - var err error outDoneCh := make(chan struct{}) errDoneCh := make(chan struct{}) go p.copyOutput(o, outR, outDoneCh) go p.copyOutput(o, errR, errDoneCh) + defer func() { + outW.Close() + errW.Close() + <-outDoneCh + <-errDoneCh + }() cmd := &remote.Cmd{ Command: command, @@ -753,22 +758,20 @@ func (p *provisioner) runCommand(o terraform.UIOutput, comm communicator.Communi Stderr: errW, } - if err = comm.Start(cmd); err != nil { + if err := comm.Start(cmd); err != nil { return fmt.Errorf("Error executing command %q: %v", cmd.Command, err) } cmd.Wait() - if cmd.ExitStatus != 0 { - err = fmt.Errorf( - "Command %q exited with non-zero exit status: %d", cmd.Command, cmd.ExitStatus) + if cmd.Err() != nil { + return cmd.Err() } - outW.Close() - errW.Close() - <-outDoneCh - <-errDoneCh + if cmd.ExitStatus() != 0 { + return fmt.Errorf("Command %q exited with non-zero exit status: %d", cmd.Command, cmd.ExitStatus()) + } - return err + return nil } func getBindFromString(bind string) (Bind, error) { From b2d111c2bd6d64a95f766a622c7c432db6310d55 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Thu, 15 Mar 2018 14:29:15 -0400 Subject: [PATCH 153/156] return provisioner Apply errors EvaApplyProvisioners was not returning errors if there was already a multierror stored in the Error field. Always return the error to the caller. --- terraform/eval_apply.go | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/terraform/eval_apply.go b/terraform/eval_apply.go index 36c98458e..b9b480646 100644 --- a/terraform/eval_apply.go +++ b/terraform/eval_apply.go @@ -227,11 +227,8 @@ func (n *EvalApplyProvisioners) Eval(ctx EvalContext) (interface{}, error) { state.Tainted = true } - if n.Error != nil { - *n.Error = multierror.Append(*n.Error, err) - } else { - return nil, err - } + *n.Error = multierror.Append(*n.Error, err) + return nil, err } { From 88e911af458f809fd4d50948b74f78dd04744fd5 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Thu, 15 Mar 2018 14:50:58 -0400 Subject: [PATCH 154/156] fix a provisionerFail test which was incorrect The provisionerFail_createBeforeDestroy test was verifying the incorrect output. The create_before_destroy instance in the state has an ID of "bar" with require_new="abc", and a new instance would get an ID of "foo" with require_new="xyz". The existing test was expecting the following state: aws_instance.bar: (1 deposed) ID = bar provider = provider.aws require_new = abc Deposed ID 1 = foo (tainted) Which showed "bar" still the primary instance in the state, with the new instance "foo" as being the deposed instance, though properly tainted. The new output is: aws_instance.bar: (tainted) (1 deposed) ID = foo provider = provider.aws require_new = xyz type = aws_instance Deposed ID 1 = bar Showing the new "foo instance as being the primary instance in the state, with "bar" as the deposed instance. --- terraform/context_apply_test.go | 2 +- terraform/terraform_test.go | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/terraform/context_apply_test.go b/terraform/context_apply_test.go index 69da40cfc..f53bae1d9 100644 --- a/terraform/context_apply_test.go +++ b/terraform/context_apply_test.go @@ -4482,7 +4482,7 @@ func TestContext2Apply_provisionerFail_createBeforeDestroy(t *testing.T) { actual := strings.TrimSpace(state.String()) expected := strings.TrimSpace(testTerraformApplyProvisionerFailCreateBeforeDestroyStr) if actual != expected { - t.Fatalf("bad: \n%s", actual) + t.Fatalf("expected:\n%s\n:got\n%s", expected, actual) } } diff --git a/terraform/terraform_test.go b/terraform/terraform_test.go index 2deb44153..26c3f9880 100644 --- a/terraform/terraform_test.go +++ b/terraform/terraform_test.go @@ -636,11 +636,12 @@ const testTerraformApplyProvisionerFailCreateNoIdStr = ` ` const testTerraformApplyProvisionerFailCreateBeforeDestroyStr = ` -aws_instance.bar: (1 deposed) - ID = bar +aws_instance.bar: (tainted) (1 deposed) + ID = foo provider = provider.aws - require_new = abc - Deposed ID 1 = foo (tainted) + require_new = xyz + type = aws_instance + Deposed ID 1 = bar ` const testTerraformApplyProvisionerResourceRefStr = ` From c565eb8e7af28d5e29cec3100c200c24a653ac4d Mon Sep 17 00:00:00 2001 From: Brian Flad Date: Thu, 15 Mar 2018 16:23:28 -0400 Subject: [PATCH 155/156] Update CHANGELOG for #17484 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9613c77d5..1d3c77eef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ PROVIDER SDK CHANGES (not user-facing): * helper/schema: Prevent crash on removal of computed field in CustomizeDiff [GH-17261] * helper/schema: Allow ResourceDiff.ForceNew on nested fields (avoid crash) [GH-17463] * helper/schema: Allow `TypeMap` to have a `*schema.Schema` as its `Elem`, for consistency with `TypeSet` and `TypeList` [GH-17097] +* helper/validation: Add ValidateRFC3339TimeString function [GH-17484] ## 0.11.3 (January 31, 2018) From 7878d66b386e5474102b5047722c2de2b3237278 Mon Sep 17 00:00:00 2001 From: James Bardin Date: Thu, 15 Mar 2018 20:35:34 +0000 Subject: [PATCH 156/156] v0.11.4 --- CHANGELOG.md | 40 ++++++++++++++++++++-------------------- version/version.go | 2 +- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d3c77eef..73ee22986 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,33 +1,33 @@ -## 0.11.4 (Unreleased) +## 0.11.4 (March 15, 2018) IMPROVEMENTS: -* cli: `terraform state list` now accepts a new argument `-id=...` for filtering resources for display by their remote ids [GH-17221] -* cli: `terraform destroy` now uses the option `-auto-approve` instead of `-force`, for consistency with `terraform apply`. The old flag is preserved for backward-compatibility, but is now deprecated; it will be retained for at least one major release. [GH-17218] -* connection/ssh: Add support for host key verifiation [GH-17354] -* backend/s3: add support for the cn-northwest-1 region [GH-17216] -* provisioner/local-exec: Allow setting custom environment variables when running commands [GH-13880] -* provisioner/habitat: Detect if hab user exists and only create if necessary [GH-17195] -* provisioner/habitat: Allow custom service name [GH-17196] +* cli: `terraform state list` now accepts a new argument `-id=...` for filtering resources for display by their remote ids ([#17221](https://github.com/hashicorp/terraform/issues/17221)) +* cli: `terraform destroy` now uses the option `-auto-approve` instead of `-force`, for consistency with `terraform apply`. The old flag is preserved for backward-compatibility, but is now deprecated; it will be retained for at least one major release. ([#17218](https://github.com/hashicorp/terraform/issues/17218)) +* connection/ssh: Add support for host key verifiation ([#17354](https://github.com/hashicorp/terraform/issues/17354)) +* backend/s3: add support for the cn-northwest-1 region ([#17216](https://github.com/hashicorp/terraform/issues/17216)) +* provisioner/local-exec: Allow setting custom environment variables when running commands ([#13880](https://github.com/hashicorp/terraform/issues/13880)) +* provisioner/habitat: Detect if hab user exists and only create if necessary ([#17195](https://github.com/hashicorp/terraform/issues/17195)) +* provisioner/habitat: Allow custom service name ([#17196](https://github.com/hashicorp/terraform/issues/17196)) * general: https URLs are now supported in the HTTP_PROXY environment variable for URLs interpreted by Terraform Core. (This will not immediately be true for all Terraform provider plugins, since each must upgrade its own HTTP client.) [go1.10:net/http](https://golang.org/doc/go1.10#net/http) BUG FIXES: -* core: Make sure state is locked during initial refresh [GH-17422] -* core: Fix interpolation error when count references another interpolated count value [GH-17368] -* core: Halt on fatal provisioner errors, rather than retrying until a timeout [GH-17359] -* core: When handling a forced exit due to multiple interrupts, prevent the process from exiting while the state is being written [GH-17323] -* core: Fix handling of locals and outputs at destroy time [GH-17241] -* core: Fix regression in handling of `count` arguments that refer to `count` attributes from other resources [GH-17548] -* provider/terraform: restore support for the deprecated `environment` argument to the `terraform_remote_state` data source [GH-17545] -* backend/gcs: Report the correct lock ID for GCS state locks [GH-17397] +* core: Make sure state is locked during initial refresh ([#17422](https://github.com/hashicorp/terraform/issues/17422)) +* core: Fix interpolation error when count references another interpolated count value ([#17368](https://github.com/hashicorp/terraform/issues/17368)) +* core: Halt on fatal provisioner errors, rather than retrying until a timeout ([#17359](https://github.com/hashicorp/terraform/issues/17359)) +* core: When handling a forced exit due to multiple interrupts, prevent the process from exiting while the state is being written ([#17323](https://github.com/hashicorp/terraform/issues/17323)) +* core: Fix handling of locals and outputs at destroy time ([#17241](https://github.com/hashicorp/terraform/issues/17241)) +* core: Fix regression in handling of `count` arguments that refer to `count` attributes from other resources ([#17548](https://github.com/hashicorp/terraform/issues/17548)) +* provider/terraform: restore support for the deprecated `environment` argument to the `terraform_remote_state` data source ([#17545](https://github.com/hashicorp/terraform/issues/17545)) +* backend/gcs: Report the correct lock ID for GCS state locks ([#17397](https://github.com/hashicorp/terraform/issues/17397)) PROVIDER SDK CHANGES (not user-facing): -* helper/schema: Prevent crash on removal of computed field in CustomizeDiff [GH-17261] -* helper/schema: Allow ResourceDiff.ForceNew on nested fields (avoid crash) [GH-17463] -* helper/schema: Allow `TypeMap` to have a `*schema.Schema` as its `Elem`, for consistency with `TypeSet` and `TypeList` [GH-17097] -* helper/validation: Add ValidateRFC3339TimeString function [GH-17484] +* helper/schema: Prevent crash on removal of computed field in CustomizeDiff ([#17261](https://github.com/hashicorp/terraform/issues/17261)) +* helper/schema: Allow ResourceDiff.ForceNew on nested fields (avoid crash) ([#17463](https://github.com/hashicorp/terraform/issues/17463)) +* helper/schema: Allow `TypeMap` to have a `*schema.Schema` as its `Elem`, for consistency with `TypeSet` and `TypeList` ([#17097](https://github.com/hashicorp/terraform/issues/17097)) +* helper/validation: Add ValidateRFC3339TimeString function ([#17484](https://github.com/hashicorp/terraform/issues/17484)) ## 0.11.3 (January 31, 2018) diff --git a/version/version.go b/version/version.go index 59ae5a9cb..5a259e3ad 100644 --- a/version/version.go +++ b/version/version.go @@ -16,7 +16,7 @@ const Version = "0.11.4" // A pre-release marker for the version. If this is "" (empty string) // then it means that it is a final release. Otherwise, this is a pre-release // such as "dev" (in development), "beta", "rc1", etc. -var Prerelease = "dev" +var Prerelease = "" // SemVer is an instance of version.Version. This has the secondary // benefit of verifying during tests and init time that our version is a